2 * This driver uses direct hardware access, so it runs only on x86 machines.
3 * Additionally it uses iopl syscall which is available only on Linux.
5 * Since this driver is so machine-specific, we use direct syscalls and inline them
6 * here. If this driver is ever made portable and machine-independent, this will need to
7 * be replaced with libc functions called via hostlib.resource (on some UNIXes, for
8 * example on Darwin, syscalls are private API and no binary compatibility is
9 * guaranteed accross OS versions).
12 static inline int syscall1(IPTR num
, IPTR arg1
)
24 static inline int syscall2(IPTR num
, IPTR arg1
, IPTR arg2
)
31 :"a"(num
), "b"(arg1
), "c"(arg2
)