automagically convert ELF to PE/COFF (i386 only)
[mirror_edk2.git] / MdePkg / Include / Dxe / DxeCis.h
index a36481c817f74ee826942b0e3cbfa49be4c571ad..e1d794fffd86cb9e2b49d14684d0478770803458 100644 (file)
@@ -39,7 +39,7 @@
 #endif\r
 \r
 //\r
-// BugBug: Implementation contamination of UEFI 2.0\r
+// Implementation contamination of UEFI 2.0\r
 // Pointer to internal runtime pointer\r
 //\r
 #define EFI_IPF_GP_POINTER  0x00000008\r
@@ -116,15 +116,12 @@ typedef struct {
   Adds reserved memory, system memory, or memory-mapped I/O resources to the\r
   global coherency domain of the processor.\r
 \r
-  @param  GcdMemoryType Memory type of the memory space.\r
-  \r
-  @param  BaseAddress Base address of the memory space.\r
-  \r
-  @param  Length Length of the memory space.\r
-  \r
-  @param  Capabilities alterable attributes of the memory space.\r
+  @param  GcdMemoryType    Memory type of the memory space.\r
+  @param  BaseAddress      Base address of the memory space.\r
+  @param  Length           Length of the memory space.\r
+  @param  Capabilities     alterable attributes of the memory space.\r
 \r
-  @retval  EFI_SUCCESS Merged this memory space into GCD map.\r
+  @retval EFI_SUCCESS           Merged this memory space into GCD map.\r
 \r
 **/\r
 typedef\r
@@ -141,25 +138,17 @@ EFI_STATUS
   Allocates nonexistent memory, reserved memory, system memory, or memorymapped\r
   I/O resources from the global coherency domain of the processor.\r
 \r
-  @param  GcdAllocateType The type of allocate operation\r
-  \r
-  @param  GcdMemoryType The desired memory type\r
-  \r
-  @param  Alignment Align with 2^Alignment\r
-  \r
-  @param  Length Length to allocate\r
-  \r
-  @param  BaseAddress Base address to allocate\r
-  \r
-  @param  Imagehandle The image handle consume the allocated space.\r
-  \r
-  @param  DeviceHandle The device handle consume the allocated space.\r
-\r
-  @retval  EFI_INVALID_PARAMETER Invalid parameter.\r
-  \r
-  @retval  EFI_NOT_FOUND No descriptor contains the desired space.\r
-  \r
-  @retval  EFI_SUCCESS Memory space successfully allocated.\r
+  @param  GcdAllocateType  The type of allocate operation\r
+  @param  GcdMemoryType    The desired memory type\r
+  @param  Alignment        Align with 2^Alignment\r
+  @param  Length           Length to allocate\r
+  @param  BaseAddress      Base address to allocate\r
+  @param  Imagehandle      The image handle consume the allocated space.\r
+  @param  DeviceHandle     The device handle consume the allocated space.\r
+\r
+  @retval EFI_INVALID_PARAMETER Invalid parameter.\r
+  @retval EFI_NOT_FOUND         No descriptor contains the desired space.\r
+  @retval EFI_SUCCESS           Memory space successfully allocated.\r
 \r
 **/\r
 typedef\r
@@ -179,11 +168,10 @@ EFI_STATUS
   Frees nonexistent memory, reserved memory, system memory, or memory-mapped\r
   I/O resources from the global coherency domain of the processor.\r
 \r
-  @param  BaseAddress Base address of the segment.\r
-  \r
-  @param  Length Length of the segment.\r
+  @param  BaseAddress      Base address of the segment.\r
+  @param  Length           Length of the segment.\r
 \r
-  @retval  EFI_SUCCESS Space successfully freed.\r
+  @retval EFI_SUCCESS           Space successfully freed.\r
 \r
 **/\r
 typedef\r
@@ -198,11 +186,10 @@ EFI_STATUS
   Removes reserved memory, system memory, or memory-mapped I/O resources from\r
   the global coherency domain of the processor.\r
 \r
-  @param  BaseAddress Base address of the memory space.\r
-  \r
-  @param  Length Length of the memory space.\r
+  @param  BaseAddress      Base address of the memory space.\r
+  @param  Length           Length of the memory space.\r
 \r
-  @retval  EFI_SUCCESS Successfully remove a segment of memory space.\r
+  @retval EFI_SUCCESS           Successfully remove a segment of memory space.\r
 \r
 **/\r
 typedef\r
@@ -216,13 +203,11 @@ EFI_STATUS
 /**\r
   Retrieves the descriptor for a memory region containing a specified address.\r
 \r
-  @param  BaseAddress Specified start address\r
-  \r
-  @param  Descriptor Specified length\r
+  @param  BaseAddress      Specified start address\r
+  @param  Descriptor       Specified length\r
 \r
-  @retval  EFI_INVALID_PARAMETER Invalid parameter\r
-  \r
-  @retval  EFI_SUCCESS Successfully get memory space descriptor.\r
+  @retval EFI_INVALID_PARAMETER Invalid parameter\r
+  @retval EFI_SUCCESS           Successfully get memory space descriptor.\r
 \r
 **/\r
 typedef\r
@@ -237,13 +222,11 @@ EFI_STATUS
   Modifies the attributes for a memory region in the global coherency domain of the\r
   processor.\r
 \r
-  @param  BaseAddress Specified start address\r
-  \r
-  @param  Length Specified length\r
-  \r
-  @param  Attributes Specified attributes\r
+  @param  BaseAddress      Specified start address\r
+  @param  Length           Specified length\r
+  @param  Attributes       Specified attributes\r
 \r
-  @retval  EFI_SUCCESS Successfully set attribute of a segment of memory space.\r
+  @retval EFI_SUCCESS           Successfully set attribute of a segment of memory space.\r
 \r
 **/\r
 typedef\r
@@ -261,14 +244,11 @@ EFI_STATUS
   processor.\r
 \r
   @param  NumberOfDescriptors Number of descriptors.\r
-  \r
-  @param  MemorySpaceMap Descriptor array\r
+  @param  MemorySpaceMap      Descriptor array\r
 \r
-  @retval  EFI_INVALID_PARAMETER Invalid parameter\r
-  \r
-  @retval  EFI_OUT_OF_RESOURCES No enough buffer to allocate\r
-  \r
-  @retval  EFI_SUCCESS Successfully get memory space map.\r
+  @retval EFI_INVALID_PARAMETER Invalid parameter\r
+  @retval EFI_OUT_OF_RESOURCES  No enough buffer to allocate\r
+  @retval EFI_SUCCESS           Successfully get memory space map.\r
 \r
 **/\r
 typedef\r
@@ -282,13 +262,11 @@ EFI_STATUS
 /**\r
   Adds reserved I/O or I/O resources to the global coherency domain of the processor.\r
 \r
-  @param  GcdIoType IO type of the segment.\r
-  \r
-  @param  BaseAddress Base address of the segment.\r
-  \r
-  @param  Length Length of the segment.\r
+  @param  GcdIoType        IO type of the segment.\r
+  @param  BaseAddress      Base address of the segment.\r
+  @param  Length           Length of the segment.\r
 \r
-  @retval  EFI_SUCCESS Merged this segment into GCD map.\r
+  @retval EFI_SUCCESS           Merged this segment into GCD map.\r
 \r
 **/\r
 typedef\r
@@ -304,25 +282,17 @@ EFI_STATUS
   Allocates nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
   domain of the processor.\r
 \r
-  @param  GcdAllocateType The type of allocate operation\r
-  \r
-  @param  GcdIoType The desired IO type\r
-  \r
-  @param  Alignment Align with 2^Alignment\r
-  \r
-  @param  Length Length to allocate\r
-  \r
-  @param  BaseAddress Base address to allocate\r
-  \r
-  @param  Imagehandle The image handle consume the allocated space.\r
-  \r
-  @param  DeviceHandle The device handle consume the allocated space.\r
-\r
-  @retval  EFI_INVALID_PARAMETER Invalid parameter.\r
-  \r
-  @retval  EFI_NOT_FOUND No descriptor contains the desired space.\r
-  \r
-  @retval  EFI_SUCCESS IO space successfully allocated.\r
+  @param  GcdAllocateType  The type of allocate operation\r
+  @param  GcdIoType        The desired IO type\r
+  @param  Alignment        Align with 2^Alignment\r
+  @param  Length           Length to allocate\r
+  @param  BaseAddress      Base address to allocate\r
+  @param  Imagehandle      The image handle consume the allocated space.\r
+  @param  DeviceHandle     The device handle consume the allocated space.\r
+\r
+  @retval EFI_INVALID_PARAMETER Invalid parameter.\r
+  @retval EFI_NOT_FOUND         No descriptor contains the desired space.\r
+  @retval EFI_SUCCESS           IO space successfully allocated.\r
 \r
 **/\r
 typedef\r
@@ -342,11 +312,10 @@ EFI_STATUS
   Frees nonexistent I/O, reserved I/O, or I/O resources from the global coherency\r
   domain of the processor.\r
 \r
-  @param  BaseAddress Base address of the segment.\r
-  \r
-  @param  Length Length of the segment.\r
+  @param  BaseAddress      Base address of the segment.\r
+  @param  Length           Length of the segment.\r
 \r
-  @retval  EFI_SUCCESS Space successfully freed.\r
+  @retval EFI_SUCCESS           Space successfully freed.\r
 \r
 **/\r
 typedef\r
@@ -361,11 +330,10 @@ EFI_STATUS
   Removes reserved I/O or I/O resources from the global coherency domain of the\r
   processor.\r
 \r
-  @param  BaseAddress Base address of the segment.\r
-  \r
-  @param  Length Length of the segment.\r
+  @param  BaseAddress      Base address of the segment.\r
+  @param Length Length of the segment.\r
 \r
-  @retval  EFI_SUCCESS Successfully removed a segment of IO space.\r
+  @retval EFI_SUCCESS           Successfully removed a segment of IO space.\r
 \r
 **/\r
 typedef\r
@@ -379,13 +347,11 @@ EFI_STATUS
 /**\r
   Retrieves the descriptor for an I/O region containing a specified address.\r
 \r
-  @param  BaseAddress Specified start address\r
-  \r
-  @param  Descriptor Specified length\r
+  @param  BaseAddress      Specified start address\r
+  @param  Descriptor       Specified length\r
 \r
-  @retval  EFI_INVALID_PARAMETER Descriptor is NULL.\r
-  \r
-  @retval  EFI_SUCCESS Successfully get the IO space descriptor.\r
+  @retval EFI_INVALID_PARAMETER Descriptor is NULL.\r
+  @retval EFI_SUCCESS           Successfully get the IO space descriptor.\r
 \r
 **/\r
 typedef\r
@@ -400,14 +366,11 @@ EFI_STATUS
   Returns a map of the I/O resources in the global coherency domain of the processor.\r
 \r
   @param  NumberOfDescriptors Number of descriptors.\r
-  \r
-  @param  MemorySpaceMap Descriptor array\r
+  @param  MemorySpaceMap      Descriptor array\r
 \r
-  @retval  EFI_INVALID_PARAMETER Invalid parameter\r
-  \r
-  @retval  EFI_OUT_OF_RESOURCES No enough buffer to allocate\r
-  \r
-  @retval  EFI_SUCCESS Successfully get IO space map.\r
+  @retval EFI_INVALID_PARAMETER Invalid parameter\r
+  @retval EFI_OUT_OF_RESOURCES  No enough buffer to allocate\r
+  @retval EFI_SUCCESS           Successfully get IO space map.\r
 \r
 **/\r
 typedef\r
@@ -433,8 +396,7 @@ EFI_STATUS
   Clears the Schedule on Request (SOR) flag for a component that is stored in a firmware volume.\r
 \r
   @param  FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.\r
-  \r
-  @param  DriverName A pointer to the name of the file in a firmware volume.\r
+  @param  DriverName           A pointer to the name of the file in a firmware volume.\r
 \r
   @return Status code\r
 \r
@@ -451,8 +413,7 @@ EFI_STATUS
   Promotes a file stored in a firmware volume from the untrusted to the trusted state.\r
 \r
   @param  FirmwareVolumeHandle The handle of the firmware volume that contains the file specified by FileName.\r
-  \r
-  @param  DriverName A pointer to the name of the file in a firmware volume.\r
+  @param  DriverName           A pointer to the name of the file in a firmware volume.\r
 \r
   @return Status code\r
 \r
@@ -469,7 +430,7 @@ EFI_STATUS
   Creates a firmware volume handle for a firmware volume that is present in system memory.\r
 \r
   @param  FirmwareVolumeHeader A pointer to the header of the firmware volume.\r
-  @param  Size The size, in bytes, of the firmware volume.\r
+  @param  Size                 The size, in bytes, of the firmware volume.\r
   @param  FirmwareVolumeHandle On output, a pointer to the created handle.\r
 \r
   @return Status code\r
@@ -488,7 +449,7 @@ EFI_STATUS
 // DXE Services Table\r
 //\r
 #define EFI_DXE_SERVICES_SIGNATURE  0x565245535f455844ULL\r
-#define EFI_DXE_SERVICES_REVISION   ((0 << 16) | (25))\r
+#define EFI_DXE_SERVICES_REVISION   ((0 << 16) | (90))\r
 \r
 typedef struct {\r
   EFI_TABLE_HEADER                Hdr;\r
@@ -523,6 +484,16 @@ typedef struct {
 } EFI_DXE_SERVICES;\r
 \r
 \r
+//\r
+// Function prototype for invoking a function on an Application Processor\r
+// Used by both the SMM infrastructure and the MP Services Protocol\r
+//\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE) (\r
+  IN  VOID                              *Buffer\r
+  );\r
+\r
 #include <Common/BootMode.h>\r
 #include <Common/BootScript.h>\r
 #include <Common/Capsule.h>\r