nuclear@1: #ifndef ASMOPS_H_ nuclear@1: #define ASMOPS_H_ nuclear@1: nuclear@1: #define inb(dest, port) asm volatile( \ nuclear@1: "inb %1, %0\n\t" \ nuclear@1: : "=a" (unsigned char)(dest) \ nuclear@1: : "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #define ins(dest, port) asm volatile( \ nuclear@1: "ins %1, %0\n\t" \ nuclear@1: : "=a" (unsigned short)(dest) \ nuclear@1: : "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #define inl(dest, port) asm volatile( \ nuclear@1: "inl %1, %0\n\t" \ nuclear@1: : "=a" (unsigned long)(dest) \ nuclear@1: : "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #define outb(src, port) asm volatile( \ nuclear@1: "outb %0, %1\n\t" \ nuclear@1: :: "a" (unsigned char)(src), "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #define outs(src, port) asm volatile( \ nuclear@1: "outs %0, %1\n\t" \ nuclear@1: :: "a" (unsigned short)(src), "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #define outl(src, port) asm volatile( \ nuclear@1: "outl %0, %1\n\t" \ nuclear@1: :: "a" (unsigned long)(src), "dN" (unsigned short)(port)) nuclear@1: nuclear@1: #endif /* ASMOPS_H_ */