+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR>\r
-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:\r
-\r
- TianoSpecApi.h\r
-\r
-Abstract:\r
-\r
- Tiano intrinsic definitions in Tiano spec.\r
-\r
-\r
---*/\r
-\r
-#ifndef _TIANO_SPEC_API_H_\r
-#define _TIANO_SPEC_API_H_\r
-\r
-\r
-#if ((TIANO_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION < 0x00020000))\r
-//\r
-// Prior to UEFI 2.0 Tiano extended these enums. This was replaced by\r
-// CreateEventEx() Event Groups in UEFI 2.0\r
-//\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400\r
-\r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204\r
-#endif\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ADD_MEMORY_SPACE) (\r
- IN EFI_GCD_MEMORY_TYPE GcdMemoryType,\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length,\r
- IN UINT64 Capabilities\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Adds reserved memory, system memory, or memory-mapped I/O resources to the\r
-global coherency domain of the processor.\r
-\r
-Arguments:\r
- \r
- GcdMemoryType - Memory type of the memory space.\r
- \r
- BaseAddress - Base address of the memory space.\r
- \r
- Length - Length of the memory space.\r
- \r
- Capabilities - alterable attributes of the memory space.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Merged this memory space into GCD map. \r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ALLOCATE_MEMORY_SPACE) (\r
- IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,\r
- IN EFI_GCD_MEMORY_TYPE GcdMemoryType,\r
- IN UINTN Alignment,\r
- IN UINT64 Length,\r
- IN OUT EFI_PHYSICAL_ADDRESS * BaseAddress,\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_HANDLE DeviceHandle OPTIONAL\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocates nonexistent memory, reserved memory, system memory, or memorymapped\r
-I/O resources from the global coherency domain of the processor.\r
-\r
-Arguments:\r
- \r
- GcdAllocateType - The type of allocate operation\r
- \r
- GcdMemoryType - The desired memory type\r
- \r
- Alignment - Align with 2^Alignment\r
- \r
- Length - Length to allocate\r
- \r
- BaseAddress - Base address to allocate\r
- \r
- Imagehandle - The image handle consume the allocated space.\r
- \r
- DeviceHandle - The device handle consume the allocated space.\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Invalid parameter.\r
- \r
- EFI_NOT_FOUND - No descriptor contains the desired space.\r
- \r
- EFI_SUCCESS - Memory space successfully allocated.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_FREE_MEMORY_SPACE) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:Routine Description:\r
-\r
- Frees nonexistent memory, reserved memory, system memory, or memory-mapped\r
-I/O resources from the global coherency domain of the processor.\r
-\r
-Arguments:\r
- \r
- BaseAddress - Base address of the segment.\r
- \r
- Length - Length of the segment.\r
- \r
-Returns:\r
-\r
- EFI_SUCCESS - Space successfully freed.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_REMOVE_MEMORY_SPACE) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:Routine Description:\r
-\r
- Removes reserved memory, system memory, or memory-mapped I/O resources from\r
-the global coherency domain of the processor.\r
-\r
-Arguments:\r
- \r
- BaseAddress - Base address of the memory space.\r
- \r
- Length - Length of the memory space.\r
- \r
-Returns:\r
-\r
- EFI_SUCCESS - Successfully remove a segment of memory space.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_MEMORY_SPACE_DESCRIPTOR) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR * Descriptor\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Retrieves the descriptor for a memory region containing a specified address.\r
-\r
-Arguments:\r
-\r
- BaseAddress - Specified start address\r
- \r
- Descriptor - Specified length\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Invalid parameter\r
- \r
- EFI_SUCCESS - Successfully get memory space descriptor.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_MEMORY_SPACE_ATTRIBUTES) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length,\r
- IN UINT64 Attributes\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Modifies the attributes for a memory region in the global coherency domain of the\r
-processor.\r
-\r
-Arguments:\r
-\r
- BaseAddress - Specified start address\r
- \r
- Length - Specified length\r
- \r
- Attributes - Specified attributes\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Successfully set attribute of a segment of memory space.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_MEMORY_SPACE_MAP) (\r
- OUT UINTN *NumberOfDescriptors,\r
- OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Returns a map of the memory resources in the global coherency domain of the\r
-processor.\r
-\r
-Arguments:\r
-\r
- NumberOfDescriptors - Number of descriptors.\r
- \r
- MemorySpaceMap - Descriptor array\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Invalid parameter\r
- \r
- EFI_OUT_OF_RESOURCES - No enough buffer to allocate\r
- \r
- EFI_SUCCESS - Successfully get memory space map.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ADD_IO_SPACE) (\r
- IN EFI_GCD_IO_TYPE GcdIoType,\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Adds reserved I/O or I/O resources to the global coherency domain of the processor.\r
-\r
-Arguments:\r
- \r
- GcdIoType - IO type of the segment.\r
- \r
- BaseAddress - Base address of the segment.\r
- \r
- Length - Length of the segment.\r
-\r
-Returns:\r
-\r
- EFI_SUCCESS - Merged this segment into GCD map.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_ALLOCATE_IO_SPACE) (\r
- IN EFI_GCD_ALLOCATE_TYPE GcdAllocateType,\r
- IN EFI_GCD_IO_TYPE GcdIoType,\r
- IN UINTN Alignment,\r
- IN UINT64 Length,\r
- IN OUT EFI_PHYSICAL_ADDRESS * BaseAddress,\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_HANDLE DeviceHandle OPTIONAL\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
-domain of the processor.\r
-\r
-Arguments:\r
- \r
- GcdAllocateType - The type of allocate operation\r
- \r
- GcdIoType - The desired IO type\r
- \r
- Alignment - Align with 2^Alignment\r
- \r
- Length - Length to allocate\r
- \r
- BaseAddress - Base address to allocate\r
- \r
- Imagehandle - The image handle consume the allocated space.\r
- \r
- DeviceHandle - The device handle consume the allocated space.\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Invalid parameter.\r
- \r
- EFI_NOT_FOUND - No descriptor contains the desired space.\r
- \r
- EFI_SUCCESS - IO space successfully allocated.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_FREE_IO_SPACE) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:Routine Description:\r
-\r
- Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
-domain of the processor.\r
-\r
-Arguments:\r
- \r
- BaseAddress - Base address of the segment.\r
- \r
- Length - Length of the segment.\r
- \r
-Returns:\r
-\r
- EFI_SUCCESS - Space successfully freed.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_REMOVE_IO_SPACE) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:Routine Description:\r
-\r
- Removes reserved I/O or I/O resources from the global coherency domain of the\r
-processor.\r
-\r
-Arguments:\r
- \r
- BaseAddress - Base address of the segment.\r
- \r
- Length - Length of the segment.\r
- \r
-Returns:\r
-\r
- EFI_SUCCESS - Successfully removed a segment of IO space.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_IO_SPACE_DESCRIPTOR) (\r
- IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
- OUT EFI_GCD_IO_SPACE_DESCRIPTOR * Descriptor\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Retrieves the descriptor for an I/O region containing a specified address.\r
-\r
-Arguments:\r
-\r
- BaseAddress - Specified start address\r
- \r
- Descriptor - Specified length\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Descriptor is NULL.\r
- \r
- EFI_SUCCESS - Successfully get the IO space descriptor.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_IO_SPACE_MAP) (\r
- OUT UINTN *NumberOfDescriptors,\r
- OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Returns a map of the I/O resources in the global coherency domain of the processor.\r
-\r
-Arguments:\r
-\r
- NumberOfDescriptors - Number of descriptors.\r
- \r
- MemorySpaceMap - Descriptor array\r
-\r
-Returns:\r
-\r
- EFI_INVALID_PARAMETER - Invalid parameter\r
- \r
- EFI_OUT_OF_RESOURCES - No enough buffer to allocate\r
- \r
- EFI_SUCCESS - Successfully get IO space map.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_DISPATCH) (VOID)\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Loads and executed DXE drivers from firmware volumes.\r
-\r
-Arguments:\r
-\r
- None\r
-\r
-Returns:\r
-\r
- Status code\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCHEDULE) (\r
- IN EFI_HANDLE FirmwareVolumeHandle,\r
- IN EFI_GUID * DriverName\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.\r
-\r
-Arguments:\r
-\r
- FirmwareVolumeHandle - The handle of the firmware volume that contains the file specified by FileName.\r
-\r
- DriverName - A pointer to the name of the file in a firmware volume. \r
- \r
-Returns:\r
-\r
- Status code\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_TRUST) (\r
- IN EFI_HANDLE FirmwareVolumeHandle,\r
- IN EFI_GUID * DriverName\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Promotes a file stored in a firmware volume from the untrusted to the trusted state.\r
-\r
-Arguments:\r
-\r
- FirmwareVolumeHandle - The handle of the firmware volume that contains the file specified by FileName.\r
-\r
- DriverName - A pointer to the name of the file in a firmware volume. \r
- \r
-Returns:\r
-\r
- Status code\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_BOOTSERVICE\r
-EFI_STATUS\r
-(EFIAPI *EFI_PROCESS_FIRMWARE_VOLUME) (\r
- IN VOID *FvHeader,\r
- IN UINTN Size,\r
- OUT EFI_HANDLE * FirmwareVolumeHandle\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Creates a firmware volume handle for a firmware volume that is present in system memory.\r
-\r
-Arguments:\r
-\r
- FirmwareVolumeHeader - A pointer to the header of the firmware volume.\r
- Size - The size, in bytes, of the firmware volume.\r
- FirmwareVolumeHandle - On output, a pointer to the created handle.\r
- \r
-Returns:\r
-\r
- Status code\r
-\r
---*/\r
-;\r
-\r
-//\r
-// DXE Services Table\r
-//\r
-#define EFI_DXE_SERVICES_SIGNATURE 0x565245535f455844\r
-#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
-#define EFI_DXE_SERVICES_REVISION ((0 << 16) | (90))\r
-#else\r
-#define EFI_DXE_SERVICES_REVISION ((1 << 16) | (00))\r
-#endif\r
-\r
-typedef struct {\r
- EFI_TABLE_HEADER Hdr;\r
-\r
- //\r
- // Global Coherency Domain Services\r
- //\r
- EFI_ADD_MEMORY_SPACE AddMemorySpace;\r
- EFI_ALLOCATE_MEMORY_SPACE AllocateMemorySpace;\r
- EFI_FREE_MEMORY_SPACE FreeMemorySpace;\r
- EFI_REMOVE_MEMORY_SPACE RemoveMemorySpace;\r
- EFI_GET_MEMORY_SPACE_DESCRIPTOR GetMemorySpaceDescriptor;\r
- EFI_SET_MEMORY_SPACE_ATTRIBUTES SetMemorySpaceAttributes;\r
- EFI_GET_MEMORY_SPACE_MAP GetMemorySpaceMap;\r
- EFI_ADD_IO_SPACE AddIoSpace;\r
- EFI_ALLOCATE_IO_SPACE AllocateIoSpace;\r
- EFI_FREE_IO_SPACE FreeIoSpace;\r
- EFI_REMOVE_IO_SPACE RemoveIoSpace;\r
- EFI_GET_IO_SPACE_DESCRIPTOR GetIoSpaceDescriptor;\r
- EFI_GET_IO_SPACE_MAP GetIoSpaceMap;\r
-\r
- //\r
- // Dispatcher Services\r
- //\r
- EFI_DISPATCH Dispatch;\r
- EFI_SCHEDULE Schedule;\r
- EFI_TRUST Trust;\r
- //\r
- // Service to process a single firmware volume found in a capsule\r
- //\r
- EFI_PROCESS_FIRMWARE_VOLUME ProcessFirmwareVolume;\r
-} EFI_DXE_SERVICES;\r
-\r
-#endif\r