X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FPi%2FPiDxeCis.h;h=17543fa72bc6741b97b4f5f986d747d0de7a112e;hp=c98c6bc0f6a00f7be0c8b7153ef580d4c886b2c8;hb=53e6937c20448f7c5c761906e9f1765a57802f63;hpb=0047820e1b4e9db0d0578c47535054ca183b14dc diff --git a/MdePkg/Include/Pi/PiDxeCis.h b/MdePkg/Include/Pi/PiDxeCis.h index c98c6bc0f6..17543fa72b 100644 --- a/MdePkg/Include/Pi/PiDxeCis.h +++ b/MdePkg/Include/Pi/PiDxeCis.h @@ -1,42 +1,74 @@ /** @file Include file matches things in PI. - Copyright (c) 2006 - 2008, 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 +Copyright (c) 2006 - 2011, 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 that 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. +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. @par Revision Reference: - PI Version 1.0 + PI Version 1.2 **/ #ifndef __PI_DXECIS_H__ #define __PI_DXECIS_H__ +#include #include /// -/// Global Coherencey Domain types - Memory type +/// Global Coherencey Domain types - Memory type. /// typedef enum { + /// + /// A memory region that is visible to the boot processor. However, there are no system + /// components that are currently decoding this memory region. + /// EfiGcdMemoryTypeNonExistent, + /// + /// A memory region that is visible to the boot processor. This memory region is being + /// decoded by a system component, but the memory region is not considered to be either + /// system memory or memory-mapped I/O. + /// EfiGcdMemoryTypeReserved, + /// + /// A memory region that is visible to the boot processor. A memory controller is + /// currently decoding this memory region and the memory controller is producing a + /// tested system memory region that is available to the memory services. + /// EfiGcdMemoryTypeSystemMemory, + /// + /// A memory region that is visible to the boot processor. This memory region is + /// currently being decoded by a component as memory-mapped I/O that can be used to + /// access I/O devices in the platform. + /// EfiGcdMemoryTypeMemoryMappedIo, EfiGcdMemoryTypeMaximum } EFI_GCD_MEMORY_TYPE; /// -/// Global Coherencey Domain types - IO type +/// Global Coherencey Domain types - IO type. /// typedef enum { + /// + /// An I/O region that is visible to the boot processor. However, there are no system + /// components that are currently decoding this I/O region. + /// EfiGcdIoTypeNonExistent, + /// + /// An I/O region that is visible to the boot processor. This I/O region is currently being + /// decoded by a system component, but the I/O region cannot be used to access I/O devices. + /// EfiGcdIoTypeReserved, + /// + /// An I/O region that is visible to the boot processor. This I/O region is currently being + /// decoded by a system component that is producing I/O ports that can be used to access I/O devices. + /// EfiGcdIoTypeIo, EfiGcdIoTypeMaximum } EFI_GCD_IO_TYPE; @@ -45,22 +77,42 @@ typedef enum { /// The type of allocation to perform. /// typedef enum { + /// + /// The GCD memory space map is searched from the lowest address up to the highest address + /// looking for unallocated memory ranges. + /// EfiGcdAllocateAnySearchBottomUp, + /// + /// The GCD memory space map is searched from the lowest address up + /// to the specified MaxAddress looking for unallocated memory ranges. + /// EfiGcdAllocateMaxAddressSearchBottomUp, + /// + /// The GCD memory space map is checked to see if the memory range starting + /// at the specified Address is available. + /// EfiGcdAllocateAddress, + /// + /// The GCD memory space map is searched from the highest address down to the lowest address + /// looking for unallocated memory ranges. + /// EfiGcdAllocateAnySearchTopDown, + /// + /// The GCD memory space map is searched from the specified MaxAddress + /// down to the lowest address looking for unallocated memory ranges. + /// EfiGcdAllocateMaxAddressSearchTopDown, EfiGcdMaxAllocateType } EFI_GCD_ALLOCATE_TYPE; /// -/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR +/// EFI_GCD_MEMORY_SPACE_DESCRIPTOR. /// typedef struct { /// /// The physical address of the first byte in the memory region. Type /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function - /// description in the UEFI 2.0 specification + /// description in the UEFI 2.0 specification. /// EFI_PHYSICAL_ADDRESS BaseAddress; @@ -82,7 +134,7 @@ typedef struct { UINT64 Attributes; /// /// Type of the memory region. Type EFI_GCD_MEMORY_TYPE is defined in the - /// AddMemorySpace() function description + /// AddMemorySpace() function description. /// EFI_GCD_MEMORY_TYPE GcdMemoryType; @@ -105,7 +157,7 @@ typedef struct { } EFI_GCD_MEMORY_SPACE_DESCRIPTOR; /// -/// EFI_GCD_IO_SPACE_DESCRIPTOR +/// EFI_GCD_IO_SPACE_DESCRIPTOR. /// typedef struct { /// @@ -173,7 +225,7 @@ typedef struct { added to the global coherency domain of the processor. @retval EFI_ACCESS_DENIED One or more bytes of the memory resource range specified by BaseAddress and Length was allocated - in a prior call to AllocateMemorySpace().. + in a prior call to AllocateMemorySpace(). **/ typedef @@ -528,7 +580,7 @@ EFI_STATUS @retval EFI_SUCCESS One or more DXE driver were dispatched. @retval EFI_NOT_FOUND No DXE drivers were dispatched. @retval EFI_ALREADY_STARTED An attempt is being made to start the DXE Dispatcher recursively. - Thus no action was taken. + Thus, no action was taken. **/ typedef @@ -602,10 +654,16 @@ EFI_STATUS // // DXE Services Table // -#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL -#define DXE_SERVICES_REVISION ((1<<16) | (00)) +#define DXE_SERVICES_SIGNATURE 0x565245535f455844ULL +#define DXE_SPECIFICATION_MAJOR_REVISION 1 +#define DXE_SPECIFICATION_MINOR_REVISION 20 +#define DXE_SERVICES_REVISION ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION)) typedef struct { + /// + /// The table header for the DXE Services Table. + /// This header contains the DXE_SERVICES_SIGNATURE and DXE_SERVICES_REVISION values. + /// EFI_TABLE_HEADER Hdr; // @@ -639,4 +697,19 @@ typedef struct { typedef DXE_SERVICES EFI_DXE_SERVICES; + +/** + The function prototype for invoking a function on an Application Processor. + + This definition is used by the UEFI MP Serices Protocol, and the + PI SMM System Table. + + @param[in,out] Buffer The pointer to private data buffer. +**/ +typedef +VOID +(EFIAPI *EFI_AP_PROCEDURE)( + IN OUT VOID *Buffer + ); + #endif