|
|
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.