Implement simple lvs/vgs/pvs commands.
[libguestfs.git] / src / guestfs_protocol.x
1 /* libguestfs generated file
2  * WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
3  * ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
4  *
5  * Copyright (C) 2009 Red Hat Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21
22 typedef string str<>;
23
24 struct guestfs_lvm_int_pv {
25   string pv_name<>;
26   opaque pv_uuid[32];
27   string pv_fmt<>;
28   hyper pv_size;
29   hyper dev_size;
30   hyper pv_free;
31   hyper pv_used;
32   string pv_attr<>;
33   hyper pv_pe_count;
34   hyper pv_pe_alloc_count;
35   string pv_tags<>;
36   hyper pe_start;
37   hyper pv_mda_count;
38   hyper pv_mda_free;
39 };
40
41 typedef struct guestfs_lvm_int_pv guestfs_lvm_int_pv_list<>;
42
43 struct guestfs_lvm_int_vg {
44   string vg_name<>;
45   opaque vg_uuid[32];
46   string vg_fmt<>;
47   string vg_attr<>;
48   hyper vg_size;
49   hyper vg_free;
50   string vg_sysid<>;
51   hyper vg_extent_size;
52   hyper vg_extent_count;
53   hyper vg_free_count;
54   hyper max_lv;
55   hyper max_pv;
56   hyper pv_count;
57   hyper lv_count;
58   hyper snap_count;
59   hyper vg_seqno;
60   string vg_tags<>;
61   hyper vg_mda_count;
62   hyper vg_mda_free;
63 };
64
65 typedef struct guestfs_lvm_int_vg guestfs_lvm_int_vg_list<>;
66
67 struct guestfs_lvm_int_lv {
68   string lv_name<>;
69   opaque lv_uuid[32];
70   string lv_attr<>;
71   hyper lv_major;
72   hyper lv_minor;
73   hyper lv_kernel_major;
74   hyper lv_kernel_minor;
75   hyper lv_size;
76   hyper seg_count;
77   string origin<>;
78   float snap_percent;
79   float copy_percent;
80   string move_pv<>;
81   string lv_tags<>;
82   string mirror_log<>;
83   string modules<>;
84 };
85
86 typedef struct guestfs_lvm_int_lv guestfs_lvm_int_lv_list<>;
87
88 /* guestfs_mount */
89
90 struct guestfs_mount_args {
91   string device<>;
92   string mountpoint<>;
93 };
94
95 /* guestfs_sync */
96
97 /* guestfs_touch */
98
99 struct guestfs_touch_args {
100   string path<>;
101 };
102
103 /* guestfs_cat */
104
105 struct guestfs_cat_args {
106   string path<>;
107 };
108
109 struct guestfs_cat_ret {
110   string content<>;
111 };
112
113 /* guestfs_ll */
114
115 struct guestfs_ll_args {
116   string directory<>;
117 };
118
119 struct guestfs_ll_ret {
120   string listing<>;
121 };
122
123 /* guestfs_ls */
124
125 struct guestfs_ls_args {
126   string directory<>;
127 };
128
129 struct guestfs_ls_ret {
130   str listing<>;
131 };
132
133 /* guestfs_list_devices */
134
135 struct guestfs_list_devices_ret {
136   str devices<>;
137 };
138
139 /* guestfs_list_partitions */
140
141 struct guestfs_list_partitions_ret {
142   str partitions<>;
143 };
144
145 /* guestfs_pvs */
146
147 struct guestfs_pvs_ret {
148   str physvols<>;
149 };
150
151 /* guestfs_vgs */
152
153 struct guestfs_vgs_ret {
154   str volgroups<>;
155 };
156
157 /* guestfs_lvs */
158
159 struct guestfs_lvs_ret {
160   str logvols<>;
161 };
162
163 /* guestfs_pvs_full */
164
165 struct guestfs_pvs_full_ret {
166   guestfs_lvm_int_pv_list physvols;
167 };
168
169 /* guestfs_vgs_full */
170
171 struct guestfs_vgs_full_ret {
172   guestfs_lvm_int_vg_list volgroups;
173 };
174
175 /* guestfs_lvs_full */
176
177 struct guestfs_lvs_full_ret {
178   guestfs_lvm_int_lv_list logvols;
179 };
180
181 enum guestfs_procedure {
182   GUESTFS_PROC_MOUNT = 1,
183   GUESTFS_PROC_SYNC = 2,
184   GUESTFS_PROC_TOUCH = 3,
185   GUESTFS_PROC_CAT = 4,
186   GUESTFS_PROC_LL = 5,
187   GUESTFS_PROC_LS = 6,
188   GUESTFS_PROC_LIST_DEVICES = 7,
189   GUESTFS_PROC_LIST_PARTITIONS = 8,
190   GUESTFS_PROC_PVS = 9,
191   GUESTFS_PROC_VGS = 10,
192   GUESTFS_PROC_LVS = 11,
193   GUESTFS_PROC_PVS_FULL = 12,
194   GUESTFS_PROC_VGS_FULL = 13,
195   GUESTFS_PROC_LVS_FULL = 14,
196   GUESTFS_PROC_dummy
197 };
198
199 const GUESTFS_MESSAGE_MAX = 4194304;
200
201 const GUESTFS_PROGRAM = 0x2000F5F5;
202 const GUESTFS_PROTOCOL_VERSION = 1;
203
204 enum guestfs_message_direction {
205   GUESTFS_DIRECTION_CALL = 0,        /* client -> daemon */
206   GUESTFS_DIRECTION_REPLY = 1        /* daemon -> client */
207 };
208
209 enum guestfs_message_status {
210   GUESTFS_STATUS_OK = 0,
211   GUESTFS_STATUS_ERROR = 1
212 };
213
214 const GUESTFS_ERROR_LEN = 256;
215
216 struct guestfs_message_error {
217   string error<GUESTFS_ERROR_LEN>;   /* error message */
218 };
219
220 struct guestfs_message_header {
221   unsigned prog;                     /* GUESTFS_PROGRAM */
222   unsigned vers;                     /* GUESTFS_PROTOCOL_VERSION */
223   guestfs_procedure proc;            /* GUESTFS_PROC_x */
224   guestfs_message_direction direction;
225   unsigned serial;                   /* message serial number */
226   guestfs_message_status status;
227 };