virshtest: Adapt 'virsh-vcpupin' test
[libvirt.git] / src / driver-storage.h
blobb2cd7e6144ce89fa23400090cfc7d63468291f24
1 /*
2 * driver-storage.h: entry points for storage drivers
4 * Copyright (C) 2006-2014 Red Hat, Inc.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library. If not, see
18 * <http://www.gnu.org/licenses/>.
21 #pragma once
23 #ifndef __VIR_DRIVER_H_INCLUDES___
24 # error "Don't include this file directly, only use driver.h"
25 #endif
27 typedef int
28 (*virDrvConnectNumOfStoragePools)(virConnectPtr conn);
30 typedef int
31 (*virDrvConnectListStoragePools)(virConnectPtr conn,
32 char **const names,
33 int maxnames);
35 typedef int
36 (*virDrvConnectNumOfDefinedStoragePools)(virConnectPtr conn);
38 typedef int
39 (*virDrvConnectListDefinedStoragePools)(virConnectPtr conn,
40 char **const names,
41 int maxnames);
43 typedef int
44 (*virDrvConnectListAllStoragePools)(virConnectPtr conn,
45 virStoragePoolPtr **pools,
46 unsigned int flags);
48 typedef char *
49 (*virDrvConnectFindStoragePoolSources)(virConnectPtr conn,
50 const char *type,
51 const char *srcSpec,
52 unsigned int flags);
54 typedef char *
55 (*virDrvConnectGetStoragePoolCapabilities)(virConnectPtr conn,
56 unsigned int flags);
58 typedef virStoragePoolPtr
59 (*virDrvStoragePoolLookupByName)(virConnectPtr conn,
60 const char *name);
62 typedef virStoragePoolPtr
63 (*virDrvStoragePoolLookupByUUID)(virConnectPtr conn,
64 const unsigned char *uuid);
66 typedef virStoragePoolPtr
67 (*virDrvStoragePoolLookupByVolume)(virStorageVolPtr vol);
69 typedef virStoragePoolPtr
70 (*virDrvStoragePoolLookupByTargetPath)(virConnectPtr conn,
71 const char *path);
73 typedef virStoragePoolPtr
74 (*virDrvStoragePoolCreateXML)(virConnectPtr conn,
75 const char *xmlDesc,
76 unsigned int flags);
78 typedef virStoragePoolPtr
79 (*virDrvStoragePoolDefineXML)(virConnectPtr conn,
80 const char *xmlDesc,
81 unsigned int flags);
83 typedef int
84 (*virDrvStoragePoolUndefine)(virStoragePoolPtr pool);
86 typedef int
87 (*virDrvStoragePoolBuild)(virStoragePoolPtr pool,
88 unsigned int flags);
90 typedef int
91 (*virDrvStoragePoolCreate)(virStoragePoolPtr pool,
92 unsigned int flags);
94 typedef int
95 (*virDrvStoragePoolDestroy)(virStoragePoolPtr pool);
97 typedef int
98 (*virDrvStoragePoolDelete)(virStoragePoolPtr pool,
99 unsigned int flags);
101 typedef int
102 (*virDrvStoragePoolRefresh)(virStoragePoolPtr pool,
103 unsigned int flags);
105 typedef int
106 (*virDrvStoragePoolGetInfo)(virStoragePoolPtr vol,
107 virStoragePoolInfoPtr info);
109 typedef char *
110 (*virDrvStoragePoolGetXMLDesc)(virStoragePoolPtr pool,
111 unsigned int flags);
113 typedef int
114 (*virDrvStoragePoolGetAutostart)(virStoragePoolPtr pool,
115 int *autostart);
117 typedef int
118 (*virDrvStoragePoolSetAutostart)(virStoragePoolPtr pool,
119 int autostart);
121 typedef int
122 (*virDrvStoragePoolNumOfVolumes)(virStoragePoolPtr pool);
124 typedef int
125 (*virDrvStoragePoolListVolumes)(virStoragePoolPtr pool,
126 char **const names,
127 int maxnames);
129 typedef int
130 (*virDrvStoragePoolListAllVolumes)(virStoragePoolPtr pool,
131 virStorageVolPtr **vols,
132 unsigned int flags);
134 typedef virStorageVolPtr
135 (*virDrvStorageVolLookupByName)(virStoragePoolPtr pool,
136 const char *name);
138 typedef virStorageVolPtr
139 (*virDrvStorageVolLookupByKey)(virConnectPtr pool,
140 const char *key);
142 typedef virStorageVolPtr
143 (*virDrvStorageVolLookupByPath)(virConnectPtr pool,
144 const char *path);
146 typedef virStorageVolPtr
147 (*virDrvStorageVolCreateXML)(virStoragePoolPtr pool,
148 const char *xmldesc,
149 unsigned int flags);
151 typedef int
152 (*virDrvStorageVolDelete)(virStorageVolPtr vol,
153 unsigned int flags);
155 typedef int
156 (*virDrvStorageVolWipe)(virStorageVolPtr vol,
157 unsigned int flags);
159 typedef int
160 (*virDrvStorageVolWipePattern)(virStorageVolPtr vol,
161 unsigned int algorithm,
162 unsigned int flags);
164 typedef int
165 (*virDrvStorageVolGetInfo)(virStorageVolPtr vol,
166 virStorageVolInfoPtr info);
168 typedef int
169 (*virDrvStorageVolGetInfoFlags)(virStorageVolPtr vol,
170 virStorageVolInfoPtr info,
171 unsigned int flags);
173 typedef char *
174 (*virDrvStorageVolGetXMLDesc)(virStorageVolPtr pool,
175 unsigned int flags);
177 typedef char *
178 (*virDrvStorageVolGetPath)(virStorageVolPtr vol);
180 typedef virStorageVolPtr
181 (*virDrvStorageVolCreateXMLFrom)(virStoragePoolPtr pool,
182 const char *xmldesc,
183 virStorageVolPtr clonevol,
184 unsigned int flags);
186 typedef int
187 (*virDrvStorageVolDownload)(virStorageVolPtr vol,
188 virStreamPtr stream,
189 unsigned long long offset,
190 unsigned long long length,
191 unsigned int flags);
193 typedef int
194 (*virDrvStorageVolUpload)(virStorageVolPtr vol,
195 virStreamPtr stream,
196 unsigned long long offset,
197 unsigned long long length,
198 unsigned int flags);
200 typedef int
201 (*virDrvStorageVolResize)(virStorageVolPtr vol,
202 unsigned long long capacity,
203 unsigned int flags);
205 typedef int
206 (*virDrvStoragePoolIsActive)(virStoragePoolPtr pool);
208 typedef int
209 (*virDrvStoragePoolIsPersistent)(virStoragePoolPtr pool);
211 typedef int
212 (*virDrvConnectStoragePoolEventRegisterAny)(virConnectPtr conn,
213 virStoragePoolPtr pool,
214 int eventID,
215 virConnectStoragePoolEventGenericCallback cb,
216 void *opaque,
217 virFreeCallback freecb);
219 typedef int
220 (*virDrvConnectStoragePoolEventDeregisterAny)(virConnectPtr conn,
221 int callbackID);
224 typedef struct _virStorageDriver virStorageDriver;
227 * _virStorageDriver:
229 * Structure associated to a storage driver, defining the various
230 * entry points for it.
232 struct _virStorageDriver {
233 const char *name; /* the name of the driver */
234 virDrvConnectNumOfStoragePools connectNumOfStoragePools;
235 virDrvConnectListStoragePools connectListStoragePools;
236 virDrvConnectNumOfDefinedStoragePools connectNumOfDefinedStoragePools;
237 virDrvConnectListDefinedStoragePools connectListDefinedStoragePools;
238 virDrvConnectListAllStoragePools connectListAllStoragePools;
239 virDrvConnectFindStoragePoolSources connectFindStoragePoolSources;
240 virDrvConnectStoragePoolEventRegisterAny connectStoragePoolEventRegisterAny;
241 virDrvConnectStoragePoolEventDeregisterAny connectStoragePoolEventDeregisterAny;
242 virDrvConnectGetStoragePoolCapabilities connectGetStoragePoolCapabilities;
243 virDrvStoragePoolLookupByName storagePoolLookupByName;
244 virDrvStoragePoolLookupByUUID storagePoolLookupByUUID;
245 virDrvStoragePoolLookupByVolume storagePoolLookupByVolume;
246 virDrvStoragePoolLookupByTargetPath storagePoolLookupByTargetPath;
247 virDrvStoragePoolCreateXML storagePoolCreateXML;
248 virDrvStoragePoolDefineXML storagePoolDefineXML;
249 virDrvStoragePoolBuild storagePoolBuild;
250 virDrvStoragePoolUndefine storagePoolUndefine;
251 virDrvStoragePoolCreate storagePoolCreate;
252 virDrvStoragePoolDestroy storagePoolDestroy;
253 virDrvStoragePoolDelete storagePoolDelete;
254 virDrvStoragePoolRefresh storagePoolRefresh;
255 virDrvStoragePoolGetInfo storagePoolGetInfo;
256 virDrvStoragePoolGetXMLDesc storagePoolGetXMLDesc;
257 virDrvStoragePoolGetAutostart storagePoolGetAutostart;
258 virDrvStoragePoolSetAutostart storagePoolSetAutostart;
259 virDrvStoragePoolNumOfVolumes storagePoolNumOfVolumes;
260 virDrvStoragePoolListVolumes storagePoolListVolumes;
261 virDrvStoragePoolListAllVolumes storagePoolListAllVolumes;
262 virDrvStorageVolLookupByName storageVolLookupByName;
263 virDrvStorageVolLookupByKey storageVolLookupByKey;
264 virDrvStorageVolLookupByPath storageVolLookupByPath;
265 virDrvStorageVolCreateXML storageVolCreateXML;
266 virDrvStorageVolCreateXMLFrom storageVolCreateXMLFrom;
267 virDrvStorageVolDownload storageVolDownload;
268 virDrvStorageVolUpload storageVolUpload;
269 virDrvStorageVolDelete storageVolDelete;
270 virDrvStorageVolWipe storageVolWipe;
271 virDrvStorageVolWipePattern storageVolWipePattern;
272 virDrvStorageVolGetInfo storageVolGetInfo;
273 virDrvStorageVolGetInfoFlags storageVolGetInfoFlags;
274 virDrvStorageVolGetXMLDesc storageVolGetXMLDesc;
275 virDrvStorageVolGetPath storageVolGetPath;
276 virDrvStorageVolResize storageVolResize;
277 virDrvStoragePoolIsActive storagePoolIsActive;
278 virDrvStoragePoolIsPersistent storagePoolIsPersistent;