/*----------------------------------------------------------------------------- * port.h (by damianf@wpi.edu) * Low level I/O functions taken from led-stat.txt * * Jan 22 95 * * DOS part (tested only with DOS version of GCC, DJGPP) * by M.Prinke 3/97 */ /* #define DOS */ #ifndef PORT_H #define PORT_H #endif #ifndef DOS static inline int port_in (int port) { unsigned char value; __asm__ volatile ("inb %1,%0":"=a" (value) :"d" ((unsigned short) port)); return value; } static inline void port_out (unsigned short int port, unsigned char val) { __asm__ volatile ("outb %0,%1\n"::"a" (val), "d" (port) ); } #else #include static inline int port_in (int port) { unsigned char value; value = inportb ((unsigned short) port); return (int) value; } static inline void port_out (unsigned int port, unsigned char val) { outportb ((unsigned short) port, val); } #endif /**** END OF FILE ****/