Annotation of Net2/arch/i386/include/pio.h, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Mach Operating System
                      3:  * Copyright (c) 1990 Carnegie-Mellon University
                      4:  * All rights reserved.  The CMU software License Agreement specifies
                      5:  * the terms and conditions for use and redistribution.
                      6:  */
                      7: /* 
                      8:  * HISTORY
                      9:  * $Log: pio.h,v $
                     10:  * Revision 1.1  1993/03/21 18:09:48  cgd
                     11:  * after 0.2.2 "stable" patches applied
                     12:  *
                     13:  * Revision 1.1  1992/05/27  00:48:30  balsup
                     14:  * machkern/cor merge
                     15:  *
                     16:  * Revision 1.1  1991/10/10  20:11:39  balsup
                     17:  * Initial revision
                     18:  *
                     19:  * Revision 2.2  91/04/02  11:52:29  mbj
                     20:  *     [90/08/14            mg32]
                     21:  * 
                     22:  *     Now we know how types are factor in.
                     23:  *     Cleaned up a bunch: eliminated ({ for output and flushed unused
                     24:  *     output variables.
                     25:  *     [90/08/14            rvb]
                     26:  * 
                     27:  *     This is how its done in gcc:
                     28:  *             Created.
                     29:  *     [90/03/26            rvb]
                     30:  * 
                     31:  */
                     32: 
                     33: 
                     34: #define inl(y) \
                     35: ({ unsigned long _tmp__; \
                     36:        asm volatile("inl %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
                     37:        _tmp__; })
                     38: 
                     39: #define inw(y) \
                     40: ({ unsigned short _tmp__; \
                     41:        asm volatile(".byte 0x66; inl %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
                     42:        _tmp__; })
                     43: 
                     44: #define inb(y) \
                     45: ({ unsigned char _tmp__; \
                     46:        asm volatile("inb %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
                     47:        _tmp__; })
                     48: 
                     49: 
                     50: #define outl(x, y) \
                     51: { asm volatile("outl %0, %1" : : "a" (y) , "d" ((unsigned short)(x))); }
                     52: 
                     53: 
                     54: #define outw(x, y) \
                     55: {asm volatile(".byte 0x66; outl %0, %1" : : "a" ((unsigned short)(y)) , "d" ((unsigned short)(x))); }
                     56: 
                     57: 
                     58: #define outb(x, y) \
                     59: { asm volatile("outb %0, %1" : : "a" ((unsigned char)(y)) , "d" ((unsigned short)(x))); }

unix.superglobalmegacorp.com

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