}\r
\r
/**\r
- Reads a 8-bit I/O port.\r
+ Reads an 8-bit I/O port.\r
\r
Reads the 8-bit I/O port specified by Port. The 8-bit read value is returned.\r
This function must guarantee that all I/O read and write operations are\r
serialized.\r
\r
+ If 8-bit I/O port operations are not supported, then ASSERT().\r
+\r
@param Port The I/O port to read.\r
\r
- @return The value read from Port.\r
+ @return The value read.\r
\r
**/\r
UINT8\r
EFIAPI\r
IoRead8 (\r
- IN UINTN Port\r
+ IN UINTN Port\r
)\r
{\r
return MmioRead8 (InternalGetMemoryMapAddress (Port));\r
This function must guarantee that all I/O read and write operations are\r
serialized.\r
\r
+ If 16-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
@param Port The I/O port to read.\r
\r
- @return The value read from Port.\r
+ @return The value read.\r
\r
**/\r
UINT16\r
EFIAPI\r
IoRead16 (\r
- IN UINTN Port\r
+ IN UINTN Port\r
)\r
{\r
return MmioRead16 (InternalGetMemoryMapAddress (Port));\r
This function must guarantee that all I/O read and write operations are\r
serialized.\r
\r
+ If 32-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 32-bit boundary, then ASSERT().\r
+ \r
@param Port The I/O port to read.\r
\r
- @return The value read from Port.\r
+ @return The value read.\r
\r
**/\r
UINT32\r
EFIAPI\r
IoRead32 (\r
- IN UINTN Port\r
+ IN UINTN Port\r
)\r
{\r
return MmioRead32 (InternalGetMemoryMapAddress (Port));\r
serialized.\r
\r
If 64-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 64-bit boundary, then ASSERT().\r
\r
@param Port The I/O port to read.\r
\r
- @return The value read from Port.\r
+ @return The value read.\r
\r
**/\r
UINT64\r
}\r
\r
/**\r
- Writes a 8-bit I/O port.\r
+ Writes an 8-bit I/O port.\r
\r
Writes the 8-bit I/O port specified by Port with the value specified by Value\r
and returns Value. This function must guarantee that all I/O read and write\r
operations are serialized.\r
\r
+ If 8-bit I/O port operations are not supported, then ASSERT().\r
+\r
@param Port The I/O port to write.\r
- @param Data The value to write to the I/O port.\r
+ @param Value The value to write to the I/O port.\r
\r
- @return The value written to the I/O port. It equals to the\r
- input Value instead of the actual value read back from\r
- the I/O port.\r
+ @return The value written the I/O port.\r
\r
**/\r
UINT8\r
EFIAPI\r
IoWrite8 (\r
- IN UINTN Port,\r
- IN UINT8 Data\r
+ IN UINTN Port,\r
+ IN UINT8 Value\r
)\r
{\r
- return MmioWrite8 (InternalGetMemoryMapAddress (Port), Data);\r
+ return MmioWrite8 (InternalGetMemoryMapAddress (Port), Value);\r
}\r
\r
/**\r
and returns Value. This function must guarantee that all I/O read and write\r
operations are serialized.\r
\r
+ If 16-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 16-bit boundary, then ASSERT().\r
+ \r
@param Port The I/O port to write.\r
- @param Data The value to write to the I/O port.\r
+ @param Value The value to write to the I/O port.\r
\r
- @return The value written to the I/O port. It equals to the\r
- input Value instead of the actual value read back from\r
- the I/O port.\r
+ @return The value written the I/O port.\r
\r
**/\r
UINT16\r
EFIAPI\r
IoWrite16 (\r
- IN UINTN Port,\r
- IN UINT16 Data\r
+ IN UINTN Port,\r
+ IN UINT16 Value\r
)\r
{\r
- return MmioWrite16 (InternalGetMemoryMapAddress (Port), Data);\r
+ return MmioWrite16 (InternalGetMemoryMapAddress (Port), Value);\r
}\r
\r
/**\r
and returns Value. This function must guarantee that all I/O read and write\r
operations are serialized.\r
\r
+ If 32-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 32-bit boundary, then ASSERT().\r
+ \r
@param Port The I/O port to write.\r
- @param Data The value to write to the I/O port.\r
+ @param Value The value to write to the I/O port.\r
\r
- @return The value written to the I/O port. It equals to the\r
- input Value instead of the actual value read back from\r
- the I/O port.\r
+ @return The value written the I/O port.\r
\r
**/\r
UINT32\r
EFIAPI\r
IoWrite32 (\r
- IN UINTN Port,\r
- IN UINT32 Data\r
+ IN UINTN Port,\r
+ IN UINT32 Value\r
)\r
{\r
- return MmioWrite32 (InternalGetMemoryMapAddress (Port), Data);\r
+ return MmioWrite32 (InternalGetMemoryMapAddress (Port), Value);\r
}\r
\r
/**\r
operations are serialized.\r
\r
If 64-bit I/O port operations are not supported, then ASSERT().\r
+ If Port is not aligned on a 64-bit boundary, then ASSERT().\r
\r
@param Port The I/O port to write.\r
@param Value The value to write to the I/O port.\r
\r
- @return The value written to the I/O port. It equals to the\r
- input Value instead of the actual value read back from\r
- the I/O port.\r
+ @return The value written the I/O port.\r
\r
**/\r
UINT64\r
}\r
\r
/**\r
- Reads a 8-bit MMIO register.\r
+ Reads an 8-bit MMIO register.\r
\r
Reads the 8-bit MMIO register specified by Address. The 8-bit read value is\r
returned. This function must guarantee that all MMIO read and write\r
operations are serialized.\r
\r
+ If 8-bit MMIO register operations are not supported, then ASSERT().\r
+\r
@param Address The MMIO register to read.\r
\r
- @return The value read from Address.\r
+ @return The value read.\r
\r
**/\r
UINT8\r
EFIAPI\r
MmioRead8 (\r
- IN UINT64 Address\r
+ IN UINTN Address\r
)\r
{\r
UINT8 Data;\r
returned. This function must guarantee that all MMIO read and write\r
operations are serialized.\r
\r
+ If 16-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 16-bit boundary, then ASSERT().\r
+\r
@param Address The MMIO register to read.\r
\r
- @return The value read from Address.\r
+ @return The value read.\r
\r
**/\r
UINT16\r
EFIAPI\r
MmioRead16 (\r
- IN UINT64 Address\r
+ IN UINTN Address\r
)\r
{\r
UINT16 Data;\r
returned. This function must guarantee that all MMIO read and write\r
operations are serialized.\r
\r
+ If 32-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 32-bit boundary, then ASSERT().\r
+\r
@param Address The MMIO register to read.\r
\r
- @return The value read from Address.\r
+ @return The value read.\r
\r
**/\r
UINT32\r
EFIAPI\r
MmioRead32 (\r
- IN UINT64 Address\r
+ IN UINTN Address\r
)\r
{\r
UINT32 Data;\r
returned. This function must guarantee that all MMIO read and write\r
operations are serialized.\r
\r
+ If 64-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 64-bit boundary, then ASSERT().\r
+\r
@param Address The MMIO register to read.\r
\r
- @return The value read from Address.\r
+ @return The value read.\r
\r
**/\r
UINT64\r
EFIAPI\r
MmioRead64 (\r
- IN UINT64 Address\r
+ IN UINTN Address\r
)\r
{\r
UINT64 Data;\r
}\r
\r
/**\r
- Writes a 8-bit MMIO register.\r
+ Writes an 8-bit MMIO register.\r
\r
Writes the 8-bit MMIO register specified by Address with the value specified\r
by Value and returns Value. This function must guarantee that all MMIO read\r
and write operations are serialized.\r
\r
- @param Address The MMIO register to write.\r
- @param Data The value to write to the MMIO register.\r
+ If 8-bit MMIO register operations are not supported, then ASSERT().\r
\r
- @return The value written to the Mmio. It equals to the\r
- input Value instead of the actual value read back from\r
- the Mmio.\r
+ @param Address The MMIO register to write.\r
+ @param Value The value to write to the MMIO register.\r
+ \r
+ @return Value.\r
\r
**/\r
UINT8\r
EFIAPI\r
MmioWrite8 (\r
- IN UINT64 Address,\r
- IN UINT8 Data\r
+ IN UINTN Address,\r
+ IN UINT8 Value\r
)\r
{\r
Address |= BIT63;\r
\r
MemoryFence ();\r
- *((volatile UINT8 *) Address) = Data;\r
+ *((volatile UINT8 *) Address) = Value;\r
MemoryFence ();\r
\r
- return Data;\r
+ return Value;\r
}\r
\r
/**\r
by Value and returns Value. This function must guarantee that all MMIO read\r
and write operations are serialized.\r
\r
- @param Address The MMIO register to write.\r
- @param Data The value to write to the MMIO register.\r
+ If 16-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 16-bit boundary, then ASSERT().\r
\r
- @return The value written to the Mmio. It equals to the\r
- input Value instead of the actual value read back from\r
- the Mmio.\r
+ @param Address The MMIO register to write.\r
+ @param Value The value to write to the MMIO register.\r
+ \r
+ @return Value.\r
\r
**/\r
UINT16\r
EFIAPI\r
MmioWrite16 (\r
- IN UINT64 Address,\r
- IN UINT16 Data\r
+ IN UINTN Address,\r
+ IN UINT16 Value\r
)\r
{\r
//\r
Address |= BIT63;\r
\r
MemoryFence ();\r
- *((volatile UINT16 *) Address) = Data;\r
+ *((volatile UINT16 *) Address) = Value;\r
MemoryFence ();\r
\r
- return Data;\r
+ return Value;\r
}\r
\r
/**\r
by Value and returns Value. This function must guarantee that all MMIO read\r
and write operations are serialized.\r
\r
- @param Address The MMIO register to write.\r
- @param Data The value to write to the MMIO register.\r
+ If 32-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 32-bit boundary, then ASSERT().\r
\r
- @return The value written to the Mmio. It equals to the\r
- input Value instead of the actual value read back from\r
- the Mmio.\r
+ @param Address The MMIO register to write.\r
+ @param Value The value to write to the MMIO register.\r
+ \r
+ @return Value.\r
\r
**/\r
UINT32\r
EFIAPI\r
MmioWrite32 (\r
- IN UINT64 Address,\r
- IN UINT32 Data\r
+ IN UINTN Address,\r
+ IN UINT32 Value\r
)\r
{\r
//\r
Address |= BIT63;\r
\r
MemoryFence ();\r
- *((volatile UINT32 *) Address) = Data;\r
+ *((volatile UINT32 *) Address) = Value;\r
MemoryFence ();\r
\r
- return Data;\r
+ return Value;\r
}\r
\r
/**\r
by Value and returns Value. This function must guarantee that all MMIO read\r
and write operations are serialized.\r
\r
- @param Address The MMIO register to write.\r
- @param Data The value to write to the MMIO register.\r
+ If 64-bit MMIO register operations are not supported, then ASSERT().\r
+ If Address is not aligned on a 64-bit boundary, then ASSERT().\r
\r
- @return The value written to the Mmio. It equals to the\r
- input Value instead of the actual value read back from\r
- the Mmio.\r
+ @param Address The MMIO register to write.\r
+ @param Value The value to write to the MMIO register.\r
\r
**/\r
UINT64\r
EFIAPI\r
MmioWrite64 (\r
- IN UINT64 Address,\r
- IN UINT64 Data\r
+ IN UINTN Address,\r
+ IN UINT64 Value\r
)\r
{\r
//\r
Address |= BIT63;\r
\r
MemoryFence ();\r
- *((volatile UINT64 *) Address) = Data;\r
+ *((volatile UINT64 *) Address) = Value;\r
MemoryFence ();\r
\r
- return Data;\r
+ return Value;\r
}\r