X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs_protocol.h;h=4c3f1cd3131ccc158972e5a151cbeb6d8957b43e;hp=508bc4e3a23c0c39081c4d601e777f6592fce1d0;hb=170f262f0413de843af62b968f6d12c1c476ae7f;hpb=286841877f4223d67ec00b83e5a2aabfbb9e19ed diff --git a/src/guestfs_protocol.h b/src/guestfs_protocol.h index 508bc4e..4c3f1cd 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -92,6 +92,38 @@ typedef struct { guestfs_lvm_int_lv *guestfs_lvm_int_lv_list_val; } guestfs_lvm_int_lv_list; +struct guestfs_int_stat { + quad_t dev; + quad_t ino; + quad_t mode; + quad_t nlink; + quad_t uid; + quad_t gid; + quad_t rdev; + quad_t size; + quad_t blksize; + quad_t blocks; + quad_t atime; + quad_t mtime; + quad_t ctime; +}; +typedef struct guestfs_int_stat guestfs_int_stat; + +struct guestfs_int_statvfs { + quad_t bsize; + quad_t frsize; + quad_t blocks; + quad_t bfree; + quad_t bavail; + quad_t files; + quad_t ffree; + quad_t favail; + quad_t fsid; + quad_t flag; + quad_t namemax; +}; +typedef struct guestfs_int_statvfs guestfs_int_statvfs; + struct guestfs_mount_args { char *device; char *mountpoint; @@ -337,6 +369,263 @@ struct guestfs_chown_args { }; typedef struct guestfs_chown_args guestfs_chown_args; +struct guestfs_exists_args { + char *path; +}; +typedef struct guestfs_exists_args guestfs_exists_args; + +struct guestfs_exists_ret { + bool_t existsflag; +}; +typedef struct guestfs_exists_ret guestfs_exists_ret; + +struct guestfs_is_file_args { + char *path; +}; +typedef struct guestfs_is_file_args guestfs_is_file_args; + +struct guestfs_is_file_ret { + bool_t fileflag; +}; +typedef struct guestfs_is_file_ret guestfs_is_file_ret; + +struct guestfs_is_dir_args { + char *path; +}; +typedef struct guestfs_is_dir_args guestfs_is_dir_args; + +struct guestfs_is_dir_ret { + bool_t dirflag; +}; +typedef struct guestfs_is_dir_ret guestfs_is_dir_ret; + +struct guestfs_pvcreate_args { + char *device; +}; +typedef struct guestfs_pvcreate_args guestfs_pvcreate_args; + +struct guestfs_vgcreate_args { + char *volgroup; + struct { + u_int physvols_len; + str *physvols_val; + } physvols; +}; +typedef struct guestfs_vgcreate_args guestfs_vgcreate_args; + +struct guestfs_lvcreate_args { + char *logvol; + char *volgroup; + int mbytes; +}; +typedef struct guestfs_lvcreate_args guestfs_lvcreate_args; + +struct guestfs_mkfs_args { + char *fstype; + char *device; +}; +typedef struct guestfs_mkfs_args guestfs_mkfs_args; + +struct guestfs_sfdisk_args { + char *device; + int cyls; + int heads; + int sectors; + struct { + u_int lines_len; + str *lines_val; + } lines; +}; +typedef struct guestfs_sfdisk_args guestfs_sfdisk_args; + +struct guestfs_write_file_args { + char *path; + char *content; + int size; +}; +typedef struct guestfs_write_file_args guestfs_write_file_args; + +struct guestfs_umount_args { + char *pathordevice; +}; +typedef struct guestfs_umount_args guestfs_umount_args; + +struct guestfs_mounts_ret { + struct { + u_int devices_len; + str *devices_val; + } devices; +}; +typedef struct guestfs_mounts_ret guestfs_mounts_ret; + +struct guestfs_file_args { + char *path; +}; +typedef struct guestfs_file_args guestfs_file_args; + +struct guestfs_file_ret { + char *description; +}; +typedef struct guestfs_file_ret guestfs_file_ret; + +struct guestfs_command_args { + struct { + u_int arguments_len; + str *arguments_val; + } arguments; +}; +typedef struct guestfs_command_args guestfs_command_args; + +struct guestfs_command_ret { + char *output; +}; +typedef struct guestfs_command_ret guestfs_command_ret; + +struct guestfs_command_lines_args { + struct { + u_int arguments_len; + str *arguments_val; + } arguments; +}; +typedef struct guestfs_command_lines_args guestfs_command_lines_args; + +struct guestfs_command_lines_ret { + struct { + u_int lines_len; + str *lines_val; + } lines; +}; +typedef struct guestfs_command_lines_ret guestfs_command_lines_ret; + +struct guestfs_stat_args { + char *path; +}; +typedef struct guestfs_stat_args guestfs_stat_args; + +struct guestfs_stat_ret { + guestfs_int_stat statbuf; +}; +typedef struct guestfs_stat_ret guestfs_stat_ret; + +struct guestfs_lstat_args { + char *path; +}; +typedef struct guestfs_lstat_args guestfs_lstat_args; + +struct guestfs_lstat_ret { + guestfs_int_stat statbuf; +}; +typedef struct guestfs_lstat_ret guestfs_lstat_ret; + +struct guestfs_statvfs_args { + char *path; +}; +typedef struct guestfs_statvfs_args guestfs_statvfs_args; + +struct guestfs_statvfs_ret { + guestfs_int_statvfs statbuf; +}; +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; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, @@ -373,12 +662,46 @@ enum guestfs_procedure { GUESTFS_PROC_MKDIR_P = 33, GUESTFS_PROC_CHMOD = 34, GUESTFS_PROC_CHOWN = 35, - GUESTFS_PROC_dummy = 35 + 1, + GUESTFS_PROC_EXISTS = 36, + GUESTFS_PROC_IS_FILE = 37, + GUESTFS_PROC_IS_DIR = 38, + GUESTFS_PROC_PVCREATE = 39, + GUESTFS_PROC_VGCREATE = 40, + GUESTFS_PROC_LVCREATE = 41, + GUESTFS_PROC_MKFS = 42, + GUESTFS_PROC_SFDISK = 43, + GUESTFS_PROC_WRITE_FILE = 44, + GUESTFS_PROC_UMOUNT = 45, + GUESTFS_PROC_MOUNTS = 46, + GUESTFS_PROC_UMOUNT_ALL = 47, + GUESTFS_PROC_LVM_REMOVE_ALL = 48, + GUESTFS_PROC_FILE = 49, + GUESTFS_PROC_COMMAND = 50, + GUESTFS_PROC_COMMAND_LINES = 51, + GUESTFS_PROC_STAT = 52, + GUESTFS_PROC_LSTAT = 53, + GUESTFS_PROC_STATVFS = 54, + 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_NR_PROCS = 67 + 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, @@ -394,7 +717,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; @@ -407,6 +730,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 */ @@ -418,6 +751,8 @@ extern bool_t xdr_guestfs_lvm_int_vg (XDR *, guestfs_lvm_int_vg*); extern bool_t xdr_guestfs_lvm_int_vg_list (XDR *, guestfs_lvm_int_vg_list*); extern bool_t xdr_guestfs_lvm_int_lv (XDR *, guestfs_lvm_int_lv*); extern bool_t xdr_guestfs_lvm_int_lv_list (XDR *, guestfs_lvm_int_lv_list*); +extern bool_t xdr_guestfs_int_stat (XDR *, guestfs_int_stat*); +extern bool_t xdr_guestfs_int_statvfs (XDR *, guestfs_int_statvfs*); extern bool_t xdr_guestfs_mount_args (XDR *, guestfs_mount_args*); extern bool_t xdr_guestfs_touch_args (XDR *, guestfs_touch_args*); extern bool_t xdr_guestfs_cat_args (XDR *, guestfs_cat_args*); @@ -459,11 +794,57 @@ extern bool_t xdr_guestfs_mkdir_args (XDR *, guestfs_mkdir_args*); extern bool_t xdr_guestfs_mkdir_p_args (XDR *, guestfs_mkdir_p_args*); extern bool_t xdr_guestfs_chmod_args (XDR *, guestfs_chmod_args*); extern bool_t xdr_guestfs_chown_args (XDR *, guestfs_chown_args*); +extern bool_t xdr_guestfs_exists_args (XDR *, guestfs_exists_args*); +extern bool_t xdr_guestfs_exists_ret (XDR *, guestfs_exists_ret*); +extern bool_t xdr_guestfs_is_file_args (XDR *, guestfs_is_file_args*); +extern bool_t xdr_guestfs_is_file_ret (XDR *, guestfs_is_file_ret*); +extern bool_t xdr_guestfs_is_dir_args (XDR *, guestfs_is_dir_args*); +extern bool_t xdr_guestfs_is_dir_ret (XDR *, guestfs_is_dir_ret*); +extern bool_t xdr_guestfs_pvcreate_args (XDR *, guestfs_pvcreate_args*); +extern bool_t xdr_guestfs_vgcreate_args (XDR *, guestfs_vgcreate_args*); +extern bool_t xdr_guestfs_lvcreate_args (XDR *, guestfs_lvcreate_args*); +extern bool_t xdr_guestfs_mkfs_args (XDR *, guestfs_mkfs_args*); +extern bool_t xdr_guestfs_sfdisk_args (XDR *, guestfs_sfdisk_args*); +extern bool_t xdr_guestfs_write_file_args (XDR *, guestfs_write_file_args*); +extern bool_t xdr_guestfs_umount_args (XDR *, guestfs_umount_args*); +extern bool_t xdr_guestfs_mounts_ret (XDR *, guestfs_mounts_ret*); +extern bool_t xdr_guestfs_file_args (XDR *, guestfs_file_args*); +extern bool_t xdr_guestfs_file_ret (XDR *, guestfs_file_ret*); +extern bool_t xdr_guestfs_command_args (XDR *, guestfs_command_args*); +extern bool_t xdr_guestfs_command_ret (XDR *, guestfs_command_ret*); +extern bool_t xdr_guestfs_command_lines_args (XDR *, guestfs_command_lines_args*); +extern bool_t xdr_guestfs_command_lines_ret (XDR *, guestfs_command_lines_ret*); +extern bool_t xdr_guestfs_stat_args (XDR *, guestfs_stat_args*); +extern bool_t xdr_guestfs_stat_ret (XDR *, guestfs_stat_ret*); +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_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 (); @@ -473,6 +854,8 @@ extern bool_t xdr_guestfs_lvm_int_vg (); extern bool_t xdr_guestfs_lvm_int_vg_list (); extern bool_t xdr_guestfs_lvm_int_lv (); extern bool_t xdr_guestfs_lvm_int_lv_list (); +extern bool_t xdr_guestfs_int_stat (); +extern bool_t xdr_guestfs_int_statvfs (); extern bool_t xdr_guestfs_mount_args (); extern bool_t xdr_guestfs_touch_args (); extern bool_t xdr_guestfs_cat_args (); @@ -514,11 +897,57 @@ extern bool_t xdr_guestfs_mkdir_args (); extern bool_t xdr_guestfs_mkdir_p_args (); extern bool_t xdr_guestfs_chmod_args (); extern bool_t xdr_guestfs_chown_args (); +extern bool_t xdr_guestfs_exists_args (); +extern bool_t xdr_guestfs_exists_ret (); +extern bool_t xdr_guestfs_is_file_args (); +extern bool_t xdr_guestfs_is_file_ret (); +extern bool_t xdr_guestfs_is_dir_args (); +extern bool_t xdr_guestfs_is_dir_ret (); +extern bool_t xdr_guestfs_pvcreate_args (); +extern bool_t xdr_guestfs_vgcreate_args (); +extern bool_t xdr_guestfs_lvcreate_args (); +extern bool_t xdr_guestfs_mkfs_args (); +extern bool_t xdr_guestfs_sfdisk_args (); +extern bool_t xdr_guestfs_write_file_args (); +extern bool_t xdr_guestfs_umount_args (); +extern bool_t xdr_guestfs_mounts_ret (); +extern bool_t xdr_guestfs_file_args (); +extern bool_t xdr_guestfs_file_ret (); +extern bool_t xdr_guestfs_command_args (); +extern bool_t xdr_guestfs_command_ret (); +extern bool_t xdr_guestfs_command_lines_args (); +extern bool_t xdr_guestfs_command_lines_ret (); +extern bool_t xdr_guestfs_stat_args (); +extern bool_t xdr_guestfs_stat_ret (); +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_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 */