diff options
Diffstat (limited to 'mdk-stage1/dietlibc/include/sys/io.h')
-rw-r--r-- | mdk-stage1/dietlibc/include/sys/io.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/mdk-stage1/dietlibc/include/sys/io.h b/mdk-stage1/dietlibc/include/sys/io.h index cce841735..5edf33a57 100644 --- a/mdk-stage1/dietlibc/include/sys/io.h +++ b/mdk-stage1/dietlibc/include/sys/io.h @@ -1,41 +1,44 @@ -#ifndef _IO_H -#define _IO_H +#ifndef _SYS_IO_H +#define _SYS_IO_H -int ioperm(unsigned long from, unsigned long num, int turn_on) __THROW; +#include <sys/cdefs.h> -#ifdef __i386__ - -static __inline void -outb (unsigned char value, unsigned short int port) -{ - __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); -} +extern int ioperm(unsigned long from, unsigned long num, int turn_on) __THROW; +extern int iopl(int level) __THROW; -static __inline unsigned char -inb (unsigned short int port) -{ +#ifndef __STRICT_ANSI__ +/* anyone have a cleaner solution for this mess? */ +#ifdef __i386__ +static inline unsigned char inb (unsigned short int port) { unsigned char _v; - __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port)); return _v; } -static __inline unsigned short int -inw (unsigned short int port) -{ +static inline unsigned short inw (unsigned short int port) { unsigned short _v; - __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port)); return _v; } -static __inline void -outw (unsigned short int value, unsigned short int port) -{ - __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); +static inline unsigned int inl (unsigned short int port) { + unsigned int _v; + __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (port)); + return _v; +} + +static inline void outb (unsigned char value, unsigned short int port) { + __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); +} +static inline void outw (unsigned short value, unsigned short int port) { + __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); } +static inline void outl (unsigned int value, unsigned short int port) { + __asm__ __volatile__ ("outl %0,%w1": :"a" (value), "Nd" (port)); +} +#endif #endif #endif |