| * Code extracted from drivers/block/genhd.c |
| * Re-organised Jul 1999 Russell King |
| int ultrix_partition(struct parsed_partitions *state, struct block_device *bdev) |
| struct ultrix_disklabel { |
| s32 pt_magic; /* magic no. indicating part. info exits */ |
| s32 pt_valid; /* set by driver if pt is current */ |
| s32 pi_nblocks; /* no. of sectors */ |
| u32 pi_blkoff; /* block offset for start */ |
| #define PT_MAGIC 0x032957 /* Partition magic number */ |
| #define PT_VALID 1 /* Indicates if struct is valid */ |
| data = read_dev_sector(bdev, (16384 - sizeof(*label))/512, §); |
| label = (struct ultrix_disklabel *)(data + 512 - sizeof(*label)); |
| if (label->pt_magic == PT_MAGIC && label->pt_valid == PT_VALID) { |
| if (label->pt_part[i].pi_nblocks) |
| put_partition(state, i+1, |
| label->pt_part[i].pi_blkoff, |
| label->pt_part[i].pi_nblocks); |