|
|
1.1 ! root 1: #define outb(value,port) \ ! 2: __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port)) ! 3: ! 4: ! 5: #define inb(port) ({ \ ! 6: unsigned char _v; \ ! 7: __asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); \ ! 8: _v; \ ! 9: }) ! 10: ! 11: #define outb_p(value,port) \ ! 12: __asm__ ("outb %%al,%%dx\n" \ ! 13: "\tjmp 1f\n" \ ! 14: "1:\tjmp 1f\n" \ ! 15: "1:"::"a" (value),"d" (port)) ! 16: ! 17: #define inb_p(port) ({ \ ! 18: unsigned char _v; \ ! 19: __asm__ volatile ("inb %%dx,%%al\n" \ ! 20: "\tjmp 1f\n" \ ! 21: "1:\tjmp 1f\n" \ ! 22: "1:":"=a" (_v):"d" (port)); \ ! 23: _v; \ ! 24: })
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.