Added 'zero' command to wipe partition tables and superblocks.
[libguestfs.git] / src / guestfs_protocol.c
index 8e86812..b12133a 100644 (file)
@@ -174,6 +174,70 @@ xdr_guestfs_lvm_int_lv_list (XDR *xdrs, guestfs_lvm_int_lv_list *objp)
 }
 
 bool_t
+xdr_guestfs_int_stat (XDR *xdrs, guestfs_int_stat *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_quad_t (xdrs, &objp->dev))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->ino))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->mode))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->nlink))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->uid))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->gid))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->rdev))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->size))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->blksize))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->blocks))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->atime))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->mtime))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->ctime))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_int_statvfs (XDR *xdrs, guestfs_int_statvfs *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_quad_t (xdrs, &objp->bsize))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->frsize))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->blocks))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->bfree))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->bavail))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->files))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->ffree))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->favail))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->fsid))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->flag))
+                return FALSE;
+        if (!xdr_quad_t (xdrs, &objp->namemax))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
 xdr_guestfs_mount_args (XDR *xdrs, guestfs_mount_args *objp)
 {
        register int32_t *buf;
@@ -827,61 +891,642 @@ xdr_guestfs_mounts_ret (XDR *xdrs, guestfs_mounts_ret *objp)
 }
 
 bool_t
-xdr_guestfs_procedure (XDR *xdrs, guestfs_procedure *objp)
+xdr_guestfs_file_args (XDR *xdrs, guestfs_file_args *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_enum (xdrs, (enum_t *) objp))
+        if (!xdr_string (xdrs, &objp->path, ~0))
                 return FALSE;
        return TRUE;
 }
 
 bool_t
-xdr_guestfs_message_direction (XDR *xdrs, guestfs_message_direction *objp)
+xdr_guestfs_file_ret (XDR *xdrs, guestfs_file_ret *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_enum (xdrs, (enum_t *) objp))
+        if (!xdr_string (xdrs, &objp->description, ~0))
                 return FALSE;
        return TRUE;
 }
 
 bool_t
-xdr_guestfs_message_status (XDR *xdrs, guestfs_message_status *objp)
+xdr_guestfs_command_args (XDR *xdrs, guestfs_command_args *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_enum (xdrs, (enum_t *) objp))
+        if (!xdr_array (xdrs, (char **)&objp->arguments.arguments_val, (u_int *) &objp->arguments.arguments_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
                 return FALSE;
        return TRUE;
 }
 
 bool_t
-xdr_guestfs_message_error (XDR *xdrs, guestfs_message_error *objp)
+xdr_guestfs_command_ret (XDR *xdrs, guestfs_command_ret *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_string (xdrs, &objp->error, GUESTFS_ERROR_LEN))
+        if (!xdr_string (xdrs, &objp->output, ~0))
                 return FALSE;
        return TRUE;
 }
 
 bool_t
