]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiSpec.h
Add TPM related definitions.
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiSpec.h
index f48ab84bd070cda79ae528331549729c11b346a8..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
@@ -318,24 +318,33 @@ EFI_STATUS
 \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
@@ -619,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
@@ -880,11 +889,12 @@ EFI_STATUS
 \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
@@ -1424,14 +1434,19 @@ typedef struct {
     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
@@ -1461,7 +1476,7 @@ typedef struct {
 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
@@ -1487,7 +1502,7 @@ EFI_STATUS
 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
@@ -1528,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
@@ -1581,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
@@ -1678,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
@@ -1702,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