20#ifndef KERNEL_PROCESSOR_IOBASE_H
21#define KERNEL_PROCESSOR_IOBASE_H
22#include "pedigree/kernel/compiler.h"
23#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.
virtual uint8_t read8(size_t offset=0)=0
virtual void write32(uint32_t value, size_t offset=0)=0
virtual uint32_t read32(size_t offset=0)=0
virtual void write8(uint8_t value, size_t offset=0)=0
virtual void write16(uint16_t value, size_t offset=0)=0
virtual uint64_t read64(size_t offset=0)=0
virtual uint16_t read16(size_t offset=0)=0
virtual size_t size() const =0
virtual void write64(uint64_t value, size_t offset=0)=0
IoBase & operator=(const IoBase &)