/** Writes an 8-bit MMIO register. Writes the 8-bit MMIO register specified by Address with the value specified by Value and returns Value. 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 write. @param Value The value to write to the MMIO register. **/ UINT8 EFIAPI MmioWrite8 ( IN UINTN Address, IN UINT8 Value ) { return (UINT8)MmioWriteWorker (Address, EfiCpuIoWidthUint8, Value); }
/** Writes an 8-bit MMIO register. Writes the 8-bit MMIO register specified by Address with the value specified by Value and returns Value. 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 write. @param Value The value to write to the MMIO register. **/ UINT8 EFIAPI MmioWrite8 ( IN UINTN Address, IN UINT8 Value ) { return (UINT8)MmioWriteWorker (Address, SMM_IO_UINT8, Value); }
/** Writes a 64-bit MMIO register. Writes the 64-bit MMIO register specified by Address with the value specified by Value and returns Value. 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 write. @param Value The value to write to the MMIO register. **/ UINT64 EFIAPI MmioWrite64 ( IN UINTN Address, IN UINT64 Value ) { // // Make sure Address is aligned on a 64-bit boundary. // ASSERT ((Address & 7) == 0); return (UINT64)MmioWriteWorker (Address, EfiCpuIoWidthUint64, Value); }
/** Writes a 32-bit MMIO register. Writes the 32-bit MMIO register specified by Address with the value specified by Value and returns Value. 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 write. @param Value The value to write to the MMIO register. **/ UINT32 EFIAPI MmioWrite32 ( IN UINTN Address, IN UINT32 Value ) { // // Make sure Address is aligned on a 32-bit boundary. // ASSERT ((Address & 3) == 0); return (UINT32)MmioWriteWorker (Address, EfiCpuIoWidthUint32, Value); }
/** Writes a 16-bit MMIO register. Writes the 16-bit MMIO register specified by Address with the value specified by Value and returns Value. 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 write. @param Value The value to write to the MMIO register. **/ UINT16 EFIAPI MmioWrite16 ( IN UINTN Address, IN UINT16 Value ) { // // Make sure Address is aligned on a 16-bit boundary. // ASSERT ((Address & 1) == 0); return (UINT16)MmioWriteWorker (Address, EfiCpuIoWidthUint16, Value); }