-xdr_guestfs_message_header (XDR *xdrs, guestfs_message_header *objp)
+xdr_guestfs_command_lines_args (XDR *xdrs, guestfs_command_lines_args *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_u_int (xdrs, &objp->prog))
+        if (!xdr_array (xdrs, (char **)&objp->arguments.arguments_val, (u_int *) &objp->arguments.arguments_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
                 return FALSE;
-        if (!xdr_u_int (xdrs, &objp->vers))
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_command_lines_ret (XDR *xdrs, guestfs_command_lines_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_array (xdrs, (char **)&objp->lines.lines_val, (u_int *) &objp->lines.lines_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
                 return FALSE;
-        if (!xdr_guestfs_procedure (xdrs, &objp->proc))
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_stat_args (XDR *xdrs, guestfs_stat_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->path, ~0))
                 return FALSE;
-        if (!xdr_guestfs_message_direction (xdrs, &objp->direction))
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_stat_ret (XDR *xdrs, guestfs_stat_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_guestfs_int_stat (xdrs, &objp->statbuf))
                 return FALSE;
-        if (!xdr_u_int (xdrs, &objp->serial))
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_lstat_args (XDR *xdrs, guestfs_lstat_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->path, ~0))
                 return FALSE;
-        if (!xdr_guestfs_message_status (xdrs, &objp->status))
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_lstat_ret (XDR *xdrs, guestfs_lstat_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_guestfs_int_stat (xdrs, &objp->statbuf))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_statvfs_args (XDR *xdrs, guestfs_statvfs_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_statvfs_ret (XDR *xdrs, guestfs_statvfs_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_guestfs_int_statvfs (xdrs, &objp->statbuf))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tune2fs_l_args (XDR *xdrs, guestfs_tune2fs_l_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tune2fs_l_ret (XDR *xdrs, guestfs_tune2fs_l_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_array (xdrs, (char **)&objp->superblock.superblock_val, (u_int *) &objp->superblock.superblock_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_setro_args (XDR *xdrs, guestfs_blockdev_setro_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_setrw_args (XDR *xdrs, guestfs_blockdev_setrw_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getro_args (XDR *xdrs, guestfs_blockdev_getro_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getro_ret (XDR *xdrs, guestfs_blockdev_getro_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_bool (xdrs, &objp->ro))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getss_args (XDR *xdrs, guestfs_blockdev_getss_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getss_ret (XDR *xdrs, guestfs_blockdev_getss_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->sectorsize))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getbsz_args (XDR *xdrs, guestfs_blockdev_getbsz_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getbsz_ret (XDR *xdrs, guestfs_blockdev_getbsz_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->blocksize))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_setbsz_args (XDR *xdrs, guestfs_blockdev_setbsz_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->blocksize))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getsz_args (XDR *xdrs, guestfs_blockdev_getsz_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getsz_ret (XDR *xdrs, guestfs_blockdev_getsz_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_quad_t (xdrs, &objp->sizeinsectors))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getsize64_args (XDR *xdrs, guestfs_blockdev_getsize64_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_getsize64_ret (XDR *xdrs, guestfs_blockdev_getsize64_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_quad_t (xdrs, &objp->sizeinbytes))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_flushbufs_args (XDR *xdrs, guestfs_blockdev_flushbufs_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_blockdev_rereadpt_args (XDR *xdrs, guestfs_blockdev_rereadpt_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_upload_args (XDR *xdrs, guestfs_upload_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->remotefilename, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_download_args (XDR *xdrs, guestfs_download_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->remotefilename, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_checksum_args (XDR *xdrs, guestfs_checksum_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->csumtype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_checksum_ret (XDR *xdrs, guestfs_checksum_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->checksum, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tar_in_args (XDR *xdrs, guestfs_tar_in_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tar_out_args (XDR *xdrs, guestfs_tar_out_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tgz_in_args (XDR *xdrs, guestfs_tgz_in_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tgz_out_args (XDR *xdrs, guestfs_tgz_out_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_ro_args (XDR *xdrs, guestfs_mount_ro_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_options_args (XDR *xdrs, guestfs_mount_options_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->options, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_vfs_args (XDR *xdrs, guestfs_mount_vfs_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->options, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->vfstype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_debug_args (XDR *xdrs, guestfs_debug_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->subcmd, ~0))
+                return FALSE;
+        if (!xdr_array (xdrs, (char **)&objp->extraargs.extraargs_val, (u_int *) &objp->extraargs.extraargs_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_debug_ret (XDR *xdrs, guestfs_debug_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->result, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_lvremove_args (XDR *xdrs, guestfs_lvremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_vgremove_args (XDR *xdrs, guestfs_vgremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->vgname, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_pvremove_args (XDR *xdrs, guestfs_pvremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_set_e2label_args (XDR *xdrs, guestfs_set_e2label_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->label, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2label_args (XDR *xdrs, guestfs_get_e2label_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2label_ret (XDR *xdrs, guestfs_get_e2label_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->label, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_set_e2uuid_args (XDR *xdrs, guestfs_set_e2uuid_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->uuid, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2uuid_args (XDR *xdrs, guestfs_get_e2uuid_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2uuid_ret (XDR *xdrs, guestfs_get_e2uuid_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->uuid, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_fsck_args (XDR *xdrs, guestfs_fsck_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->fstype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_fsck_ret (XDR *xdrs, guestfs_fsck_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->status))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_zero_args (XDR *xdrs, guestfs_zero_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_procedure (XDR *xdrs, guestfs_procedure *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_enum (xdrs, (enum_t *) objp))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_message_direction (XDR *xdrs, guestfs_message_direction *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_enum (xdrs, (enum_t *) objp))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_message_status (XDR *xdrs, guestfs_message_status *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_enum (xdrs, (enum_t *) objp))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_message_error (XDR *xdrs, guestfs_message_error *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->error_message, GUESTFS_ERROR_LEN))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_message_header (XDR *xdrs, guestfs_message_header *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_u_int (xdrs, &objp->prog))
+                return FALSE;
+        if (!xdr_u_int (xdrs, &objp->vers))
+                return FALSE;
+        if (!xdr_guestfs_procedure (xdrs, &objp->proc))
+                return FALSE;
+        if (!xdr_guestfs_message_direction (xdrs, &objp->direction))
+                return FALSE;
+        if (!xdr_u_int (xdrs, &objp->serial))
+                return FALSE;
+        if (!xdr_guestfs_message_status (xdrs, &objp->status))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_chunk (XDR *xdrs, guestfs_chunk *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->cancel))
+                return FALSE;
+        if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, GUESTFS_MAX_CHUNK_SIZE))
                 return FALSE;
        return TRUE;
 }