Home | History | Annotate | Line # | Download | only in include
      1  1.4   perry /*	$NetBSD: pio.h,v 1.4 2005/12/24 22:45:35 perry Exp $	*/
      2  1.3     cgd 
      3  1.1  briggs /*
      4  1.1  briggs  * Mach Operating System
      5  1.1  briggs  * Copyright (c) 1990 Carnegie-Mellon University
      6  1.1  briggs  * All rights reserved.  The CMU software License Agreement specifies
      7  1.1  briggs  * the terms and conditions for use and redistribution.
      8  1.1  briggs  */
      9  1.1  briggs 
     10  1.1  briggs #define inl(y) \
     11  1.1  briggs ({ unsigned long _tmp__; \
     12  1.4   perry 	__asm volatile("inl %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
     13  1.1  briggs 	_tmp__; })
     14  1.1  briggs 
     15  1.1  briggs #define inw(y) \
     16  1.1  briggs ({ unsigned short _tmp__; \
     17  1.4   perry 	__asm volatile(".byte 0x66; inl %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
     18  1.1  briggs 	_tmp__; })
     19  1.1  briggs 
     20  1.1  briggs #define inb(y) \
     21  1.1  briggs ({ unsigned char _tmp__; \
     22  1.4   perry 	__asm volatile("inb %1, %0" : "=a" (_tmp__) : "d" ((unsigned short)(y))); \
     23  1.1  briggs 	_tmp__; })
     24  1.1  briggs 
     25  1.1  briggs 
     26  1.1  briggs #define outl(x, y) \
     27  1.4   perry { __asm volatile("outl %0, %1" : : "a" (y) , "d" ((unsigned short)(x))); }
     28  1.1  briggs 
     29  1.1  briggs 
     30  1.1  briggs #define outw(x, y) \
     31  1.4   perry {__asm volatile(".byte 0x66; outl %0, %1" : : "a" ((unsigned short)(y)) , "d" ((unsigned short)(x))); }
     32  1.1  briggs 
     33  1.1  briggs 
     34  1.1  briggs #define outb(x, y) \
     35  1.4   perry { __asm volatile("outb %0, %1" : : "a" ((unsigned char)(y)) , "d" ((unsigned short)(x))); }
     36