155601383SAlexander Gordeev #ifndef _ASM_X86_IO_H_ 255601383SAlexander Gordeev #define _ASM_X86_IO_H_ 326e9794eSLucas Meneghel Rodrigues 4*4f37c3a9SAlexander Gordeev #define __iomem 5*4f37c3a9SAlexander Gordeev 626e9794eSLucas Meneghel Rodrigues static inline unsigned char inb(unsigned short port) 726e9794eSLucas Meneghel Rodrigues { 826e9794eSLucas Meneghel Rodrigues unsigned char value; 926e9794eSLucas Meneghel Rodrigues asm volatile("inb %w1, %0" : "=a" (value) : "Nd" (port)); 1026e9794eSLucas Meneghel Rodrigues return value; 1126e9794eSLucas Meneghel Rodrigues } 1226e9794eSLucas Meneghel Rodrigues 1326e9794eSLucas Meneghel Rodrigues static inline unsigned short inw(unsigned short port) 1426e9794eSLucas Meneghel Rodrigues { 1526e9794eSLucas Meneghel Rodrigues unsigned short value; 1626e9794eSLucas Meneghel Rodrigues asm volatile("inw %w1, %0" : "=a" (value) : "Nd" (port)); 1726e9794eSLucas Meneghel Rodrigues return value; 1826e9794eSLucas Meneghel Rodrigues } 1926e9794eSLucas Meneghel Rodrigues 2026e9794eSLucas Meneghel Rodrigues static inline unsigned int inl(unsigned short port) 2126e9794eSLucas Meneghel Rodrigues { 2226e9794eSLucas Meneghel Rodrigues unsigned int value; 2326e9794eSLucas Meneghel Rodrigues asm volatile("inl %w1, %0" : "=a" (value) : "Nd" (port)); 2426e9794eSLucas Meneghel Rodrigues return value; 2526e9794eSLucas Meneghel Rodrigues } 2626e9794eSLucas Meneghel Rodrigues 2726e9794eSLucas Meneghel Rodrigues static inline void outb(unsigned char value, unsigned short port) 2826e9794eSLucas Meneghel Rodrigues { 2926e9794eSLucas Meneghel Rodrigues asm volatile("outb %b0, %w1" : : "a"(value), "Nd"(port)); 3026e9794eSLucas Meneghel Rodrigues } 3126e9794eSLucas Meneghel Rodrigues 3226e9794eSLucas Meneghel Rodrigues static inline void outw(unsigned short value, unsigned short port) 3326e9794eSLucas Meneghel Rodrigues { 3426e9794eSLucas Meneghel Rodrigues asm volatile("outw %w0, %w1" : : "a"(value), "Nd"(port)); 3526e9794eSLucas Meneghel Rodrigues } 3626e9794eSLucas Meneghel Rodrigues 3726e9794eSLucas Meneghel Rodrigues static inline void outl(unsigned int value, unsigned short port) 3826e9794eSLucas Meneghel Rodrigues { 3926e9794eSLucas Meneghel Rodrigues asm volatile("outl %0, %w1" : : "a"(value), "Nd"(port)); 4026e9794eSLucas Meneghel Rodrigues } 4126e9794eSLucas Meneghel Rodrigues 4255601383SAlexander Gordeev static inline unsigned long virt_to_phys(const void *virt) 4355601383SAlexander Gordeev { 4455601383SAlexander Gordeev return (unsigned long)virt; 4555601383SAlexander Gordeev } 4655601383SAlexander Gordeev 4755601383SAlexander Gordeev static inline void *phys_to_virt(unsigned long phys) 4855601383SAlexander Gordeev { 4955601383SAlexander Gordeev return (void *)phys; 5055601383SAlexander Gordeev } 5155601383SAlexander Gordeev 5226e9794eSLucas Meneghel Rodrigues #endif 53