Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

rpmdb/rpmdb.h File Reference

Access RPM indices using Berkeley DB interface(s). More...

#include <assert.h>
#include "rpmlib.h"
#include "db.h"

Go to the source code of this file.

Data Structures

struct  _dbiIndex
struct  _dbiIndexItem
struct  _dbiIndexSet
struct  _dbiVec
struct  rpmdb_s

Defines

#define rpmdbUnlink(_db, _msg)   XrpmdbUnlink(_db, _msg, __FILE__, __LINE__)
#define rpmdbLink(_db, _msg)   XrpmdbLink(_db, _msg, __FILE__, __LINE__)

Typedefs

typedef enum rpmMireMode_e rpmMireMode
 Tag value pattern match mode.

typedef _dbiIndexItemdbiIndexItem
typedef _dbiIndexSetdbiIndexSet
typedef _dbiIndexdbiIndex

Enumerations

enum  rpmMireMode_e { RPMMIRE_DEFAULT = 0, RPMMIRE_STRCMP = 1, RPMMIRE_REGEX = 2, RPMMIRE_GLOB = 3 }
 Tag value pattern match mode. More...

enum  rpmdbFlags { RPMDB_FLAG_JUSTCHECK = (1 << 0), RPMDB_FLAG_MINIMAL = (1 << 1), RPMDB_FLAG_CHROOT = (1 << 2) }

Functions

dbiIndex db3New (rpmdb rpmdb, rpmTag rpmtag)
dbiIndex db3Free (dbiIndex dbi)
char * prDbiOpenFlags (int dbflags, int print_dbenv_flags)
dbiIndex dbiOpen (rpmdb db, rpmTag rpmtag, unsigned int flags)
int dbiCopen (dbiIndex dbi, DB_TXN *txnid, DBC **dbcp, unsigned int flags)
int dbiCclose (dbiIndex dbi, DBC *dbcursor, unsigned int flags)
int dbiCdup (dbiIndex dbi, DBC *dbcursor, DBC **dbcp, unsigned int flags)
int dbiDel (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
int dbiGet (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
int dbiPget (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *pkey, DBT *data, unsigned int flags)
int dbiPut (dbiIndex dbi, DBC *dbcursor, DBT *key, DBT *data, unsigned int flags)
int dbiCount (dbiIndex dbi, DBC *dbcursor, unsigned int *countp, unsigned int flags)
int dbiVerify (dbiIndex dbi, unsigned int flags)
int dbiClose (dbiIndex dbi, unsigned int flags)
int dbiSync (dbiIndex dbi, unsigned int flags)
int dbiAssociate (dbiIndex dbi, dbiIndex dbisecondary, int(*callback)(DB *, DBT *, DBT *, DBT *), unsigned int flags)
int dbiJoin (dbiIndex dbi, DBC **curslist, DBC **dbcp, unsigned int flags)
int dbiByteSwapped (dbiIndex dbi)
int dbiStat (dbiIndex dbi, unsigned int flags)
unsigned int rpmdbGetIteratorFileNum (rpmdbMatchIterator mi)
dbiIndexSet dbiFreeIndexSet (dbiIndexSet set)
unsigned int dbiIndexSetCount (dbiIndexSet set)
unsigned int dbiIndexRecordOffset (dbiIndexSet set, int recno)
unsigned int dbiIndexRecordFileNumber (dbiIndexSet set, int recno)
rpmdb rpmdbUnlink (rpmdb db, char *msg)
rpmdb XrpmdbUnlink (rpmdb db, char *msg, char *fn, unsigned ln)
rpmdb rpmdbLink (rpmdb db, char *msg)
rpmdb XrpmdbLink (rpmdb db, char *msg, char *fn, unsigned ln)
int rpmdbOpen (char *prefix, rpmdb *dbp, int mode, int perms)
int rpmdbInit (char *prefix, int perms)
int rpmdbVerify (char *prefix)
int rpmdbCloseDBI (rpmdb db, int rpmtag)
 Close a single database index.

int rpmdbClose (rpmdb db)
int rpmdbSync (rpmdb db)
int rpmdbOpenAll (rpmdb db)
int rpmdbCountPackages (rpmdb db, char *name)
unsigned int rpmdbGetIteratorOffset (rpmdbMatchIterator mi)
int rpmdbGetIteratorCount (rpmdbMatchIterator mi)
int rpmdbAppendIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums)
int rpmdbPruneIterator (rpmdbMatchIterator mi, int *hdrNums, int nHdrNums, int sorted)
int rpmdbSetIteratorRE (rpmdbMatchIterator mi, rpmTag tag, rpmMireMode mode, char *pattern)
int rpmdbSetIteratorRewrite (rpmdbMatchIterator mi, int rewrite)
int rpmdbSetIteratorModified (rpmdbMatchIterator mi, int modified)
int rpmdbSetHdrChk (rpmdbMatchIterator mi, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg))
rpmdbMatchIterator rpmdbInitIterator (rpmdb db, rpmTag rpmtag, void *keyp, size_t keylen)
Header rpmdbNextIterator (rpmdbMatchIterator mi)
int rpmdbCheckSignals (void)
rpmdbMatchIterator rpmdbFreeIterator (rpmdbMatchIterator mi)
int rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg))
int rpmdbRemove (rpmdb db, int rid, unsigned int hdrNum, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg))
int rpmdbRebuild (char *prefix, rpmts ts, rpmRC(*hdrchk)(rpmts ts, void *uh, size_t uc, char **msg))
int mergesort (void *base, size_t nmemb, size_t size, int(*cmp)(void *, void *))
 Mergesort, same arguments as qsort(2).


