db_env_set_func_map |
#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));
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 db_env_set_func_map method configures all operations performed by a process and all of its threads of control, not operations confined to a single database environment.
Although the db_env_set_func_map method may be called at any time during the life of the application, it should normally be called before making calls to the db_env_create or db_create methods.
The db_env_set_func_map method returns a non-zero error value on failure and 0 on success.
The path parameter is the name of a file.
The is_region parameter 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 parameter addr refers. The is_rdonly parameter will be non-zero if the file is considered read-only by the caller.
The is_region parameter 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 parameter may be ignored (although future map calls using the same path must return the same memory), and the is_rdonly parameter will always be zero.
The func_map function must return the value of errno on failure and 0 on success.
Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.