Print this page
6648 illumos build should be explicit about C standards

*** 1,9 **** #ifndef IO_H #define IO_H - /* Amount of relocation etherboot is experiencing */ extern unsigned long virt_offset; /* Don't require identity mapped physical memory, * osloader.c is the only valid user at the moment. --- 1,10 ---- + #include <sys/ccompile.h> + #ifndef IO_H #define IO_H /* Amount of relocation etherboot is experiencing */ extern unsigned long virt_offset; /* Don't require identity mapped physical memory, * osloader.c is the only valid user at the moment.
*** 117,127 **** * Talk about misusing macros.. */ #define __OUT1(s,x) \ extern void __out##s(unsigned x value, unsigned short port); \ ! extern inline void __out##s(unsigned x value, unsigned short port) { #define __OUT2(s,s1,s2) \ __asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1" #define __OUT(s,s1,x) \ --- 118,129 ---- * Talk about misusing macros.. */ #define __OUT1(s,x) \ extern void __out##s(unsigned x value, unsigned short port); \ ! extern __GNU_INLINE \ ! void __out##s(unsigned x value, unsigned short port) { #define __OUT2(s,s1,s2) \ __asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1" #define __OUT(s,s1,x) \
*** 130,140 **** __OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); SLOW_DOWN_IO; } \ __OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; } #define __IN1(s,x) \ extern unsigned x __in##s(unsigned short port); \ ! extern inline unsigned x __in##s(unsigned short port) { unsigned x _v; #define __IN2(s,s1,s2) \ __asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0" #define __IN(s,s1,x,i...) \ --- 132,143 ---- __OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "d" (port)); SLOW_DOWN_IO; } \ __OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; } #define __IN1(s,x) \ extern unsigned x __in##s(unsigned short port); \ ! extern __GNU_INLINE \ ! unsigned x __in##s(unsigned short port) { unsigned x _v; #define __IN2(s,s1,s2) \ __asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0" #define __IN(s,s1,x,i...) \
*** 143,159 **** __IN1(s##_p,x) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \ __IN1(s##c_p,x) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; } #define __INS(s) \ extern void ins##s(unsigned short port, void * addr, unsigned long count); \ ! extern inline void ins##s(unsigned short port, void * addr, unsigned long count) \ { __asm__ __volatile__ ("cld ; rep ; ins" #s \ : "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } #define __OUTS(s) \ extern void outs##s(unsigned short port, const void * addr, unsigned long count); \ ! extern inline void outs##s(unsigned short port, const void * addr, unsigned long count) \ { __asm__ __volatile__ ("cld ; rep ; outs" #s \ : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } __IN(b,"", char) __IN(w,"",short) --- 146,164 ---- __IN1(s##_p,x) __IN2(s,s1,"w") : "=a" (_v) : "d" (port) ,##i ); SLOW_DOWN_IO; return _v; } \ __IN1(s##c_p,x) __IN2(s,s1,"") : "=a" (_v) : "id" (port) ,##i ); SLOW_DOWN_IO; return _v; } #define __INS(s) \ extern void ins##s(unsigned short port, void * addr, unsigned long count); \ ! extern __GNU_INLINE \ ! void ins##s(unsigned short port, void * addr, unsigned long count) \ { __asm__ __volatile__ ("cld ; rep ; ins" #s \ : "=D" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } #define __OUTS(s) \ extern void outs##s(unsigned short port, const void * addr, unsigned long count); \ ! extern __GNU_INLINE \ ! void outs##s(unsigned short port, const void * addr, unsigned long count) \ { __asm__ __volatile__ ("cld ; rep ; outs" #s \ : "=S" (addr), "=c" (count) : "d" (port),"0" (addr),"1" (count)); } __IN(b,"", char) __IN(w,"",short)