X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs_protocol.h;h=e472524739990c7669696ec6e41d633079c11d06;hp=072072372b5512ac1ba7c44d04fc40afaeba7b26;hb=8c3b820c2b687345448e3d74a7101b07ff32688e;hpb=6bcbe54b5785cb8c911ccf4b724ae6abfdf53ce4 diff --git a/src/guestfs_protocol.h b/src/guestfs_protocol.h index 0720723..e472524 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -527,6 +527,268 @@ struct guestfs_statvfs_ret { }; typedef struct guestfs_statvfs_ret guestfs_statvfs_ret; +struct guestfs_tune2fs_l_args { + char *device; +}; +typedef struct guestfs_tune2fs_l_args guestfs_tune2fs_l_args; + +struct guestfs_tune2fs_l_ret { + struct { + u_int superblock_len; + str *superblock_val; + } superblock; +}; +typedef struct guestfs_tune2fs_l_ret guestfs_tune2fs_l_ret; + +struct guestfs_blockdev_setro_args { + char *device; +}; +typedef struct guestfs_blockdev_setro_args guestfs_blockdev_setro_args; + +struct guestfs_blockdev_setrw_args { + char *device; +}; +typedef struct guestfs_blockdev_setrw_args guestfs_blockdev_setrw_args; + +struct guestfs_blockdev_getro_args { + char *device; +}; +typedef struct guestfs_blockdev_getro_args guestfs_blockdev_getro_args; + +struct guestfs_blockdev_getro_ret { + bool_t ro; +}; +typedef struct guestfs_blockdev_getro_ret guestfs_blockdev_getro_ret; + +struct guestfs_blockdev_getss_args { + char *device; +}; +typedef struct guestfs_blockdev_getss_args guestfs_blockdev_getss_args; + +struct guestfs_blockdev_getss_ret { + int sectorsize; +}; +typedef struct guestfs_blockdev_getss_ret guestfs_blockdev_getss_ret; + +struct guestfs_blockdev_getbsz_args { + char *device; +}; +typedef struct guestfs_blockdev_getbsz_args guestfs_blockdev_getbsz_args; + +struct guestfs_blockdev_getbsz_ret { + int blocksize; +}; +typedef struct guestfs_blockdev_getbsz_ret guestfs_blockdev_getbsz_ret; + +struct guestfs_blockdev_setbsz_args { + char *device; + int blocksize; +}; +typedef struct guestfs_blockdev_setbsz_args guestfs_blockdev_setbsz_args; + +struct guestfs_blockdev_getsz_args { + char *device; +}; +typedef struct guestfs_blockdev_getsz_args guestfs_blockdev_getsz_args; + +struct guestfs_blockdev_getsz_ret { + quad_t sizeinsectors; +}; +typedef struct guestfs_blockdev_getsz_ret guestfs_blockdev_getsz_ret; + +struct guestfs_blockdev_getsize64_args { + char *device; +}; +typedef struct guestfs_blockdev_getsize64_args guestfs_blockdev_getsize64_args; + +struct guestfs_blockdev_getsize64_ret { + quad_t sizeinbytes; +}; +typedef struct guestfs_blockdev_getsize64_ret guestfs_blockdev_getsize64_ret; + +struct guestfs_blockdev_flushbufs_args { + char *device; +}; +typedef struct guestfs_blockdev_flushbufs_args guestfs_blockdev_flushbufs_args; + +struct guestfs_blockdev_rereadpt_args { + char *device; +}; +typedef struct guestfs_blockdev_rereadpt_args guestfs_blockdev_rereadpt_args; + +struct guestfs_upload_args { + char *remotefilename; +}; +typedef struct guestfs_upload_args guestfs_upload_args; + +struct guestfs_download_args { + char *remotefilename; +}; +typedef struct guestfs_download_args guestfs_download_args; + +struct guestfs_checksum_args { + char *csumtype; + char *path; +}; +typedef struct guestfs_checksum_args guestfs_checksum_args; + +struct guestfs_checksum_ret { + char *checksum; +}; +typedef struct guestfs_checksum_ret guestfs_checksum_ret; + +struct guestfs_tar_in_args { + char *directory; +}; +typedef struct guestfs_tar_in_args guestfs_tar_in_args; + +struct guestfs_tar_out_args { + char *directory; +}; +typedef struct guestfs_tar_out_args guestfs_tar_out_args; + +struct guestfs_tgz_in_args { + char *directory; +}; +typedef struct guestfs_tgz_in_args guestfs_tgz_in_args; + +struct guestfs_tgz_out_args { + char *directory; +}; +typedef struct guestfs_tgz_out_args guestfs_tgz_out_args; + +struct guestfs_mount_ro_args { + char *device; + char *mountpoint; +}; +typedef struct guestfs_mount_ro_args guestfs_mount_ro_args; + +struct guestfs_mount_options_args { + char *options; + char *device; + char *mountpoint; +}; +typedef struct guestfs_mount_options_args guestfs_mount_options_args; + +struct guestfs_mount_vfs_args { + char *options; + char *vfstype; + char *device; + char *mountpoint; +}; +typedef struct guestfs_mount_vfs_args guestfs_mount_vfs_args; + +struct guestfs_debug_args { + char *subcmd; + struct { + u_int extraargs_len; + str *extraargs_val; + } extraargs; +}; +typedef struct guestfs_debug_args guestfs_debug_args; + +struct guestfs_debug_ret { + char *result; +}; +typedef struct guestfs_debug_ret guestfs_debug_ret; + +struct guestfs_lvremove_args { + char *device; +}; +typedef struct guestfs_lvremove_args guestfs_lvremove_args; + +struct guestfs_vgremove_args { + char *vgname; +}; +typedef struct guestfs_vgremove_args guestfs_vgremove_args; + +struct guestfs_pvremove_args { + char *device; +}; +typedef struct guestfs_pvremove_args guestfs_pvremove_args; + +struct guestfs_set_e2label_args { + char *device; + char *label; +}; +typedef struct guestfs_set_e2label_args guestfs_set_e2label_args; + +struct guestfs_get_e2label_args { + char *device; +}; +typedef struct guestfs_get_e2label_args guestfs_get_e2label_args; + +struct guestfs_get_e2label_ret { + char *label; +}; +typedef struct guestfs_get_e2label_ret guestfs_get_e2label_ret; + +struct guestfs_set_e2uuid_args { + char *device; + char *uuid; +}; +typedef struct guestfs_set_e2uuid_args guestfs_set_e2uuid_args; + +struct guestfs_get_e2uuid_args { + char *device; +}; +typedef struct guestfs_get_e2uuid_args guestfs_get_e2uuid_args; + +struct guestfs_get_e2uuid_ret { + char *uuid; +}; +typedef struct guestfs_get_e2uuid_ret guestfs_get_e2uuid_ret; + +struct guestfs_fsck_args { + char *fstype; + char *device; +}; +typedef struct guestfs_fsck_args guestfs_fsck_args; + +struct guestfs_fsck_ret { + int status; +}; +typedef struct guestfs_fsck_ret guestfs_fsck_ret; + +struct guestfs_zero_args { + char *device; +}; +typedef struct guestfs_zero_args guestfs_zero_args; + +struct guestfs_grub_install_args { + char *root; + char *device; +}; +typedef struct guestfs_grub_install_args guestfs_grub_install_args; + +struct guestfs_cp_args { + char *src; + char *dest; +}; +typedef struct guestfs_cp_args guestfs_cp_args; + +struct guestfs_cp_a_args { + char *src; + char *dest; +}; +typedef struct guestfs_cp_a_args guestfs_cp_a_args; + +struct guestfs_mv_args { + char *src; + char *dest; +}; +typedef struct guestfs_mv_args guestfs_mv_args; + +struct guestfs_drop_caches_args { + int whattodrop; +}; +typedef struct guestfs_drop_caches_args guestfs_drop_caches_args; + +struct guestfs_dmesg_ret { + char *kmsgs; +}; +typedef struct guestfs_dmesg_ret guestfs_dmesg_ret; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -582,12 +844,52 @@ enum guestfs_procedure { GUESTFS_PROC_STAT = 52, GUESTFS_PROC_LSTAT = 53, GUESTFS_PROC_STATVFS = 54, - GUESTFS_PROC_dummy = 54 + 1, + GUESTFS_PROC_TUNE2FS_L = 55, + GUESTFS_PROC_BLOCKDEV_SETRO = 56, + GUESTFS_PROC_BLOCKDEV_SETRW = 57, + GUESTFS_PROC_BLOCKDEV_GETRO = 58, + GUESTFS_PROC_BLOCKDEV_GETSS = 59, + GUESTFS_PROC_BLOCKDEV_GETBSZ = 60, + GUESTFS_PROC_BLOCKDEV_SETBSZ = 61, + GUESTFS_PROC_BLOCKDEV_GETSZ = 62, + GUESTFS_PROC_BLOCKDEV_GETSIZE64 = 63, + GUESTFS_PROC_BLOCKDEV_FLUSHBUFS = 64, + GUESTFS_PROC_BLOCKDEV_REREADPT = 65, + GUESTFS_PROC_UPLOAD = 66, + GUESTFS_PROC_DOWNLOAD = 67, + GUESTFS_PROC_CHECKSUM = 68, + GUESTFS_PROC_TAR_IN = 69, + GUESTFS_PROC_TAR_OUT = 70, + GUESTFS_PROC_TGZ_IN = 71, + GUESTFS_PROC_TGZ_OUT = 72, + GUESTFS_PROC_MOUNT_RO = 73, + GUESTFS_PROC_MOUNT_OPTIONS = 74, + GUESTFS_PROC_MOUNT_VFS = 75, + GUESTFS_PROC_DEBUG = 76, + GUESTFS_PROC_LVREMOVE = 77, + GUESTFS_PROC_VGREMOVE = 78, + GUESTFS_PROC_PVREMOVE = 79, + GUESTFS_PROC_SET_E2LABEL = 80, + GUESTFS_PROC_GET_E2LABEL = 81, + GUESTFS_PROC_SET_E2UUID = 82, + GUESTFS_PROC_GET_E2UUID = 83, + GUESTFS_PROC_FSCK = 84, + GUESTFS_PROC_ZERO = 85, + GUESTFS_PROC_GRUB_INSTALL = 86, + GUESTFS_PROC_CP = 87, + GUESTFS_PROC_CP_A = 88, + GUESTFS_PROC_MV = 89, + GUESTFS_PROC_DROP_CACHES = 90, + GUESTFS_PROC_DMESG = 91, + GUESTFS_PROC_PING_DAEMON = 92, + GUESTFS_PROC_NR_PROCS = 92 + 1, }; typedef enum guestfs_procedure guestfs_procedure; #define GUESTFS_MESSAGE_MAX 4194304 #define GUESTFS_PROGRAM 0x2000F5F5 #define GUESTFS_PROTOCOL_VERSION 1 +#define GUESTFS_LAUNCH_FLAG 0xf5f55ff5 +#define GUESTFS_CANCEL_FLAG 0xffffeeee enum guestfs_message_direction { GUESTFS_DIRECTION_CALL = 0, @@ -603,7 +905,7 @@ typedef enum guestfs_message_status guestfs_message_status; #define GUESTFS_ERROR_LEN 256 struct guestfs_message_error { - char *error; + char *error_message; }; typedef struct guestfs_message_error guestfs_message_error; @@ -616,6 +918,16 @@ struct guestfs_message_header { guestfs_message_status status; }; typedef struct guestfs_message_header guestfs_message_header; +#define GUESTFS_MAX_CHUNK_SIZE 8192 + +struct guestfs_chunk { + int cancel; + struct { + u_int data_len; + char *data_val; + } data; +}; +typedef struct guestfs_chunk guestfs_chunk; /* the xdr functions */ @@ -696,11 +1008,60 @@ extern bool_t xdr_guestfs_lstat_args (XDR *, guestfs_lstat_args*); extern bool_t xdr_guestfs_lstat_ret (XDR *, guestfs_lstat_ret*); extern bool_t xdr_guestfs_statvfs_args (XDR *, guestfs_statvfs_args*); extern bool_t xdr_guestfs_statvfs_ret (XDR *, guestfs_statvfs_ret*); +extern bool_t xdr_guestfs_tune2fs_l_args (XDR *, guestfs_tune2fs_l_args*); +extern bool_t xdr_guestfs_tune2fs_l_ret (XDR *, guestfs_tune2fs_l_ret*); +extern bool_t xdr_guestfs_blockdev_setro_args (XDR *, guestfs_blockdev_setro_args*); +extern bool_t xdr_guestfs_blockdev_setrw_args (XDR *, guestfs_blockdev_setrw_args*); +extern bool_t xdr_guestfs_blockdev_getro_args (XDR *, guestfs_blockdev_getro_args*); +extern bool_t xdr_guestfs_blockdev_getro_ret (XDR *, guestfs_blockdev_getro_ret*); +extern bool_t xdr_guestfs_blockdev_getss_args (XDR *, guestfs_blockdev_getss_args*); +extern bool_t xdr_guestfs_blockdev_getss_ret (XDR *, guestfs_blockdev_getss_ret*); +extern bool_t xdr_guestfs_blockdev_getbsz_args (XDR *, guestfs_blockdev_getbsz_args*); +extern bool_t xdr_guestfs_blockdev_getbsz_ret (XDR *, guestfs_blockdev_getbsz_ret*); +extern bool_t xdr_guestfs_blockdev_setbsz_args (XDR *, guestfs_blockdev_setbsz_args*); +extern bool_t xdr_guestfs_blockdev_getsz_args (XDR *, guestfs_blockdev_getsz_args*); +extern bool_t xdr_guestfs_blockdev_getsz_ret (XDR *, guestfs_blockdev_getsz_ret*); +extern bool_t xdr_guestfs_blockdev_getsize64_args (XDR *, guestfs_blockdev_getsize64_args*); +extern bool_t xdr_guestfs_blockdev_getsize64_ret (XDR *, guestfs_blockdev_getsize64_ret*); +extern bool_t xdr_guestfs_blockdev_flushbufs_args (XDR *, guestfs_blockdev_flushbufs_args*); +extern bool_t xdr_guestfs_blockdev_rereadpt_args (XDR *, guestfs_blockdev_rereadpt_args*); +extern bool_t xdr_guestfs_upload_args (XDR *, guestfs_upload_args*); +extern bool_t xdr_guestfs_download_args (XDR *, guestfs_download_args*); +extern bool_t xdr_guestfs_checksum_args (XDR *, guestfs_checksum_args*); +extern bool_t xdr_guestfs_checksum_ret (XDR *, guestfs_checksum_ret*); +extern bool_t xdr_guestfs_tar_in_args (XDR *, guestfs_tar_in_args*); +extern bool_t xdr_guestfs_tar_out_args (XDR *, guestfs_tar_out_args*); +extern bool_t xdr_guestfs_tgz_in_args (XDR *, guestfs_tgz_in_args*); +extern bool_t xdr_guestfs_tgz_out_args (XDR *, guestfs_tgz_out_args*); +extern bool_t xdr_guestfs_mount_ro_args (XDR *, guestfs_mount_ro_args*); +extern bool_t xdr_guestfs_mount_options_args (XDR *, guestfs_mount_options_args*); +extern bool_t xdr_guestfs_mount_vfs_args (XDR *, guestfs_mount_vfs_args*); +extern bool_t xdr_guestfs_debug_args (XDR *, guestfs_debug_args*); +extern bool_t xdr_guestfs_debug_ret (XDR *, guestfs_debug_ret*); +extern bool_t xdr_guestfs_lvremove_args (XDR *, guestfs_lvremove_args*); +extern bool_t xdr_guestfs_vgremove_args (XDR *, guestfs_vgremove_args*); +extern bool_t xdr_guestfs_pvremove_args (XDR *, guestfs_pvremove_args*); +extern bool_t xdr_guestfs_set_e2label_args (XDR *, guestfs_set_e2label_args*); +extern bool_t xdr_guestfs_get_e2label_args (XDR *, guestfs_get_e2label_args*); +extern bool_t xdr_guestfs_get_e2label_ret (XDR *, guestfs_get_e2label_ret*); +extern bool_t xdr_guestfs_set_e2uuid_args (XDR *, guestfs_set_e2uuid_args*); +extern bool_t xdr_guestfs_get_e2uuid_args (XDR *, guestfs_get_e2uuid_args*); +extern bool_t xdr_guestfs_get_e2uuid_ret (XDR *, guestfs_get_e2uuid_ret*); +extern bool_t xdr_guestfs_fsck_args (XDR *, guestfs_fsck_args*); +extern bool_t xdr_guestfs_fsck_ret (XDR *, guestfs_fsck_ret*); +extern bool_t xdr_guestfs_zero_args (XDR *, guestfs_zero_args*); +extern bool_t xdr_guestfs_grub_install_args (XDR *, guestfs_grub_install_args*); +extern bool_t xdr_guestfs_cp_args (XDR *, guestfs_cp_args*); +extern bool_t xdr_guestfs_cp_a_args (XDR *, guestfs_cp_a_args*); +extern bool_t xdr_guestfs_mv_args (XDR *, guestfs_mv_args*); +extern bool_t xdr_guestfs_drop_caches_args (XDR *, guestfs_drop_caches_args*); +extern bool_t xdr_guestfs_dmesg_ret (XDR *, guestfs_dmesg_ret*); extern bool_t xdr_guestfs_procedure (XDR *, guestfs_procedure*); extern bool_t xdr_guestfs_message_direction (XDR *, guestfs_message_direction*); extern bool_t xdr_guestfs_message_status (XDR *, guestfs_message_status*); extern bool_t xdr_guestfs_message_error (XDR *, guestfs_message_error*); extern bool_t xdr_guestfs_message_header (XDR *, guestfs_message_header*); +extern bool_t xdr_guestfs_chunk (XDR *, guestfs_chunk*); #else /* K&R C */ extern bool_t xdr_str (); @@ -779,11 +1140,60 @@ extern bool_t xdr_guestfs_lstat_args (); extern bool_t xdr_guestfs_lstat_ret (); extern bool_t xdr_guestfs_statvfs_args (); extern bool_t xdr_guestfs_statvfs_ret (); +extern bool_t xdr_guestfs_tune2fs_l_args (); +extern bool_t xdr_guestfs_tune2fs_l_ret (); +extern bool_t xdr_guestfs_blockdev_setro_args (); +extern bool_t xdr_guestfs_blockdev_setrw_args (); +extern bool_t xdr_guestfs_blockdev_getro_args (); +extern bool_t xdr_guestfs_blockdev_getro_ret (); +extern bool_t xdr_guestfs_blockdev_getss_args (); +extern bool_t xdr_guestfs_blockdev_getss_ret (); +extern bool_t xdr_guestfs_blockdev_getbsz_args (); +extern bool_t xdr_guestfs_blockdev_getbsz_ret (); +extern bool_t xdr_guestfs_blockdev_setbsz_args (); +extern bool_t xdr_guestfs_blockdev_getsz_args (); +extern bool_t xdr_guestfs_blockdev_getsz_ret (); +extern bool_t xdr_guestfs_blockdev_getsize64_args (); +extern bool_t xdr_guestfs_blockdev_getsize64_ret (); +extern bool_t xdr_guestfs_blockdev_flushbufs_args (); +extern bool_t xdr_guestfs_blockdev_rereadpt_args (); +extern bool_t xdr_guestfs_upload_args (); +extern bool_t xdr_guestfs_download_args (); +extern bool_t xdr_guestfs_checksum_args (); +extern bool_t xdr_guestfs_checksum_ret (); +extern bool_t xdr_guestfs_tar_in_args (); +extern bool_t xdr_guestfs_tar_out_args (); +extern bool_t xdr_guestfs_tgz_in_args (); +extern bool_t xdr_guestfs_tgz_out_args (); +extern bool_t xdr_guestfs_mount_ro_args (); +extern bool_t xdr_guestfs_mount_options_args (); +extern bool_t xdr_guestfs_mount_vfs_args (); +extern bool_t xdr_guestfs_debug_args (); +extern bool_t xdr_guestfs_debug_ret (); +extern bool_t xdr_guestfs_lvremove_args (); +extern bool_t xdr_guestfs_vgremove_args (); +extern bool_t xdr_guestfs_pvremove_args (); +extern bool_t xdr_guestfs_set_e2label_args (); +extern bool_t xdr_guestfs_get_e2label_args (); +extern bool_t xdr_guestfs_get_e2label_ret (); +extern bool_t xdr_guestfs_set_e2uuid_args (); +extern bool_t xdr_guestfs_get_e2uuid_args (); +extern bool_t xdr_guestfs_get_e2uuid_ret (); +extern bool_t xdr_guestfs_fsck_args (); +extern bool_t xdr_guestfs_fsck_ret (); +extern bool_t xdr_guestfs_zero_args (); +extern bool_t xdr_guestfs_grub_install_args (); +extern bool_t xdr_guestfs_cp_args (); +extern bool_t xdr_guestfs_cp_a_args (); +extern bool_t xdr_guestfs_mv_args (); +extern bool_t xdr_guestfs_drop_caches_args (); +extern bool_t xdr_guestfs_dmesg_ret (); extern bool_t xdr_guestfs_procedure (); extern bool_t xdr_guestfs_message_direction (); extern bool_t xdr_guestfs_message_status (); extern bool_t xdr_guestfs_message_error (); extern bool_t xdr_guestfs_message_header (); +extern bool_t xdr_guestfs_chunk (); #endif /* K&R C */