summaryrefslogtreecommitdiffstats
path: root/examples/to-xml.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/to-xml.c')
-rw-r--r--examples/to-xml.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/examples/to-xml.c b/examples/to-xml.c
index 63e896da..b438d344 100644
--- a/examples/to-xml.c
+++ b/examples/to-xml.c
@@ -10,6 +10,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
+#include <inttypes.h>
#include <unistd.h>
#include <guestfs.h>
@@ -56,7 +58,9 @@ main (int argc, char *argv[])
CALL (devices = guestfs_list_devices (g), NULL);
printf ("<devices>\n");
for (i = 0; devices[i] != NULL; ++i) {
- printf ("<device dev=\"%s\">\n", devices[i]);
+ int64_t size;
+ CALL (size = guestfs_blockdev_getsize64 (g, devices[i]), -1);
+ printf ("<device dev=\"%s\" size=\"%" PRIi64 "\">\n", devices[i], size);
display_partition (g, devices[i]);
free (devices[i]);
printf ("</device>\n");
@@ -83,7 +87,9 @@ main (int argc, char *argv[])
if (strncmp (lvs[j], "/dev/", 5) == 0 &&
strncmp (&lvs[j][5], vgs[i], len) == 0 &&
lvs[j][len+5] == '/') {
- printf ("<logvol name=\"%s\">\n", lvs[j]);
+ int64_t size;
+ CALL (size = guestfs_blockdev_getsize64 (g, lvs[j]), -1);
+ printf ("<logvol name=\"%s\" size=\"%" PRIi64 "\">\n", lvs[j], size);
display_partition (g, lvs[j]);
printf ("</logvol>\n");
free (lvs[j]);
@@ -149,7 +155,9 @@ display_partitions (guestfs_h *g, const char *dev)
for (i = 0; parts[i] != NULL; ++i) {
/* Only display partition if it's in the device. */
if (strncmp (parts[i], dev, len) == 0) {
- printf ("<partition dev=\"%s\">\n", parts[i]);
+ int64_t size;
+ CALL (size = guestfs_blockdev_getsize64 (g, dev), -1);
+ printf ("<partition dev=\"%s\" size=\"%" PRIi64 "\">\n", parts[i], size);
display_partition (g, parts[i]);
printf ("</partition>\n");
}