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