X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/8f946ddedda18836cfc4846e8496b30772503267..035d7af7dd4727735ec57f8195a4842e31ffc997:/include/io.h diff --git a/include/io.h b/include/io.h new file mode 100644 index 0000000..5fd0b19 --- /dev/null +++ b/include/io.h @@ -0,0 +1,11 @@ +#ifndef __IO_H +#define __IO_H + +#define inb(port) ({ unsigned char val; asm volatile("inb %%dx, %0" : "=a" ((unsigned char)(val)) : "d" ((unsigned short)(port))); val; }) +#define inw(port) ({ unsigned short val; asm volatile("inw %%dx, %0" : "=a" ((unsigned short)(val)) : "d" ((unsigned short)(port))); val; }) +#define inl(port) ({ unsigned long val; asm volatile("inl %%dx, %0" : "=a" ((unsigned long)(val)) : "d" ((unsigned short)(port))); val; }) +#define outb(port, val) ({ asm volatile("outb %0, %%dx" : : "a" ((unsigned char)(val)) , "d" ((unsigned short)(port))); }) +#define outw(port, val) ({ asm volatile("outw %0, %%dx" : : "a" ((unsigned short)(val)) , "d" ((unsigned short)(port))); }) +#define outl(port, val) ({ asm volatile("outl %0, %%dx" : : "a" ((unsigned long)(val)) , "d" ((unsigned short)(port))); }) + +#endif