# db3.c File Reference

`#include "system.h"`
`#include <db3/db.h>`
`#include <rpmlib.h>`
`#include <rpmmacro.h>`
`#include <rpmurl.h>`
`#include "rpmdb.h"`
`#include "debug.h"`

Go to the source code of this file.

## Functions

static int | cvtdberr (dbiIndex dbi, const char *msg, int error, int printit)
static int | db_fini (dbiIndex dbi, const char *dbhome, const char *dbfile, const char *dbsubfile)
static int | db3_fsync_disable (int fd)
static int | db_init (dbiIndex dbi, const char *dbhome, const char *dbfile, const char *dbsubfile, void **dbenvp)
static int | db3sync (dbiIndex dbi, unsigned int flags)
static int | db3c_del (dbiIndex dbi, void *dbcursor, u_int32_t flags)
static int | db3c_dup (dbiIndex dbi, DBC *dbcursor, DBC **dbcp, u_int32_t flags)
static int | db3c_get (dbiIndex dbi, void *dbcursor, void *key, void *data, u_int32_t flags)
static int | db3c_put (dbiIndex dbi, void *dbcursor, void *key, void *data, u_int32_t flags)
static int | db3c_close (dbiIndex dbi, void *dbcursor)
static int | db3c_open (dbiIndex dbi, void **dbcp, int dbiflags)
static int | db3cclose (dbiIndex dbi, void *dbcursor, unsigned int flags)
static int | db3copen (dbiIndex dbi, void **dbcp, unsigned int flags)
static int | db3cput (dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, const void *datap, size_t datalen, unsigned int flags)
static int | db3cdel (dbiIndex dbi, void *dbcursor, const void *keyp, size_t keylen, unsigned int flags)
static int | db3cget (dbiIndex dbi, void *dbcursor, void **keyp, size_t *keylen, void **datap, size_t *datalen, unsigned int flags)
static int | db3ccount (dbiIndex dbi, void *dbcursor, unsigned int *countp, unsigned int flags)
static int | db3byteswapped (dbiIndex dbi)
static int | db3stat (dbiIndex dbi, unsigned int flags)
static int | db3close (dbiIndex dbi, unsigned int flags)
static int | db3open (rpmdb rpmdb, int rpmtag, dbiIndex *dbip)

## Variables

static int | _debug = 1
_dbiVec | db3vec

## Detailed Description

Definition in file db3.c.

## Function Documentation

static int cvtdberr | ( | dbiIndex | dbi,
|  | const char * | msg,
|  | int | error,
|  | int | printit
| ) | `[static]`

| Definition at line 89 of file db3.c. References _, _dbiIndex::dbi_api, RPMERR_DBERR, and rpmError. Referenced by db1cdel(), db1cget(), db1close(), db1cput(), db1sync(), db3c_close(), db3c_del(), db3c_dup(), db3c_get(), db3c_open(), db3c_put(), db3ccount(), db3cdel(), db3cget(), db3close(), db3cput(), db3open(), db3stat(), db3sync(), db_fini(), and db_init().

static int db3_fsync_disable | ( | int | fd | ) | `[static]`

| Definition at line 154 of file db3.c. Referenced by db_init().

static int db3byteswapped | ( | dbiIndex | dbi | ) | `[static]`

| Definition at line 611 of file db3.c. References DB, and _dbiIndex::dbi_db.

static int db3c_close | ( | dbiIndex | dbi,
|  | void * | dbcursor
| ) | `[inline, static]`

| Definition at line 381 of file db3.c. References _debug, and cvtdberr(). Referenced by db3cclose().

static int db3c_del | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | u_int32_t | flags
| ) | `[static]`

| Definition at line 318 of file db3.c. References _debug, and cvtdberr(). Referenced by db3cdel().

static int db3c_dup | ( | dbiIndex | dbi,
|  | DBC * | dbcursor,
|  | DBC ** | dbcp,
|  | u_int32_t | flags
| ) | `[static]`

| Definition at line 329 of file db3.c. References _debug, and cvtdberr().

static int db3c_get | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | void * | key,
|  | void * | data,
|  | u_int32_t | flags
| ) | `[static]`

