diff options
Diffstat (limited to 'Include/DXE.h')
-rw-r--r-- | Include/DXE.h | 266 |
1 files changed, 266 insertions, 0 deletions
diff --git a/Include/DXE.h b/Include/DXE.h new file mode 100644 index 0000000..5934dae --- /dev/null +++ b/Include/DXE.h @@ -0,0 +1,266 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2005, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** + +//********************************************************************** +// $Header: /Alaska/BIN/Core/Include/DXE.h 5 2/05/11 1:54p Artems $ +// +// $Revision: 5 $ +// +// $Date: 2/05/11 1:54p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/BIN/Core/Include/DXE.h $ +// +// 5 2/05/11 1:54p Artems +// Changed DXE_SERVICES_REVISION to match PI_SPECIFICATION version +// +// 4 10/12/06 1:00p Felixp +// +// 3 10/07/06 10:17a Felixp +// UEFI 2.0 definitions added +// +// 2 3/04/05 10:24a Mandal +// +// 1 1/28/05 12:44p Felixp +// +// 2 1/18/05 3:21p Felixp +// PrintDebugMessage renamed to Trace +// +// 1 12/23/04 9:41a Felixp +// +// 6 9/24/04 9:01p Yakovlevs +// +// 5 3/26/04 12:44a Felixp +// +// 4 3/23/04 4:56p Felixp +// +// 3 3/19/04 10:30a Markw +// Added HOB_LIST_GUID. +// +// 2 3/03/04 5:04p Felixp +// +// 1 2/26/04 3:23p Felixp +// +//********************************************************************** +//<AMI_FHDR_START> +// +// Name: dxe.h +// +// Description: DXE definitions +// +//<AMI_FHDR_END> +//********************************************************************** +#ifndef __DXE__H__ +#define __DXE__H__ +#ifdef __cplusplus +extern "C" { +#endif +#include <efi.h> + +#define DXE_SERVICES_TABLE_GUID \ + {0x5ad34ba,0x6f02,0x4214,0x95,0x2e,0x4d,0xa0,0x39,0x8e,0x2b,0xb9} +#define HOB_LIST_GUID \ + {0x7739f24c,0x93d7,0x11d4,0x9a,0x3a,0x0,0x90,0x27,0x3f,0xc1,0x4d} +#define EFI_APRIORI_GUID \ + {0xfc510ee7,0xffdc,0x11d4,0xbd,0x41,0x0,0x80,0xc7,0x3c,0x88,0x81} + +#define DXE_SERVICES_SIGNATURE 0x565245535f455844 +#ifndef PI_SPECIFICATION_VERSION +#define DXE_SERVICES_REVISION 91 +#else +#define DXE_SERVICES_REVISION PI_SPECIFICATION_VERSION +#endif + +//Let's make it backward compatible +//#if EFI_SPECIFICATION_VERSION<0x20000 +//#if EFI_SPECIFICATION_VERSION<0x20000 +// Additional event types defined by DXE CIS +#define EVT_NOTIFY_SIGNAL_ALL 0x00000400 +#define EVT_SIGNAL_READY_TO_BOOT 0x00000203 +#define EVT_SIGNAL_LEGACY_BOOT 0x00000204 +//#endif + +//Legacy boot event group defined by PI DXE CIS 1.0 +#define EFI_EVENT_LEGACY_BOOT_GUID \ + { 0x2a571201, 0x4966, 0x47f6, 0x8b, 0x86, 0xf3, 0x1e, 0x41, 0xf3, 0x2f, 0x10 } +#define EFI_EVENT_GROUP_DXE_DISPATCH \ + {0x7081e22f, 0xcac6, 0x4053, 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5} + +//Define default memory attributes for MMIO and System Memory +#define GCD_COMMON_MMIO_CAPS (EFI_MEMORY_UC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_WP | EFI_MEMORY_RUNTIME) + +// 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; + +typedef EFI_STATUS (*EFI_ADD_MEMORY_SPACE)( + IN EFI_GCD_MEMORY_TYPE GcdMemoryType, + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINT64 Length, IN UINT64 Capabilities +); + +typedef EFI_STATUS (*EFI_ADD_IO_SPACE)( + IN EFI_GCD_IO_TYPE GcdIoType, IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINT64 Length +); + + +typedef EFI_STATUS (*EFI_GET_MEMORY_SPACE_DESCRIPTOR)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor +); + +typedef EFI_STATUS (*EFI_GET_IO_SPACE_DESCRIPTOR)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + OUT EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor +); + +typedef EFI_STATUS (*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 +); + +typedef EFI_STATUS (*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 +); + +typedef EFI_STATUS (*EFI_FREE_MEMORY_SPACE)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length +); + +typedef EFI_STATUS (*EFI_FREE_IO_SPACE)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length +); + +typedef EFI_STATUS (*EFI_SET_MEMORY_SPACE_ATTRIBUTES)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINT64 Length, IN UINT64 Attributes +); + +typedef EFI_STATUS (*EFI_REMOVE_MEMORY_SPACE)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length +); + +typedef EFI_STATUS (*EFI_REMOVE_IO_SPACE)( + IN EFI_PHYSICAL_ADDRESS BaseAddress, IN UINT64 Length +); + +typedef EFI_STATUS (*EFI_GET_MEMORY_SPACE_MAP)( + OUT UINTN *NumberOfDescriptors, + OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap +); + +typedef EFI_STATUS (*EFI_GET_IO_SPACE_MAP)( + OUT UINTN *NumberOfDescriptors, + OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap +); + +// Dispatcher Services +typedef EFI_STATUS (*EFI_DISPATCH) (); +typedef EFI_STATUS (*EFI_SCHEDULE) ( + IN EFI_HANDLE FirmwareVolumeHandle, IN EFI_GUID *FileName +); +typedef EFI_STATUS (*EFI_TRUST) ( + IN EFI_HANDLE FirmwareVolumeHandle, IN EFI_GUID *FileName +); +typedef EFI_STATUS (*EFI_PROCESS_FIRMWARE_VOLUME) ( + IN VOID *FirmwareVolumeHeader, IN UINTN Size, + OUT EFI_HANDLE *FirmwareVolumeHandle +); + +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; +/****** DO NOT WRITE BELOW THIS LINE *******/ +#ifdef __cplusplus +} +#endif +#endif +//********************************************************************** +//** ** +//** (C)Copyright 1985-2005, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** |