You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

blockdev.h 837B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef _GPXE_BLOCKDEV_H
  2. #define _GPXE_BLOCKDEV_H
  3. /**
  4. * @file
  5. *
  6. * Block devices
  7. *
  8. */
  9. #include <gpxe/uaccess.h>
  10. /** A block device */
  11. struct block_device {
  12. /** Block size */
  13. size_t blksize;
  14. /** Total number of blocks */
  15. uint64_t blocks;
  16. /**
  17. * Read block
  18. *
  19. * @v blockdev Block device
  20. * @v block Block number
  21. * @v count Block count
  22. * @v buffer Data buffer
  23. * @ret rc Return status code
  24. */
  25. int ( * read ) ( struct block_device *blockdev, uint64_t block,
  26. unsigned long count, userptr_t buffer );
  27. /**
  28. * Write block
  29. *
  30. * @v blockdev Block device
  31. * @v block Block number
  32. * @v count Block count
  33. * @v buffer Data buffer
  34. * @ret rc Return status code
  35. */
  36. int ( * write ) ( struct block_device *blockdev, uint64_t block,
  37. unsigned long count, userptr_t buffer );
  38. };
  39. #endif /* _GPXE_BLOCKDEV_H */