diff --git a/extra/forestdb/ffi/ffi.factor b/extra/forestdb/ffi/ffi.factor index 455b481464..b2fc2dc44e 100644 --- a/extra/forestdb/ffi/ffi.factor +++ b/extra/forestdb/ffi/ffi.factor @@ -19,6 +19,7 @@ CONSTANT: FDB_SNAPSHOT_INMEM -1 TYPEDEF: uint64_t fdb_seqnum_t TYPEDEF: int64_t cs_off_t +TYPEDEF: long fdb_ssize_t ! XXX: platform dependent? TYPEDEF: void* fdb_custom_cmp_fixed TYPEDEF: void* fdb_custom_cmp_variable @@ -114,6 +115,27 @@ STRUCT: fdb_encryption_key { algorithm fdb_encryption_algorithm_t } { bytes uint8_t[32] } ; +STRUCT: fdb_filemgr_ops_t + { constructor void* } + { open void* } + { pwrite void* } + { pread void* } + { close void* } + { goto_eof void* } + { file_size void* } + { fdatasync void* } + { sync void* } + { get_errno_str void* } + { aio_init void* } + { aio_prep_read void* } + { aio_submit void* } + { aio_getevents void* } + { aio_destroy void* } + { get_fs_type void* } + { copy_file_range void* } + { destructor void* } + { ctx void* } ; + ! cmp_fixed and cmp_variable have their own open() functions STRUCT: fdb_config { chunksize uint16_t } @@ -146,7 +168,8 @@ STRUCT: fdb_config { encryption_key fdb_encryption_key } { block_reusing_threshold size_t } { num_keeping_headers size_t } - { breakpad_minidump_dir char* } ; + { breakpad_minidump_dir char* } + { custom_file_ops fdb_filemgr_ops_t* } ; STRUCT: fdb_kvs_config { create_if_missing bool } @@ -382,6 +405,10 @@ FUNCTION: fdb_status fdb_get_file_info ( fdb_file_handle* fhandle, fdb_file_info FUNCTION: fdb_status fdb_get_kvs_info ( fdb_kvs_handle* handle, fdb_kvs_info* info ) FUNCTION: fdb_status fdb_get_kvs_ops_info ( fdb_kvs_handle* handle, fdb_kvs_ops_info* info ) FUNCTION: fdb_status fdb_get_latency_stats ( fdb_file_handle* fhandle, fdb_latency_stat* stats, fdb_latency_stat_type type ) +FUNCTION: fdb_status fdb_get_latency_histogram ( fdb_file_handle* fhandle, + char** stats, + size_t* stats_length, + fdb_latency_stat_type type ) FUNCTION: c-string fdb_get_latency_stat_name ( fdb_latency_stat_type type ) FUNCTION: fdb_status fdb_get_kvs_seqnum ( fdb_kvs_handle* handle, fdb_seqnum_t* seqnum ) FUNCTION: fdb_status fdb_get_kvs_name_list ( fdb_kvs_handle* handle, fdb_kvs_name_list* kvs_name_list ) @@ -424,3 +451,4 @@ FUNCTION: fdb_status fdb_set_block_reusing_params ( fdb_file_handle* fhandle, si FUNCTION: char* fdb_error_msg ( fdb_status err_code ) FUNCTION: char* fdb_get_lib_version ( ) FUNCTION: char* fdb_get_file_version ( fdb_file_handle* fhandle ) +FUNCTION: fdb_filemgr_ops_t* fdb_get_default_file_ops ( )