1f15cbe6fSPaul Mundt /* 2f15cbe6fSPaul Mundt * Trivial I/O routine definitions, intentionally meant to be included 3f15cbe6fSPaul Mundt * multiple times. Ugly I/O routine concatenation helpers taken from 4f15cbe6fSPaul Mundt * alpha. Must be included _before_ io.h to avoid preprocessor-induced 5f15cbe6fSPaul Mundt * routine mismatch. 6f15cbe6fSPaul Mundt */ 7f15cbe6fSPaul Mundt #define IO_CONCAT(a,b) _IO_CONCAT(a,b) 8f15cbe6fSPaul Mundt #define _IO_CONCAT(a,b) a ## _ ## b 9f15cbe6fSPaul Mundt 10f15cbe6fSPaul Mundt #ifndef __IO_PREFIX 11f15cbe6fSPaul Mundt #error "Don't include this header without a valid system prefix" 12f15cbe6fSPaul Mundt #endif 13f15cbe6fSPaul Mundt 14f15cbe6fSPaul Mundt u8 IO_CONCAT(__IO_PREFIX,inb)(unsigned long); 15f15cbe6fSPaul Mundt u16 IO_CONCAT(__IO_PREFIX,inw)(unsigned long); 16f15cbe6fSPaul Mundt u32 IO_CONCAT(__IO_PREFIX,inl)(unsigned long); 17f15cbe6fSPaul Mundt 18f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outb)(u8, unsigned long); 19f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outw)(u16, unsigned long); 20f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outl)(u32, unsigned long); 21f15cbe6fSPaul Mundt 22f15cbe6fSPaul Mundt u8 IO_CONCAT(__IO_PREFIX,inb_p)(unsigned long); 23f15cbe6fSPaul Mundt u16 IO_CONCAT(__IO_PREFIX,inw_p)(unsigned long); 24f15cbe6fSPaul Mundt u32 IO_CONCAT(__IO_PREFIX,inl_p)(unsigned long); 25f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outb_p)(u8, unsigned long); 26f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outw_p)(u16, unsigned long); 27f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outl_p)(u32, unsigned long); 28f15cbe6fSPaul Mundt 29f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,insb)(unsigned long, void *dst, unsigned long count); 30f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,insw)(unsigned long, void *dst, unsigned long count); 31f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,insl)(unsigned long, void *dst, unsigned long count); 32f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outsb)(unsigned long, const void *src, unsigned long count); 33f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outsw)(unsigned long, const void *src, unsigned long count); 34f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,outsl)(unsigned long, const void *src, unsigned long count); 35f15cbe6fSPaul Mundt 36f15cbe6fSPaul Mundt void *IO_CONCAT(__IO_PREFIX,ioremap)(unsigned long offset, unsigned long size); 37f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,iounmap)(void *addr); 38f15cbe6fSPaul Mundt 39f15cbe6fSPaul Mundt void __iomem *IO_CONCAT(__IO_PREFIX,ioport_map)(unsigned long addr, unsigned int size); 40f15cbe6fSPaul Mundt void IO_CONCAT(__IO_PREFIX,ioport_unmap)(void __iomem *addr); 41*19d8f84fSPaul Mundt void IO_CONCAT(__IO_PREFIX,mem_init)(void); 42f15cbe6fSPaul Mundt 43f15cbe6fSPaul Mundt #undef __IO_PREFIX 44