1#![allow(non_camel_case_types)]
2extern crate libc;
3
4use self::libc::{int64_t, size_t, ssize_t, time_t, timeval, uint8_t, uint32_t, uint64_t};
5
6pub type Enum_Unnamed1 = ::libc::c_uint;
7pub const LIBRADOS_OP_FLAG_EXCL: ::libc::c_uint = 1;
8pub const LIBRADOS_OP_FLAG_FAILOK: ::libc::c_uint = 2;
9pub const LIBRADOS_OP_FLAG_FADVISE_RANDOM: ::libc::c_uint = 4;
10pub const LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL: ::libc::c_uint = 8;
11pub const LIBRADOS_OP_FLAG_FADVISE_WILLNEED: ::libc::c_uint = 16;
12pub const LIBRADOS_OP_FLAG_FADVISE_DONTNEED: ::libc::c_uint = 32;
13pub const LIBRADOS_OP_FLAG_FADVISE_NOCACHE: ::libc::c_uint = 64;
14
15pub type Enum_Unnamed2 = ::libc::c_uint;
16pub const LIBRADOS_CMPXATTR_OP_EQ: ::libc::c_uint = 1;
17pub const LIBRADOS_CMPXATTR_OP_NE: ::libc::c_uint = 2;
18pub const LIBRADOS_CMPXATTR_OP_GT: ::libc::c_uint = 3;
19pub const LIBRADOS_CMPXATTR_OP_GTE: ::libc::c_uint = 4;
20pub const LIBRADOS_CMPXATTR_OP_LT: ::libc::c_uint = 5;
21pub const LIBRADOS_CMPXATTR_OP_LTE: ::libc::c_uint = 6;
22
23pub type Enum_Unnamed3 = ::libc::c_uint;
24pub const LIBRADOS_OPERATION_NOFLAG: ::libc::c_uint = 0;
25pub const LIBRADOS_OPERATION_BALANCE_READS: ::libc::c_uint = 1;
26pub const LIBRADOS_OPERATION_LOCALIZE_READS: ::libc::c_uint = 2;
27pub const LIBRADOS_OPERATION_ORDER_READS_WRITES: ::libc::c_uint = 4;
28pub const LIBRADOS_OPERATION_IGNORE_CACHE: ::libc::c_uint = 8;
29pub const LIBRADOS_OPERATION_SKIPRWLOCKS: ::libc::c_uint = 16;
30pub const LIBRADOS_OPERATION_IGNORE_OVERLAY: ::libc::c_uint = 32;
31
32pub type rados_t = *mut ::libc::c_void;
33pub type rados_config_t = *mut ::libc::c_void;
34pub type rados_ioctx_t = *mut ::libc::c_void;
35pub type rados_list_ctx_t = *mut ::libc::c_void;
36pub type rados_snap_t = uint64_t;
37pub type rados_xattrs_iter_t = *mut ::libc::c_void;
38pub type rados_omap_iter_t = *mut ::libc::c_void;
39
40#[repr(C)]
41#[derive(Copy)]
42pub struct Struct_rados_pool_stat_t {
43 pub num_bytes: uint64_t,
44 pub num_kb: uint64_t,
45 pub num_objects: uint64_t,
46 pub num_object_clones: uint64_t,
47 pub num_object_copies: uint64_t,
48 pub num_objects_missing_on_primary: uint64_t,
49 pub num_objects_unfound: uint64_t,
50 pub num_objects_degraded: uint64_t,
51 pub num_rd: uint64_t,
52 pub num_rd_kb: uint64_t,
53 pub num_wr: uint64_t,
54 pub num_wr_kb: uint64_t,
55}
56impl ::std::clone::Clone for Struct_rados_pool_stat_t {
57 fn clone(&self) -> Self { *self }
58}
59impl ::std::default::Default for Struct_rados_pool_stat_t {
60 fn default() -> Self { unsafe { ::std::mem::zeroed() } }
61}
62#[repr(C)]
63#[derive(Copy)]
64pub struct Struct_rados_cluster_stat_t {
65 pub kb: uint64_t,
66 pub kb_used: uint64_t,
67 pub kb_avail: uint64_t,
68 pub num_objects: uint64_t,
69}
70impl ::std::clone::Clone for Struct_rados_cluster_stat_t {
71 fn clone(&self) -> Self { *self }
72}
73impl ::std::default::Default for Struct_rados_cluster_stat_t {
74 fn default() -> Self { unsafe { ::std::mem::zeroed() } }
75}
76pub type rados_write_op_t = *mut ::libc::c_void;
77pub type rados_read_op_t = *mut ::libc::c_void;
78pub type rados_completion_t = *mut ::libc::c_void;
79pub type rados_callback_t =
80 ::std::option::Option<extern "C" fn(cb: rados_completion_t,
81 arg: *mut ::libc::c_void) -> ()>;
82pub type rados_watchcb_t =
83 ::std::option::Option<extern "C" fn(opcode: uint8_t, ver: uint64_t,
84 arg: *mut ::libc::c_void) -> ()>;
85pub type rados_watchcb2_t =
86 ::std::option::Option<extern "C" fn(arg: *mut ::libc::c_void,
87 notify_id: uint64_t, handle: uint64_t,
88 notifier_id: uint64_t,
89 data: *mut ::libc::c_void,
90 data_len: size_t) -> ()>;
91pub type rados_watcherrcb_t =
92 ::std::option::Option<extern "C" fn(pre: *mut ::libc::c_void,
93 cookie: uint64_t, err: ::libc::c_int)
94 -> ()>;
95pub type rados_log_callback_t =
96 ::std::option::Option<extern "C" fn(arg: *mut ::libc::c_void,
97 line: *const ::libc::c_char,
98 who: *const ::libc::c_char,
99 sec: uint64_t, nsec: uint64_t,
100 seq: uint64_t,
101 level: *const ::libc::c_char,
102 msg: *const ::libc::c_char) -> ()>;
103#[link(name = "rados")]
104extern "C" {
105 pub fn rados_version(major: *mut ::libc::c_int, minor: *mut ::libc::c_int,
106 extra: *mut ::libc::c_int) -> ();
107 pub fn rados_create(cluster: *mut rados_t, id: *const ::libc::c_char)
108 -> ::libc::c_int;
109 pub fn rados_create2(pcluster: *mut rados_t,
110 clustername: *const ::libc::c_char,
111 name: *const ::libc::c_char, flags: uint64_t)
112 -> ::libc::c_int;
113 pub fn rados_create_with_context(cluster: *mut rados_t,
114 cct: rados_config_t) -> ::libc::c_int;
115 pub fn rados_ping_monitor(cluster: rados_t, mon_id: *const ::libc::c_char,
116 outstr: *mut *mut ::libc::c_char,
117 outstrlen: *mut size_t) -> ::libc::c_int;
118 pub fn rados_connect(cluster: rados_t) -> ::libc::c_int;
119 pub fn rados_shutdown(cluster: rados_t) -> ();
120 pub fn rados_conf_read_file(cluster: rados_t, path: *const ::libc::c_char)
121 -> ::libc::c_int;
122 pub fn rados_conf_parse_argv(cluster: rados_t, argc: ::libc::c_int,
123 argv: *mut *const ::libc::c_char)
124 -> ::libc::c_int;
125 pub fn rados_conf_parse_argv_remainder(cluster: rados_t,
126 argc: ::libc::c_int,
127 argv: *mut *const ::libc::c_char,
128 remargv:
129 *mut *const ::libc::c_char)
130 -> ::libc::c_int;
131 pub fn rados_conf_parse_env(cluster: rados_t, var: *const ::libc::c_char)
132 -> ::libc::c_int;
133 pub fn rados_conf_set(cluster: rados_t, option: *const ::libc::c_char,
134 value: *const ::libc::c_char) -> ::libc::c_int;
135 pub fn rados_conf_get(cluster: rados_t, option: *const ::libc::c_char,
136 buf: *mut ::libc::c_char, len: size_t)
137 -> ::libc::c_int;
138 pub fn rados_cluster_stat(cluster: rados_t,
139 result: *mut Struct_rados_cluster_stat_t)
140 -> ::libc::c_int;
141 pub fn rados_cluster_fsid(cluster: rados_t, buf: *mut ::libc::c_char,
142 len: size_t) -> ::libc::c_int;
143 pub fn rados_wait_for_latest_osdmap(cluster: rados_t) -> ::libc::c_int;
144 pub fn rados_pool_list(cluster: rados_t, buf: *mut ::libc::c_char,
145 len: size_t) -> ::libc::c_int;
146 pub fn rados_cct(cluster: rados_t) -> rados_config_t;
147 pub fn rados_get_instance_id(cluster: rados_t) -> uint64_t;
148 pub fn rados_ioctx_create(cluster: rados_t,
149 pool_name: *const ::libc::c_char,
150 ioctx: *mut rados_ioctx_t) -> ::libc::c_int;
151 pub fn rados_ioctx_create2(cluster: rados_t, pool_id: int64_t,
152 ioctx: *mut rados_ioctx_t) -> ::libc::c_int;
153 pub fn rados_ioctx_destroy(io: rados_ioctx_t) -> ();
154 pub fn rados_ioctx_cct(io: rados_ioctx_t) -> rados_config_t;
155 pub fn rados_ioctx_get_cluster(io: rados_ioctx_t) -> rados_t;
156 pub fn rados_ioctx_pool_stat(io: rados_ioctx_t,
157 stats: *mut Struct_rados_pool_stat_t)
158 -> ::libc::c_int;
159 pub fn rados_pool_lookup(cluster: rados_t,
160 pool_name: *const ::libc::c_char) -> int64_t;
161 pub fn rados_pool_reverse_lookup(cluster: rados_t, id: int64_t,
162 buf: *mut ::libc::c_char, maxlen: size_t)
163 -> ::libc::c_int;
164 pub fn rados_pool_create(cluster: rados_t,
165 pool_name: *const ::libc::c_char)
166 -> ::libc::c_int;
167 pub fn rados_pool_create_with_auid(cluster: rados_t,
168 pool_name: *const ::libc::c_char,
169 auid: uint64_t) -> ::libc::c_int;
170 pub fn rados_pool_create_with_crush_rule(cluster: rados_t,
171 pool_name: *const ::libc::c_char,
172 crush_rule_num: uint8_t)
173 -> ::libc::c_int;
174 pub fn rados_pool_create_with_all(cluster: rados_t,
175 pool_name: *const ::libc::c_char,
176 auid: uint64_t, crush_rule_num: uint8_t)
177 -> ::libc::c_int;
178 pub fn rados_pool_get_base_tier(cluster: rados_t, pool: int64_t,
179 base_tier: *mut int64_t) -> ::libc::c_int;
180 pub fn rados_pool_delete(cluster: rados_t,
181 pool_name: *const ::libc::c_char)
182 -> ::libc::c_int;
183 pub fn rados_ioctx_pool_set_auid(io: rados_ioctx_t, auid: uint64_t)
184 -> ::libc::c_int;
185 pub fn rados_ioctx_pool_get_auid(io: rados_ioctx_t, auid: *mut uint64_t)
186 -> ::libc::c_int;
187 pub fn rados_ioctx_pool_requires_alignment(io: rados_ioctx_t)
188 -> ::libc::c_int;
189 pub fn rados_ioctx_pool_required_alignment(io: rados_ioctx_t) -> uint64_t;
190 pub fn rados_ioctx_get_id(io: rados_ioctx_t) -> int64_t;
191 pub fn rados_ioctx_get_pool_name(io: rados_ioctx_t,
192 buf: *mut ::libc::c_char,
193 maxlen: ::libc::c_uint) -> ::libc::c_int;
194 pub fn rados_ioctx_locator_set_key(io: rados_ioctx_t,
195 key: *const ::libc::c_char) -> ();
196 pub fn rados_ioctx_set_namespace(io: rados_ioctx_t,
197 nspace: *const ::libc::c_char) -> ();
198 pub fn rados_nobjects_list_open(io: rados_ioctx_t,
199 ctx: *mut rados_list_ctx_t)
200 -> ::libc::c_int;
201 pub fn rados_nobjects_list_get_pg_hash_position(ctx: rados_list_ctx_t)
202 -> uint32_t;
203 pub fn rados_nobjects_list_seek(ctx: rados_list_ctx_t, pos: uint32_t)
204 -> uint32_t;
205 pub fn rados_nobjects_list_next(ctx: rados_list_ctx_t,
206 entry: *mut *const ::libc::c_char,
207 key: *mut *const ::libc::c_char,
208 nspace: *mut *const ::libc::c_char)
209 -> ::libc::c_int;
210 pub fn rados_nobjects_list_close(ctx: rados_list_ctx_t) -> ();
211 pub fn rados_objects_list_open(io: rados_ioctx_t,
212 ctx: *mut rados_list_ctx_t)
213 -> ::libc::c_int;
214 pub fn rados_objects_list_get_pg_hash_position(ctx: rados_list_ctx_t)
215 -> uint32_t;
216 pub fn rados_objects_list_seek(ctx: rados_list_ctx_t, pos: uint32_t)
217 -> uint32_t;
218 pub fn rados_objects_list_next(ctx: rados_list_ctx_t,
219 entry: *mut *const ::libc::c_char,
220 key: *mut *const ::libc::c_char)
221 -> ::libc::c_int;
222 pub fn rados_objects_list_close(ctx: rados_list_ctx_t) -> ();
223 pub fn rados_ioctx_snap_create(io: rados_ioctx_t,
224 snapname: *const ::libc::c_char)
225 -> ::libc::c_int;
226 pub fn rados_ioctx_snap_remove(io: rados_ioctx_t,
227 snapname: *const ::libc::c_char)
228 -> ::libc::c_int;
229 pub fn rados_ioctx_snap_rollback(io: rados_ioctx_t,
230 oid: *const ::libc::c_char,
231 snapname: *const ::libc::c_char)
232 -> ::libc::c_int;
233 pub fn rados_rollback(io: rados_ioctx_t, oid: *const ::libc::c_char,
234 snapname: *const ::libc::c_char) -> ::libc::c_int;
235 pub fn rados_ioctx_snap_set_read(io: rados_ioctx_t, snap: rados_snap_t)
236 -> ();
237 pub fn rados_ioctx_selfmanaged_snap_create(io: rados_ioctx_t,
238 snapid: *mut rados_snap_t)
239 -> ::libc::c_int;
240 pub fn rados_ioctx_selfmanaged_snap_remove(io: rados_ioctx_t,
241 snapid: rados_snap_t)
242 -> ::libc::c_int;
243 pub fn rados_ioctx_selfmanaged_snap_rollback(io: rados_ioctx_t,
244 oid: *const ::libc::c_char,
245 snapid: rados_snap_t)
246 -> ::libc::c_int;
247 pub fn rados_ioctx_selfmanaged_snap_set_write_ctx(io: rados_ioctx_t,
248 seq: rados_snap_t,
249 snaps:
250 *mut rados_snap_t,
251 num_snaps:
252 ::libc::c_int)
253 -> ::libc::c_int;
254 pub fn rados_ioctx_snap_list(io: rados_ioctx_t, snaps: *mut rados_snap_t,
255 maxlen: ::libc::c_int) -> ::libc::c_int;
256 pub fn rados_ioctx_snap_lookup(io: rados_ioctx_t,
257 name: *const ::libc::c_char,
258 id: *mut rados_snap_t) -> ::libc::c_int;
259 pub fn rados_ioctx_snap_get_name(io: rados_ioctx_t, id: rados_snap_t,
260 name: *mut ::libc::c_char,
261 maxlen: ::libc::c_int) -> ::libc::c_int;
262 pub fn rados_ioctx_snap_get_stamp(io: rados_ioctx_t, id: rados_snap_t,
263 t: *mut time_t) -> ::libc::c_int;
264 pub fn rados_get_last_version(io: rados_ioctx_t) -> uint64_t;
265 pub fn rados_write(io: rados_ioctx_t, oid: *const ::libc::c_char,
266 buf: *const ::libc::c_char, len: size_t, off: uint64_t)
267 -> ::libc::c_int;
268 pub fn rados_write_full(io: rados_ioctx_t, oid: *const ::libc::c_char,
269 buf: *const ::libc::c_char, len: size_t)
270 -> ::libc::c_int;
271 pub fn rados_clone_range(io: rados_ioctx_t, dst: *const ::libc::c_char,
272 dst_off: uint64_t, src: *const ::libc::c_char,
273 src_off: uint64_t, len: size_t) -> ::libc::c_int;
274 pub fn rados_append(io: rados_ioctx_t, oid: *const ::libc::c_char,
275 buf: *const ::libc::c_char, len: size_t)
276 -> ::libc::c_int;
277 pub fn rados_read(io: rados_ioctx_t, oid: *const ::libc::c_char,
278 buf: *mut ::libc::c_char, len: size_t, off: uint64_t)
279 -> ::libc::c_int;
280 pub fn rados_remove(io: rados_ioctx_t, oid: *const ::libc::c_char)
281 -> ::libc::c_int;
282 pub fn rados_trunc(io: rados_ioctx_t, oid: *const ::libc::c_char,
283 size: uint64_t) -> ::libc::c_int;
284 pub fn rados_getxattr(io: rados_ioctx_t, o: *const ::libc::c_char,
285 name: *const ::libc::c_char,
286 buf: *mut ::libc::c_char, len: size_t)
287 -> ::libc::c_int;
288 pub fn rados_setxattr(io: rados_ioctx_t, o: *const ::libc::c_char,
289 name: *const ::libc::c_char,
290 buf: *const ::libc::c_char, len: size_t)
291 -> ::libc::c_int;
292 pub fn rados_rmxattr(io: rados_ioctx_t, o: *const ::libc::c_char,
293 name: *const ::libc::c_char) -> ::libc::c_int;
294 pub fn rados_getxattrs(io: rados_ioctx_t, oid: *const ::libc::c_char,
295 iter: *mut rados_xattrs_iter_t) -> ::libc::c_int;
296 pub fn rados_getxattrs_next(iter: rados_xattrs_iter_t,
297 name: *mut *const ::libc::c_char,
298 val: *mut *const ::libc::c_char,
299 len: *mut size_t) -> ::libc::c_int;
300 pub fn rados_getxattrs_end(iter: rados_xattrs_iter_t) -> ();
301 pub fn rados_omap_get_next(iter: rados_omap_iter_t,
302 key: *mut *mut ::libc::c_char,
303 val: *mut *mut ::libc::c_char,
304 len: *mut size_t) -> ::libc::c_int;
305 pub fn rados_omap_get_end(iter: rados_omap_iter_t) -> ();
306 pub fn rados_stat(io: rados_ioctx_t, o: *const ::libc::c_char,
307 psize: *mut uint64_t, pmtime: *mut time_t)
308 -> ::libc::c_int;
309 pub fn rados_tmap_update(io: rados_ioctx_t, o: *const ::libc::c_char,
310 cmdbuf: *const ::libc::c_char, cmdbuflen: size_t)
311 -> ::libc::c_int;
312 pub fn rados_tmap_put(io: rados_ioctx_t, o: *const ::libc::c_char,
313 buf: *const ::libc::c_char, buflen: size_t)
314 -> ::libc::c_int;
315 pub fn rados_tmap_get(io: rados_ioctx_t, o: *const ::libc::c_char,
316 buf: *mut ::libc::c_char, buflen: size_t)
317 -> ::libc::c_int;
318 pub fn rados_exec(io: rados_ioctx_t, oid: *const ::libc::c_char,
319 cls: *const ::libc::c_char,
320 method: *const ::libc::c_char,
321 in_buf: *const ::libc::c_char, in_len: size_t,
322 buf: *mut ::libc::c_char, out_len: size_t)
323 -> ::libc::c_int;
324 pub fn rados_aio_create_completion(cb_arg: *mut ::libc::c_void,
325 cb_complete: rados_callback_t,
326 cb_safe: rados_callback_t,
327 pc: *mut rados_completion_t)
328 -> ::libc::c_int;
329 pub fn rados_aio_wait_for_complete(c: rados_completion_t)
330 -> ::libc::c_int;
331 pub fn rados_aio_wait_for_safe(c: rados_completion_t) -> ::libc::c_int;
332 pub fn rados_aio_is_complete(c: rados_completion_t) -> ::libc::c_int;
333 pub fn rados_aio_is_safe(c: rados_completion_t) -> ::libc::c_int;
334 pub fn rados_aio_wait_for_complete_and_cb(c: rados_completion_t)
335 -> ::libc::c_int;
336 pub fn rados_aio_wait_for_safe_and_cb(c: rados_completion_t)
337 -> ::libc::c_int;
338 pub fn rados_aio_is_complete_and_cb(c: rados_completion_t)
339 -> ::libc::c_int;
340 pub fn rados_aio_is_safe_and_cb(c: rados_completion_t) -> ::libc::c_int;
341 pub fn rados_aio_get_return_value(c: rados_completion_t) -> ::libc::c_int;
342 pub fn rados_aio_release(c: rados_completion_t) -> ();
343 pub fn rados_aio_write(io: rados_ioctx_t, oid: *const ::libc::c_char,
344 completion: rados_completion_t,
345 buf: *const ::libc::c_char, len: size_t,
346 off: uint64_t) -> ::libc::c_int;
347 pub fn rados_aio_append(io: rados_ioctx_t, oid: *const ::libc::c_char,
348 completion: rados_completion_t,
349 buf: *const ::libc::c_char, len: size_t)
350 -> ::libc::c_int;
351 pub fn rados_aio_write_full(io: rados_ioctx_t, oid: *const ::libc::c_char,
352 completion: rados_completion_t,
353 buf: *const ::libc::c_char, len: size_t)
354 -> ::libc::c_int;
355 pub fn rados_aio_remove(io: rados_ioctx_t, oid: *const ::libc::c_char,
356 completion: rados_completion_t) -> ::libc::c_int;
357 pub fn rados_aio_read(io: rados_ioctx_t, oid: *const ::libc::c_char,
358 completion: rados_completion_t,
359 buf: *mut ::libc::c_char, len: size_t,
360 off: uint64_t) -> ::libc::c_int;
361 pub fn rados_aio_flush(io: rados_ioctx_t) -> ::libc::c_int;
362 pub fn rados_aio_flush_async(io: rados_ioctx_t,
363 completion: rados_completion_t)
364 -> ::libc::c_int;
365 pub fn rados_aio_stat(io: rados_ioctx_t, o: *const ::libc::c_char,
366 completion: rados_completion_t,
367 psize: *mut uint64_t, pmtime: *mut time_t)
368 -> ::libc::c_int;
369 pub fn rados_aio_cancel(io: rados_ioctx_t, completion: rados_completion_t)
370 -> ::libc::c_int;
371 pub fn rados_watch(io: rados_ioctx_t, o: *const ::libc::c_char,
372 ver: uint64_t, cookie: *mut uint64_t,
373 watchcb: rados_watchcb_t, arg: *mut ::libc::c_void)
374 -> ::libc::c_int;
375 pub fn rados_watch2(io: rados_ioctx_t, o: *const ::libc::c_char,
376 cookie: *mut uint64_t, watchcb: rados_watchcb2_t,
377 watcherrcb: rados_watcherrcb_t,
378 arg: *mut ::libc::c_void) -> ::libc::c_int;
379 pub fn rados_watch_check(io: rados_ioctx_t, cookie: uint64_t)
380 -> ::libc::c_int;
381 pub fn rados_unwatch(io: rados_ioctx_t, o: *const ::libc::c_char,
382 cookie: uint64_t) -> ::libc::c_int;
383 pub fn rados_unwatch2(io: rados_ioctx_t, cookie: uint64_t)
384 -> ::libc::c_int;
385 pub fn rados_notify(io: rados_ioctx_t, o: *const ::libc::c_char,
386 ver: uint64_t, buf: *const ::libc::c_char,
387 buf_len: ::libc::c_int) -> ::libc::c_int;
388 pub fn rados_notify2(io: rados_ioctx_t, o: *const ::libc::c_char,
389 buf: *const ::libc::c_char, buf_len: ::libc::c_int,
390 timeout_ms: uint64_t,
391 reply_buffer: *mut *mut ::libc::c_char,
392 reply_buffer_len: *mut size_t) -> ::libc::c_int;
393 pub fn rados_notify_ack(io: rados_ioctx_t, o: *const ::libc::c_char,
394 notify_id: uint64_t, cookie: uint64_t,
395 buf: *const ::libc::c_char,
396 buf_len: ::libc::c_int) -> ::libc::c_int;
397 pub fn rados_watch_flush(cluster: rados_t) -> ::libc::c_int;
398 pub fn rados_set_alloc_hint(io: rados_ioctx_t, o: *const ::libc::c_char,
399 expected_object_size: uint64_t,
400 expected_write_size: uint64_t)
401 -> ::libc::c_int;
402 pub fn rados_create_write_op() -> rados_write_op_t;
403 pub fn rados_release_write_op(write_op: rados_write_op_t) -> ();
404 pub fn rados_write_op_set_flags(write_op: rados_write_op_t,
405 flags: ::libc::c_int) -> ();
406 pub fn rados_write_op_assert_exists(write_op: rados_write_op_t) -> ();
407 pub fn rados_write_op_assert_version(write_op: rados_write_op_t,
408 ver: uint64_t) -> ();
409 pub fn rados_write_op_cmpxattr(write_op: rados_write_op_t,
410 name: *const ::libc::c_char,
411 comparison_operator: uint8_t,
412 value: *const ::libc::c_char,
413 value_len: size_t) -> ();
414 pub fn rados_write_op_omap_cmp(write_op: rados_write_op_t,
415 key: *const ::libc::c_char,
416 comparison_operator: uint8_t,
417 val: *const ::libc::c_char,
418 val_len: size_t, prval: *mut ::libc::c_int)
419 -> ();
420 pub fn rados_write_op_setxattr(write_op: rados_write_op_t,
421 name: *const ::libc::c_char,
422 value: *const ::libc::c_char,
423 value_len: size_t) -> ();
424 pub fn rados_write_op_rmxattr(write_op: rados_write_op_t,
425 name: *const ::libc::c_char) -> ();
426 pub fn rados_write_op_create(write_op: rados_write_op_t,
427 exclusive: ::libc::c_int,
428 category: *const ::libc::c_char) -> ();
429 pub fn rados_write_op_write(write_op: rados_write_op_t,
430 buffer: *const ::libc::c_char, len: size_t,
431 offset: uint64_t) -> ();
432 pub fn rados_write_op_write_full(write_op: rados_write_op_t,
433 buffer: *const ::libc::c_char,
434 len: size_t) -> ();
435 pub fn rados_write_op_append(write_op: rados_write_op_t,
436 buffer: *const ::libc::c_char, len: size_t)
437 -> ();
438 pub fn rados_write_op_remove(write_op: rados_write_op_t) -> ();
439 pub fn rados_write_op_truncate(write_op: rados_write_op_t,
440 offset: uint64_t) -> ();
441 pub fn rados_write_op_zero(write_op: rados_write_op_t, offset: uint64_t,
442 len: uint64_t) -> ();
443 pub fn rados_write_op_exec(write_op: rados_write_op_t,
444 cls: *const ::libc::c_char,
445 method: *const ::libc::c_char,
446 in_buf: *const ::libc::c_char, in_len: size_t,
447 prval: *mut ::libc::c_int) -> ();
448 pub fn rados_write_op_omap_set(write_op: rados_write_op_t,
449 keys: *const *const ::libc::c_char,
450 vals: *const *const ::libc::c_char,
451 lens: *const size_t, num: size_t) -> ();
452 pub fn rados_write_op_omap_rm_keys(write_op: rados_write_op_t,
453 keys: *const *const ::libc::c_char,
454 keys_len: size_t) -> ();
455 pub fn rados_write_op_omap_clear(write_op: rados_write_op_t) -> ();
456 pub fn rados_write_op_set_alloc_hint(write_op: rados_write_op_t,
457 expected_object_size: uint64_t,
458 expected_write_size: uint64_t) -> ();
459 pub fn rados_write_op_operate(write_op: rados_write_op_t,
460 io: rados_ioctx_t,
461 oid: *const ::libc::c_char,
462 mtime: *mut time_t, flags: ::libc::c_int)
463 -> ::libc::c_int;
464 pub fn rados_aio_write_op_operate(write_op: rados_write_op_t,
465 io: rados_ioctx_t,
466 completion: rados_completion_t,
467 oid: *const ::libc::c_char,
468 mtime: *mut time_t,
469 flags: ::libc::c_int) -> ::libc::c_int;
470 pub fn rados_create_read_op() -> rados_read_op_t;
471 pub fn rados_release_read_op(read_op: rados_read_op_t) -> ();
472 pub fn rados_read_op_set_flags(read_op: rados_read_op_t,
473 flags: ::libc::c_int) -> ();
474 pub fn rados_read_op_assert_exists(read_op: rados_read_op_t) -> ();
475 pub fn rados_read_op_assert_version(write_op: rados_read_op_t,
476 ver: uint64_t) -> ();
477 pub fn rados_read_op_cmpxattr(read_op: rados_read_op_t,
478 name: *const ::libc::c_char,
479 comparison_operator: uint8_t,
480 value: *const ::libc::c_char,
481 value_len: size_t) -> ();
482 pub fn rados_read_op_getxattrs(read_op: rados_read_op_t,
483 iter: *mut rados_xattrs_iter_t,
484 prval: *mut ::libc::c_int) -> ();
485 pub fn rados_read_op_omap_cmp(read_op: rados_read_op_t,
486 key: *const ::libc::c_char,
487 comparison_operator: uint8_t,
488 val: *const ::libc::c_char, val_len: size_t,
489 prval: *mut ::libc::c_int) -> ();
490 pub fn rados_read_op_stat(read_op: rados_read_op_t, psize: *mut uint64_t,
491 pmtime: *mut time_t, prval: *mut ::libc::c_int)
492 -> ();
493 pub fn rados_read_op_read(read_op: rados_read_op_t, offset: uint64_t,
494 len: size_t, buf: *mut ::libc::c_char,
495 bytes_read: *mut size_t,
496 prval: *mut ::libc::c_int) -> ();
497 pub fn rados_read_op_exec(read_op: rados_read_op_t,
498 cls: *const ::libc::c_char,
499 method: *const ::libc::c_char,
500 in_buf: *const ::libc::c_char, in_len: size_t,
501 out_buf: *mut *mut ::libc::c_char,
502 out_len: *mut size_t, prval: *mut ::libc::c_int)
503 -> ();
504 pub fn rados_read_op_exec_user_buf(read_op: rados_read_op_t,
505 cls: *const ::libc::c_char,
506 method: *const ::libc::c_char,
507 in_buf: *const ::libc::c_char,
508 in_len: size_t,
509 out_buf: *mut ::libc::c_char,
510 out_len: size_t, used_len: *mut size_t,
511 prval: *mut ::libc::c_int) -> ();
512 pub fn rados_read_op_omap_get_vals(read_op: rados_read_op_t,
513 start_after: *const ::libc::c_char,
514 filter_prefix: *const ::libc::c_char,
515 max_return: uint64_t,
516 iter: *mut rados_omap_iter_t,
517 prval: *mut ::libc::c_int) -> ();
518 pub fn rados_read_op_omap_get_keys(read_op: rados_read_op_t,
519 start_after: *const ::libc::c_char,
520 max_return: uint64_t,
521 iter: *mut rados_omap_iter_t,
522 prval: *mut ::libc::c_int) -> ();
523 pub fn rados_read_op_omap_get_vals_by_keys(read_op: rados_read_op_t,
524 keys:
525 *const *const ::libc::c_char,
526 keys_len: size_t,
527 iter: *mut rados_omap_iter_t,
528 prval: *mut ::libc::c_int)
529 -> ();
530 pub fn rados_read_op_operate(read_op: rados_read_op_t, io: rados_ioctx_t,
531 oid: *const ::libc::c_char,
532 flags: ::libc::c_int) -> ::libc::c_int;
533 pub fn rados_aio_read_op_operate(read_op: rados_read_op_t,
534 io: rados_ioctx_t,
535 completion: rados_completion_t,
536 oid: *const ::libc::c_char,
537 flags: ::libc::c_int) -> ::libc::c_int;
538 pub fn rados_lock_exclusive(io: rados_ioctx_t, o: *const ::libc::c_char,
539 name: *const ::libc::c_char,
540 cookie: *const ::libc::c_char,
541 desc: *const ::libc::c_char,
542 duration: *mut timeval, flags: uint8_t)
543 -> ::libc::c_int;
544 pub fn rados_lock_shared(io: rados_ioctx_t, o: *const ::libc::c_char,
545 name: *const ::libc::c_char,
546 cookie: *const ::libc::c_char,
547 tag: *const ::libc::c_char,
548 desc: *const ::libc::c_char,
549 duration: *mut timeval, flags: uint8_t)
550 -> ::libc::c_int;
551 pub fn rados_unlock(io: rados_ioctx_t, o: *const ::libc::c_char,
552 name: *const ::libc::c_char,
553 cookie: *const ::libc::c_char) -> ::libc::c_int;
554 pub fn rados_list_lockers(io: rados_ioctx_t, o: *const ::libc::c_char,
555 name: *const ::libc::c_char,
556 exclusive: *mut ::libc::c_int,
557 tag: *mut ::libc::c_char, tag_len: *mut size_t,
558 clients: *mut ::libc::c_char,
559 clients_len: *mut size_t,
560 cookies: *mut ::libc::c_char,
561 cookies_len: *mut size_t,
562 addrs: *mut ::libc::c_char,
563 addrs_len: *mut size_t) -> ssize_t;
564 pub fn rados_break_lock(io: rados_ioctx_t, o: *const ::libc::c_char,
565 name: *const ::libc::c_char,
566 client: *const ::libc::c_char,
567 cookie: *const ::libc::c_char) -> ::libc::c_int;
568 pub fn rados_blacklist_add(cluster: rados_t,
569 client_address: *mut ::libc::c_char,
570 expire_seconds: uint32_t) -> ::libc::c_int;
571 pub fn rados_mon_command(cluster: rados_t,
572 cmd: *mut *const ::libc::c_char, cmdlen: size_t,
573 inbuf: *const ::libc::c_char, inbuflen: size_t,
574 outbuf: *mut *mut ::libc::c_char,
575 outbuflen: *mut size_t,
576 outs: *mut *mut ::libc::c_char,
577 outslen: *mut size_t) -> ::libc::c_int;
578 pub fn rados_mon_command_target(cluster: rados_t,
579 name: *const ::libc::c_char,
580 cmd: *mut *const ::libc::c_char,
581 cmdlen: size_t,
582 inbuf: *const ::libc::c_char,
583 inbuflen: size_t,
584 outbuf: *mut *mut ::libc::c_char,
585 outbuflen: *mut size_t,
586 outs: *mut *mut ::libc::c_char,
587 outslen: *mut size_t) -> ::libc::c_int;
588 pub fn rados_buffer_free(buf: *mut ::libc::c_char) -> ();
589 pub fn rados_osd_command(cluster: rados_t, osdid: ::libc::c_int,
590 cmd: *mut *const ::libc::c_char, cmdlen: size_t,
591 inbuf: *const ::libc::c_char, inbuflen: size_t,
592 outbuf: *mut *mut ::libc::c_char,
593 outbuflen: *mut size_t,
594 outs: *mut *mut ::libc::c_char,
595 outslen: *mut size_t) -> ::libc::c_int;
596 pub fn rados_pg_command(cluster: rados_t, pgstr: *const ::libc::c_char,
597 cmd: *mut *const ::libc::c_char, cmdlen: size_t,
598 inbuf: *const ::libc::c_char, inbuflen: size_t,
599 outbuf: *mut *mut ::libc::c_char,
600 outbuflen: *mut size_t,
601 outs: *mut *mut ::libc::c_char,
602 outslen: *mut size_t) -> ::libc::c_int;
603 pub fn rados_monitor_log(cluster: rados_t, level: *const ::libc::c_char,
604 cb: rados_log_callback_t,
605 arg: *mut ::libc::c_void) -> ::libc::c_int;
606}