|
|
1.1.1.2 root 1: static void inline outb(char value, unsigned short port)
2: {
1.1.1.3 ! root 3: __asm__ volatile ("outb %0,%1"
! 4: ::"a" ((char) value),"d" ((unsigned short) port));
1.1.1.2 root 5: }
1.1 root 6:
1.1.1.2 root 7: static void inline outb_p(char value, unsigned short port)
8: {
1.1.1.3 ! root 9: __asm__ volatile ("outb %0,%1\n"
! 10: "\tjmp 1f\n"
! 11: "1:\tjmp 1f\n"
! 12: "1:\tjmp 1f\n"
! 13: "1:\tjmp 1f\n"
! 14: "1:"
! 15: ::"a" ((char) value),"d" ((unsigned short) port));
1.1.1.2 root 16: }
1.1 root 17:
1.1.1.2 root 18: static unsigned char inline inb(unsigned short port)
19: {
20: unsigned char _v;
1.1.1.3 ! root 21: __asm__ volatile ("inb %1,%0"
! 22: :"=a" (_v):"d" ((unsigned short) port));
1.1.1.2 root 23: return _v;
24: }
1.1 root 25:
1.1.1.2 root 26: static unsigned char inb_p(unsigned short port)
27: {
28: unsigned char _v;
1.1.1.3 ! root 29: __asm__ volatile ("inb %1,%0\n"
! 30: "\tjmp 1f\n"
! 31: "1:\tjmp 1f\n"
! 32: "1:\tjmp 1f\n"
1.1.1.2 root 33: "1:\tjmp 1f\n"
1.1.1.3 ! root 34: "1:"
! 35: :"=a" (_v):"d" ((unsigned short) port));
1.1.1.2 root 36: return _v;
37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.