Variables

int _rpmdb_debug
int * dbiTags
int dbiTagsMax


Detailed Description

Access RPM indices using Berkeley DB interface(s).

Definition in file rpmdb.h.


Define Documentation

#define rpmdbLink _db,
_msg       XrpmdbLink(_db, _msg, __FILE__, __LINE__)
 

Definition at line 830 of file rpmdb.h.

Referenced by newRpmdb(), and rpmdbInitIterator().

#define rpmdbUnlink _db,
_msg       XrpmdbUnlink(_db, _msg, __FILE__, __LINE__)
 

Definition at line 812 of file rpmdb.h.

Referenced by rpmdbClose(), and rpmdbFreeIterator().


Typedef Documentation

typedef struct _dbiIndex* dbiIndex
 

Definition at line 52 of file rpmdb.h.

typedef struct _dbiIndexItem* dbiIndexItem
 

Definition at line 43 of file rpmdb.h.

typedef enum rpmMireMode_e rpmMireMode
 

Tag value pattern match mode.

Referenced by mireDup(), and rpmdbSetIteratorRE().


Enumeration Type Documentation

enum rpmMireMode_e
 

Tag value pattern match mode.

Enumeration values:
RPMMIRE_DEFAULT  regex with \., .* and ^...$ added
RPMMIRE_STRCMP  strings using strcmp(3)
RPMMIRE_REGEX  regex(7) patterns through regcomp(3)
RPMMIRE_GLOB  glob(7) patterns through fnmatch(3)

Definition at line 34 of file rpmdb.h.


Function Documentation

dbiIndex db3Free dbiIndex    dbi
 

Destroy index database handle instance.

Parameters:
dbi  index database handle
Returns:
NULL always

Definition at line 244 of file dbconfig.c.

References _free(), _dbiIndex::dbi_errpfx, _dbiIndex::dbi_file, _dbiIndex::dbi_home, _dbiIndex::dbi_host, _dbiIndex::dbi_re_source, _dbiIndex::dbi_root, _dbiIndex::dbi_stats, _dbiIndex::dbi_subfile, and _dbiIndex::dbi_tmpdir.

Referenced by db3close(), and dbiOpen().

dbiIndex db3New rpmdb    rpmdb,
rpmTag    rpmtag
 

Return new configured index database handle instance.

Parameters:
rpmdb  rpm database
rpmtag  rpm tag
Returns:
index database handle

Definition at line 267 of file dbconfig.c.

