WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
\r
@par Revision Reference:\r
- This PPI is defined in PI.\r
- Version 1.0.\r
+ This PPI is introduced in PI Version 1.0.\r
\r
**/\r
\r
#ifndef __PEI_CPUIO_PPI_H__\r
#define __PEI_CPUIO_PPI_H__\r
\r
-#include <ProcessorBind.h>\r
#include <Pi/PiPeiCis.h>\r
\r
#define EFI_PEI_CPU_IO_PPI_INSTALLED_GUID \\r
\r
typedef struct _EFI_PEI_CPU_IO_PPI EFI_PEI_CPU_IO_PPI;\r
\r
-//\r
-// *******************************************************\r
-// EFI_PEI_CPU_IO_PPI_WIDTH\r
-// *******************************************************\r
-//\r
+///\r
+/// *******************************************************\r
+/// EFI_PEI_CPU_IO_PPI_WIDTH\r
+/// *******************************************************\r
+///\r
typedef enum {\r
EfiPeiCpuIoWidthUint8,\r
EfiPeiCpuIoWidthUint16,\r
/**\r
Memory-based access services and I/O-based access services.\r
\r
- @param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
- @param This Pointer to local data for the interface.\r
- @param Width The width of the access. Enumerated in bytes.\r
- @param Address The physical address of the access.\r
- @param Count The number of accesses to perform.\r
- @param Buffer A pointer to the buffer of data.\r
+ @param PeiServices An indirect pointer to the PEI Services Table\r
+ published by the PEI Foundation.\r
+ @param This Pointer to local data for the interface.\r
+ @param Width The width of the access. Enumerated in bytes.\r
+ @param Address The physical address of the access.\r
+ @param Count The number of accesses to perform.\r
+ @param Buffer A pointer to the buffer of data.\r
\r
@retval EFI_SUCCESS The function completed successfully.\r
@retval EFI_NOT_YET_AVAILABLE The service has not been installed.\r
typedef\r
EFI_STATUS\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_MEM)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
IN EFI_PEI_CPU_IO_PPI_WIDTH Width,\r
IN UINT64 Address,\r
IN UINTN Count,\r
IN OUT VOID *Buffer\r
);\r
\r
-//\r
-// *******************************************************\r
-// EFI_PEI_CPU_IO_PPI_ACCESS\r
-// *******************************************************\r
-//\r
+///\r
+/// *******************************************************\r
+/// EFI_PEI_CPU_IO_PPI_ACCESS\r
+/// *******************************************************\r
+///\r
typedef struct {\r
+ ///\r
+ /// This service provides the various modalities of memory and I/O read.\r
+ ///\r
EFI_PEI_CPU_IO_PPI_IO_MEM Read;\r
+ ///\r
+ /// This service provides the various modalities of memory and I/O write.\r
+ ///\r
EFI_PEI_CPU_IO_PPI_IO_MEM Write;\r
} EFI_PEI_CPU_IO_PPI_ACCESS;\r
\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT8 An 8-bit value is returned from the I/O space.\r
+ @return An 8-bit value returned from the I/O space.\r
\r
**/\r
typedef\r
UINT8\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ8)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT16 A 16-bit value is returned from the I/O space.\r
+ @return A 16-bit value returned from the I/O space.\r
\r
**/\r
typedef\r
UINT16\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ16)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT32 A 32-bit value is returned from the I/O space.\r
+ @return A 32-bit value returned from the I/O space.\r
\r
**/\r
typedef\r
UINT32\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ32)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT64 A 64-bit value is returned from the I/O space.\r
+ @return A 64-bit value returned from the I/O space.\r
\r
**/\r
typedef\r
UINT64\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ64)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE8)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT8 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT8 Data\r
);\r
\r
/**\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE16)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT16 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT16 Data\r
);\r
\r
/**\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE32)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT32 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT32 Data\r
);\r
\r
/**\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE64)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT64 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT64 Data\r
);\r
\r
/**\r
- 8-bit Memory read operations.\r
+ 8-bit memory read operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT8 An 8-bit value is returned from the memory space.\r
+ @return An 8-bit value returned from the memory space.\r
\r
**/\r
typedef\r
UINT8\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ8)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
- 16-bit Memory read operations.\r
+ 16-bit memory read operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT16 A 16-bit value is returned from the memory space.\r
+ @return A 16-bit value returned from the memory space.\r
\r
**/\r
typedef\r
UINT16\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ16)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
- 32-bit Memory read operations.\r
+ 32-bit memory read operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT32 A 32-bit value is returned from the memory space.\r
+ @return A 32-bit value returned from the memory space.\r
\r
**/\r
typedef\r
UINT32\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ32)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
- 64-bit Memory read operations.\r
+ 64-bit memory read operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
\r
- @return UINT64 A 64-bit value is returned from the memory space.\r
+ @return A 64-bit value returned from the memory space.\r
\r
**/\r
typedef\r
UINT64\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ64)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address\r
);\r
\r
/**\r
- 8-bit Memory write operations.\r
+ 8-bit memory write operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE8)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT8 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT8 Data\r
);\r
\r
/**\r
- 16-bit Memory write operations.\r
+ 16-bit memory write operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE16)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT16 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT16 Data\r
);\r
\r
/**\r
- 32-bit Memory write operations.\r
+ 32-bit memory write operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE32)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT32 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT32 Data\r
);\r
\r
/**\r
- 64-bit Memory write operations.\r
+ 64-bit memory write operations.\r
\r
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.\r
@param This Pointer to local data for the interface.\r
@param Address The physical address of the access.\r
@param Data The data to write.\r
\r
- @return None\r
-\r
**/\r
typedef\r
VOID\r
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE64)(\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_CPU_IO_PPI *This,\r
- IN UINT64 Address,\r
- IN UINT64 Data\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_CPU_IO_PPI *This,\r
+ IN UINT64 Address,\r
+ IN UINT64 Data\r
);\r
\r
-/**\r
- @par Ppi Description:\r
- EFI_PEI_CPU_IO_PPI provides a set of memory and I/O-based services.\r
- The perspective of the services is that of the processor, not the bus or system.\r
-\r
- @param Mem\r
- Collection of memory-access services.\r
-\r
- @param I/O\r
- Collection of I/O-access services.\r
-\r
- @param IoRead8\r
- 8-bit read service.\r
-\r
- @param IoRead16\r
- 16-bit read service.\r
-\r
- @param IoRead32\r
- 32-bit read service.\r
-\r
- @param IoRead64\r
- 64-bit read service.\r
-\r
- @param IoWrite8\r
- 8-bit write service.\r
-\r
- @param IoWrite16\r
- 16-bit write service.\r
-\r
- @param IoWrite32\r
- 32-bit write service.\r
-\r
- @param IoWrite64\r
- 64-bit write service.\r
-\r
- @param MemRead8\r
- 8-bit read service.\r
-\r
- @param MemRead16\r
- 16-bit read service.\r
-\r
- @param MemRead32\r
- 32-bit read service.\r
-\r
- @param MemRead64\r
- 64-bit read service.\r
-\r
- @param MemWrite8\r
- 8-bit write service.\r
-\r
- @param MemWrite16\r
- 16-bit write service.\r
-\r
- @param MemWrite32\r
- 32-bit write service.\r
-\r
- @param MemWrite64\r
- 64-bit write service.\r
-\r
-**/\r
+///\r
+/// EFI_PEI_CPU_IO_PPI provides a set of memory and I/O-based services.\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
- EFI_PEI_CPU_IO_PPI_ACCESS Mem;\r
- EFI_PEI_CPU_IO_PPI_ACCESS Io;\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
EFI_PEI_CPU_IO_PPI_IO_READ16 IoRead16;\r
EFI_PEI_CPU_IO_PPI_IO_READ32 IoRead32;\r
EFI_PEI_CPU_IO_PPI_IO_READ64 IoRead64;\r
+\r
EFI_PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8;\r
EFI_PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16;\r
EFI_PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32;\r
EFI_PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64;\r
+\r
EFI_PEI_CPU_IO_PPI_MEM_READ8 MemRead8;\r
EFI_PEI_CPU_IO_PPI_MEM_READ16 MemRead16;\r
EFI_PEI_CPU_IO_PPI_MEM_READ32 MemRead32;\r
EFI_PEI_CPU_IO_PPI_MEM_READ64 MemRead64;\r
+\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8;\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16;\r
EFI_PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32;\r