xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/bits/io.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)

outb(unsigned char __val,unsigned short __port)1*cda5da8dSAndroid Build Coastguard Worker static __inline void outb(unsigned char __val, unsigned short __port)
2*cda5da8dSAndroid Build Coastguard Worker {
3*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port));
4*cda5da8dSAndroid Build Coastguard Worker }
5*cda5da8dSAndroid Build Coastguard Worker 
outw(unsigned short __val,unsigned short __port)6*cda5da8dSAndroid Build Coastguard Worker static __inline void outw(unsigned short __val, unsigned short __port)
7*cda5da8dSAndroid Build Coastguard Worker {
8*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port));
9*cda5da8dSAndroid Build Coastguard Worker }
10*cda5da8dSAndroid Build Coastguard Worker 
outl(unsigned int __val,unsigned short __port)11*cda5da8dSAndroid Build Coastguard Worker static __inline void outl(unsigned int __val, unsigned short __port)
12*cda5da8dSAndroid Build Coastguard Worker {
13*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port));
14*cda5da8dSAndroid Build Coastguard Worker }
15*cda5da8dSAndroid Build Coastguard Worker 
inb(unsigned short __port)16*cda5da8dSAndroid Build Coastguard Worker static __inline unsigned char inb(unsigned short __port)
17*cda5da8dSAndroid Build Coastguard Worker {
18*cda5da8dSAndroid Build Coastguard Worker 	unsigned char __val;
19*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port));
20*cda5da8dSAndroid Build Coastguard Worker 	return __val;
21*cda5da8dSAndroid Build Coastguard Worker }
22*cda5da8dSAndroid Build Coastguard Worker 
inw(unsigned short __port)23*cda5da8dSAndroid Build Coastguard Worker static __inline unsigned short inw(unsigned short __port)
24*cda5da8dSAndroid Build Coastguard Worker {
25*cda5da8dSAndroid Build Coastguard Worker 	unsigned short __val;
26*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port));
27*cda5da8dSAndroid Build Coastguard Worker 	return __val;
28*cda5da8dSAndroid Build Coastguard Worker }
29*cda5da8dSAndroid Build Coastguard Worker 
inl(unsigned short __port)30*cda5da8dSAndroid Build Coastguard Worker static __inline unsigned int inl(unsigned short __port)
31*cda5da8dSAndroid Build Coastguard Worker {
32*cda5da8dSAndroid Build Coastguard Worker 	unsigned int __val;
33*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port));
34*cda5da8dSAndroid Build Coastguard Worker 	return __val;
35*cda5da8dSAndroid Build Coastguard Worker }
36*cda5da8dSAndroid Build Coastguard Worker 
outsb(unsigned short __port,const void * __buf,unsigned long __n)37*cda5da8dSAndroid Build Coastguard Worker static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n)
38*cda5da8dSAndroid Build Coastguard Worker {
39*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; outsb"
40*cda5da8dSAndroid Build Coastguard Worker 		      : "+S" (__buf), "+c" (__n)
41*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
42*cda5da8dSAndroid Build Coastguard Worker }
43*cda5da8dSAndroid Build Coastguard Worker 
outsw(unsigned short __port,const void * __buf,unsigned long __n)44*cda5da8dSAndroid Build Coastguard Worker static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n)
45*cda5da8dSAndroid Build Coastguard Worker {
46*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; outsw"
47*cda5da8dSAndroid Build Coastguard Worker 		      : "+S" (__buf), "+c" (__n)
48*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
49*cda5da8dSAndroid Build Coastguard Worker }
50*cda5da8dSAndroid Build Coastguard Worker 
outsl(unsigned short __port,const void * __buf,unsigned long __n)51*cda5da8dSAndroid Build Coastguard Worker static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n)
52*cda5da8dSAndroid Build Coastguard Worker {
53*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; outsl"
54*cda5da8dSAndroid Build Coastguard Worker 		      : "+S" (__buf), "+c"(__n)
55*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
56*cda5da8dSAndroid Build Coastguard Worker }
57*cda5da8dSAndroid Build Coastguard Worker 
insb(unsigned short __port,void * __buf,unsigned long __n)58*cda5da8dSAndroid Build Coastguard Worker static __inline void insb(unsigned short __port, void *__buf, unsigned long __n)
59*cda5da8dSAndroid Build Coastguard Worker {
60*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; insb"
61*cda5da8dSAndroid Build Coastguard Worker 		      : "+D" (__buf), "+c" (__n)
62*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
63*cda5da8dSAndroid Build Coastguard Worker }
64*cda5da8dSAndroid Build Coastguard Worker 
insw(unsigned short __port,void * __buf,unsigned long __n)65*cda5da8dSAndroid Build Coastguard Worker static __inline void insw(unsigned short __port, void *__buf, unsigned long __n)
66*cda5da8dSAndroid Build Coastguard Worker {
67*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; insw"
68*cda5da8dSAndroid Build Coastguard Worker 		      : "+D" (__buf), "+c" (__n)
69*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
70*cda5da8dSAndroid Build Coastguard Worker }
71*cda5da8dSAndroid Build Coastguard Worker 
insl(unsigned short __port,void * __buf,unsigned long __n)72*cda5da8dSAndroid Build Coastguard Worker static __inline void insl(unsigned short __port, void *__buf, unsigned long __n)
73*cda5da8dSAndroid Build Coastguard Worker {
74*cda5da8dSAndroid Build Coastguard Worker 	__asm__ volatile ("cld; rep; insl"
75*cda5da8dSAndroid Build Coastguard Worker 		      : "+D" (__buf), "+c" (__n)
76*cda5da8dSAndroid Build Coastguard Worker 		      : "d" (__port));
77*cda5da8dSAndroid Build Coastguard Worker }
78