db_env_set_func_map

APIRef

#include <db.h>

int db_env_set_func_map(int (*func_map)(char *path, size_t len, int is_region, int is_rdonly, void **addr));

Description

The Berkeley DB library requires the ability to map a file into memory and to create shared memory regions (which may or may not be backed by files). The func_map argument must conform to the following interface:

int map(char *path, size_t len,
int is_region, int is_rdonly, void **addr);

The path argument is the name of a file.

The is_region argument will be zero if the intention is to map a file into shared memory. In this case, the map function must map the first len bytes of the file into memory and return a pointer to the mapped location into the memory location to which the argument addr refers. The is_rdonly argument will be non-zero if the file is considered read-only by the caller.

The is_region argument will be non-zero if the memory is intended to be used as a shared memory region for synchronization between Berkeley DB threads/processes. In this case, the returned memory may be of any kind (for example, anonymous memory), but must be able to support semaphores. In this case, the path argument may be ignored (although future map calls using the same path must return the same memory), and the is_rdonly argument will always be zero.

The func_map function must return the value of errno on failure and 0 on success.

The db_env_set_func_map interface affects the entire application, not a single database or database environment.

Although the db_env_set_func_map interface may be used to configure Berkeley DB at any time during the life of the application, it should normally be called before making any calls to the db_env_create or db_create functions.

The db_env_set_func_map function returns a non-zero error value on failure and 0 on success.

Errors

The db_env_set_func_map function may fail and return a non-zero error for the following conditions:

EINVAL
An invalid flag value or parameter was specified.

The db_env_set_func_map function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. If a catastrophic error has occurred, the db_env_set_func_map function may fail and return DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.

See Also

db_env_set_func_close, db_env_set_func_dirfree, db_env_set_func_dirlist, db_env_set_func_exists, db_env_set_func_free, db_env_set_func_fsync, db_env_set_func_ioinfo, db_env_set_func_malloc, db_env_set_func_map, db_env_set_func_open, db_env_set_func_read, db_env_set_func_realloc, db_env_set_func_seek, db_env_set_func_sleep, db_env_set_func_unlink, db_env_set_func_unmap, db_env_set_func_write, and db_env_set_func_yield.

APIRef

Copyright Sleepycat Software