deduplicate bits/mman.h
[musl.git] / arch / i386 / bits / io.h
blobdd5bddc967aa697140d61d77193ac4d3b3e711e8
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)
18 unsigned char __val;
19 __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port));
20 return __val;
23 static __inline unsigned short inw(unsigned short __port)
25 unsigned short __val;
26 __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port));
27 return __val;
30 static __inline unsigned int inl(unsigned short __port)
32 unsigned int __val;
33 __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port));
34 return __val;
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)
41 : "d" (__port));
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)
48 : "d" (__port));
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)
55 : "d" (__port));
58 static __inline void insb(unsigned short __port, void *__buf, unsigned long __n)
60 __asm__ volatile ("cld; rep; insb"
61 : "+D" (__buf), "+c" (__n)
62 : "d" (__port));
65 static __inline void insw(unsigned short __port, void *__buf, unsigned long __n)
67 __asm__ volatile ("cld; rep; insw"
68 : "+D" (__buf), "+c" (__n)
69 : "d" (__port));
72 static __inline void insl(unsigned short __port, void *__buf, unsigned long __n)
74 __asm__ volatile ("cld; rep; insl"
75 : "+D" (__buf), "+c" (__n)
76 : "d" (__port));