summaryrefslogtreecommitdiffstats
path: root/libblkid/src/partitions/dos.c
diff options
context:
space:
mode:
authorKarel Zak2013-02-19 13:09:48 +0100
committerKarel Zak2013-02-19 13:09:48 +0100
commit583120378d577f0882ad6db27743f87faf3745ff (patch)
treed085ef04af9d9c0cb62f1ea425e6c63ea1296ca1 /libblkid/src/partitions/dos.c
parentfindmnt: allow to read (PART)UUID/LABEL from udev DB (diff)
downloadkernel-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.c11
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;