/** @file\r
- I/O Library.\r
+ I/O Library. The implementations are based on EFI_PEI_SERVICE->CpuIo interface.\r
\r
Copyright (c) 2006, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- Module Name: IoLib.c\r
-\r
**/\r
\r
-//\r
-// The package level header files this module uses\r
-//\r
+\r
#include <PiPei.h>\r
-//\r
-// The Library classes this module consumes\r
-//\r
+\r
#include <Library/IoLib.h>\r
#include <Library/DebugLib.h>\r
#include <Library/BaseLib.h>\r
\r
@param Port The I/O port to read.\r
\r
- @return The value read.\r
+ @return The value read from Port.\r
\r
**/\r
UINT8\r
IN UINTN Port\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
\r
IN UINT8 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
\r
\r
@param Port The I/O port to read.\r
\r
- @return The value read.\r
+ @return The value read from Port.\r
\r
**/\r
UINT16\r
IN UINTN Port\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
IN UINT16 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Port The I/O port to read.\r
\r
- @return The value read.\r
+ @return The value read from Port.\r
\r
**/\r
UINT32\r
IN UINTN Port\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
IN UINT32 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Port The I/O port to read.\r
\r
- @return The value read.\r
+ @return The value read from Port.\r
\r
**/\r
UINT64\r
IN UINTN Port\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
IN UINT64 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Address The MMIO register to read.\r
\r
- @return The value read.\r
+ @return The value read from Port.\r
\r
**/\r
UINT8\r
IN UINTN Address\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
\r
\r
@param Address The MMIO register to write.\r
@param Value The value to write to the MMIO register.\r
-\r
+ \r
+ @return The Value written back to Mmio register.\r
**/\r
UINT8\r
EFIAPI\r
IN UINT8 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
\r
\r
@param Address The MMIO register to read.\r
\r
- @return The value read.\r
+ @return The value read from Address.\r
\r
**/\r
UINT16\r
IN UINTN Address\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Address The MMIO register to write.\r
@param Value The value to write to the MMIO register.\r
+ \r
+ @return The Value written back to Mmio register\r
\r
**/\r
UINT16\r
IN UINT16 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Address The MMIO register to read.\r
\r
- @return The value read.\r
+ @return The value read from Address.\r
\r
**/\r
UINT32\r
IN UINTN Address\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Address The MMIO register to write.\r
@param Value The value to write to the MMIO register.\r
+ \r
+ @return The Value written back to Mmio register\r
\r
**/\r
UINT32\r
IN UINT32 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
\r
@param Address The MMIO register to read.\r
\r
- @return The value read.\r
+ @return The value read from Address.\r
\r
**/\r
UINT64\r
IN UINTN Address\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r
// Make sure Address is aligned on a 64-bit boundary.\r
//\r
- ASSERT ((Address & 7) == 0);\r
+ ASSERT ((Address & (sizeof (UINT64) - 1)) == 0);\r
return CpuIo->MemRead64 (PeiServices, CpuIo, (UINT64) Address);\r
\r
}\r
@param Address The MMIO register to write.\r
@param Value The value to write to the MMIO register.\r
\r
+ @return The Value written back to Mmio register\r
**/\r
UINT64\r
EFIAPI\r
IN UINT64 Value\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_PEI_CPU_IO_PPI *CpuIo;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **) GetPeiServicesTablePointer ();\r
CpuIo = (*PeiServices)->CpuIo;\r
ASSERT (CpuIo != NULL);\r
//\r