X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs_protocol.h;h=9a7187dd84743b3f1566ca7cf2bd3099c4633ee3;hp=f8c804390f92516741828b43bb17a4bc885b5e4e;hb=6085137e65cb63aaf725207f2929a571d1149420;hpb=d134143b55ecb5f7e6f74318acbf04f9e1370af6 diff --git a/src/guestfs_protocol.h b/src/guestfs_protocol.h index f8c8043..9a7187d 100644 --- a/src/guestfs_protocol.h +++ b/src/guestfs_protocol.h @@ -14,6 +14,84 @@ extern "C" { #endif +typedef char *str; + +struct guestfs_lvm_int_pv { + char *pv_name; + char pv_uuid[32]; + char *pv_fmt; + quad_t pv_size; + quad_t dev_size; + quad_t pv_free; + quad_t pv_used; + char *pv_attr; + quad_t pv_pe_count; + quad_t pv_pe_alloc_count; + char *pv_tags; + quad_t pe_start; + quad_t pv_mda_count; + quad_t pv_mda_free; +}; +typedef struct guestfs_lvm_int_pv guestfs_lvm_int_pv; + +typedef struct { + u_int guestfs_lvm_int_pv_list_len; + guestfs_lvm_int_pv *guestfs_lvm_int_pv_list_val; +} guestfs_lvm_int_pv_list; + +struct guestfs_lvm_int_vg { + char *vg_name; + char vg_uuid[32]; + char *vg_fmt; + char *vg_attr; + quad_t vg_size; + quad_t vg_free; + char *vg_sysid; + quad_t vg_extent_size; + quad_t vg_extent_count; + quad_t vg_free_count; + quad_t max_lv; + quad_t max_pv; + quad_t pv_count; + quad_t lv_count; + quad_t snap_count; + quad_t vg_seqno; + char *vg_tags; + quad_t vg_mda_count; + quad_t vg_mda_free; +}; +typedef struct guestfs_lvm_int_vg guestfs_lvm_int_vg; + +typedef struct { + u_int guestfs_lvm_int_vg_list_len; + guestfs_lvm_int_vg *guestfs_lvm_int_vg_list_val; +} guestfs_lvm_int_vg_list; + +struct guestfs_lvm_int_lv { + char *lv_name; + char lv_uuid[32]; + char *lv_attr; + quad_t lv_major; + quad_t lv_minor; + quad_t lv_kernel_major; + quad_t lv_kernel_minor; + quad_t lv_size; + quad_t seg_count; + char *origin; + float snap_percent; + float copy_percent; + char *move_pv; + char *lv_tags; + char *mirror_log; + char *modules; +}; +typedef struct guestfs_lvm_int_lv guestfs_lvm_int_lv; + +typedef struct { + u_int guestfs_lvm_int_lv_list_len; + guestfs_lvm_int_lv *guestfs_lvm_int_lv_list_val; +} guestfs_lvm_int_lv_list; + struct guestfs_mount_args { char *device; char *mountpoint; @@ -25,11 +103,110 @@ struct guestfs_touch_args { }; typedef struct guestfs_touch_args guestfs_touch_args; +struct guestfs_cat_args { + char *path; +}; +typedef struct guestfs_cat_args guestfs_cat_args; + +struct guestfs_cat_ret { + char *content; +}; +typedef struct guestfs_cat_ret guestfs_cat_ret; + +struct guestfs_ll_args { + char *directory; +}; +typedef struct guestfs_ll_args guestfs_ll_args; + +struct guestfs_ll_ret { + char *listing; +}; +typedef struct guestfs_ll_ret guestfs_ll_ret; + +struct guestfs_ls_args { + char *directory; +}; +typedef struct guestfs_ls_args guestfs_ls_args; + +struct guestfs_ls_ret { + struct { + u_int listing_len; + str *listing_val; + } listing; +}; +typedef struct guestfs_ls_ret guestfs_ls_ret; + +struct guestfs_list_devices_ret { + struct { + u_int devices_len; + str *devices_val; + } devices; +}; +typedef struct guestfs_list_devices_ret guestfs_list_devices_ret; + +struct guestfs_list_partitions_ret { + struct { + u_int partitions_len; + str *partitions_val; + } partitions; +}; +typedef struct guestfs_list_partitions_ret guestfs_list_partitions_ret; + +struct guestfs_pvs_ret { + struct { + u_int physvols_len; + str *physvols_val; + } physvols; +}; +typedef struct guestfs_pvs_ret guestfs_pvs_ret; + +struct guestfs_vgs_ret { + struct { + u_int volgroups_len; + str *volgroups_val; + } volgroups; +}; +typedef struct guestfs_vgs_ret guestfs_vgs_ret; + +struct guestfs_lvs_ret { + struct { + u_int logvols_len; + str *logvols_val; + } logvols; +}; +typedef struct guestfs_lvs_ret guestfs_lvs_ret; + +struct guestfs_pvs_full_ret { + guestfs_lvm_int_pv_list physvols; +}; +typedef struct guestfs_pvs_full_ret guestfs_pvs_full_ret; + +struct guestfs_vgs_full_ret { + guestfs_lvm_int_vg_list volgroups; +}; +typedef struct guestfs_vgs_full_ret guestfs_vgs_full_ret; + +struct guestfs_lvs_full_ret { + guestfs_lvm_int_lv_list logvols; +}; +typedef struct guestfs_lvs_full_ret guestfs_lvs_full_ret; + enum guestfs_procedure { GUESTFS_PROC_MOUNT = 1, GUESTFS_PROC_SYNC = 2, GUESTFS_PROC_TOUCH = 3, - GUESTFS_PROC_dummy = 3 + 1, + GUESTFS_PROC_CAT = 4, + GUESTFS_PROC_LL = 5, + GUESTFS_PROC_LS = 6, + GUESTFS_PROC_LIST_DEVICES = 7, + GUESTFS_PROC_LIST_PARTITIONS = 8, + GUESTFS_PROC_PVS = 9, + GUESTFS_PROC_VGS = 10, + GUESTFS_PROC_LVS = 11, + GUESTFS_PROC_PVS_FULL = 12, + GUESTFS_PROC_VGS_FULL = 13, + GUESTFS_PROC_LVS_FULL = 14, + GUESTFS_PROC_dummy = 14 + 1, }; typedef enum guestfs_procedure guestfs_procedure; #define GUESTFS_MESSAGE_MAX 4194304 @@ -67,8 +244,29 @@ typedef struct guestfs_message_header guestfs_message_header; /* the xdr functions */ #if defined(__STDC__) || defined(__cplusplus) +extern bool_t xdr_str (XDR *, str*); +extern bool_t xdr_guestfs_lvm_int_pv (XDR *, guestfs_lvm_int_pv*); +extern bool_t xdr_guestfs_lvm_int_pv_list (XDR *, guestfs_lvm_int_pv_list*); +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_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*); +extern bool_t xdr_guestfs_cat_ret (XDR *, guestfs_cat_ret*); +extern bool_t xdr_guestfs_ll_args (XDR *, guestfs_ll_args*); +extern bool_t xdr_guestfs_ll_ret (XDR *, guestfs_ll_ret*); +extern bool_t xdr_guestfs_ls_args (XDR *, guestfs_ls_args*); +extern bool_t xdr_guestfs_ls_ret (XDR *, guestfs_ls_ret*); +extern bool_t xdr_guestfs_list_devices_ret (XDR *, guestfs_list_devices_ret*); +extern bool_t xdr_guestfs_list_partitions_ret (XDR *, guestfs_list_partitions_ret*); +extern bool_t xdr_guestfs_pvs_ret (XDR *, guestfs_pvs_ret*); +extern bool_t xdr_guestfs_vgs_ret (XDR *, guestfs_vgs_ret*); +extern bool_t xdr_guestfs_lvs_ret (XDR *, guestfs_lvs_ret*); +extern bool_t xdr_guestfs_pvs_full_ret (XDR *, guestfs_pvs_full_ret*); +extern bool_t xdr_guestfs_vgs_full_ret (XDR *, guestfs_vgs_full_ret*); +extern bool_t xdr_guestfs_lvs_full_ret (XDR *, guestfs_lvs_full_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*); @@ -76,8 +274,29 @@ extern bool_t xdr_guestfs_message_error (XDR *, guestfs_message_error*); extern bool_t xdr_guestfs_message_header (XDR *, guestfs_message_header*); #else /* K&R C */ +extern bool_t xdr_str (); +extern bool_t xdr_guestfs_lvm_int_pv (); +extern bool_t xdr_guestfs_lvm_int_pv_list (); +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_mount_args (); extern bool_t xdr_guestfs_touch_args (); +extern bool_t xdr_guestfs_cat_args (); +extern bool_t xdr_guestfs_cat_ret (); +extern bool_t xdr_guestfs_ll_args (); +extern bool_t xdr_guestfs_ll_ret (); +extern bool_t xdr_guestfs_ls_args (); +extern bool_t xdr_guestfs_ls_ret (); +extern bool_t xdr_guestfs_list_devices_ret (); +extern bool_t xdr_guestfs_list_partitions_ret (); +extern bool_t xdr_guestfs_pvs_ret (); +extern bool_t xdr_guestfs_vgs_ret (); +extern bool_t xdr_guestfs_lvs_ret (); +extern bool_t xdr_guestfs_pvs_full_ret (); +extern bool_t xdr_guestfs_vgs_full_ret (); +extern bool_t xdr_guestfs_lvs_full_ret (); extern bool_t xdr_guestfs_procedure (); extern bool_t xdr_guestfs_message_direction (); extern bool_t xdr_guestfs_message_status ();