I know that there are four ways to access hardware buffers:
    DMA,    Interrupts,    Memory Maps,    I/O ports
 
I do know that to acces the IO ports, you could use import() or outport() functions; you could also access memory maps through _386_map_physical_address() function. You could also access SOFTWARE interrupts through int386() function.
 
QUESTION: How do you access DMA and Hardware Interrupts of the system?