20 #ifndef KERNEL_PROCESSOR_IOBASE_H 21 #define KERNEL_PROCESSOR_IOBASE_H 23 #include "pedigree/kernel/compiler.h" 24 #include "pedigree/kernel/processor/types.h" 38 virtual size_t size()
const = 0;
42 virtual uint8_t read8(
size_t offset = 0) = 0;
46 virtual uint16_t read16(
size_t offset = 0) = 0;
50 virtual uint32_t read32(
size_t offset = 0) = 0;
55 virtual uint64_t read64(
size_t offset = 0) = 0;
62 inline uint64_t read64LowFirst(
size_t offset = 0);
68 inline uint64_t read64HighFirst(
size_t offset = 0);
74 virtual void write8(uint8_t value,
size_t offset = 0) = 0;
79 virtual void write16(uint16_t value,
size_t offset = 0) = 0;
84 virtual void write32(uint32_t value,
size_t offset = 0) = 0;
89 virtual void write64(uint64_t value,
size_t offset = 0) = 0;
96 void write64LowFirst(uint64_t value,
size_t offset = 0);
102 void write64HighFirst(uint64_t value,
size_t offset = 0);
107 virtual operator bool()
const = 0;
Abstrace base class for hardware I/O capabilities.