diff options
author | Michael Brown | 2006-05-13 13:36:30 +0200 |
---|---|---|
committer | Michael Brown | 2006-05-13 13:36:30 +0200 |
commit | 8638a5e4719cbea018ebe24340f2cdcb3bc70582 (patch) | |
tree | b41ddd2555d6e6fdb82c574d7bc3aef0adca2ba8 /src/include | |
parent | Add drivers/block and arch/i386/interface/pcbios (diff) | |
download | ipxe-8638a5e4719cbea018ebe24340f2cdcb3bc70582.tar.gz ipxe-8638a5e4719cbea018ebe24340f2cdcb3bc70582.tar.xz ipxe-8638a5e4719cbea018ebe24340f2cdcb3bc70582.zip |
Defined a block device interface.
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/gpxe/blockdev.h | 39 |
1 files changed, 39 insertions, 0 deletions
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 */ |