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/types.h" 26 #include "pedigree/kernel/utilities/RangeList.h" 27 #include "pedigree/kernel/utilities/Vector.h" 34 #if !defined(KERNEL_PROCESSOR_NO_PORT_IO) 101 IoPortManager(const IoPortManager &);
104 IoPortManager &operator=(const IoPortManager &);
IoPortInfo(io_port_t IoPort, size_t size, const char *Name)
#define INITIALISATION_ONLY
Vector< IoPort * > m_UsedIoPorts
A vector / dynamic array.
static IoPortManager & instance()
bool allocate(IoPort *Port, io_port_t ioPort, size_t size)
Manages hardware I/O port (de)allocations.
static IoPortManager m_Instance
void initialise(io_port_t ioPortBase, size_t size) INITIALISATION_ONLY
void allocateIoPortList(Vector< IoPortInfo * > &IoPorts)
The exception was caused by a hardware task switch.
IoPortManager() INITIALISATION_ONLY
RangeList< uint32_t > m_FreeIoPorts
void freeIoPortList(Vector< IoPortInfo * > &IoPorts)