 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

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_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 )