References _, _free(), poptOption::arg, poptOption::argInfo, db3_config_default, rpmdb_s::db_mode, _dbiIndex::dbi_bt_flags, _dbiIndex::dbi_byteswapped, _dbiIndex::dbi_cachesize, _dbiIndex::dbi_eflags, _dbiIndex::dbi_h_flags, _dbiIndex::dbi_jlen, _dbiIndex::dbi_mmapsize, _dbiIndex::dbi_mode, _dbiIndex::dbi_permit_dups, _dbiIndex::dbi_perms, _dbiIndex::dbi_rpmdb, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_use_dbenv, poptOption::longName, POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_MASK, POPT_ARG_NONE, POPT_ARG_STRING, POPT_ARG_VAL, POPT_BIT_CLR, POPT_BIT_SET, poptSaveInt(), poptSaveLong(), RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMERR_DBCONFIG, rpmError, rpmExpand(), rpmTag, tagName(), poptOption::val, xcalloc(), xisspace(), xstrdup(), and xstrncasecmp().

Referenced by db3open().

dbiIndexSet dbiFreeIndexSet dbiIndexSet    set
 

Destroy set of index database items.

Parameters:
set  set of index database items
Returns:
NULL always

Definition at line 611 of file rpmdb.c.

References _free(), and _dbiIndexSet::recs.

Referenced by dbiFindByLabel(), dbiFindMatches(), rpmdbAdd(), rpmdbCountPackages(), rpmdbFindByFile(), rpmdbFreeIterator(), rpmdbGrowIterator(), rpmdbInitIterator(), rpmdbRemove(), and rpmtsRun().

unsigned int dbiIndexRecordFileNumber dbiIndexSet    set,
int    recno
 

Return file index from element in index database set.

Parameters:
set  set of index database items
recno  index of item in set
Returns:
file index

Definition at line 606 of file rpmdb.c.

References _dbiIndexSet::recs, and _dbiIndexItem::tagNum.

Referenced by rpmdbFindByFile(), rpmdbNextIterator(), and rpmtsRun().

unsigned int dbiIndexRecordOffset dbiIndexSet    set,
int    recno
 

Return record offset of header from element in index database set.

Parameters:
set  set of index database items
recno  index of item in set
Returns:
record offset of header

Definition at line 601 of file rpmdb.c.

References _dbiIndexItem::hdrNum, and _dbiIndexSet::recs.

Referenced by dbiFindMatches(), rpmdbFindByFile(), rpmdbNextIterator(), and rpmtsRun().

unsigned int dbiIndexSetCount dbiIndexSet    set
 

Count items in index database set.

Parameters:
set  set of index database items
Returns:
number of items

Definition at line 596 of file rpmdb.c.

References _dbiIndexSet::count.

Referenced by dbiFindMatches(), rpmdbCountPackages(), and rpmtsRun().

dbiIndex dbiOpen rpmdb    db,
rpmTag    rpmtag,
unsigned int    flags
 

Return handle for an index database.

Parameters:
db  rpm database
rpmtag  rpm tag
flags  (unused)
Returns:
index database handle

Definition at line 244 of file rpmdb.c.

References _, rpmdb_s::_dbi, _rebuildinprogress, db3Free(), rpmdb_s::db_api, rpmdb_s::db_bits, rpmdb_s::db_nbits, _dbiIndex::dbi_stats, dbiStat(), dbiTagsMax, dbiTagToDbix(), errno, _dbiVec::open, PBM_ALLOC, RPMDBI_PACKAGES, RPMERR_DBOPEN, rpmError, rpmExpandNumeric(), rpmTag, strerror(), and tagName().

Referenced by openDatabase(), rpmdbAdd(), rpmdbCountPackages(), rpmdbFindByFile(), rpmdbFreeIterator(), rpmdbGrowIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbOpenAll(), rpmdbRemove(), rpmpsmStage(), and unsatisfiedDepend().

int mergesort void *    base,
size_t    nmemb,
size_t    size,
int(*    cmp)(void *, void *)
 

Mergesort, same arguments as qsort(2).

Referenced by rpmdbSortIterator().

char* prDbiOpenFlags int    dbflags,
int    print_dbenv_flags
 

Format db3 open flags for debugging print.

Parameters:
dbflags  db open flags
print_dbenv_flags  format db env flags instead?
Returns:
formatted flags (static buffer)

Definition at line 451 of file dbconfig.c.

