]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Ppi/SecPlatformInformation.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / Ppi / SecPlatformInformation.h
diff --git a/OldMdePkg/Include/Ppi/SecPlatformInformation.h b/OldMdePkg/Include/Ppi/SecPlatformInformation.h
new file mode 100644 (file)
index 0000000..bcba5db
--- /dev/null
@@ -0,0 +1,90 @@
+/** @file\r
+  This file declares Sec Platform Information PPI.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  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:  SecPlatformInformation.h\r
+\r
+  @par Revision Reference:\r
+  This PPI is defined in PEI CIS.\r
+  Version 0.91.\r
+\r
+**/\r
+\r
+#ifndef __SEC_PLATFORM_INFORMATION_PPI_H__\r
+#define __SEC_PLATFORM_INFORMATION_PPI_H__\r
+\r
+#define EFI_SEC_PLATFORM_INFORMATION_GUID \\r
+  { \\r
+    0x6f8c2b35, 0xfef4, 0x448d, {0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77 } \\r
+  }\r
+\r
+typedef struct _EFI_SEC_PLATFORM_INFORMATION_PPI EFI_SEC_PLATFORM_INFORMATION_PPI;\r
+\r
+extern EFI_GUID gEfiSecPlatformInformationPpiGuid;\r
+\r
+typedef struct {\r
+  UINTN BootPhase;      // entry r20 value\r
+  UINTN UniqueId;       // PAL arbitration ID\r
+  UINTN HealthStat;     // Health Status\r
+  UINTN PALRetAddress;  // return address to PAL\r
+} IPF_HANDOFF_STATUS;\r
+\r
+///\r
+/// EFI_HEALTH_FLAGS\r
+///\r
+typedef union {\r
+  struct {\r
+    UINT32   Status                   : 2;\r
+    UINT32   Tested                   : 1;\r
+    UINT32   Reserved1                :13;\r
+    UINT32   VirtualMemoryUnavailable : 1;\r
+    UINT32   Ia32ExecutionUnavailable : 1;\r
+    UINT32   FloatingPointUnavailable : 1;\r
+    UINT32   MiscFeaturesUnavailable  : 1;\r
+    UINT32   Reserved2                :12;\r
+  }                     Bits;\r
+  UINT32                Uint32;\r
+} EFI_HEALTH_FLAGS;\r
+\r
+typedef struct {\r
+  EFI_HEALTH_FLAGS HealthFlags;\r
+} EFI_SEC_PLATFORM_INFORMATION_RECORD;\r
+\r
+/**\r
+  This interface conveys state information out of the Security (SEC) phase into PEI.\r
+\r
+  @param  PeiServices               Pointer to the PEI Services Table.\r
+  @param  StructureSize             Pointer to the variable describing size of the input buffer.\r
+  @param  PlatformInformationRecord Pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD.\r
+\r
+  @retval EFI_SUCCESS           The data was successfully returned.\r
+  @retval EFI_BUFFER_TOO_SMALL  The buffer was too small.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SEC_PLATFORM_INFORMATION) (\r
+  IN EFI_PEI_SERVICES                      **PeiServices,\r
+  IN OUT UINT64                            *StructureSize,\r
+  OUT EFI_SEC_PLATFORM_INFORMATION_RECORD  *PlatformInformationRecord\r
+  );\r
+\r
+/**\r
+  @par Ppi Description:\r
+\r
+  @param Name\r
+\r
+**/\r
+struct _EFI_SEC_PLATFORM_INFORMATION_PPI {\r
+  EFI_SEC_PLATFORM_INFORMATION  PlatformInformation;\r
+};\r
+\r
+#endif\r