1 static __inline
void outb(unsigned char __val
, unsigned short __port
)
3 __asm__
volatile ("outb %0,%1" : : "a" (__val
), "dN" (__port
));
6 static __inline
void outw(unsigned short __val
, unsigned short __port
)
8 __asm__
volatile ("outw %0,%1" : : "a" (__val
), "dN" (__port
));
11 static __inline
void outl(unsigned int __val
, unsigned short __port
)
13 __asm__
volatile ("outl %0,%1" : : "a" (__val
), "dN" (__port
));
16 static __inline
unsigned char inb(unsigned short __port
)
19 __asm__
volatile ("inb %1,%0" : "=a" (__val
) : "dN" (__port
));
23 static __inline
unsigned short inw(unsigned short __port
)
26 __asm__
volatile ("inw %1,%0" : "=a" (__val
) : "dN" (__port
));
30 static __inline
unsigned int inl(unsigned short __port
)
33 __asm__
volatile ("inl %1,%0" : "=a" (__val
) : "dN" (__port
));
37 static __inline
void outsb(unsigned short __port
, const void *__buf
, unsigned long __n
)
39 __asm__
volatile ("cld; rep; outsb"
40 : "+S" (__buf
), "+c" (__n
)
44 static __inline
void outsw(unsigned short __port
, const void *__buf
, unsigned long __n
)
46 __asm__
volatile ("cld; rep; outsw"
47 : "+S" (__buf
), "+c" (__n
)
51 static __inline
void outsl(unsigned short __port
, const void *__buf
, unsigned long __n
)
53 __asm__
volatile ("cld; rep; outsl"
54 : "+S" (__buf
), "+c"(__n
)
58 static __inline
void insb(unsigned short __port
, void *__buf
, unsigned long __n
)
60 __asm__
volatile ("cld; rep; insb"
61 : "+D" (__buf
), "+c" (__n
)
65 static __inline
void insw(unsigned short __port
, void *__buf
, unsigned long __n
)
67 __asm__
volatile ("cld; rep; insw"
68 : "+D" (__buf
), "+c" (__n
)
72 static __inline
void insl(unsigned short __port
, void *__buf
, unsigned long __n
)
74 __asm__
volatile ("cld; rep; insl"
75 : "+D" (__buf
), "+c" (__n
)