rpm
5.4.10
|
Access RPM indices using Berkeley DB interface(s). More...
#include <assert.h>
#include <mire.h>
#include <rpmtypes.h>
#include <rpmtag.h>
#include "db_emu.h"
#include <rpmio.h>
#include <rpmbf.h>
#include <rpmsw.h>
Go to the source code of this file.
Macros | |
#define | rpmdbUnlink(_db, _msg) ((rpmdb)rpmioUnlinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__)) |
#define | rpmdbLink(_db, _msg) ((void *)rpmioLinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__)) |
#define | rpmmiUnlink(_mi) ((rpmmi)rpmioUnlinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
#define | rpmmiLink(_mi) ((rpmmi)rpmioLinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
#define | rpmmiFree(_mi) ((rpmmi)rpmioFreePoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
Typedefs | |
typedef struct _dbiIndexItem * | dbiIndexItem |
typedef struct _dbiIndexSet * | dbiIndexSet |
A single element (i.e. | |
typedef struct _dbiIndex * | dbiIndex |
Functions | |
rpmdb | rpmdbUnlink (rpmdb db, const char *msg) |
Unreference a database instance. | |
rpmdb | rpmdbLink (rpmdb db, const char *msg) |
Reference a database instance. | |
rpmdb | rpmdbNew (const char *root, const char *home, int mode, mode_t perms, int flags) |
int | rpmdbOpen (const char *prefix, rpmdb *dbp, int mode, mode_t perms) |
Open rpm database. | |
int | rpmdbBlockDBI (rpmdb db, int tag) |
Block access to a single database index. | |
int | rpmdbCloseDBI (rpmdb db, int tag) |
Close a single database index. | |
int | rpmdbClose (rpmdb db) |
Close all database indices and free rpmdb. | |
int | rpmdbOpenAll (rpmdb db) |
Open all database indices. | |
int | rpmdbCount (rpmdb db, rpmTag tag, const void *keyp, size_t keylen) |
Return number of instances of key in a tag index. | |
int | rpmdbCountPackages (rpmdb db, const char *N) |
Return number of instances of package in Name index. | |
uint32_t | rpmmiInstance (rpmmi mi) |
Return header instance for current position of rpmdb iterator. | |
uint32_t | rpmmiBNTag (rpmmi mi) |
Return basename tag for current position of rpmdb iterator. | |
unsigned int | rpmmiCount (rpmmi mi) |
Return number of elements in rpm database iterator. | |
int | rpmmiGrow (rpmmi mi, const uint32_t *hdrNums, int nHdrNums) |
Append items to set of package instances to iterate. | |
int | rpmmiGrowBasename (rpmmi mi, const char *bn) |
Append packages containing common basename to iterator. | |
int | rpmmiSort (rpmmi mi) |
Sort iterator instances. | |
int | rpmmiPrune (rpmmi mi, uint32_t *hdrNums, int nHdrNums, int sorted) |
Remove items from set of package instances to iterate. | |
int | rpmmiAddPattern (rpmmi mi, rpmTag tag, rpmMireMode mode, const char *pattern) |
Add pattern to iterator selector. | |
int | rpmmiSetRewrite (rpmmi mi, int rewrite) |
Prepare iterator for lazy writes. | |
int | rpmmiSetModified (rpmmi mi, int modified) |
Modify iterator to mark header for lazy write on release. | |
rpmmi | rpmmiInit (rpmdb db, rpmTag tag, const void *keyp, size_t keylen) |
Return database iterator. | |
Header | rpmmiNext (rpmmi mi) |
Return next package header from iteration. | |
int | rpmdbCheckTerminate (int terminate) |
Check rpmdb signal handler for trapped signal and/or requested exit. | |
int | rpmdbCheckSignals (void) |
Check for and exit on termination signals. | |
rpmmi | rpmmiUnlink (rpmmi mi) |
Unreference a rpm database iterator. | |
rpmmi | rpmmiLink (rpmmi mi) |
Reference a rpm database iterator. | |
rpmmi | rpmmiFree (rpmmi mi) |
Destroy rpm database iterator. | |
int | rpmdbMireApply (rpmdb db, rpmTag tag, rpmMireMode mode, const char *pat, const char ***argvp) |
Return array of keys matching a pattern. | |
int | rpmdbAdd (rpmdb db, int iid, Header h, rpmts ts) |
Add package header to rpm database and indices. | |
int | rpmdbRemove (rpmdb db, int rid, uint32_t hdrNum, rpmts ts) |
Remove package header from rpm database and indices. | |
int | rpm_mergesort (void *base, size_t nmemb, size_t size, int(*cmp)(const void *, const void *)) |
Mergesort, same arguments as qsort(2). |
Variables | |
int | _rpmdb_debug |
int | _rpmmi_debug |
Access RPM indices using Berkeley DB interface(s).
Definition in file rpmdb.h.
#define rpmdbLink | ( | _db, | |
_msg | |||
) | ((void *)rpmioLinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__)) |
#define rpmdbUnlink | ( | _db, | |
_msg | |||
) | ((rpmdb)rpmioUnlinkPoolItem((rpmioItem)(_db), _msg, __FILE__, __LINE__)) |
#define rpmmiFree | ( | _mi | ) | ((rpmmi)rpmioFreePoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
#define rpmmiLink | ( | _mi | ) | ((rpmmi)rpmioLinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
#define rpmmiUnlink | ( | _mi | ) | ((rpmmi)rpmioUnlinkPoolItem((rpmioItem)(_mi), __FUNCTION__, __FILE__, __LINE__)) |
typedef struct _dbiIndexItem* dbiIndexItem |
int rpm_mergesort | ( | void * | base, |
size_t | nmemb, | ||
size_t | size, | ||
int(*)(const void *, const void *) | cmp | ||
) |
Mergesort, same arguments as qsort(2).
Definition at line 213 of file merge.c.
References CCOPY_ELT, CCOPY_LIST, errno, EVAL, ICOPY_ELT, ICOPY_LIST, ISIZE, PSIZE, and setup().
Referenced by rpmmiSort().
int rpmdbBlockDBI | ( | rpmdb | db, |
int | tag | ||
) |
Block access to a single database index.
db | rpm database |
tag | rpm tag (negative to block) |
Definition at line 821 of file rpmdb.c.
Referenced by rpmgiNext().
int rpmdbCloseDBI | ( | rpmdb | db, |
int | tag | ||
) |
Close a single database index.
db | rpm database |
tag | rpm tag |
Definition at line 839 of file rpmdb.c.
Referenced by _rpmtsCheck().
rpmdb rpmdbNew | ( | const char * | root, |
const char * | home, | ||
int | mode, | ||
mode_t | perms, | ||
int | flags | ||
) |
Definition at line 1004 of file rpmdb.c.
References _, _DB_ERRPFX, _DB_FLAGS, _DB_HOME, _DB_MAJOR, _DB_MODE, _DB_PERMS, _DB_ROOT, _free(), dbiTagsInit(), rpmdbExportInfo(), rpmdbGetPool(), rpmdbLink(), rpmdbURIPath(), rpmExpand(), rpmExpandNumeric(), rpmioPutPool(), rpmlog(), RPMLOG_ERR, and xcalloc().
Referenced by rpmdbOpenDatabase().