diff --git a/kernel/include/portio.h b/kernel/include/portio.h index fbf4484..9a9f762 100755 --- a/kernel/include/portio.h +++ b/kernel/include/portio.h @@ -13,25 +13,25 @@ #define outportd(port, val) \ __asm__ __volatile__ ("outl %%eax, %%dx" : : "a" (val), "d" (port)); -#define inportb(port) \ - ({ \ - u8_t val; \ - __asm__ __volatile__ ("inb %%dx, %%al" : "=a" (val) : "d" (port)); \ - val; \ - }); +static inline u8_t inportb(u16_t port) +{ + u8_t val; + __asm__ __volatile__ ("inb %%dx, %%al" : "=a" (val) : "d" (port)); + return val; +} -#define inportw(port) \ - ({ \ - u16_t val; \ - __asm__ __volatile__ ("inw %%dx, %%al" : "=a" (val) : "d" (port)); \ - val; \ - }); +static inline u16_t inportw(u16_t port) +{ + u16_t val; + __asm__ __volatile__ ("inw %%dx, %%al" : "=a" (val) : "d" (port)); + return val; +} -#define inportd(port) \ - ({ \ - u32_t val; \ - __asm__ __volatile__ ("inl %%dx, %%al" : "=a" (val) : "d" (port)); \ - val; \ - }); +static inline u32_t inportd(u16_t port) +{ + u32_t val; + __asm__ __volatile__ ("inl %%dx, %%al" : "=a" (val) : "d" (port)); + return val; +} #endif