20#ifndef KERNEL_PROCESSOR_IOPORT_H
21#define KERNEL_PROCESSOR_IOPORT_H
22#include "pedigree/kernel/compiler.h"
23#include "pedigree/kernel/processor/IoBase.h"
24#include "pedigree/kernel/processor/types.h"
43 virtual size_t size()
const;
44 virtual uint8_t
read8(
size_t offset = 0);
45 virtual uint16_t
read16(
size_t offset = 0);
46 virtual uint32_t
read32(
size_t offset = 0);
48 virtual uint64_t
read64(
size_t offset = 0);
50 virtual void write8(uint8_t value,
size_t offset = 0);
51 virtual void write16(uint16_t value,
size_t offset = 0);
52 virtual void write32(uint32_t value,
size_t offset = 0);
54 virtual void write64(uint64_t value,
size_t offset = 0);
56 virtual operator bool()
const;
59 io_port_t base()
const;
62 const char* name()
const;
69 bool allocate(io_port_t ioPort,
size_t size);
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
IoPort & operator=(const IoPort &)