1#![allow(non_camel_case_types)]
39#![allow(unused_imports)]
40
41extern crate libc;
42
43use self::libc::{size_t, ssize_t, time_t, timeval};
44
45bitflags! {
46 pub struct AllocFlags: u32 {
47 const LIBRADOS_OP_FLAG_EXCL = 1;
48 const LIBRADOS_OP_FLAG_FAILOK = 2;
49 const LIBRADOS_OP_FLAG_FADVISE_RANDOM = 4;
50 const LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = 8;
51 const LIBRADOS_OP_FLAG_FADVISE_WILLNEED = 16;
52 const LIBRADOS_OP_FLAG_FADVISE_DONTNEED = 32;
53 const LIBRADOS_OP_FLAG_FADVISE_NOCACHE = 64;
54 }
55}
56impl AllocFlags {
57 pub fn clear(&mut self) {
58 self.bits = 0; }
61}
62
63bitflags! {
64 pub struct XattrFlags: u32 {
65 const LIBRADOS_CMPXATTR_OP_EQ = 1;
66 const LIBRADOS_CMPXATTR_OP_NE = 2;
67 const LIBRADOS_CMPXATTR_OP_GT = 3;
68 const LIBRADOS_CMPXATTR_OP_GTE = 4;
69 const LIBRADOS_CMPXATTR_OP_LT = 5;
70 const LIBRADOS_CMPXATTR_OP_LTE = 6;
71 }
72}
73impl XattrFlags {
74 pub fn clear(&mut self) {
75 self.bits = 0; }
78}
79
80bitflags! {
83 pub struct OperationFlags: u32 {
84 const LIBRADOS_OPERATION_NOFLAG= 0;
85 const LIBRADOS_OPERATION_BALANCE_READS= 1;
86 const LIBRADOS_OPERATION_LOCALIZE_READS= 2;
87 const LIBRADOS_OPERATION_ORDER_READS_WRITES= 4;
88 const LIBRADOS_OPERATION_IGNORE_CACHE= 8;
89 const LIBRADOS_OPERATION_SKIPRWLOCKS= 16;
90 const LIBRADOS_OPERATION_IGNORE_OVERLAY= 32;
91 }
92}
93
94impl OperationFlags {
95 pub fn clear(&mut self) {
96 self.bits = 0; }
99}
100
101pub type rados_t = *mut ::std::os::raw::c_void;
102pub type rados_config_t = *mut ::std::os::raw::c_void;
103pub type rados_ioctx_t = *mut ::std::os::raw::c_void;
104pub type rados_list_ctx_t = *mut ::std::os::raw::c_void;
105pub type rados_snap_t = u64;
106pub type rados_xattrs_iter_t = *mut ::std::os::raw::c_void;
107pub type rados_omap_iter_t = *mut ::std::os::raw::c_void;
108
109#[repr(C)]
110#[derive(Copy, Debug)]
111pub struct Struct_rados_pool_stat_t {
112 pub num_bytes: u64,
113 pub num_kb: u64,
114 pub num_objects: u64,
115 pub num_object_clones: u64,
116 pub num_object_copies: u64,
117 pub num_objects_missing_on_primary: u64,
118 pub num_objects_unfound: u64,
119 pub num_objects_degraded: u64,
120 pub num_rd: u64,
121 pub num_rd_kb: u64,
122 pub num_wr: u64,
123 pub num_wr_kb: u64,
124}
125
126impl ::std::clone::Clone for Struct_rados_pool_stat_t {
127 fn clone(&self) -> Self {
128 *self
129 }
130}
131
132impl ::std::default::Default for Struct_rados_pool_stat_t {
133 fn default() -> Self {
134 unsafe { ::std::mem::zeroed() }
135 }
136}
137
138#[repr(C)]
139#[derive(Copy, Debug)]
140pub struct Struct_rados_cluster_stat_t {
141 pub kb: u64,
142 pub kb_used: u64,
143 pub kb_avail: u64,
144 pub num_objects: u64,
145}
146
147impl ::std::clone::Clone for Struct_rados_cluster_stat_t {
148 fn clone(&self) -> Self {
149 *self
150 }
151}
152
153impl ::std::default::Default for Struct_rados_cluster_stat_t {
154 fn default() -> Self {
155 unsafe { ::std::mem::zeroed() }
156 }
157}
158
159pub type rados_write_op_t = *mut ::std::os::raw::c_void;
160
161pub type rados_read_op_t = *mut ::std::os::raw::c_void;
162
163pub type rados_completion_t = *mut ::std::os::raw::c_void;
164
165pub type rados_callback_t = ::std::option::Option<
166 extern "C" fn(cb: rados_completion_t, arg: *mut ::std::os::raw::c_void) -> (),
167>;
168
169pub type rados_watchcb_t = ::std::option::Option<
170 extern "C" fn(opcode: u8, ver: u64, arg: *mut ::std::os::raw::c_void) -> (),
171>;
172
173pub type rados_watchcb2_t = ::std::option::Option<
174 extern "C" fn(
175 arg: *mut ::std::os::raw::c_void,
176 notify_id: u64,
177 handle: u64,
178 notifier_id: u64,
179 data: *mut ::std::os::raw::c_void,
180 data_len: size_t,
181 ) -> (),
182>;
183
184pub type rados_watcherrcb_t = ::std::option::Option<
185 extern "C" fn(pre: *mut ::std::os::raw::c_void, cookie: u64, err: ::libc::c_int) -> (),
186>;
187
188pub type rados_log_callback_t = ::std::option::Option<
189 extern "C" fn(
190 arg: *mut ::std::os::raw::c_void,
191 line: *const ::libc::c_char,
192 who: *const ::libc::c_char,
193 sec: u64,
194 nsec: u64,
195 seq: u64,
196 level: *const ::libc::c_char,
197 msg: *const ::libc::c_char,
198 ) -> (),
199>;
200
201#[cfg(unix)]
202#[link(name = "rados", kind = "dylib")]
203extern "C" {
204 pub fn rados_version(
205 major: *mut ::libc::c_int,
206 minor: *mut ::libc::c_int,
207 extra: *mut ::libc::c_int,
208 ) -> ();
209
210 pub fn rados_create(cluster: *mut rados_t, id: *const ::libc::c_char) -> ::libc::c_int;
211
212 pub fn rados_create2(
213 pcluster: *mut rados_t,
214 clustername: *const ::libc::c_char,
215 name: *const ::libc::c_char,
216 flags: u64,
217 ) -> ::libc::c_int;
218
219 pub fn rados_create_with_context(cluster: *mut rados_t, cct: rados_config_t) -> ::libc::c_int;
220
221 pub fn rados_ping_monitor(
222 cluster: rados_t,
223 mon_id: *const ::libc::c_char,
224 outstr: *mut *mut ::libc::c_char,
225 outstrlen: *mut size_t,
226 ) -> ::libc::c_int;
227
228 pub fn rados_connect(cluster: rados_t) -> ::libc::c_int;
229
230 pub fn rados_shutdown(cluster: rados_t) -> ();
231
232 pub fn rados_conf_read_file(cluster: rados_t, path: *const ::libc::c_char) -> ::libc::c_int;
233
234 pub fn rados_conf_parse_argv(
235 cluster: rados_t,
236 argc: ::libc::c_int,
237 argv: *mut *const ::libc::c_char,
238 ) -> ::libc::c_int;
239
240 pub fn rados_conf_parse_argv_remainder(
241 cluster: rados_t,
242 argc: ::libc::c_int,
243 argv: *mut *const ::libc::c_char,
244 remargv: *mut *const ::libc::c_char,
245 ) -> ::libc::c_int;
246
247 pub fn rados_conf_parse_env(cluster: rados_t, var: *const ::libc::c_char) -> ::libc::c_int;
248
249 pub fn rados_conf_set(
250 cluster: rados_t,
251 option: *const ::libc::c_char,
252 value: *const ::libc::c_char,
253 ) -> ::libc::c_int;
254
255 pub fn rados_conf_get(
256 cluster: rados_t,
257 option: *const ::libc::c_char,
258 buf: *mut ::libc::c_char,
259 len: size_t,
260 ) -> ::libc::c_int;
261
262 pub fn rados_cluster_stat(
263 cluster: rados_t,
264 result: *mut Struct_rados_cluster_stat_t,
265 ) -> ::libc::c_int;
266
267 pub fn rados_cluster_fsid(
272 cluster: rados_t,
273 buf: *mut ::libc::c_char,
274 len: size_t,
275 ) -> ::libc::c_int;
276
277 pub fn rados_wait_for_latest_osdmap(cluster: rados_t) -> ::libc::c_int;
278
279 pub fn rados_pool_list(
280 cluster: rados_t,
281 buf: *mut ::libc::c_char,
282 len: size_t,
283 ) -> ::libc::c_int;
284
285 pub fn rados_cct(cluster: rados_t) -> rados_config_t;
286
287 pub fn rados_get_instance_id(cluster: rados_t) -> u64;
288
289 pub fn rados_ioctx_create(
290 cluster: rados_t,
291 pool_name: *const ::libc::c_char,
292 ioctx: *mut rados_ioctx_t,
293 ) -> ::libc::c_int;
294
295 pub fn rados_ioctx_create2(
296 cluster: rados_t,
297 pool_id: i64,
298 ioctx: *mut rados_ioctx_t,
299 ) -> ::libc::c_int;
300
301 pub fn rados_ioctx_destroy(io: rados_ioctx_t) -> ();
302
303 pub fn rados_ioctx_cct(io: rados_ioctx_t) -> rados_config_t;
304
305 pub fn rados_ioctx_get_cluster(io: rados_ioctx_t) -> rados_t;
306
307 pub fn rados_ioctx_pool_stat(
308 io: rados_ioctx_t,
309 stats: *mut Struct_rados_pool_stat_t,
310 ) -> ::libc::c_int;
311
312 pub fn rados_pool_lookup(cluster: rados_t, pool_name: *const ::libc::c_char) -> i64;
313
314 pub fn rados_pool_reverse_lookup(
315 cluster: rados_t,
316 id: i64,
317 buf: *mut ::libc::c_char,
318 maxlen: size_t,
319 ) -> ::libc::c_int;
320
321 pub fn rados_pool_create(cluster: rados_t, pool_name: *const ::libc::c_char) -> ::libc::c_int;
323
324 pub fn rados_pool_create_with_auid(
325 cluster: rados_t,
326 pool_name: *const ::libc::c_char,
327 auid: u64,
328 ) -> ::libc::c_int;
329
330 pub fn rados_pool_create_with_crush_rule(
331 cluster: rados_t,
332 pool_name: *const ::libc::c_char,
333 crush_rule_num: u8,
334 ) -> ::libc::c_int;
335
336 pub fn rados_pool_create_with_all(
337 cluster: rados_t,
338 pool_name: *const ::libc::c_char,
339 auid: u64,
340 crush_rule_num: u8,
341 ) -> ::libc::c_int;
342
343 pub fn rados_pool_get_base_tier(
344 cluster: rados_t,
345 pool: i64,
346 base_tier: *mut i64,
347 ) -> ::libc::c_int;
348
349 pub fn rados_pool_delete(cluster: rados_t, pool_name: *const ::libc::c_char) -> ::libc::c_int;
350
351 pub fn rados_ioctx_pool_set_auid(io: rados_ioctx_t, auid: u64) -> ::libc::c_int;
352
353 pub fn rados_ioctx_pool_get_auid(io: rados_ioctx_t, auid: *mut u64) -> ::libc::c_int;
354
355 pub fn rados_ioctx_pool_requires_alignment(io: rados_ioctx_t) -> ::libc::c_int;
356
357 pub fn rados_ioctx_pool_required_alignment(io: rados_ioctx_t) -> u64;
358
359 pub fn rados_ioctx_get_id(io: rados_ioctx_t) -> i64;
360
361 pub fn rados_ioctx_get_pool_name(
362 io: rados_ioctx_t,
363 buf: *mut ::libc::c_char,
364 maxlen: ::libc::c_uint,
365 ) -> ::libc::c_int;
366
367 pub fn rados_ioctx_locator_set_key(io: rados_ioctx_t, key: *const ::libc::c_char) -> ();
368
369 pub fn rados_ioctx_set_namespace(io: rados_ioctx_t, nspace: *const ::libc::c_char) -> ();
370
371 pub fn rados_nobjects_list_open(io: rados_ioctx_t, ctx: *mut rados_list_ctx_t)
372 -> ::libc::c_int;
373
374 pub fn rados_nobjects_list_get_pg_hash_position(ctx: rados_list_ctx_t) -> u32;
375
376 pub fn rados_nobjects_list_seek(ctx: rados_list_ctx_t, pos: u32) -> u32;
377
378 pub fn rados_nobjects_list_next(
379 ctx: rados_list_ctx_t,
380 entry: *mut *mut *const ::libc::c_char,
381 key: *mut *mut *const ::libc::c_char,
382 nspace: *mut *mut *const ::libc::c_char,
383 ) -> ::libc::c_int;
384
385 pub fn rados_nobjects_list_close(ctx: rados_list_ctx_t) -> ();
386
387 pub fn rados_objects_list_open(io: rados_ioctx_t, ctx: *mut rados_list_ctx_t) -> ::libc::c_int;
388
389 pub fn rados_objects_list_get_pg_hash_position(ctx: rados_list_ctx_t) -> u32;
390
391 pub fn rados_objects_list_seek(ctx: rados_list_ctx_t, pos: u32) -> u32;
392
393 pub fn rados_objects_list_next(
394 ctx: rados_list_ctx_t,
395 entry: *mut *const ::libc::c_char,
396 key: *mut *const ::libc::c_char,
397 ) -> ::libc::c_int;
398
399 pub fn rados_objects_list_close(ctx: rados_list_ctx_t) -> ();
400
401 pub fn rados_ioctx_snap_create(
402 io: rados_ioctx_t,
403 snapname: *const ::libc::c_char,
404 ) -> ::libc::c_int;
405
406 pub fn rados_ioctx_snap_remove(
407 io: rados_ioctx_t,
408 snapname: *const ::libc::c_char,
409 ) -> ::libc::c_int;
410
411 pub fn rados_ioctx_snap_rollback(
412 io: rados_ioctx_t,
413 oid: *const ::libc::c_char,
414 snapname: *const ::libc::c_char,
415 ) -> ::libc::c_int;
416 pub fn rados_rollback(
418 io: rados_ioctx_t,
419 oid: *const ::libc::c_char,
420 snapname: *const ::libc::c_char,
421 ) -> ::libc::c_int;
422
423 pub fn rados_ioctx_snap_set_read(io: rados_ioctx_t, snap: rados_snap_t) -> ();
424
425 pub fn rados_ioctx_selfmanaged_snap_create(
426 io: rados_ioctx_t,
427 snapid: *mut rados_snap_t,
428 ) -> ::libc::c_int;
429
430 pub fn rados_ioctx_selfmanaged_snap_remove(
431 io: rados_ioctx_t,
432 snapid: rados_snap_t,
433 ) -> ::libc::c_int;
434
435 pub fn rados_ioctx_selfmanaged_snap_rollback(
436 io: rados_ioctx_t,
437 oid: *const ::libc::c_char,
438 snapid: rados_snap_t,
439 ) -> ::libc::c_int;
440
441 pub fn rados_ioctx_selfmanaged_snap_set_write_ctx(
442 io: rados_ioctx_t,
443 seq: rados_snap_t,
444 snaps: *mut rados_snap_t,
445 num_snaps: ::libc::c_int,
446 ) -> ::libc::c_int;
447
448 pub fn rados_ioctx_snap_list(
449 io: rados_ioctx_t,
450 snaps: *mut rados_snap_t,
451 maxlen: ::libc::c_int,
452 ) -> ::libc::c_int;
453
454 pub fn rados_ioctx_snap_lookup(
455 io: rados_ioctx_t,
456 name: *const ::libc::c_char,
457 id: *mut rados_snap_t,
458 ) -> ::libc::c_int;
459
460 pub fn rados_ioctx_snap_get_name(
461 io: rados_ioctx_t,
462 id: rados_snap_t,
463 name: *mut ::libc::c_char,
464 maxlen: ::libc::c_int,
465 ) -> ::libc::c_int;
466
467 pub fn rados_ioctx_snap_get_stamp(
468 io: rados_ioctx_t,
469 id: rados_snap_t,
470 t: *mut time_t,
471 ) -> ::libc::c_int;
472
473 pub fn rados_get_last_version(io: rados_ioctx_t) -> u64;
474
475 pub fn rados_write(
476 io: rados_ioctx_t,
477 oid: *const ::libc::c_char,
478 buf: *const ::libc::c_char,
479 len: size_t,
480 off: u64,
481 ) -> ::libc::c_int;
482
483 pub fn rados_write_full(
484 io: rados_ioctx_t,
485 oid: *const ::libc::c_char,
486 buf: *const ::libc::c_char,
487 len: size_t,
488 ) -> ::libc::c_int;
489
490 pub fn rados_clone_range(
491 io: rados_ioctx_t,
492 dst: *const ::libc::c_char,
493 dst_off: u64,
494 src: *const ::libc::c_char,
495 src_off: u64,
496 len: size_t,
497 ) -> ::libc::c_int;
498
499 pub fn rados_append(
500 io: rados_ioctx_t,
501 oid: *const ::libc::c_char,
502 buf: *const ::libc::c_char,
503 len: size_t,
504 ) -> ::libc::c_int;
505
506 pub fn rados_read(
507 io: rados_ioctx_t,
508 oid: *const ::libc::c_char,
509 buf: *mut ::libc::c_char,
510 len: size_t,
511 off: u64,
512 ) -> ::libc::c_int;
513
514 pub fn rados_remove(io: rados_ioctx_t, oid: *const ::libc::c_char) -> ::libc::c_int;
515
516 pub fn rados_trunc(io: rados_ioctx_t, oid: *const ::libc::c_char, size: u64) -> ::libc::c_int;
517
518 pub fn rados_getxattr(
519 io: rados_ioctx_t,
520 o: *const ::libc::c_char,
521 name: *const ::libc::c_char,
522 buf: *mut ::libc::c_char,
523 len: size_t,
524 ) -> ::libc::c_int;
525
526 pub fn rados_setxattr(
527 io: rados_ioctx_t,
528 o: *const ::libc::c_char,
529 name: *const ::libc::c_char,
530 buf: *const ::libc::c_char,
531 len: size_t,
532 ) -> ::libc::c_int;
533
534 pub fn rados_rmxattr(
535 io: rados_ioctx_t,
536 o: *const ::libc::c_char,
537 name: *const ::libc::c_char,
538 ) -> ::libc::c_int;
539
540 pub fn rados_getxattrs(
541 io: rados_ioctx_t,
542 oid: *const ::libc::c_char,
543 iter: *mut rados_xattrs_iter_t,
544 ) -> ::libc::c_int;
545
546 pub fn rados_getxattrs_next(
547 iter: rados_xattrs_iter_t,
548 name: *mut *const ::libc::c_char,
549 val: *mut *const ::libc::c_char,
550 len: *mut size_t,
551 ) -> ::libc::c_int;
552
553 pub fn rados_getxattrs_end(iter: rados_xattrs_iter_t) -> ();
554
555 pub fn rados_omap_get_next(
556 iter: rados_omap_iter_t,
557 key: *mut *mut ::libc::c_char,
558 val: *mut *mut ::libc::c_char,
559 len: *mut size_t,
560 ) -> ::libc::c_int;
561
562 pub fn rados_omap_get_end(iter: rados_omap_iter_t) -> ();
563
564 pub fn rados_stat(
565 io: rados_ioctx_t,
566 o: *const ::libc::c_char,
567 psize: *mut u64,
568 pmtime: *mut time_t,
569 ) -> ::libc::c_int;
570
571 pub fn rados_tmap_update(
572 io: rados_ioctx_t,
573 o: *const ::libc::c_char,
574 cmdbuf: *const ::libc::c_char,
575 cmdbuflen: size_t,
576 ) -> ::libc::c_int;
577
578 pub fn rados_tmap_put(
579 io: rados_ioctx_t,
580 o: *const ::libc::c_char,
581 buf: *const ::libc::c_char,
582 buflen: size_t,
583 ) -> ::libc::c_int;
584
585 pub fn rados_tmap_get(
586 io: rados_ioctx_t,
587 o: *const ::libc::c_char,
588 buf: *mut ::libc::c_char,
589 buflen: size_t,
590 ) -> ::libc::c_int;
591
592 pub fn rados_exec(
593 io: rados_ioctx_t,
594 oid: *const ::libc::c_char,
595 cls: *const ::libc::c_char,
596 method: *const ::libc::c_char,
597 in_buf: *const ::libc::c_char,
598 in_len: size_t,
599 buf: *mut ::libc::c_char,
600 out_len: size_t,
601 ) -> ::libc::c_int;
602
603 pub fn rados_aio_create_completion(
604 cb_arg: *mut ::std::os::raw::c_void,
605 cb_complete: rados_callback_t,
606 cb_safe: rados_callback_t,
607 pc: *mut rados_completion_t,
608 ) -> ::libc::c_int;
609
610 pub fn rados_aio_create_completion2(
611 cb_arg: *mut ::std::os::raw::c_void,
612 cb_complete: rados_callback_t,
613 pc: *mut rados_completion_t,
614 ) -> ::libc::c_int;
615
616 pub fn rados_aio_wait_for_complete(c: rados_completion_t) -> ::libc::c_int;
617 pub fn rados_aio_wait_for_safe(c: rados_completion_t) -> ::libc::c_int;
618 pub fn rados_aio_is_complete(c: rados_completion_t) -> ::libc::c_int;
619 pub fn rados_aio_is_safe(c: rados_completion_t) -> ::libc::c_int;
620 pub fn rados_aio_wait_for_complete_and_cb(c: rados_completion_t) -> ::libc::c_int;
621 pub fn rados_aio_wait_for_safe_and_cb(c: rados_completion_t) -> ::libc::c_int;
622 pub fn rados_aio_is_complete_and_cb(c: rados_completion_t) -> ::libc::c_int;
623 pub fn rados_aio_is_safe_and_cb(c: rados_completion_t) -> ::libc::c_int;
624 pub fn rados_aio_get_return_value(c: rados_completion_t) -> ::libc::c_int;
625 pub fn rados_aio_release(c: rados_completion_t) -> ();
626 pub fn rados_aio_write(
627 io: rados_ioctx_t,
628 oid: *const ::libc::c_char,
629 completion: rados_completion_t,
630 buf: *const ::libc::c_char,
631 len: size_t,
632 off: u64,
633 ) -> ::libc::c_int;
634 pub fn rados_aio_append(
635 io: rados_ioctx_t,
636 oid: *const ::libc::c_char,
637 completion: rados_completion_t,
638 buf: *const ::libc::c_char,
639 len: size_t,
640 ) -> ::libc::c_int;
641 pub fn rados_aio_write_full(
642 io: rados_ioctx_t,
643 oid: *const ::libc::c_char,
644 completion: rados_completion_t,
645 buf: *const ::libc::c_char,
646 len: size_t,
647 ) -> ::libc::c_int;
648 pub fn rados_aio_remove(
649 io: rados_ioctx_t,
650 oid: *const ::libc::c_char,
651 completion: rados_completion_t,
652 ) -> ::libc::c_int;
653 pub fn rados_aio_read(
654 io: rados_ioctx_t,
655 oid: *const ::libc::c_char,
656 completion: rados_completion_t,
657 buf: *mut ::libc::c_char,
658 len: size_t,
659 off: u64,
660 ) -> ::libc::c_int;
661 pub fn rados_aio_flush(io: rados_ioctx_t) -> ::libc::c_int;
662 pub fn rados_aio_flush_async(
663 io: rados_ioctx_t,
664 completion: rados_completion_t,
665 ) -> ::libc::c_int;
666 pub fn rados_aio_stat(
667 io: rados_ioctx_t,
668 o: *const ::libc::c_char,
669 completion: rados_completion_t,
670 psize: *mut u64,
671 pmtime: *mut time_t,
672 ) -> ::libc::c_int;
673 pub fn rados_aio_cancel(io: rados_ioctx_t, completion: rados_completion_t) -> ::libc::c_int;
674 pub fn rados_watch(
675 io: rados_ioctx_t,
676 o: *const ::libc::c_char,
677 ver: u64,
678 cookie: *mut u64,
679 watchcb: rados_watchcb_t,
680 arg: *mut ::std::os::raw::c_void,
681 ) -> ::libc::c_int;
682 pub fn rados_watch2(
683 io: rados_ioctx_t,
684 o: *const ::libc::c_char,
685 cookie: *mut u64,
686 watchcb: rados_watchcb2_t,
687 watcherrcb: rados_watcherrcb_t,
688 arg: *mut ::std::os::raw::c_void,
689 ) -> ::libc::c_int;
690 pub fn rados_watch_check(io: rados_ioctx_t, cookie: u64) -> ::libc::c_int;
691 pub fn rados_unwatch(io: rados_ioctx_t, o: *const ::libc::c_char, cookie: u64)
692 -> ::libc::c_int;
693 pub fn rados_unwatch2(io: rados_ioctx_t, cookie: u64) -> ::libc::c_int;
694 pub fn rados_notify(
695 io: rados_ioctx_t,
696 o: *const ::libc::c_char,
697 ver: u64,
698 buf: *const ::libc::c_char,
699 buf_len: ::libc::c_int,
700 ) -> ::libc::c_int;
701 pub fn rados_notify2(
702 io: rados_ioctx_t,
703 o: *const ::libc::c_char,
704 buf: *const ::libc::c_char,
705 buf_len: ::libc::c_int,
706 timeout_ms: u64,
707 reply_buffer: *mut *mut ::libc::c_char,
708 reply_buffer_len: *mut size_t,
709 ) -> ::libc::c_int;
710 pub fn rados_notify_ack(
711 io: rados_ioctx_t,
712 o: *const ::libc::c_char,
713 notify_id: u64,
714 cookie: u64,
715 buf: *const ::libc::c_char,
716 buf_len: ::libc::c_int,
717 ) -> ::libc::c_int;
718 pub fn rados_watch_flush(cluster: rados_t) -> ::libc::c_int;
719 pub fn rados_set_alloc_hint(
720 io: rados_ioctx_t,
721 o: *const ::libc::c_char,
722 expected_object_size: u64,
723 expected_write_size: u64,
724 ) -> ::libc::c_int;
725 pub fn rados_create_write_op() -> rados_write_op_t;
726 pub fn rados_release_write_op(write_op: rados_write_op_t) -> ();
727 pub fn rados_write_op_set_flags(write_op: rados_write_op_t, flags: ::libc::c_int) -> ();
728 pub fn rados_write_op_assert_exists(write_op: rados_write_op_t) -> ();
729 pub fn rados_write_op_assert_version(write_op: rados_write_op_t, ver: u64) -> ();
730 pub fn rados_write_op_cmpxattr(
731 write_op: rados_write_op_t,
732 name: *const ::libc::c_char,
733 comparison_operator: u8,
734 value: *const ::libc::c_char,
735 value_len: size_t,
736 ) -> ();
737 pub fn rados_write_op_omap_cmp(
738 write_op: rados_write_op_t,
739 key: *const ::libc::c_char,
740 comparison_operator: u8,
741 val: *const ::libc::c_char,
742 val_len: size_t,
743 prval: *mut ::libc::c_int,
744 ) -> ();
745 pub fn rados_write_op_setxattr(
746 write_op: rados_write_op_t,
747 name: *const ::libc::c_char,
748 value: *const ::libc::c_char,
749 value_len: size_t,
750 ) -> ();
751 pub fn rados_write_op_rmxattr(write_op: rados_write_op_t, name: *const ::libc::c_char) -> ();
752 pub fn rados_write_op_create(
753 write_op: rados_write_op_t,
754 exclusive: ::libc::c_int,
755 category: *const ::libc::c_char,
756 ) -> ();
757 pub fn rados_write_op_write(
758 write_op: rados_write_op_t,
759 buffer: *const ::libc::c_char,
760 len: size_t,
761 offset: u64,
762 ) -> ();
763 pub fn rados_write_op_write_full(
764 write_op: rados_write_op_t,
765 buffer: *const ::libc::c_char,
766 len: size_t,
767 ) -> ();
768 pub fn rados_write_op_append(
769 write_op: rados_write_op_t,
770 buffer: *const ::libc::c_char,
771 len: size_t,
772 ) -> ();
773 pub fn rados_write_op_remove(write_op: rados_write_op_t) -> ();
774 pub fn rados_write_op_truncate(write_op: rados_write_op_t, offset: u64) -> ();
775 pub fn rados_write_op_zero(write_op: rados_write_op_t, offset: u64, len: u64) -> ();
776 pub fn rados_write_op_exec(
777 write_op: rados_write_op_t,
778 cls: *const ::libc::c_char,
779 method: *const ::libc::c_char,
780 in_buf: *const ::libc::c_char,
781 in_len: size_t,
782 prval: *mut ::libc::c_int,
783 ) -> ();
784 pub fn rados_write_op_omap_set(
785 write_op: rados_write_op_t,
786 keys: *const *const ::libc::c_char,
787 vals: *const *const ::libc::c_char,
788 lens: *const size_t,
789 num: size_t,
790 ) -> ();
791 pub fn rados_write_op_omap_rm_keys(
792 write_op: rados_write_op_t,
793 keys: *const *const ::libc::c_char,
794 keys_len: size_t,
795 ) -> ();
796 pub fn rados_write_op_omap_clear(write_op: rados_write_op_t) -> ();
797 pub fn rados_write_op_set_alloc_hint(
798 write_op: rados_write_op_t,
799 expected_object_size: u64,
800 expected_write_size: u64,
801 ) -> ();
802 pub fn rados_write_op_operate(
803 write_op: rados_write_op_t,
804 io: rados_ioctx_t,
805 oid: *const ::libc::c_char,
806 mtime: *mut time_t,
807 flags: ::libc::c_int,
808 ) -> ::libc::c_int;
809 pub fn rados_aio_write_op_operate(
810 write_op: rados_write_op_t,
811 io: rados_ioctx_t,
812 completion: rados_completion_t,
813 oid: *const ::libc::c_char,
814 mtime: *mut time_t,
815 flags: ::libc::c_int,
816 ) -> ::libc::c_int;
817 pub fn rados_create_read_op() -> rados_read_op_t;
818 pub fn rados_release_read_op(read_op: rados_read_op_t) -> ();
819 pub fn rados_read_op_set_flags(read_op: rados_read_op_t, flags: ::libc::c_int) -> ();
820 pub fn rados_read_op_assert_exists(read_op: rados_read_op_t) -> ();
821 pub fn rados_read_op_assert_version(write_op: rados_read_op_t, ver: u64) -> ();
822 pub fn rados_read_op_cmpxattr(
823 read_op: rados_read_op_t,
824 name: *const ::libc::c_char,
825 comparison_operator: u8,
826 value: *const ::libc::c_char,
827 value_len: size_t,
828 ) -> ();
829 pub fn rados_read_op_getxattrs(
830 read_op: rados_read_op_t,
831 iter: *mut rados_xattrs_iter_t,
832 prval: *mut ::libc::c_int,
833 ) -> ();
834 pub fn rados_read_op_omap_cmp(
835 read_op: rados_read_op_t,
836 key: *const ::libc::c_char,
837 comparison_operator: u8,
838 val: *const ::libc::c_char,
839 val_len: size_t,
840 prval: *mut ::libc::c_int,
841 ) -> ();
842 pub fn rados_read_op_stat(
843 read_op: rados_read_op_t,
844 psize: *mut u64,
845 pmtime: *mut time_t,
846 prval: *mut ::libc::c_int,
847 ) -> ();
848 pub fn rados_read_op_read(
849 read_op: rados_read_op_t,
850 offset: u64,
851 len: size_t,
852 buf: *mut ::libc::c_char,
853 bytes_read: *mut size_t,
854 prval: *mut ::libc::c_int,
855 ) -> ();
856 pub fn rados_read_op_exec(
857 read_op: rados_read_op_t,
858 cls: *const ::libc::c_char,
859 method: *const ::libc::c_char,
860 in_buf: *const ::libc::c_char,
861 in_len: size_t,
862 out_buf: *mut *mut ::libc::c_char,
863 out_len: *mut size_t,
864 prval: *mut ::libc::c_int,
865 ) -> ();
866 pub fn rados_read_op_exec_user_buf(
867 read_op: rados_read_op_t,
868 cls: *const ::libc::c_char,
869 method: *const ::libc::c_char,
870 in_buf: *const ::libc::c_char,
871 in_len: size_t,
872 out_buf: *mut ::libc::c_char,
873 out_len: size_t,
874 used_len: *mut size_t,
875 prval: *mut ::libc::c_int,
876 ) -> ();
877 pub fn rados_read_op_omap_get_vals(
878 read_op: rados_read_op_t,
879 start_after: *const ::libc::c_char,
880 filter_prefix: *const ::libc::c_char,
881 max_return: u64,
882 iter: *mut rados_omap_iter_t,
883 prval: *mut ::libc::c_int,
884 ) -> ();
885 pub fn rados_read_op_omap_get_keys(
886 read_op: rados_read_op_t,
887 start_after: *const ::libc::c_char,
888 max_return: u64,
889 iter: *mut rados_omap_iter_t,
890 prval: *mut ::libc::c_int,
891 ) -> ();
892 pub fn rados_read_op_omap_get_vals_by_keys(
893 read_op: rados_read_op_t,
894 keys: *const *const ::libc::c_char,
895 keys_len: size_t,
896 iter: *mut rados_omap_iter_t,
897 prval: *mut ::libc::c_int,
898 ) -> ();
899 pub fn rados_read_op_operate(
900 read_op: rados_read_op_t,
901 io: rados_ioctx_t,
902 oid: *const ::libc::c_char,
903 flags: ::libc::c_int,
904 ) -> ::libc::c_int;
905 pub fn rados_aio_read_op_operate(
906 read_op: rados_read_op_t,
907 io: rados_ioctx_t,
908 completion: rados_completion_t,
909 oid: *const ::libc::c_char,
910 flags: ::libc::c_int,
911 ) -> ::libc::c_int;
912
913 pub fn rados_aio_getxattr(
914 io: rados_ioctx_t,
915 o: *const ::libc::c_char,
916 completion: rados_completion_t,
917 name: *const ::libc::c_char,
918 buf: *mut ::libc::c_char,
919 len: size_t,
920 ) -> ::libc::c_int;
921
922 pub fn rados_aio_setxattr(
923 io: rados_ioctx_t,
924 o: *const ::libc::c_char,
925 completion: rados_completion_t,
926 name: *const ::libc::c_char,
927 buf: *const ::libc::c_char,
928 len: size_t,
929 ) -> ::libc::c_int;
930
931 pub fn rados_aio_rmxattr(
932 io: rados_ioctx_t,
933 o: *const ::libc::c_char,
934 completion: rados_completion_t,
935 name: *const ::libc::c_char,
936 ) -> ::libc::c_int;
937
938 pub fn rados_lock_exclusive(
939 io: rados_ioctx_t,
940 o: *const ::libc::c_char,
941 name: *const ::libc::c_char,
942 cookie: *const ::libc::c_char,
943 desc: *const ::libc::c_char,
944 duration: *mut timeval,
945 flags: u8,
946 ) -> ::libc::c_int;
947 pub fn rados_lock_shared(
948 io: rados_ioctx_t,
949 o: *const ::libc::c_char,
950 name: *const ::libc::c_char,
951 cookie: *const ::libc::c_char,
952 tag: *const ::libc::c_char,
953 desc: *const ::libc::c_char,
954 duration: *mut timeval,
955 flags: u8,
956 ) -> ::libc::c_int;
957 pub fn rados_unlock(
958 io: rados_ioctx_t,
959 o: *const ::libc::c_char,
960 name: *const ::libc::c_char,
961 cookie: *const ::libc::c_char,
962 ) -> ::libc::c_int;
963 pub fn rados_list_lockers(
964 io: rados_ioctx_t,
965 o: *const ::libc::c_char,
966 name: *const ::libc::c_char,
967 exclusive: *mut ::libc::c_int,
968 tag: *mut ::libc::c_char,
969 tag_len: *mut size_t,
970 clients: *mut ::libc::c_char,
971 clients_len: *mut size_t,
972 cookies: *mut ::libc::c_char,
973 cookies_len: *mut size_t,
974 addrs: *mut ::libc::c_char,
975 addrs_len: *mut size_t,
976 ) -> ssize_t;
977 pub fn rados_break_lock(
978 io: rados_ioctx_t,
979 o: *const ::libc::c_char,
980 name: *const ::libc::c_char,
981 client: *const ::libc::c_char,
982 cookie: *const ::libc::c_char,
983 ) -> ::libc::c_int;
984 pub fn rados_blacklist_add(
985 cluster: rados_t,
986 client_address: *mut ::libc::c_char,
987 expire_seconds: u32,
988 ) -> ::libc::c_int;
989 pub fn rados_mon_command(
990 cluster: rados_t,
991 cmd: *mut *const ::libc::c_char,
992 cmdlen: size_t,
993 inbuf: *const ::libc::c_char,
994 inbuflen: size_t,
995 outbuf: *mut *mut ::libc::c_char,
996 outbuflen: *mut size_t,
997 outs: *mut *mut ::libc::c_char,
998 outslen: *mut size_t,
999 ) -> ::libc::c_int;
1000 pub fn rados_mon_command_target(
1001 cluster: rados_t,
1002 name: *const ::libc::c_char,
1003 cmd: *mut *const ::libc::c_char,
1004 cmdlen: size_t,
1005 inbuf: *const ::libc::c_char,
1006 inbuflen: size_t,
1007 outbuf: *mut *mut ::libc::c_char,
1008 outbuflen: *mut size_t,
1009 outs: *mut *mut ::libc::c_char,
1010 outslen: *mut size_t,
1011 ) -> ::libc::c_int;
1012 pub fn rados_buffer_free(buf: *mut ::libc::c_char) -> ();
1013 pub fn rados_osd_command(
1014 cluster: rados_t,
1015 osdid: ::libc::c_int,
1016 cmd: *mut *const ::libc::c_char,
1017 cmdlen: size_t,
1018 inbuf: *const ::libc::c_char,
1019 inbuflen: size_t,
1020 outbuf: *mut *mut ::libc::c_char,
1021 outbuflen: *mut size_t,
1022 outs: *mut *mut ::libc::c_char,
1023 outslen: *mut size_t,
1024 ) -> ::libc::c_int;
1025 pub fn rados_pg_command(
1026 cluster: rados_t,
1027 pgstr: *const ::libc::c_char,
1028 cmd: *mut *const ::libc::c_char,
1029 cmdlen: size_t,
1030 inbuf: *const ::libc::c_char,
1031 inbuflen: size_t,
1032 outbuf: *mut *mut ::libc::c_char,
1033 outbuflen: *mut size_t,
1034 outs: *mut *mut ::libc::c_char,
1035 outslen: *mut size_t,
1036 ) -> ::libc::c_int;
1037 pub fn rados_monitor_log(
1038 cluster: rados_t,
1039 level: *const ::libc::c_char,
1040 cb: rados_log_callback_t,
1041 arg: *mut ::std::os::raw::c_void,
1042 ) -> ::libc::c_int;
1043}