1 #ifndef _IPXE_BLOCKTRANS_H 2 #define _IPXE_BLOCKTRANS_H 3 4 /** @file 5 * 6 * Block device translator 7 * 8 */ 9 10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); 11 12 #include <stdint.h> 13 #include <ipxe/refcnt.h> 14 #include <ipxe/interface.h> 15 #include <ipxe/xferbuf.h> 16 #include <ipxe/uaccess.h> 17 18 /** A block device translator */ 19 struct block_translator { 20 /** Reference count */ 21 struct refcnt refcnt; 22 /** Block device interface */ 23 struct interface block; 24 /** Data transfer interface */ 25 struct interface xfer; 26 27 /** Data transfer buffer */ 28 struct xfer_buffer xferbuf; 29 /** Data buffer */ 30 userptr_t buffer; 31 /** Block size */ 32 size_t blksize; 33 }; 34 35 extern int block_translate ( struct interface *block, 36 userptr_t buffer, size_t size ); 37 38 #endif /* _IPXE_BLOCKTRANS_H */ 39