THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- Module Name: UefiSpec.h\r
-\r
**/\r
\r
#ifndef __UEFI_SPEC_H__\r
\r
//\r
// Enumeration of memory allocation.\r
-// \r
+//\r
typedef enum {\r
AllocateAnyPages,\r
AllocateMaxAddress,\r
\r
//\r
// Build macros to find next EFI_MEMORY_DESCRIPTOR.\r
-// \r
+//\r
#define NextMemoryDescriptor(_Ptr, _Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) (_Ptr)) + (_Size)))\r
#define NEXT_MEMORY_DESCRIPTOR(_Ptr, _Size) NextMemoryDescriptor (_Ptr, _Size)\r
\r
\r
\r
//\r
-// These types can be ¡°ORed¡± together as needed ¨C for example,\r
-// EVT_TIMER might be ¡°Ored¡± with EVT_NOTIFY_WAIT or\r
+// These types can be ORed together as needed ¨C for example,\r
+// EVT_TIMER might be Ored with EVT_NOTIFY_WAIT or\r
// EVT_NOTIFY_SIGNAL.\r
//\r
#define EVT_TIMER 0x80000000\r
+#define EFI_EVENT_TIMER EVT_TIMER\r
+\r
#define EVT_RUNTIME 0x40000000\r
+#define EFI_EVENT_RUNTIME EVT_RUNTIME\r
\r
#define EVT_NOTIFY_WAIT 0x00000100\r
+#define EFI_EVENT_NOTIFY_WAIT EVT_NOTIFY_WAIT\r
+\r
#define EVT_NOTIFY_SIGNAL 0x00000200\r
+#define EFI_EVENT_NOTIFY_SIGNAL EVT_NOTIFY_SIGNAL\r
+\r
#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201\r
-#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202\r
+#define EFI_EVENT_SIGNAL_EXIT_BOOT_SERVICES EVT_SIGNAL_EXIT_BOOT_SERVICES\r
\r
+#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202\r
+#define EFI_EVENT_SIGNAL_VIRTUAL_ADDRESS_CHANGE EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE\r
\r
//\r
// The event¡¯s NotifyContext pointer points to a runtime memory\r
-// address. \r
+// address.\r
// The event is deprecated in UEFI2.0 and later specifications.\r
-// \r
+//\r
#define EVT_RUNTIME_CONTEXT 0x20000000\r
\r
\r
);\r
\r
\r
-// \r
+//\r
// This provides the capabilities of the\r
// real time clock device as exposed through the EFI interfaces.\r
-// \r
+//\r
typedef struct {\r
UINT32 Resolution;\r
UINT32 Accuracy;\r
\r
//\r
// Enumeration of reset types.\r
-// \r
+//\r
typedef enum {\r
EfiResetCold,\r
EfiResetWarm,\r
EfiResetShutdown,\r
+ EfiResetUpdate\r
} EFI_RESET_TYPE;\r
\r
/**\r
EFI_PHYSICAL_ADDRESS DataBlock;\r
EFI_PHYSICAL_ADDRESS ContinuationPointer;\r
} Union;\r
-} UEFI_CAPSULE_BLOCK_DESCRIPTOR;\r
+} EFI_CAPSULE_BLOCK_DESCRIPTOR;\r
\r
typedef struct {\r
EFI_GUID CapsuleGuid;\r
UINT32 HeaderSize;\r
UINT32 Flags;\r
UINT32 CapsuleImageSize;\r
-} UEFI_CAPSULE_HEADER;\r
+} EFI_CAPSULE_HEADER;\r
+\r
+typedef struct {\r
+ UINT32 CapsuleArrayNumber;\r
+ VOID* CapsulePtr[1];\r
+} EFI_CAPSULE_TABLE;\r
\r
#define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000\r
#define CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_UPDATE_CAPSULE) (\r
- IN UEFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
IN UINTN CapsuleCount,\r
IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL\r
);\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_QUERY_CAPSULE_CAPABILITIES) (\r
- IN UEFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
IN UINTN CapsuleCount,\r
OUT UINT64 *MaximumCapsuleSize,\r
OUT EFI_RESET_TYPE *ResetType\r
//\r
// EFI Runtime Services Table\r
//\r
-#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249\r
+#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249ULL\r
#define EFI_SYSTEM_TABLE_REVISION ((2<<16) | (10))\r
#define EFI_2_10_SYSTEM_TABLE_REVISION ((2<<16) | (10))\r
#define EFI_2_00_SYSTEM_TABLE_REVISION ((2<<16) | (00))\r
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | (10))\r
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | (02))\r
\r
-#define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552\r
+#define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552ULL\r
#define EFI_RUNTIME_SERVICES_REVISION EFI_2_10_SYSTEM_TABLE_REVISION\r
\r
typedef struct {\r
- EFI_TABLE_HEADER Hdr;\r
+ EFI_TABLE_HEADER Hdr;\r
\r
//\r
// Time Services\r
} EFI_RUNTIME_SERVICES;\r
\r
\r
-#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42\r
+#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42ULL\r
#define EFI_BOOT_SERVICES_REVISION EFI_2_10_SYSTEM_TABLE_REVISION\r
\r
typedef struct {\r
- EFI_TABLE_HEADER Hdr;\r
- \r
+ EFI_TABLE_HEADER Hdr;\r
+\r
//\r
// Task Priority Services\r
//\r
} EFI_BOOT_SERVICES;\r
\r
//\r
-// Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the \r
+// Contains a set of GUID/pointer pairs comprised of the ConfigurationTable field in the\r
// EFI System Table.\r
-// \r
+//\r
typedef struct{\r
EFI_GUID VendorGuid;\r
VOID *VendorTable;\r
} EFI_CONFIGURATION_TABLE;\r
\r
struct _EFI_SYSTEM_TABLE {\r
- EFI_TABLE_HEADER Hdr;\r
+ EFI_TABLE_HEADER Hdr;\r
CHAR16 *FirmwareVendor;\r
UINT32 FirmwareRevision;\r
EFI_HANDLE ConsoleInHandle;\r
EFI_CONFIGURATION_TABLE *ConfigurationTable;\r
};\r
\r
+//\r
+// EFI Load Options Attributes\r
+//\r
+#define LOAD_OPTION_ACTIVE 0x00000001\r
+#define LOAD_OPTION_FORCE_RECONNECT 0x00000002\r
+#define LOAD_OPTION_HIDDEN 0x00000008\r
+#define LOAD_OPTION_CATEGORY 0x00001F00\r
+\r
+#define LOAD_OPTION_CATEGORY_BOOT 0x00000000\r
+#define LOAD_OPTION_CATEGORY_APP 0x00000100\r
+\r
+#define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001\r
+#define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002\r
+#define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300\r
+\r
+typedef union {\r
+ struct {\r
+ UINT32 Revision : 8;\r
+ UINT32 ShiftPressed : 1;\r
+ UINT32 ControlPressed : 1;\r
+ UINT32 AltPressed : 1;\r
+ UINT32 LogoPressed : 1;\r
+ UINT32 MenuPressed : 1;\r
+ UINT32 SysReqPessed : 1;\r
+ UINT32 Reserved : 16;\r
+ UINT32 InputKeyCount : 2;\r
+ } Options;\r
+ UINT32 PackedValue;\r
+} HOT_KEY_EFI_KEY_DATA;\r
+\r
+typedef struct {\r
+ HOT_KEY_EFI_KEY_DATA KeyOptions;\r
+ UINT32 BootOptionCrc;\r
+ UINT16 BootOption;\r
+//EFI_INPUT_KEY Keys[];\r
+} EFI_KEY_OPTION;\r
+\r
+#define EFI_KEY_OPTION_SHIFT 0x00000001\r
+#define EFI_KEY_OPTION_CONTROL 0x00000002\r
+#define EFI_KEY_OPTION_ALT 0x00000004\r
+#define EFI_KEY_OPTION_LOGO 0x00000008\r
+#define EFI_KEY_OPTION_MENU 0x00000010\r
+#define EFI_KEY_OPTION_SYSREQ 0x00000020\r
+#define EFI_KEY_CODE_COUNT 0x00000300\r
+\r
+\r
//\r
// EFI File location to boot from on removable media devices\r
//\r