///\r
/// The table header for the PEI Services Table.\r
///\r
- EFI_TABLE_HEADER Hdr;\r
- ///\r
- /// Installs an interface in the PEI PEIM-to-PEIM\r
- /// Interface (PPI) database by GUID.\r
- ///\r
- EFI_PEI_INSTALL_PPI InstallPpi;\r
- ///\r
- /// Reinstalls an interface in the PEI PPI database by GUID.\r
- ///\r
- EFI_PEI_REINSTALL_PPI ReInstallPpi;\r
- ///\r
- /// Locates an interface in the PEI PPI database by GUID.\r
- ///\r
- EFI_PEI_LOCATE_PPI LocatePpi;\r
- ///\r
- /// Installs the notification service to be called back\r
- /// upon the installation or reinstallation of a given interface.\r
- ///\r
- EFI_PEI_NOTIFY_PPI NotifyPpi;\r
- ///\r
- /// Returns the present value of the boot mode.\r
- ///\r
- EFI_PEI_GET_BOOT_MODE GetBootMode;\r
- ///\r
- /// Sets the value of the boot mode.\r
- ///\r
- EFI_PEI_SET_BOOT_MODE SetBootMode;\r
- ///\r
- /// Returns the pointer to the list of Hand-Off Blocks (HOBs) in memory.\r
- ///\r
- EFI_PEI_GET_HOB_LIST GetHobList;\r
- ///\r
- /// Abstracts the creation of HOB headers.\r
- ///\r
- EFI_PEI_CREATE_HOB CreateHob;\r
- ///\r
- /// Discovers instances of firmware volumes in the system.\r
- ///\r
+ EFI_TABLE_HEADER Hdr;\r
+\r
+ //\r
+ // PPI Functions\r
+ //\r
+ EFI_PEI_INSTALL_PPI InstallPpi;\r
+ EFI_PEI_REINSTALL_PPI ReInstallPpi;\r
+ EFI_PEI_LOCATE_PPI LocatePpi;\r
+ EFI_PEI_NOTIFY_PPI NotifyPpi;\r
+\r
+ //\r
+ // Boot Mode Functions\r
+ //\r
+ EFI_PEI_GET_BOOT_MODE GetBootMode;\r
+ EFI_PEI_SET_BOOT_MODE SetBootMode;\r
+\r
+ //\r
+ // HOB Functions\r
+ //\r
+ EFI_PEI_GET_HOB_LIST GetHobList;\r
+ EFI_PEI_CREATE_HOB CreateHob;\r
+\r
+ //\r
+ // Firmware Volume Functions\r
+ //\r
EFI_PEI_FFS_FIND_NEXT_VOLUME2 FfsFindNextVolume;\r
- ///\r
- /// Discovers instances of firmware files in the system.\r
- ///\r
EFI_PEI_FFS_FIND_NEXT_FILE2 FfsFindNextFile;\r
- ///\r
- /// Searches for a section in a firmware file.\r
- ///\r
EFI_PEI_FFS_FIND_SECTION_DATA2 FfsFindSectionData;\r
- ///\r
- /// Registers the found memory configuration with the PEI Foundation.\r
- ///\r
- EFI_PEI_INSTALL_PEI_MEMORY InstallPeiMemory;\r
- ///\r
- /// Allocates memory ranges that are managed by the PEI Foundation.\r
- ///\r
- EFI_PEI_ALLOCATE_PAGES AllocatePages;\r
- ///\r
- /// Allocate memory ranges that are managed by the PEI Foundation.\r
- ///\r
- EFI_PEI_ALLOCATE_POOL AllocatePool;\r
- ///\r
- /// Copies the contents of one buffer to another buffer.\r
- ///\r
- EFI_PEI_COPY_MEM CopyMem;\r
- ///\r
- /// Fills a buffer with a specified value.\r
- ///\r
- EFI_PEI_SET_MEM SetMem;\r
- ///\r
- /// Provides an interface that a PEIM can call to report a status code.\r
- ///\r
- EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;\r
- ///\r
- /// Resets the entire platform.\r
- ///\r
- EFI_PEI_RESET_SYSTEM ResetSystem;\r
- ///\r
- /// Provides an interface that a PEIM can call to execute\r
- /// an I/O transaction. This interface is installed by provider\r
- /// PEIM by copying the interface into the PEI Service table.\r
- ///\r
- EFI_PEI_CPU_IO_PPI *CpuIo;\r
- ///\r
- /// Provides an interface that a PEIM can call to execute PCI\r
- /// Configuration transactions. This interface is installed by\r
- /// provider PEIM by copying the interface into the EFI_PEI_SERVICES table.\r
- ///\r
- EFI_PEI_PCI_CFG2_PPI *PciCfg;\r
- ///\r
- /// Discovers firmware files within a volume by name.\r
- ///\r
- EFI_PEI_FFS_FIND_BY_NAME FfsFindFileByName;\r
- ///\r
- /// Return information about a particular file.\r
- ///\r
- EFI_PEI_FFS_GET_FILE_INFO FfsGetFileInfo;\r
- ///\r
- /// Return information about a particular volume.\r
- ///\r
- EFI_PEI_FFS_GET_VOLUME_INFO FfsGetVolumeInfo;\r
- ///\r
- /// Register a driver to be re-loaded when memory is available.\r
- ///\r
- EFI_PEI_REGISTER_FOR_SHADOW RegisterForShadow;\r
+\r
+ //\r
+ // PEI Memory Functions\r
+ //\r
+ EFI_PEI_INSTALL_PEI_MEMORY InstallPeiMemory;\r
+ EFI_PEI_ALLOCATE_PAGES AllocatePages;\r
+ EFI_PEI_ALLOCATE_POOL AllocatePool;\r
+ EFI_PEI_COPY_MEM CopyMem;\r
+ EFI_PEI_SET_MEM SetMem;\r
+\r
+ //\r
+ // Status Code\r
+ //\r
+ EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;\r
+\r
+ //\r
+ // Reset\r
+ //\r
+ EFI_PEI_RESET_SYSTEM ResetSystem;\r
+\r
+ //\r
+ // (the following interfaces are installed by publishing PEIM)\r
+ // I/O Abstractions\r
+ //\r
+ EFI_PEI_CPU_IO_PPI *CpuIo;\r
+ EFI_PEI_PCI_CFG2_PPI *PciCfg;\r
+\r
+ //\r
+ // Future Installed Services\r
+ //\r
+ EFI_PEI_FFS_FIND_BY_NAME FfsFindFileByName;\r
+ EFI_PEI_FFS_GET_FILE_INFO FfsGetFileInfo;\r
+ EFI_PEI_FFS_GET_VOLUME_INFO FfsGetVolumeInfo;\r
+ EFI_PEI_REGISTER_FOR_SHADOW RegisterForShadow;\r
};\r
\r
\r
/// The perspective of the services is that of the processor, not the bus or system.\r
///\r
struct _EFI_PEI_CPU_IO_PPI {\r
- ///\r
- /// Collection of memory-access services.\r
- ///\r
- EFI_PEI_CPU_IO_PPI_ACCESS Mem;\r
- ///\r
- /// Collection of I/O-access services.\r
- ///\r
- EFI_PEI_CPU_IO_PPI_ACCESS Io;\r
- ///\r
- /// 8-bit I/O read service.\r
- ///\r
+ EFI_PEI_CPU_IO_PPI_ACCESS Mem; ///< Collection of memory-access services.\r
+ EFI_PEI_CPU_IO_PPI_ACCESS Io; ///< Collection of I/O-access services.\r
+\r
EFI_PEI_CPU_IO_PPI_IO_READ8 IoRead8;\r
- ///\r
- /// 16-bit I/O read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_READ16 IoRead16;\r
- ///\r
- /// 32-bit I/O read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_READ32 IoRead32;\r
- ///\r
- /// 64-bit I/O read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_READ64 IoRead64;\r
- ///\r
- /// 8-bit I/O write service.\r
- ///\r
+\r
EFI_PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8;\r
- ///\r
- /// 16-bit I/O write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16;\r
- ///\r
- /// 32-bit I/O write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32;\r
- ///\r
- /// 64-bit I/O write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64;\r
- ///\r
- /// 8-bit memory read service.\r
- ///\r
+\r
EFI_PEI_CPU_IO_PPI_MEM_READ8 MemRead8;\r
- ///\r
- /// 16-bit memory read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_READ16 MemRead16;\r
- ///\r
- /// 32-bit memory read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_READ32 MemRead32;\r
- ///\r
- /// 64-bit memory read service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_READ64 MemRead64;\r
- ///\r
- /// 8-bit memory write service.\r
- ///\r
+\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8;\r
- ///\r
- /// 16-bit memory write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16;\r
- ///\r
- /// 32-bit memory write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32;\r
- ///\r
- /// 64-bit memory write service.\r
- ///\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64;\r
};\r
\r
/// compression sections will be ignored.\r
///\r
struct _EFI_PEI_DECOMPRESS_PPI {\r
- ///\r
- /// Decompress a single compression section in a firmware file.\r
- ///\r
EFI_PEI_DECOMPRESS_DECOMPRESS Decompress;\r
};\r
\r
/// The DXE IPL PPI may use PEI services to locate and load the DXE Foundation.\r
///\r
struct _EFI_DXE_IPL_PPI {\r
- ///\r
- /// The entry point to the DXE IPL PPI.\r
- ///\r
EFI_DXE_IPL_ENTRY Entry;\r
};\r
\r
/// This PPI provides functions for accessing a memory-mapped firmware volume of a specific format.\r
///\r
struct _EFI_PEI_FIRMWARE_VOLUME_PPI {\r
- ///\r
- /// Process a firmware volume and create a volume handle.\r
- ///\r
EFI_PEI_FV_PROCESS_FV ProcessVolume;\r
- ///\r
- /// Find all files of a specific type.\r
- ///\r
EFI_PEI_FV_FIND_FILE_TYPE FindFileByType;\r
- ///\r
- /// Find the file with a specific name.\r
- ///\r
EFI_PEI_FV_FIND_FILE_NAME FindFileByName;\r
- ///\r
- /// Return the information about a specific file.\r
- ///\r
EFI_PEI_FV_GET_FILE_INFO GetFileInfo;\r
- ///\r
- /// Return the firmware volume attributes.\r
- ///\r
EFI_PEI_FV_GET_INFO GetVolumeInfo;\r
- ///\r
- /// Find all sections of a specific type.\r
- ///\r
EFI_PEI_FV_FIND_SECTION FindSectionByType;\r
};\r
\r
/// therein.\r
/// \r
struct _EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI {\r
- /// \r
- /// Takes the GUIDed section as input and\r
- /// produces the section stream data.\r
- ///\r
EFI_PEI_EXTRACT_GUIDED_SECTION ExtractSection;\r
};\r
\r
/// will use this service to launch the known PEI module images.\r
///\r
struct _EFI_PEI_LOAD_FILE_PPI {\r
- ///\r
- /// Loads a PEIM into memory for subsequent execution.\r
- ///\r
EFI_PEI_LOAD_FILE LoadFile;\r
};\r
\r
\r
\r
\r
-//\r
-// Interface structure for the PCD PPI\r
-//\r
-/**\r
- @par Ppi Description:\r
- This service abstracts the ability to set/get Platform Configuration Database (PCD).\r
-\r
- @param SetSku\r
- Sets the SKU value for subsequent calls to set or get PCD token values.\r
- \r
- @param Get8\r
- Retrieves an 8-bit value for a given PCD token.\r
-\r
- @param Get16\r
- Retrieves an 16-bit value for a given PCD token.\r
-\r
- @param Get32\r
- Retrieves an 32-bit value for a given PCD token.\r
-\r
- @param Get64\r
- Retrieves an 64-bit value for a given PCD token.\r
-\r
- @param GetPtr\r
- Retrieves a pointer to a value for a given PCD token.\r
-\r
- @param GetBool\r
- Retrieves an Boolean value for a given PCD token.\r
-\r
- @param GetSize\r
- Retrieves the size of the value for a given PCD token.\r
-\r
- @param Get8Ex\r
- Retrieves an 8-bit value for a given PCD token and token space.\r
-\r
- @param Get16Ex\r
- Retrieves an 16-bit value for a given PCD token and token space.\r
-\r
- @param Get32Ex\r
- Retrieves an 32-bit value for a given PCD token and token space.\r
-\r
- @param Get64Ex\r
- Retrieves an 64-bit value for a given PCD token and token space.\r
-\r
- @param GetPtrEx\r
- Retrieves a pointer to a value for a given PCD token and token space.\r
-\r
- @param GetBoolEx\r
- Retrieves an Boolean value for a given PCD token and token space.\r
-\r
- @param GetSizeEx\r
- Retrieves the size of the value for a given PCD token and token space.\r
-\r
- @param Set8\r
- Sets an 8-bit value for a given PCD token.\r
-\r
- @param Set16\r
- Sets an 16-bit value for a given PCD token.\r
-\r
- @param Set32\r
- Sets an 32-bit value for a given PCD token.\r
-\r
- @param Set64\r
- Sets an 64-bit value for a given PCD token.\r
-\r
- @param SetPtr\r
- Sets the buffer of a specified size for a given PCD token.\r
-\r
- @param SetBool\r
- Sets an Boolean value for a given PCD token.\r
-\r
- @param Set8Ex\r
- Sets an 8-bit value for a given PCD token and token space.\r
-\r
- @param Set16Ex\r
- Sets an 16-bit value for a given PCD token and token space.\r
-\r
- @param Set32Ex\r
- Sets an 32-bit value for a given PCD token and token space.\r
-\r
- @param Set64Ex\r
- Sets an 64-bit value for a given PCD token and token space.\r
-\r
- @param SetPtrEx\r
- Sets the buffer of a specified size for a given PCD token and token space.\r
-\r
- @param SetBoolEx\r
- Sets an Boolean value for a given PCD token and token space.\r
- \r
- @param CallbackOnSet\r
- Specifies a function to be called anytime the value of a designated token is changed.\r
- \r
- @param CancelCallback\r
- Cancels a previously set callback function for a particular PCD token number.\r
- \r
- @param GetNextToken\r
- Retrieves the next valid PCD token for a given namespace.\r
- \r
- @param GetNextTokenSpace\r
- Retrieves the next valid PCD token namespace for a given namespace.\r
- \r
-**/\r
+///\r
+/// This service abstracts the ability to set/get Platform Configuration Database (PCD).\r
+///\r
typedef struct {\r
PCD_PPI_SET_SKU SetSku;\r
\r
IN VOID *ClearBits\r
);\r
\r
-/**\r
- @par Ppi Description:\r
- The EFI_PEI_PCI_CFG_PPI interfaces are used to abstract accesses to PCI\r
- controllers behind a PCI root bridge controller.\r
-\r
- @param Read PCI read services. See the Read() function description.\r
-\r
- @param Write PCI write services. See the Write() function description.\r
-\r
- @param Modify PCI read-modify-write services. See the Modify() function description.\r
-\r
- @param Segment The PCI bus segment which the specified functions will access.\r
-\r
-**/\r
+///\r
+/// The EFI_PEI_PCI_CFG_PPI interfaces are used to abstract accesses to PCI\r
+/// controllers behind a PCI root bridge controller.\r
+///\r
struct _EFI_PEI_PCI_CFG2_PPI {\r
EFI_PEI_PCI_CFG2_PPI_IO Read;\r
EFI_PEI_PCI_CFG2_PPI_IO Write;\r
EFI_PEI_PCI_CFG2_PPI_RW Modify;\r
+ ///\r
+ /// The PCI bus segment which the specified functions will access.\r
+ ///\r
UINT16 Segment;\r
};\r
\r
/// variable services. \r
///\r
struct _EFI_PEI_READ_ONLY_VARIABLE2_PPI {\r
- ///\r
- /// A service to read the value of a particular variable using its name.\r
- ///\r
EFI_PEI_GET_VARIABLE2 GetVariable;\r
- ///\r
- /// Find the next variable name in the variable store.\r
- ///\r
EFI_PEI_NEXT_VARIABLE_NAME2 NextVariableName;\r
};\r
\r
/// This PPI provides provide a simple reset service. \r
///\r
typedef struct {\r
- ///\r
- /// A service to reset the entire platform.\r
- /// This function is defined in PiPeicis.h.\r
- ///\r
EFI_PEI_RESET_SYSTEM ResetSystem;\r
} EFI_PEI_RESET_PPI;\r
\r
/// discover where to begin dispatching PEIMs.\r
///\r
struct _EFI_SEC_PLATFORM_INFORMATION_PPI {\r
- ///\r
- /// Conveys state information out of the SEC phase into PEI.\r
- ///\r
EFI_SEC_PLATFORM_INFORMATION PlatformInformation;\r
};\r
\r
/// trusted.\r
///\r
struct _EFI_PEI_SECURITY2_PPI {\r
- ///\r
- /// Allows the platform builder to implement a security policy\r
- /// in response to varying file authentication states.\r
- ///\r
EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;\r
};\r
\r
/// its SMBus controller and the slave devices attached to it.\r
///\r
struct _EFI_PEI_SMBUS2_PPI {\r
- ///\r
- /// Executes the SMBus operation to an SMBus slave device.\r
- ///\r
EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION Execute;\r
- ///\r
- /// Allows an SMBus 2.0 device(s) to be Address Resolution Protocol (ARP).\r
- ///\r
EFI_PEI_SMBUS2_PPI_ARP_DEVICE ArpDevice;\r
- ///\r
- /// Allows a PEIM to retrieve the address that was allocated by the SMBus \r
- /// host controller during enumeration/ARP.\r
- ///\r
EFI_PEI_SMBUS2_PPI_GET_ARP_MAP GetArpMap;\r
- ///\r
- /// Allows a driver to register for a callback to the SMBus host \r
- /// controller driver when the bus issues a notification to the bus controller PEIM.\r
- ///\r
EFI_PEI_SMBUS2_PPI_NOTIFY Notify;\r
///\r
/// Identifier which uniquely identifies this SMBus controller in a system.\r
/// The resolution in microseconds of the stall services.\r
///\r
UINTN Resolution;\r
- ///\r
- /// The actual stall procedure call. \r
- ///\r
+\r
EFI_PEI_STALL Stall;\r
};\r
\r
/// There can be only one instance of this service in the system.\r
///\r
typedef struct {\r
- ///\r
- /// Service that allows PEIMs to report status codes.\r
- /// This function is defined in PiPeicis.h.\r
- ///\r
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;\r
} EFI_PEI_PROGRESS_CODE_PPI;\r
\r
/// This service abstracts the ability to migrate contents of the platform early memory store.\r
///\r
typedef struct {\r
- ///\r
- /// Perform the migration of contents of Temporary RAM to Permanent RAM.\r
- /// Terminate the Temporary RAM if it cannot coexist with the Permanent RAM.\r
- ///\r
TEMPORARY_RAM_MIGRATION TemporaryRamMigration;\r
} TEMPORARY_RAM_SUPPORT_PPI;\r
\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services\r
- for a pointer device that can be used as an input device from an\r
- application written to this specification. The services include\r
- the ability to reset the pointer device, retrieve the state of\r
- the pointer device, and retrieve the capabilities of the pointer\r
- device. In addition certain data items describing the device are\r
- provided.\r
-\r
-**/\r
+///\r
+/// The EFI_ABSOLUTE_POINTER_PROTOCOL provides a set of services\r
+/// for a pointer device that can be used as an input device from an\r
+/// application written to this specification. The services include\r
+/// the ability to reset the pointer device, retrieve the state of\r
+/// the pointer device, and retrieve the capabilities of the pointer\r
+/// device. In addition certain data items describing the device are\r
+/// provided.\r
+///\r
struct _EFI_ABSOLUTE_POINTER_PROTOCOL {\r
EFI_ABSOLUTE_POINTER_RESET Reset;\r
EFI_ABSOLUTE_POINTER_GET_STATE GetState;\r
/// Event to use with WaitForEvent() to wait for input from the pointer device. \r
///\r
EFI_EVENT WaitForInput;\r
+ ///\r
+ /// Pointer to EFI_ABSOLUTE_POINTER_MODE data.\r
+ ///\r
EFI_ABSOLUTE_POINTER_MODE *Mode;\r
};\r
\r
IN UINTN TableKey\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_ACPI_TABLE_PROTOCOL provides the ability for a component\r
- to install and uninstall ACPI tables from a platform.\r
-**/ \r
+///\r
+/// The EFI_ACPI_TABLE_PROTOCOL provides the ability for a component\r
+/// to install and uninstall ACPI tables from a platform.\r
+///\r
struct _EFI_ACPI_TABLE_PROTOCOL {\r
EFI_ACPI_TABLE_INSTALL_ACPI_TABLE InstallAcpiTable;\r
EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE UninstallAcpiTable;\r
IN EFI_EVENT ResolvedEvent OPTIONAL\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- ARP is used to resolve local network protocol addresses into \r
- network hardware addresses.\r
-**/\r
+///\r
+/// ARP is used to resolve local network protocol addresses into \r
+/// network hardware addresses.\r
+///\r
struct _EFI_ARP_PROTOCOL {\r
EFI_ARP_CONFIGURE Configure;\r
EFI_ARP_ADD Add;\r
IN VOID *Buffer\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- This protocol is used on any device handle to obtain authentication \r
- information associated with the physical or logical device.\r
-**/ \r
+///\r
+/// This protocol is used on any device handle to obtain authentication \r
+/// information associated with the physical or logical device.\r
+///\r
struct _EFI_AUTHENTICATION_INFO_PROTOCOL {\r
EFI_AUTHENTICATION_PROTOCOL_INFO_GET Get;\r
EFI_AUTHENTICATION_PROTOCOL_INFO_SET Set;\r
IN EFI_BDS_ARCH_PROTOCOL *This\r
);\r
\r
-/**\r
- Interface stucture for the BDS Architectural Protocol.\r
-\r
- @par Protocol Description:\r
- The EFI_BDS_ARCH_PROTOCOL transfers control from DXE to an operating \r
- system or a system utility. If there are not enough drivers initialized \r
- when this protocol is used to access the required boot device(s), then \r
- this protocol should add drivers to the dispatch queue and return control \r
- back to the dispatcher. Once the required boot devices are available, then \r
- the boot device can be used to load and invoke an OS or a system utility.\r
-\r
-**/\r
+///\r
+/// The EFI_BDS_ARCH_PROTOCOL transfers control from DXE to an operating \r
+/// system or a system utility. If there are not enough drivers initialized \r
+/// when this protocol is used to access the required boot device(s), then \r
+/// this protocol should add drivers to the dispatch queue and return control \r
+/// back to the dispatcher. Once the required boot devices are available, then \r
+/// the boot device can be used to load and invoke an OS or a system utility.\r
+///\r
struct _EFI_BDS_ARCH_PROTOCOL {\r
EFI_BDS_ENTRY Entry;\r
};\r
OUT EFI_BIS_DATA **SignatureInfo \r
);\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_BIS_PROTOCOL is used to check a digital signature of a data block against a digital\r
- certificate for the purpose of an integrity and authorization check.\r
-**/\r
+///\r
+/// The EFI_BIS_PROTOCOL is used to check a digital signature of a data block against a digital\r
+/// certificate for the purpose of an integrity and authorization check.\r
+///\r
struct _EFI_BIS_PROTOCOL {\r
EFI_BIS_INITIALIZE Initialize;\r
EFI_BIS_SHUTDOWN Shutdown;\r
/// \r
#define EFI_BLOCK_IO_INTERFACE_REVISION EFI_BLOCK_IO_PROTOCOL_REVISION\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol provides control over block devices.\r
-**/\r
+///\r
+/// This protocol provides control over block devices.\r
+///\r
struct _EFI_BLOCK_IO_PROTOCOL {\r
///\r
/// The revision to which the block IO interface adheres. All future\r
/// back wards compatible, it is not the same GUID.\r
///\r
UINT64 Revision;\r
-\r
+ ///\r
+ /// Pointer to the EFI_BLOCK_IO_MEDIA data for this device.\r
+ ///\r
EFI_BLOCK_IO_MEDIA *Media;\r
\r
EFI_BLOCK_RESET Reset;\r
IN OUT EFI_HANDLE *DriverImageHandle\r
);\r
\r
-//\r
-// Interface structure for the Bus Specific Driver Override Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol matches one or more drivers to a controller. This protocol is produced by a bus driver,\r
- and it is installed on the child handles of buses that require a bus specific algorithm for matching\r
- drivers to controllers.\r
-**/\r
+///\r
+/// This protocol matches one or more drivers to a controller. This protocol is produced by a bus driver,\r
+/// and it is installed on the child handles of buses that require a bus specific algorithm for matching\r
+/// drivers to controllers.\r
+///\r
struct _EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL {\r
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_GET_DRIVER GetDriver;\r
};\r
OUT CHAR16 **ControllerName\r
);\r
\r
-//\r
-// Interface structure for the Component Name Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol is used to retrieve user readable names of drivers \r
- and controllers managed by UEFI Drivers.\r
-**/\r
+///\r
+/// This protocol is used to retrieve user readable names of drivers \r
+/// and controllers managed by UEFI Drivers.\r
+///\r
struct _EFI_COMPONENT_NAME_PROTOCOL {\r
EFI_COMPONENT_NAME_GET_DRIVER_NAME GetDriverName;\r
EFI_COMPONENT_NAME_GET_CONTROLLER_NAME GetControllerName;\r
OUT CHAR16 **ControllerName\r
);\r
\r
-//\r
-// Interface structure for the Component Name2 Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol is used to retrieve user readable names of drivers \r
- and controllers managed by UEFI Drivers.\r
-**/\r
+///\r
+/// This protocol is used to retrieve user readable names of drivers \r
+/// and controllers managed by UEFI Drivers.\r
+///\r
struct _EFI_COMPONENT_NAME2_PROTOCOL {\r
EFI_COMPONENT_NAME2_GET_DRIVER_NAME GetDriverName;\r
EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME GetControllerName;\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_CPU_ARCH_PROTOCOL is used to abstract processor-specific functions from the DXE\r
- Foundation. This includes flushing caches, enabling and disabling interrupts, hooking interrupt\r
- vectors and exception vectors, reading internal processor timers, resetting the processor, and\r
- determining the processor frequency.\r
-**/\r
+///\r
+/// The EFI_CPU_ARCH_PROTOCOL is used to abstract processor-specific functions from the DXE\r
+/// Foundation. This includes flushing caches, enabling and disabling interrupts, hooking interrupt\r
+/// vectors and exception vectors, reading internal processor timers, resetting the processor, and\r
+/// determining the processor frequency.\r
+///\r
struct _EFI_CPU_ARCH_PROTOCOL {\r
EFI_CPU_FLUSH_DATA_CACHE FlushDataCache;\r
EFI_CPU_ENABLE_INTERRUPT EnableInterrupt;\r
IN EFI_DEBUGPORT_PROTOCOL *This\r
);\r
\r
-//\r
-// DebugPort protocol definition\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol provides the communication link between the debug agent and the remote host.\r
-**/ \r
+///\r
+/// This protocol provides the communication link between the debug agent and the remote host.\r
+///\r
struct _EFI_DEBUGPORT_PROTOCOL {\r
EFI_DEBUGPORT_RESET Reset;\r
EFI_DEBUGPORT_WRITE Write;\r
IN UINT64 Length\r
);\r
\r
-//\r
-// DebugSupport protocol definition\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol provides the services to allow the debug agent to register \r
- callback functions that are called either periodically or when specific \r
- processor exceptions occur.\r
-**/\r
+///\r
+/// This protocol provides the services to allow the debug agent to register \r
+/// callback functions that are called either periodically or when specific \r
+/// processor exceptions occur.\r
+///\r
struct _EFI_DEBUG_SUPPORT_PROTOCOL {\r
+ ///\r
+ /// Declares the processor architecture for this instance of the EFI Debug Support protocol.\r
+ ///\r
EFI_INSTRUCTION_SET_ARCHITECTURE Isa;\r
EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex;\r
EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback;\r
IN UINT32 ScratchSize\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- Provides a decompression service.\r
-\r
-**/ \r
+///\r
+/// Provides a decompression service.\r
+///\r
struct _EFI_DECOMPRESS_PROTOCOL {\r
EFI_DECOMPRESS_GET_INFO GetInfo;\r
EFI_DECOMPRESS_DECOMPRESS Decompress;\r
IN EFI_PHYSICAL_ADDRESS HostAddress\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol provides the basic Memory, I/O, and PCI interfaces that \r
- are used to abstract accesses to devices.\r
-**/ \r
+///\r
+/// This protocol provides the basic Memory, I/O, and PCI interfaces that \r
+/// are used to abstract accesses to devices.\r
+///\r
struct _EFI_DEVICE_IO_PROTOCOL {\r
///\r
/// Allows reads and writes to memory mapped I/O space.\r
IN CONST CHAR16 *TextDevicePath\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- This protocol converts text to device paths and device nodes.\r
-**/ \r
+///\r
+/// This protocol converts text to device paths and device nodes.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode;\r
EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath;\r
IN BOOLEAN AllowShortcuts\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- This protocol converts device paths and device nodes to text.\r
-**/\r
+///\r
+/// This protocol converts device paths and device nodes to text.\r
+///\r
typedef struct {\r
EFI_DEVICE_PATH_TO_TEXT_NODE ConvertDeviceNodeToText;\r
EFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText;\r
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- This protocol is used to creates and manipulates device paths and device nodes.\r
-**/ \r
+///\r
+/// This protocol is used to creates and manipulates device paths and device nodes.\r
+/// \r
typedef struct {\r
EFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE GetDevicePathSize;\r
EFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH DuplicateDevicePath;\r
OUT EFI_DHCP4_PACKET_OPTION *PacketOptionList[] OPTIONAL\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol is used to collect configuration information for the EFI IPv4 Protocol drivers\r
- and to provide DHCPv4 server and PXE boot server discovery services.\r
-**/\r
+///\r
+/// This protocol is used to collect configuration information for the EFI IPv4 Protocol drivers\r
+/// and to provide DHCPv4 server and PXE boot server discovery services.\r
+///\r
struct _EFI_DHCP4_PROTOCOL {\r
EFI_DHCP4_GET_MODE_DATA GetModeData;\r
EFI_DHCP4_CONFIGURE Configure;\r
/// \r
#define EFI_DISK_IO_INTERFACE_REVISION EFI_DISK_IO_PROTOCOL_REVISION\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol is used to abstract Block I/O interfaces.\r
-**/\r
+///\r
+/// This protocol is used to abstract Block I/O interfaces.\r
+///\r
struct _EFI_DISK_IO_PROTOCOL {\r
///\r
/// The revision to which the disk I/O interface adheres. All future\r
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL\r
);\r
\r
-//\r
-// Interface structure for the ControllerHandle Driver Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- This protocol provides the services required to determine if a driver supports a given controller. \r
- If a controller is supported, then it also provides routines to start and stop the controller.\r
-**/\r
+///\r
+/// This protocol provides the services required to determine if a driver supports a given controller. \r
+/// If a controller is supported, then it also provides routines to start and stop the controller.\r
+///\r
struct _EFI_DRIVER_BINDING_PROTOCOL {\r
EFI_DRIVER_BINDING_SUPPORTED Supported;\r
EFI_DRIVER_BINDING_START Start;\r
);\r
\r
\r
-/**\r
- Interface structure for the Driver Configuration Protocol.\r
-\r
- @par Protocol Description: \r
- Used to set configuration options for a controller that an EFI Driver is managing.\r
-\r
-**/\r
+///\r
+/// Used to set configuration options for a controller that an EFI Driver is managing.\r
+///\r
struct _EFI_DRIVER_CONFIGURATION_PROTOCOL {\r
EFI_DRIVER_CONFIGURATION_SET_OPTIONS SetOptions;\r
EFI_DRIVER_CONFIGURATION_OPTIONS_VALID OptionsValid;\r
OUT EFI_DRIVER_CONFIGURATION_ACTION_REQUIRED *ActionRequired\r
);\r
\r
-/**\r
- Interface structure for the Driver Configuration Protocol.\r
-\r
- @par Protocol Description: \r
- Used to set configuration options for a controller that an EFI Driver is managing.\r
-**/\r
+///\r
+/// Used to set configuration options for a controller that an EFI Driver is managing.\r
+///\r
struct _EFI_DRIVER_CONFIGURATION2_PROTOCOL {\r
EFI_DRIVER_CONFIGURATION2_SET_OPTIONS SetOptions;\r
EFI_DRIVER_CONFIGURATION2_OPTIONS_VALID OptionsValid;\r
OUT CHAR16 **Buffer\r
);\r
\r
-/**\r
- Interface structure for the Driver Diagnostics Protocol.\r
-\r
- @par Protocol Description:\r
- Used to perform diagnostics on a controller that an EFI Driver is managing.\r
-**/\r
+///\r
+/// Used to perform diagnostics on a controller that an EFI Driver is managing.\r
+///\r
struct _EFI_DRIVER_DIAGNOSTICS_PROTOCOL {\r
EFI_DRIVER_DIAGNOSTICS_RUN_DIAGNOSTICS RunDiagnostics;\r
///\r
OUT CHAR16 **Buffer\r
);\r
\r
-/**\r
- Interface structure for the Driver Diagnostics2 Protocol.\r
-\r
- @par Protocol Description:\r
- Used to perform diagnostics on a controller that an EFI Driver is managing.\r
-**/\r
+///\r
+/// Used to perform diagnostics on a controller that an EFI Driver is managing.\r
+///\r
struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL {\r
EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS RunDiagnostics;\r
///\r
IN EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL *This\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- When installed, the Driver Family Override Protocol produces a GUID that represets \r
- a family of drivers. Drivers with the same GUID are members of the same family \r
- When drivers are connected to controllers, drivers with a higher revision value \r
- in the same driver family are connected with a higher priority than drivers \r
- with a lower revision value in the same driver family. The EFI Boot Service\r
- Connect Controller uses five rules to build a prioritied list of drivers when \r
- a request is made to connect a driver to a controller. The Driver Family Protocol\r
- rule is between the Platform Specific Driver Override Protocol and above the \r
- Bus Specific Driver Override Protocol. \r
-\r
- @param GetVersion\r
- This function returns the version value associated with the driver specified by This.\r
-\r
-**/\r
+///\r
+/// When installed, the Driver Family Override Protocol produces a GUID that represets \r
+/// a family of drivers. Drivers with the same GUID are members of the same family \r
+/// When drivers are connected to controllers, drivers with a higher revision value \r
+/// in the same driver family are connected with a higher priority than drivers \r
+/// with a lower revision value in the same driver family. The EFI Boot Service\r
+/// Connect Controller uses five rules to build a prioritied list of drivers when \r
+/// a request is made to connect a driver to a controller. The Driver Family Protocol\r
+/// rule is between the Platform Specific Driver Override Protocol and above the \r
+/// Bus Specific Driver Override Protocol. \r
+///\r
struct _EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL {\r
EFI_DRIVER_FAMILY_OVERRIDE_GET_VERSION GetVersion;\r
};\r
{ 0x5c198761, 0x16a8, 0x4e69, { 0x97, 0x2c, 0x89, 0xd6, 0x79, 0x54, 0xf8, 0x1d } }\r
\r
\r
-/**\r
- @par Protocol Description: \r
- The EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL provides a\r
- mechanism for an EFI driver to publish the version of the EFI \r
- specification it conforms to. This protocol must be placed on \r
- the drivers image handle when the driver's entry point is \r
- called.\r
-**/ \r
+///\r
+/// The EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL provides a\r
+/// mechanism for an EFI driver to publish the version of the EFI \r
+/// specification it conforms to. This protocol must be placed on \r
+/// the drivers image handle when the driver's entry point is \r
+/// called.\r
+///\r
typedef struct _EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL {\r
///\r
/// The size, in bytes, of the entire structure. Future versions of this \r
IN OUT UINT64 *Version\r
);\r
\r
-//\r
-// Prototype for the actual EBC protocol interface\r
-//\r
-/**\r
- This protocol provides the services that allow execution of EBC images.\r
-\r
- @par Protocol Description:\r
- The EFI EBC protocol provides services to load and execute EBC images, which will typically be\r
- loaded into option ROMs. The image loader will load the EBC image, perform standard relocations,\r
- and invoke the CreateThunk() service to create a thunk for the EBC image's entry point. The\r
- image can then be run using the standard EFI start image services.\r
-**/\r
+///\r
+/// The EFI EBC protocol provides services to load and execute EBC images, which will typically be\r
+/// loaded into option ROMs. The image loader will load the EBC image, perform standard relocations,\r
+/// and invoke the CreateThunk() service to create a thunk for the EBC image's entry point. The\r
+/// image can then be run using the standard EFI start image services.\r
+///\r
struct _EFI_EBC_PROTOCOL {\r
EFI_EBC_CREATE_THUNK CreateThunk;\r
EFI_EBC_UNLOAD_IMAGE UnloadImage;\r
0xbd8c1056, 0x9f36, 0x44ec, {0x92, 0xa8, 0xa6, 0x33, 0x7f, 0x81, 0x79, 0x86 } \\r
}\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol contains the EDID information for an active video output device. This is either the\r
- EDID information retrieved from the EFI_EDID_OVERRIDE_PROTOCOL if an override is\r
- available, or an identical copy of the EDID information from the\r
- EFI_EDID_DISCOVERED_PROTOCOL if no overrides are available.\r
-**/\r
+///\r
+/// This protocol contains the EDID information for an active video output device. This is either the\r
+/// EDID information retrieved from the EFI_EDID_OVERRIDE_PROTOCOL if an override is\r
+/// available, or an identical copy of the EDID information from the\r
+/// EFI_EDID_DISCOVERED_PROTOCOL if no overrides are available.\r
+///\r
typedef struct {\r
///\r
/// The size, in bytes, of the Edid buffer. 0 if no EDID information\r
0x1c0c34f6, 0xd380, 0x41fa, {0xa0, 0x49, 0x8a, 0xd0, 0x6c, 0x1a, 0x66, 0xaa } \\r
}\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol contains the EDID information retrieved from a video output device.\r
-**/\r
+///\r
+/// This protocol contains the EDID information retrieved from a video output device.\r
+///\r
typedef struct {\r
///\r
/// The size, in bytes, of the Edid buffer. 0 if no EDID information\r
IN OUT UINT8 **Edid\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- This protocol is produced by the platform to allow the platform to provide \r
- EDID information to the producer of the Graphics Output protocol.\r
-**/\r
+///\r
+/// This protocol is produced by the platform to allow the platform to provide \r
+/// EDID information to the producer of the Graphics Output protocol.\r
+///\r
struct _EFI_EDID_OVERRIDE_PROTOCOL {\r
- ///\r
- /// Returns EDID values and attributes that the Video BIOS must use. \r
- ///\r
EFI_EDID_OVERRIDE_PROTOCOL_GET_EDID GetEdid;\r
};\r
\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- The Firmware Volume Protocol contains the file-level\r
- abstraction to the firmware volume as well as some firmware\r
- volume attribute reporting and configuration services. The\r
- Firmware Volume Protocol is the interface used by all parts of\r
- DXE that are not directly involved with managing the firmware\r
- volume itself. This abstraction allows many varied types of\r
- firmware volume implementations. A firmware volume may be a\r
- flash device or it may be a file in the UEFI system partition,\r
- for example. This level of firmware volume implementation\r
- detail is not visible to the consumers of the Firmware Volume\r
- Protocol.\r
-**/\r
+///\r
+/// The Firmware Volume Protocol contains the file-level\r
+/// abstraction to the firmware volume as well as some firmware\r
+/// volume attribute reporting and configuration services. The\r
+/// Firmware Volume Protocol is the interface used by all parts of\r
+/// DXE that are not directly involved with managing the firmware\r
+/// volume itself. This abstraction allows many varied types of\r
+/// firmware volume implementations. A firmware volume may be a\r
+/// flash device or it may be a file in the UEFI system partition,\r
+/// for example. This level of firmware volume implementation\r
+/// detail is not visible to the consumers of the Firmware Volume\r
+/// Protocol.\r
+///\r
struct _EFI_FIRMWARE_VOLUME2_PROTOCOL {\r
EFI_FV_GET_ATTRIBUTES GetVolumeAttributes;\r
EFI_FV_SET_ATTRIBUTES SetVolumeAttributes;\r
...\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- The Firmware Volume Block Protocol is the low-level interface\r
- to a firmware volume. File-level access to a firmware volume\r
- should not be done using the Firmware Volume Block Protocol.\r
- Normal access to a firmware volume must use the Firmware\r
- Volume Protocol. Typically, only the file system driver that\r
- produces the Firmware Volume Protocol will bind to the\r
- Firmware Volume Block Protocol. The Firmware Volume Block\r
- Protocol provides the following:\r
- - Byte-level read/write functionality.\r
- - Block-level erase functionality.\r
- - It further exposes device-hardening features, such as may be\r
- equired to protect the firmware from unwanted overwriting\r
- and/or erasure.\r
- - It is useful to layer a file system driver on top of the\r
- Firmware Volume Block Protocol.\r
-\r
- This file system driver produces the Firmware Volume Protocol,\r
- which provides file-level access to a firmware volume. The\r
- Firmware Volume Protocol abstracts the file system that is\r
- used to format the firmware volume and the hardware\r
- device-hardening features that may be present.\r
-**/\r
+///\r
+/// The Firmware Volume Block Protocol is the low-level interface\r
+/// to a firmware volume. File-level access to a firmware volume\r
+/// should not be done using the Firmware Volume Block Protocol.\r
+/// Normal access to a firmware volume must use the Firmware\r
+/// Volume Protocol. Typically, only the file system driver that\r
+/// produces the Firmware Volume Protocol will bind to the\r
+/// Firmware Volume Block Protocol.\r
+///\r
struct _EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL {\r
EFI_FVB_GET_ATTRIBUTES GetAttributes;\r
EFI_FVB_SET_ATTRIBUTES SetAttributes;\r
IN CONST CHAR16 *VariableName OPTIONAL\r
);\r
\r
-/**\r
- @par Protocol Description: \r
- This interface will allow the caller to direct the configuration \r
- driver to use either the HII database or use the passed-in packet of data.\r
-**/\r
+///\r
+/// This interface will allow the caller to direct the configuration \r
+/// driver to use either the HII database or use the passed-in packet of data.\r
+///\r
struct _EFI_FORM_BROWSER2_PROTOCOL {\r
EFI_SEND_FORM2 SendForm;\r
EFI_BROWSER_CALLBACK2 BrowserCallback;\r
UINTN FrameBufferSize;\r
} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE;\r
\r
-/**\r
- @par Protocol Description:\r
- Provides a basic abstraction to set video modes and copy pixels to and from \r
- the graphics controller's frame buffer. The linear address of the hardware \r
- frame buffer is also exposed so software can write directly to the video hardware.\r
-**/\r
+///\r
+/// Provides a basic abstraction to set video modes and copy pixels to and from \r
+/// the graphics controller's frame buffer. The linear address of the hardware \r
+/// frame buffer is also exposed so software can write directly to the video hardware.\r
+///\r
struct _EFI_GRAPHICS_OUTPUT_PROTOCOL {\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode;\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt;\r
+ ///\r
+ /// Pointer to EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE data.\r
+ ///\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;\r
};\r
\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- Typically, protocol interface structures are identified by associating them with a GUID. Each\r
- instance of a protocol with a given GUID must have the same interface structure. While all instances\r
- of the GUIDed Section Extraction Protocol must have the same interface structure, they do not all\r
- have the same GUID. The GUID that is associated with an instance of the GUIDed Section\r
- Extraction Protocol is used to correlate it with the GUIDed section type that it is intended to process.\r
-**/\r
+///\r
+/// Typically, protocol interface structures are identified by associating them with a GUID. Each\r
+/// instance of a protocol with a given GUID must have the same interface structure. While all instances\r
+/// of the GUIDed Section Extraction Protocol must have the same interface structure, they do not all\r
+/// have the same GUID. The GUID that is associated with an instance of the GUIDed Section\r
+/// Extraction Protocol is used to correlate it with the GUIDed section type that it is intended to process.\r
+///\r
struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL {\r
EFI_EXTRACT_GUIDED_SECTION ExtractSection;\r
};\r
IN OUT EFI_HASH_OUTPUT *Hash\r
); \r
\r
-/**\r
- @par Protocol Description:\r
- This protocol allows creating a hash of an arbitrary message digest \r
- using one or more hash algorithms.\r
-**/\r
+///\r
+/// This protocol allows creating a hash of an arbitrary message digest \r
+/// using one or more hash algorithms.\r
+///\r
struct _EFI_HASH_PROTOCOL {\r
EFI_HASH_GET_HASH_SIZE GetHashSize;\r
EFI_HASH_HASH Hash;\r
)\r
;\r
\r
-/**\r
- @par Protocol Description: \r
- This protocol provides a callable interface between the HII and\r
- drivers. Only drivers which provide IFR data to HII are required\r
- to publish this protocol.\r
-**/\r
+///\r
+/// This protocol provides a callable interface between the HII and\r
+/// drivers. Only drivers which provide IFR data to HII are required\r
+/// to publish this protocol.\r
+///\r
struct _EFI_HII_CONFIG_ACCESS_PROTOCOL {\r
EFI_HII_ACCESS_EXTRACT_CONFIG ExtractConfig;\r
EFI_HII_ACCESS_ROUTE_CONFIG RouteConfig;\r
OUT EFI_STRING *AltCfgResp \r
);\r
\r
-/**\r
- @par Protocol Description: \r
- This protocol defines the configuration routing interfaces\r
- between external applications and the HII. There may only be one\r
- instance of this protocol in the system.\r
-**/\r
+///\r
+/// This protocol defines the configuration routing interfaces\r
+/// between external applications and the HII. There may only be one\r
+/// instance of this protocol in the system.\r
+///\r
struct _EFI_HII_CONFIG_ROUTING_PROTOCOL {\r
EFI_HII_ROUTING_EXTRACT_CONFIG ExtractConfig;\r
EFI_HII_ROUTING_EXPORT_CONFIG ExportConfig;\r
OUT EFI_HANDLE *DriverHandle\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- Database manager for HII-related data structures.\r
-**/\r
+///\r
+/// Database manager for HII-related data structures.\r
+///\r
struct _EFI_HII_DATABASE_PROTOCOL {\r
EFI_HII_DATABASE_NEW_PACK NewPackageList;\r
EFI_HII_DATABASE_REMOVE_PACK RemovePackageList;\r
IN CONST EFI_STRING String OPTIONAL\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- The protocol provides the service to retrieve the font informations.\r
-**/\r
+///\r
+/// The protocol provides the service to retrieve the font informations.\r
+///\r
struct _EFI_HII_FONT_PROTOCOL {\r
EFI_HII_STRING_TO_IMAGE StringToImage;\r
EFI_HII_STRING_ID_TO_IMAGE StringIdToImage;\r
);\r
\r
\r
-/**\r
- @par Protocol Description: \r
- Services to access to images in the images database.\r
-**/\r
+///\r
+/// Services to access to images in the images database.\r
+///\r
struct _EFI_HII_IMAGE_PROTOCOL {\r
EFI_HII_NEW_IMAGE NewImage;\r
EFI_HII_GET_IMAGE GetImage;\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- Services to manipulate the string.\r
-**/\r
+///\r
+/// Services to manipulate the string.\r
+///\r
struct _EFI_HII_STRING_PROTOCOL {\r
EFI_HII_NEW_STRING NewString;\r
EFI_HII_GET_STRING GetString;\r
IN VOID *Buffer\r
); \r
\r
-/** \r
- @par Protocol Description:\r
- iSCSI Initiator Name Protocol for setting and obtaining the iSCSI Initiator Name. \r
-**/\r
+///\r
+/// iSCSI Initiator Name Protocol for setting and obtaining the iSCSI Initiator Name. \r
+///\r
struct _EFI_ISCSI_INITIATOR_NAME_PROTOCOL {\r
EFI_ISCSI_INITIATOR_NAME_GET Get;\r
EFI_ISCSI_INITIATOR_NAME_SET Set;\r
IN EFI_IP4_PROTOCOL *This\r
); \r
\r
-/** \r
- @par Protocol Description:\r
- The EFI IPv4 Protocol implements a simple packet-oriented interface that can be \r
- used by drivers, daemons, and applications to transmit and receive network packets.\r
-**/\r
+///\r
+/// The EFI IPv4 Protocol implements a simple packet-oriented interface that can be \r
+/// used by drivers, daemons, and applications to transmit and receive network packets.\r
+///\r
struct _EFI_IP4_PROTOCOL {\r
EFI_IP4_GET_MODE_DATA GetModeData;\r
EFI_IP4_CONFIGURE Configure;\r
OUT EFI_IP4_IPCONFIG_DATA *IpConfigData OPTIONAL\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_IP4_CONFIG_PROTOCOL driver performs platform- and policy-dependent \r
- configuration for the EFI IPv4 Protocol driver. \r
-**/\r
+///\r
+/// The EFI_IP4_CONFIG_PROTOCOL driver performs platform- and policy-dependent \r
+/// configuration for the EFI IPv4 Protocol driver. \r
+///\r
struct _EFI_IP4_CONFIG_PROTOCOL {\r
EFI_IP4_CONFIG_START Start;\r
EFI_IP4_CONFIG_STOP Stop;\r
IN VOID *Buffer OPTIONAL\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_LOAD_FILE_PROTOCOL is a simple protocol used to obtain files from arbitrary devices.\r
-**/\r
+///\r
+/// The EFI_LOAD_FILE_PROTOCOL is a simple protocol used to obtain files from arbitrary devices.\r
+///\r
struct _EFI_LOAD_FILE_PROTOCOL {\r
EFI_LOAD_FILE LoadFile;\r
};\r
/// \r
#define EFI_LOADED_IMAGE_INFORMATION_REVISION EFI_LOADED_IMAGE_PROTOCOL_REVISION\r
\r
-/** \r
- @par Protocol Description:\r
- Can be used on any image handle to obtain information about the loaded image.\r
-**/\r
+///\r
+/// Can be used on any image handle to obtain information about the loaded image.\r
+///\r
typedef struct {\r
///\r
/// Defines the revision of the EFI_LOADED_IMAGE_PROTOCOL structure. \r
/// the firmware's boot manager. \r
///\r
EFI_HANDLE ParentHandle;\r
+\r
+ ///\r
+ /// the image's EFI system table pointer.\r
+ ///\r
EFI_SYSTEM_TABLE *SystemTable;\r
\r
//\r
/// The size in bytes of the loaded image.\r
///\r
UINT64 ImageSize;\r
+\r
+ ///\r
+ /// The memory type that the code sections were loaded as.\r
+ ///\r
EFI_MEMORY_TYPE ImageCodeType;\r
+\r
+ ///\r
+ /// The memory type that the data sections were loaded as.\r
+ ///\r
EFI_MEMORY_TYPE ImageDataType;\r
\r
- //\r
- // If the driver image supports a dynamic unload request\r
- //\r
EFI_IMAGE_UNLOAD Unload;\r
\r
} EFI_LOADED_IMAGE_PROTOCOL;\r
IN EFI_MANAGED_NETWORK_PROTOCOL *This\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The MNP is used by network applications (and drivers) to \r
- perform raw (unformatted) asynchronous network packet I/O.\r
-**/\r
+///\r
+/// The MNP is used by network applications (and drivers) to \r
+/// perform raw (unformatted) asynchronous network packet I/O.\r
+///\r
struct _EFI_MANAGED_NETWORK_PROTOCOL {\r
EFI_MANAGED_NETWORK_GET_MODE_DATA GetModeData;\r
EFI_MANAGED_NETWORK_CONFIGURE Configure;\r
IN UINT32 TickNumber\r
);\r
\r
-/**\r
- Interface stucture for the Metronome Architectural Protocol.\r
-\r
- @par Protocol Description:\r
- This protocol provides access to a known time source in the platform to the\r
- core. The core uses this known time source to produce core services that \r
- require calibrated delays. \r
-\r
- @param WaitForTick\r
- Waits for a specified number of ticks from a known time source \r
- in the platform. The actual time passed between entry of this \r
- function and the first tick is between 0 and TickPeriod 100 nS \r
- units. If you want to guarantee that at least TickPeriod time \r
- has elapsed, wait for two ticks.\r
-**/\r
+///\r
+/// This protocol provides access to a known time source in the platform to the\r
+/// core. The core uses this known time source to produce core services that \r
+/// require calibrated delays. \r
+///\r
struct _EFI_METRONOME_ARCH_PROTOCOL {\r
EFI_METRONOME_WAIT_FOR_TICK WaitForTick;\r
\r
IN EFI_MTFTP4_PROTOCOL *This\r
); \r
\r
-/** \r
- The EFI MTFTPv4 Protocol provides basic services for client-side unicast \r
- and/or multicast TFTP operations.\r
-\r
- @par Protocol Description:\r
- The EFI_MTFTP4_PROTOCOL is designed to be used by UEFI drivers and applications \r
- to transmit and receive data files. The EFI MTFTPv4 Protocol driver uses \r
- the underlying EFI UDPv4 Protocol driver and EFI IPv4 Protocol driver.\r
-**/ \r
+///\r
+/// The EFI_MTFTP4_PROTOCOL is designed to be used by UEFI drivers and applications \r
+/// to transmit and receive data files. The EFI MTFTPv4 Protocol driver uses \r
+/// the underlying EFI UDPv4 Protocol driver and EFI IPv4 Protocol driver.\r
+/// \r
struct _EFI_MTFTP4_PROTOCOL {\r
EFI_MTFTP4_GET_MODE_DATA GetModeData;\r
EFI_MTFTP4_CONFIGURE Configure;\r
EfiNetworkInterfaceUndi = 1\r
} EFI_NETWORK_PROTOCOL_TYPE;\r
\r
-/** \r
- @par Protocol Description:\r
- An optional protocol that is used to describe details about the software \r
- layer that is used to produce the Simple Network Protocol. \r
-**/\r
+///\r
+/// An optional protocol that is used to describe details about the software \r
+/// layer that is used to produce the Simple Network Protocol. \r
+///\r
struct _EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL {\r
///\r
/// The revision of the EFI_NETWORK_INTERFACE_IDENTIFIER protocol.\r
IN OUT CONST EFI_GUID **Guid\r
);\r
\r
-//\r
-// Interface structure for the PCD Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- This service abstracts the ability to set/get Platform Configuration Database (PCD).\r
-**/\r
+///\r
+/// This service abstracts the ability to set/get Platform Configuration Database (PCD).\r
+///\r
typedef struct {\r
PCD_PROTOCOL_SET_SKU SetSku;\r
\r
IN OUT UINT64 *Length\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_PCI_IO_PROTOCOL provides the basic Memory, I/O, PCI configuration, \r
- and DMA interfaces that are used to abstract accesses to PCI controllers. \r
- There is one EFI_PCI_IO_PROTOCOL instance for each PCI controller on a PCI bus. \r
- A device driver that wishes to manage a PCI controller in a system will have to \r
- retrieve the EFI_PCI_IO_PROTOCOL instance that is associated with the PCI controller. \r
-**/\r
+///\r
+/// The EFI_PCI_IO_PROTOCOL provides the basic Memory, I/O, PCI configuration, \r
+/// and DMA interfaces that are used to abstract accesses to PCI controllers. \r
+/// There is one EFI_PCI_IO_PROTOCOL instance for each PCI controller on a PCI bus. \r
+/// A device driver that wishes to manage a PCI controller in a system will have to \r
+/// retrieve the EFI_PCI_IO_PROTOCOL instance that is associated with the PCI controller. \r
+///\r
struct _EFI_PCI_IO_PROTOCOL {\r
EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollMem;\r
EFI_PCI_IO_PROTOCOL_POLL_IO_MEM PollIo;\r
OUT VOID **Resources\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- Provides the basic Memory, I/O, PCI configuration, and DMA interfaces that are \r
- used to abstract accesses to PCI controllers behind a PCI Root Bridge Controller. \r
-**/\r
+///\r
+/// Provides the basic Memory, I/O, PCI configuration, and DMA interfaces that are \r
+/// used to abstract accesses to PCI controllers behind a PCI Root Bridge Controller. \r
+///\r
struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL {\r
///\r
/// The EFI_HANDLE of the PCI Host Bridge of which this PCI Root Bridge is a member.\r
IN EFI_HANDLE DriverImageHandle\r
);\r
\r
-//\r
-// Interface structure for the Platform Driver Override Protocol\r
-//\r
-/** \r
- @par Protocol Description:\r
- This protocol matches one or more drivers to a controller. A platform driver \r
- produces this protocol, and it is installed on a separate handle. This protocol \r
- is used by the ConnectController() boot service to select the best driver \r
- for a controller. All of the drivers returned by this protocol have a higher \r
- precedence than drivers found from an EFI Bus Specific Driver Override Protocol \r
- or drivers found from the general UEFI driver Binding search algorithm. If more \r
- than one driver is returned by this protocol, then the drivers are returned in \r
- order from highest precedence to lowest precedence.\r
-**/\r
+///\r
+/// This protocol matches one or more drivers to a controller. A platform driver \r
+/// produces this protocol, and it is installed on a separate handle. This protocol \r
+/// is used by the ConnectController() boot service to select the best driver \r
+/// for a controller. All of the drivers returned by this protocol have a higher \r
+/// precedence than drivers found from an EFI Bus Specific Driver Override Protocol \r
+/// or drivers found from the general UEFI driver Binding search algorithm. If more \r
+/// than one driver is returned by this protocol, then the drivers are returned in \r
+/// order from highest precedence to lowest precedence.\r
+///\r
struct _EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL {\r
EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER GetDriver;\r
EFI_PLATFORM_DRIVER_OVERRIDE_GET_DRIVER_PATH GetDriverPath;\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL is used by the\r
- UEFI driver to query the platform for configuration information.\r
- The UEFI driver calls Query() multiple times to get\r
- configuration information from the platform. For every call to\r
- Query() there must be a matching call to Response() so the\r
- UEFI driver can inform the platform how it used the\r
- information passed in from Query(). It's legal for a UEFI\r
- driver to use Response() to inform the platform it does not\r
- understand the data returned via Query() and thus no action was\r
- taken.\r
-\r
- @param Query Called by the UEFI Driver Start() function to\r
- get configuration information from the\r
- platform.\r
- \r
- @param Response Called by the UEFI Driver Start() function\r
- to let the platform know how UEFI driver\r
- processed the data return from Query.\r
- \r
-\r
-**/\r
+///\r
+/// The EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL is used by the\r
+/// UEFI driver to query the platform for configuration information.\r
+/// The UEFI driver calls Query() multiple times to get\r
+/// configuration information from the platform. For every call to\r
+/// Query() there must be a matching call to Response() so the\r
+/// UEFI driver can inform the platform how it used the\r
+/// information passed in from Query(). It's legal for a UEFI\r
+/// driver to use Response() to inform the platform it does not\r
+/// understand the data returned via Query() and thus no action was\r
+/// taken.\r
+///\r
struct _EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL {\r
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_QUERY Query;\r
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_RESPONSE Response;\r
// \r
#define EFI_PXE_BASE_CODE_INTERFACE_REVISION EFI_PXE_BASE_CODE_PROTOCOL_REVISION\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.\r
- An EFI_PXE_BASE_CODE_PROTOCOL will be layered on top of an\r
- EFI_MANAGED_NETWORK_PROTOCOL protocol in order to perform packet level transactions.\r
- The EFI_PXE_BASE_CODE_PROTOCOL handle also supports the\r
- EFI_LOAD_FILE_PROTOCOL protocol. This provides a clean way to obtain control from the\r
- boot manager if the boot path is from the remote device.\r
-**/\r
+///\r
+/// The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.\r
+/// An EFI_PXE_BASE_CODE_PROTOCOL will be layered on top of an\r
+/// EFI_MANAGED_NETWORK_PROTOCOL protocol in order to perform packet level transactions.\r
+/// The EFI_PXE_BASE_CODE_PROTOCOL handle also supports the\r
+/// EFI_LOAD_FILE_PROTOCOL protocol. This provides a clean way to obtain control from the\r
+/// boot manager if the boot path is from the remote device.\r
+///\r
struct _EFI_PXE_BASE_CODE_PROTOCOL {\r
///\r
/// The revision of the EFI_PXE_BASE_CODE_PROTOCOL. All future revisions must \r
EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;\r
EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;\r
EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;\r
+ ///\r
+ /// Pointer to the EFI_PXE_BASE_CODE_MODE data for this device.\r
+ ///\r
EFI_PXE_BASE_CODE_MODE *Mode;\r
};\r
\r
IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- Protocol that is invoked when the PXE Base Code Protocol is about \r
- to transmit, has received, or is waiting to receive a packet.\r
-\r
-**/\r
+///\r
+/// Protocol that is invoked when the PXE Base Code Protocol is about \r
+/// to transmit, has received, or is waiting to receive a packet.\r
+///\r
struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL {\r
///\r
/// The revision of the EFI_PXE_BASE_CODE_PROTOCOL. All future revisions must \r
EFI_LIST_ENTRY Link;\r
};\r
\r
-//\r
-// Interface stucture for the Runtime Architectural Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
- Allows the runtime functionality of the DXE Foundation to be contained in a \r
- separate driver. It also provides hooks for the DXE Foundation to export \r
- information that is needed at runtime. As such, this protocol allows the DXE \r
- Foundation to manage runtime drivers and events. This protocol also implies \r
- that the runtime services required to transition to virtual mode, \r
- SetVirtualAddressMap() and ConvertPointer(), have been registered into the \r
- EFI Runtime Table in the EFI System Partition. This protocol must be produced \r
- by a runtime DXE driver and may only be consumed by the DXE Foundation.\r
-**/\r
+///\r
+/// Allows the runtime functionality of the DXE Foundation to be contained in a \r
+/// separate driver. It also provides hooks for the DXE Foundation to export \r
+/// information that is needed at runtime. As such, this protocol allows the DXE \r
+/// Foundation to manage runtime drivers and events. This protocol also implies \r
+/// that the runtime services required to transition to virtual mode, \r
+/// SetVirtualAddressMap() and ConvertPointer(), have been registered into the \r
+/// EFI Runtime Table in the EFI System Partition. This protocol must be produced \r
+/// by a runtime DXE driver and may only be consumed by the DXE Foundation.\r
+///\r
struct _EFI_RUNTIME_ARCH_PROTOCOL {\r
///\r
/// A list of type EFI_RUNTIME_IMAGE_ENTRY.\r
IN EFI_EVENT Event OPTIONAL\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- Provides services to manage and communicate with SCSI devices.\r
-**/\r
+///\r
+/// Provides services to manage and communicate with SCSI devices.\r
+///\r
struct _EFI_SCSI_IO_PROTOCOL {\r
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE GetDeviceType;\r
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION GetDeviceLocation;\r
IN UINT64 Lun\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel and\r
- the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The\r
- information includes the Target ID of the host controller on the SCSI channel, the attributes of\r
- the SCSI channel, the printable name for the SCSI controller, and the printable name of the\r
- SCSI channel.\r
-**/\r
+///\r
+/// The EFI_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel and\r
+/// the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The\r
+/// information includes the Target ID of the host controller on the SCSI channel, the attributes of\r
+/// the SCSI channel, the printable name for the SCSI controller, and the printable name of the\r
+/// SCSI channel.\r
+///\r
struct _EFI_SCSI_PASS_THRU_PROTOCOL {\r
+ ///\r
+ /// A pointer to the EFI_SCSI_PASS_THRU_MODE data for this SCSI channel.\r
+ ///\r
EFI_SCSI_PASS_THRU_MODE *Mode;\r
EFI_SCSI_PASS_THRU_PASSTHRU PassThru;\r
EFI_SCSI_PASS_THRU_GET_NEXT_DEVICE GetNextDevice;\r
IN OUT UINT8 **Target\r
); \r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_EXT_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel \r
- and the ability to send SCI Request Packets to any SCSI device attached to \r
- that SCSI channel. The information includes the Target ID of the host controller \r
- on the SCSI channel and the attributes of the SCSI channel.\r
-**/ \r
+///\r
+/// The EFI_EXT_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel \r
+/// and the ability to send SCI Request Packets to any SCSI device attached to \r
+/// that SCSI channel. The information includes the Target ID of the host controller \r
+/// on the SCSI channel and the attributes of the SCSI channel.\r
+///\r
struct _EFI_EXT_SCSI_PASS_THRU_PROTOCOL {\r
+ ///\r
+ /// A pointer to the EFI_EXT_SCSI_PASS_THRU_MODE data for this SCSI channel.\r
+ ///\r
EFI_EXT_SCSI_PASS_THRU_MODE *Mode;\r
EFI_EXT_SCSI_PASS_THRU_PASSTHRU PassThru;\r
EFI_EXT_SCSI_PASS_THRU_GET_NEXT_TARGET_LUN GetNextTargetLun;\r
IN EFI_DEVICE_PATH_PROTOCOL *File\r
);\r
\r
-//\r
-// Interface stucture for the Timer Architectural Protocol\r
-//\r
-/**\r
- @par Protocol Description:\r
-\r
- The EFI_SECURITY_ARCH_PROTOCOL is used to abstract platform-specific policy\r
- from the DXE core. This includes locking flash upon failure to authenticate, \r
- attestation logging, and other exception operations.\r
-\r
- The driver that produces the EFI_SECURITY_ARCH_PROTOCOL may also optionally \r
- install the EFI_SECURITY_POLICY_PROTOCOL_GUID onto a new handle with a NULL \r
- interface. The existence of this GUID in the protocol database means that \r
- the GUIDed Section Extraction Protocol should authenticate the contents of \r
- an Authentication Section. The expectation is that the GUIDed Section \r
- Extraction protocol will look for the existence of the EFI_SECURITY_POLICY_ \r
- PROTOCOL_GUID in the protocol database. If it exists, then the publication \r
- thereof is taken as an injunction to attempt an authentication of any section \r
- wrapped in an Authentication Section. See the Firmware File System \r
- Specification for details on the GUIDed Section Extraction Protocol and \r
- Authentication Sections.\r
-**/\r
+///\r
+/// The EFI_SECURITY_ARCH_PROTOCOL is used to abstract platform-specific policy\r
+/// from the DXE core. This includes locking flash upon failure to authenticate, \r
+/// attestation logging, and other exception operations.\r
+///\r
struct _EFI_SECURITY_ARCH_PROTOCOL {\r
EFI_SECURITY_FILE_AUTHENTICATION_STATE FileAuthenticationState;\r
};\r
#define EFI_SERIAL_IO_PROTOCOL_REVISION 0x00010000\r
#define SERIAL_IO_INTERFACE_REVISION EFI_SERIAL_IO_PROTOCOL_REVISION\r
\r
-/** \r
- @par Protocol Description:\r
- The Serial I/O protocol is used to communicate with UART-style serial devices. \r
- These can be standard UART serial ports in PC-AT systems, serial ports attached \r
- to a USB interface, or potentially any character-based I/O device.\r
-**/\r
+///\r
+/// The Serial I/O protocol is used to communicate with UART-style serial devices. \r
+/// These can be standard UART serial ports in PC-AT systems, serial ports attached \r
+/// to a USB interface, or potentially any character-based I/O device.\r
+///\r
struct _EFI_SERIAL_IO_PROTOCOL {\r
///\r
/// The revision to which the EFI_SERIAL_IO_PROTOCOL adheres. All future revisions \r
EFI_SERIAL_GET_CONTROL_BITS GetControl;\r
EFI_SERIAL_WRITE Write;\r
EFI_SERIAL_READ Read;\r
-\r
+ ///\r
+ /// Pointer to SERIAL_IO_MODE data.\r
+ ///\r
EFI_SERIAL_IO_MODE *Mode;\r
};\r
\r
IN EFI_HANDLE ChildHandle\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_SERVICE_BINDING_PROTOCOL provides member functions to create and destroy \r
- child handles. A driver is responsible for adding protocols to the child handle \r
- in CreateChild() and removing protocols in DestroyChild(). It is also required \r
- that the CreateChild() function opens the parent protocol BY_CHILD_CONTROLLER \r
- to establish the parent-child relationship, and closes the protocol in DestroyChild().\r
- The pseudo code for CreateChild() and DestroyChild() is provided to specify the \r
- required behavior, not to specify the required implementation. Each consumer of \r
- a software protocol is responsible for calling CreateChild() when it requires the \r
- protocol and calling DestroyChild() when it is finished with that protocol.\r
-**/\r
+///\r
+/// The EFI_SERVICE_BINDING_PROTOCOL provides member functions to create and destroy \r
+/// child handles. A driver is responsible for adding protocols to the child handle \r
+/// in CreateChild() and removing protocols in DestroyChild(). It is also required \r
+/// that the CreateChild() function opens the parent protocol BY_CHILD_CONTROLLER \r
+/// to establish the parent-child relationship, and closes the protocol in DestroyChild().\r
+/// The pseudo code for CreateChild() and DestroyChild() is provided to specify the \r
+/// required behavior, not to specify the required implementation. Each consumer of \r
+/// a software protocol is responsible for calling CreateChild() when it requires the \r
+/// protocol and calling DestroyChild() when it is finished with that protocol.\r
+///\r
struct _EFI_SERVICE_BINDING_PROTOCOL {\r
EFI_SERVICE_BINDING_CREATE_CHILD CreateChild;\r
EFI_SERVICE_BINDING_DESTROY_CHILD DestroyChild;\r
// \r
#define EFI_FILE_REVISION EFI_FILE_PROTOCOL_REVISION\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_FILE_PROTOCOL provides file IO access to supported file systems.\r
- An EFI_FILE_PROTOCOL provides access to a file's or directory's contents, \r
- and is also a reference to a location in the directory tree of the file system \r
- in which the file resides. With any given file handle, other files may be opened \r
- relative to this file's location, yielding new file handles.\r
-**/\r
+///\r
+/// The EFI_FILE_PROTOCOL provides file IO access to supported file systems.\r
+/// An EFI_FILE_PROTOCOL provides access to a file's or directory's contents, \r
+/// and is also a reference to a location in the directory tree of the file system \r
+/// in which the file resides. With any given file handle, other files may be opened \r
+/// relative to this file's location, yielding new file handles.\r
+///\r
struct _EFI_FILE_PROTOCOL {\r
///\r
/// The version of the EFI_FILE_PROTOCOL interface. The version specified \r
// \r
#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION EFI_SIMPLE_NETWORK_PROTOCOL_REVISION\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access \r
- to a network adapter. Once the network adapter initializes, \r
- the EFI_SIMPLE_NETWORK_PROTOCOL protocol provides services that \r
- allow packets to be transmitted and received.\r
-**/\r
+///\r
+/// The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access \r
+/// to a network adapter. Once the network adapter initializes, \r
+/// the EFI_SIMPLE_NETWORK_PROTOCOL protocol provides services that \r
+/// allow packets to be transmitted and received.\r
+///\r
struct _EFI_SIMPLE_NETWORK_PROTOCOL {\r
///\r
/// Revision of the EFI_SIMPLE_NETWORK_PROTOCOL. All future revisions must \r
/// Event used with WaitForEvent() to wait for a packet to be received.\r
///\r
EFI_EVENT WaitForPacket;\r
+ ///\r
+ /// Pointer to the EFI_SIMPLE_NETWORK_MODE data for the device.\r
+ ///\r
EFI_SIMPLE_NETWORK_MODE *Mode;\r
};\r
\r
IN OUT EFI_SIMPLE_POINTER_STATE *State\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer \r
- device that can use used as an input device from an application written \r
- to this specification. The services include the ability to reset the \r
- pointer device, retrieve get the state of the pointer device, and \r
- retrieve the capabilities of the pointer device.\r
-**/\r
+///\r
+/// The EFI_SIMPLE_POINTER_PROTOCOL provides a set of services for a pointer \r
+/// device that can use used as an input device from an application written \r
+/// to this specification. The services include the ability to reset the \r
+/// pointer device, retrieve get the state of the pointer device, and \r
+/// retrieve the capabilities of the pointer device.\r
+///\r
struct _EFI_SIMPLE_POINTER_PROTOCOL {\r
EFI_SIMPLE_POINTER_RESET Reset;\r
EFI_SIMPLE_POINTER_GET_STATE GetState;\r
/// Event to use with WaitForEvent() to wait for input from the pointer device.\r
///\r
EFI_EVENT WaitForInput;\r
+ ///\r
+ /// Pointer to EFI_SIMPLE_POINTER_MODE data.\r
+ ///\r
EFI_SIMPLE_POINTER_MODE *Mode;\r
};\r
\r
OUT EFI_INPUT_KEY *Key\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_SIMPLE_TEXT_INPUT_PROTOCOL is used on the ConsoleIn device. \r
- It is the minimum required protocol for ConsoleIn.\r
-**/\r
+///\r
+/// The EFI_SIMPLE_TEXT_INPUT_PROTOCOL is used on the ConsoleIn device. \r
+/// It is the minimum required protocol for ConsoleIn.\r
+///\r
struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL {\r
EFI_INPUT_RESET Reset;\r
EFI_INPUT_READ_KEY ReadKeyStroke;\r
);\r
\r
\r
-/**\r
- The EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL is used on the ConsoleIn\r
- device. It is an extension to the Simple Text Input protocol\r
- which allows a variety of extended shift state information to be\r
- returned.\r
-**/\r
+///\r
+/// The EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL is used on the ConsoleIn\r
+/// device. It is an extension to the Simple Text Input protocol\r
+/// which allows a variety of extended shift state information to be\r
+/// returned.\r
+///\r
struct _EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL{\r
EFI_INPUT_RESET_EX Reset;\r
EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;\r
BOOLEAN CursorVisible;\r
} EFI_SIMPLE_TEXT_OUTPUT_MODE;\r
\r
-/** \r
- @par Protocol Description:\r
- The SIMPLE_TEXT_OUTPUT protocol is used to control text-based output devices. \r
- It is the minimum required protocol for any handle supplied as the ConsoleOut \r
- or StandardError device. In addition, the minimum supported text mode of such \r
- devices is at least 80 x 25 characters.\r
-**/\r
+///\r
+/// The SIMPLE_TEXT_OUTPUT protocol is used to control text-based output devices. \r
+/// It is the minimum required protocol for any handle supplied as the ConsoleOut \r
+/// or StandardError device. In addition, the minimum supported text mode of such \r
+/// devices is at least 80 x 25 characters.\r
+///\r
struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {\r
EFI_TEXT_RESET Reset;\r
\r
EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;\r
EFI_TEXT_ENABLE_CURSOR EnableCursor;\r
\r
- //\r
- // Current mode\r
- //\r
+ ///\r
+ /// Pointer to SIMPLE_TEXT_OUTPUT_MODE data.\r
+ ///\r
EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;\r
};\r
\r
);\r
\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_SMBUS_HC_PROTOCOL provides SMBus host controller management and basic data\r
- transactions over SMBus. There is one EFI_SMBUS_HC_PROTOCOL instance for each SMBus\r
- host controller.\r
-**/\r
+///\r
+/// The EFI_SMBUS_HC_PROTOCOL provides SMBus host controller management and basic data\r
+/// transactions over SMBus. There is one EFI_SMBUS_HC_PROTOCOL instance for each SMBus\r
+/// host controller.\r
+///\r
struct _EFI_SMBUS_HC_PROTOCOL {\r
EFI_SMBUS_HC_EXECUTE_OPERATION Execute;\r
EFI_SMBUS_HC_PROTOCOL_ARP_DEVICE ArpDevice;\r
IN EFI_STATUS_CODE_DATA *Data OPTIONAL\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- Provides the service required to report a status code to the platform firmware.\r
- This protocol must be produced by a runtime DXE driver and may be consumed \r
- only by the DXE Foundation.\r
-\r
-**/\r
+///\r
+/// Provides the service required to report a status code to the platform firmware.\r
+/// This protocol must be produced by a runtime DXE driver and may be consumed \r
+/// only by the DXE Foundation.\r
+///\r
typedef struct _EFI_STATUS_CODE_PROTOCOL {\r
EFI_REPORT_STATUS_CODE ReportStatusCode;\r
} EFI_STATUS_CODE_PROTOCOL;\r
IN BOOLEAN ExtendedVerification\r
); \r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_TAPE_IO_PROTOCOL provides basic sequential operations for tape devices. \r
- These include read, write, rewind, space, write filemarks and reset functions. \r
- Per this specification, a boot application uses the services of this protocol \r
- to load the bootloader image from tape.\r
-\r
-**/\r
+///\r
+/// The EFI_TAPE_IO_PROTOCOL provides basic sequential operations for tape devices. \r
+/// These include read, write, rewind, space, write filemarks and reset functions. \r
+/// Per this specification, a boot application uses the services of this protocol \r
+/// to load the bootloader image from tape.\r
+///\r
struct _EFI_TAPE_IO_PROTOCOL {\r
EFI_TAPE_READ TapeRead;\r
EFI_TAPE_WRITE TapeWrite;\r
OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry\r
);\r
\r
-/**\r
- @par Protocol Description:\r
- The EFI_TCG Protocol abstracts TCG activity.\r
-\r
-**/\r
+///\r
+/// The EFI_TCG Protocol abstracts TCG activity.\r
+///\r
struct _EFI_TCG_PROTOCOL {\r
EFI_TCG_STATUS_CHECK StatusCheck;\r
EFI_TCG_HASH_ALL HashAll;\r
IN EFI_TCP4_PROTOCOL *This\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_TCP4_PROTOCOL defines the EFI TCPv4 Protocol child to be used by \r
- any network drivers or applications to send or receive data stream. \r
- It can either listen on a specified port as a service or actively connected \r
- to remote peer as a client. Each instance has its own independent settings, \r
- such as the routing table.\r
-**/\r
+///\r
+/// The EFI_TCP4_PROTOCOL defines the EFI TCPv4 Protocol child to be used by \r
+/// any network drivers or applications to send or receive data stream. \r
+/// It can either listen on a specified port as a service or actively connected \r
+/// to remote peer as a client. Each instance has its own independent settings, \r
+/// such as the routing table.\r
+///\r
struct _EFI_TCP4_PROTOCOL {\r
EFI_TCP4_GET_MODE_DATA GetModeData;\r
EFI_TCP4_CONFIGURE Configure;\r
);\r
\r
\r
-/**\r
- Interface stucture for the Timer Architectural Protocol.\r
-\r
- @par Protocol Description:\r
- This protocol provides the services to initialize a periodic timer \r
- interrupt, and to register a handler that is called each time the timer\r
- interrupt fires. It may also provide a service to adjust the rate of the\r
- periodic timer interrupt. When a timer interrupt occurs, the handler is \r
- passed the amount of time that has passed since the previous timer \r
- interrupt.\r
-**/\r
+///\r
+/// This protocol provides the services to initialize a periodic timer \r
+/// interrupt, and to register a handler that is called each time the timer\r
+/// interrupt fires. It may also provide a service to adjust the rate of the\r
+/// periodic timer interrupt. When a timer interrupt occurs, the handler is \r
+/// passed the amount of time that has passed since the previous timer \r
+/// interrupt.\r
+///\r
struct _EFI_TIMER_ARCH_PROTOCOL {\r
EFI_TIMER_REGISTER_HANDLER RegisterHandler;\r
EFI_TIMER_SET_TIMER_PERIOD SetTimerPeriod;\r
IN EFI_UDP4_COMPLETION_TOKEN *Token OPTIONAL\r
); \r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_UDP4_PROTOCOL defines an EFI UDPv4 Protocol session that can be used \r
- by any network drivers, applications, or daemons to transmit or receive UDP packets. \r
- This protocol instance can either be bound to a specified port as a service or \r
- connected to some remote peer as an active client. Each instance has its own settings, \r
- such as the routing table and group table, which are independent from each other.\r
-**/\r
+///\r
+/// The EFI_UDP4_PROTOCOL defines an EFI UDPv4 Protocol session that can be used \r
+/// by any network drivers, applications, or daemons to transmit or receive UDP packets. \r
+/// This protocol instance can either be bound to a specified port as a service or \r
+/// connected to some remote peer as an active client. Each instance has its own settings, \r
+/// such as the routing table and group table, which are independent from each other.\r
+///\r
struct _EFI_UDP4_PROTOCOL {\r
EFI_UDP4_GET_MODE_DATA GetModeData;\r
EFI_UDP4_CONFIGURE Configure;\r
IN UINTN Delta OPTIONAL\r
);\r
\r
-/** \r
- This protocol provides a basic abstraction to set video modes and \r
- copy pixels to and from the graphics controller's frame buffer. \r
-\r
- @par Protocol Description:\r
- The EFI_UGA_DRAW_PROTOCOL provides a software abstraction to allow pixels to be drawn\r
- directly to the frame buffer. The EFI_UGA_DRAW_PROTOCOL is designed to be lightweight and\r
- to support the basic needs of graphics output prior to Operating System boot. \r
-\r
-**/\r
+///\r
+/// This protocol provides a basic abstraction to set video modes and \r
+/// copy pixels to and from the graphics controller's frame buffer. \r
+///\r
struct _EFI_UGA_DRAW_PROTOCOL {\r
EFI_UGA_DRAW_PROTOCOL_GET_MODE GetMode;\r
EFI_UGA_DRAW_PROTOCOL_SET_MODE SetMode;\r
IN OUT PUGA_IO_REQUEST pIoRequest\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- Provides a basic abstraction to send I/O requests to the graphics device and any of its children.\r
-**/\r
+///\r
+/// Provides a basic abstraction to send I/O requests to the graphics device and any of its children.\r
+///\r
struct _EFI_UGA_IO_PROTOCOL {\r
EFI_UGA_IO_PROTOCOL_CREATE_DEVICE CreateDevice;\r
EFI_UGA_IO_PROTOCOL_DELETE_DEVICE DeleteDevice;\r
OUT CHAR8 *Fat\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_UNICODE_COLLATION_PROTOCOL is used to perform case-insensitive \r
- comparisons of Unicode strings. \r
-**/\r
+///\r
+/// The EFI_UNICODE_COLLATION_PROTOCOL is used to perform case-insensitive \r
+/// comparisons of Unicode strings. \r
+///\r
struct _EFI_UNICODE_COLLATION_PROTOCOL {\r
//\r
// general\r
EFI_UNICODE_COLLATION_STRTOFAT StrToFat;\r
\r
///\r
- /// LanguagesA Null-terminated ASCII string array that contains one or more \r
+ /// A Null-terminated ASCII string array that contains one or more \r
/// language codes. This array is specified in RFC 4646 format.\r
///\r
CHAR8 *SupportedLanguages;\r
IN EFI_USB_PORT_FEATURE PortFeature\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_USB2_HC_PROTOCOL provides USB host controller management, basic \r
- data transactions over a USB bus, and USB root hub access. A device driver \r
- that wishes to manage a USB bus in a system retrieves the EFI_USB2_HC_PROTOCOL \r
- instance that is associated with the USB bus to be managed. A device handle \r
- for a USB host controller will minimally contain an EFI_DEVICE_PATH_PROTOCOL \r
- instance, and an EFI_USB2_HC_PROTOCOL instance.\r
-\r
-**/\r
+///\r
+/// The EFI_USB2_HC_PROTOCOL provides USB host controller management, basic \r
+/// data transactions over a USB bus, and USB root hub access. A device driver \r
+/// that wishes to manage a USB bus in a system retrieves the EFI_USB2_HC_PROTOCOL \r
+/// instance that is associated with the USB bus to be managed. A device handle \r
+/// for a USB host controller will minimally contain an EFI_DEVICE_PATH_PROTOCOL \r
+/// instance, and an EFI_USB2_HC_PROTOCOL instance.\r
+///\r
struct _EFI_USB2_HC_PROTOCOL {\r
EFI_USB2_HC_PROTOCOL_GET_CAPABILITY GetCapability;\r
EFI_USB2_HC_PROTOCOL_RESET Reset;\r
);\r
\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_USB_HC_PROTOCOL provides USB host controller management, basic data transactions\r
- over a USB bus, and USB root hub access. A device driver that wishes to manage a USB bus in a\r
- system retrieves the EFI_USB_HC_PROTOCOL instance that is associated with the USB bus to be\r
- managed. A device handle for a USB host controller will minimally contain an\r
- EFI_DEVICE_PATH_PROTOCOL instance, and an EFI_USB_HC_PROTOCOL instance. \r
-\r
-**/\r
+///\r
+/// The EFI_USB_HC_PROTOCOL provides USB host controller management, basic data transactions\r
+/// over a USB bus, and USB root hub access. A device driver that wishes to manage a USB bus in a\r
+/// system retrieves the EFI_USB_HC_PROTOCOL instance that is associated with the USB bus to be\r
+/// managed. A device handle for a USB host controller will minimally contain an\r
+/// EFI_DEVICE_PATH_PROTOCOL instance, and an EFI_USB_HC_PROTOCOL instance. \r
+///\r
struct _EFI_USB_HC_PROTOCOL {\r
EFI_USB_HC_PROTOCOL_RESET Reset;\r
EFI_USB_HC_PROTOCOL_GET_STATE GetState;\r
OUT UINT16 *TableSize\r
);\r
\r
-/** \r
- @par Protocol Description:\r
- The EFI_USB_IO_PROTOCOL provides four basic transfers types described \r
- in the USB 1.1 Specification. These include control transfer, interrupt \r
- transfer, bulk transfer and isochronous transfer. The EFI_USB_IO_PROTOCOL \r
- also provides some basic USB device/controller management and configuration \r
- interfaces. A USB device driver uses the services of this protocol to manage USB devices. \r
-**/\r
+///\r
+/// The EFI_USB_IO_PROTOCOL provides four basic transfers types described \r
+/// in the USB 1.1 Specification. These include control transfer, interrupt \r
+/// transfer, bulk transfer and isochronous transfer. The EFI_USB_IO_PROTOCOL \r
+/// also provides some basic USB device/controller management and configuration \r
+/// interfaces. A USB device driver uses the services of this protocol to manage USB devices. \r
+///\r
struct _EFI_USB_IO_PROTOCOL {\r
//\r
// IO transfer\r
);\r
\r
\r
-/**\r
- Interface stucture for the Watchdog Timer Architectural Protocol.\r
-\r
- @par Protocol Description:\r
- This protocol provides the services required to implement the Boot Service \r
- SetWatchdogTimer(). It provides a service to set the amount of time to wait \r
- before firing the watchdog timer, and it also provides a service to register \r
- a handler that is invoked when the watchdog timer fires. This protocol can \r
- implement the watchdog timer by using the event and timer Boot Services, or \r
- it can make use of custom hardware. When the watchdog timer fires, control \r
- will be passed to a handler if one has been registered. If no handler has \r
- been registered, or the registered handler returns, then the system will be \r
- reset by calling the Runtime Service ResetSystem().\r
-**/\r
+///\r
+/// This protocol provides the services required to implement the Boot Service \r
+/// SetWatchdogTimer(). It provides a service to set the amount of time to wait \r
+/// before firing the watchdog timer, and it also provides a service to register \r
+/// a handler that is invoked when the watchdog timer fires. This protocol can \r
+/// implement the watchdog timer by using the event and timer Boot Services, or \r
+/// it can make use of custom hardware. When the watchdog timer fires, control \r
+/// will be passed to a handler if one has been registered. If no handler has \r
+/// been registered, or the registered handler returns, then the system will be \r
+/// reset by calling the Runtime Service ResetSystem().\r
+///\r
struct _EFI_WATCHDOG_TIMER_ARCH_PROTOCOL {\r
EFI_WATCHDOG_TIMER_REGISTER_HANDLER RegisterHandler;\r
EFI_WATCHDOG_TIMER_SET_TIMER_PERIOD SetTimerPeriod;\r