| Definition at line 344 of file db3.c. References _debug, cvtdberr(), _dbiIndex::dbi_eflags, and _dbiIndex::dbi_oflags. Referenced by db3cdel(), and db3cget().

static int db3c_open | ( | dbiIndex | dbi,
|  | void ** | dbcp,
|  | int | dbiflags
| ) | `[inline, static]`

| Definition at line 394 of file db3.c. References _debug, cvtdberr(), DB, _dbiIndex::dbi_db, _dbiIndex::dbi_eflags, _dbiIndex::dbi_oflags, and DBI_WRITECURSOR. Referenced by db3copen().

static int db3c_put | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | void * | key,
|  | void * | data,
|  | u_int32_t | flags
| ) | `[static]`

| Definition at line 368 of file db3.c. References _debug, and cvtdberr(). Referenced by db3cput().

static int db3cclose | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 418 of file db3.c. References db3c_close(), DBI_ITERATOR, _dbiIndex::dbi_rmw, and _dbiIndex::dbi_use_cursors. Referenced by db3close().

static int db3ccount | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | unsigned int * | countp,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 593 of file db3.c. References _debug, and cvtdberr().

static int db3cdel | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | const void * | keyp,
|  | size_t | keylen,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 506 of file db3.c. References _debug, cvtdberr(), DB, db3c_del(), db3c_get(), _dbiIndex::dbi_db, and DBT.

static int db3cget | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | void ** | keyp,
|  | size_t * | keylen,
|  | void ** | datap,
|  | size_t * | datalen,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 541 of file db3.c. References _debug, cvtdberr(), DB, db3c_get(), _dbiIndex::dbi_db, and DBT.

static int db3close | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) | `[static]`

Definition at line 657 of file db3.c.

References _, _debug, _free(), cvtdberr(), DB, db3cclose(), db3Free(), rpmdb_s::db_chrootDone, rpmdb_s::db_dbenv, DB_ENV, rpmdb_s::db_errcall, rpmdb_s::db_errfile, rpmdb_s::db_errpfx, db_fini(), rpmdb_s::db_home, rpmdb_s::db_opens, rpmdb_s::db_root, _dbiIndex::dbi_db, _dbiIndex::dbi_file, _dbiIndex::dbi_home, _dbiIndex::dbi_rmw, _dbiIndex::dbi_root, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_subfile, _dbiIndex::dbi_temporary, _dbiIndex::dbi_tmpdir, _dbiIndex::dbi_use_dbenv, _dbiIndex::dbi_verbose, _dbiIndex::dbi_verify_on_close, rpmGenPath(), rpmGetPath(), RPMMESS_DEBUG, rpmMessage, tagName(), and urlPath().

Referenced by db3open().

