Implement simple lvs/vgs/pvs commands.
[libguestfs.git] / src / guestfs_protocol.x
index 106bb60..b2fe535 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+typedef string str<>;
+
+struct guestfs_lvm_int_pv {
+  string pv_name<>;
+  opaque pv_uuid[32];
+  string pv_fmt<>;
+  hyper pv_size;
+  hyper dev_size;
+  hyper pv_free;
+  hyper pv_used;
+  string pv_attr<>;
+  hyper pv_pe_count;
+  hyper pv_pe_alloc_count;
+  string pv_tags<>;
+  hyper pe_start;
+  hyper pv_mda_count;
+  hyper pv_mda_free;
+};
+
+typedef struct guestfs_lvm_int_pv guestfs_lvm_int_pv_list<>;
+
+struct guestfs_lvm_int_vg {
+  string vg_name<>;
+  opaque vg_uuid[32];
+  string vg_fmt<>;
+  string vg_attr<>;
+  hyper vg_size;
+  hyper vg_free;
+  string vg_sysid<>;
+  hyper vg_extent_size;
+  hyper vg_extent_count;
+  hyper vg_free_count;
+  hyper max_lv;
+  hyper max_pv;
+  hyper pv_count;
+  hyper lv_count;
+  hyper snap_count;
+  hyper vg_seqno;
+  string vg_tags<>;
+  hyper vg_mda_count;
+  hyper vg_mda_free;
+};
+
+typedef struct guestfs_lvm_int_vg guestfs_lvm_int_vg_list<>;
+
+struct guestfs_lvm_int_lv {
+  string lv_name<>;
+  opaque lv_uuid[32];
+  string lv_attr<>;
+  hyper lv_major;
+  hyper lv_minor;
+  hyper lv_kernel_major;
+  hyper lv_kernel_minor;
+  hyper lv_size;
+  hyper seg_count;
+  string origin<>;
+  float snap_percent;
+  float copy_percent;
+  string move_pv<>;
+  string lv_tags<>;
+  string mirror_log<>;
+  string modules<>;
+};
+
+typedef struct guestfs_lvm_int_lv guestfs_lvm_int_lv_list<>;
+
 /* guestfs_mount */
 
 struct guestfs_mount_args {
@@ -34,10 +100,99 @@ struct guestfs_touch_args {
   string path<>;
 };
 
+/* guestfs_cat */
+
+struct guestfs_cat_args {
+  string path<>;
+};
+
+struct guestfs_cat_ret {
+  string content<>;
+};
+
+/* guestfs_ll */
+
+struct guestfs_ll_args {
+  string directory<>;
+};
+
+struct guestfs_ll_ret {
+  string listing<>;
+};
+
+/* guestfs_ls */
+
+struct guestfs_ls_args {
+  string directory<>;
+};
+
+struct guestfs_ls_ret {
+  str listing<>;
+};
+
+/* guestfs_list_devices */
+
+struct guestfs_list_devices_ret {
+  str devices<>;
+};
+
+/* guestfs_list_partitions */
+
+struct guestfs_list_partitions_ret {
+  str partitions<>;
+};
+
+/* guestfs_pvs */
+
+struct guestfs_pvs_ret {
+  str physvols<>;
+};
+
+/* guestfs_vgs */
+
+struct guestfs_vgs_ret {
+  str volgroups<>;
+};
+
+/* guestfs_lvs */
+
+struct guestfs_lvs_ret {
+  str logvols<>;
+};
+
+/* guestfs_pvs_full */
+
+struct guestfs_pvs_full_ret {
+  guestfs_lvm_int_pv_list physvols;
+};
+
+/* guestfs_vgs_full */
+
+struct guestfs_vgs_full_ret {
+  guestfs_lvm_int_vg_list volgroups;
+};
+
+/* guestfs_lvs_full */
+
+struct guestfs_lvs_full_ret {
+  guestfs_lvm_int_lv_list logvols;
+};
+
 enum guestfs_procedure {
   GUESTFS_PROC_MOUNT = 1,
   GUESTFS_PROC_SYNC = 2,
   GUESTFS_PROC_TOUCH = 3,
+  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
 };