References poptOption::arg, poptOption::argInfo, _dbiIndex::dbi_eflags, _dbiIndex::dbi_oeflags, _dbiIndex::dbi_oflags, poptOption::longName, POPT_BIT_SET, stpcpy(), and poptOption::val.

Referenced by db_init().

int rpmdbAdd rpmdb    db,
int    iid,
Header    h,
rpmts    ts,
rpmRC(*    hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)
 

Add package header to rpm database and indices.

Parameters:
db  rpm database
iid  install transaction id (iid = 0 or -1 to skip)
h  header
ts  (unused) transaction set (or NULL)
hdrchk  ) (unused) headerCheck() vector (or NULL)
Returns:
0 on success

Definition at line 2887 of file rpmdb.c.

References _, _free(), alloca(), blockSignals(), byte, _dbiIndex::dbi_no_dbsync, _dbiIndex::dbi_permit_dups, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiAppendSet(), dbiCclose(), dbiCopen(), dbiFreeIndexSet(), dbiGet(), dbiIndexNewItem(), dbiOpen(), dbiPut(), dbiSync(), dbiTags, dbiTagsMax, dbt2set(), expandFilelist(), HEADER_MAGIC_NO, headerAddEntry(), headerIsEntry(), headerRemoveEntry(), headerSizeof(), headerUnload(), HFD_t, HGE_t, int_32, isInstallPreReq, nibble(), pgpNewDig, pgpPrtPkts(), pgpDig_s::pubkey, RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_I18NSTRING_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, RPMERR_DBCORRUPT, RPMERR_DBGETINDEX, RPMERR_DBPUTINDEX, rpmError, RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, rpmRC, RPMRC_FAIL, RPMRC_NOTFOUND, RPMTAG_BASENAMES, RPMTAG_FILEMD5S, RPMTAG_GROUP, RPMTAG_INSTALLTID, RPMTAG_PUBKEYS, RPMTAG_REMOVETID, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_TRIGGERNAME, rpmTagType, rpmts, set2dbt(), pgpDigParams_s::signid, tagName(), _dbiIndexItem::tagNum, unblockSignals(), and xcalloc().

Referenced by ftsCacheUpdate(), rpmcliImportPubkey(), rpmdbRebuild(), and rpmpsmStage().

int rpmdbAppendIterator rpmdbMatchIterator    mi,
int *    hdrNums,
int    nHdrNums
 

Append items to set of package instances to iterate.

Parameters:
mi  rpm database iterator
hdrNums  array of package instances
nHdrNums  number of elements in array
Returns:
0 on success, 1 on failure (bad args)

Definition at line 2447 of file rpmdb.c.

References dbiAppendSet(), _rpmdbMatchIterator::mi_set, and xcalloc().

Referenced by markReplacedFiles().

int rpmdbCheckSignals void   
 

Check rpmdb signal handler for trapped signal exit.

Definition at line 743 of file rpmdb.c.

References sigtbl_s::active, caught, rpmdb_s::db_next, EXIT_FAILURE, _rpmdbMatchIterator::mi_next, rpmdbClose(), rpmdbFreeIterator(), RPMMESS_DEBUG, rpmMessage, satbl, and sigtbl_s::signum.

Referenced by rpmdbFreeIterator(), rpmdbInitIterator(), rpmQueryVerify(), rpmtsRun(), and unblockSignals().

int rpmdbClose rpmdb    db
 

Close all database indices and free rpmdb.

Parameters:
db  rpm database
Returns:
0 on success

Definition at line 904 of file rpmdb.c.

References rpmdb_s::_dbi, _free(), rpmdb_s::db_bits, rpmdb_s::db_errpfx, rpmdb_s::db_home, rpmdb_s::db_ndbi, rpmdb_s::db_next, rpmdb_s::db_root, dbiClose(), disableSignals(), rpmdb_s::nrefs, PBM_FREE, and rpmdbUnlink.

Referenced by main(), openDatabase(), rpmdb_dealloc(), rpmdbCheckSignals(), rpmdbInit(), rpmdbRebuild(), rpmdbVerify(), rpmtsCloseDB(), and rpmtsCloseSDB().

