1 #ifndef _IPXE_DUMMY_PIO_H 2 #define _IPXE_DUMMY_PIO_H 16 #define DUMMY_INX( _prefix, _suffix, _type ) \ 17 static inline __always_inline _type \ 18 IOAPI_INLINE ( _prefix, in ## _suffix ) ( volatile _type *io_addr __unused) { \ 19 return ~( (_type) 0 ); \ 21 static inline __always_inline void \ 22 IOAPI_INLINE ( _prefix, ins ## _suffix ) ( volatile _type *io_addr __unused, \ 23 _type *data, unsigned int count ) {\ 24 memset ( data, 0xff, count * sizeof ( *data ) ); \ 27 #define DUMMY_OUTX( _prefix, _suffix, _type ) \ 28 static inline __always_inline void \ 29 IOAPI_INLINE ( _prefix, out ## _suffix ) ( _type data __unused, \ 30 volatile _type *io_addr __unused ){\ 33 static inline __always_inline void \ 34 IOAPI_INLINE ( _prefix, outs ## _suffix ) ( volatile _type *io_addr __unused, \ 35 const _type *data __unused, \ 36 unsigned int count __unused ) { \ 40 #define DUMMY_IODELAY( _prefix ) \ 41 static inline __always_inline void \ 42 IOAPI_INLINE ( _prefix, iodelay ) ( void ) { \ 46 #define DUMMY_PIO( _prefix ) \ 47 DUMMY_INX ( _prefix, b, uint8_t ); \ 48 DUMMY_INX ( _prefix, w, uint16_t ); \ 49 DUMMY_INX ( _prefix, l, uint32_t ); \ 50 DUMMY_OUTX ( _prefix, b, uint8_t ); \ 51 DUMMY_OUTX ( _prefix, w, uint16_t ); \ 52 DUMMY_OUTX ( _prefix, l, uint32_t ); \ 53 DUMMY_IODELAY ( _prefix ); 55 #define PROVIDE_DUMMY_PIO( _prefix ) \ 56 PROVIDE_IOAPI_INLINE ( _prefix, inb ); \ 57 PROVIDE_IOAPI_INLINE ( _prefix, inw ); \ 58 PROVIDE_IOAPI_INLINE ( _prefix, inl ); \ 59 PROVIDE_IOAPI_INLINE ( _prefix, outb ); \ 60 PROVIDE_IOAPI_INLINE ( _prefix, outw ); \ 61 PROVIDE_IOAPI_INLINE ( _prefix, outl ); \ 62 PROVIDE_IOAPI_INLINE ( _prefix, iodelay ); FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)