X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fntfs.c;h=46b8333e064b57c3c46e545be214e1208c75c18a;hp=85deb654e035285b80f29422a641417018164c38;hb=d600342b7d29c0176ff96a7807ebb38303ecb3a6;hpb=84fc760439e82e6b3616abd0d1f9bd7d7eb01ec0 diff --git a/daemon/ntfs.c b/daemon/ntfs.c index 85deb65..46b8333 100644 --- a/daemon/ntfs.c +++ b/daemon/ntfs.c @@ -20,11 +20,27 @@ #include #include +#include #include #include #include "daemon.h" #include "actions.h" +#include "optgroups.h" + +int +optgroup_ntfs3g_available (void) +{ + int r = access ("/bin/ntfs-3g.probe", X_OK); + return r == 0; +} + +int +optgroup_ntfsprogs_available (void) +{ + int r = access ("/usr/sbin/ntfsresize", X_OK); + return r == 0; +} int do_ntfs_3g_probe (int rw, const char *device) @@ -37,10 +53,46 @@ do_ntfs_3g_probe (int rw, const char *device) r = commandr (NULL, &err, "ntfs-3g.probe", rw_flag, device, NULL); if (r == -1) { - reply_with_error ("ntfs-3g.probe: %s: %s", device, err); + reply_with_error ("%s: %s", device, err); free (err); return -1; } return r; } + +int +do_ntfsresize (const char *device) +{ + char *err; + int r; + + r = command (NULL, &err, "ntfsresize", "-P", device, NULL); + if (r == -1) { + reply_with_error ("%s: %s", device, err); + free (err); + return -1; + } + + return 0; +} + +int +do_ntfsresize_size (const char *device, int64_t size) +{ + char *err; + int r; + + char buf[32]; + snprintf (buf, sizeof buf, "%" PRIi64, size); + + r = command (NULL, &err, "ntfsresize", "-P", "--size", buf, + device, NULL); + if (r == -1) { + reply_with_error ("%s: %s", device, err); + free (err); + return -1; + } + + return 0; +}