20#ifndef KERNEL_PROCESSOR_IOPORTMANAGER_H
21#define KERNEL_PROCESSOR_IOPORTMANAGER_H
23#include "pedigree/kernel/Spinlock.h"
24#include "pedigree/kernel/compiler.h"
25#include "pedigree/kernel/processor/Processor.h"
26#include "pedigree/kernel/processor/types.h"
27#include "pedigree/kernel/utilities/RangeList.h"
28#include "pedigree/kernel/utilities/Vector.h"
Manages hardware I/O port (de)allocations.
bool allocate(IoPort *Port, io_port_t ioPort, size_t size)
void initialise(io_port_t ioPortBase, size_t size) INITIALISATION_ONLY
static IoPortManager & instance()
void allocateIoPortList(Vector< IoPortInfo * > &IoPorts)
void freeIoPortList(Vector< IoPortInfo * > &IoPorts)
Vector< IoPort * > m_UsedIoPorts
RangeList< uint32_t > m_FreeIoPorts
static IoPortManager m_Instance
IoPortManager() INITIALISATION_ONLY
A vector / dynamic array.
#define INITIALISATION_ONLY
IoPortInfo(io_port_t IoPort, size_t size, const char *Name)