]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiSpec.h
Add Capsule image Table entry in Uefi/UefiSpec.h according to UEFI2.1 spec definition.
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiSpec.h
index 5de9887183ef7e480fe2f55ba4b2b194c6ea0b64..b356c359476c6eba89e1fda0fe61657c3846d58b 100644 (file)
@@ -27,7 +27,7 @@
 \r
 //\r
 // Enumeration of memory allocation.\r
-// \r
+//\r
 typedef enum {\r
   AllocateAnyPages,\r
   AllocateMaxAddress,\r
@@ -78,7 +78,7 @@ typedef struct {
 \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
@@ -342,9 +342,9 @@ EFI_STATUS
 \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
@@ -628,10 +628,10 @@ EFI_STATUS
   );\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
@@ -889,7 +889,7 @@ EFI_STATUS
 \r
 //\r
 // Enumeration of reset types.\r
-// \r
+//\r
 typedef enum {\r
   EfiResetCold,\r
   EfiResetWarm,\r
@@ -1443,6 +1443,11 @@ typedef struct {
   UINT32            CapsuleImageSize;\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
 \r
@@ -1538,18 +1543,18 @@ EFI_STATUS
 //\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
@@ -1591,12 +1596,12 @@ typedef struct {
 } 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
@@ -1688,16 +1693,16 @@ typedef struct {
 } 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
@@ -1712,6 +1717,52 @@ struct _EFI_SYSTEM_TABLE {
   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