diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-10-08 08:14:40 +0000 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-10-17 07:59:11 -0700 |
commit | e2e9b37898c4d9f7330ce256d95a37da5064e0cf (patch) | |
tree | 447fc7b40fc843d920ea42e5336f638ab7c27d3b /disk/part_dos.c | |
parent | 304b57113041bdbef00ef79b963a569abbc787f9 (diff) |
disk: part_dos: print partition UUID in partition list
This information may be useful to compare against command "part uuid",
or if you want to manually paste the information into the kernel
command-line.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
[trini: print_one_part / print_part_dos output strings didn't quite
match before the changes]
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'disk/part_dos.c')
-rw-r--r-- | disk/part_dos.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/disk/part_dos.c b/disk/part_dos.c index 513a54a0944..3fe901ba1bd 100644 --- a/disk/part_dos.c +++ b/disk/part_dos.c @@ -66,13 +66,13 @@ static inline int is_bootable(dos_partition_t *p) } static void print_one_part(dos_partition_t *p, int ext_part_sector, - int part_num) + int part_num, unsigned int disksig) { int lba_start = ext_part_sector + le32_to_int (p->start4); int lba_size = le32_to_int (p->size4); - printf("%5d\t\t%10d\t%10d\t%2x%s%s\n", - part_num, lba_start, lba_size, p->sys_ind, + printf("%3d\t%-10d\t%-10d\t%08x-%02x\t%02x%s%s\n", + part_num, lba_start, lba_size, disksig, part_num, p->sys_ind, (is_extended(p->sys_ind) ? " Extd" : ""), (is_bootable(p) ? " Boot" : "")); } @@ -108,7 +108,7 @@ int test_part_dos (block_dev_desc_t *dev_desc) */ static void print_partition_extended(block_dev_desc_t *dev_desc, int ext_part_sector, int relative, - int part_num) + int part_num, unsigned int disksig) { ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz); dos_partition_t *pt; @@ -127,6 +127,9 @@ static void print_partition_extended(block_dev_desc_t *dev_desc, return; } + if (!ext_part_sector) + disksig = le32_to_int(&buffer[DOS_PART_DISKSIG_OFFSET]); + /* Print all primary/logical partitions */ pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET); for (i = 0; i < 4; i++, pt++) { @@ -137,7 +140,7 @@ static void print_partition_extended(block_dev_desc_t *dev_desc, if ((pt->sys_ind != 0) && (ext_part_sector == 0 || !is_extended (pt->sys_ind)) ) { - print_one_part(pt, ext_part_sector, part_num); + print_one_part(pt, ext_part_sector, part_num, disksig); } /* Reverse engr the fdisk part# assignment rule! */ @@ -155,7 +158,7 @@ static void print_partition_extended(block_dev_desc_t *dev_desc, print_partition_extended(dev_desc, lba_start, ext_part_sector == 0 ? lba_start : relative, - part_num); + part_num, disksig); } } @@ -262,8 +265,8 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part void print_part_dos (block_dev_desc_t *dev_desc) { - printf("Partition Start Sector Num Sectors Type\n"); - print_partition_extended(dev_desc, 0, 0, 1); + printf("Part\tStart Sector\tNum Sectors\tUUID\t\tType\n"); + print_partition_extended(dev_desc, 0, 0, 1, 0); } int get_partition_info_dos (block_dev_desc_t *dev_desc, int part, disk_partition_t * info) |