X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Fguestfs_protocol.h;h=8803b3d7c71afaf22a3f769e5b794db39c5a8230;hb=d660085d7aff275b720ef4efb28ecafd7d7209e5;hp=822d96007ebaefbba4134037b161403d9d0aee4d;hpb=b348eacbc4d84337856cf7cca518d61c63e92631;p=libguestfs.git diff --git a/src/guestfs_protocol.h b/src/guestfs_protocol.h index 822d960..8803b3d 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -616,6 +616,68 @@ struct guestfs_blockdev_rereadpt_args { }; 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; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -682,12 +744,24 @@ enum guestfs_procedure { GUESTFS_PROC_BLOCKDEV_GETSIZE64 = 63, GUESTFS_PROC_BLOCKDEV_FLUSHBUFS = 64, GUESTFS_PROC_BLOCKDEV_REREADPT = 65, - GUESTFS_PROC_dummy = 65 + 1, + 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_NR_PROCS = 75 + 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, @@ -703,7 +777,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; @@ -716,6 +790,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 */ @@ -813,11 +897,23 @@ extern bool_t xdr_guestfs_blockdev_getsize64_args (XDR *, guestfs_blockdev_gets 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_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 (); @@ -913,11 +1009,23 @@ 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_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 */