check.h 856 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include <linux/pagemap.h>
  2. #include <linux/blkdev.h>
  3. /*
  4. * add_gd_partition adds a partitions details to the devices partition
  5. * description.
  6. */
  7. struct parsed_partitions {
  8. struct block_device *bdev;
  9. char name[BDEVNAME_SIZE];
  10. struct {
  11. sector_t from;
  12. sector_t size;
  13. int flags;
  14. } parts[DISK_MAX_PARTS];
  15. int next;
  16. int limit;
  17. bool access_beyond_eod;
  18. };
  19. static inline void *read_part_sector(struct parsed_partitions *state,
  20. sector_t n, Sector *p)
  21. {
  22. if (n >= get_capacity(state->bdev->bd_disk)) {
  23. state->access_beyond_eod = true;
  24. return NULL;
  25. }
  26. return read_dev_sector(state->bdev, n, p);
  27. }
  28. static inline void
  29. put_partition(struct parsed_partitions *p, int n, sector_t from, sector_t size)
  30. {
  31. if (n < p->limit) {
  32. p->parts[n].from = from;
  33. p->parts[n].size = size;
  34. printk(" %s%d", p->name, n);
  35. }
  36. }
  37. extern int warn_no_part;