int rpmdbCloseDBI rpmdb    db,
int    rpmtag
 

Close a single database index.

Parameters:
db  rpm database
rpmtag  rpm tag
Returns:
0 on success

Definition at line 876 of file rpmdb.c.

References rpmdb_s::_dbi, dbiClose(), dbiTags, and dbiTagsMax.

Referenced by rpmtsCheck().

int rpmdbCountPackages rpmdb    db,
char *    name
 

Return number of instances of package in rpm database.

Parameters:
db  rpm database
name  rpm package name
Returns:
number of instances

Definition at line 1368 of file rpmdb.c.

References _, alloca(), _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiFreeIndexSet(), dbiGet(), dbiIndexSetCount(), dbiOpen(), dbt2set(), RPMERR_DBGETINDEX, rpmError, and RPMTAG_NAME.

Referenced by handleOneTrigger(), rpmpsmStage(), and runTriggers().

rpmdbMatchIterator rpmdbFreeIterator rpmdbMatchIterator    mi
 

Destroy rpm database iterator.

Parameters:
mi  rpm database iterator
Returns:
NULL always

Definition at line 1684 of file rpmdb.c.

References _free(), dbiCclose(), dbiFreeIndexSet(), dbiOpen(), _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_next, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_re, _rpmdbMatchIterator::mi_set, miFreeHeader(), miRE_s::pattern, miRE_s::preg, rpmdbCheckSignals(), RPMDBI_PACKAGES, and rpmdbUnlink.

