#include <Protocol/SmmSxDispatch2.h>\r
#include <Protocol/SmmUsbDispatch2.h>\r
\r
-#pragma pack(1)\r
-\r
typedef struct {\r
UINT32 Signature;\r
UINT32 Length;\r
UINT32 Revision;\r
+ UINT8 Reserved[4];\r
} SMM_CORE_DATABASE_COMMON_HEADER;\r
\r
#define SMM_CORE_IMAGE_DATABASE_SIGNATURE SIGNATURE_32 ('S','C','I','D')\r
typedef struct {\r
SMM_CORE_DATABASE_COMMON_HEADER Header;\r
EFI_GUID FileGuid;\r
- UINTN ImageRef;\r
- UINTN EntryPoint;\r
- UINTN ImageBase;\r
- UINTN ImageSize;\r
+ PHYSICAL_ADDRESS EntryPoint;\r
+ PHYSICAL_ADDRESS ImageBase;\r
+ UINT64 ImageSize;\r
+ UINT32 ImageRef;\r
UINT16 PdbStringOffset;\r
- UINT8 Reserved2[6];\r
+ UINT8 Reserved[2];\r
//CHAR8 PdbString[];\r
} SMM_CORE_IMAGE_DATABASE_STRUCTURE;\r
\r
// NULL\r
// Context for SmmCoreSmiHandlerCategoryHardwareHandler:\r
// (NOTE: The context field should NOT include any data pointer.)\r
-// gEfiSmmSwDispatch2ProtocolGuid: EFI_SMM_SW_REGISTER_CONTEXT\r
+// gEfiSmmSwDispatch2ProtocolGuid: (EFI_SMM_SW_REGISTER_CONTEXT => SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT)\r
// gEfiSmmSxDispatch2ProtocolGuid: EFI_SMM_SX_REGISTER_CONTEXT\r
// gEfiSmmPowerButtonDispatch2ProtocolGuid: EFI_SMM_POWER_BUTTON_REGISTER_CONTEXT\r
// gEfiSmmStandbyButtonDispatch2ProtocolGuid: EFI_SMM_STANDBY_BUTTON_REGISTER_CONTEXT\r
} SMI_HANDLER_PROFILE_USB_REGISTER_CONTEXT;\r
\r
typedef struct {\r
- UINT32 Length;\r
- UINTN CallerAddr;\r
- UINTN Handler;\r
- UINTN ImageRef;\r
- UINT16 ContextBufferOffset;\r
- UINT8 Reserved2[2];\r
- UINT32 ContextBufferSize;\r
-//UINT8 ContextBuffer[];\r
+ UINT64 SwSmiInputValue;\r
+} SMI_HANDLER_PROFILE_SW_REGISTER_CONTEXT;\r
+\r
+typedef struct {\r
+ UINT32 Length;\r
+ UINT32 ImageRef;\r
+ PHYSICAL_ADDRESS CallerAddr;\r
+ PHYSICAL_ADDRESS Handler;\r
+ UINT16 ContextBufferOffset;\r
+ UINT8 Reserved[2];\r
+ UINT32 ContextBufferSize;\r
+//UINT8 ContextBuffer[];\r
} SMM_CORE_SMI_HANDLER_STRUCTURE;\r
\r
typedef struct {\r
SMM_CORE_DATABASE_COMMON_HEADER Header;\r
- UINT32 HandlerCategory;\r
EFI_GUID HandlerType;\r
- UINTN HandlerCount;\r
+ UINT32 HandlerCategory;\r
+ UINT32 HandlerCount;\r
//SMM_CORE_SMI_HANDLER_STRUCTURE Handler[HandlerCount];\r
} SMM_CORE_SMI_DATABASE_STRUCTURE;\r
\r
\r
#define SMI_HANDLER_PROFILE_GUID {0x49174342, 0x7108, 0x409b, {0x8b, 0xbe, 0x65, 0xfd, 0xa8, 0x53, 0x89, 0xf5}}\r
\r
-#pragma pack()\r
-\r
extern EFI_GUID gSmiHandlerProfileGuid;\r
\r
typedef struct _SMI_HANDLER_PROFILE_PROTOCOL SMI_HANDLER_PROFILE_PROTOCOL;\r