summaryrefslogtreecommitdiffstats
path: root/shlibs/blkid/src/probe.c
diff options
context:
space:
mode:
authorKarel Zak2010-04-19 10:51:37 +0200
committerKarel Zak2010-04-19 10:51:37 +0200
commit601fb1c11e8b93c3b0e7488a73b4e97df12c676d (patch)
tree0548baf71a42f60aff42a0a6463c4242a4073c3b /shlibs/blkid/src/probe.c
parentblkid: add \n to the "-o udev" output when probe more devices (diff)
downloadkernel-qcow2-util-linux-601fb1c11e8b93c3b0e7488a73b4e97df12c676d.tar.gz
kernel-qcow2-util-linux-601fb1c11e8b93c3b0e7488a73b4e97df12c676d.tar.xz
kernel-qcow2-util-linux-601fb1c11e8b93c3b0e7488a73b4e97df12c676d.zip
libblkid: export functions to get whole-disk devno
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'shlibs/blkid/src/probe.c')
-rw-r--r--shlibs/blkid/src/probe.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/shlibs/blkid/src/probe.c b/shlibs/blkid/src/probe.c
index 3c6e6948a..6d58d5ae5 100644
--- a/shlibs/blkid/src/probe.c
+++ b/shlibs/blkid/src/probe.c
@@ -994,6 +994,48 @@ dev_t blkid_probe_get_devno(blkid_probe pr)
}
/**
+ * blkid_probe_get_wholedisk_devno:
+ * @pr: probe
+ *
+ * Returns: device number of the wholedisk, or 0 for regilar files.
+ */
+dev_t blkid_probe_get_wholedisk_devno(blkid_probe pr)
+{
+ if (!pr->disk_devno) {
+ dev_t devno, disk_devno = 0;
+
+ devno = blkid_probe_get_devno(pr);
+ if (!devno)
+ return 0;
+
+ if (blkid_devno_to_wholedisk(devno, NULL, 0, &disk_devno) == 0)
+ pr->disk_devno = disk_devno;
+ }
+ return pr->disk_devno;
+}
+
+/**
+ * blkid_probe_is_wholedisk:
+ * @pr: probe
+ *
+ * Returns: 1 if the device is whole-disk or 0.
+ */
+int blkid_probe_is_wholedisk(blkid_probe pr)
+{
+ dev_t devno, disk_devno;
+
+ devno = blkid_probe_get_devno(pr);
+ if (!devno)
+ return 0;
+
+ disk_devno = blkid_probe_get_wholedisk_devno(pr);
+ if (!disk_devno)
+ return 0;
+
+ return devno == disk_devno;
+}
+
+/**
* blkid_probe_get_size:
* @pr: probe
*