X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs_protocol.c;h=99377b4d616cba8a696481e5cc7025f16996c871;hp=dfdd0d8b825749afeaeaa2bd8e89f3e5324f5429;hb=6bcbe54b5785cb8c911ccf4b724ae6abfdf53ce4;hpb=73d6932ab2dd3f9120a1f4a532621c07cb174705 diff --git a/src/guestfs_protocol.c b/src/guestfs_protocol.c index dfdd0d8..99377b4 100644 --- a/src/guestfs_protocol.c +++ b/src/guestfs_protocol.c @@ -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; @@ -283,7 +347,8 @@ xdr_guestfs_pvs_ret (XDR *xdrs, guestfs_pvs_ret *objp) { register int32_t *buf; - if (!xdr_guestfs_lvm_int_pv_list (xdrs, &objp->physvols)) + if (!xdr_array (xdrs, (char **)&objp->physvols.physvols_val, (u_int *) &objp->physvols.physvols_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) return FALSE; return TRUE; } @@ -293,7 +358,8 @@ xdr_guestfs_vgs_ret (XDR *xdrs, guestfs_vgs_ret *objp) { register int32_t *buf; - if (!xdr_guestfs_lvm_int_vg_list (xdrs, &objp->volgroups)) + if (!xdr_array (xdrs, (char **)&objp->volgroups.volgroups_val, (u_int *) &objp->volgroups.volgroups_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) return FALSE; return TRUE; } @@ -303,12 +369,651 @@ xdr_guestfs_lvs_ret (XDR *xdrs, guestfs_lvs_ret *objp) { register int32_t *buf; + if (!xdr_array (xdrs, (char **)&objp->logvols.logvols_val, (u_int *) &objp->logvols.logvols_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_pvs_full_ret (XDR *xdrs, guestfs_pvs_full_ret *objp) +{ + register int32_t *buf; + + if (!xdr_guestfs_lvm_int_pv_list (xdrs, &objp->physvols)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_vgs_full_ret (XDR *xdrs, guestfs_vgs_full_ret *objp) +{ + register int32_t *buf; + + if (!xdr_guestfs_lvm_int_vg_list (xdrs, &objp->volgroups)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_lvs_full_ret (XDR *xdrs, guestfs_lvs_full_ret *objp) +{ + register int32_t *buf; + if (!xdr_guestfs_lvm_int_lv_list (xdrs, &objp->logvols)) return FALSE; return TRUE; } bool_t +xdr_guestfs_read_lines_args (XDR *xdrs, guestfs_read_lines_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_read_lines_ret (XDR *xdrs, guestfs_read_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; + return TRUE; +} + +bool_t +xdr_guestfs_aug_init_args (XDR *xdrs, guestfs_aug_init_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->root, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->flags)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_defvar_args (XDR *xdrs, guestfs_aug_defvar_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + if (!xdr_pointer (xdrs, (char **)&objp->expr, sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_defvar_ret (XDR *xdrs, guestfs_aug_defvar_ret *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->nrnodes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_defnode_args (XDR *xdrs, guestfs_aug_defnode_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->name, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->expr, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->val, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_defnode_ret (XDR *xdrs, guestfs_aug_defnode_ret *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->nrnodes)) + return FALSE; + if (!xdr_bool (xdrs, &objp->created)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_get_args (XDR *xdrs, guestfs_aug_get_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_get_ret (XDR *xdrs, guestfs_aug_get_ret *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->val, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_set_args (XDR *xdrs, guestfs_aug_set_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->val, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_insert_args (XDR *xdrs, guestfs_aug_insert_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->label, ~0)) + return FALSE; + if (!xdr_bool (xdrs, &objp->before)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_rm_args (XDR *xdrs, guestfs_aug_rm_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_rm_ret (XDR *xdrs, guestfs_aug_rm_ret *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->nrnodes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_mv_args (XDR *xdrs, guestfs_aug_mv_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->src, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->dest, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_match_args (XDR *xdrs, guestfs_aug_match_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_match_ret (XDR *xdrs, guestfs_aug_match_ret *objp) +{ + register int32_t *buf; + + if (!xdr_array (xdrs, (char **)&objp->matches.matches_val, (u_int *) &objp->matches.matches_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_ls_args (XDR *xdrs, guestfs_aug_ls_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_aug_ls_ret (XDR *xdrs, guestfs_aug_ls_ret *objp) +{ + register int32_t *buf; + + if (!xdr_array (xdrs, (char **)&objp->matches.matches_val, (u_int *) &objp->matches.matches_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_rm_args (XDR *xdrs, guestfs_rm_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_rmdir_args (XDR *xdrs, guestfs_rmdir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_rm_rf_args (XDR *xdrs, guestfs_rm_rf_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mkdir_args (XDR *xdrs, guestfs_mkdir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mkdir_p_args (XDR *xdrs, guestfs_mkdir_p_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_chmod_args (XDR *xdrs, guestfs_chmod_args *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->mode)) + return FALSE; + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_chown_args (XDR *xdrs, guestfs_chown_args *objp) +{ + register int32_t *buf; + + if (!xdr_int (xdrs, &objp->owner)) + return FALSE; + if (!xdr_int (xdrs, &objp->group)) + return FALSE; + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_exists_args (XDR *xdrs, guestfs_exists_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_exists_ret (XDR *xdrs, guestfs_exists_ret *objp) +{ + register int32_t *buf; + + if (!xdr_bool (xdrs, &objp->existsflag)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_is_file_args (XDR *xdrs, guestfs_is_file_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_is_file_ret (XDR *xdrs, guestfs_is_file_ret *objp) +{ + register int32_t *buf; + + if (!xdr_bool (xdrs, &objp->fileflag)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_is_dir_args (XDR *xdrs, guestfs_is_dir_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_is_dir_ret (XDR *xdrs, guestfs_is_dir_ret *objp) +{ + register int32_t *buf; + + if (!xdr_bool (xdrs, &objp->dirflag)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_pvcreate_args (XDR *xdrs, guestfs_pvcreate_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_vgcreate_args (XDR *xdrs, guestfs_vgcreate_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->volgroup, ~0)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->physvols.physvols_val, (u_int *) &objp->physvols.physvols_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_lvcreate_args (XDR *xdrs, guestfs_lvcreate_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->logvol, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->volgroup, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->mbytes)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mkfs_args (XDR *xdrs, guestfs_mkfs_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_sfdisk_args (XDR *xdrs, guestfs_sfdisk_args *objp) +{ + register int32_t *buf; + + + if (xdrs->x_op == XDR_ENCODE) { + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_int (xdrs, &objp->cyls)) + return FALSE; + if (!xdr_int (xdrs, &objp->heads)) + return FALSE; + if (!xdr_int (xdrs, &objp->sectors)) + return FALSE; + + } else { + IXDR_PUT_LONG(buf, objp->cyls); + IXDR_PUT_LONG(buf, objp->heads); + IXDR_PUT_LONG(buf, objp->sectors); + } + if (!xdr_array (xdrs, (char **)&objp->lines.lines_val, (u_int *) &objp->lines.lines_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; + } else if (xdrs->x_op == XDR_DECODE) { + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT); + if (buf == NULL) { + if (!xdr_int (xdrs, &objp->cyls)) + return FALSE; + if (!xdr_int (xdrs, &objp->heads)) + return FALSE; + if (!xdr_int (xdrs, &objp->sectors)) + return FALSE; + + } else { + objp->cyls = IXDR_GET_LONG(buf); + objp->heads = IXDR_GET_LONG(buf); + objp->sectors = IXDR_GET_LONG(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; + return TRUE; + } + + if (!xdr_string (xdrs, &objp->device, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->cyls)) + return FALSE; + if (!xdr_int (xdrs, &objp->heads)) + return FALSE; + if (!xdr_int (xdrs, &objp->sectors)) + return FALSE; + if (!xdr_array (xdrs, (char **)&objp->lines.lines_val, (u_int *) &objp->lines.lines_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_write_file_args (XDR *xdrs, guestfs_write_file_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + if (!xdr_string (xdrs, &objp->content, ~0)) + return FALSE; + if (!xdr_int (xdrs, &objp->size)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_umount_args (XDR *xdrs, guestfs_umount_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->pathordevice, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_mounts_ret (XDR *xdrs, guestfs_mounts_ret *objp) +{ + register int32_t *buf; + + if (!xdr_array (xdrs, (char **)&objp->devices.devices_val, (u_int *) &objp->devices.devices_len, ~0, + sizeof (str), (xdrproc_t) xdr_str)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_file_args (XDR *xdrs, guestfs_file_args *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->path, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_file_ret (XDR *xdrs, guestfs_file_ret *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->description, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_command_args (XDR *xdrs, guestfs_command_args *objp) +{ + register int32_t *buf; + + 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_command_ret (XDR *xdrs, guestfs_command_ret *objp) +{ + register int32_t *buf; + + if (!xdr_string (xdrs, &objp->output, ~0)) + return FALSE; + return TRUE; +} + +bool_t +xdr_guestfs_command_lines_args (XDR *xdrs, guestfs_command_lines_args *objp) +{ + register int32_t *buf; + + 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_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; + 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; + 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; + 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; + 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_procedure (XDR *xdrs, guestfs_procedure *objp) { register int32_t *buf;