Referenced by checkPackageSet(), dbiFindMatches(), ftsCacheUpdate(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbCheckSignals(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmInstall(), rpmmi_dealloc(), rpmmi_iternext(), rpmpsmStage(), rpmQueryVerify(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsCheck(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend().

int rpmdbGetIteratorCount rpmdbMatchIterator    mi
 

Return number of elements in rpm database iterator.

Parameters:
mi  rpm database iterator
Returns:
number of elements

Definition at line 1746 of file rpmdb.c.

References _dbiIndexSet::count, and _rpmdbMatchIterator::mi_set.

Referenced by ftsCacheUpdate(), rpmdbFindFpList(), rpmInstall(), rpmmi_Count(), and rpmts_AddErase().

unsigned int rpmdbGetIteratorFileNum rpmdbMatchIterator    mi
 

Definition at line 1742 of file rpmdb.c.

References _rpmdbMatchIterator::mi_filenum.

Referenced by rpmtsFindPubkey().

unsigned int rpmdbGetIteratorOffset rpmdbMatchIterator    mi
 

Return header join key for current position of rpm database iterator.

Parameters:
mi  rpm database iterator
Returns:
current header join key

Definition at line 1738 of file rpmdb.c.

References _rpmdbMatchIterator::mi_offset.

Referenced by IDTXload(), markReplacedFiles(), rpmErase(), rpmmi_Instance(), rpmpsmStage(), rpmts_AddErase(), and rpmtsAddInstallElement().

int rpmdbInit char *    prefix,
int    perms
 

Initialize database.

Parameters:
prefix  path to top of install tree
perms  database permissions
Returns:
0 on success

Definition at line 1156 of file rpmdb.c.

References openDatabase(), RPMDB_FLAG_JUSTCHECK, rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric().

Referenced by rpmtsInitDB().

rpmdbMatchIterator rpmdbInitIterator rpmdb    db,
rpmTag    rpmtag,
void *    keyp,
size_t    keylen
 

Return database iterator.

Parameters:
db  rpm database
rpmtag  rpm tag
keyp  key data (NULL for sequential access)
keylen  key data length (0 will use strlen(keyp))
Returns:
NULL on failure

Definition at line 2458 of file rpmdb.c.

References _, _free(), _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiFindByLabel(), dbiFreeIndexSet(), dbiGet(), dbiOpen(), dbt2set(), _rpmdbMatchIterator::mi_cflags, _rpmdbMatchIterator::mi_data, _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_filenum, _rpmdbMatchIterator::mi_h, _rpmdbMatchIterator::mi_hdrchk, _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_keylen, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_modified, _rpmdbMatchIterator::mi_next, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_offset, _rpmdbMatchIterator::mi_prevoffset, _rpmdbMatchIterator::mi_re, _rpmdbMatchIterator::mi_rpmtag, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, _rpmdbMatchIterator::mi_sorted, _rpmdbMatchIterator::mi_ts, rpmdbCheckSignals(), rpmdbFindByFile(), RPMDBI_LABEL, RPMDBI_PACKAGES, rpmdbLink, RPMERR_DBGETINDEX, rpmError, rpmTag, RPMTAG_BASENAMES, RPMTAG_NAME, xcalloc(), and xmalloc().

Referenced by dbiFindMatches(), main(), rpmdb_length(), rpmdb_Match(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmtsInitIterator(), and rpmtsSolve().

Header rpmdbNextIterator rpmdbMatchIterator    mi
 

Return next package header from iteration.

Parameters:
mi  rpm database iterator
Returns:
NULL on end of iteration.

Definition at line 2160 of file rpmdb.c.

References _, _free(), _dbiIndexSet::count, rpmdb_s::db_bits, rpmdb_s::db_nbits, _dbiIndex::dbi_txnid, dbiCopen(), dbiGet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiOpen(), headerToken_s::flags, headerCopyLoad(), HEADERFLAG_ALLOCATED, headerIsEntry(), headerLoad(), _rpmdbMatchIterator::mi_cflags, _rpmdbMatchIterator::mi_data, _rpmdbMatchIterator::mi_db, _rpmdbMatchIterator::mi_dbc, _rpmdbMatchIterator::mi_filenum, _rpmdbMatchIterator::mi_h, _rpmdbMatchIterator::mi_hdrchk, _rpmdbMatchIterator::mi_key, _rpmdbMatchIterator::mi_keylen, _rpmdbMatchIterator::mi_keyp, _rpmdbMatchIterator::mi_modified, _rpmdbMatchIterator::mi_offset, _rpmdbMatchIterator::mi_prevoffset, _rpmdbMatchIterator::mi_set, _rpmdbMatchIterator::mi_setx, _rpmdbMatchIterator::mi_ts, miFreeHeader(), mireSkip(), PBM_ISSET, PBM_REALLOC(), PBM_SET, RPMDBI_PACKAGES, RPMERR_BADHEADER, rpmError, RPMMESS_DEBUG, RPMMESS_ERROR, rpmMessage, rpmRC, RPMRC_FAIL, RPMRC_NOTFOUND, RPMRC_OK, and RPMTAG_NAME.

Referenced by checkPackageSet(), dbiFindMatches(), handleInstInstalledFiles(), handleRmvdInstalledFiles(), IDTXload(), main(), markReplacedFiles(), rpmcliShowMatches(), rpmdb_length(), rpmdb_subscript(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRebuild(), rpmdbRemove(), rpmErase(), rpmInstall(), rpmmi_iternext(), rpmpsmStage(), rpmts_AddErase(), rpmtsAddInstallElement(), rpmtsFindPubkey(), rpmtsRun(), rpmtsSolve(), runImmedTriggers(), runTriggers(), and unsatisfiedDepend().

int rpmdbOpen char *    prefix,
rpmdb   dbp,
int    mode,
int    perms
 

Open rpm database.

Parameters:
prefix  path to top of install tree
Return values:
dbp  address of rpm database
Parameters:
mode  open(2) flags: O_RDWR or O_RDONLY (O_CREAT also)
perms  database permissions
Returns:
0 on success

Definition at line 1148 of file rpmdb.c.

References openDatabase(), and rpmExpandNumeric().

Referenced by main(), rpmtsOpenDB(), and rpmtsOpenSDB().

int rpmdbOpenAll rpmdb    db
 

Open all database indices.

Parameters:
db  rpm database
Returns:
0 on success

Definition at line 860 of file rpmdb.c.

References rpmdb_s::_dbi, rpmdb_s::db_flags, dbiOpen(), dbiTags, and dbiTagsMax.

Referenced by rpmdbInit(), and rpmdbVerify().

int rpmdbPruneIterator rpmdbMatchIterator    mi,
int *    hdrNums,
int    nHdrNums,
int    sorted
 

Remove items from set of package instances to iterate.

Note:
Sorted hdrNums are always passed in rpmlib.
Parameters:
mi  rpm database iterator
hdrNums  array of package instances
nHdrNums  number of elements in array
sorted  is the array sorted? (array will be sorted on return)
Returns:
0 on success, 1 on failure (bad args)

Definition at line 2436 of file rpmdb.c.

References dbiPruneSet(), and _rpmdbMatchIterator::mi_set.

Referenced by checkPackageSet(), rpmtsAddInstallElement(), and unsatisfiedDepend().

int rpmdbRebuild char *    prefix,
rpmts    ts,
rpmRC(*    hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)
 

Rebuild database indices from package headers.

Parameters:
prefix  path to top of install tree
ts  transaction set (or NULL)
hdrchk  ) headerCheck() vector (or NULL)
Returns:
0 on success

Definition at line 3676 of file rpmdb.c.

References _, _db_filter_dups, _free(), _rebuildinprogress, rpmdb_s::db_api, rpmdb_s::db_filter_dups, errno, F_OK, headerCopy(), headerFree(), headerIsEntry(), headerNVR(), Mkdir(), openDatabase(), Rmdir(), RPMDB_FLAG_MINIMAL, rpmdbAdd(), rpmdbClose(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbMoveDatabase(), rpmdbNextIterator(), rpmdbRemoveDatabase(), rpmdbSetHdrChk(), rpmdbSetIteratorRE(), rpmDefineMacro(), RPMERR_INTERNAL, RPMERR_MKDIR, rpmError, rpmExpandNumeric(), rpmGetPath(), RPMMESS_DEBUG, RPMMESS_ERROR, RPMMESS_NORMAL, rpmMessage, RPMMIRE_DEFAULT, rpmRC, RPMTAG_BUILDTIME, RPMTAG_HEADERIMAGE, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, rpmts, stpcpy(), strerror(), and xmalloc().

Referenced by rpmtsRebuildDB().

int rpmdbRemove rpmdb    db,
int    rid,
unsigned int    hdrNum,
rpmts    ts,
rpmRC(*    hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)
 

Remove package header from rpm database and indices.

Parameters:
db  rpm database
rid  (unused) remove transaction id (rid = 0 or -1 to skip)
hdrNum  package instance number in database
ts  (unused) transaction set (or NULL)
hdrchk  ) (unused) headerCheck() vector (or NULL)
Returns:
0 on success

Definition at line 2581 of file rpmdb.c.

References _, _free(), alloca(), blockSignals(), byte, _dbiIndexSet::count, _dbiIndex::dbi_no_dbsync, _dbiIndex::dbi_rpmtag, _dbiIndex::dbi_txnid, dbiCclose(), dbiCopen(), dbiDel(), dbiFreeIndexSet(), dbiGet(), dbiIndexNewItem(), dbiOpen(), dbiPruneSet(), dbiPut(), dbiSync(), dbiTags, dbiTagsMax, dbt2set(), headerAddEntry(), headerFree(), headerLink(), headerNVR(), HFD_t, HGE_t, int_32, nibble(), pgpNewDig, pgpPrtPkts(), pgpDig_s::pubkey, RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_I18NSTRING_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmdbFreeIterator(), RPMDBI_ADDED, RPMDBI_AVAILABLE, RPMDBI_DEPENDS, RPMDBI_PACKAGES, RPMDBI_REMOVED, rpmdbInitIterator(), rpmdbNextIterator(), RPMERR_DBCORRUPT, RPMERR_DBGETINDEX, RPMERR_DBPUTINDEX, rpmError, RPMMESS_DEBUG, rpmMessage, rpmRC, RPMTAG_FILEMD5S, RPMTAG_PUBKEYS, RPMTAG_REMOVETID, rpmTagType, rpmts, set2dbt(), pgpDigParams_s::signid, tagName(), and unblockSignals().

Referenced by rpmpsmStage().

int rpmdbSetHdrChk rpmdbMatchIterator    mi,
rpmts    ts,
rpmRC(*    hdrchk)(rpmts ts, void *uh, size_t uc, char **msg)
 

Modify iterator to verify retrieved header blobs.

Parameters:
mi  rpm database iterator
ts  transaction set
hdrchk  ) headerCheck() vector
Returns:
0 always

Definition at line 2145 of file rpmdb.c.

References _rpmdbMatchIterator::mi_hdrchk, _rpmdbMatchIterator::mi_ts, rpmRC, and rpmts.

Referenced by rpmdbRebuild(), and rpmtsInitIterator().

int rpmdbSetIteratorModified rpmdbMatchIterator    mi,
int    modified
 

Modify iterator to mark header for lazy write on release.

Parameters:
mi  rpm database iterator
modified  new value of modified
Returns:
previous value

Definition at line 2135 of file rpmdb.c.

References _rpmdbMatchIterator::mi_modified.

Referenced by markReplacedFiles().

int rpmdbSetIteratorRE rpmdbMatchIterator    mi,
rpmTag    tag,
rpmMireMode    mode,
char *    pattern
 

Add pattern to iterator selector.

Parameters:
mi  rpm database iterator
tag  rpm tag
mode  type of pattern match
pattern  pattern to match
Returns:
0 on success

Definition at line 1903 of file rpmdb.c.

References _free(), miRE_s::cflags, miRE_s::eflags, miRE_s::fnflags, _rpmdbMatchIterator::mi_nre, _rpmdbMatchIterator::mi_re, mireCmp(), mireDup(), miRE_s::mode, miRE_s::notmatch, miRE_s::pattern, miRE_s::preg, RPMERR_REGCOMP, rpmError, rpmExpand(), RPMMIRE_DEFAULT, RPMMIRE_GLOB, RPMMIRE_REGEX, RPMMIRE_STRCMP, rpmMireMode, rpmTag, miRE_s::tag, xcalloc(), and xrealloc().

Referenced by dbiFindMatches(), IDTXload(), rpmdbRebuild(), rpmmi_Pattern(), rpmpsmStage(), rpmQueryVerify(), rpmtsInitIterator(), and rpmtsRun().

int rpmdbSetIteratorRewrite rpmdbMatchIterator    mi,
int    rewrite
 

Prepare iterator for lazy writes.

Note:
Must be called before rpmdbNextIterator() with CDB model database.
Parameters:
mi  rpm database iterator
rewrite  new value of rewrite
Returns:
previous value

Definition at line 2122 of file rpmdb.c.

References _rpmdbMatchIterator::mi_cflags.

Referenced by markReplacedFiles().

int rpmdbSync rpmdb    db
 

Sync all database indices.

Parameters:
db  rpm database
Returns:
0 on success

Definition at line 957 of file rpmdb.c.

References rpmdb_s::_dbi, rpmdb_s::db_ndbi, and dbiSync().

Referenced by rpmtsRun().

int rpmdbVerify char *    prefix
 

Verify database components.

Parameters:
prefix  path to top of install tree
Returns:
0 on success

Definition at line 1177 of file rpmdb.c.

References rpmdb_s::_dbi, rpmdb_s::db_ndbi, dbiVerify(), openDatabase(), rpmdbClose(), rpmdbOpenAll(), and rpmExpandNumeric().

Referenced by rpmtsVerifyDB().

rpmdb XrpmdbLink rpmdb    db,
char *    msg,
char *    fn,
unsigned    ln
 

Todo:
Remove debugging entry from the ABI.

Definition at line 1137 of file rpmdb.c.

References rpmdb_s::nrefs.

rpmdb XrpmdbUnlink rpmdb    db,
char *    msg,
char *    fn,
unsigned    ln
 

Todo:
Remove debugging entry from the ABI.

Definition at line 1127 of file rpmdb.c.

References rpmdb_s::nrefs.


Variable Documentation

int _rpmdb_debug
 

Definition at line 16 of file rpmdb.h.

int dbiTagsMax
 

Definition at line 792 of file rpmdb.h.

Referenced by dbiOpen(), dbiTagsInit(), dbiTagToDbix(), newRpmdb(), openDatabase(), rpmdbAdd(), rpmdbCloseDBI(), rpmdbMoveDatabase(), rpmdbOpenAll(), rpmdbRemove(), and rpmdbRemoveDatabase().


Generated on Sun Oct 26 13:02:07 2003 for rpm by doxygen1.2.18