Generated code for mknod, mkfifo, mknod_b, mknod_c, umask.
[libguestfs.git] / daemon / stubs.c
index c21eecf..033f42c 100644 (file)
@@ -37,8 +37,8 @@ static void mount_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mount_args args;
-  const char *device;
-  const char *mountpoint;
+  char *device;
+  char *mountpoint;
 
   memset (&args, 0, sizeof args);
 
@@ -76,7 +76,7 @@ static void touch_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_touch_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -100,7 +100,7 @@ static void cat_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_cat_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -127,7 +127,7 @@ static void ll_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_ll_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -154,7 +154,7 @@ static void ls_stub (XDR *xdr_in)
 {
   char **r;
   struct guestfs_ls_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -315,7 +315,7 @@ static void read_lines_stub (XDR *xdr_in)
 {
   char **r;
   struct guestfs_read_lines_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -343,7 +343,7 @@ static void aug_init_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_init_args args;
-  const char *root;
+  char *root;
   int flags;
 
   memset (&args, 0, sizeof args);
@@ -382,8 +382,8 @@ static void aug_defvar_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_defvar_args args;
-  const char *name;
-  const char *expr;
+  char *name;
+  char *expr;
 
   memset (&args, 0, sizeof args);
 
@@ -410,9 +410,9 @@ static void aug_defnode_stub (XDR *xdr_in)
 {
   guestfs_aug_defnode_ret *r;
   struct guestfs_aug_defnode_args args;
-  const char *name;
-  const char *expr;
-  const char *val;
+  char *name;
+  char *expr;
+  char *val;
 
   memset (&args, 0, sizeof args);
 
@@ -439,7 +439,7 @@ static void aug_get_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_aug_get_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -466,8 +466,8 @@ static void aug_set_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_set_args args;
-  const char *path;
-  const char *val;
+  char *path;
+  char *val;
 
   memset (&args, 0, sizeof args);
 
@@ -492,8 +492,8 @@ static void aug_insert_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_insert_args args;
-  const char *path;
-  const char *label;
+  char *path;
+  char *label;
   int before;
 
   memset (&args, 0, sizeof args);
@@ -520,7 +520,7 @@ static void aug_rm_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_rm_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -546,8 +546,8 @@ static void aug_mv_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_aug_mv_args args;
-  const char *src;
-  const char *dest;
+  char *src;
+  char *dest;
 
   memset (&args, 0, sizeof args);
 
@@ -572,7 +572,7 @@ static void aug_match_stub (XDR *xdr_in)
 {
   char **r;
   struct guestfs_aug_match_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -626,7 +626,7 @@ static void aug_ls_stub (XDR *xdr_in)
 {
   char **r;
   struct guestfs_aug_ls_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -654,7 +654,7 @@ static void rm_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_rm_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -678,7 +678,7 @@ static void rmdir_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_rmdir_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -702,7 +702,7 @@ static void rm_rf_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_rm_rf_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -726,7 +726,7 @@ static void mkdir_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mkdir_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -750,7 +750,7 @@ static void mkdir_p_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mkdir_p_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -775,7 +775,7 @@ static void chmod_stub (XDR *xdr_in)
   int r;
   struct guestfs_chmod_args args;
   int mode;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -802,7 +802,7 @@ static void chown_stub (XDR *xdr_in)
   struct guestfs_chown_args args;
   int owner;
   int group;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -828,7 +828,7 @@ static void exists_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_exists_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -854,7 +854,7 @@ static void is_file_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_is_file_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -880,7 +880,7 @@ static void is_dir_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_is_dir_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -906,7 +906,7 @@ static void pvcreate_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_pvcreate_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -930,7 +930,7 @@ static void vgcreate_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_vgcreate_args args;
-  const char *volgroup;
+  char *volgroup;
   char **physvols;
 
   memset (&args, 0, sizeof args);
@@ -963,8 +963,8 @@ static void lvcreate_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_lvcreate_args args;
-  const char *logvol;
-  const char *volgroup;
+  char *logvol;
+  char *volgroup;
   int mbytes;
 
   memset (&args, 0, sizeof args);
@@ -991,8 +991,8 @@ static void mkfs_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mkfs_args args;
-  const char *fstype;
-  const char *device;
+  char *fstype;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1017,7 +1017,7 @@ static void sfdisk_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_sfdisk_args args;
-  const char *device;
+  char *device;
   int cyls;
   int heads;
   int sectors;
@@ -1056,8 +1056,8 @@ static void write_file_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_write_file_args args;
-  const char *path;
-  const char *content;
+  char *path;
+  char *content;
   int size;
 
   memset (&args, 0, sizeof args);
@@ -1084,7 +1084,7 @@ static void umount_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_umount_args args;
-  const char *pathordevice;
+  char *pathordevice;
 
   memset (&args, 0, sizeof args);
 
@@ -1151,7 +1151,7 @@ static void file_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_file_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -1247,7 +1247,7 @@ static void stat_stub (XDR *xdr_in)
 {
   guestfs_int_stat *r;
   struct guestfs_stat_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -1274,7 +1274,7 @@ static void lstat_stub (XDR *xdr_in)
 {
   guestfs_int_stat *r;
   struct guestfs_lstat_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -1301,7 +1301,7 @@ static void statvfs_stub (XDR *xdr_in)
 {
   guestfs_int_statvfs *r;
   struct guestfs_statvfs_args args;
-  const char *path;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -1328,7 +1328,7 @@ static void tune2fs_l_stub (XDR *xdr_in)
 {
   char **r;
   struct guestfs_tune2fs_l_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1356,7 +1356,7 @@ static void blockdev_setro_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_setro_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1380,7 +1380,7 @@ static void blockdev_setrw_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_setrw_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1404,7 +1404,7 @@ static void blockdev_getro_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_getro_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1430,7 +1430,7 @@ static void blockdev_getss_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_getss_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1456,7 +1456,7 @@ static void blockdev_getbsz_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_getbsz_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1482,7 +1482,7 @@ static void blockdev_setbsz_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_setbsz_args args;
-  const char *device;
+  char *device;
   int blocksize;
 
   memset (&args, 0, sizeof args);
@@ -1508,7 +1508,7 @@ static void blockdev_getsz_stub (XDR *xdr_in)
 {
   int64_t r;
   struct guestfs_blockdev_getsz_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1534,7 +1534,7 @@ static void blockdev_getsize64_stub (XDR *xdr_in)
 {
   int64_t r;
   struct guestfs_blockdev_getsize64_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1560,7 +1560,7 @@ static void blockdev_flushbufs_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_flushbufs_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1584,7 +1584,7 @@ static void blockdev_rereadpt_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_blockdev_rereadpt_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1608,7 +1608,7 @@ static void upload_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_upload_args args;
-  const char *remotefilename;
+  char *remotefilename;
 
   memset (&args, 0, sizeof args);
 
@@ -1632,7 +1632,7 @@ static void download_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_download_args args;
-  const char *remotefilename;
+  char *remotefilename;
 
   memset (&args, 0, sizeof args);
 
@@ -1656,8 +1656,8 @@ static void checksum_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_checksum_args args;
-  const char *csumtype;
-  const char *path;
+  char *csumtype;
+  char *path;
 
   memset (&args, 0, sizeof args);
 
@@ -1685,7 +1685,7 @@ static void tar_in_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_tar_in_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -1709,7 +1709,7 @@ static void tar_out_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_tar_out_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -1733,7 +1733,7 @@ static void tgz_in_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_tgz_in_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -1757,7 +1757,7 @@ static void tgz_out_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_tgz_out_args args;
-  const char *directory;
+  char *directory;
 
   memset (&args, 0, sizeof args);
 
@@ -1781,8 +1781,8 @@ static void mount_ro_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mount_ro_args args;
-  const char *device;
-  const char *mountpoint;
+  char *device;
+  char *mountpoint;
 
   memset (&args, 0, sizeof args);
 
@@ -1807,9 +1807,9 @@ static void mount_options_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mount_options_args args;
-  const char *options;
-  const char *device;
-  const char *mountpoint;
+  char *options;
+  char *device;
+  char *mountpoint;
 
   memset (&args, 0, sizeof args);
 
@@ -1835,10 +1835,10 @@ static void mount_vfs_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mount_vfs_args args;
-  const char *options;
-  const char *vfstype;
-  const char *device;
-  const char *mountpoint;
+  char *options;
+  char *vfstype;
+  char *device;
+  char *mountpoint;
 
   memset (&args, 0, sizeof args);
 
@@ -1865,7 +1865,7 @@ static void debug_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_debug_args args;
-  const char *subcmd;
+  char *subcmd;
   char **extraargs;
 
   memset (&args, 0, sizeof args);
@@ -1901,7 +1901,7 @@ static void lvremove_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_lvremove_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1925,7 +1925,7 @@ static void vgremove_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_vgremove_args args;
-  const char *vgname;
+  char *vgname;
 
   memset (&args, 0, sizeof args);
 
@@ -1949,7 +1949,7 @@ static void pvremove_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_pvremove_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -1973,8 +1973,8 @@ static void set_e2label_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_set_e2label_args args;
-  const char *device;
-  const char *label;
+  char *device;
+  char *label;
 
   memset (&args, 0, sizeof args);
 
@@ -1999,7 +1999,7 @@ static void get_e2label_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_get_e2label_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -2026,8 +2026,8 @@ static void set_e2uuid_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_set_e2uuid_args args;
-  const char *device;
-  const char *uuid;
+  char *device;
+  char *uuid;
 
   memset (&args, 0, sizeof args);
 
@@ -2052,7 +2052,7 @@ static void get_e2uuid_stub (XDR *xdr_in)
 {
   char *r;
   struct guestfs_get_e2uuid_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -2079,8 +2079,8 @@ static void fsck_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_fsck_args args;
-  const char *fstype;
-  const char *device;
+  char *fstype;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -2107,7 +2107,7 @@ static void zero_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_zero_args args;
-  const char *device;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -2131,8 +2131,8 @@ static void grub_install_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_grub_install_args args;
-  const char *root;
-  const char *device;
+  char *root;
+  char *device;
 
   memset (&args, 0, sizeof args);
 
@@ -2157,8 +2157,8 @@ static void cp_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_cp_args args;
-  const char *src;
-  const char *dest;
+  char *src;
+  char *dest;
 
   memset (&args, 0, sizeof args);
 
@@ -2183,8 +2183,8 @@ static void cp_a_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_cp_a_args args;
-  const char *src;
-  const char *dest;
+  char *src;
+  char *dest;
 
   memset (&args, 0, sizeof args);
 
@@ -2209,8 +2209,8 @@ static void mv_stub (XDR *xdr_in)
 {
   int r;
   struct guestfs_mv_args args;
-  const char *src;
-  const char *dest;
+  char *src;
+  char *dest;
 
   memset (&args, 0, sizeof args);
 
@@ -2271,6 +2271,1212 @@ static void dmesg_stub (XDR *xdr_in)
 done: ;
 }
 
+static void ping_daemon_stub (XDR *xdr_in)
+{
+  int r;
+
+  r = do_ping_daemon ();
+  if (r == -1)
+    /* do_ping_daemon has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done: ;
+}
+
+static void equal_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_equal_args args;
+  char *file1;
+  char *file2;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_equal_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "equal");
+    return;
+  }
+  file1 = args.file1;
+  file2 = args.file2;
+
+  r = do_equal (file1, file2);
+  if (r == -1)
+    /* do_equal has already called reply_with_error */
+    goto done;
+
+  struct guestfs_equal_ret ret;
+  ret.equality = r;
+  reply ((xdrproc_t) &xdr_guestfs_equal_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_equal_args, (char *) &args);
+}
+
+static void strings_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_strings_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_strings_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "strings");
+    return;
+  }
+  path = args.path;
+
+  r = do_strings (path);
+  if (r == NULL)
+    /* do_strings has already called reply_with_error */
+    goto done;
+
+  struct guestfs_strings_ret ret;
+  ret.stringsout.stringsout_len = count_strings (r);
+  ret.stringsout.stringsout_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_strings_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_strings_args, (char *) &args);
+}
+
+static void strings_e_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_strings_e_args args;
+  char *encoding;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_strings_e_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "strings_e");
+    return;
+  }
+  encoding = args.encoding;
+  path = args.path;
+
+  r = do_strings_e (encoding, path);
+  if (r == NULL)
+    /* do_strings_e has already called reply_with_error */
+    goto done;
+
+  struct guestfs_strings_e_ret ret;
+  ret.stringsout.stringsout_len = count_strings (r);
+  ret.stringsout.stringsout_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_strings_e_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_strings_e_args, (char *) &args);
+}
+
+static void hexdump_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_hexdump_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_hexdump_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "hexdump");
+    return;
+  }
+  path = args.path;
+
+  r = do_hexdump (path);
+  if (r == NULL)
+    /* do_hexdump has already called reply_with_error */
+    goto done;
+
+  struct guestfs_hexdump_ret ret;
+  ret.dump = r;
+  reply ((xdrproc_t) &xdr_guestfs_hexdump_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_hexdump_args, (char *) &args);
+}
+
+static void zerofree_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_zerofree_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_zerofree_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "zerofree");
+    return;
+  }
+  device = args.device;
+
+  r = do_zerofree (device);
+  if (r == -1)
+    /* do_zerofree has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_zerofree_args, (char *) &args);
+}
+
+static void pvresize_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_pvresize_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_pvresize_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "pvresize");
+    return;
+  }
+  device = args.device;
+
+  r = do_pvresize (device);
+  if (r == -1)
+    /* do_pvresize has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_pvresize_args, (char *) &args);
+}
+
+static void sfdisk_N_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_sfdisk_N_args args;
+  char *device;
+  int partnum;
+  int cyls;
+  int heads;
+  int sectors;
+  char *line;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sfdisk_N_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_N");
+    return;
+  }
+  device = args.device;
+  partnum = args.partnum;
+  cyls = args.cyls;
+  heads = args.heads;
+  sectors = args.sectors;
+  line = args.line;
+
+  r = do_sfdisk_N (device, partnum, cyls, heads, sectors, line);
+  if (r == -1)
+    /* do_sfdisk_N has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_N_args, (char *) &args);
+}
+
+static void sfdisk_l_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_sfdisk_l_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sfdisk_l_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_l");
+    return;
+  }
+  device = args.device;
+
+  r = do_sfdisk_l (device);
+  if (r == NULL)
+    /* do_sfdisk_l has already called reply_with_error */
+    goto done;
+
+  struct guestfs_sfdisk_l_ret ret;
+  ret.partitions = r;
+  reply ((xdrproc_t) &xdr_guestfs_sfdisk_l_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_l_args, (char *) &args);
+}
+
+static void sfdisk_kernel_geometry_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_sfdisk_kernel_geometry_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sfdisk_kernel_geometry_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_kernel_geometry");
+    return;
+  }
+  device = args.device;
+
+  r = do_sfdisk_kernel_geometry (device);
+  if (r == NULL)
+    /* do_sfdisk_kernel_geometry has already called reply_with_error */
+    goto done;
+
+  struct guestfs_sfdisk_kernel_geometry_ret ret;
+  ret.partitions = r;
+  reply ((xdrproc_t) &xdr_guestfs_sfdisk_kernel_geometry_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_kernel_geometry_args, (char *) &args);
+}
+
+static void sfdisk_disk_geometry_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_sfdisk_disk_geometry_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sfdisk_disk_geometry_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_disk_geometry");
+    return;
+  }
+  device = args.device;
+
+  r = do_sfdisk_disk_geometry (device);
+  if (r == NULL)
+    /* do_sfdisk_disk_geometry has already called reply_with_error */
+    goto done;
+
+  struct guestfs_sfdisk_disk_geometry_ret ret;
+  ret.partitions = r;
+  reply ((xdrproc_t) &xdr_guestfs_sfdisk_disk_geometry_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_disk_geometry_args, (char *) &args);
+}
+
+static void vg_activate_all_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_vg_activate_all_args args;
+  int activate;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_vg_activate_all_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "vg_activate_all");
+    return;
+  }
+  activate = args.activate;
+
+  r = do_vg_activate_all (activate);
+  if (r == -1)
+    /* do_vg_activate_all has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_vg_activate_all_args, (char *) &args);
+}
+
+static void vg_activate_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_vg_activate_args args;
+  int activate;
+  char **volgroups;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_vg_activate_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "vg_activate");
+    return;
+  }
+  activate = args.activate;
+  volgroups = realloc (args.volgroups.volgroups_val,
+                sizeof (char *) * (args.volgroups.volgroups_len+1));
+  if (volgroups == NULL) {
+    reply_with_perror ("realloc");
+    goto done;
+  }
+  volgroups[args.volgroups.volgroups_len] = NULL;
+  args.volgroups.volgroups_val = volgroups;
+
+  r = do_vg_activate (activate, volgroups);
+  if (r == -1)
+    /* do_vg_activate has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_vg_activate_args, (char *) &args);
+}
+
+static void lvresize_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_lvresize_args args;
+  char *device;
+  int mbytes;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_lvresize_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "lvresize");
+    return;
+  }
+  device = args.device;
+  mbytes = args.mbytes;
+
+  r = do_lvresize (device, mbytes);
+  if (r == -1)
+    /* do_lvresize has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_lvresize_args, (char *) &args);
+}
+
+static void resize2fs_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_resize2fs_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_resize2fs_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "resize2fs");
+    return;
+  }
+  device = args.device;
+
+  r = do_resize2fs (device);
+  if (r == -1)
+    /* do_resize2fs has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_resize2fs_args, (char *) &args);
+}
+
+static void find_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_find_args args;
+  char *directory;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_find_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "find");
+    return;
+  }
+  directory = args.directory;
+
+  r = do_find (directory);
+  if (r == NULL)
+    /* do_find has already called reply_with_error */
+    goto done;
+
+  struct guestfs_find_ret ret;
+  ret.names.names_len = count_strings (r);
+  ret.names.names_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_find_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_find_args, (char *) &args);
+}
+
+static void e2fsck_f_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_e2fsck_f_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_e2fsck_f_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "e2fsck_f");
+    return;
+  }
+  device = args.device;
+
+  r = do_e2fsck_f (device);
+  if (r == -1)
+    /* do_e2fsck_f has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_e2fsck_f_args, (char *) &args);
+}
+
+static void sleep_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_sleep_args args;
+  int secs;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sleep_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sleep");
+    return;
+  }
+  secs = args.secs;
+
+  r = do_sleep (secs);
+  if (r == -1)
+    /* do_sleep has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sleep_args, (char *) &args);
+}
+
+static void ntfs_3g_probe_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_ntfs_3g_probe_args args;
+  int rw;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_ntfs_3g_probe_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "ntfs_3g_probe");
+    return;
+  }
+  rw = args.rw;
+  device = args.device;
+
+  r = do_ntfs_3g_probe (rw, device);
+  if (r == -1)
+    /* do_ntfs_3g_probe has already called reply_with_error */
+    goto done;
+
+  struct guestfs_ntfs_3g_probe_ret ret;
+  ret.status = r;
+  reply ((xdrproc_t) &xdr_guestfs_ntfs_3g_probe_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_ntfs_3g_probe_args, (char *) &args);
+}
+
+static void sh_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_sh_args args;
+  char *command;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sh_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sh");
+    return;
+  }
+  command = args.command;
+
+  r = do_sh (command);
+  if (r == NULL)
+    /* do_sh has already called reply_with_error */
+    goto done;
+
+  struct guestfs_sh_ret ret;
+  ret.output = r;
+  reply ((xdrproc_t) &xdr_guestfs_sh_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sh_args, (char *) &args);
+}
+
+static void sh_lines_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_sh_lines_args args;
+  char *command;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_sh_lines_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "sh_lines");
+    return;
+  }
+  command = args.command;
+
+  r = do_sh_lines (command);
+  if (r == NULL)
+    /* do_sh_lines has already called reply_with_error */
+    goto done;
+
+  struct guestfs_sh_lines_ret ret;
+  ret.lines.lines_len = count_strings (r);
+  ret.lines.lines_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_sh_lines_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_sh_lines_args, (char *) &args);
+}
+
+static void glob_expand_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_glob_expand_args args;
+  char *pattern;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_glob_expand_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "glob_expand");
+    return;
+  }
+  pattern = args.pattern;
+
+  r = do_glob_expand (pattern);
+  if (r == NULL)
+    /* do_glob_expand has already called reply_with_error */
+    goto done;
+
+  struct guestfs_glob_expand_ret ret;
+  ret.paths.paths_len = count_strings (r);
+  ret.paths.paths_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_glob_expand_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_glob_expand_args, (char *) &args);
+}
+
+static void scrub_device_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_scrub_device_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_scrub_device_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "scrub_device");
+    return;
+  }
+  device = args.device;
+
+  r = do_scrub_device (device);
+  if (r == -1)
+    /* do_scrub_device has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_scrub_device_args, (char *) &args);
+}
+
+static void scrub_file_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_scrub_file_args args;
+  char *file;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_scrub_file_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "scrub_file");
+    return;
+  }
+  file = args.file;
+
+  r = do_scrub_file (file);
+  if (r == -1)
+    /* do_scrub_file has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_scrub_file_args, (char *) &args);
+}
+
+static void scrub_freespace_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_scrub_freespace_args args;
+  char *dir;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_scrub_freespace_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "scrub_freespace");
+    return;
+  }
+  dir = args.dir;
+
+  r = do_scrub_freespace (dir);
+  if (r == -1)
+    /* do_scrub_freespace has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_scrub_freespace_args, (char *) &args);
+}
+
+static void mkdtemp_stub (XDR *xdr_in)
+{
+  char *r;
+  struct guestfs_mkdtemp_args args;
+  char *template;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mkdtemp_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mkdtemp");
+    return;
+  }
+  template = args.template;
+
+  r = do_mkdtemp (template);
+  if (r == NULL)
+    /* do_mkdtemp has already called reply_with_error */
+    goto done;
+
+  struct guestfs_mkdtemp_ret ret;
+  ret.dir = r;
+  reply ((xdrproc_t) &xdr_guestfs_mkdtemp_ret, (char *) &ret);
+  free (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mkdtemp_args, (char *) &args);
+}
+
+static void wc_l_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_wc_l_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_wc_l_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "wc_l");
+    return;
+  }
+  path = args.path;
+
+  r = do_wc_l (path);
+  if (r == -1)
+    /* do_wc_l has already called reply_with_error */
+    goto done;
+
+  struct guestfs_wc_l_ret ret;
+  ret.lines = r;
+  reply ((xdrproc_t) &xdr_guestfs_wc_l_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_wc_l_args, (char *) &args);
+}
+
+static void wc_w_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_wc_w_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_wc_w_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "wc_w");
+    return;
+  }
+  path = args.path;
+
+  r = do_wc_w (path);
+  if (r == -1)
+    /* do_wc_w has already called reply_with_error */
+    goto done;
+
+  struct guestfs_wc_w_ret ret;
+  ret.words = r;
+  reply ((xdrproc_t) &xdr_guestfs_wc_w_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_wc_w_args, (char *) &args);
+}
+
+static void wc_c_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_wc_c_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_wc_c_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "wc_c");
+    return;
+  }
+  path = args.path;
+
+  r = do_wc_c (path);
+  if (r == -1)
+    /* do_wc_c has already called reply_with_error */
+    goto done;
+
+  struct guestfs_wc_c_ret ret;
+  ret.chars = r;
+  reply ((xdrproc_t) &xdr_guestfs_wc_c_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_wc_c_args, (char *) &args);
+}
+
+static void head_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_head_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_head_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "head");
+    return;
+  }
+  path = args.path;
+
+  r = do_head (path);
+  if (r == NULL)
+    /* do_head has already called reply_with_error */
+    goto done;
+
+  struct guestfs_head_ret ret;
+  ret.lines.lines_len = count_strings (r);
+  ret.lines.lines_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_head_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_head_args, (char *) &args);
+}
+
+static void head_n_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_head_n_args args;
+  int nrlines;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_head_n_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "head_n");
+    return;
+  }
+  nrlines = args.nrlines;
+  path = args.path;
+
+  r = do_head_n (nrlines, path);
+  if (r == NULL)
+    /* do_head_n has already called reply_with_error */
+    goto done;
+
+  struct guestfs_head_n_ret ret;
+  ret.lines.lines_len = count_strings (r);
+  ret.lines.lines_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_head_n_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_head_n_args, (char *) &args);
+}
+
+static void tail_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_tail_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_tail_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "tail");
+    return;
+  }
+  path = args.path;
+
+  r = do_tail (path);
+  if (r == NULL)
+    /* do_tail has already called reply_with_error */
+    goto done;
+
+  struct guestfs_tail_ret ret;
+  ret.lines.lines_len = count_strings (r);
+  ret.lines.lines_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_tail_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_tail_args, (char *) &args);
+}
+
+static void tail_n_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_tail_n_args args;
+  int nrlines;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_tail_n_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "tail_n");
+    return;
+  }
+  nrlines = args.nrlines;
+  path = args.path;
+
+  r = do_tail_n (nrlines, path);
+  if (r == NULL)
+    /* do_tail_n has already called reply_with_error */
+    goto done;
+
+  struct guestfs_tail_n_ret ret;
+  ret.lines.lines_len = count_strings (r);
+  ret.lines.lines_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_tail_n_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_tail_n_args, (char *) &args);
+}
+
+static void df_stub (XDR *xdr_in)
+{
+  char *r;
+
+  r = do_df ();
+  if (r == NULL)
+    /* do_df has already called reply_with_error */
+    goto done;
+
+  struct guestfs_df_ret ret;
+  ret.output = r;
+  reply ((xdrproc_t) &xdr_guestfs_df_ret, (char *) &ret);
+  free (r);
+done: ;
+}
+
+static void df_h_stub (XDR *xdr_in)
+{
+  char *r;
+
+  r = do_df_h ();
+  if (r == NULL)
+    /* do_df_h has already called reply_with_error */
+    goto done;
+
+  struct guestfs_df_h_ret ret;
+  ret.output = r;
+  reply ((xdrproc_t) &xdr_guestfs_df_h_ret, (char *) &ret);
+  free (r);
+done: ;
+}
+
+static void du_stub (XDR *xdr_in)
+{
+  int64_t r;
+  struct guestfs_du_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_du_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "du");
+    return;
+  }
+  path = args.path;
+
+  r = do_du (path);
+  if (r == -1)
+    /* do_du has already called reply_with_error */
+    goto done;
+
+  struct guestfs_du_ret ret;
+  ret.sizekb = r;
+  reply ((xdrproc_t) &xdr_guestfs_du_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_du_args, (char *) &args);
+}
+
+static void initrd_list_stub (XDR *xdr_in)
+{
+  char **r;
+  struct guestfs_initrd_list_args args;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_initrd_list_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "initrd_list");
+    return;
+  }
+  path = args.path;
+
+  r = do_initrd_list (path);
+  if (r == NULL)
+    /* do_initrd_list has already called reply_with_error */
+    goto done;
+
+  struct guestfs_initrd_list_ret ret;
+  ret.filenames.filenames_len = count_strings (r);
+  ret.filenames.filenames_val = r;
+  reply ((xdrproc_t) &xdr_guestfs_initrd_list_ret, (char *) &ret);
+  free_strings (r);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_initrd_list_args, (char *) &args);
+}
+
+static void mount_loop_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mount_loop_args args;
+  char *file;
+  char *mountpoint;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mount_loop_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mount_loop");
+    return;
+  }
+  file = args.file;
+  mountpoint = args.mountpoint;
+
+  r = do_mount_loop (file, mountpoint);
+  if (r == -1)
+    /* do_mount_loop has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mount_loop_args, (char *) &args);
+}
+
+static void mkswap_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mkswap_args args;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mkswap_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mkswap");
+    return;
+  }
+  device = args.device;
+
+  r = do_mkswap (device);
+  if (r == -1)
+    /* do_mkswap has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mkswap_args, (char *) &args);
+}
+
+static void mkswap_L_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mkswap_L_args args;
+  char *label;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mkswap_L_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mkswap_L");
+    return;
+  }
+  label = args.label;
+  device = args.device;
+
+  r = do_mkswap_L (label, device);
+  if (r == -1)
+    /* do_mkswap_L has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mkswap_L_args, (char *) &args);
+}
+
+static void mkswap_U_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mkswap_U_args args;
+  char *uuid;
+  char *device;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mkswap_U_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mkswap_U");
+    return;
+  }
+  uuid = args.uuid;
+  device = args.device;
+
+  r = do_mkswap_U (uuid, device);
+  if (r == -1)
+    /* do_mkswap_U has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mkswap_U_args, (char *) &args);
+}
+
+static void mknod_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mknod_args args;
+  int mode;
+  int devmajor;
+  int devminor;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mknod_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mknod");
+    return;
+  }
+  mode = args.mode;
+  devmajor = args.devmajor;
+  devminor = args.devminor;
+  path = args.path;
+
+  r = do_mknod (mode, devmajor, devminor, path);
+  if (r == -1)
+    /* do_mknod has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mknod_args, (char *) &args);
+}
+
+static void mkfifo_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mkfifo_args args;
+  int mode;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mkfifo_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mkfifo");
+    return;
+  }
+  mode = args.mode;
+  path = args.path;
+
+  r = do_mkfifo (mode, path);
+  if (r == -1)
+    /* do_mkfifo has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mkfifo_args, (char *) &args);
+}
+
+static void mknod_b_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mknod_b_args args;
+  int mode;
+  int devmajor;
+  int devminor;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mknod_b_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mknod_b");
+    return;
+  }
+  mode = args.mode;
+  devmajor = args.devmajor;
+  devminor = args.devminor;
+  path = args.path;
+
+  r = do_mknod_b (mode, devmajor, devminor, path);
+  if (r == -1)
+    /* do_mknod_b has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mknod_b_args, (char *) &args);
+}
+
+static void mknod_c_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_mknod_c_args args;
+  int mode;
+  int devmajor;
+  int devminor;
+  char *path;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_mknod_c_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "mknod_c");
+    return;
+  }
+  mode = args.mode;
+  devmajor = args.devmajor;
+  devminor = args.devminor;
+  path = args.path;
+
+  r = do_mknod_c (mode, devmajor, devminor, path);
+  if (r == -1)
+    /* do_mknod_c has already called reply_with_error */
+    goto done;
+
+  reply (NULL, NULL);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_mknod_c_args, (char *) &args);
+}
+
+static void umask_stub (XDR *xdr_in)
+{
+  int r;
+  struct guestfs_umask_args args;
+  int mask;
+
+  memset (&args, 0, sizeof args);
+
+  if (!xdr_guestfs_umask_args (xdr_in, &args)) {
+    reply_with_error ("%s: daemon failed to decode procedure arguments", "umask");
+    return;
+  }
+  mask = args.mask;
+
+  r = do_umask (mask);
+  if (r == -1)
+    /* do_umask has already called reply_with_error */
+    goto done;
+
+  struct guestfs_umask_ret ret;
+  ret.oldmask = r;
+  reply ((xdrproc_t) &xdr_guestfs_umask_ret, (char *) &ret);
+done:
+  xdr_free ((xdrproc_t) xdr_guestfs_umask_args, (char *) &args);
+}
+
 void dispatch_incoming_message (XDR *xdr_in)
 {
   switch (proc_nr) {
@@ -2547,8 +3753,146 @@ void dispatch_incoming_message (XDR *xdr_in)
     case GUESTFS_PROC_DMESG:
       dmesg_stub (xdr_in);
       break;
+    case GUESTFS_PROC_PING_DAEMON:
+      ping_daemon_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_EQUAL:
+      equal_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_STRINGS:
+      strings_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_STRINGS_E:
+      strings_e_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_HEXDUMP:
+      hexdump_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_ZEROFREE:
+      zerofree_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_PVRESIZE:
+      pvresize_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SFDISK_N:
+      sfdisk_N_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SFDISK_L:
+      sfdisk_l_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SFDISK_KERNEL_GEOMETRY:
+      sfdisk_kernel_geometry_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SFDISK_DISK_GEOMETRY:
+      sfdisk_disk_geometry_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_VG_ACTIVATE_ALL:
+      vg_activate_all_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_VG_ACTIVATE:
+      vg_activate_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_LVRESIZE:
+      lvresize_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_RESIZE2FS:
+      resize2fs_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_FIND:
+      find_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_E2FSCK_F:
+      e2fsck_f_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SLEEP:
+      sleep_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_NTFS_3G_PROBE:
+      ntfs_3g_probe_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SH:
+      sh_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SH_LINES:
+      sh_lines_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_GLOB_EXPAND:
+      glob_expand_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SCRUB_DEVICE:
+      scrub_device_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SCRUB_FILE:
+      scrub_file_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_SCRUB_FREESPACE:
+      scrub_freespace_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKDTEMP:
+      mkdtemp_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_WC_L:
+      wc_l_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_WC_W:
+      wc_w_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_WC_C:
+      wc_c_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_HEAD:
+      head_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_HEAD_N:
+      head_n_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_TAIL:
+      tail_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_TAIL_N:
+      tail_n_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_DF:
+      df_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_DF_H:
+      df_h_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_DU:
+      du_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_INITRD_LIST:
+      initrd_list_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MOUNT_LOOP:
+      mount_loop_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKSWAP:
+      mkswap_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKSWAP_L:
+      mkswap_L_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKSWAP_U:
+      mkswap_U_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKNOD:
+      mknod_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKFIFO:
+      mkfifo_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKNOD_B:
+      mknod_b_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_MKNOD_C:
+      mknod_c_stub (xdr_in);
+      break;
+    case GUESTFS_PROC_UMASK:
+      umask_stub (xdr_in);
+      break;
     default:
-      reply_with_error ("dispatch_incoming_message: unknown procedure number %d", proc_nr);
+      reply_with_error ("dispatch_incoming_message: unknown procedure number %d, set LIBGUESTFS_PATH to point to the matching libguestfs appliance directory", proc_nr);
   }
 }