| .. | .. |
|---|
| 2 | 2 | #include <linux/pagemap.h> |
|---|
| 3 | 3 | #include <linux/blkdev.h> |
|---|
| 4 | 4 | #include <linux/genhd.h> |
|---|
| 5 | +#include "../blk.h" |
|---|
| 5 | 6 | |
|---|
| 6 | 7 | /* |
|---|
| 7 | 8 | * add_gd_partition adds a partitions details to the devices partition |
|---|
| .. | .. |
|---|
| 23 | 24 | char *pp_buf; |
|---|
| 24 | 25 | }; |
|---|
| 25 | 26 | |
|---|
| 26 | | -void free_partitions(struct parsed_partitions *state); |
|---|
| 27 | +typedef struct { |
|---|
| 28 | + struct page *v; |
|---|
| 29 | +} Sector; |
|---|
| 27 | 30 | |
|---|
| 28 | | -struct parsed_partitions * |
|---|
| 29 | | -check_partition(struct gendisk *, struct block_device *); |
|---|
| 30 | | - |
|---|
| 31 | | -static inline void *read_part_sector(struct parsed_partitions *state, |
|---|
| 32 | | - sector_t n, Sector *p) |
|---|
| 31 | +void *read_part_sector(struct parsed_partitions *state, sector_t n, Sector *p); |
|---|
| 32 | +static inline void put_dev_sector(Sector p) |
|---|
| 33 | 33 | { |
|---|
| 34 | | - if (n >= get_capacity(state->bdev->bd_disk)) { |
|---|
| 35 | | - state->access_beyond_eod = true; |
|---|
| 36 | | - return NULL; |
|---|
| 37 | | - } |
|---|
| 38 | | - return read_dev_sector(state->bdev, n, p); |
|---|
| 34 | + put_page(p.v); |
|---|
| 39 | 35 | } |
|---|
| 40 | 36 | |
|---|
| 41 | 37 | static inline void |
|---|
| .. | .. |
|---|
| 51 | 47 | } |
|---|
| 52 | 48 | } |
|---|
| 53 | 49 | |
|---|
| 54 | | -extern int warn_no_part; |
|---|
| 55 | | - |
|---|
| 50 | +/* detection routines go here in alphabetical order: */ |
|---|
| 51 | +int adfspart_check_ADFS(struct parsed_partitions *state); |
|---|
| 52 | +int adfspart_check_CUMANA(struct parsed_partitions *state); |
|---|
| 53 | +int adfspart_check_EESOX(struct parsed_partitions *state); |
|---|
| 54 | +int adfspart_check_ICS(struct parsed_partitions *state); |
|---|
| 55 | +int adfspart_check_POWERTEC(struct parsed_partitions *state); |
|---|
| 56 | +int aix_partition(struct parsed_partitions *state); |
|---|
| 57 | +int amiga_partition(struct parsed_partitions *state); |
|---|
| 58 | +int atari_partition(struct parsed_partitions *state); |
|---|
| 59 | +int cmdline_partition(struct parsed_partitions *state); |
|---|
| 60 | +int efi_partition(struct parsed_partitions *state); |
|---|
| 61 | +int ibm_partition(struct parsed_partitions *); |
|---|
| 62 | +int karma_partition(struct parsed_partitions *state); |
|---|
| 63 | +int ldm_partition(struct parsed_partitions *state); |
|---|
| 64 | +int mac_partition(struct parsed_partitions *state); |
|---|
| 65 | +int msdos_partition(struct parsed_partitions *state); |
|---|
| 66 | +int osf_partition(struct parsed_partitions *state); |
|---|
| 67 | +int sgi_partition(struct parsed_partitions *state); |
|---|
| 68 | +int sun_partition(struct parsed_partitions *state); |
|---|
| 69 | +int sysv68_partition(struct parsed_partitions *state); |
|---|
| 70 | +int ultrix_partition(struct parsed_partitions *state); |
|---|