20 #ifndef BUSMASTERIDE_H 21 #define BUSMASTERIDE_H 23 #include "pedigree/kernel/process/Mutex.h" 24 #include "pedigree/kernel/processor/MemoryRegion.h" 25 #include "pedigree/kernel/processor/types.h" 33 #define BUSMASTER_VERBOSE_LOGGING 0 57 uint8_t startStop : 1;
70 uint8_t bmIdeActive : 1;
72 uint8_t interrupt : 1;
74 uint8_t drv0Capable : 1;
75 uint8_t drv1Capable : 1;
76 uint8_t simplexOnly : 1;
111 bool initialise(
IoBase *pBase);
124 bool add(uintptr_t buffer,
size_t nBytes);
137 bool begin(
bool bWrite);
181 void commandComplete();
uint32_t baseAddress
Base address of the table, first two bits must be zero.
size_t m_LastPrdTableOffset
MemoryRegion m_PrdTableMemRegion
Abstrace base class for hardware I/O capabilities.
PhysicalRegionDescriptor * m_PrdTable
physical_uintptr_t m_PrdTablePhys
Special memory entity in the kernel's virtual address space.
bool isActive() const
Is there currently a DMA transaction taking place?