You cannot use IRQs or DMA directly from a user-mode process. You need to write a kernel driver; see The Linux Kernel Hacker's Guide for details and the kernel source code for examples.
You can disable interrupts from within a user-mode program, though it can
be dangerous (even kernel drivers do it for as short a time as possible).
After calling iopl(3)
, you can disable interrupts simply by calling
asm("cli");
, and re-enable them with asm("sti");
.