summaryrefslogtreecommitdiff
path: root/Include/Protocol/SmmUsbDispatch.h
blob: b2c8e97902b71d35081b295775c172719e37ce41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2009, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************

//**********************************************************************
// $Header: /Alaska/SOURCE/Modules/SMM/SmmUsbDispatch.h 5     4/06/11 5:55p Markw $
//
// $Revision: 5 $
//
// $Date: 4/06/11 5:55p $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/SMM/SmmUsbDispatch.h $
// 
// 5     4/06/11 5:55p Markw
// Remove Smm.h include.
// 
// 4     2/07/11 3:38p Markw
// [TAG]  		EIP53481
// [Category]  	New Feature
// [Description]  	Add PIWG 1.1 SMM support.
// Small header update.
// [Files]  		Smm.sdl, SmmPrivateShared.h, SmmDispatcher.mak,
// SmmDispatcher.h, SmmDispatcher.c,
// Smst.c, SmmPiSmst.c, SmmInit.c, SmmBase.c, SmmBase2.c,
// SmmDriverDispatcher.c, Smm Framewwork Protocol files, SmmPi.h,
// Smm Pi Protocol files, SmmPciRbio files
// 
// 3     7/08/09 8:02p Markw
// Update headers.
// 
// 2     3/28/07 2:43p Markw
// 
//**********************************************************************


//<AMI_FHDR_START>
//----------------------------------------------------------------------------
//
// Name: SmmUsbDispatch.h
//
// Description:	Smm Usb Dispatch Protocol header.
//
//----------------------------------------------------------------------------
//<AMI_FHDR_END>

#ifndef __SMM_USB_DISPATCH_PROTOCOL_H__
#define __SMM_USB_DISPATCH_PROTOCOL_H__
#ifdef __cplusplus
extern "C" {
#endif
#include <EFI.h>

#define EFI_SMM_USB_DISPATCH_PROTOCOL_GUID \
	{0xa05b6ffd, 0x87af, 0x4e42, 0x95, 0xc9, 0x62, 0x28, 0xb6, 0x3c, 0xf3, 0xf3}

GUID_VARIABLE_DECLARATION(gEfiSmmUsbDispatchProtocolGuid,EFI_SMM_USB_DISPATCH_PROTOCOL_GUID);

typedef struct _EFI_SMM_USB_DISPATCH_PROTOCOL EFI_SMM_USB_DISPATCH_PROTOCOL;

#ifndef SMM_USB_DEF
#define SMM_USB_DEF

//********************************************************
// EFI_USB_SMI_TYPE
//********************************************************
typedef enum {
	UsbLegacy, UsbWake
} EFI_USB_SMI_TYPE;

//********************************************************
// EFI_SMM_USB_DISPATCH_CONTEXT
//********************************************************
typedef struct {
	EFI_USB_SMI_TYPE			Type;
	EFI_DEVICE_PATH_PROTOCOL	*Device;
} EFI_SMM_USB_DISPATCH_CONTEXT;

#endif

//********************************************************
// EFI_SMM_USB_DISPATCH
//********************************************************
typedef VOID (EFIAPI *EFI_SMM_USB_DISPATCH) (
	IN EFI_HANDLE					DispatchHandle,
	IN EFI_SMM_USB_DISPATCH_CONTEXT	*DispatchContext
);

typedef EFI_STATUS (EFIAPI *EFI_SMM_USB_REGISTER) (
	IN EFI_SMM_USB_DISPATCH_PROTOCOL	*This,
	IN EFI_SMM_USB_DISPATCH				DispatchFunction,
	IN EFI_SMM_USB_DISPATCH_CONTEXT		*DispatchContext,
	OUT EFI_HANDLE						*DispatchHandle
);

typedef EFI_STATUS (EFIAPI *EFI_SMM_USB_UNREGISTER) (
	IN EFI_SMM_USB_DISPATCH_PROTOCOL	*This,
	IN EFI_HANDLE						DispatchHandle
);

struct _EFI_SMM_USB_DISPATCH_PROTOCOL {
	EFI_SMM_USB_REGISTER	Register;
	EFI_SMM_USB_UNREGISTER	UnRegister;
};

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif

//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2009, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************