Annotation of linux/include/asm/io.h, revision 1.1.1.5

1.1.1.4   root        1: #ifndef _ASM_IO_H
                      2: #define _ASM_IO_H
                      3: 
1.1.1.5 ! root        4: /*
        !             5:  * Thanks to James van Artsdalen for a better timing-fix than
        !             6:  * the two short jumps: using outb's to a nonexistent port seems
        !             7:  * to guarantee better timings even on fast machines.
        !             8:  *
        !             9:  *             Linus
        !            10:  */
        !            11: 
1.1.1.4   root       12: extern void inline outb(char value, unsigned short port)
1.1.1.2   root       13: {
1.1.1.3   root       14: __asm__ volatile ("outb %0,%1"
                     15:                ::"a" ((char) value),"d" ((unsigned short) port));
1.1.1.2   root       16: }
1.1       root       17: 
1.1.1.4   root       18: extern void inline outb_p(char value, unsigned short port)
1.1.1.2   root       19: {
1.1.1.5 ! root       20: __asm__ volatile ("outb %0,%1\n\t"
        !            21:                  "outb %0,$0x80\n\t"
        !            22:                  "outb %0,$0x80\n\t"
        !            23:                  "outb %0,$0x80\n\t"
        !            24:                  "outb %0,$0x80"
1.1.1.3   root       25:                ::"a" ((char) value),"d" ((unsigned short) port));
1.1.1.2   root       26: }
1.1       root       27: 
1.1.1.4   root       28: extern unsigned char inline inb(unsigned short port)
1.1.1.2   root       29: {
                     30:        unsigned char _v;
1.1.1.3   root       31: __asm__ volatile ("inb %1,%0"
                     32:                :"=a" (_v):"d" ((unsigned short) port));
1.1.1.2   root       33:        return _v;
                     34: }
1.1       root       35: 
1.1.1.4   root       36: extern unsigned char inline inb_p(unsigned short port)
1.1.1.2   root       37: {
                     38:        unsigned char _v;
1.1.1.5 ! root       39: __asm__ volatile ("inb %1,%0\n\t"
        !            40:                  "outb %0,$0x80\n\t"
        !            41:                  "outb %0,$0x80\n\t"
        !            42:                  "outb %0,$0x80\n\t"
        !            43:                  "outb %0,$0x80"
1.1.1.3   root       44:                :"=a" (_v):"d" ((unsigned short) port));
1.1.1.2   root       45:        return _v;
                     46: }
1.1.1.4   root       47: 
                     48: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.