/** Reads an 8-bit MMIO register. Reads the 8-bit MMIO register specified by Address. The 8-bit read value is returned. This function must guarantee that all MMIO read and write operations are serialized. If 8-bit MMIO register operations are not supported, then ASSERT(). @param Address The MMIO register to read. @return The value read. **/ UINT8 EFIAPI MmioRead8 ( IN UINTN Address ) { return (UINT8)MmioReadWorker (Address, EfiCpuIoWidthUint8); }
/** Reads an 8-bit MMIO register. Reads the 8-bit MMIO register specified by Address. The 8-bit read value is returned. This function must guarantee that all MMIO read and write operations are serialized. If 8-bit MMIO register operations are not supported, then ASSERT(). @param Address The MMIO register to read. @return The value read. **/ UINT8 EFIAPI MmioRead8 ( IN UINTN Address ) { return (UINT8)MmioReadWorker (Address, SMM_IO_UINT8); }
/** Reads a 64-bit MMIO register. Reads the 64-bit MMIO register specified by Address. The 64-bit read value is returned. This function must guarantee that all MMIO read and write operations are serialized. If Address is not aligned on a 64-bit boundary, then ASSERT(). If 64-bit MMIO register operations are not supported, then ASSERT(). @param Address The MMIO register to read. @return The value read. **/ UINT64 EFIAPI MmioRead64 ( IN UINTN Address ) { // // Make sure Address is aligned on a 64-bit boundary. // ASSERT ((Address & 7) == 0); return (UINT64)MmioReadWorker (Address, EfiCpuIoWidthUint64); }
/** Reads a 32-bit MMIO register. Reads the 32-bit MMIO register specified by Address. The 32-bit read value is returned. This function must guarantee that all MMIO read and write operations are serialized. If Address is not aligned on a 32-bit boundary, then ASSERT(). If 32-bit MMIO register operations are not supported, then ASSERT(). @param Address The MMIO register to read. @return The value read. **/ UINT32 EFIAPI MmioRead32 ( IN UINTN Address ) { // // Make sure Address is aligned on a 32-bit boundary. // ASSERT ((Address & 3) == 0); return (UINT32)MmioReadWorker (Address, EfiCpuIoWidthUint32); }
/** Reads a 16-bit MMIO register. Reads the 16-bit MMIO register specified by Address. The 16-bit read value is returned. This function must guarantee that all MMIO read and write operations are serialized. If Address is not aligned on a 16-bit boundary, then ASSERT(). If 16-bit MMIO register operations are not supported, then ASSERT(). @param Address The MMIO register to read. @return The value read. **/ UINT16 EFIAPI MmioRead16 ( IN UINTN Address ) { // // Make sure Address is aligned on a 16-bit boundary. // ASSERT ((Address & 1) == 0); return (UINT16)MmioReadWorker (Address, EfiCpuIoWidthUint16); }