2#include "clod_config.h"
8static void *default_malloc(
size_t size,
void*) {
return malloc(size); }
9static void default_free(
void *ptr,
void*) { free(ptr); }
15 rfmt = default_malloc(
sizeof(*rfmt), opts->
user);
16 if (!rfmt)
return nullptr;
26 rfmt->file_locked =
false;
27 bitarray_unset_all(rfmt->held_locks);
28 bitarray_unset_all(rfmt->observing_locks);
37 !bitarray_all_unset(rfmt->held_locks) ||
38 !bitarray_all_unset(rfmt->observing_locks)
51 char *chunk_filename_prefix,
52 char *chunk_filename_extension,
57 if (!rfmt->opts.
file_manage(&rfmt->data, &rfmt->data_size, &HEADER_SIZE, rfmt->opts.
user)) {
62 if (!rfmt->data || rfmt->data_size < HEADER_SIZE) {
67 memset(rfmt->data, 0, HEADER_SIZE);
68 memset(rfmt->data + LIBCLOD_MAG)
73 if (!rfmt)
return nullptr;
78 if (!rfmt)
return nullptr;
void *(* malloc_func)(size_t size, void *user)
uint32_t dead_lock_timeout_ms
void(* free_func)(void *ptr, void *user)
bool(* file_manage)(uint8_t **data, size_t *size, const size_t *new_size, void *user)