diff options
author | Karel Zak | 2013-02-19 13:09:48 +0100 |
---|---|---|
committer | Karel Zak | 2013-02-19 13:09:48 +0100 |
commit | 583120378d577f0882ad6db27743f87faf3745ff (patch) | |
tree | d085ef04af9d9c0cb62f1ea425e6c63ea1296ca1 /libblkid/src/partitions/dos.c | |
parent | findmnt: allow to read (PART)UUID/LABEL from udev DB (diff) | |
download | kernel-qcow2-util-linux-583120378d577f0882ad6db27743f87faf3745ff.tar.gz kernel-qcow2-util-linux-583120378d577f0882ad6db27743f87faf3745ff.tar.xz kernel-qcow2-util-linux-583120378d577f0882ad6db27743f87faf3745ff.zip |
libblkid: return disk ID/UUID by PT binary interface
Add blkid_parttable_get_id() function.
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libblkid/src/partitions/dos.c')
-rw-r--r-- | libblkid/src/partitions/dos.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libblkid/src/partitions/dos.c b/libblkid/src/partitions/dos.c index 22d2625df..58877691d 100644 --- a/libblkid/src/partitions/dos.c +++ b/libblkid/src/partitions/dos.c @@ -137,7 +137,7 @@ static int probe_dos_pt(blkid_probe pr, blkid_partlist ls; struct dos_partition *p0, *p; unsigned char *data; - uint32_t start, size; + uint32_t start, size, id; data = blkid_probe_get_sector(pr, 0); if (!data) @@ -200,6 +200,15 @@ static int probe_dos_pt(blkid_probe pr, if (!tab) goto err; + id = dos_parttable_id(data); + if (id) { + char buf[37]; + + snprintf(buf, sizeof(buf), "0x%08x", id); + blkid_parttable_set_id(tab, (unsigned char *) buf); + } + + /* Parse primary partitions */ for (p = p0, i = 0; i < 4; i++, p++) { blkid_partition par; |