From 809c1dc92e4be001980178d737d1ba990b1e9557 Mon Sep 17 00:00:00 2001 From: Fu Chen Date: Wed, 18 Dec 2019 11:56:16 +0800 Subject: [PATCH] bindgen: pre-generate bindings (#402) --- README.md | 8 + librocksdb_sys/Cargo.toml | 1 + .../x86_64-unknown-linux-gnu-bindings.rs | 4269 +++++++++++++++++ librocksdb_sys/build.rs | 48 + scripts/generate-bindings.sh | 9 + 5 files changed, 4335 insertions(+) create mode 100644 librocksdb_sys/bindings/x86_64-unknown-linux-gnu-bindings.rs create mode 100755 scripts/generate-bindings.sh diff --git a/README.md b/README.md index 46b67acc3..4382efcb4 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,14 @@ $ git submodule update --init --recursive # if you just cloned the repository $ cargo build ``` +Bindings are pre-generated for x86_64 Linux. For other platforms, bindings are generated at compile time. + +If the content in librocksdb_sys/crocksdb/crocksdb/c.h is updated, you may need to regenerate bindings: + +``` +$ ./scripts/generate-bindings.sh +``` + ## Running ###### Cargo.toml diff --git a/librocksdb_sys/Cargo.toml b/librocksdb_sys/Cargo.toml index 26c71a50a..6795b95f5 100644 --- a/librocksdb_sys/Cargo.toml +++ b/librocksdb_sys/Cargo.toml @@ -23,6 +23,7 @@ sse = ["libtitan_sys/sse"] [build-dependencies] cc = "1.0.3" cmake = "0.1" +bindgen = "0.52" [dependencies.jemalloc-sys] version = "0.1.8" diff --git a/librocksdb_sys/bindings/x86_64-unknown-linux-gnu-bindings.rs b/librocksdb_sys/bindings/x86_64-unknown-linux-gnu-bindings.rs new file mode 100644 index 000000000..62145f602 --- /dev/null +++ b/librocksdb_sys/bindings/x86_64-unknown-linux-gnu-bindings.rs @@ -0,0 +1,4269 @@ +/* automatically generated by rust-bindgen */ + +pub const __GNUC_VA_LIST: u32 = 1; +pub const _STDINT_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const __USE_ANSI: u32 = 1; +pub const _BSD_SOURCE: u32 = 1; +pub const _SVID_SOURCE: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_BSD: u32 = 1; +pub const __USE_SVID: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201103; +pub const __STDC_NO_THREADS__: u32 = 1; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 17; +pub const __GLIBC_HAVE_LONG_LONG: u32 = 1; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const _BITS_WCHAR_H: u32 = 1; +pub const __WCHAR_MIN: i32 = -2147483648; +pub const __WCHAR_MAX: u32 = 2147483647; +pub const INT8_MIN: i32 = -128; +pub const INT16_MIN: i32 = -32768; +pub const INT32_MIN: i32 = -2147483648; +pub const INT8_MAX: u32 = 127; +pub const INT16_MAX: u32 = 32767; +pub const INT32_MAX: u32 = 2147483647; +pub const UINT8_MAX: u32 = 255; +pub const UINT16_MAX: u32 = 65535; +pub const UINT32_MAX: u32 = 4294967295; +pub const INT_LEAST8_MIN: i32 = -128; +pub const INT_LEAST16_MIN: i32 = -32768; +pub const INT_LEAST32_MIN: i32 = -2147483648; +pub const INT_LEAST8_MAX: u32 = 127; +pub const INT_LEAST16_MAX: u32 = 32767; +pub const INT_LEAST32_MAX: u32 = 2147483647; +pub const UINT_LEAST8_MAX: u32 = 255; +pub const UINT_LEAST16_MAX: u32 = 65535; +pub const UINT_LEAST32_MAX: u32 = 4294967295; +pub const INT_FAST8_MIN: i32 = -128; +pub const INT_FAST16_MIN: i64 = -9223372036854775808; +pub const INT_FAST32_MIN: i64 = -9223372036854775808; +pub const INT_FAST8_MAX: u32 = 127; +pub const INT_FAST16_MAX: u64 = 9223372036854775807; +pub const INT_FAST32_MAX: u64 = 9223372036854775807; +pub const UINT_FAST8_MAX: u32 = 255; +pub const UINT_FAST16_MAX: i32 = -1; +pub const UINT_FAST32_MAX: i32 = -1; +pub const INTPTR_MIN: i64 = -9223372036854775808; +pub const INTPTR_MAX: u64 = 9223372036854775807; +pub const UINTPTR_MAX: i32 = -1; +pub const PTRDIFF_MIN: i64 = -9223372036854775808; +pub const PTRDIFF_MAX: u64 = 9223372036854775807; +pub const SIG_ATOMIC_MIN: i32 = -2147483648; +pub const SIG_ATOMIC_MAX: u32 = 2147483647; +pub const SIZE_MAX: i32 = -1; +pub const WCHAR_MIN: i32 = -2147483648; +pub const WCHAR_MAX: u32 = 2147483647; +pub const WINT_MIN: u32 = 0; +pub const WINT_MAX: u32 = 4294967295; +pub type va_list = __builtin_va_list; +pub type __gnuc_va_list = __builtin_va_list; +pub type wchar_t = libc::c_int; +pub type int_least8_t = libc::c_schar; +pub type int_least16_t = libc::c_short; +pub type int_least32_t = libc::c_int; +pub type int_least64_t = libc::c_long; +pub type uint_least8_t = libc::c_uchar; +pub type uint_least16_t = libc::c_ushort; +pub type uint_least32_t = libc::c_uint; +pub type uint_least64_t = libc::c_ulong; +pub type int_fast8_t = libc::c_schar; +pub type int_fast16_t = libc::c_long; +pub type int_fast32_t = libc::c_long; +pub type int_fast64_t = libc::c_long; +pub type uint_fast8_t = libc::c_uchar; +pub type uint_fast16_t = libc::c_ulong; +pub type uint_fast32_t = libc::c_ulong; +pub type uint_fast64_t = libc::c_ulong; +pub type intmax_t = libc::c_long; +pub type uintmax_t = libc::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_status_ptr_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_backup_engine_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_backup_engine_info_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_restore_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_lru_cache_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_cache_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_memory_allocator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compactionfilter_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compactionfiltercontext_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compactionfilterfactory_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_comparator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_env_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_fifo_compaction_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_filelock_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_filterpolicy_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_flushoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_iterator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_logger_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_mergeoperator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_column_family_descriptor { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compactoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_block_based_table_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_cuckoo_table_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_randomfile_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_readoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_seqfile_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_slicetransform_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_snapshot_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_writablefile_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_writebatch_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_writeoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_universal_compaction_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_livefiles_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_column_family_handle_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_envoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_sequential_file_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_ingestexternalfileoptions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_sstfilereader_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_sstfilewriter_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_externalsstfileinfo_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_ratelimiter_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_pinnableslice_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_user_collected_properties_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_user_collected_properties_iterator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_table_properties_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_table_properties_collection_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_table_properties_collection_iterator_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_table_properties_collector_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_table_properties_collector_factory_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_flushjobinfo_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compactionjobinfo_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_externalfileingestioninfo_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_eventlistener_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_keyversions_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_column_family_meta_data_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_level_meta_data_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_sst_file_meta_data_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_compaction_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_perf_context_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_iostats_context_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_writestallinfo_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_writestallcondition_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct crocksdb_map_property_t { + _unused: [u8; 0], +} +pub const crocksdb_table_property_t_kDataSize: crocksdb_table_property_t = 1; +pub const crocksdb_table_property_t_kIndexSize: crocksdb_table_property_t = 2; +pub const crocksdb_table_property_t_kFilterSize: crocksdb_table_property_t = 3; +pub const crocksdb_table_property_t_kRawKeySize: crocksdb_table_property_t = 4; +pub const crocksdb_table_property_t_kRawValueSize: crocksdb_table_property_t = 5; +pub const crocksdb_table_property_t_kNumDataBlocks: crocksdb_table_property_t = 6; +pub const crocksdb_table_property_t_kNumEntries: crocksdb_table_property_t = 7; +pub const crocksdb_table_property_t_kFormatVersion: crocksdb_table_property_t = 8; +pub const crocksdb_table_property_t_kFixedKeyLen: crocksdb_table_property_t = 9; +pub const crocksdb_table_property_t_kColumnFamilyID: crocksdb_table_property_t = 10; +pub const crocksdb_table_property_t_kColumnFamilyName: crocksdb_table_property_t = 11; +pub const crocksdb_table_property_t_kFilterPolicyName: crocksdb_table_property_t = 12; +pub const crocksdb_table_property_t_kComparatorName: crocksdb_table_property_t = 13; +pub const crocksdb_table_property_t_kMergeOperatorName: crocksdb_table_property_t = 14; +pub const crocksdb_table_property_t_kPrefixExtractorName: crocksdb_table_property_t = 15; +pub const crocksdb_table_property_t_kPropertyCollectorsNames: crocksdb_table_property_t = 16; +pub const crocksdb_table_property_t_kCompressionName: crocksdb_table_property_t = 17; +pub type crocksdb_table_property_t = u32; +pub const crocksdb_ratelimiter_mode_t_kReadsOnly: crocksdb_ratelimiter_mode_t = 1; +pub const crocksdb_ratelimiter_mode_t_kWritesOnly: crocksdb_ratelimiter_mode_t = 2; +pub const crocksdb_ratelimiter_mode_t_kAllIo: crocksdb_ratelimiter_mode_t = 3; +pub type crocksdb_ratelimiter_mode_t = u32; +pub const crocksdb_backgrounderrorreason_t_kFlush: crocksdb_backgrounderrorreason_t = 1; +pub const crocksdb_backgrounderrorreason_t_kCompaction: crocksdb_backgrounderrorreason_t = 2; +pub const crocksdb_backgrounderrorreason_t_kWriteCallback: crocksdb_backgrounderrorreason_t = 3; +pub const crocksdb_backgrounderrorreason_t_kMemTable: crocksdb_backgrounderrorreason_t = 4; +pub type crocksdb_backgrounderrorreason_t = u32; +extern "C" { + pub fn crocksdb_open( + options: *const crocksdb_options_t, + name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_open_with_ttl( + options: *const crocksdb_options_t, + name: *const libc::c_char, + ttl: libc::c_int, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_open_for_read_only( + options: *const crocksdb_options_t, + name: *const libc::c_char, + error_if_log_file_exist: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_status_ptr_get_error( + arg1: *mut crocksdb_status_ptr_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_backup_engine_open( + options: *const crocksdb_options_t, + path: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_backup_engine_t; +} +extern "C" { + pub fn crocksdb_backup_engine_create_new_backup( + be: *mut crocksdb_backup_engine_t, + db: *mut crocksdb_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_backup_engine_purge_old_backups( + be: *mut crocksdb_backup_engine_t, + num_backups_to_keep: u32, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_restore_options_create() -> *mut crocksdb_restore_options_t; +} +extern "C" { + pub fn crocksdb_restore_options_destroy(opt: *mut crocksdb_restore_options_t); +} +extern "C" { + pub fn crocksdb_restore_options_set_keep_log_files( + opt: *mut crocksdb_restore_options_t, + v: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_backup_engine_restore_db_from_latest_backup( + be: *mut crocksdb_backup_engine_t, + db_dir: *const libc::c_char, + wal_dir: *const libc::c_char, + restore_options: *const crocksdb_restore_options_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_backup_engine_get_backup_info( + be: *mut crocksdb_backup_engine_t, + ) -> *const crocksdb_backup_engine_info_t; +} +extern "C" { + pub fn crocksdb_backup_engine_info_count( + info: *const crocksdb_backup_engine_info_t, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_backup_engine_info_timestamp( + info: *const crocksdb_backup_engine_info_t, + index: libc::c_int, + ) -> i64; +} +extern "C" { + pub fn crocksdb_backup_engine_info_backup_id( + info: *const crocksdb_backup_engine_info_t, + index: libc::c_int, + ) -> u32; +} +extern "C" { + pub fn crocksdb_backup_engine_info_size( + info: *const crocksdb_backup_engine_info_t, + index: libc::c_int, + ) -> u64; +} +extern "C" { + pub fn crocksdb_backup_engine_info_number_files( + info: *const crocksdb_backup_engine_info_t, + index: libc::c_int, + ) -> u32; +} +extern "C" { + pub fn crocksdb_backup_engine_info_destroy(info: *const crocksdb_backup_engine_info_t); +} +extern "C" { + pub fn crocksdb_backup_engine_close(be: *mut crocksdb_backup_engine_t); +} +extern "C" { + pub fn crocksdb_open_column_families( + options: *const crocksdb_options_t, + name: *const libc::c_char, + num_column_families: libc::c_int, + column_family_names: *mut *const libc::c_char, + column_family_options: *mut *const crocksdb_options_t, + column_family_handles: *mut *mut crocksdb_column_family_handle_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_open_column_families_with_ttl( + options: *const crocksdb_options_t, + name: *const libc::c_char, + num_column_families: libc::c_int, + column_family_names: *mut *const libc::c_char, + column_family_options: *mut *const crocksdb_options_t, + ttl_array: *const i32, + read_only: libc::c_uchar, + column_family_handles: *mut *mut crocksdb_column_family_handle_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_open_for_read_only_column_families( + options: *const crocksdb_options_t, + name: *const libc::c_char, + num_column_families: libc::c_int, + column_family_names: *mut *const libc::c_char, + column_family_options: *mut *const crocksdb_options_t, + column_family_handles: *mut *mut crocksdb_column_family_handle_t, + error_if_log_file_exist: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn crocksdb_list_column_families( + options: *const crocksdb_options_t, + name: *const libc::c_char, + lencf: *mut usize, + errptr: *mut *mut libc::c_char, + ) -> *mut *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_list_column_families_destroy(list: *mut *mut libc::c_char, len: usize); +} +extern "C" { + pub fn crocksdb_create_column_family( + db: *mut crocksdb_t, + column_family_options: *const crocksdb_options_t, + column_family_name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_column_family_handle_t; +} +extern "C" { + pub fn crocksdb_drop_column_family( + db: *mut crocksdb_t, + handle: *mut crocksdb_column_family_handle_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_column_family_handle_id(arg1: *mut crocksdb_column_family_handle_t) -> u32; +} +extern "C" { + pub fn crocksdb_column_family_handle_destroy(arg1: *mut crocksdb_column_family_handle_t); +} +extern "C" { + pub fn crocksdb_close(db: *mut crocksdb_t); +} +extern "C" { + pub fn crocksdb_pause_bg_work(db: *mut crocksdb_t); +} +extern "C" { + pub fn crocksdb_continue_bg_work(db: *mut crocksdb_t); +} +extern "C" { + pub fn crocksdb_put( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_put_cf( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete_cf( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_single_delete( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_single_delete_cf( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete_range_cf( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + begin_key: *const libc::c_char, + begin_keylen: usize, + end_key: *const libc::c_char, + end_keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_merge( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_merge_cf( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_write( + db: *mut crocksdb_t, + options: *const crocksdb_writeoptions_t, + batch: *mut crocksdb_writebatch_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_get( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + key: *const libc::c_char, + keylen: usize, + vallen: *mut usize, + errptr: *mut *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_get_cf( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + vallen: *mut usize, + errptr: *mut *mut libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_multi_get( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + num_keys: usize, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + values_list: *mut *mut libc::c_char, + values_list_sizes: *mut usize, + errs: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_multi_get_cf( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + column_families: *const *const crocksdb_column_family_handle_t, + num_keys: usize, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + values_list: *mut *mut libc::c_char, + values_list_sizes: *mut usize, + errs: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_create_iterator( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + ) -> *mut crocksdb_iterator_t; +} +extern "C" { + pub fn crocksdb_create_iterator_cf( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + ) -> *mut crocksdb_iterator_t; +} +extern "C" { + pub fn crocksdb_create_iterators( + db: *mut crocksdb_t, + opts: *mut crocksdb_readoptions_t, + column_families: *mut *mut crocksdb_column_family_handle_t, + iterators: *mut *mut crocksdb_iterator_t, + size: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_create_snapshot(db: *mut crocksdb_t) -> *const crocksdb_snapshot_t; +} +extern "C" { + pub fn crocksdb_release_snapshot(db: *mut crocksdb_t, snapshot: *const crocksdb_snapshot_t); +} +extern "C" { + pub fn crocksdb_get_snapshot_sequence_number(snapshot: *const crocksdb_snapshot_t) -> u64; +} +extern "C" { + pub fn crocksdb_create_map_property() -> *mut crocksdb_map_property_t; +} +extern "C" { + pub fn crocksdb_destroy_map_property(info: *mut crocksdb_map_property_t); +} +extern "C" { + pub fn crocksdb_get_map_property_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + property: *const libc::c_char, + data: *mut crocksdb_map_property_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_map_property_value( + info: *mut crocksdb_map_property_t, + propname: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_map_property_int_value( + info: *mut crocksdb_map_property_t, + propname: *const libc::c_char, + ) -> u64; +} +extern "C" { + pub fn crocksdb_property_value( + db: *mut crocksdb_t, + propname: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_property_value_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + propname: *const libc::c_char, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_approximate_sizes( + db: *mut crocksdb_t, + num_ranges: libc::c_int, + range_start_key: *const *const libc::c_char, + range_start_key_len: *const usize, + range_limit_key: *const *const libc::c_char, + range_limit_key_len: *const usize, + sizes: *mut u64, + ); +} +extern "C" { + pub fn crocksdb_approximate_sizes_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + num_ranges: libc::c_int, + range_start_key: *const *const libc::c_char, + range_start_key_len: *const usize, + range_limit_key: *const *const libc::c_char, + range_limit_key_len: *const usize, + sizes: *mut u64, + ); +} +extern "C" { + pub fn crocksdb_approximate_memtable_stats( + db: *const crocksdb_t, + range_start_key: *const libc::c_char, + range_start_key_len: usize, + range_limit_key: *const libc::c_char, + range_limit_key_len: usize, + count: *mut u64, + size: *mut u64, + ); +} +extern "C" { + pub fn crocksdb_approximate_memtable_stats_cf( + db: *const crocksdb_t, + cf: *const crocksdb_column_family_handle_t, + range_start_key: *const libc::c_char, + range_start_key_len: usize, + range_limit_key: *const libc::c_char, + range_limit_key_len: usize, + count: *mut u64, + size: *mut u64, + ); +} +extern "C" { + pub fn crocksdb_compact_range( + db: *mut crocksdb_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_compact_range_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_compact_range_opt( + db: *mut crocksdb_t, + opt: *mut crocksdb_compactoptions_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_compact_range_cf_opt( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + opt: *mut crocksdb_compactoptions_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_delete_file(db: *mut crocksdb_t, name: *const libc::c_char); +} +extern "C" { + pub fn crocksdb_livefiles(db: *mut crocksdb_t) -> *const crocksdb_livefiles_t; +} +extern "C" { + pub fn crocksdb_flush( + db: *mut crocksdb_t, + options: *const crocksdb_flushoptions_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_flush_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + options: *const crocksdb_flushoptions_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_flush_wal( + db: *mut crocksdb_t, + sync: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sync_wal(db: *mut crocksdb_t, errptr: *mut *mut libc::c_char); +} +extern "C" { + pub fn crocksdb_get_latest_sequence_number(db: *mut crocksdb_t) -> u64; +} +extern "C" { + pub fn crocksdb_disable_file_deletions(db: *mut crocksdb_t, errptr: *mut *mut libc::c_char); +} +extern "C" { + pub fn crocksdb_enable_file_deletions( + db: *mut crocksdb_t, + force: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_get_db_options(db: *mut crocksdb_t) -> *mut crocksdb_options_t; +} +extern "C" { + pub fn crocksdb_set_db_options( + db: *mut crocksdb_t, + names: *mut *const libc::c_char, + values: *mut *const libc::c_char, + num_options: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_get_options_cf( + db: *const crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + ) -> *mut crocksdb_options_t; +} +extern "C" { + pub fn crocksdb_set_options_cf( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + names: *mut *const libc::c_char, + values: *mut *const libc::c_char, + num_options: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_destroy_db( + options: *const crocksdb_options_t, + name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_repair_db( + options: *const crocksdb_options_t, + name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_iter_destroy(arg1: *mut crocksdb_iterator_t); +} +extern "C" { + pub fn crocksdb_iter_valid(arg1: *const crocksdb_iterator_t) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_iter_seek_to_first(arg1: *mut crocksdb_iterator_t); +} +extern "C" { + pub fn crocksdb_iter_seek_to_last(arg1: *mut crocksdb_iterator_t); +} +extern "C" { + pub fn crocksdb_iter_seek(arg1: *mut crocksdb_iterator_t, k: *const libc::c_char, klen: usize); +} +extern "C" { + pub fn crocksdb_iter_seek_for_prev( + arg1: *mut crocksdb_iterator_t, + k: *const libc::c_char, + klen: usize, + ); +} +extern "C" { + pub fn crocksdb_iter_next(arg1: *mut crocksdb_iterator_t); +} +extern "C" { + pub fn crocksdb_iter_prev(arg1: *mut crocksdb_iterator_t); +} +extern "C" { + pub fn crocksdb_iter_key( + arg1: *const crocksdb_iterator_t, + klen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_iter_value( + arg1: *const crocksdb_iterator_t, + vlen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_iter_get_error( + arg1: *const crocksdb_iterator_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_writebatch_create() -> *mut crocksdb_writebatch_t; +} +extern "C" { + pub fn crocksdb_writebatch_create_with_capacity( + reserved_bytes: usize, + ) -> *mut crocksdb_writebatch_t; +} +extern "C" { + pub fn crocksdb_writebatch_create_from( + rep: *const libc::c_char, + size: usize, + ) -> *mut crocksdb_writebatch_t; +} +extern "C" { + pub fn crocksdb_writebatch_destroy(arg1: *mut crocksdb_writebatch_t); +} +extern "C" { + pub fn crocksdb_writebatch_clear(arg1: *mut crocksdb_writebatch_t); +} +extern "C" { + pub fn crocksdb_writebatch_count(arg1: *mut crocksdb_writebatch_t) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_writebatch_put( + arg1: *mut crocksdb_writebatch_t, + key: *const libc::c_char, + klen: usize, + val: *const libc::c_char, + vlen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_put_cf( + arg1: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + klen: usize, + val: *const libc::c_char, + vlen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_putv( + b: *mut crocksdb_writebatch_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + num_values: libc::c_int, + values_list: *const *const libc::c_char, + values_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_putv_cf( + b: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + num_values: libc::c_int, + values_list: *const *const libc::c_char, + values_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_merge( + arg1: *mut crocksdb_writebatch_t, + key: *const libc::c_char, + klen: usize, + val: *const libc::c_char, + vlen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_merge_cf( + arg1: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + klen: usize, + val: *const libc::c_char, + vlen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_mergev( + b: *mut crocksdb_writebatch_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + num_values: libc::c_int, + values_list: *const *const libc::c_char, + values_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_mergev_cf( + b: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + num_values: libc::c_int, + values_list: *const *const libc::c_char, + values_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete( + arg1: *mut crocksdb_writebatch_t, + key: *const libc::c_char, + klen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete_cf( + arg1: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + klen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_single_delete( + arg1: *mut crocksdb_writebatch_t, + key: *const libc::c_char, + klen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_single_delete_cf( + arg1: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + klen: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_deletev( + b: *mut crocksdb_writebatch_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_deletev_cf( + b: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + num_keys: libc::c_int, + keys_list: *const *const libc::c_char, + keys_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete_range( + b: *mut crocksdb_writebatch_t, + start_key: *const libc::c_char, + start_key_len: usize, + end_key: *const libc::c_char, + end_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete_range_cf( + b: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + start_key: *const libc::c_char, + start_key_len: usize, + end_key: *const libc::c_char, + end_key_len: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete_rangev( + b: *mut crocksdb_writebatch_t, + num_keys: libc::c_int, + start_keys_list: *const *const libc::c_char, + start_keys_list_sizes: *const usize, + end_keys_list: *const *const libc::c_char, + end_keys_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_delete_rangev_cf( + b: *mut crocksdb_writebatch_t, + column_family: *mut crocksdb_column_family_handle_t, + num_keys: libc::c_int, + start_keys_list: *const *const libc::c_char, + start_keys_list_sizes: *const usize, + end_keys_list: *const *const libc::c_char, + end_keys_list_sizes: *const usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_put_log_data( + arg1: *mut crocksdb_writebatch_t, + blob: *const libc::c_char, + len: usize, + ); +} +extern "C" { + pub fn crocksdb_writebatch_iterate( + arg1: *mut crocksdb_writebatch_t, + state: *mut libc::c_void, + put: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + k: *const libc::c_char, + klen: usize, + v: *const libc::c_char, + vlen: usize, + ), + >, + deleted: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void, k: *const libc::c_char, klen: usize), + >, + ); +} +extern "C" { + pub fn crocksdb_writebatch_data( + arg1: *mut crocksdb_writebatch_t, + size: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_writebatch_set_save_point(arg1: *mut crocksdb_writebatch_t); +} +extern "C" { + pub fn crocksdb_writebatch_pop_save_point( + arg1: *mut crocksdb_writebatch_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_writebatch_rollback_to_save_point( + arg1: *mut crocksdb_writebatch_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_create() -> *mut crocksdb_block_based_table_options_t; +} +extern "C" { + pub fn crocksdb_block_based_options_destroy(options: *mut crocksdb_block_based_table_options_t); +} +extern "C" { + pub fn crocksdb_block_based_options_set_metadata_block_size( + options: *mut crocksdb_block_based_table_options_t, + block_size: usize, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_block_size( + options: *mut crocksdb_block_based_table_options_t, + block_size: usize, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_block_size_deviation( + options: *mut crocksdb_block_based_table_options_t, + block_size_deviation: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_block_restart_interval( + options: *mut crocksdb_block_based_table_options_t, + block_restart_interval: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_filter_policy( + options: *mut crocksdb_block_based_table_options_t, + filter_policy: *mut crocksdb_filterpolicy_t, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_no_block_cache( + options: *mut crocksdb_block_based_table_options_t, + no_block_cache: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_block_cache( + options: *mut crocksdb_block_based_table_options_t, + block_cache: *mut crocksdb_cache_t, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_block_cache_compressed( + options: *mut crocksdb_block_based_table_options_t, + block_cache_compressed: *mut crocksdb_cache_t, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_whole_key_filtering( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_format_version( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_int, + ); +} +pub const crocksdb_block_based_table_index_type_binary_search: _bindgen_ty_1 = 0; +pub const crocksdb_block_based_table_index_type_hash_search: _bindgen_ty_1 = 1; +pub const crocksdb_block_based_table_index_type_two_level_index_search: _bindgen_ty_1 = 2; +pub type _bindgen_ty_1 = u32; +extern "C" { + pub fn crocksdb_block_based_options_set_index_type( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_hash_index_allow_collision( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_partition_filters( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_cache_index_and_filter_blocks( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_pin_top_level_index_and_filter( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_cache_index_and_filter_blocks_with_high_priority( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_pin_l0_filter_and_index_blocks_in_cache( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_block_based_options_set_read_amp_bytes_per_bit( + arg1: *mut crocksdb_block_based_table_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_block_based_table_factory( + opt: *mut crocksdb_options_t, + table_options: *mut crocksdb_block_based_table_options_t, + ); +} +extern "C" { + pub fn crocksdb_options_get_block_cache_usage(opt: *mut crocksdb_options_t) -> usize; +} +extern "C" { + pub fn crocksdb_options_set_block_cache_capacity( + opt: *mut crocksdb_options_t, + capacity: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_options_get_block_cache_capacity(opt: *mut crocksdb_options_t) -> usize; +} +extern "C" { + pub fn crocksdb_flushjobinfo_cf_name( + arg1: *const crocksdb_flushjobinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_flushjobinfo_file_path( + arg1: *const crocksdb_flushjobinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_flushjobinfo_table_properties( + arg1: *const crocksdb_flushjobinfo_t, + ) -> *const crocksdb_table_properties_t; +} +extern "C" { + pub fn crocksdb_flushjobinfo_triggered_writes_slowdown( + arg1: *const crocksdb_flushjobinfo_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_flushjobinfo_triggered_writes_stop( + arg1: *const crocksdb_flushjobinfo_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_status( + info: *const crocksdb_compactionjobinfo_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_compactionjobinfo_cf_name( + arg1: *const crocksdb_compactionjobinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_input_files_count( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_input_file_at( + arg1: *const crocksdb_compactionjobinfo_t, + pos: usize, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_output_files_count( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_output_file_at( + arg1: *const crocksdb_compactionjobinfo_t, + pos: usize, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_table_properties( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> *const crocksdb_table_properties_collection_t; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_elapsed_micros( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_num_corrupt_keys( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_output_level( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_input_records( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_output_records( + arg1: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_total_input_bytes( + info: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_compactionjobinfo_total_output_bytes( + info: *const crocksdb_compactionjobinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_externalfileingestioninfo_cf_name( + arg1: *const crocksdb_externalfileingestioninfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_externalfileingestioninfo_internal_file_path( + arg1: *const crocksdb_externalfileingestioninfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_externalfileingestioninfo_table_properties( + arg1: *const crocksdb_externalfileingestioninfo_t, + ) -> *const crocksdb_table_properties_t; +} +extern "C" { + pub fn crocksdb_writestallinfo_cf_name( + arg1: *const crocksdb_writestallinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_writestallinfo_cur( + arg1: *const crocksdb_writestallinfo_t, + ) -> *const crocksdb_writestallcondition_t; +} +extern "C" { + pub fn crocksdb_writestallinfo_prev( + arg1: *const crocksdb_writestallinfo_t, + ) -> *const crocksdb_writestallcondition_t; +} +pub type on_flush_completed_cb = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + arg2: *mut crocksdb_t, + arg3: *const crocksdb_flushjobinfo_t, + ), +>; +pub type on_compaction_completed_cb = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + arg2: *mut crocksdb_t, + arg3: *const crocksdb_compactionjobinfo_t, + ), +>; +pub type on_external_file_ingested_cb = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + arg2: *mut crocksdb_t, + arg3: *const crocksdb_externalfileingestioninfo_t, + ), +>; +pub type on_background_error_cb = ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + arg2: crocksdb_backgrounderrorreason_t, + arg3: *mut crocksdb_status_ptr_t, + ), +>; +pub type on_stall_conditions_changed_cb = ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void, arg2: *const crocksdb_writestallinfo_t), +>; +extern "C" { + pub fn crocksdb_eventlistener_create( + state_: *mut libc::c_void, + destructor_: ::std::option::Option, + on_flush_completed: on_flush_completed_cb, + on_compaction_completed: on_compaction_completed_cb, + on_external_file_ingested: on_external_file_ingested_cb, + on_background_error: on_background_error_cb, + on_stall_conditions_changed: on_stall_conditions_changed_cb, + ) -> *mut crocksdb_eventlistener_t; +} +extern "C" { + pub fn crocksdb_eventlistener_destroy(arg1: *mut crocksdb_eventlistener_t); +} +extern "C" { + pub fn crocksdb_options_add_eventlistener( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_eventlistener_t, + ); +} +extern "C" { + pub fn crocksdb_cuckoo_options_create() -> *mut crocksdb_cuckoo_table_options_t; +} +extern "C" { + pub fn crocksdb_cuckoo_options_destroy(options: *mut crocksdb_cuckoo_table_options_t); +} +extern "C" { + pub fn crocksdb_cuckoo_options_set_hash_ratio( + options: *mut crocksdb_cuckoo_table_options_t, + v: f64, + ); +} +extern "C" { + pub fn crocksdb_cuckoo_options_set_max_search_depth( + options: *mut crocksdb_cuckoo_table_options_t, + v: u32, + ); +} +extern "C" { + pub fn crocksdb_cuckoo_options_set_cuckoo_block_size( + options: *mut crocksdb_cuckoo_table_options_t, + v: u32, + ); +} +extern "C" { + pub fn crocksdb_cuckoo_options_set_identity_as_first_hash( + options: *mut crocksdb_cuckoo_table_options_t, + v: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_cuckoo_options_set_use_module_hash( + options: *mut crocksdb_cuckoo_table_options_t, + v: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_cuckoo_table_factory( + opt: *mut crocksdb_options_t, + table_options: *mut crocksdb_cuckoo_table_options_t, + ); +} +extern "C" { + pub fn crocksdb_options_create() -> *mut crocksdb_options_t; +} +extern "C" { + pub fn crocksdb_options_copy(arg1: *const crocksdb_options_t) -> *mut crocksdb_options_t; +} +extern "C" { + pub fn crocksdb_options_destroy(arg1: *mut crocksdb_options_t); +} +extern "C" { + pub fn crocksdb_column_family_descriptor_destroy( + cf_desc: *mut crocksdb_column_family_descriptor, + ); +} +extern "C" { + pub fn crocksdb_name_from_column_family_descriptor( + cf_desc: *const crocksdb_column_family_descriptor, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_options_from_column_family_descriptor( + cf_desc: *const crocksdb_column_family_descriptor, + ) -> *mut crocksdb_options_t; +} +extern "C" { + pub fn crocksdb_options_increase_parallelism( + opt: *mut crocksdb_options_t, + total_threads: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_optimize_for_point_lookup( + opt: *mut crocksdb_options_t, + block_cache_size_mb: u64, + ); +} +extern "C" { + pub fn crocksdb_options_optimize_level_style_compaction( + opt: *mut crocksdb_options_t, + memtable_memory_budget: u64, + ); +} +extern "C" { + pub fn crocksdb_options_optimize_universal_style_compaction( + opt: *mut crocksdb_options_t, + memtable_memory_budget: u64, + ); +} +extern "C" { + pub fn crocksdb_options_set_compaction_filter( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_compactionfilter_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_compaction_filter_factory( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_compactionfilterfactory_t, + ); +} +extern "C" { + pub fn crocksdb_options_compaction_readahead_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_comparator( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_comparator_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_merge_operator( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_mergeoperator_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_compression_per_level( + opt: *mut crocksdb_options_t, + level_values: *mut libc::c_int, + num_levels: usize, + ); +} +extern "C" { + pub fn crocksdb_options_get_compression_level_number(opt: *mut crocksdb_options_t) -> usize; +} +extern "C" { + pub fn crocksdb_options_get_compression_per_level( + opt: *mut crocksdb_options_t, + level_values: *mut libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_set_bottommost_compression(opt: *mut crocksdb_options_t, c: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_set_create_if_missing( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_create_missing_column_families( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_error_if_exists(arg1: *mut crocksdb_options_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_options_set_paranoid_checks(arg1: *mut crocksdb_options_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_options_set_env(arg1: *mut crocksdb_options_t, arg2: *mut crocksdb_env_t); +} +extern "C" { + pub fn crocksdb_options_set_info_log( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_logger_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_info_log_level(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_set_write_buffer_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_db_write_buffer_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_max_open_files(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_set_max_total_wal_size(opt: *mut crocksdb_options_t, n: u64); +} +extern "C" { + pub fn crocksdb_options_set_compression_options( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + arg3: libc::c_int, + arg4: libc::c_int, + arg5: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_use_direct_reads(opt: *mut crocksdb_options_t, v: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_options_set_use_direct_io_for_flush_and_compaction( + opt: *mut crocksdb_options_t, + v: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_prefix_extractor( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_slicetransform_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_memtable_insert_with_hint_prefix_extractor( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_slicetransform_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_num_levels(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_get_num_levels(arg1: *mut crocksdb_options_t) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_options_set_level0_file_num_compaction_trigger( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_level0_slowdown_writes_trigger( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_get_level0_slowdown_writes_trigger( + arg1: *mut crocksdb_options_t, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_options_set_level0_stop_writes_trigger( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_get_level0_stop_writes_trigger( + arg1: *mut crocksdb_options_t, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_options_set_target_file_size_base(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_get_target_file_size_base(arg1: *const crocksdb_options_t) -> u64; +} +extern "C" { + pub fn crocksdb_options_set_target_file_size_multiplier( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_bytes_for_level_base(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_optimize_filters_for_hits( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_level_compaction_dynamic_level_bytes( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_get_level_compaction_dynamic_level_bytes( + options: *const crocksdb_options_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_options_set_max_bytes_for_level_multiplier( + arg1: *mut crocksdb_options_t, + arg2: f64, + ); +} +extern "C" { + pub fn crocksdb_options_get_max_bytes_for_level_multiplier( + arg1: *mut crocksdb_options_t, + ) -> f64; +} +extern "C" { + pub fn crocksdb_options_set_max_bytes_for_level_multiplier_additional( + arg1: *mut crocksdb_options_t, + level_values: *mut libc::c_int, + num_levels: usize, + ); +} +extern "C" { + pub fn crocksdb_options_enable_statistics(arg1: *mut crocksdb_options_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_options_reset_statistics(arg1: *mut crocksdb_options_t); +} +extern "C" { + pub fn crocksdb_load_latest_options( + dbpath: *const libc::c_char, + env: *mut crocksdb_env_t, + db_options: *mut crocksdb_options_t, + cf_descs: *mut *mut *mut crocksdb_column_family_descriptor, + cf_descs_len: *mut usize, + ignore_unknown_options: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_options_statistics_get_string( + opt: *mut crocksdb_options_t, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_options_statistics_get_ticker_count( + opt: *mut crocksdb_options_t, + ticker_type: u32, + ) -> u64; +} +extern "C" { + pub fn crocksdb_options_statistics_get_and_reset_ticker_count( + opt: *mut crocksdb_options_t, + ticker_type: u32, + ) -> u64; +} +extern "C" { + pub fn crocksdb_options_statistics_get_histogram_string( + opt: *mut crocksdb_options_t, + type_: u32, + ) -> *mut libc::c_char; +} +extern "C" { + pub fn crocksdb_options_statistics_get_histogram( + opt: *mut crocksdb_options_t, + type_: u32, + median: *mut f64, + percentile95: *mut f64, + percentile99: *mut f64, + average: *mut f64, + standard_deviation: *mut f64, + max: *mut f64, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_options_set_max_write_buffer_number( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_min_write_buffer_number_to_merge( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_write_buffer_number_to_maintain( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_background_jobs( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_get_max_background_jobs(arg1: *const crocksdb_options_t) + -> libc::c_int; +} +extern "C" { + pub fn crocksdb_options_set_max_log_file_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_log_file_time_to_roll(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_keep_log_file_num(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_recycle_log_file_num(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_soft_rate_limit(arg1: *mut crocksdb_options_t, arg2: f64); +} +extern "C" { + pub fn crocksdb_options_set_hard_rate_limit(arg1: *mut crocksdb_options_t, arg2: f64); +} +extern "C" { + pub fn crocksdb_options_set_soft_pending_compaction_bytes_limit( + opt: *mut crocksdb_options_t, + v: usize, + ); +} +extern "C" { + pub fn crocksdb_options_get_soft_pending_compaction_bytes_limit( + opt: *mut crocksdb_options_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_options_set_hard_pending_compaction_bytes_limit( + opt: *mut crocksdb_options_t, + v: usize, + ); +} +extern "C" { + pub fn crocksdb_options_get_hard_pending_compaction_bytes_limit( + opt: *mut crocksdb_options_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_options_set_rate_limit_delay_max_milliseconds( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uint, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_manifest_file_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_table_cache_numshardbits( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_writable_file_max_buffer_size( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_arena_block_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_use_fsync(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_set_db_paths( + arg1: *mut crocksdb_options_t, + arg2: *const *const libc::c_char, + arg3: *const usize, + arg4: *const u64, + arg5: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_db_log_dir( + arg1: *mut crocksdb_options_t, + arg2: *const libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_options_set_wal_dir(arg1: *mut crocksdb_options_t, arg2: *const libc::c_char); +} +extern "C" { + pub fn crocksdb_options_set_wal_ttl_seconds(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_wal_size_limit_mb(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_manifest_preallocation_size( + arg1: *mut crocksdb_options_t, + arg2: usize, + ); +} +extern "C" { + pub fn crocksdb_options_set_allow_mmap_reads( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_allow_mmap_writes( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_is_fd_close_on_exec( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_skip_log_error_on_recovery( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_stats_dump_period_sec( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uint, + ); +} +extern "C" { + pub fn crocksdb_options_set_advise_random_on_open( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_access_hint_on_compaction_start( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_use_adaptive_mutex( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_bytes_per_sync(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_enable_pipelined_write( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_unordered_write(arg1: *mut crocksdb_options_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_options_set_allow_concurrent_memtable_write( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_manual_wal_flush( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_enable_write_thread_adaptive_yield( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_sequential_skip_in_iterations( + arg1: *mut crocksdb_options_t, + arg2: u64, + ); +} +extern "C" { + pub fn crocksdb_options_set_disable_auto_compactions( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_get_disable_auto_compactions( + arg1: *const crocksdb_options_t, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_options_set_delete_obsolete_files_period_micros( + arg1: *mut crocksdb_options_t, + arg2: u64, + ); +} +extern "C" { + pub fn crocksdb_options_prepare_for_bulk_load(arg1: *mut crocksdb_options_t); +} +extern "C" { + pub fn crocksdb_options_get_memtable_factory_name( + opt: *mut crocksdb_options_t, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_options_set_memtable_vector_rep(arg1: *mut crocksdb_options_t); +} +extern "C" { + pub fn crocksdb_options_set_memtable_prefix_bloom_size_ratio( + arg1: *mut crocksdb_options_t, + arg2: f64, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_compaction_bytes(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_hash_skip_list_rep( + arg1: *mut crocksdb_options_t, + arg2: usize, + arg3: i32, + arg4: i32, + ); +} +extern "C" { + pub fn crocksdb_options_set_hash_link_list_rep(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_doubly_skip_list_rep(opt: *mut crocksdb_options_t); +} +extern "C" { + pub fn crocksdb_options_set_plain_table_factory( + arg1: *mut crocksdb_options_t, + arg2: u32, + arg3: libc::c_int, + arg4: f64, + arg5: usize, + ); +} +extern "C" { + pub fn crocksdb_options_set_min_level_to_compress( + opt: *mut crocksdb_options_t, + level: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_memtable_huge_page_size(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_max_successive_merges(arg1: *mut crocksdb_options_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_options_set_bloom_locality(arg1: *mut crocksdb_options_t, arg2: u32); +} +extern "C" { + pub fn crocksdb_options_set_inplace_update_support( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_inplace_update_num_locks( + arg1: *mut crocksdb_options_t, + arg2: usize, + ); +} +extern "C" { + pub fn crocksdb_options_set_report_bg_io_stats( + arg1: *mut crocksdb_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_options_set_compaction_readahead_size( + arg1: *mut crocksdb_options_t, + arg2: usize, + ); +} +extern "C" { + pub fn crocksdb_options_set_max_subcompactions(arg1: *mut crocksdb_options_t, arg2: u32); +} +extern "C" { + pub fn crocksdb_options_set_wal_bytes_per_sync(arg1: *mut crocksdb_options_t, arg2: u64); +} +pub const crocksdb_tolerate_corrupted_tail_records_recovery: _bindgen_ty_2 = 0; +pub const crocksdb_absolute_consistency_recovery: _bindgen_ty_2 = 1; +pub const crocksdb_point_in_time_recovery: _bindgen_ty_2 = 2; +pub const crocksdb_skip_any_corrupted_records_recovery: _bindgen_ty_2 = 3; +pub type _bindgen_ty_2 = u32; +extern "C" { + pub fn crocksdb_options_set_wal_recovery_mode(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +pub const crocksdb_no_compression: _bindgen_ty_3 = 0; +pub const crocksdb_snappy_compression: _bindgen_ty_3 = 1; +pub const crocksdb_zlib_compression: _bindgen_ty_3 = 2; +pub const crocksdb_bz2_compression: _bindgen_ty_3 = 3; +pub const crocksdb_lz4_compression: _bindgen_ty_3 = 4; +pub const crocksdb_lz4hc_compression: _bindgen_ty_3 = 5; +pub type _bindgen_ty_3 = u32; +extern "C" { + pub fn crocksdb_options_set_compression(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_get_compression(arg1: *mut crocksdb_options_t) -> libc::c_int; +} +pub const crocksdb_level_compaction: _bindgen_ty_4 = 0; +pub const crocksdb_universal_compaction: _bindgen_ty_4 = 1; +pub const crocksdb_fifo_compaction: _bindgen_ty_4 = 2; +pub type _bindgen_ty_4 = u32; +extern "C" { + pub fn crocksdb_options_set_compaction_style(arg1: *mut crocksdb_options_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_options_set_universal_compaction_options( + arg1: *mut crocksdb_options_t, + arg2: *mut crocksdb_universal_compaction_options_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_fifo_compaction_options( + opt: *mut crocksdb_options_t, + fifo: *mut crocksdb_fifo_compaction_options_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_ratelimiter( + opt: *mut crocksdb_options_t, + limiter: *mut crocksdb_ratelimiter_t, + ); +} +extern "C" { + pub fn crocksdb_options_set_vector_memtable_factory( + opt: *mut crocksdb_options_t, + reserved_bytes: u64, + ); +} +pub const compaction_by_compensated_size: _bindgen_ty_5 = 0; +pub const compaction_by_oldest_largestseq_first: _bindgen_ty_5 = 1; +pub const compaction_by_oldest_smallest_seq_first: _bindgen_ty_5 = 2; +pub const compaction_by_min_overlapping_ratio: _bindgen_ty_5 = 3; +pub type _bindgen_ty_5 = u32; +extern "C" { + pub fn crocksdb_options_set_compaction_priority( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_options_set_delayed_write_rate(arg1: *mut crocksdb_options_t, arg2: u64); +} +extern "C" { + pub fn crocksdb_options_set_force_consistency_checks( + arg1: *mut crocksdb_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ratelimiter_create( + rate_bytes_per_sec: i64, + refill_period_us: i64, + fairness: i32, + ) -> *mut crocksdb_ratelimiter_t; +} +extern "C" { + pub fn crocksdb_ratelimiter_create_with_auto_tuned( + rate_bytes_per_sec: i64, + refill_period_us: i64, + fairness: i32, + mode: crocksdb_ratelimiter_mode_t, + auto_tuned: libc::c_uchar, + ) -> *mut crocksdb_ratelimiter_t; +} +extern "C" { + pub fn crocksdb_ratelimiter_destroy(arg1: *mut crocksdb_ratelimiter_t); +} +extern "C" { + pub fn crocksdb_ratelimiter_set_bytes_per_second( + limiter: *mut crocksdb_ratelimiter_t, + rate_bytes_per_sec: i64, + ); +} +extern "C" { + pub fn crocksdb_ratelimiter_get_singleburst_bytes(limiter: *mut crocksdb_ratelimiter_t) -> i64; +} +pub const env_io_priority_low: _bindgen_ty_6 = 0; +pub const env_io_priority_high: _bindgen_ty_6 = 1; +pub const env_io_priority_total: _bindgen_ty_6 = 2; +pub type _bindgen_ty_6 = u32; +extern "C" { + pub fn crocksdb_ratelimiter_request( + limiter: *mut crocksdb_ratelimiter_t, + bytes: i64, + pri: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ratelimiter_get_total_bytes_through( + limiter: *mut crocksdb_ratelimiter_t, + pri: libc::c_uchar, + ) -> i64; +} +extern "C" { + pub fn crocksdb_ratelimiter_get_bytes_per_second(limiter: *mut crocksdb_ratelimiter_t) -> i64; +} +extern "C" { + pub fn crocksdb_ratelimiter_get_total_requests( + limiter: *mut crocksdb_ratelimiter_t, + pri: libc::c_uchar, + ) -> i64; +} +extern "C" { + pub fn crocksdb_compactionfilter_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + filter: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + level: libc::c_int, + key: *const libc::c_char, + key_length: usize, + existing_value: *const libc::c_char, + value_length: usize, + new_value: *mut *mut libc::c_char, + new_value_length: *mut usize, + value_changed: *mut libc::c_uchar, + ) -> libc::c_uchar, + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_compactionfilter_t; +} +extern "C" { + pub fn crocksdb_compactionfilter_set_ignore_snapshots( + arg1: *mut crocksdb_compactionfilter_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_compactionfilter_destroy(arg1: *mut crocksdb_compactionfilter_t); +} +extern "C" { + pub fn crocksdb_compactionfiltercontext_is_full_compaction( + context: *mut crocksdb_compactionfiltercontext_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_compactionfiltercontext_is_manual_compaction( + context: *mut crocksdb_compactionfiltercontext_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_compactionfilterfactory_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + create_compaction_filter: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + context: *mut crocksdb_compactionfiltercontext_t, + ) -> *mut crocksdb_compactionfilter_t, + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_compactionfilterfactory_t; +} +extern "C" { + pub fn crocksdb_compactionfilterfactory_destroy(arg1: *mut crocksdb_compactionfilterfactory_t); +} +extern "C" { + pub fn crocksdb_comparator_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + compare: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + a: *const libc::c_char, + alen: usize, + b: *const libc::c_char, + blen: usize, + ) -> libc::c_int, + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_comparator_t; +} +extern "C" { + pub fn crocksdb_comparator_destroy(arg1: *mut crocksdb_comparator_t); +} +extern "C" { + pub fn crocksdb_filterpolicy_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + create_filter: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key_array: *const *const libc::c_char, + key_length_array: *const usize, + num_keys: libc::c_int, + filter_length: *mut usize, + ) -> *mut libc::c_char, + >, + key_may_match: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + length: usize, + filter: *const libc::c_char, + filter_length: usize, + ) -> libc::c_uchar, + >, + delete_filter: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + filter: *const libc::c_char, + filter_length: usize, + ), + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_filterpolicy_t; +} +extern "C" { + pub fn crocksdb_filterpolicy_destroy(arg1: *mut crocksdb_filterpolicy_t); +} +extern "C" { + pub fn crocksdb_filterpolicy_create_bloom( + bits_per_key: libc::c_int, + ) -> *mut crocksdb_filterpolicy_t; +} +extern "C" { + pub fn crocksdb_filterpolicy_create_bloom_full( + bits_per_key: libc::c_int, + ) -> *mut crocksdb_filterpolicy_t; +} +extern "C" { + pub fn crocksdb_mergeoperator_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + full_merge: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + key_length: usize, + existing_value: *const libc::c_char, + existing_value_length: usize, + operands_list: *const *const libc::c_char, + operands_list_length: *const usize, + num_operands: libc::c_int, + success: *mut libc::c_uchar, + new_value_length: *mut usize, + ) -> *mut libc::c_char, + >, + partial_merge: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + key_length: usize, + operands_list: *const *const libc::c_char, + operands_list_length: *const usize, + num_operands: libc::c_int, + success: *mut libc::c_uchar, + new_value_length: *mut usize, + ) -> *mut libc::c_char, + >, + delete_value: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + value: *const libc::c_char, + value_length: usize, + ), + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_mergeoperator_t; +} +extern "C" { + pub fn crocksdb_mergeoperator_destroy(arg1: *mut crocksdb_mergeoperator_t); +} +extern "C" { + pub fn crocksdb_readoptions_create() -> *mut crocksdb_readoptions_t; +} +extern "C" { + pub fn crocksdb_readoptions_destroy(arg1: *mut crocksdb_readoptions_t); +} +extern "C" { + pub fn crocksdb_readoptions_set_verify_checksums( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_fill_cache( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_snapshot( + arg1: *mut crocksdb_readoptions_t, + arg2: *const crocksdb_snapshot_t, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_iterate_lower_bound( + arg1: *mut crocksdb_readoptions_t, + key: *const libc::c_char, + keylen: usize, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_iterate_upper_bound( + arg1: *mut crocksdb_readoptions_t, + key: *const libc::c_char, + keylen: usize, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_read_tier(arg1: *mut crocksdb_readoptions_t, arg2: libc::c_int); +} +extern "C" { + pub fn crocksdb_readoptions_set_tailing(arg1: *mut crocksdb_readoptions_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_readoptions_set_managed(arg1: *mut crocksdb_readoptions_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_readoptions_set_readahead_size(arg1: *mut crocksdb_readoptions_t, arg2: usize); +} +extern "C" { + pub fn crocksdb_readoptions_set_max_skippable_internal_keys( + arg1: *mut crocksdb_readoptions_t, + arg2: u64, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_total_order_seek( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_prefix_same_as_start( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_pin_data( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_background_purge_on_iterator_cleanup( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_ignore_range_deletions( + arg1: *mut crocksdb_readoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_readoptions_set_table_filter( + arg1: *mut crocksdb_readoptions_t, + arg2: *mut libc::c_void, + table_filter: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + arg2: *const crocksdb_table_properties_t, + ) -> libc::c_int, + >, + destory: ::std::option::Option, + ); +} +extern "C" { + pub fn crocksdb_writeoptions_create() -> *mut crocksdb_writeoptions_t; +} +extern "C" { + pub fn crocksdb_writeoptions_destroy(arg1: *mut crocksdb_writeoptions_t); +} +extern "C" { + pub fn crocksdb_writeoptions_set_sync(arg1: *mut crocksdb_writeoptions_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_writeoptions_disable_wal( + opt: *mut crocksdb_writeoptions_t, + disable: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_writeoptions_set_ignore_missing_column_families( + arg1: *mut crocksdb_writeoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_writeoptions_set_no_slowdown( + arg1: *mut crocksdb_writeoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_writeoptions_set_low_pri( + arg1: *mut crocksdb_writeoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_compactoptions_create() -> *mut crocksdb_compactoptions_t; +} +extern "C" { + pub fn crocksdb_compactoptions_destroy(arg1: *mut crocksdb_compactoptions_t); +} +extern "C" { + pub fn crocksdb_compactoptions_set_exclusive_manual_compaction( + arg1: *mut crocksdb_compactoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_compactoptions_set_change_level( + arg1: *mut crocksdb_compactoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_compactoptions_set_target_level( + arg1: *mut crocksdb_compactoptions_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_compactoptions_set_max_subcompactions( + arg1: *mut crocksdb_compactoptions_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_compactoptions_set_bottommost_level_compaction( + arg1: *mut crocksdb_compactoptions_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_flushoptions_create() -> *mut crocksdb_flushoptions_t; +} +extern "C" { + pub fn crocksdb_flushoptions_destroy(arg1: *mut crocksdb_flushoptions_t); +} +extern "C" { + pub fn crocksdb_flushoptions_set_wait(arg1: *mut crocksdb_flushoptions_t, arg2: libc::c_uchar); +} +extern "C" { + pub fn crocksdb_flushoptions_set_allow_write_stall( + arg1: *mut crocksdb_flushoptions_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_jemalloc_nodump_allocator_create( + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_memory_allocator_t; +} +extern "C" { + pub fn crocksdb_memory_allocator_destroy(arg1: *mut crocksdb_memory_allocator_t); +} +extern "C" { + pub fn crocksdb_lru_cache_options_create() -> *mut crocksdb_lru_cache_options_t; +} +extern "C" { + pub fn crocksdb_lru_cache_options_destroy(arg1: *mut crocksdb_lru_cache_options_t); +} +extern "C" { + pub fn crocksdb_lru_cache_options_set_capacity( + arg1: *mut crocksdb_lru_cache_options_t, + arg2: usize, + ); +} +extern "C" { + pub fn crocksdb_lru_cache_options_set_num_shard_bits( + arg1: *mut crocksdb_lru_cache_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_lru_cache_options_set_strict_capacity_limit( + arg1: *mut crocksdb_lru_cache_options_t, + arg2: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_lru_cache_options_set_high_pri_pool_ratio( + arg1: *mut crocksdb_lru_cache_options_t, + arg2: f64, + ); +} +extern "C" { + pub fn crocksdb_lru_cache_options_set_memory_allocator( + arg1: *mut crocksdb_lru_cache_options_t, + arg2: *mut crocksdb_memory_allocator_t, + ); +} +extern "C" { + pub fn crocksdb_cache_create_lru( + arg1: *mut crocksdb_lru_cache_options_t, + ) -> *mut crocksdb_cache_t; +} +extern "C" { + pub fn crocksdb_cache_destroy(cache: *mut crocksdb_cache_t); +} +extern "C" { + pub fn crocksdb_cache_set_capacity(cache: *mut crocksdb_cache_t, capacity: usize); +} +extern "C" { + pub fn crocksdb_default_env_create() -> *mut crocksdb_env_t; +} +extern "C" { + pub fn crocksdb_mem_env_create() -> *mut crocksdb_env_t; +} +extern "C" { + pub fn crocksdb_ctr_encrypted_env_create( + base_env: *mut crocksdb_env_t, + ciphertext: *const libc::c_char, + ciphertext_len: usize, + ) -> *mut crocksdb_env_t; +} +extern "C" { + pub fn crocksdb_env_set_background_threads(env: *mut crocksdb_env_t, n: libc::c_int); +} +extern "C" { + pub fn crocksdb_env_set_high_priority_background_threads( + env: *mut crocksdb_env_t, + n: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_env_join_all_threads(env: *mut crocksdb_env_t); +} +extern "C" { + pub fn crocksdb_env_file_exists( + env: *mut crocksdb_env_t, + path: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_env_delete_file( + env: *mut crocksdb_env_t, + path: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_env_destroy(arg1: *mut crocksdb_env_t); +} +extern "C" { + pub fn crocksdb_envoptions_create() -> *mut crocksdb_envoptions_t; +} +extern "C" { + pub fn crocksdb_envoptions_destroy(opt: *mut crocksdb_envoptions_t); +} +extern "C" { + pub fn crocksdb_sequential_file_create( + env: *mut crocksdb_env_t, + path: *const libc::c_char, + opts: *const crocksdb_envoptions_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_sequential_file_t; +} +extern "C" { + pub fn crocksdb_sequential_file_read( + arg1: *mut crocksdb_sequential_file_t, + n: usize, + buf: *mut libc::c_char, + errptr: *mut *mut libc::c_char, + ) -> usize; +} +extern "C" { + pub fn crocksdb_sequential_file_skip( + arg1: *mut crocksdb_sequential_file_t, + n: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sequential_file_destroy(arg1: *mut crocksdb_sequential_file_t); +} +extern "C" { + pub fn crocksdb_sstfilereader_create( + io_options: *const crocksdb_options_t, + ) -> *mut crocksdb_sstfilereader_t; +} +extern "C" { + pub fn crocksdb_sstfilereader_open( + reader: *mut crocksdb_sstfilereader_t, + name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilereader_new_iterator( + reader: *mut crocksdb_sstfilereader_t, + options: *const crocksdb_readoptions_t, + ) -> *mut crocksdb_iterator_t; +} +extern "C" { + pub fn crocksdb_sstfilereader_read_table_properties( + reader: *const crocksdb_sstfilereader_t, + ctx: *mut libc::c_void, + cb: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void, arg2: *const crocksdb_table_properties_t), + >, + ); +} +extern "C" { + pub fn crocksdb_sstfilereader_verify_checksum( + reader: *mut crocksdb_sstfilereader_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilereader_destroy(reader: *mut crocksdb_sstfilereader_t); +} +extern "C" { + pub fn crocksdb_sstfilewriter_create( + env: *const crocksdb_envoptions_t, + io_options: *const crocksdb_options_t, + ) -> *mut crocksdb_sstfilewriter_t; +} +extern "C" { + pub fn crocksdb_sstfilewriter_create_cf( + env: *const crocksdb_envoptions_t, + io_options: *const crocksdb_options_t, + column_family: *mut crocksdb_column_family_handle_t, + ) -> *mut crocksdb_sstfilewriter_t; +} +extern "C" { + pub fn crocksdb_sstfilewriter_open( + writer: *mut crocksdb_sstfilewriter_t, + name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_put( + writer: *mut crocksdb_sstfilewriter_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_merge( + writer: *mut crocksdb_sstfilewriter_t, + key: *const libc::c_char, + keylen: usize, + val: *const libc::c_char, + vallen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_delete( + writer: *mut crocksdb_sstfilewriter_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_delete_range( + writer: *mut crocksdb_sstfilewriter_t, + begin_key: *const libc::c_char, + begin_keylen: usize, + end_key: *const libc::c_char, + end_keylen: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_finish( + writer: *mut crocksdb_sstfilewriter_t, + info: *mut crocksdb_externalsstfileinfo_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_sstfilewriter_file_size(writer: *mut crocksdb_sstfilewriter_t) -> u64; +} +extern "C" { + pub fn crocksdb_sstfilewriter_destroy(writer: *mut crocksdb_sstfilewriter_t); +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_create() -> *mut crocksdb_externalsstfileinfo_t; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_destroy(arg1: *mut crocksdb_externalsstfileinfo_t); +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_file_path( + arg1: *mut crocksdb_externalsstfileinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_smallest_key( + arg1: *mut crocksdb_externalsstfileinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_largest_key( + arg1: *mut crocksdb_externalsstfileinfo_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_sequence_number( + arg1: *mut crocksdb_externalsstfileinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_file_size(arg1: *mut crocksdb_externalsstfileinfo_t) + -> u64; +} +extern "C" { + pub fn crocksdb_externalsstfileinfo_num_entries( + arg1: *mut crocksdb_externalsstfileinfo_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_create() -> *mut crocksdb_ingestexternalfileoptions_t; +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_set_move_files( + opt: *mut crocksdb_ingestexternalfileoptions_t, + move_files: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_set_snapshot_consistency( + opt: *mut crocksdb_ingestexternalfileoptions_t, + snapshot_consistency: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_set_allow_global_seqno( + opt: *mut crocksdb_ingestexternalfileoptions_t, + allow_global_seqno: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_set_allow_blocking_flush( + opt: *mut crocksdb_ingestexternalfileoptions_t, + allow_blocking_flush: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_ingestexternalfileoptions_destroy( + opt: *mut crocksdb_ingestexternalfileoptions_t, + ); +} +extern "C" { + pub fn crocksdb_ingest_external_file( + db: *mut crocksdb_t, + file_list: *const *const libc::c_char, + list_len: usize, + opt: *const crocksdb_ingestexternalfileoptions_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_ingest_external_file_cf( + db: *mut crocksdb_t, + handle: *mut crocksdb_column_family_handle_t, + file_list: *const *const libc::c_char, + list_len: usize, + opt: *const crocksdb_ingestexternalfileoptions_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_ingest_external_file_optimized( + db: *mut crocksdb_t, + handle: *mut crocksdb_column_family_handle_t, + file_list: *const *const libc::c_char, + list_len: usize, + opt: *const crocksdb_ingestexternalfileoptions_t, + errptr: *mut *mut libc::c_char, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_slicetransform_create( + state: *mut libc::c_void, + destructor: ::std::option::Option, + transform: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + length: usize, + dst_length: *mut usize, + ) -> *mut libc::c_char, + >, + in_domain: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + length: usize, + ) -> libc::c_uchar, + >, + in_range: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + length: usize, + ) -> libc::c_uchar, + >, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + ) -> *mut crocksdb_slicetransform_t; +} +extern "C" { + pub fn crocksdb_slicetransform_create_fixed_prefix( + arg1: usize, + ) -> *mut crocksdb_slicetransform_t; +} +extern "C" { + pub fn crocksdb_slicetransform_create_noop() -> *mut crocksdb_slicetransform_t; +} +extern "C" { + pub fn crocksdb_slicetransform_destroy(arg1: *mut crocksdb_slicetransform_t); +} +pub const crocksdb_similar_size_compaction_stop_style: _bindgen_ty_7 = 0; +pub const crocksdb_total_size_compaction_stop_style: _bindgen_ty_7 = 1; +pub type _bindgen_ty_7 = u32; +extern "C" { + pub fn crocksdb_universal_compaction_options_create( + ) -> *mut crocksdb_universal_compaction_options_t; +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_size_ratio( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_min_merge_width( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_max_merge_width( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_max_size_amplification_percent( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_compression_size_percent( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_set_stop_style( + arg1: *mut crocksdb_universal_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_universal_compaction_options_destroy( + arg1: *mut crocksdb_universal_compaction_options_t, + ); +} +extern "C" { + pub fn crocksdb_fifo_compaction_options_create() -> *mut crocksdb_fifo_compaction_options_t; +} +extern "C" { + pub fn crocksdb_fifo_compaction_options_set_max_table_files_size( + fifo_opts: *mut crocksdb_fifo_compaction_options_t, + size: u64, + ); +} +extern "C" { + pub fn crocksdb_fifo_compaction_options_set_allow_compaction( + fifo_opts: *mut crocksdb_fifo_compaction_options_t, + allow_compaction: libc::c_uchar, + ); +} +extern "C" { + pub fn crocksdb_fifo_compaction_options_destroy( + fifo_opts: *mut crocksdb_fifo_compaction_options_t, + ); +} +extern "C" { + pub fn crocksdb_livefiles_count(arg1: *const crocksdb_livefiles_t) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_livefiles_name( + arg1: *const crocksdb_livefiles_t, + index: libc::c_int, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_livefiles_level( + arg1: *const crocksdb_livefiles_t, + index: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_livefiles_size(arg1: *const crocksdb_livefiles_t, index: libc::c_int) -> usize; +} +extern "C" { + pub fn crocksdb_livefiles_smallestkey( + arg1: *const crocksdb_livefiles_t, + index: libc::c_int, + size: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_livefiles_largestkey( + arg1: *const crocksdb_livefiles_t, + index: libc::c_int, + size: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_livefiles_destroy(arg1: *const crocksdb_livefiles_t); +} +extern "C" { + pub fn crocksdb_get_options_from_string( + base_options: *const crocksdb_options_t, + opts_str: *const libc::c_char, + new_options: *mut crocksdb_options_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete_files_in_range( + db: *mut crocksdb_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete_files_in_range_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_delete_files_in_ranges_cf( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + start_keys: *const *const libc::c_char, + start_keys_lens: *const usize, + limit_keys: *const *const libc::c_char, + limit_keys_lens: *const usize, + num_ranges: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_free(ptr: *mut libc::c_void); +} +extern "C" { + pub fn crocksdb_create_log_from_options( + path: *const libc::c_char, + opts: *mut crocksdb_options_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_logger_t; +} +extern "C" { + pub fn crocksdb_log_destroy(arg1: *mut crocksdb_logger_t); +} +extern "C" { + pub fn crocksdb_get_pinned( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_pinnableslice_t; +} +extern "C" { + pub fn crocksdb_get_pinned_cf( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + key: *const libc::c_char, + keylen: usize, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_pinnableslice_t; +} +extern "C" { + pub fn crocksdb_pinnableslice_destroy(v: *mut crocksdb_pinnableslice_t); +} +extern "C" { + pub fn crocksdb_pinnableslice_value( + t: *const crocksdb_pinnableslice_t, + vlen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_get_supported_compression_number() -> usize; +} +extern "C" { + pub fn crocksdb_get_supported_compression(arg1: *mut libc::c_int, arg2: usize); +} +extern "C" { + pub fn crocksdb_table_properties_get_u64( + arg1: *const crocksdb_table_properties_t, + prop: crocksdb_table_property_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_table_properties_get_str( + arg1: *const crocksdb_table_properties_t, + prop: crocksdb_table_property_t, + slen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_table_properties_get_user_properties( + arg1: *const crocksdb_table_properties_t, + ) -> *const crocksdb_user_collected_properties_t; +} +extern "C" { + pub fn crocksdb_user_collected_properties_get( + props: *const crocksdb_user_collected_properties_t, + key: *const libc::c_char, + klen: usize, + vlen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_user_collected_properties_len( + arg1: *const crocksdb_user_collected_properties_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_user_collected_properties_add( + arg1: *mut crocksdb_user_collected_properties_t, + key: *const libc::c_char, + key_len: usize, + value: *const libc::c_char, + value_len: usize, + ); +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_create( + arg1: *const crocksdb_user_collected_properties_t, + ) -> *mut crocksdb_user_collected_properties_iterator_t; +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_destroy( + arg1: *mut crocksdb_user_collected_properties_iterator_t, + ); +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_valid( + arg1: *const crocksdb_user_collected_properties_iterator_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_next( + arg1: *mut crocksdb_user_collected_properties_iterator_t, + ); +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_key( + arg1: *const crocksdb_user_collected_properties_iterator_t, + klen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_user_collected_properties_iter_value( + arg1: *const crocksdb_user_collected_properties_iterator_t, + vlen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_table_properties_collection_len( + arg1: *const crocksdb_table_properties_collection_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_table_properties_collection_destroy( + arg1: *mut crocksdb_table_properties_collection_t, + ); +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_create( + arg1: *const crocksdb_table_properties_collection_t, + ) -> *mut crocksdb_table_properties_collection_iterator_t; +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_destroy( + arg1: *mut crocksdb_table_properties_collection_iterator_t, + ); +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_valid( + arg1: *const crocksdb_table_properties_collection_iterator_t, + ) -> libc::c_uchar; +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_next( + arg1: *mut crocksdb_table_properties_collection_iterator_t, + ); +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_key( + arg1: *const crocksdb_table_properties_collection_iterator_t, + klen: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_table_properties_collection_iter_value( + arg1: *const crocksdb_table_properties_collection_iterator_t, + ) -> *const crocksdb_table_properties_t; +} +extern "C" { + pub fn crocksdb_table_properties_collector_create( + state: *mut libc::c_void, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + destruct: ::std::option::Option, + add: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + key: *const libc::c_char, + key_len: usize, + value: *const libc::c_char, + value_len: usize, + entry_type: libc::c_int, + seq: u64, + file_size: u64, + ), + >, + finish: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + props: *mut crocksdb_user_collected_properties_t, + ), + >, + ) -> *mut crocksdb_table_properties_collector_t; +} +extern "C" { + pub fn crocksdb_table_properties_collector_destroy( + arg1: *mut crocksdb_table_properties_collector_t, + ); +} +extern "C" { + pub fn crocksdb_table_properties_collector_factory_create( + state: *mut libc::c_void, + name: ::std::option::Option< + unsafe extern "C" fn(arg1: *mut libc::c_void) -> *const libc::c_char, + >, + destruct: ::std::option::Option, + create_table_properties_collector: ::std::option::Option< + unsafe extern "C" fn( + arg1: *mut libc::c_void, + cf: u32, + ) -> *mut crocksdb_table_properties_collector_t, + >, + ) -> *mut crocksdb_table_properties_collector_factory_t; +} +extern "C" { + pub fn crocksdb_table_properties_collector_factory_destroy( + arg1: *mut crocksdb_table_properties_collector_factory_t, + ); +} +extern "C" { + pub fn crocksdb_options_add_table_properties_collector_factory( + opt: *mut crocksdb_options_t, + f: *mut crocksdb_table_properties_collector_factory_t, + ); +} +extern "C" { + pub fn crocksdb_get_properties_of_all_tables( + db: *mut crocksdb_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_table_properties_collection_t; +} +extern "C" { + pub fn crocksdb_get_properties_of_all_tables_cf( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_table_properties_collection_t; +} +extern "C" { + pub fn crocksdb_get_properties_of_tables_in_range( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + num_ranges: libc::c_int, + start_keys: *const *const libc::c_char, + start_keys_lens: *const usize, + limit_keys: *const *const libc::c_char, + limit_keys_lens: *const usize, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_table_properties_collection_t; +} +extern "C" { + pub fn crocksdb_keyversions_destroy(kvs: *mut crocksdb_keyversions_t); +} +extern "C" { + pub fn crocksdb_get_all_key_versions( + db: *mut crocksdb_t, + begin_key: *const libc::c_char, + begin_keylen: usize, + end_key: *const libc::c_char, + end_keylen: usize, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_keyversions_t; +} +extern "C" { + pub fn crocksdb_keyversions_count(kvs: *const crocksdb_keyversions_t) -> usize; +} +extern "C" { + pub fn crocksdb_keyversions_key( + kvs: *const crocksdb_keyversions_t, + index: libc::c_int, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_keyversions_value( + kvs: *const crocksdb_keyversions_t, + index: libc::c_int, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_keyversions_seq(kvs: *const crocksdb_keyversions_t, index: libc::c_int) -> u64; +} +extern "C" { + pub fn crocksdb_keyversions_type( + kvs: *const crocksdb_keyversions_t, + index: libc::c_int, + ) -> libc::c_int; +} +extern "C" { + pub fn crocksdb_set_external_sst_file_global_seq_no( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + file: *const libc::c_char, + seq_no: u64, + errptr: *mut *mut libc::c_char, + ) -> u64; +} +extern "C" { + pub fn crocksdb_get_column_family_meta_data( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + arg1: *mut crocksdb_column_family_meta_data_t, + ); +} +extern "C" { + pub fn crocksdb_column_family_meta_data_create() -> *mut crocksdb_column_family_meta_data_t; +} +extern "C" { + pub fn crocksdb_column_family_meta_data_destroy(arg1: *mut crocksdb_column_family_meta_data_t); +} +extern "C" { + pub fn crocksdb_column_family_meta_data_level_count( + arg1: *const crocksdb_column_family_meta_data_t, + ) -> usize; +} +extern "C" { + pub fn crocksdb_column_family_meta_data_level_data( + arg1: *const crocksdb_column_family_meta_data_t, + n: usize, + ) -> *const crocksdb_level_meta_data_t; +} +extern "C" { + pub fn crocksdb_level_meta_data_file_count(arg1: *const crocksdb_level_meta_data_t) -> usize; +} +extern "C" { + pub fn crocksdb_level_meta_data_file_data( + arg1: *const crocksdb_level_meta_data_t, + n: usize, + ) -> *const crocksdb_sst_file_meta_data_t; +} +extern "C" { + pub fn crocksdb_sst_file_meta_data_size(arg1: *const crocksdb_sst_file_meta_data_t) -> usize; +} +extern "C" { + pub fn crocksdb_sst_file_meta_data_name( + arg1: *const crocksdb_sst_file_meta_data_t, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_sst_file_meta_data_smallestkey( + arg1: *const crocksdb_sst_file_meta_data_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_sst_file_meta_data_largestkey( + arg1: *const crocksdb_sst_file_meta_data_t, + arg2: *mut usize, + ) -> *const libc::c_char; +} +extern "C" { + pub fn crocksdb_compaction_options_create() -> *mut crocksdb_compaction_options_t; +} +extern "C" { + pub fn crocksdb_compaction_options_destroy(arg1: *mut crocksdb_compaction_options_t); +} +extern "C" { + pub fn crocksdb_compaction_options_set_compression( + arg1: *mut crocksdb_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_compaction_options_set_output_file_size_limit( + arg1: *mut crocksdb_compaction_options_t, + arg2: usize, + ); +} +extern "C" { + pub fn crocksdb_compaction_options_set_max_subcompactions( + arg1: *mut crocksdb_compaction_options_t, + arg2: libc::c_int, + ); +} +extern "C" { + pub fn crocksdb_compact_files_cf( + arg1: *mut crocksdb_t, + arg2: *mut crocksdb_column_family_handle_t, + arg3: *mut crocksdb_compaction_options_t, + input_file_names: *mut *const libc::c_char, + input_file_count: usize, + output_level: libc::c_int, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn crocksdb_get_perf_level() -> libc::c_int; +} +extern "C" { + pub fn crocksdb_set_perf_level(level: libc::c_int); +} +extern "C" { + pub fn crocksdb_get_perf_context() -> *mut crocksdb_perf_context_t; +} +extern "C" { + pub fn crocksdb_perf_context_reset(arg1: *mut crocksdb_perf_context_t); +} +extern "C" { + pub fn crocksdb_perf_context_user_key_comparison_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_cache_hit_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_read_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_read_byte(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_read_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_checksum_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_decompress_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_read_bytes(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_multiget_read_bytes(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_iter_read_bytes(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_internal_key_skipped_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_internal_delete_skipped_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_internal_recent_skipped_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_internal_merge_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_snapshot_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_from_memtable_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_from_memtable_count(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_post_process_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_get_from_output_files_time( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_on_memtable_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_on_memtable_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_next_on_memtable_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_prev_on_memtable_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_child_seek_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_child_seek_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_min_heap_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_max_heap_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_seek_internal_seek_time(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_find_next_user_entry_time( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_write_wal_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_write_memtable_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_write_delay_time(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_write_pre_and_post_process_time( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_db_mutex_lock_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_db_condition_wait_nanos(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_merge_operator_time_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_read_index_block_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_read_filter_block_nanos(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_new_table_block_iter_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_new_table_iterator_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_block_seek_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_find_table_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_bloom_memtable_hit_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_bloom_memtable_miss_count( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_bloom_sst_hit_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_bloom_sst_miss_count(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_sequential_file_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_random_access_file_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_writable_file_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_reuse_writable_file_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_random_rw_file_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_directory_nanos(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_file_exists_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_get_children_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_get_children_file_attributes_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_delete_file_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_create_dir_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_create_dir_if_missing_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_delete_dir_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_get_file_size_nanos(arg1: *mut crocksdb_perf_context_t) + -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_get_file_modification_time_nanos( + arg1: *mut crocksdb_perf_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_rename_file_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_link_file_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_lock_file_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_unlock_file_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_perf_context_env_new_logger_nanos(arg1: *mut crocksdb_perf_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_get_iostats_context() -> *mut crocksdb_iostats_context_t; +} +extern "C" { + pub fn crocksdb_iostats_context_reset(arg1: *mut crocksdb_iostats_context_t); +} +extern "C" { + pub fn crocksdb_iostats_context_bytes_written(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_bytes_read(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_open_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_allocate_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_write_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_read_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_range_sync_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_fsync_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_prepare_write_nanos( + arg1: *mut crocksdb_iostats_context_t, + ) -> u64; +} +extern "C" { + pub fn crocksdb_iostats_context_logger_nanos(arg1: *mut crocksdb_iostats_context_t) -> u64; +} +extern "C" { + pub fn crocksdb_run_ldb_tool( + argc: libc::c_int, + argv: *mut *mut libc::c_char, + opts: *const crocksdb_options_t, + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctitandb_blob_index_t { + pub file_number: u64, + pub blob_offset: u64, + pub blob_size: u64, +} +#[test] +fn bindgen_test_layout_ctitandb_blob_index_t() { + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(ctitandb_blob_index_t)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ctitandb_blob_index_t)) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctitandb_options_t { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ctitandb_readoptions_t { + _unused: [u8; 0], +} +extern "C" { + pub fn ctitandb_open_column_families( + name: *const libc::c_char, + options: *const crocksdb_options_t, + tdb_options: *const ctitandb_options_t, + num_column_families: libc::c_int, + column_family_names: *mut *const libc::c_char, + column_family_options: *mut *const crocksdb_options_t, + titan_column_family_options: *mut *const ctitandb_options_t, + column_family_handles: *mut *mut crocksdb_column_family_handle_t, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_t; +} +extern "C" { + pub fn ctitandb_create_column_family( + db: *mut crocksdb_t, + column_family_options: *const crocksdb_options_t, + titan_column_family_options: *const ctitandb_options_t, + column_family_name: *const libc::c_char, + errptr: *mut *mut libc::c_char, + ) -> *mut crocksdb_column_family_handle_t; +} +extern "C" { + pub fn ctitandb_options_create() -> *mut ctitandb_options_t; +} +extern "C" { + pub fn ctitandb_options_destroy(arg1: *mut ctitandb_options_t); +} +extern "C" { + pub fn ctitandb_options_copy(arg1: *mut ctitandb_options_t) -> *mut ctitandb_options_t; +} +extern "C" { + pub fn ctitandb_get_titan_options_cf( + db: *const crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + ) -> *mut ctitandb_options_t; +} +extern "C" { + pub fn ctitandb_options_dirname(arg1: *mut ctitandb_options_t) -> *const libc::c_char; +} +extern "C" { + pub fn ctitandb_options_set_dirname(arg1: *mut ctitandb_options_t, name: *const libc::c_char); +} +extern "C" { + pub fn ctitandb_options_min_blob_size(arg1: *mut ctitandb_options_t) -> u64; +} +extern "C" { + pub fn ctitandb_options_set_min_blob_size(arg1: *mut ctitandb_options_t, size: u64); +} +extern "C" { + pub fn ctitandb_options_blob_file_compression(arg1: *mut ctitandb_options_t) -> libc::c_int; +} +extern "C" { + pub fn ctitandb_options_set_blob_file_compression( + arg1: *mut ctitandb_options_t, + type_: libc::c_int, + ); +} +extern "C" { + pub fn ctitandb_decode_blob_index( + value: *const libc::c_char, + value_size: usize, + index: *mut ctitandb_blob_index_t, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn ctitandb_encode_blob_index( + index: *const ctitandb_blob_index_t, + value: *mut *mut libc::c_char, + value_size: *mut usize, + ); +} +extern "C" { + pub fn ctitandb_options_set_disable_background_gc( + options: *mut ctitandb_options_t, + disable: libc::c_uchar, + ); +} +extern "C" { + pub fn ctitandb_options_set_level_merge( + options: *mut ctitandb_options_t, + enable: libc::c_uchar, + ); +} +extern "C" { + pub fn ctitandb_options_set_range_merge( + options: *mut ctitandb_options_t, + enable: libc::c_uchar, + ); +} +extern "C" { + pub fn ctitandb_options_set_max_sorted_runs( + options: *mut ctitandb_options_t, + size: libc::c_int, + ); +} +extern "C" { + pub fn ctitandb_options_set_max_gc_batch_size(options: *mut ctitandb_options_t, size: u64); +} +extern "C" { + pub fn ctitandb_options_set_min_gc_batch_size(options: *mut ctitandb_options_t, size: u64); +} +extern "C" { + pub fn ctitandb_options_set_blob_file_discardable_ratio( + options: *mut ctitandb_options_t, + ratio: f64, + ); +} +extern "C" { + pub fn ctitandb_options_set_sample_file_size_ratio( + options: *mut ctitandb_options_t, + ratio: f64, + ); +} +extern "C" { + pub fn ctitandb_options_set_merge_small_file_threshold( + options: *mut ctitandb_options_t, + size: u64, + ); +} +extern "C" { + pub fn ctitandb_options_set_max_background_gc(options: *mut ctitandb_options_t, size: i32); +} +extern "C" { + pub fn ctitandb_options_set_purge_obsolete_files_period_sec( + options: *mut ctitandb_options_t, + period: libc::c_uint, + ); +} +extern "C" { + pub fn ctitandb_options_set_blob_cache( + options: *mut ctitandb_options_t, + cache: *mut crocksdb_cache_t, + ); +} +extern "C" { + pub fn ctitandb_options_get_blob_cache_usage(opt: *mut ctitandb_options_t) -> usize; +} +extern "C" { + pub fn ctitandb_options_set_blob_cache_capacity( + opt: *mut ctitandb_options_t, + capacity: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn ctitandb_options_get_blob_cache_capacity(opt: *mut ctitandb_options_t) -> usize; +} +extern "C" { + pub fn ctitandb_options_set_discardable_ratio(options: *mut ctitandb_options_t, ratio: f64); +} +extern "C" { + pub fn ctitandb_options_set_sample_ratio(options: *mut ctitandb_options_t, ratio: f64); +} +extern "C" { + pub fn ctitandb_options_set_blob_run_mode(options: *mut ctitandb_options_t, mode: libc::c_int); +} +extern "C" { + pub fn ctitandb_readoptions_create() -> *mut ctitandb_readoptions_t; +} +extern "C" { + pub fn ctitandb_readoptions_destroy(opts: *mut ctitandb_readoptions_t); +} +extern "C" { + pub fn ctitandb_readoptions_key_only(opts: *mut ctitandb_readoptions_t) -> libc::c_uchar; +} +extern "C" { + pub fn ctitandb_readoptions_set_key_only(opts: *mut ctitandb_readoptions_t, v: libc::c_uchar); +} +extern "C" { + pub fn ctitandb_create_iterator( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + titan_options: *const ctitandb_readoptions_t, + ) -> *mut crocksdb_iterator_t; +} +extern "C" { + pub fn ctitandb_create_iterator_cf( + db: *mut crocksdb_t, + options: *const crocksdb_readoptions_t, + titan_options: *const ctitandb_readoptions_t, + column_family: *mut crocksdb_column_family_handle_t, + ) -> *mut crocksdb_iterator_t; +} +extern "C" { + pub fn ctitandb_create_iterators( + db: *mut crocksdb_t, + options: *mut crocksdb_readoptions_t, + titan_options: *mut ctitandb_readoptions_t, + column_families: *mut *mut crocksdb_column_family_handle_t, + iterators: *mut *mut crocksdb_iterator_t, + size: usize, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn ctitandb_delete_files_in_range( + db: *mut crocksdb_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn ctitandb_delete_files_in_range_cf( + db: *mut crocksdb_t, + column_family: *mut crocksdb_column_family_handle_t, + start_key: *const libc::c_char, + start_key_len: usize, + limit_key: *const libc::c_char, + limit_key_len: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +extern "C" { + pub fn ctitandb_delete_files_in_ranges_cf( + db: *mut crocksdb_t, + cf: *mut crocksdb_column_family_handle_t, + start_keys: *const *const libc::c_char, + start_keys_lens: *const usize, + limit_keys: *const *const libc::c_char, + limit_keys_lens: *const usize, + num_ranges: usize, + include_end: libc::c_uchar, + errptr: *mut *mut libc::c_char, + ); +} +pub type __builtin_va_list = [__va_list_tag; 1usize]; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __va_list_tag { + pub gp_offset: libc::c_uint, + pub fp_offset: libc::c_uint, + pub overflow_arg_area: *mut libc::c_void, + pub reg_save_area: *mut libc::c_void, +} +#[test] +fn bindgen_test_layout___va_list_tag() { + assert_eq!( + ::std::mem::size_of::<__va_list_tag>(), + 24usize, + concat!("Size of: ", stringify!(__va_list_tag)) + ); + assert_eq!( + ::std::mem::align_of::<__va_list_tag>(), + 8usize, + concat!("Alignment of ", stringify!(__va_list_tag)) + ); +} diff --git a/librocksdb_sys/build.rs b/librocksdb_sys/build.rs index 738e98cf0..3f7d3b82c 100644 --- a/librocksdb_sys/build.rs +++ b/librocksdb_sys/build.rs @@ -11,6 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +extern crate bindgen; extern crate cc; extern crate cmake; @@ -24,7 +25,52 @@ use std::{env, str}; // See https://github.com/gnzlbg/jemallocator/blob/bfc89192971e026e6423d9ee5aaa02bc56585c58/jemalloc-sys/build.rs#L45 const NO_JEMALLOC_TARGETS: &[&str] = &["android", "dragonfly", "musl", "darwin"]; +// Generate the bindings to rocksdb C-API. +// Try to disable the generation of platform-related bindings. +fn bindgen_rocksdb(file_path: &PathBuf) { + let bindings = bindgen::Builder::default() + .header("crocksdb/crocksdb/c.h") + .ctypes_prefix("libc") + .generate() + .expect("unable to generate rocksdb bindings"); + + bindings + .write_to_file(file_path) + .expect("unable to write rocksdb bindings"); +} + +// Determine if need to update bindings. Supported platforms do not +// need to be updated by default unless the UPDATE_BIND is specified. +// Other platforms use bindgen to generate the bindings every time. +fn config_binding_path() { + let file_path: PathBuf; + + match env::var("TARGET").unwrap_or("".to_owned()).as_str() { + "x86_64-unknown-linux-gnu" => { + file_path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) + .join("bindings") + .join("x86_64-unknown-linux-gnu-bindings.rs"); + if env::var("UPDATE_BIND") + .map(|s| s == "1".to_owned()) + .unwrap_or(false) + { + bindgen_rocksdb(&file_path); + } + } + _ => { + file_path = PathBuf::from(env::var("OUT_DIR").unwrap()).join("rocksdb-bindings.rs"); + bindgen_rocksdb(&file_path); + } + }; + println!( + "cargo:rustc-env=BINDING_PATH={}", + file_path.to_str().unwrap() + ); +} + fn main() { + println!("cargo:rerun-if-env-changed=UPDATE_BIND"); + let mut build = build_rocksdb(); build.cpp(true).file("crocksdb/c.cc"); @@ -134,6 +180,8 @@ fn build_rocksdb() -> Build { build.define("OS_FREEBSD", None); } + config_binding_path(); + let cur_dir = env::current_dir().unwrap(); build.include(cur_dir.join("rocksdb").join("include")); build.include(cur_dir.join("rocksdb")); diff --git a/scripts/generate-bindings.sh b/scripts/generate-bindings.sh new file mode 100755 index 000000000..2af6453d9 --- /dev/null +++ b/scripts/generate-bindings.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# NOTE: +# This script is only used when you want to generate bindings yourself. +# The generated bindings will overwrite librocksdb_sys/bindings/* + +export UPDATE_BIND=1 +cargo build --target x86_64-unknown-linux-gnu +rustfmt librocksdb_sys/bindings/*