diff options
Diffstat (limited to 'MdePkg/Pi')
-rw-r--r-- | MdePkg/Pi/PiBootMode.h | 40 | ||||
-rw-r--r-- | MdePkg/Pi/PiDependency.h | 46 | ||||
-rw-r--r-- | MdePkg/Pi/PiDxeCis.h | 450 | ||||
-rw-r--r-- | MdePkg/Pi/PiFirmwareFile.h | 206 | ||||
-rw-r--r-- | MdePkg/Pi/PiFirmwareVolume.h | 140 | ||||
-rw-r--r-- | MdePkg/Pi/PiHob.h | 258 | ||||
-rw-r--r-- | MdePkg/Pi/PiMultiPhase.h | 91 | ||||
-rw-r--r-- | MdePkg/Pi/PiPeiCis.h | 805 |
8 files changed, 0 insertions, 2036 deletions
diff --git a/MdePkg/Pi/PiBootMode.h b/MdePkg/Pi/PiBootMode.h deleted file mode 100644 index f7d988df1d..0000000000 --- a/MdePkg/Pi/PiBootMode.h +++ /dev/null @@ -1,40 +0,0 @@ -/** @file
- Present the boot mode values in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiBootMode.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_BOOT_MODE_H__
-#define __PI_BOOT_MODE_H__
-
-typedef UINT32 EFI_BOOT_MODE;
-
-//
-// 0x21 - 0xf..f are reserved.
-//
-#define BOOT_WITH_FULL_CONFIGURATION 0x00
-#define BOOT_WITH_MINIMAL_CONFIGURATION 0x01
-#define BOOT_ASSUMING_NO_CONFIGURATION_CHANGES 0x02
-#define BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS 0x03
-#define BOOT_WITH_DEFAULT_SETTINGS 0x04
-#define BOOT_ON_S4_RESUME 0x05
-#define BOOT_ON_S5_RESUME 0x06
-#define BOOT_ON_S2_RESUME 0x10
-#define BOOT_ON_S3_RESUME 0x11
-#define BOOT_ON_FLASH_UPDATE 0x12
-#define BOOT_IN_RECOVERY_MODE 0x20
-
-#endif
diff --git a/MdePkg/Pi/PiDependency.h b/MdePkg/Pi/PiDependency.h deleted file mode 100644 index 1f208f3873..0000000000 --- a/MdePkg/Pi/PiDependency.h +++ /dev/null @@ -1,46 +0,0 @@ -/** @file
- Present the dependency expression values in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiDependency.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-#ifndef __PI_DEPENDENCY_H__
-#define __PI_DEPENDENCY_H__
-
-//
-// If present, this must be the first and only opcode
-//
-#define EFI_DEP_BEFORE 0x00
-
-//
-// If present, this must be the first and only opcode
-//
-#define EFI_DEP_AFTER 0x01
-
-#define EFI_DEP_PUSH 0x02
-#define EFI_DEP_AND 0x03
-#define EFI_DEP_OR 0x04
-#define EFI_DEP_NOT 0x05
-#define EFI_DEP_TRUE 0x06
-#define EFI_DEP_FALSE 0x07
-#define EFI_DEP_END 0x08
-
-
-//
-// If present, this must be the first opcode.
-//
-#define EFI_DEP_SOR 0x09
-
-#endif
diff --git a/MdePkg/Pi/PiDxeCis.h b/MdePkg/Pi/PiDxeCis.h deleted file mode 100644 index 2001f1f7c0..0000000000 --- a/MdePkg/Pi/PiDxeCis.h +++ /dev/null @@ -1,450 +0,0 @@ -/** @file
- Include file matches things in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiDxeCis.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_DXECIS_H__
-#define __PI_DXECIS_H__
-
-#include <Pi/PiMultiPhase.h>
-
-//
-// Global Coherencey Domain types
-//
-typedef enum {
- EfiGcdMemoryTypeNonExistent,
- EfiGcdMemoryTypeReserved,
- EfiGcdMemoryTypeSystemMemory,
- EfiGcdMemoryTypeMemoryMappedIo,
- EfiGcdMemoryTypeMaximum
-} EFI_GCD_MEMORY_TYPE;
-
-
-typedef enum {
- EfiGcdIoTypeNonExistent,
- EfiGcdIoTypeReserved,
- EfiGcdIoTypeIo,
- EfiGcdIoTypeMaximum
-} EFI_GCD_IO_TYPE;
-
-
-typedef enum {
- EfiGcdAllocateAnySearchBottomUp,
- EfiGcdAllocateMaxAddressSearchBottomUp,
- EfiGcdAllocateAddress,
- EfiGcdAllocateAnySearchTopDown,
- EfiGcdAllocateMaxAddressSearchTopDown,
- EfiGcdMaxAllocateType
-} EFI_GCD_ALLOCATE_TYPE;
-
-
-typedef struct {
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
- UINT64 Capabilities;
- UINT64 Attributes;
- EFI_GCD_MEMORY_TYPE GcdMemoryType;
- EFI_HANDLE ImageHandle;
- EFI_HANDLE DeviceHandle;
-} EFI_GCD_MEMORY_SPACE_DESCRIPTOR;
-
-
-typedef struct {
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
- EFI_GCD_IO_TYPE GcdIoType;
- EFI_HANDLE ImageHandle;
- EFI_HANDLE DeviceHandle;
-} EFI_GCD_IO_SPACE_DESCRIPTOR;
-
-
-/**
- Adds reserved memory, system memory, or memory-mapped I/O resources to the
- global coherency domain of the processor.
-
- @param GcdMemoryType Memory type of the memory space.
- @param BaseAddress Base address of the memory space.
- @param Length Length of the memory space.
- @param Capabilities alterable attributes of the memory space.
-
- @retval EFI_SUCCESS Merged this memory space into GCD map.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_ADD_MEMORY_SPACE) (
- IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length,
- IN UINT64 Capabilities
- )
-;
-
-/**
- Allocates nonexistent memory, reserved memory, system memory, or memorymapped
- I/O resources from the global coherency domain of the processor.
-
- @param GcdAllocateType The type of allocate operation
- @param GcdMemoryType The desired memory type
- @param Alignment Align with 2^Alignment
- @param Length Length to allocate
- @param BaseAddress Base address to allocate
- @param Imagehandle The image handle consume the allocated space.
- @param DeviceHandle The device handle consume the allocated space.
-
- @retval EFI_INVALID_PARAMETER Invalid parameter.
- @retval EFI_NOT_FOUND No descriptor contains the desired space.
- @retval EFI_SUCCESS Memory space successfully allocated.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_ALLOCATE_MEMORY_SPACE) (
- IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
- IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
- IN UINTN Alignment,
- IN UINT64 Length,
- IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
- IN EFI_HANDLE ImageHandle,
- IN EFI_HANDLE DeviceHandle OPTIONAL
- )
-;
-
-/**
- Frees nonexistent memory, reserved memory, system memory, or memory-mapped
- I/O resources from the global coherency domain of the processor.
-
- @param BaseAddress Base address of the segment.
- @param Length Length of the segment.
-
- @retval EFI_SUCCESS Space successfully freed.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_FREE_MEMORY_SPACE) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length
- )
-;
-
-/**
- Removes reserved memory, system memory, or memory-mapped I/O resources from
- the global coherency domain of the processor.
-
- @param BaseAddress Base address of the memory space.
- @param Length Length of the memory space.
-
- @retval EFI_SUCCESS Successfully remove a segment of memory space.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_REMOVE_MEMORY_SPACE) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length
- )
-;
-
-/**
- Retrieves the descriptor for a memory region containing a specified address.
-
- @param BaseAddress Specified start address
- @param Descriptor Specified length
-
- @retval EFI_INVALID_PARAMETER Invalid parameter
- @retval EFI_SUCCESS Successfully get memory space descriptor.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_GET_MEMORY_SPACE_DESCRIPTOR) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor
- )
-;
-
-/**
- Modifies the attributes for a memory region in the global coherency domain of the
- processor.
-
- @param BaseAddress Specified start address
- @param Length Specified length
- @param Attributes Specified attributes
-
- @retval EFI_SUCCESS Successfully set attribute of a segment of memory space.
-
-**/
-typedef
-
-EFI_STATUS
-(EFIAPI *EFI_SET_MEMORY_SPACE_ATTRIBUTES) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length,
- IN UINT64 Attributes
- )
-;
-
-/**
- Returns a map of the memory resources in the global coherency domain of the
- processor.
-
- @param NumberOfDescriptors Number of descriptors.
- @param MemorySpaceMap Descriptor array
-
- @retval EFI_INVALID_PARAMETER Invalid parameter
- @retval EFI_OUT_OF_RESOURCES No enough buffer to allocate
- @retval EFI_SUCCESS Successfully get memory space map.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_GET_MEMORY_SPACE_MAP) (
- OUT UINTN *NumberOfDescriptors,
- OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap
- )
-;
-
-/**
- Adds reserved I/O or I/O resources to the global coherency domain of the processor.
-
- @param GcdIoType IO type of the segment.
- @param BaseAddress Base address of the segment.
- @param Length Length of the segment.
-
- @retval EFI_SUCCESS Merged this segment into GCD map.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_ADD_IO_SPACE) (
- IN EFI_GCD_IO_TYPE GcdIoType,
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length
- )
-;
-
-/**
- Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency
- domain of the processor.
-
- @param GcdAllocateType The type of allocate operation
- @param GcdIoType The desired IO type
- @param Alignment Align with 2^Alignment
- @param Length Length to allocate
- @param BaseAddress Base address to allocate
- @param Imagehandle The image handle consume the allocated space.
- @param DeviceHandle The device handle consume the allocated space.
-
- @retval EFI_INVALID_PARAMETER Invalid parameter.
- @retval EFI_NOT_FOUND No descriptor contains the desired space.
- @retval EFI_SUCCESS IO space successfully allocated.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_ALLOCATE_IO_SPACE) (
- IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,
- IN EFI_GCD_IO_TYPE GcdIoType,
- IN UINTN Alignment,
- IN UINT64 Length,
- IN OUT EFI_PHYSICAL_ADDRESS *BaseAddress,
- IN EFI_HANDLE ImageHandle,
- IN EFI_HANDLE DeviceHandle OPTIONAL
- )
-;
-
-/**
- Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency
- domain of the processor.
-
- @param BaseAddress Base address of the segment.
- @param Length Length of the segment.
-
- @retval EFI_SUCCESS Space successfully freed.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_FREE_IO_SPACE) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length
- )
-;
-
-/**
- Removes reserved I/O or I/O resources from the global coherency domain of the
- processor.
-
- @param BaseAddress Base address of the segment.
- @param Length Length of the segment.
-
- @retval EFI_SUCCESS Successfully removed a segment of IO space.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_REMOVE_IO_SPACE) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- IN UINT64 Length
- )
-;
-
-/**
- Retrieves the descriptor for an I/O region containing a specified address.
-
- @param BaseAddress Specified start address
- @param Descriptor Specified length
-
- @retval EFI_INVALID_PARAMETER Descriptor is NULL.
- @retval EFI_SUCCESS Successfully get the IO space descriptor.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_GET_IO_SPACE_DESCRIPTOR) (
- IN EFI_PHYSICAL_ADDRESS BaseAddress,
- OUT EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor
- )
-;
-
-/**
- Returns a map of the I/O resources in the global coherency domain of the processor.
-
- @param NumberOfDescriptors Number of descriptors.
- @param MemorySpaceMap Descriptor array
-
- @retval EFI_INVALID_PARAMETER Invalid parameter
- @retval EFI_OUT_OF_RESOURCES No enough buffer to allocate
- @retval EFI_SUCCESS Successfully get IO space map.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_GET_IO_SPACE_MAP) (
- OUT UINTN *NumberOfDescriptors,
- OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap
- )
-;
-
-
-
-/**
- Loads and executed DXE drivers from firmware volumes.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_DISPATCH) (VOID)
-;
-
-/**
- Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.
-
- @param FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.
- @param DriverName A pointer to the name of the file in a firmware volume.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_SCHEDULE) (
- IN EFI_HANDLE FirmwareVolumeHandle,
- IN EFI_GUID *DriverName
- )
-;
-
-/**
- Promotes a file stored in a firmware volume from the untrusted to the trusted state.
-
- @param FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.
- @param DriverName A pointer to the name of the file in a firmware volume.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_TRUST) (
- IN EFI_HANDLE FirmwareVolumeHandle,
- IN EFI_GUID *DriverName
- )
-;
-
-/**
- Creates a firmware volume handle for a firmware volume that is present in system memory.
-
- @param FirmwareVolumeHeader A pointer to the header of the firmware volume.
- @param Size The size, in bytes, of the firmware volume.
- @param FirmwareVolumeHandle On output, a pointer to the created handle.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PROCESS_FIRMWARE_VOLUME) (
- IN VOID *FvHeader,
- IN UINTN Size,
- OUT EFI_HANDLE *FirmwareVolumeHandle
- )
-;
-
-//
-// DXE Services Table
-//
-#define DXE_SERVICES_SIGNATURE 0x565245535f455844
-#define DXE_SERVICES_REVISION ((1<<16) | (00)
-
-typedef struct {
- EFI_TABLE_HEADER Hdr;
-
- //
- // Global Coherency Domain Services
- //
- EFI_ADD_MEMORY_SPACE AddMemorySpace;
- EFI_ALLOCATE_MEMORY_SPACE AllocateMemorySpace;
- EFI_FREE_MEMORY_SPACE FreeMemorySpace;
- EFI_REMOVE_MEMORY_SPACE RemoveMemorySpace;
- EFI_GET_MEMORY_SPACE_DESCRIPTOR GetMemorySpaceDescriptor;
- EFI_SET_MEMORY_SPACE_ATTRIBUTES SetMemorySpaceAttributes;
- EFI_GET_MEMORY_SPACE_MAP GetMemorySpaceMap;
- EFI_ADD_IO_SPACE AddIoSpace;
- EFI_ALLOCATE_IO_SPACE AllocateIoSpace;
- EFI_FREE_IO_SPACE FreeIoSpace;
- EFI_REMOVE_IO_SPACE RemoveIoSpace;
- EFI_GET_IO_SPACE_DESCRIPTOR GetIoSpaceDescriptor;
- EFI_GET_IO_SPACE_MAP GetIoSpaceMap;
-
- //
- // Dispatcher Services
- //
- EFI_DISPATCH Dispatch;
- EFI_SCHEDULE Schedule;
- EFI_TRUST Trust;
- //
- // Service to process a single firmware volume found in a capsule
- //
- EFI_PROCESS_FIRMWARE_VOLUME ProcessFirmwareVolume;
-} DXE_SERVICES;
-
-typedef DXE_SERVICES EFI_DXE_SERVICES;
-
-#endif
diff --git a/MdePkg/Pi/PiFirmwareFile.h b/MdePkg/Pi/PiFirmwareFile.h deleted file mode 100644 index db4167263b..0000000000 --- a/MdePkg/Pi/PiFirmwareFile.h +++ /dev/null @@ -1,206 +0,0 @@ -/** @file
- The firmware file related definitions in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiFirmwareFile.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_FIRMWARE_FILE_H__
-#define __PI_FIRMWARE_FILE_H__
-
-//
-// Used to verify the integrity of the file.
-//
-typedef union {
- struct {
- UINT8 Header;
- UINT8 File;
- } Checksum;
- UINT16 Checksum16;
-} EFI_FFS_INTEGRITY_CHECK;
-
-typedef UINT8 EFI_FV_FILETYPE;
-typedef UINT8 EFI_FFS_FILE_ATTRIBUTES;
-typedef UINT8 EFI_FFS_FILE_STATE;
-
-//
-// FFS File Attributes.
-//
-#define FFS_ATTRIB_FIXED 0x04
-#define FFS_ATTRIB_DATA_ALIGNMENT 0x38
-#define FFS_ATTRIB_CHECKSUM 0x40
-
-//
-// FFS File State Bits.
-//
-#define EFI_FILE_HEADER_CONSTRUCTION 0x01
-#define EFI_FILE_HEADER_VALID 0x02
-#define EFI_FILE_DATA_VALID 0x04
-#define EFI_FILE_MARKED_FOR_UPDATE 0x08
-#define EFI_FILE_DELETED 0x10
-#define EFI_FILE_HEADER_INVALID 0x20
-
-
-//
-// Each file begins with the header that describe the
-// contents and state of the files.
-//
-typedef struct {
- EFI_GUID Name;
- EFI_FFS_INTEGRITY_CHECK IntegrityCheck;
- EFI_FV_FILETYPE Type;
- EFI_FFS_FILE_ATTRIBUTES Attributes;
- UINT8 Size[3];
- EFI_FFS_FILE_STATE State;
-} EFI_FFS_FILE_HEADER;
-
-
-typedef UINT8 EFI_SECTION_TYPE;
-
-//
-// Pseudo type. It is
-// used as a wild card when retrieving sections. The section
-// type EFI_SECTION_ALL matches all section types.
-//
-#define EFI_SECTION_ALL 0x00
-
-//
-// Encapsulation section Type values
-//
-#define EFI_SECTION_COMPRESSION 0x01
-
-#define EFI_SECTION_GUID_DEFINED 0x02
-
-//
-// Leaf section Type values
-//
-#define EFI_SECTION_PE32 0x10
-#define EFI_SECTION_PIC 0x11
-#define EFI_SECTION_TE 0x12
-#define EFI_SECTION_DXE_DEPEX 0x13
-#define EFI_SECTION_VERSION 0x14
-#define EFI_SECTION_USER_INTERFACE 0x15
-#define EFI_SECTION_COMPATIBILITY16 0x16
-#define EFI_SECTION_FIRMWARE_VOLUME_IMAGE 0x17
-#define EFI_SECTION_FREEFORM_SUBTYPE_GUID 0x18
-#define EFI_SECTION_RAW 0x19
-#define EFI_SECTION_PEI_DEPEX 0x1B
-
-typedef struct {
- UINT8 Size[3];
- EFI_SECTION_TYPE Type;
-} EFI_COMMON_SECTION_HEADER;
-
-//
-// Leaf section type that contains an
-// IA-32 16-bit executable image.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION;
-
-//
-// CompressionType of EFI_COMPRESSION_SECTION.
-//
-#define EFI_NOT_COMPRESSED 0x00
-#define EFI_STANDARD_COMPRESSION 0x01
-//
-// An encapsulation section type in which the
-// section data is compressed.
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- UINT32 UncompressedLength;
- UINT8 CompressionType;
-} EFI_COMPRESSION_SECTION;
-
-//
-// Leaf section which could be used to determine the dispatch order of DXEs.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION;
-
-//
-// Leaf section witch contains a PI FV.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION;
-
-//
-// Leaf section which contains a single GUID.
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- EFI_GUID SubTypeGuid;
-} EFI_FREEFORM_SUBTYPE_GUID_SECTION;
-
-//
-// Attributes of EFI_GUID_DEFINED_SECTION
-//
-#define EFI_GUIDED_SECTION_PROCESSING_REQUIRED 0x01
-#define EFI_GUIDED_SECTION_AUTH_STATUS_VALID 0x02
-//
-// Leaf section which is encapsulation defined by specific GUID
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- EFI_GUID SectionDefinitionGuid;
- UINT16 DataOffset;
- UINT16 Attributes;
-} EFI_GUID_DEFINED_SECTION;
-
-//
-// Leaf section which contains PE32+ image.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;
-
-
-//
-// Leaf section which used to determine the dispatch order of PEIMs.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;
-
-//
-// Leaf section which constains the position-independent-code image.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;
-
-//
-// Leaf section which contains an array of zero or more bytes.
-//
-typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;
-
-//
-// Leaf section which contains a unicode string that
-// is human readable file name.
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
-
- //
- // Array of unicode string.
- //
- CHAR16 FileNameString[1];
-} EFI_USER_INTERFACE_SECTION;
-
-
-//
-// Leaf section which contains a numeric build number and
-// an optional unicode string that represent the file revision.
-//
-typedef struct {
- EFI_COMMON_SECTION_HEADER CommonHeader;
- UINT16 BuildNumber;
- CHAR16 VersionString[1];
-} EFI_VERSION_SECTION;
-
-#endif
-
diff --git a/MdePkg/Pi/PiFirmwareVolume.h b/MdePkg/Pi/PiFirmwareVolume.h deleted file mode 100644 index 38f57f7d78..0000000000 --- a/MdePkg/Pi/PiFirmwareVolume.h +++ /dev/null @@ -1,140 +0,0 @@ -/** @file
- The firmware volume related definitions in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiFirmwareVolume.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_FIRMWAREVOLUME_H__
-#define __PI_FIRMWAREVOLUME_H__
-
-//
-// EFI_FV_FILE_ATTRIBUTES
-//
-typedef UINT32 EFI_FV_FILE_ATTRIBUTES;
-
-//
-// Value of EFI_FV_FILE_ATTRIBUTES.
-//
-#define EFI_FV_FILE_ATTRIB_ALIGNMENT 0x0000001F
-#define EFI_FV_FILE_ATTRIB_FIXED 0x00000100
-#define EFI_FV_FILE_ATTRIB_MEMORY_MAPPED 0x00000200
-
-typedef UINT32 EFI_FVB_ATTRIBUTES;
-
-//
-// Attributes bit definitions
-//
-#define EFI_FVB2_READ_DISABLED_CAP 0x00000001
-#define EFI_FVB2_READ_ENABLED_CAP 0x00000002
-#define EFI_FVB2_READ_STATUS 0x00000004
-#define EFI_FVB2_WRITE_DISABLED_CAP 0x00000008
-#define EFI_FVB2_WRITE_ENABLED_CAP 0x00000010
-#define EFI_FVB2_WRITE_STATUS 0x00000020
-#define EFI_FVB2_LOCK_CAP 0x00000040
-#define EFI_FVB2_LOCK_STATUS 0x00000080
-#define EFI_FVB2_STICKY_WRITE 0x00000200
-#define EFI_FVB2_MEMORY_MAPPED 0x00000400
-#define EFI_FVB2_ERASE_POLARITY 0x00000800
-#define EFI_FVB2_READ_LOCK_CAP 0x00001000
-#define EFI_FVB2_READ_LOCK_STATUS 0x00002000
-#define EFI_FVB2_WRITE_LOCK_CAP 0x00004000
-#define EFI_FVB2_WRITE_LOCK_STATUS 0x00008000
-#define EFI_FVB2_ALIGNMENT 0x001F0000
-#define EFI_FVB2_ALIGNMENT_1 0x00000000
-#define EFI_FVB2_ALIGNMENT_2 0x00010000
-#define EFI_FVB2_ALIGNMENT_4 0x00020000
-#define EFI_FVB2_ALIGNMENT_8 0x00030000
-#define EFI_FVB2_ALIGNMENT_16 0x00040000
-#define EFI_FVB2_ALIGNMENT_32 0x00050000
-#define EFI_FVB2_ALIGNMENT_64 0x00060000
-#define EFI_FVB2_ALIGNMENT_128 0x00070000
-#define EFI_FVB2_ALIGNMENT_256 0x00080000
-#define EFI_FVB2_ALIGNMENT_512 0x00090000
-#define EFI_FVB2_ALIGNMENT_1K 0x000A0000
-#define EFI_FVB2_ALIGNMENT_2K 0x000B0000
-#define EFI_FVB2_ALIGNMENT_4K 0x000C0000
-#define EFI_FVB2_ALIGNMENT_8K 0x000D0000
-#define EFI_FVB2_ALIGNMENT_16K 0x000E0000
-#define EFI_FVB2_ALIGNMENT_32K 0x000F0000
-#define EFI_FVB2_ALIGNMENT_64K 0x00100000
-#define EFI_FVB2_ALIGNMENT_128K 0x00110000
-#define EFI_FVB2_ALIGNMENT_256K 0x00120000
-#define EFI_FVB2_ALIGNMNET_512K 0x00130000
-#define EFI_FVB2_ALIGNMENT_1M 0x00140000
-#define EFI_FVB2_ALIGNMENT_2M 0x00150000
-#define EFI_FVB2_ALIGNMENT_4M 0x00160000
-#define EFI_FVB2_ALIGNMENT_8M 0x00170000
-#define EFI_FVB2_ALIGNMENT_16M 0x00180000
-#define EFI_FVB2_ALIGNMENT_32M 0x00190000
-#define EFI_FVB2_ALIGNMENT_64M 0x001A0000
-#define EFI_FVB2_ALIGNMENT_128M 0x001B0000
-#define EFI_FVB2_ALIGNMENT_256M 0x001C0000
-#define EFI_FVB2_ALIGNMENT_512M 0x001D0000
-#define EFI_FVB2_ALIGNMENT_1G 0x001E0000
-#define EFI_FVB2_ALIGNMENT_2G 0x001F0000
-
-
-typedef struct {
- UINT32 NumBlocks;
- UINT32 Length;
-} EFI_FV_BLOCK_MAP_ENTRY;
-
-//
-// Describes the features and layout of the firmware volume.
-//
-typedef struct {
- UINT8 ZeroVector[16];
- EFI_GUID FileSystemGuid;
- UINT64 FvLength;
- UINT32 Signature;
- EFI_FVB_ATTRIBUTES Attributes;
- UINT16 HeaderLength;
- UINT16 Checksum;
- UINT16 ExtHeaderOffset;
- UINT8 Reserved[1];
- UINT8 Revision;
- EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];
-} EFI_FIRMWARE_VOLUME_HEADER;
-
-
-
-//
-// Extension header pointed by ExtHeaderOffset of volume header.
-//
-typedef struct {
- EFI_GUID FvName;
- UINT32 ExtHeaderSize;
-} EFI_FIRMWARE_VOLUME_EXT_HEADER;
-
-typedef struct {
- UINT16 ExtEntrySize;
- UINT16 ExtEntryType;
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY;
-
-#define EFI_FV_EXT_TYPE_OEM_TYPE 0x01
-typedef struct {
- EFI_FIRMWARE_VOLUME_EXT_ENTRY Hdr;
- UINT32 TypeMask;
-
- //
- // Array of GUIDs.
- // Each GUID represents an OEM file type.
- //
- EFI_GUID Types[1];
-} EFI_FIRMWARE_VOLUME_EXT_ENTRY_OEM_TYPE;
-
-
-#endif
diff --git a/MdePkg/Pi/PiHob.h b/MdePkg/Pi/PiHob.h deleted file mode 100644 index 7a710a44a4..0000000000 --- a/MdePkg/Pi/PiHob.h +++ /dev/null @@ -1,258 +0,0 @@ -/* @file
- HOB related definitions in PI.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiHob.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_HOB_H__
-#define __PI_HOB_H__
-
-//
-// HobType of EFI_HOB_GENERIC_HEADER.
-//
-#define EFI_HOB_TYPE_HANDOFF 0x0001
-#define EFI_HOB_TYPE_MEMORY_ALLOCATION 0x0002
-#define EFI_HOB_TYPE_RESOURCE_DESCRIPTOR 0x0003
-#define EFI_HOB_TYPE_GUID_EXTENSION 0x0004
-#define EFI_HOB_TYPE_FV 0x0005
-#define EFI_HOB_TYPE_CPU 0x0006
-#define EFI_HOB_TYPE_MEMORY_POOL 0x0007
-#define EFI_HOB_TYPE_FV2 0x0009
-#define EFI_HOB_TYPE_LOAD_PEIM 0x000A
-#define EFI_HOB_TYPE_UNUSED 0xFFFE
-#define EFI_HOB_TYPE_END_OF_HOB_LIST 0xFFFF
-
-//
-// Describes the format and size of the data inside the HOB.
-// All HOBs must contain this generic HOB header.
-//
-typedef struct _EFI_HOB_GENERIC_HEADER {
- UINT16 HobType;
- UINT16 HobLength;
- UINT32 Reserved;
-} EFI_HOB_GENERIC_HEADER;
-
-
-//
-// Value of version ofinEFI_HOB_HANDOFF_INFO_TABLE.
-//
-#define EFI_HOB_HANDOFF_TABLE_VERSION 0x0009
-//
-// Contains general state information used by the HOB producer phase.
-// This HOB must be the first one in the HOB list.
-//
-typedef struct _EFI_HOB_HANDOFF_INFO_TABLE {
- EFI_HOB_GENERIC_HEADER Header;
- UINT32 Version;
- EFI_BOOT_MODE BootMode;
- EFI_PHYSICAL_ADDRESS EfiMemoryTop;
- EFI_PHYSICAL_ADDRESS EfiMemoryBottom;
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryTop;
- EFI_PHYSICAL_ADDRESS EfiFreeMemoryBottom;
- EFI_PHYSICAL_ADDRESS EfiEndOfHobList;
-} EFI_HOB_HANDOFF_INFO_TABLE;
-
-
-typedef struct _EFI_HOB_MEMORY_ALLOCATION_HEADER {
- EFI_GUID Name;
- EFI_PHYSICAL_ADDRESS MemoryBaseAddress;
- UINT64 MemoryLength;
- EFI_MEMORY_TYPE MemoryType;
-
- //
- // Padding for Itanium processor family
- //
- UINT8 Reserved[4];
-} EFI_HOB_MEMORY_ALLOCATION_HEADER;
-
-//
-// Describes all memory ranges used during the HOB producer
-// phase that exist outside the HOB list. This HOB type
-// describes how memory is used,
-// not the physical attributes of memory.
-//
-typedef struct _EFI_HOB_MEMORY_ALLOCATION {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
- //
- // Additional data pertaining to the ¡°Name¡± Guid memory
- // may go here.
- //
-} EFI_HOB_MEMORY_ALLOCATION;
-
-
-//
-// Describes the memory stack that is produced by the HOB producer
-// phase and upon which all postmemory-installed executable
-// content in the HOB producer phase is executing.
-//
-typedef struct _EFI_HOB_MEMORY_ALLOCATION_STACK {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_STACK;
-
-//
-// Defines the location of the boot-strap
-// processor (BSP) BSPStore (¡°Backing Store Pointer Store¡±).
-// This HOB is valid for the Itanium processor family only
-// register overflow store.
-//
-typedef struct _EFI_HOB_MEMORY_ALLOCATION_BSP_STORE {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER AllocDescriptor;
-} EFI_HOB_MEMORY_ALLOCATION_BSP_STORE;
-
-//
-// Defines the location and entry point of the HOB consumer phase.
-//
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_HOB_MEMORY_ALLOCATION_HEADER MemoryAllocationHeader;
- EFI_GUID ModuleName;
- EFI_PHYSICAL_ADDRESS EntryPoint;
-} EFI_HOB_MEMORY_ALLOCATION_MODULE;
-
-typedef UINT32 EFI_RESOURCE_TYPE;
-
-//
-// Value of ResourceType in EFI_HOB_RESOURCE_DESCRIPTOR.
-//
-#define EFI_RESOURCE_SYSTEM_MEMORY 0x00000000
-#define EFI_RESOURCE_MEMORY_MAPPED_IO 0x00000001
-#define EFI_RESOURCE_IO 0x00000002
-#define EFI_RESOURCE_FIRMWARE_DEVICE 0x00000003
-#define EFI_RESOURCE_MEMORY_MAPPED_IO_PORT 0x00000004
-#define EFI_RESOURCE_MEMORY_RESERVED 0x00000005
-#define EFI_RESOURCE_IO_RESERVED 0x00000006
-#define EFI_RESOURCE_MAX_MEMORY_TYPE 0x00000007
-
-
-typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
-
-//
-// These types can be ORed together as needed.
-//
-// The first three enumerations describe settings
-//
-#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001
-#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002
-#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004
-//
-// The rest of the settings describe capabilities
-//
-#define EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC 0x00000008
-#define EFI_RESOURCE_ATTRIBUTE_MULTIPLE_BIT_ECC 0x00000010
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_1 0x00000020
-#define EFI_RESOURCE_ATTRIBUTE_ECC_RESERVED_2 0x00000040
-#define EFI_RESOURCE_ATTRIBUTE_READ_PROTECTED 0x00000080
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_PROTECTED 0x00000100
-#define EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTED 0x00000200
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE 0x00000400
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE 0x00000800
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE 0x00001000
-#define EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE 0x00002000
-#define EFI_RESOURCE_ATTRIBUTE_16_BIT_IO 0x00004000
-#define EFI_RESOURCE_ATTRIBUTE_32_BIT_IO 0x00008000
-#define EFI_RESOURCE_ATTRIBUTE_64_BIT_IO 0x00010000
-#define EFI_RESOURCE_ATTRIBUTE_UNCACHED_EXPORTED 0x00020000
-
-//
-// Describes the resource properties of all fixed,
-// nonrelocatable resource ranges found on the processor
-// host bus during the HOB producer phase.
-//
-typedef struct _EFI_HOB_RESOURCE_DESCRIPTOR {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_GUID Owner;
- EFI_RESOURCE_TYPE ResourceType;
- EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute;
- EFI_PHYSICAL_ADDRESS PhysicalStart;
- UINT64 ResourceLength;
-} EFI_HOB_RESOURCE_DESCRIPTOR;
-
-//
-// Allows writers of executable content in the HOB producer phase to
-// maintain and manage HOBs with specific GUID.
-//
-typedef struct _EFI_HOB_GUID_TYPE {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_GUID Name;
-
- //
- // Guid specific data goes here
- //
-} EFI_HOB_GUID_TYPE;
-
-//
-// Details the location of firmware volumes that contain firmware files.
-//
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
-} EFI_HOB_FIRMWARE_VOLUME;
-
-//
-// Details the location of a firmware volume which was extracted
-// from a file within another firmware volume.
-//
-typedef struct {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_PHYSICAL_ADDRESS BaseAddress;
- UINT64 Length;
- EFI_GUID FvName;
- EFI_GUID FileName;
-} EFI_HOB_FIRMWARE_VOLUME2;
-
-
-//
-// Describes processor information, such as address space and I/O space capabilities.
-//
-typedef struct _EFI_HOB_CPU {
- EFI_HOB_GENERIC_HEADER Header;
- UINT8 SizeOfMemorySpace;
- UINT8 SizeOfIoSpace;
- UINT8 Reserved[6];
-} EFI_HOB_CPU;
-
-
-//
-// Describes pool memory allocations.
-//
-typedef struct _EFI_HOB_MEMORY_POOL {
- EFI_HOB_GENERIC_HEADER Header;
-} EFI_HOB_MEMORY_POOL;
-
-//
-// Union of all the possible HOB Types
-//
-typedef union {
- EFI_HOB_GENERIC_HEADER *Header;
- EFI_HOB_HANDOFF_INFO_TABLE *HandoffInformationTable;
- EFI_HOB_MEMORY_ALLOCATION *MemoryAllocation;
- EFI_HOB_MEMORY_ALLOCATION_BSP_STORE *MemoryAllocationBspStore;
- EFI_HOB_MEMORY_ALLOCATION_STACK *MemoryAllocationStack;
- EFI_HOB_MEMORY_ALLOCATION_MODULE *MemoryAllocationModule;
- EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor;
- EFI_HOB_GUID_TYPE *Guid;
- EFI_HOB_FIRMWARE_VOLUME *FirmwareVolume;
- EFI_HOB_CPU *Cpu;
- EFI_HOB_MEMORY_POOL *Pool;
- UINT8 *Raw;
-} EFI_PEI_HOB_POINTERS;
-
-
-#endif
diff --git a/MdePkg/Pi/PiMultiPhase.h b/MdePkg/Pi/PiMultiPhase.h deleted file mode 100644 index 2b3f2482ec..0000000000 --- a/MdePkg/Pi/PiMultiPhase.h +++ /dev/null @@ -1,91 +0,0 @@ -/** @file
- Include file matches things in PI for multiple module types.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiMultiPhase.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_MULTIPHASE_H__
-#define __PI_MULTIPHASE_H__
-
-#include <Uefi/UefiMultiPhase.h>
-
-#include <Pi/PiFirmwareVolume.h>
-#include <Pi/PiFirmwareFile.h>
-#include <Pi/PiBootMode.h>
-
-#include <Pi/PiHob.h>
-#include <Pi/PiDependency.h>
-
-//
-// Status Code Type Definition
-//
-typedef UINT32 EFI_STATUS_CODE_TYPE;
-
-//
-// A Status Code Type is made up of the code type and severity
-// All values masked by EFI_STATUS_CODE_RESERVED_MASK are
-// reserved for use by this specification.
-//
-#define EFI_STATUS_CODE_TYPE_MASK 0x000000FF
-#define EFI_STATUS_CODE_SEVERITY_MASK 0xFF000000
-#define EFI_STATUS_CODE_RESERVED_MASK 0x00FFFF00
-
-//
-// Definition of code types, all other values masked by
-// EFI_STATUS_CODE_TYPE_MASK are reserved for use by
-// this specification.
-//
-#define EFI_PROGRESS_CODE 0x00000001
-#define EFI_ERROR_CODE 0x00000002
-#define EFI_DEBUG_CODE 0x00000003
-
-//
-// Definitions of severities, all other values masked by
-// EFI_STATUS_CODE_SEVERITY_MASK are reserved for use by
-// this specification.
-// Uncontained errors are major errors that could not contained
-// to the specific component that is reporting the error
-// For example, if a memory error was not detected early enough,
-// the bad data could be consumed by other drivers.
-//
-#define EFI_ERROR_MINOR 0x40000000
-#define EFI_ERROR_MAJOR 0x80000000
-#define EFI_ERROR_UNRECOVERED 0x90000000
-#define EFI_ERROR_UNCONTAINED 0xa0000000
-
-//
-// Status Code Value Definition
-//
-typedef UINT32 EFI_STATUS_CODE_VALUE;
-//
-// A Status Code Value is made up of the class, subclass, and
-// an operation.
-//
-#define EFI_STATUS_CODE_CLASS_MASK 0xFF000000
-#define EFI_STATUS_CODE_SUBCLASS_MASK 0x00FF0000
-#define EFI_STATUS_CODE_OPERATION_MASK 0x0000FFFF
-//
-// Definition of Status Code extended data header.
-// The data will follow HeaderSize bytes from the beginning of
-// the structure and is Size bytes long.
-//
-typedef struct {
- UINT16 HeaderSize;
- UINT16 Size;
- EFI_GUID Type;
-} EFI_STATUS_CODE_DATA;
-
-#endif
diff --git a/MdePkg/Pi/PiPeiCis.h b/MdePkg/Pi/PiPeiCis.h deleted file mode 100644 index 059b90b084..0000000000 --- a/MdePkg/Pi/PiPeiCis.h +++ /dev/null @@ -1,805 +0,0 @@ -
-/** @file
- PI PEI master include file. This file should match the PI spec.
-
- Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- Module Name: PiPeiCis.h
-
- @par Revision Reference:
- Version 1.0.
-
-**/
-
-#ifndef __PI_PEICIS_H__
-#define __PI_PEICIS_H__
-
-#include <Pi/PiMultiPhase.h>
-
-#define EFI_NOT_AVAILABLE_YET EFIERR (28)
-
-//
-// Handles of EFI FV/FFS.
-//
-typedef VOID *EFI_PEI_FV_HANDLE;
-typedef VOID *EFI_PEI_FILE_HANDLE;
-
-//
-// Declare forward referenced data structures
-//
-typedef struct _EFI_PEI_SERVICES EFI_PEI_SERVICES;
-typedef struct _EFI_PEI_NOTIFY_DESCRIPTOR EFI_PEI_NOTIFY_DESCRIPTOR;
-
-
-#include <Ppi/CpuIo.h>
-#include <Ppi/PciCfg2.h>
-
-/**
- The PEI Dispatcher will invoke each PEIM one time. During this pass, the PEI
- Dispatcher will pass control to the PEIM at the AddressOfEntryPoint in the PE Header.
-
- @param FfsHeader Pointer to the FFS file header.
- @param PeiServices Describes the list of possible PEI Services.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEIM_ENTRY_POINT)(
- IN EFI_FFS_FILE_HEADER *FfsHeader,
- IN EFI_PEI_SERVICES **PeiServices
- );
-
-/**
- Entry point of the notification callback function itself within the PEIM.
-
- @param PeiServices Indirect reference to the PEI Services Table.
- @param NotifyDescriptor Address of the notification descriptor data structure.
- @param Ppi Address of the PPI that was installed.
-
- @return Status code
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEIM_NOTIFY_ENTRY_POINT) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
- IN VOID *Ppi
- );
-
-//
-// PEI Ppi Services List Descriptors
-//
-#define EFI_PEI_PPI_DESCRIPTOR_PIC 0x00000001
-#define EFI_PEI_PPI_DESCRIPTOR_PPI 0x00000010
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK 0x00000020
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH 0x00000040
-#define EFI_PEI_PPI_DESCRIPTOR_NOTIFY_TYPES 0x00000060
-#define EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST 0x80000000
-
-typedef struct {
- UINTN Flags;
- EFI_GUID *Guid;
- VOID *Ppi;
-} EFI_PEI_PPI_DESCRIPTOR;
-
-struct _EFI_PEI_NOTIFY_DESCRIPTOR {
- UINTN Flags;
- EFI_GUID *Guid;
- EFI_PEIM_NOTIFY_ENTRY_POINT Notify;
-};
-
-//
-// Describes request of the module to be loaded to
-// the permanent memory once it is available. Unlike most of the other HOBs,
-// this HOB is produced and consumed during the HOB producer phase.
-//
-typedef struct _EFI_HOB_LOAD_PEIM {
- EFI_HOB_GENERIC_HEADER Header;
- EFI_PEI_FILE_HANDLE FileHandle;
- EFI_PEIM_ENTRY_POINT EntryPoint;
- EFI_PEIM_ENTRY_POINT InMemEntryPoint;
-} EFI_HOB_LOAD_PEIM;
-
-
-/**
- This service is the first one provided by the PEI Foundation. This function
- installs an interface in the PEI PPI database by GUID. The purpose of the
- service is to publish an interface that other parties can use to call
- additional PEIMs.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table
- published by the PEI Foundation.
- @param PpiList A pointer to the list of interfaces that the caller shall install.
-
- @retval EFI_SUCCESS The interface was successfully installed.
- @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
- @retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_INSTALL_PPI) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_PPI_DESCRIPTOR *PpiList
- );
-
-/**
- This function reinstalls an interface in the PEI PPI database by GUID.
- The purpose of the service is to publish an interface that other parties
- can use to replace a same-named interface in the protocol database
- with a different interface.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table
- published by the PEI Foundation.
- @param OldPpi A pointer to the former PPI in the database.
- @param NewPpi A pointer to the new interfaces that the caller shall install.
-
- @retval EFI_SUCCESS The interface was successfully installed.
- @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the
- list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
- @retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
- @retval EFI_NOT_FOUND The PPI for which the reinstallation was requested has not been installed.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_REINSTALL_PPI) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,
- IN EFI_PEI_PPI_DESCRIPTOR *NewPpi
- );
-
-/**
- This function locates an interface in the PEI PPI database by GUID.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES published by the PEI Foundation.
- @param Guid A pointer to the GUID whose corresponding interface needs to be found.
- @param Instance The N-th instance of the interface that is required.
- @param PpiDescriptor A pointer to instance of the EFI_PEI_PPI_DESCRIPTOR.
- @param Ppi A pointer to the instance of the interface.
-
- @retval EFI_SUCCESS The interface was successfully returned.
- @retval EFI_NOT_FOUND The PPI descriptor is not found in the database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_LOCATE_PPI) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_GUID *Guid,
- IN UINTN Instance,
- IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor,
- IN OUT VOID **Ppi
- );
-
-/**
- This function installs a notification service to be called back when a
- given interface is installed or reinstalled. The purpose of the service
- is to publish an interface that other parties can use to call additional PPIs
- that may materialize later.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
- @param NotifyList A pointer to the list of notification interfaces that the caller shall install.
-
- @retval EFI_SUCCESS The interface was successfully installed.
- @retval EFI_INVALID_PARAMETER The PpiList pointer is NULL or Any of the PEI PPI descriptors in the
- list do not have the EFI_PEI_PPI_DESCRIPTOR_PPI bit set in the Flags field.
- @retval EFI_OUT_OF_RESOURCES There is no additional space in the PPI database.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_NOTIFY_PPI) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList
- );
-
-/**
- This function returns the present value of the boot mode.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param BootMode A pointer to contain the value of the boot mode.
-
- @retval EFI_SUCCESS The boot mode was returned successfully.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_GET_BOOT_MODE) (
- IN EFI_PEI_SERVICES **PeiServices,
- OUT EFI_BOOT_MODE *BootMode
- );
-
-/**
- This function sets the value of the boot mode.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
- @param BootMode The value of the boot mode to set.
-
- @retval EFI_SUCCESS The boot mode was returned successfully.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_SET_BOOT_MODE) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_BOOT_MODE BootMode
- );
-
-/**
- This function returns the pointer to the list of Hand-Off Blocks (HOBs) in memory.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
- @param HobList A pointer to the list of HOBs that the PEI Foundation will initialize
-
- @retval EFI_SUCCESS The list was successfully returned.
- @retval EFI_NOT_AVAILABLE_YET The HOB list is not yet published.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_GET_HOB_LIST) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN OUT VOID **HobList
- );
-
-/**
- This service published by the PEI Foundation abstracts the creation of a Hand-Off Block's (HOB's) headers.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param Type The type of HOB to be installed.
- @param Length The length of the HOB to be added.
- @param Hob The address of a pointer that will contain the HOB header.
-
- @retval EFI_SUCCESS The HOB was successfully created.
- @retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_CREATE_HOB) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN UINT16 Type,
- IN UINT16 Length,
- IN OUT VOID **Hob
- );
-
-/**
- The purpose of the service is to abstract the capability of the PEI
- Foundation to discover instances of firmware volumes in the system.
- Given the input file pointer, this service searches for the next
- matching file in the Firmware File System (FFS) volume.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param Instance This instance of the firmware volume to find. The value 0 is the Boot Firmware Volume (BFV).
- @param FwVolHeader Pointer to the firmware volume header of the volume to return.
-
- @retval EFI_SUCCESS The volume was found.
- @retval EFI_NOT_FOUND The volume was not found.
- @retval EFI_INVALID_PARAMETER FwVolHeader is NULL
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_VOLUME2) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN UINTN Instance,
- IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader
- );
-
-/**
- The purpose of the service is to abstract the capability of the PEI
- Foundation to discover instances of firmware files in the system.
- Given the input file pointer, this service searches for the next matching
- file in the Firmware File System (FFS) volume.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param SearchType A filter to find files only of this type.
- @param FwVolHeader Pointer to the firmware volume header of the volume to search.This parameter
- must point to a valid FFS volume.
- @param FileHeader Pointer to the current file from which to begin searching.This pointer will be
- updated upon return to reflect the file found.
-
- @retval EFI_SUCCESS The file was found.
- @retval EFI_NOT_FOUND The file was not found.
- @retval EFI_NOT_FOUND The header checksum was not zero.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_FIND_NEXT_FILE2) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_FV_FILETYPE SearchType,
- IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,
- IN OUT EFI_FFS_FILE_HEADER **FileHeader
- );
-
-/**
- Given the input file pointer, this service searches for the next
- matching file in the Firmware File System (FFS) volume.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param SectionType The value of the section type to find.
- @param FfsFileHeader A pointer to the file header that contains the set of sections to be searched.
- @param SectionData A pointer to the discovered section, if successful.
-
- @retval EFI_SUCCESS The section was found.
- @retval EFI_NOT_FOUND The section was not found.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_FIND_SECTION_DATA2) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_SECTION_TYPE SectionType,
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,
- IN OUT VOID **SectionData
- );
-
-/**
- This function registers the found memory configuration with the PEI Foundation.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param MemoryBegin The value of a region of installed memory
- @param MemoryLength The corresponding length of a region of installed memory.
-
- @retval EFI_SUCCESS The region was successfully installed in a HOB.
- @retval EFI_INVALID_PARAMETER MemoryBegin and MemoryLength are illegal for this system.
- @retval EFI_OUT_OF_RESOURCES There is no additional space for HOB creation.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_INSTALL_PEI_MEMORY) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_PHYSICAL_ADDRESS MemoryBegin,
- IN UINT64 MemoryLength
- );
-
-/**
- The purpose of the service is to publish an interface that allows
- PEIMs to allocate memory ranges that are managed by the PEI Foundation.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param MemoryType The type of memory to allocate.
- @param Pages The number of contiguous 4 KB pages to allocate.
- @param Memory Pointer to a physical address. On output, the address is set to the base
- of the page range that was allocated.
-
- @retval EFI_SUCCESS The memory range was successfully allocated.
- @retval EFI_OUT_OF_RESOURCES The pages could not be allocated.
- @retval EFI_INVALID_PARAMETER Type is not equal to AllocateAnyPages.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_ALLOCATE_PAGES) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_MEMORY_TYPE MemoryType,
- IN UINTN Pages,
- IN OUT EFI_PHYSICAL_ADDRESS *Memory
- );
-
-/**
- The purpose of this service is to publish an interface that
- allows PEIMs to allocate memory ranges that are managed by the PEI Foundation.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param Size The number of bytes to allocate from the pool.
- @param Buffer If the call succeeds, a pointer to a pointer to the allocated buffer; undefined otherwise.
-
- @retval EFI_SUCCESS The allocation was successful.
- @retval EFI_OUT_OF_RESOURCES There is not enough heap to allocate the requested size.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_ALLOCATE_POOL) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN UINTN Size,
- OUT VOID **Buffer
- );
-
-/**
- This service copies the contents of one buffer to another buffer.
-
- @param Destination Pointer to the destination buffer of the memory copy.
- @param Source Pointer to the source buffer of the memory copy
- @param Length Number of bytes to copy from Source to Destination.
-
- @return None
-
-**/
-typedef
-VOID
-(EFIAPI *EFI_PEI_COPY_MEM) (
- IN VOID *Destination,
- IN VOID *Source,
- IN UINTN Length
- );
-
-/**
- The service fills a buffer with a specified value.
-
- @param Buffer Pointer to the buffer to fill.
- @param Size Number of bytes in Buffer to fill.
- @param Value Value to fill Buffer with
-
- @return None
-
-**/
-typedef
-VOID
-(EFIAPI *EFI_PEI_SET_MEM) (
- IN VOID *Buffer,
- IN UINTN Size,
- IN UINT8 Value
- );
-
-/**
- This service publishes an interface that allows PEIMs to report status codes.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
- @param Type Indicates the type of status code being reported.
- @param Value Describes the current status of a hardware or
- software entity. This includes information about the class and
- subclass that is used to classify the entity as well as an operation.
- For progress codes, the operation is the current activity.
- For error codes, it is the exception.For debug codes,it is not defined at this time.
- @param Instance The enumeration of a hardware or software entity within
- the system. A system may contain multiple entities that match a class/subclass
- pairing. The instance differentiates between them. An instance of 0 indicates
- that instance information is unavailable, not meaningful, or not relevant.
- Valid instance numbers start with 1.
- @param CallerId This optional parameter may be used to identify the caller.
- This parameter allows the status code driver to apply different rules to
- different callers.
- @param Data This optional parameter may be used to pass additional data.
-
- @retval EFI_SUCCESS The function completed successfully.
- @retval EFI_NOT_AVAILABLE_YET No progress code provider has installed an interface in the system.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_REPORT_STATUS_CODE) (
- IN EFI_PEI_SERVICES **PeiServices,
- IN EFI_STATUS_CODE_TYPE Type,
- IN EFI_STATUS_CODE_VALUE Value,
- IN UINT32 Instance,
- IN EFI_GUID *CallerId OPTIONAL,
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL
- );
-
-/**
- Resets the entire platform.
-
- @param PeiServices An indirect pointer to the EFI_PEI_SERVICES
- table published by the PEI Foundation.
-
- @retval EFI_SUCCESS The function completed successfully.
- @retval EFI_NOT_AVAILABLE_YET The service has not been installed yet.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_RESET_SYSTEM) (
- IN EFI_PEI_SERVICES **PeiServices
- );
-
-/**
-
- This service searches for files with a specific name, within
- either the specified firmware volume or all firmware volumes.
- The service returns a file handle of type EFI_PEI_FILE_HANDLE,
- which must be unique within the system.
-
- @param FileName A pointer to the name of the file to
- find within the firmware volume.
-
- @param VolumeHandle The firmware volume to search FileHandle
- Upon exit, points to the found file's
- handle or NULL if it could not be found.
-
- @retval EFI_SUCCESS File was found.
-
- @retval EFI_NOT_FOUND File was not found.
-
- @retval EFI_INVALID_PARAMETER VolumeHandle or FileHandle or
- FileName was NULL.
-
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_FIND_BY_NAME) (
- IN CONST EFI_GUID *FileName,
- IN CONST EFI_PEI_FV_HANDLE VolumeHandle,
- OUT EFI_PEI_FILE_HANDLE *FileHandle
-);
-
-
-/**
-
- @param FileName Name of the file.
-
- @param FileType File type. See EFI_FV_FILETYPE, which is
- defined in the Platform Initialization
- Firmware Storage Specification.
-
- @param FileAttributes Attributes of the file. Type
- EFI_FV_FILE_ATTRIBUTES is defined in
- the Platform Initialization Firmware
- Storage Specification.
-
- @param Buffer Points to the file's data (not the header).
- Not valid if EFI_FV_FILE_ATTRIB_MEMORY_MAPPED
- is zero.
-
- @param BufferSize Size of the file's data.
-
-**/
-typedef struct {
- EFI_GUID FileName;
- EFI_FV_FILETYPE FileType;
- EFI_FV_FILE_ATTRIBUTES FileAttributes;
- VOID *Buffer;
- UINT32 BufferSize;
-} EFI_FV_FILE_INFO;
-
-/**
-
- This function returns information about a specific file,
- including its file name, type, attributes, starting address and
- size. If the firmware volume is not memory mapped then the
- Buffer member will be NULL.
-
- @param FileHandle Handle of the file.
-
- @param FileInfo Upon exit, points to the file¡¯s
- information.
-
- @retval EFI_SUCCESS File information returned.
-
- @retval EFI_INVALID_PARAMETER If FileHandle does not
- represent a valid file.
-
- @retval EFI_INVALID_PARAMETER If FileInfo is NULL.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_GET_FILE_INFO) (
- IN CONST EFI_PEI_FILE_HANDLE FileHandle,
- OUT EFI_FV_FILE_INFO *FileInfo
-);
-
-
-/**
-
- @param FvAttributes Attributes of the firmware volume. Type
- EFI_FVB_ATTRIBUTES is defined in the
- Platform Initialization Firmware Storage
- Specficiation.
-
- @param FvFormat Format of the firmware volume. For PI
- Architecture Firmware Volumes, this can
- be copied from FileSystemGuid in
- EFI_FIRMWARE_VOLUME_HEADER.
-
- @param FvName Name of the firmware volume. For PI
- Architecture Firmware Volumes, this can
- be copied from VolumeName in the
- extended header of
- EFI_FIRMWARE_VOLUME_HEADER.
-
- @param FvStart Points to the first byte of the firmware
- volume, if bit EFI_FVB_MEMORY_MAPPED is
- set in FvAttributes. FvSize Size of the
- firmware volume.
-
-**/
-typedef struct {
- EFI_FVB_ATTRIBUTES FvAttributes;
- EFI_GUID FvFormat;
- EFI_GUID FvName;
- VOID *FvStart;
- UINT64 FvSize;
-} EFI_FV_INFO;
-
-/**
-
- This function returns information about a specific firmware
- volume, including its name, type, attributes, starting address
- and size.
-
- @param VolumeHandle Handle of the volume.
-
- @param VolumeInfo Upon exit, points to the volume¡¯s
- information.
-
- @retval EFI_SUCCESS File information returned.
-
- @retval EFI_INVALID_PARAMETER If FileHandle does not
- represent a valid file.
-
- @retval EFI_INVALID_PARAMETER If FileInfo is NULL.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_FFS_GET_VOLUME_INFO) (
- IN CONST EFI_PEI_FV_HANDLE *VolumeHandle,
- OUT EFI_FV_INFO *VolumeInfo
-);
-
-/**
-
- This service registers a file handle so that after memory is
- available, the PEIM will be re-loaded into permanent memory and
- re-initialized. The PEIM registered this way will always be
- initialized twice. The first time, this function call will
- return EFI_SUCCESS. The second time, this function call will
- return EFI_ALREADY_STARTED. Depending on the order in which
- PEIMs are dispatched, the PEIM making this call may be
- initialized after permanent memory is installed, even the first
- time.
-
- @param FileHandle PEIM¡¯s file handle. Must be the currently
- xecuting PEIM.
-
- @retval EFI_SUCCESS The PEIM was successfully registered for
- shadowing.
-
- @retval EFI_ALREADY_STARTED The PEIM was previously
- registered for shadowing.
-
- @retval EFI_NOT_FOUND The FileHandle does not refer to a
- valid file handle.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_REGISTER_FOR_SHADOW) (
- IN CONST EFI_PEI_FILE_HANDLE FileHandle
-);
-
-
-//
-// PEI Specification Revision information
-//
-#define PEI_SPECIFICATION_MAJOR_REVISION 1
-#define PEI_SPECIFICATION_MINOR_REVISION 0
-
-//
-// PEI Services Table
-//
-#define PEI_SERVICES_SIGNATURE 0x5652455320494550
-#define PEI_SERVICES_REVISION (PEI_SPECIFICATION_MAJOR_REVISION<<16) | (PEI_SPECIFICATION_MINOR_REVISION)
-
-struct EFI_PEI_SERVICES {
- EFI_TABLE_HEADER Hdr;
- //
- // PPI Functions
- //
- EFI_PEI_INSTALL_PPI InstallPpi;
- EFI_PEI_REINSTALL_PPI ReInstallPpi;
- EFI_PEI_LOCATE_PPI LocatePpi;
- EFI_PEI_NOTIFY_PPI NotifyPpi;
- //
- // Boot Mode Functions
- //
- EFI_PEI_GET_BOOT_MODE GetBootMode;
- EFI_PEI_SET_BOOT_MODE SetBootMode;
- //
- // HOB Functions
- //
- EFI_PEI_GET_HOB_LIST GetHobList;
- EFI_PEI_CREATE_HOB CreateHob;
- //
- // Firmware Volume Functions
- //
- EFI_PEI_FFS_FIND_NEXT_VOLUME2 FfsFindNextVolume;
- EFI_PEI_FFS_FIND_NEXT_FILE2 FfsFindNextFile;
- EFI_PEI_FFS_FIND_SECTION_DATA2 FfsFindSectionData;
- //
- // PEI Memory Functions
- //
- EFI_PEI_INSTALL_PEI_MEMORY InstallPeiMemory;
- EFI_PEI_ALLOCATE_PAGES AllocatePages;
- EFI_PEI_ALLOCATE_POOL AllocatePool;
- EFI_PEI_COPY_MEM CopyMem;
- EFI_PEI_SET_MEM SetMem;
- //
- // Status Code
- EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;
- //
- // Reset
- //
- EFI_PEI_RESET_SYSTEM ResetSystem;
- //
- // (the following interfaces are installed by publishing PEIM)
- //
- // I/O Abstractions
- //
- EFI_PEI_CPU_IO_PPI *CpuIo;
- EFI_PEI_PCI_CFG2_PPI *PciCfg;
- //
- // Future Installed Services
- EFI_PEI_FFS_FIND_BY_NAME FfsFindFileByName;
- EFI_PEI_FFS_GET_FILE_INFO FfsGetFileInfo;
- EFI_PEI_FFS_GET_VOLUME_INFO FfsGetVolumeInfo;
- EFI_PEI_REGISTER_FOR_SHADOW RegisterForShadow;
-} ;
-
-
-typedef struct _EFI_SEC_PEI_HAND_OFF {
- //
- // Size of the data structure.
- //
- UINT16 DataSize;
-
- //
- // Points to the first byte of the boot firmware volume,
- // which the PEI Dispatcher should search for
- // PEI modules.
- //
- VOID *BootFirmwareVolumeBase;
-
- //
- // Size of the boot firmware volume, in bytes.
- //
- UINTN BootFirmwareVolumeSize;
-
- //
- // Points to the first byte of the temporary RAM.
- //
- VOID *TemporaryRamBase;
-
- //
- // Size of the temporary RAM, in bytes.
- //
- UINTN TemporaryRamSize;
-
- //
- // Points to the first byte of the temporary RAM
- // available for use by the PEI Foundation. The area
- // described by PeiTemporaryRamBase and PeiTemporaryRamSize
- // must not extend outside beyond the area described by
- // TemporaryRamBase & TemporaryRamSize. This area should not
- // overlap with the area reported by StackBase and
- // StackSize.
- //
- VOID *PeiTemporaryRamBase;
-
- //
- // Size of the available temporary RAM available for
- // use by the PEI Foundation, in bytes.
- //
- UINTN PeiTemporaryRamSize;
-
- //
- // Points to the first byte of the stack.
- // This are may be part of the memory described by
- // TemporaryRamBase and TemporaryRamSize
- // or may be an entirely separate area.
- //
- VOID *StackBase;
-
- //
- // Size of the stack, in bytes.
- //
- UINTN StackSize;
-} EFI_SEC_PEI_HAND_OFF;
-
-#endif
|