Rename pvs -> pvs-full (etc), so we can add simple pvs (etc) 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_full */
146
147 struct guestfs_pvs_full_ret {
148   guestfs_lvm_int_pv_list physvols;
149 };
150
151 /* guestfs_vgs_full */
152
153 struct guestfs_vgs_full_ret {
154   guestfs_lvm_int_vg_list volgroups;
155 };
156
157 /* guestfs_lvs_full */
158
159 struct guestfs_lvs_full_ret {
160   guestfs_lvm_int_lv_list logvols;
161 };
162
163 enum guestfs_procedure {
164   GUESTFS_PROC_MOUNT = 1,
165   GUESTFS_PROC_SYNC = 2,
166   GUESTFS_PROC_TOUCH = 3,
167   GUESTFS_PROC_CAT = 4,
168   GUESTFS_PROC_LL = 5,
169   GUESTFS_PROC_LS = 6,
170   GUESTFS_PROC_LIST_DEVICES = 7,
171   GUESTFS_PROC_LIST_PARTITIONS = 8,
172   GUESTFS_PROC_PVS_FULL = 12,
173   GUESTFS_PROC_VGS_FULL = 13,
174   GUESTFS_PROC_LVS_FULL = 14,
175   GUESTFS_PROC_dummy
176 };
177
178 const GUESTFS_MESSAGE_MAX = 4194304;
179
180 const GUESTFS_PROGRAM = 0x2000F5F5;
181 const GUESTFS_PROTOCOL_VERSION = 1;
182
183 enum guestfs_message_direction {
184   GUESTFS_DIRECTION_CALL = 0,        /* client -> daemon */
185   GUESTFS_DIRECTION_REPLY = 1        /* daemon -> client */
186 };
187
188 enum guestfs_message_status {
189   GUESTFS_STATUS_OK = 0,
190   GUESTFS_STATUS_ERROR = 1
191 };
192
193 const GUESTFS_ERROR_LEN = 256;
194
195 struct guestfs_message_error {
196   string error<GUESTFS_ERROR_LEN>;   /* error message */
197 };
198
199 struct guestfs_message_header {
200   unsigned prog;                     /* GUESTFS_PROGRAM */
201   unsigned vers;                     /* GUESTFS_PROTOCOL_VERSION */
202   guestfs_procedure proc;            /* GUESTFS_PROC_x */
203   guestfs_message_direction direction;
204   unsigned serial;                   /* message serial number */
205   guestfs_message_status status;
206 };