]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Guid/RtPropertiesTable.h
MdePkg: Add EFI_RT_PROPERTIES_TABLE
[mirror_edk2.git] / MdePkg / Include / Guid / RtPropertiesTable.h
diff --git a/MdePkg/Include/Guid/RtPropertiesTable.h b/MdePkg/Include/Guid/RtPropertiesTable.h
new file mode 100644 (file)
index 0000000..6b6a1a1
--- /dev/null
@@ -0,0 +1,69 @@
+/** @file\r
+Guid & data structure for EFI_RT _PROPERTIES_TABLE, designed to be published by a\r
+platform if it no longer  supports all EFI runtime services once ExitBootServices()\r
+has been called by the OS. Introduced in UEFI 2.8a.\r
+\r
+\r
+Copyright (c) 2020, American Megatrends International LLC. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __RT_PROPERTIES_TABLE_GUID_H__\r
+#define __RT_PROPERTIES_TABLE_GUID_H__\r
+\r
+//\r
+// Table, defined here, should be published by a platform if it no longer supports all EFI runtime\r
+// services once ExitBootServices() has been called by the OS. Note that this is merely a hint\r
+// to the OS, which it is free to ignore, and so the platform is still required to provide callable\r
+// implementations of unsupported runtime services that simply return EFI_UNSUPPORTED.\r
+//\r
+#define EFI_RT_PROPERTIES_TABLE_GUID \\r
+    { 0xeb66918a, 0x7eef, 0x402a, \\r
+    { 0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9 }}\r
+\r
+\r
+\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  ///\r
+  /// Version of the structure, must be 0x1.\r
+  ///\r
+  UINT16 Version;\r
+\r
+  ///\r
+  /// Size in bytes of the entire EFI_RT_PROPERTIES_TABLE, must be 8.\r
+  ///\r
+  UINT16 Length;\r
+\r
+  ///\r
+  /// Bitmask of which calls are or are not supported, where a bit set to 1 indicates\r
+  /// that the call is supported, and 0 indicates that it is not.\r
+  ///\r
+  UINT32 RuntimeServicesSupported;\r
+} EFI_RT_PROPERTIES_TABLE;\r
+\r
+#pragma pack()\r
+\r
+#define EFI_RT_PROPERTIES_TABLE_VERSION 0x1\r
+\r
+#define EFI_RT_SUPPORTED_GET_TIME                       0x0001\r
+#define EFI_RT_SUPPORTED_SET_TIME                       0x0002\r
+#define EFI_RT_SUPPORTED_GET_WAKEUP_TIME                0x0004\r
+#define EFI_RT_SUPPORTED_SET_WAKEUP_TIME                0x0008\r
+#define EFI_RT_SUPPORTED_GET_VARIABLE                   0x0010\r
+#define EFI_RT_SUPPORTED_GET_NEXT_VARIABLE_NAME         0x0020\r
+#define EFI_RT_SUPPORTED_SET_VARIABLE                   0x0040\r
+#define EFI_RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP        0x0080\r
+#define EFI_RT_SUPPORTED_CONVERT_POINTER                0x0100\r
+#define EFI_RT_SUPPORTED_GET_NEXT_HIGH_MONOTONIC_COUNT  0x0200\r
+#define EFI_RT_SUPPORTED_RESET_SYSTEM                   0x0400\r
+#define EFI_RT_SUPPORTED_UPDATE_CAPSULE                 0x0800\r
+#define EFI_RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES     0x1000\r
+#define EFI_RT_SUPPORTED_QUERY_VARIABLE_INFO            0x2000\r
+\r
+extern EFI_GUID gEfiRtPropertiesTableGuid;\r
+\r
+#endif\r