#![allow(non_camel_case_types)]
#![allow(unused_imports)]
extern crate libc;
use self::libc::{size_t, ssize_t, time_t, timeval};
bitflags! {
pub struct AllocFlags: u32 {
const LIBRADOS_OP_FLAG_EXCL = 1;
const LIBRADOS_OP_FLAG_FAILOK = 2;
const LIBRADOS_OP_FLAG_FADVISE_RANDOM = 4;
const LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL = 8;
const LIBRADOS_OP_FLAG_FADVISE_WILLNEED = 16;
const LIBRADOS_OP_FLAG_FADVISE_DONTNEED = 32;
const LIBRADOS_OP_FLAG_FADVISE_NOCACHE = 64;
}
}
impl AllocFlags {
pub fn clear(&mut self) {
self.bits = 0;
}
}
bitflags! {
pub struct XattrFlags: u32 {
const LIBRADOS_CMPXATTR_OP_EQ = 1;
const LIBRADOS_CMPXATTR_OP_NE = 2;
const LIBRADOS_CMPXATTR_OP_GT = 3;
const LIBRADOS_CMPXATTR_OP_GTE = 4;
const LIBRADOS_CMPXATTR_OP_LT = 5;
const LIBRADOS_CMPXATTR_OP_LTE = 6;
}
}
impl XattrFlags {
pub fn clear(&mut self) {
self.bits = 0;
}
}
bitflags! {
pub struct OperationFlags: u32 {
const LIBRADOS_OPERATION_NOFLAG= 0;
const LIBRADOS_OPERATION_BALANCE_READS= 1;
const LIBRADOS_OPERATION_LOCALIZE_READS= 2;
const LIBRADOS_OPERATION_ORDER_READS_WRITES= 4;
const LIBRADOS_OPERATION_IGNORE_CACHE= 8;
const LIBRADOS_OPERATION_SKIPRWLOCKS= 16;
const LIBRADOS_OPERATION_IGNORE_OVERLAY= 32;
}
}
impl OperationFlags {
pub fn clear(&mut self) {
self.bits = 0;
}
}
pub type rados_t = *mut ::std::os::raw::c_void;
pub type rados_config_t = *mut ::std::os::raw::c_void;
pub type rados_ioctx_t = *mut ::std::os::raw::c_void;
pub type rados_list_ctx_t = *mut ::std::os::raw::c_void;
pub type rados_snap_t = u64;
pub type rados_xattrs_iter_t = *mut ::std::os::raw::c_void;
pub type rados_omap_iter_t = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Copy, Debug)]
pub struct Struct_rados_pool_stat_t {
pub num_bytes: u64,
pub num_kb: u64,
pub num_objects: u64,
pub num_object_clones: u64,
pub num_object_copies: u64,
pub num_objects_missing_on_primary: u64,
pub num_objects_unfound: u64,
pub num_objects_degraded: u64,
pub num_rd: u64,
pub num_rd_kb: u64,
pub num_wr: u64,
pub num_wr_kb: u64,
}
impl ::std::clone::Clone for Struct_rados_pool_stat_t {
fn clone(&self) -> Self {
*self
}
}
impl ::std::default::Default for Struct_rados_pool_stat_t {
fn default() -> Self {
unsafe { ::std::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Copy, Debug)]
pub struct Struct_rados_cluster_stat_t {
pub kb: u64,
pub kb_used: u64,
pub kb_avail: u64,
pub num_objects: u64,
}
impl ::std::clone::Clone for Struct_rados_cluster_stat_t {
fn clone(&self) -> Self {
*self
}
}
impl ::std::default::Default for Struct_rados_cluster_stat_t {
fn default() -> Self {
unsafe { ::std::mem::zeroed() }
}
}
pub type rados_write_op_t = *mut ::std::os::raw::c_void;
pub type rados_read_op_t = *mut ::std::os::raw::c_void;
pub type rados_completion_t = *mut ::std::os::raw::c_void;
pub type rados_callback_t = ::std::option::Option<
extern "C" fn(cb: rados_completion_t, arg: *mut ::std::os::raw::c_void) -> (),
>;
pub type rados_watchcb_t = ::std::option::Option<
extern "C" fn(opcode: u8, ver: u64, arg: *mut ::std::os::raw::c_void) -> (),
>;
pub type rados_watchcb2_t = ::std::option::Option<
extern "C" fn(
arg: *mut ::std::os::raw::c_void,
notify_id: u64,
handle: u64,
notifier_id: u64,
data: *mut ::std::os::raw::c_void,
data_len: size_t,
) -> (),
>;
pub type rados_watcherrcb_t = ::std::option::Option<
extern "C" fn(pre: *mut ::std::os::raw::c_void, cookie: u64, err: ::libc::c_int) -> (),
>;
pub type rados_log_callback_t = ::std::option::Option<
extern "C" fn(
arg: *mut ::std::os::raw::c_void,
line: *const ::libc::c_char,
who: *const ::libc::c_char,
sec: u64,
nsec: u64,
seq: u64,
level: *const ::libc::c_char,
msg: *const ::libc::c_char,
) -> (),
>;
#[cfg(unix)]
#[link(name = "rados", kind = "dylib")]
extern "C" {
pub fn rados_version(
major: *mut ::libc::c_int,
minor: *mut ::libc::c_int,
extra: *mut ::libc::c_int,
) -> ();
pub fn rados_create(cluster: *mut rados_t, id: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_create2(
pcluster: *mut rados_t,
clustername: *const ::libc::c_char,
name: *const ::libc::c_char,
flags: u64,
) -> ::libc::c_int;
pub fn rados_create_with_context(cluster: *mut rados_t, cct: rados_config_t) -> ::libc::c_int;
pub fn rados_ping_monitor(
cluster: rados_t,
mon_id: *const ::libc::c_char,
outstr: *mut *mut ::libc::c_char,
outstrlen: *mut size_t,
) -> ::libc::c_int;
pub fn rados_connect(cluster: rados_t) -> ::libc::c_int;
pub fn rados_shutdown(cluster: rados_t) -> ();
pub fn rados_conf_read_file(cluster: rados_t, path: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_conf_parse_argv(
cluster: rados_t,
argc: ::libc::c_int,
argv: *mut *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_conf_parse_argv_remainder(
cluster: rados_t,
argc: ::libc::c_int,
argv: *mut *const ::libc::c_char,
remargv: *mut *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_conf_parse_env(cluster: rados_t, var: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_conf_set(
cluster: rados_t,
option: *const ::libc::c_char,
value: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_conf_get(
cluster: rados_t,
option: *const ::libc::c_char,
buf: *mut ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_cluster_stat(
cluster: rados_t,
result: *mut Struct_rados_cluster_stat_t,
) -> ::libc::c_int;
pub fn rados_cluster_fsid(
cluster: rados_t,
buf: *mut ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_wait_for_latest_osdmap(cluster: rados_t) -> ::libc::c_int;
pub fn rados_pool_list(
cluster: rados_t,
buf: *mut ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_cct(cluster: rados_t) -> rados_config_t;
pub fn rados_get_instance_id(cluster: rados_t) -> u64;
pub fn rados_ioctx_create(
cluster: rados_t,
pool_name: *const ::libc::c_char,
ioctx: *mut rados_ioctx_t,
) -> ::libc::c_int;
pub fn rados_ioctx_create2(
cluster: rados_t,
pool_id: i64,
ioctx: *mut rados_ioctx_t,
) -> ::libc::c_int;
pub fn rados_ioctx_destroy(io: rados_ioctx_t) -> ();
pub fn rados_ioctx_cct(io: rados_ioctx_t) -> rados_config_t;
pub fn rados_ioctx_get_cluster(io: rados_ioctx_t) -> rados_t;
pub fn rados_ioctx_pool_stat(
io: rados_ioctx_t,
stats: *mut Struct_rados_pool_stat_t,
) -> ::libc::c_int;
pub fn rados_pool_lookup(cluster: rados_t, pool_name: *const ::libc::c_char) -> i64;
pub fn rados_pool_reverse_lookup(
cluster: rados_t,
id: i64,
buf: *mut ::libc::c_char,
maxlen: size_t,
) -> ::libc::c_int;
pub fn rados_pool_create(cluster: rados_t, pool_name: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_pool_create_with_auid(
cluster: rados_t,
pool_name: *const ::libc::c_char,
auid: u64,
) -> ::libc::c_int;
pub fn rados_pool_create_with_crush_rule(
cluster: rados_t,
pool_name: *const ::libc::c_char,
crush_rule_num: u8,
) -> ::libc::c_int;
pub fn rados_pool_create_with_all(
cluster: rados_t,
pool_name: *const ::libc::c_char,
auid: u64,
crush_rule_num: u8,
) -> ::libc::c_int;
pub fn rados_pool_get_base_tier(
cluster: rados_t,
pool: i64,
base_tier: *mut i64,
) -> ::libc::c_int;
pub fn rados_pool_delete(cluster: rados_t, pool_name: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_ioctx_pool_set_auid(io: rados_ioctx_t, auid: u64) -> ::libc::c_int;
pub fn rados_ioctx_pool_get_auid(io: rados_ioctx_t, auid: *mut u64) -> ::libc::c_int;
pub fn rados_ioctx_pool_requires_alignment(io: rados_ioctx_t) -> ::libc::c_int;
pub fn rados_ioctx_pool_required_alignment(io: rados_ioctx_t) -> u64;
pub fn rados_ioctx_get_id(io: rados_ioctx_t) -> i64;
pub fn rados_ioctx_get_pool_name(
io: rados_ioctx_t,
buf: *mut ::libc::c_char,
maxlen: ::libc::c_uint,
) -> ::libc::c_int;
pub fn rados_ioctx_locator_set_key(io: rados_ioctx_t, key: *const ::libc::c_char) -> ();
pub fn rados_ioctx_set_namespace(io: rados_ioctx_t, nspace: *const ::libc::c_char) -> ();
pub fn rados_nobjects_list_open(io: rados_ioctx_t, ctx: *mut rados_list_ctx_t)
-> ::libc::c_int;
pub fn rados_nobjects_list_get_pg_hash_position(ctx: rados_list_ctx_t) -> u32;
pub fn rados_nobjects_list_seek(ctx: rados_list_ctx_t, pos: u32) -> u32;
pub fn rados_nobjects_list_next(
ctx: rados_list_ctx_t,
entry: *mut *mut *const ::libc::c_char,
key: *mut *mut *const ::libc::c_char,
nspace: *mut *mut *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_nobjects_list_close(ctx: rados_list_ctx_t) -> ();
pub fn rados_objects_list_open(io: rados_ioctx_t, ctx: *mut rados_list_ctx_t) -> ::libc::c_int;
pub fn rados_objects_list_get_pg_hash_position(ctx: rados_list_ctx_t) -> u32;
pub fn rados_objects_list_seek(ctx: rados_list_ctx_t, pos: u32) -> u32;
pub fn rados_objects_list_next(
ctx: rados_list_ctx_t,
entry: *mut *const ::libc::c_char,
key: *mut *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_objects_list_close(ctx: rados_list_ctx_t) -> ();
pub fn rados_ioctx_snap_create(
io: rados_ioctx_t,
snapname: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_remove(
io: rados_ioctx_t,
snapname: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_rollback(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
snapname: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_rollback(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
snapname: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_set_read(io: rados_ioctx_t, snap: rados_snap_t) -> ();
pub fn rados_ioctx_selfmanaged_snap_create(
io: rados_ioctx_t,
snapid: *mut rados_snap_t,
) -> ::libc::c_int;
pub fn rados_ioctx_selfmanaged_snap_remove(
io: rados_ioctx_t,
snapid: rados_snap_t,
) -> ::libc::c_int;
pub fn rados_ioctx_selfmanaged_snap_rollback(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
snapid: rados_snap_t,
) -> ::libc::c_int;
pub fn rados_ioctx_selfmanaged_snap_set_write_ctx(
io: rados_ioctx_t,
seq: rados_snap_t,
snaps: *mut rados_snap_t,
num_snaps: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_list(
io: rados_ioctx_t,
snaps: *mut rados_snap_t,
maxlen: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_lookup(
io: rados_ioctx_t,
name: *const ::libc::c_char,
id: *mut rados_snap_t,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_get_name(
io: rados_ioctx_t,
id: rados_snap_t,
name: *mut ::libc::c_char,
maxlen: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_ioctx_snap_get_stamp(
io: rados_ioctx_t,
id: rados_snap_t,
t: *mut time_t,
) -> ::libc::c_int;
pub fn rados_get_last_version(io: rados_ioctx_t) -> u64;
pub fn rados_write(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
buf: *const ::libc::c_char,
len: size_t,
off: u64,
) -> ::libc::c_int;
pub fn rados_write_full(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
buf: *const ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_clone_range(
io: rados_ioctx_t,
dst: *const ::libc::c_char,
dst_off: u64,
src: *const ::libc::c_char,
src_off: u64,
len: size_t,
) -> ::libc::c_int;
pub fn rados_append(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
buf: *const ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_read(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
buf: *mut ::libc::c_char,
len: size_t,
off: u64,
) -> ::libc::c_int;
pub fn rados_remove(io: rados_ioctx_t, oid: *const ::libc::c_char) -> ::libc::c_int;
pub fn rados_trunc(io: rados_ioctx_t, oid: *const ::libc::c_char, size: u64) -> ::libc::c_int;
pub fn rados_getxattr(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
buf: *mut ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_setxattr(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
buf: *const ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_rmxattr(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_getxattrs(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
iter: *mut rados_xattrs_iter_t,
) -> ::libc::c_int;
pub fn rados_getxattrs_next(
iter: rados_xattrs_iter_t,
name: *mut *const ::libc::c_char,
val: *mut *const ::libc::c_char,
len: *mut size_t,
) -> ::libc::c_int;
pub fn rados_getxattrs_end(iter: rados_xattrs_iter_t) -> ();
pub fn rados_omap_get_next(
iter: rados_omap_iter_t,
key: *mut *mut ::libc::c_char,
val: *mut *mut ::libc::c_char,
len: *mut size_t,
) -> ::libc::c_int;
pub fn rados_omap_get_end(iter: rados_omap_iter_t) -> ();
pub fn rados_stat(
io: rados_ioctx_t,
o: *const ::libc::c_char,
psize: *mut u64,
pmtime: *mut time_t,
) -> ::libc::c_int;
pub fn rados_tmap_update(
io: rados_ioctx_t,
o: *const ::libc::c_char,
cmdbuf: *const ::libc::c_char,
cmdbuflen: size_t,
) -> ::libc::c_int;
pub fn rados_tmap_put(
io: rados_ioctx_t,
o: *const ::libc::c_char,
buf: *const ::libc::c_char,
buflen: size_t,
) -> ::libc::c_int;
pub fn rados_tmap_get(
io: rados_ioctx_t,
o: *const ::libc::c_char,
buf: *mut ::libc::c_char,
buflen: size_t,
) -> ::libc::c_int;
pub fn rados_exec(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
cls: *const ::libc::c_char,
method: *const ::libc::c_char,
in_buf: *const ::libc::c_char,
in_len: size_t,
buf: *mut ::libc::c_char,
out_len: size_t,
) -> ::libc::c_int;
pub fn rados_aio_create_completion(
cb_arg: *mut ::std::os::raw::c_void,
cb_complete: rados_callback_t,
cb_safe: rados_callback_t,
pc: *mut rados_completion_t,
) -> ::libc::c_int;
pub fn rados_aio_wait_for_complete(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_wait_for_safe(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_is_complete(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_is_safe(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_wait_for_complete_and_cb(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_wait_for_safe_and_cb(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_is_complete_and_cb(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_is_safe_and_cb(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_get_return_value(c: rados_completion_t) -> ::libc::c_int;
pub fn rados_aio_release(c: rados_completion_t) -> ();
pub fn rados_aio_write(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
completion: rados_completion_t,
buf: *const ::libc::c_char,
len: size_t,
off: u64,
) -> ::libc::c_int;
pub fn rados_aio_append(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
completion: rados_completion_t,
buf: *const ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_aio_write_full(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
completion: rados_completion_t,
buf: *const ::libc::c_char,
len: size_t,
) -> ::libc::c_int;
pub fn rados_aio_remove(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
completion: rados_completion_t,
) -> ::libc::c_int;
pub fn rados_aio_read(
io: rados_ioctx_t,
oid: *const ::libc::c_char,
completion: rados_completion_t,
buf: *mut ::libc::c_char,
len: size_t,
off: u64,
) -> ::libc::c_int;
pub fn rados_aio_flush(io: rados_ioctx_t) -> ::libc::c_int;
pub fn rados_aio_flush_async(
io: rados_ioctx_t,
completion: rados_completion_t,
) -> ::libc::c_int;
pub fn rados_aio_stat(
io: rados_ioctx_t,
o: *const ::libc::c_char,
completion: rados_completion_t,
psize: *mut u64,
pmtime: *mut time_t,
) -> ::libc::c_int;
pub fn rados_aio_cancel(io: rados_ioctx_t, completion: rados_completion_t) -> ::libc::c_int;
pub fn rados_watch(
io: rados_ioctx_t,
o: *const ::libc::c_char,
ver: u64,
cookie: *mut u64,
watchcb: rados_watchcb_t,
arg: *mut ::std::os::raw::c_void,
) -> ::libc::c_int;
pub fn rados_watch2(
io: rados_ioctx_t,
o: *const ::libc::c_char,
cookie: *mut u64,
watchcb: rados_watchcb2_t,
watcherrcb: rados_watcherrcb_t,
arg: *mut ::std::os::raw::c_void,
) -> ::libc::c_int;
pub fn rados_watch_check(io: rados_ioctx_t, cookie: u64) -> ::libc::c_int;
pub fn rados_unwatch(io: rados_ioctx_t, o: *const ::libc::c_char, cookie: u64)
-> ::libc::c_int;
pub fn rados_unwatch2(io: rados_ioctx_t, cookie: u64) -> ::libc::c_int;
pub fn rados_notify(
io: rados_ioctx_t,
o: *const ::libc::c_char,
ver: u64,
buf: *const ::libc::c_char,
buf_len: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_notify2(
io: rados_ioctx_t,
o: *const ::libc::c_char,
buf: *const ::libc::c_char,
buf_len: ::libc::c_int,
timeout_ms: u64,
reply_buffer: *mut *mut ::libc::c_char,
reply_buffer_len: *mut size_t,
) -> ::libc::c_int;
pub fn rados_notify_ack(
io: rados_ioctx_t,
o: *const ::libc::c_char,
notify_id: u64,
cookie: u64,
buf: *const ::libc::c_char,
buf_len: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_watch_flush(cluster: rados_t) -> ::libc::c_int;
pub fn rados_set_alloc_hint(
io: rados_ioctx_t,
o: *const ::libc::c_char,
expected_object_size: u64,
expected_write_size: u64,
) -> ::libc::c_int;
pub fn rados_create_write_op() -> rados_write_op_t;
pub fn rados_release_write_op(write_op: rados_write_op_t) -> ();
pub fn rados_write_op_set_flags(write_op: rados_write_op_t, flags: ::libc::c_int) -> ();
pub fn rados_write_op_assert_exists(write_op: rados_write_op_t) -> ();
pub fn rados_write_op_assert_version(write_op: rados_write_op_t, ver: u64) -> ();
pub fn rados_write_op_cmpxattr(
write_op: rados_write_op_t,
name: *const ::libc::c_char,
comparison_operator: u8,
value: *const ::libc::c_char,
value_len: size_t,
) -> ();
pub fn rados_write_op_omap_cmp(
write_op: rados_write_op_t,
key: *const ::libc::c_char,
comparison_operator: u8,
val: *const ::libc::c_char,
val_len: size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_write_op_setxattr(
write_op: rados_write_op_t,
name: *const ::libc::c_char,
value: *const ::libc::c_char,
value_len: size_t,
) -> ();
pub fn rados_write_op_rmxattr(write_op: rados_write_op_t, name: *const ::libc::c_char) -> ();
pub fn rados_write_op_create(
write_op: rados_write_op_t,
exclusive: ::libc::c_int,
category: *const ::libc::c_char,
) -> ();
pub fn rados_write_op_write(
write_op: rados_write_op_t,
buffer: *const ::libc::c_char,
len: size_t,
offset: u64,
) -> ();
pub fn rados_write_op_write_full(
write_op: rados_write_op_t,
buffer: *const ::libc::c_char,
len: size_t,
) -> ();
pub fn rados_write_op_append(
write_op: rados_write_op_t,
buffer: *const ::libc::c_char,
len: size_t,
) -> ();
pub fn rados_write_op_remove(write_op: rados_write_op_t) -> ();
pub fn rados_write_op_truncate(write_op: rados_write_op_t, offset: u64) -> ();
pub fn rados_write_op_zero(write_op: rados_write_op_t, offset: u64, len: u64) -> ();
pub fn rados_write_op_exec(
write_op: rados_write_op_t,
cls: *const ::libc::c_char,
method: *const ::libc::c_char,
in_buf: *const ::libc::c_char,
in_len: size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_write_op_omap_set(
write_op: rados_write_op_t,
keys: *const *const ::libc::c_char,
vals: *const *const ::libc::c_char,
lens: *const size_t,
num: size_t,
) -> ();
pub fn rados_write_op_omap_rm_keys(
write_op: rados_write_op_t,
keys: *const *const ::libc::c_char,
keys_len: size_t,
) -> ();
pub fn rados_write_op_omap_clear(write_op: rados_write_op_t) -> ();
pub fn rados_write_op_set_alloc_hint(
write_op: rados_write_op_t,
expected_object_size: u64,
expected_write_size: u64,
) -> ();
pub fn rados_write_op_operate(
write_op: rados_write_op_t,
io: rados_ioctx_t,
oid: *const ::libc::c_char,
mtime: *mut time_t,
flags: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_aio_write_op_operate(
write_op: rados_write_op_t,
io: rados_ioctx_t,
completion: rados_completion_t,
oid: *const ::libc::c_char,
mtime: *mut time_t,
flags: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_create_read_op() -> rados_read_op_t;
pub fn rados_release_read_op(read_op: rados_read_op_t) -> ();
pub fn rados_read_op_set_flags(read_op: rados_read_op_t, flags: ::libc::c_int) -> ();
pub fn rados_read_op_assert_exists(read_op: rados_read_op_t) -> ();
pub fn rados_read_op_assert_version(write_op: rados_read_op_t, ver: u64) -> ();
pub fn rados_read_op_cmpxattr(
read_op: rados_read_op_t,
name: *const ::libc::c_char,
comparison_operator: u8,
value: *const ::libc::c_char,
value_len: size_t,
) -> ();
pub fn rados_read_op_getxattrs(
read_op: rados_read_op_t,
iter: *mut rados_xattrs_iter_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_omap_cmp(
read_op: rados_read_op_t,
key: *const ::libc::c_char,
comparison_operator: u8,
val: *const ::libc::c_char,
val_len: size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_stat(
read_op: rados_read_op_t,
psize: *mut u64,
pmtime: *mut time_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_read(
read_op: rados_read_op_t,
offset: u64,
len: size_t,
buf: *mut ::libc::c_char,
bytes_read: *mut size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_exec(
read_op: rados_read_op_t,
cls: *const ::libc::c_char,
method: *const ::libc::c_char,
in_buf: *const ::libc::c_char,
in_len: size_t,
out_buf: *mut *mut ::libc::c_char,
out_len: *mut size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_exec_user_buf(
read_op: rados_read_op_t,
cls: *const ::libc::c_char,
method: *const ::libc::c_char,
in_buf: *const ::libc::c_char,
in_len: size_t,
out_buf: *mut ::libc::c_char,
out_len: size_t,
used_len: *mut size_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_omap_get_vals(
read_op: rados_read_op_t,
start_after: *const ::libc::c_char,
filter_prefix: *const ::libc::c_char,
max_return: u64,
iter: *mut rados_omap_iter_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_omap_get_keys(
read_op: rados_read_op_t,
start_after: *const ::libc::c_char,
max_return: u64,
iter: *mut rados_omap_iter_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_omap_get_vals_by_keys(
read_op: rados_read_op_t,
keys: *const *const ::libc::c_char,
keys_len: size_t,
iter: *mut rados_omap_iter_t,
prval: *mut ::libc::c_int,
) -> ();
pub fn rados_read_op_operate(
read_op: rados_read_op_t,
io: rados_ioctx_t,
oid: *const ::libc::c_char,
flags: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_aio_read_op_operate(
read_op: rados_read_op_t,
io: rados_ioctx_t,
completion: rados_completion_t,
oid: *const ::libc::c_char,
flags: ::libc::c_int,
) -> ::libc::c_int;
pub fn rados_lock_exclusive(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
cookie: *const ::libc::c_char,
desc: *const ::libc::c_char,
duration: *mut timeval,
flags: u8,
) -> ::libc::c_int;
pub fn rados_lock_shared(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
cookie: *const ::libc::c_char,
tag: *const ::libc::c_char,
desc: *const ::libc::c_char,
duration: *mut timeval,
flags: u8,
) -> ::libc::c_int;
pub fn rados_unlock(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
cookie: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_list_lockers(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
exclusive: *mut ::libc::c_int,
tag: *mut ::libc::c_char,
tag_len: *mut size_t,
clients: *mut ::libc::c_char,
clients_len: *mut size_t,
cookies: *mut ::libc::c_char,
cookies_len: *mut size_t,
addrs: *mut ::libc::c_char,
addrs_len: *mut size_t,
) -> ssize_t;
pub fn rados_break_lock(
io: rados_ioctx_t,
o: *const ::libc::c_char,
name: *const ::libc::c_char,
client: *const ::libc::c_char,
cookie: *const ::libc::c_char,
) -> ::libc::c_int;
pub fn rados_blacklist_add(
cluster: rados_t,
client_address: *mut ::libc::c_char,
expire_seconds: u32,
) -> ::libc::c_int;
pub fn rados_mon_command(
cluster: rados_t,
cmd: *mut *const ::libc::c_char,
cmdlen: size_t,
inbuf: *const ::libc::c_char,
inbuflen: size_t,
outbuf: *mut *mut ::libc::c_char,
outbuflen: *mut size_t,
outs: *mut *mut ::libc::c_char,
outslen: *mut size_t,
) -> ::libc::c_int;
pub fn rados_mon_command_target(
cluster: rados_t,
name: *const ::libc::c_char,
cmd: *mut *const ::libc::c_char,
cmdlen: size_t,
inbuf: *const ::libc::c_char,
inbuflen: size_t,
outbuf: *mut *mut ::libc::c_char,
outbuflen: *mut size_t,
outs: *mut *mut ::libc::c_char,
outslen: *mut size_t,
) -> ::libc::c_int;
pub fn rados_buffer_free(buf: *mut ::libc::c_char) -> ();
pub fn rados_osd_command(
cluster: rados_t,
osdid: ::libc::c_int,
cmd: *mut *const ::libc::c_char,
cmdlen: size_t,
inbuf: *const ::libc::c_char,
inbuflen: size_t,
outbuf: *mut *mut ::libc::c_char,
outbuflen: *mut size_t,
outs: *mut *mut ::libc::c_char,
outslen: *mut size_t,
) -> ::libc::c_int;
pub fn rados_pg_command(
cluster: rados_t,
pgstr: *const ::libc::c_char,
cmd: *mut *const ::libc::c_char,
cmdlen: size_t,
inbuf: *const ::libc::c_char,
inbuflen: size_t,
outbuf: *mut *mut ::libc::c_char,
outbuflen: *mut size_t,
outs: *mut *mut ::libc::c_char,
outslen: *mut size_t,
) -> ::libc::c_int;
pub fn rados_monitor_log(
cluster: rados_t,
level: *const ::libc::c_char,
cb: rados_log_callback_t,
arg: *mut ::std::os::raw::c_void,
) -> ::libc::c_int;
}