1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #ifndef _GPXE_BLOCKDEV_H
- #define _GPXE_BLOCKDEV_H
-
- /**
- * @file
- *
- * Block devices
- *
- */
-
- FILE_LICENCE ( GPL2_OR_LATER );
-
- #include <gpxe/uaccess.h>
-
- struct block_device;
-
- /** Block device operations */
- struct block_device_operations {
- /**
- * Read block
- *
- * @v blockdev Block device
- * @v block Block number
- * @v count Block count
- * @v buffer Data buffer
- * @ret rc Return status code
- */
- int ( * read ) ( struct block_device *blockdev, uint64_t block,
- unsigned long count, userptr_t buffer );
- /**
- * Write block
- *
- * @v blockdev Block device
- * @v block Block number
- * @v count Block count
- * @v buffer Data buffer
- * @ret rc Return status code
- */
- int ( * write ) ( struct block_device *blockdev, uint64_t block,
- unsigned long count, userptr_t buffer );
- };
-
- /** A block device */
- struct block_device {
- /** Block device operations */
- struct block_device_operations *op;
- /** Block size */
- size_t blksize;
- /** Total number of blocks */
- uint64_t blocks;
- };
-
- #endif /* _GPXE_BLOCKDEV_H */
|