From 8638a5e4719cbea018ebe24340f2cdcb3bc70582 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 13 May 2006 11:36:30 +0000 Subject: [PATCH] Defined a block device interface. --- src/include/gpxe/blockdev.h | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/include/gpxe/blockdev.h diff --git a/src/include/gpxe/blockdev.h b/src/include/gpxe/blockdev.h new file mode 100644 index 00000000..59f5bf74 --- /dev/null +++ b/src/include/gpxe/blockdev.h @@ -0,0 +1,39 @@ +#ifndef _GPXE_BLOCKDEV_H +#define _GPXE_BLOCKDEV_H + +/** + * @file + * + * Block devices + * + */ + +/** A block device */ +struct block_device { + /** Block size */ + size_t blksize; + /** Total number of blocks */ + uint64_t blocks; + /** + * Read block + * + * @v blockdev Block device + * @v block Block number + * @v buffer Data buffer + * @ret rc Return status code + */ + int ( * read ) ( struct block_device *blockdev, uint64_t block, + void *buffer ); + /** + * Write block + * + * @v blockdev Block device + * @v block Block number + * @v buffer Data buffer + * @ret rc Return status code + */ + int ( * write ) ( struct block_device *blockdev, uint64_t block, + const void *buffer ); +}; + +#endif /* _GPXE_BLOCKDEV_H */