summaryrefslogtreecommitdiff
path: root/Chipset/SB/Smm2/SmmChildDispatch2Protocol.h
blob: 39d7bd4d32af7713afcd7fb814b66f39ac30fe3c (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2011, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************

//*************************************************************************
// $Header: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/SmmChildDispatcher2/SmmChildDispatch2Protocol.h 1     2/08/12 8:28a Yurenlai $
//
// $Revision: 1 $
//
// $Date: 2/08/12 8:28a $
//*************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/SmmChildDispatcher2/SmmChildDispatch2Protocol.h $
// 
// 1     2/08/12 8:28a Yurenlai
// Intel Lynx Point/SB eChipset initially releases.
// 
//*************************************************************************
//<AMI_FHDR_START>
//
// Name:        SmmChildDispatch2Protocol.h
//
// Description: SMM Child dispatcher II protocols functions definition
//
//<AMI_FHDR_END>
//*************************************************************************

#ifndef __SMM_CHILD_DISPATCH2_PROTOCOL__H__
#define __SMM_CHILD_DISPATCH2_PROTOCOL__H__
#ifdef __cplusplus
extern "C" {
#endif

#include <Protocol\SmmSwDispatch2.h>
#include <Protocol\SmmSxDispatch2.h>
#include <Protocol\SmmPeriodicTimerDispatch2.h>
#include <Protocol\SmmUsbDispatch2.h>
#include <Protocol\SmmGpiDispatch2.h>
#include <Protocol\SmmStandbyButtonDispatch2.h>
#include <Protocol\SmmPowerButtonDispatch2.h>
#include <Protocol\SmmIoTrapDispatch2.h>

//-------------- Generic register/unregister handler functions --------------

EFI_STATUS RegisterHandler2(
    IN  EFI_SMM_SMI2                            Type,
    IN  SMI_GENERIC_CALLBACK2                   Function,
    IN  CONST VOID                              *Context,
    IN  UINTN                                   ContextSize,
    OUT EFI_HANDLE                              *Handle
);

EFI_STATUS UnregisterHandler2 (
    IN EFI_SMM_SMI2                             Type,
    IN EFI_HANDLE                               Handle
);

//------------------------ Sw SMI protocol functions ------------------------

EFI_STATUS EfiSmmSwRegister2 (
    IN CONST EFI_SMM_SW_DISPATCH2_PROTOCOL      *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2       Function,
    IN CONST EFI_SMM_SW_REGISTER_CONTEXT        *Context,
    OUT      EFI_HANDLE                         *Handle
);

EFI_STATUS EfiSmmSwUnregister2 (
    IN CONST EFI_SMM_SW_DISPATCH2_PROTOCOL      *This,
    IN       EFI_HANDLE                         Handle
);

//------------------------ Sx SMI protocol functions ------------------------

EFI_STATUS EfiSmmSxRegister2 (
    IN CONST EFI_SMM_SX_DISPATCH2_PROTOCOL      *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2       Function,
    IN CONST EFI_SMM_SX_REGISTER_CONTEXT        *Context,
    OUT      EFI_HANDLE                         *Handle
);

EFI_STATUS EfiSmmSxUnregister2 (
    IN CONST EFI_SMM_SX_DISPATCH2_PROTOCOL      *This,
    IN EFI_HANDLE                               Handle
);

//------------------ Periodic timer SMI protocol functions ------------------

EFI_STATUS EfiSmmTimerRegister2 (
    IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2              Function,
    IN CONST EFI_SMM_PERIODIC_TIMER_REGISTER_CONTEXT   *Context,
    OUT      EFI_HANDLE                                *Handle
);

EFI_STATUS EfiSmmTimerUnregister2 (
    IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
    IN       EFI_HANDLE                                Handle
);

EFI_STATUS EfiSmmTimerGetNextShorterInterval2 (
    IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
    IN OUT   UINT64                                    **SmiTickInterval
);

//----------------------- Usb SMI protocol functions ------------------------

EFI_STATUS EfiSmmUsbRegister2 (
    IN CONST EFI_SMM_USB_DISPATCH2_PROTOCOL     *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2       Function,
    IN CONST EFI_SMM_USB_REGISTER_CONTEXT       *Context,
    OUT      EFI_HANDLE                         *Handle
);

EFI_STATUS EfiSmmUsbUnregister2 (
    IN CONST EFI_SMM_USB_DISPATCH2_PROTOCOL     *This,
    IN       EFI_HANDLE                         Handle
);

//----------------------- Gpi SMI protocol functions ------------------------

EFI_STATUS EfiSmmGpiRegister2 (
    IN CONST EFI_SMM_GPI_DISPATCH2_PROTOCOL     *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2       Function,
    IN CONST EFI_SMM_GPI_REGISTER_CONTEXT       *Context,
    OUT      EFI_HANDLE                         *Handle
);

EFI_STATUS EfiSmmGpiUnregister2 (
    IN CONST EFI_SMM_GPI_DISPATCH2_PROTOCOL     *This,
    IN EFI_HANDLE                               Handle
);

//------------------ Standby button SMI protocol functions ------------------

EFI_STATUS EfiSmmSButtonRegister2 (
    IN CONST EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2              Function,
    IN CONST EFI_SMM_STANDBY_BUTTON_REGISTER_CONTEXT   *Context,
    OUT      EFI_HANDLE                                *Handle
);

EFI_STATUS EfiSmmSButtonUnregister2 (
    IN CONST EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL *This,
    IN       EFI_HANDLE                                Handle
);

//------------------- Power button SMI protocol functions -------------------

EFI_STATUS EfiSmmPButtonRegister2 (
    IN CONST EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2            Function,
    IN CONST EFI_SMM_POWER_BUTTON_REGISTER_CONTEXT   *Context,
    OUT      EFI_HANDLE                              *Handle
);

EFI_STATUS EfiSmmPButtonUnregister2 (
    IN CONST EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL *This,
    IN       EFI_HANDLE                              Handle
);

//--------------------- I/O Trap SMI protocol functions ---------------------

EFI_STATUS EfiSmmIoTrapRegister2 (
    IN CONST EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL *This,
    IN       EFI_SMM_HANDLER_ENTRY_POINT2       Function,
    IN OUT   EFI_SMM_IO_TRAP_REGISTER_CONTEXT   *Context,
    OUT      EFI_HANDLE                         *Handle
);

EFI_STATUS EfiSmmIoTrapUnregister2 (
    IN CONST EFI_SMM_IO_TRAP_DISPATCH2_PROTOCOL *This,
    IN       EFI_HANDLE                         Handle
);

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

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