5 Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved
7 SPDX-License-Identifier: BSD-2-Clause-Patent
15 SmmIchnDispatch Extended Protocol
18 #ifndef _EFI_SMM_ICHN_DISPATCH_EX_H_
19 #define _EFI_SMM_ICHN_DISPATCH_EX_H_
22 #include <Protocol/SmmIchnDispatch/SmmIchnDispatch.h>
24 #include <Protocol/SmmIchnDispatch.h>
27 #define EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL_GUID \
29 0x3920405b, 0xc897, 0x44da, 0x88, 0xf3, 0x4c, 0x49, 0x8a, 0x6f, 0xf7, 0x36 \
31 extern EFI_GUID gEfiSmmIchnDispatchExProtocolGuid
;
34 /// Forward reference for ANSI C compatibility
36 typedef struct _EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL
;
39 /// Related Definitions
42 /// Ichn Dispatch Extended Types
45 IchnExPciExpress
= NUM_ICHN_TYPES
+ 1,
55 IchnExPcie0LinkActive
,
56 IchnExPcie1LinkActive
,
57 IchnExPcie2LinkActive
,
58 IchnExPcie3LinkActive
,
60 /// INSERT NEW ITEMS JUST BEFORE THIS LINE
62 IchnExTypeMAX
/// the maximum number of items in this enumeration
63 } EFI_SMM_ICHN_EX_SMI_TYPE
;
66 EFI_SMM_ICHN_EX_SMI_TYPE Type
;
67 } EFI_SMM_ICHN_DISPATCH_EX_CONTEXT
;
74 (EFIAPI
*EFI_SMM_ICHN_DISPATCH_EX
) (
75 IN EFI_HANDLE DispatchHandle
,
76 IN EFI_SMM_ICHN_DISPATCH_EX_CONTEXT
* DispatchContext
82 Dispatch function for a ICH n Extended specific SMI handler.
84 @param[in] DispatchHandle Handle of this dispatch function.
85 @param[in] DispatchContext Pointer to the dispatch function's context.
86 The DispatchContext fields are filled in
87 by the dispatching driver prior to
88 invoking this dispatch function.
95 (EFIAPI
*EFI_SMM_ICHN_EX_REGISTER
) (
96 IN EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL
* This
,
97 IN EFI_SMM_ICHN_DISPATCH_EX DispatchFunction
,
98 IN EFI_SMM_ICHN_DISPATCH_EX_CONTEXT
* DispatchContext
,
99 OUT EFI_HANDLE
* DispatchHandle
105 Register a child SMI source dispatch function with a parent SMM driver
107 @param[in] This Protocol instance pointer.
108 @param[in] DispatchFunction Pointer to dispatch function to be invoked for
110 @param[in] DispatchContext Pointer to the dispatch function's context.
111 The caller fills this context in before calling
112 the register function to indicate to the register
113 function the ICHN SMI source for which the dispatch
114 function should be invoked.
115 @param[in] DispatchHandle Handle of dispatch function, for when interfacing
116 with the parent SMM driver.
118 @retval EFI_SUCCESS The dispatch function has been successfully
119 registered and the SMI source has been enabled.
120 @retval EFI_DEVICE_ERROR The driver was unable to enable the SMI source.
121 @retval EFI_OUT_OF_RESOURCES Not enough memory (system or SMM) to manage this
123 @retval EFI_INVALID_PARAMETER DispatchContext is invalid. The ICHN input value
124 is not within valid range.
129 (EFIAPI
*EFI_SMM_ICHN_EX_UNREGISTER
) (
130 IN EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL
* This
,
131 IN EFI_HANDLE DispatchHandle
137 Unregister a child SMI source dispatch function with a parent SMM driver
139 @param[in] This Protocol instance pointer.
140 @param[in] DispatchHandle Handle of dispatch function to deregister.
142 @retval EFI_SUCCESS The dispatch function has been successfully
143 unregistered and the SMI source has been disabled
144 if there are no other registered child dispatch
145 functions for this SMI source.
146 @retval EFI_INVALID_PARAMETER Handle is invalid.
152 /// Interface structure for the SMM Ich n specific SMI Dispatch Protocol
154 typedef struct _EFI_SMM_ICHN_DISPATCH_EX_PROTOCOL
{
155 EFI_SMM_ICHN_EX_REGISTER Register
;
156 EFI_SMM_ICHN_EX_UNREGISTER UnRegister
;