diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
commit | 09e967c2d732783b2579e4e120cd9b608404cb00 (patch) | |
tree | 8d2783a6a7e33608c6012efd6a88b8f5694df81d /mdk-stage1/dietlibc/include/sys/io.h | |
parent | 18fcff49d3c836697d3b75a3d01d31c700e69974 (diff) | |
download | drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.gz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.bz2 drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.xz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.zip |
Merge from R9_0-AMD64, most notably:
- AMD64 support to insmod-busybox, minilibc, et al.
- Sync with insmod-modutils 2.4.19 something but everyone should use
dietlibc nowadays
- Factor out compilation and prefix with $(DIET) for dietlibc builds
- 64-bit & varargs fixes
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 |