X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fdevsparts.c;h=32d2fa82cfc8d7025dca3bde065367ec10645b54;hp=324b8870dcd07ac03fe64eb865b858e6194c10fd;hb=0f2e9c84e9ff1071260770930068642ecc8ac0d9;hpb=b4d2a01828e5de85e5eee3631f7fe3925a0312ca diff --git a/daemon/devsparts.c b/daemon/devsparts.c index 324b887..32d2fa8 100644 --- a/daemon/devsparts.c +++ b/daemon/devsparts.c @@ -1,5 +1,5 @@ /* libguestfs - the guestfsd daemon - * Copyright (C) 2009 Red Hat Inc. + * Copyright (C) 2009 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,7 +45,9 @@ do_list_devices (void) } while ((d = readdir (dir)) != NULL) { - if (strncmp (d->d_name, "sd", 2) == 0) { + if (strncmp (d->d_name, "sd", 2) == 0 || + strncmp (d->d_name, "hd", 2) == 0 || + strncmp (d->d_name, "vd", 2) == 0) { snprintf (buf, sizeof buf, "/dev/%s", d->d_name); if (add_string (&r, &size, &alloc, buf) == -1) { closedir (dir); @@ -85,7 +87,9 @@ do_list_partitions (void) } while ((d = readdir (dir)) != NULL) { - if (strncmp (d->d_name, "sd", 2) == 0) { + if (strncmp (d->d_name, "sd", 2) == 0 || + strncmp (d->d_name, "hd", 2) == 0 || + strncmp (d->d_name, "vd", 2) == 0) { strncpy (devname, d->d_name, sizeof devname); devname[sizeof devname - 1] = '\0'; @@ -133,7 +137,7 @@ do_list_partitions (void) } int -do_mkfs (const char *fstype, const char *device) +do_mkfs (char *fstype, char *device) { char *err; int r; @@ -150,46 +154,3 @@ do_mkfs (const char *fstype, const char *device) free (err); return 0; } - -int -do_sfdisk (const char *device, int cyls, int heads, int sectors, - char * const* const lines) -{ - FILE *fp; - char buf[256]; - int i; - - IS_DEVICE (device, -1); - - /* Safe because of IS_DEVICE above. */ - strcpy (buf, "/sbin/sfdisk"); - if (cyls) - sprintf (buf + strlen (buf), " -C %d", cyls); - if (heads) - sprintf (buf + strlen (buf), " -H %d", heads); - if (sectors) - sprintf (buf + strlen (buf), " -S %d", sectors); - sprintf (buf + strlen (buf), " %s", device); - - fp = popen (buf, "w"); - if (fp == NULL) { - reply_with_perror (buf); - return -1; - } - - for (i = 0; lines[i] != NULL; ++i) { - if (fprintf (fp, "%s\n", lines[i]) < 0) { - reply_with_perror (buf); - fclose (fp); - return -1; - } - } - - if (fclose (fp) == EOF) { - reply_with_perror (buf); - fclose (fp); - return -1; - } - - return 0; -}