static int db3copen | ( | dbiIndex | dbi,
|  | void ** | dbcp,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 446 of file db3.c. References db3c_open(), DBC, DBI_ITERATOR, _dbiIndex::dbi_rmw, and _dbiIndex::dbi_use_cursors.

static int db3cput | ( | dbiIndex | dbi,
|  | void * | dbcursor,
|  | const void * | keyp,
|  | size_t | keylen,
|  | const void * | datap,
|  | size_t | datalen,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 474 of file db3.c. References _debug, cvtdberr(), DB, db3c_put(), _dbiIndex::dbi_db, and DBT.

static int db3open | ( | rpmdb | rpmdb,
|  | int | rpmtag,
|  | dbiIndex * | dbip
| ) | `[static]`

Definition at line 805 of file db3.c.

References _, _debug, _free(), alloca(), cvtdberr(), DB, db3close(), db3New(), db3vec, rpmdb_s::db_chrootDone, rpmdb_s::db_dbenv, DB_ENV, rpmdb_s::db_free, rpmdb_s::db_home, db_init(), rpmdb_s::db_malloc, rpmdb_s::db_opens, rpmdb_s::db_realloc, rpmdb_s::db_root, DB_VERSION_MAJOR, DBC, _dbiIndex::dbi_api, _dbiIndex::dbi_bt_compare_fcn, _dbiIndex::dbi_bt_dup_compare_fcn, _dbiIndex::dbi_bt_flags, _dbiIndex::dbi_bt_minkey, _dbiIndex::dbi_bt_prefix_fcn, _dbiIndex::dbi_cachesize, _dbiIndex::dbi_cflags, _dbiIndex::dbi_db, _dbiIndex::dbi_eflags, _dbiIndex::dbi_file, _dbiIndex::dbi_get_rmw_cursor, _dbiIndex::dbi_h_dup_compare_fcn, _dbiIndex::dbi_h_ffactor, _dbiIndex::dbi_h_flags, _dbiIndex::dbi_h_hash_fcn, _dbiIndex::dbi_h_nelem, _dbiIndex::dbi_home, _dbiIndex::dbi_lockdbfd, _dbiIndex::dbi_lorder, _dbiIndex::dbi_mode, _dbiIndex::dbi_oeflags, _dbiIndex::dbi_oflags, _dbiIndex::dbi_pagesize, _dbiIndex::dbi_perms, _dbiIndex::dbi_q_extentsize, _dbiIndex::dbi_re_delim, _dbiIndex::dbi_re_len, _dbiIndex::dbi_re_pad, _dbiIndex::dbi_re_source, _dbiIndex::dbi_rmw, _dbiIndex::dbi_root, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_subfile, _dbiIndex::dbi_temporary, _dbiIndex::dbi_type, _dbiIndex::dbi_use_dbenv, _dbiIndex::dbi_vec, _dbiIndex::dbi_verify_on_close, F_OK, prDbiOpenFlags(), RPMERR_FLOCK, rpmError, rpmGenPath(), rpmGetPath(), RPMMESS_DEBUG, rpmMessage, RPMWARN_FLOCK, stpcpy(), tagName(), urlPath(), and W_OK.

static int db3stat | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 631 of file db3.c. References _debug, _free(), cvtdberr(), DB, _dbiIndex::dbi_db, and _dbiIndex::dbi_stats.

static int db3sync | ( | dbiIndex | dbi,
|  | unsigned int | flags
| ) | `[static]`

| Definition at line 302 of file db3.c. References _debug, cvtdberr(), DB, and _dbiIndex::dbi_db.

static int db_fini | ( | dbiIndex | dbi,
|  | const char * | dbhome,
|  | const char * | dbfile,
|  | const char * | dbsubfile
| ) | `[static]`

| Definition at line 112 of file db3.c. References _, _debug, cvtdberr(), rpmdb_s::db_dbenv, DB_ENV, rpmdb_s::db_remove_env, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_tear_down, RPMMESS_DEBUG, and rpmMessage. Referenced by db3close().

static int db_init | ( | dbiIndex | dbi,
|  | const char * | dbhome,
|  | const char * | dbfile,
|  | const char * | dbsubfile,
|  | void ** | dbenvp
| ) | `[static]`

Definition at line 161 of file db3.c.

References _, _debug, _free(), cvtdberr(), db3_fsync_disable(), rpmdb_s::db_chrootDone, DB_ENV, rpmdb_s::db_errcall, rpmdb_s::db_errfile, rpmdb_s::db_errpfx, rpmdb_s::db_root, _dbiIndex::dbi_cl_timeout, _dbiIndex::dbi_ecflags, _dbiIndex::dbi_eflags, _dbiIndex::dbi_host, _dbiIndex::dbi_mp_mmapsize, _dbiIndex::dbi_mp_size, _dbiIndex::dbi_no_fsync, _dbiIndex::dbi_oeflags, _dbiIndex::dbi_perms, _dbiIndex::dbi_root, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_shmkey, _dbiIndex::dbi_sv_timeout, _dbiIndex::dbi_tmpdir, _dbiIndex::dbi_verbose, prDbiOpenFlags(), rpmGenPath(), RPMMESS_DEBUG, and rpmMessage.

Referenced by db3open().

## Variable Documentation

int _debug = 1`[static]`

| Definition at line 7 of file db3.c. Referenced by db3c_close(), db3c_del(), db3c_dup(), db3c_get(), db3c_open(), db3c_put(), db3ccount(), db3cdel(), db3cget(), db3close(), db3cput(), db3open(), db3stat(), db3sync(), db_fini(), and db_init().