rpm
5.4.14
|
#include "system.h"
#include <rpmio.h>
#include <rpmiotypes.h>
#include <rpmbf.h>
#include <rpmlog.h>
#include <rpmfi.h>
#include <rpmtag.h>
#include <rpmtypes.h>
#include <rpmds.h>
#include <rpmal.h>
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | availablePackage_s |
Info about a single package to be installed. More... | |
struct | availableIndexEntry_s |
A single available item (e.g. More... | |
struct | availableIndex_s |
Index of all available items. More... | |
struct | rpmal_s |
Set of available packages, items, and directories. More... | |
Macros | |
#define | _RPMFI_INTERNAL |
#define | _RPMDS_INTERNAL |
Typedefs | |
typedef struct availablePackage_s * | availablePackage |
typedef struct availableIndexEntry_s * | availableIndexEntry |
typedef struct availableIndex_s * | availableIndex |
Enumerations | |
enum | indexEntryType_e { IET_PROVIDES =1 } |
Functions | |
static alNum | alKey2Num (const rpmal al, alKey pkgKey) |
static alKey | alNum2Key (const rpmal al, alNum pkgNum) |
static void | rpmalFreeIndex (rpmal al) |
Destroy available item index. More... | |
static void | rpmalFini (void *_al) |
static rpmal | rpmalGetPool (rpmioPool pool) |
rpmal | rpmalNew (int delta) |
Initialize available list. More... | |
void | rpmalDel (rpmal al, alKey pkgKey) |
Delete package from available list. More... | |
alKey | rpmalAdd (rpmal *alistp, alKey pkgKey, fnpyKey key, rpmds provides, rpmfi fi, rpmuint32_t tscolor) |
Add package to available list. More... | |
static int | indexcmp (const void *one, const void *two) |
Compare two available index entries by name (qsort/bsearch). More... | |
void | rpmalAddProvides (rpmal al, alKey pkgKey, rpmds provides, rpmuint32_t tscolor) |
Add package provides to available list index. More... | |
void | rpmalMakeIndex (rpmal al) |
Generate index for available list. More... | |
fnpyKey * | rpmalAllFileSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) |
Check added package file lists for package(s) that provide a file. More... | |
fnpyKey * | rpmalAllSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) |
Check added package file lists for package(s) that have a provide. More... | |
fnpyKey | rpmalSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) |
Check added package file lists for first package that has a provide. More... | |
Variables | |
int | _rpmal_debug = 0 |
rpmioPool | _rpmalPool |
typedef struct availableIndex_s* availableIndex |
typedef struct availableIndexEntry_s* availableIndexEntry |
typedef struct availablePackage_s* availablePackage |
enum indexEntryType_e |
Definition at line 107 of file rpmal.c.
References key, pkgKey, and u.
Referenced by rpmalAdd(), rpmalAddProvides(), rpmalAllSatisfiesDepend(), and rpmalDel().
Definition at line 119 of file rpmal.c.
Referenced by rpmalAllFileSatisfiesDepend(), and rpmalMakeIndex().
Compare two available index entries by name (qsort/bsearch).
one | 1st available index entry |
two | 2nd available index entry |
Definition at line 271 of file rpmal.c.
References b, availableIndexEntry_s::entry, availableIndexEntry_s::entryLen, and strcmp().
Referenced by rpmalAllSatisfiesDepend(), and rpmalMakeIndex().
alKey rpmalAdd | ( | rpmal * | alistp, |
alKey | pkgKey, | ||
fnpyKey | key, | ||
rpmds | provides, | ||
rpmfi | fi, | ||
rpmuint32_t | tscolor | ||
) |
Add package to available list.
alistp | address of available list |
pkgKey | package key, RPMAL_NOMATCH to force an append |
key | associated file name/python object |
provides | provides dependency set |
fi | file info set |
tscolor | transaction color bits |
Definition at line 222 of file rpmal.c.
References alKey2Num(), rpmal_s::alloced, assert(), availablePackage_s::bf, rpmal_s::delta, availablePackage_s::fi, availablePackage_s::key, key, rpmal_s::list, NULL, availablePackage_s::provides, RPMAL_NOMATCH, rpmalDel(), rpmalFreeIndex(), rpmalNew(), rpmdsLink(), rpmfiFNBF(), rpmfiLink(), rpmal_s::size, size, availablePackage_s::tscolor, and xrealloc.
Referenced by rpmtsAddInstallElement().
void rpmalAddProvides | ( | rpmal | al, |
alKey | pkgKey, | ||
rpmds | provides, | ||
rpmuint32_t | tscolor | ||
) |
Add package provides to available list index.
al | available list |
pkgKey | package key |
provides | added package provides |
tscolor | transaction color bits |
Definition at line 287 of file rpmal.c.
References alKey2Num(), assert(), availableIndexEntry_s::entry, availableIndexEntry_s::entryIx, availableIndexEntry_s::entryLen, IET_PROVIDES, availableIndex_s::index, rpmal_s::index, ix, availableIndex_s::k, NULL, pkgKey, availableIndexEntry_s::pkgKey, rpmdsColor(), rpmdsInit(), rpmdsIx(), rpmdsNext(), availableIndex_s::size, rpmal_s::size, and availableIndexEntry_s::type.
Referenced by rpmalMakeIndex().
Check added package file lists for package(s) that provide a file.
al | available list |
ds | dependency set |
keyp | added package key pointer (or NULL) |
Definition at line 360 of file rpmal.c.
References _, alNum2Key(), availablePackage_s::bf, exit, availablePackage_s::fi, fn, i, int, j, availablePackage_s::key, rpmal_s::list, NULL, ret, RPMAL_NOMATCH, rpmdsN(), rpmdsNotify(), rpmlog(), RPMLOG_DEBUG, rpmal_s::size, stpcpy(), strcmp(), urlPath(), void, and xrealloc.
Referenced by rpmalAllSatisfiesDepend().
Check added package file lists for package(s) that have a provide.
al | available list |
ds | dependency set |
keyp | added package key pointer (or NULL) |
Definition at line 419 of file rpmal.c.
References _, _free(), alKey2Num(), alloca(), availableIndexEntry_s::entry, availableIndexEntry_s::entryIx, availableIndexEntry_s::entryLen, exit, IET_PROVIDES, availableIndex_s::index, rpmal_s::index, indexcmp(), availablePackage_s::key, rpmal_s::list, memset(), NULL, availableIndexEntry_s::pkgKey, availablePackage_s::provides, rc, ret, RPMAL_NOMATCH, rpmalAllFileSatisfiesDepend(), rpmdsCompare(), rpmdsIx(), rpmdsN(), rpmdsNext(), rpmdsNotify(), rpmdsSetIx(), availableIndex_s::size, availableIndexEntry_s::type, void, and xrealloc.
Referenced by checkPackageDeps(), rpmalSatisfiesDepend(), and rpmtsAvailable().
Delete package from available list.
al | available list |
pkgKey | package key |
Definition at line 201 of file rpmal.c.
References alKey2Num(), availablePackage_s::bf, availablePackage_s::fi, rpmal_s::list, memset(), NULL, availablePackage_s::provides, rpmdsFree(), rpmfiFree(), and void.
Referenced by rpmalAdd().
Definition at line 145 of file rpmal.c.
References _free(), rpmal_s::alloced, availablePackage_s::bf, availablePackage_s::fi, i, rpmal_s::list, NULL, availablePackage_s::provides, rpmalFreeIndex(), rpmdsFree(), rpmfiFree(), rpmal_s::size, and void.
Referenced by rpmalGetPool().
Destroy available item index.
al | available list |
Definition at line 135 of file rpmal.c.
References _free(), availableIndex_s::index, rpmal_s::index, and availableIndex_s::size.
Referenced by rpmalAdd(), and rpmalFini().
Definition at line 169 of file rpmal.c.
References rpmal_s::_item, _rpmal_debug, _rpmalPool, memset(), NULL, rpmalFini(), rpmioGetPool(), and rpmioNewPool().
Referenced by rpmalNew().
Generate index for available list.
al | available list |
Definition at line 330 of file rpmal.c.
References alNum2Key(), i, availableIndex_s::index, rpmal_s::index, indexcmp(), availableIndex_s::k, rpmal_s::list, NULL, availablePackage_s::provides, qsort(), rpmalAddProvides(), rpmdsCount(), availableIndex_s::size, rpmal_s::size, availablePackage_s::tscolor, and xrealloc.
Referenced by _rpmtsCheck(), and unsatisfiedDepend().
Initialize available list.
delta | no. of entries to add on each realloc |
Definition at line 185 of file rpmal.c.
References rpmal_s::alloced, rpmal_s::delta, availableIndex_s::index, rpmal_s::index, rpmal_s::list, NULL, rpmalGetPool(), rpmalLink(), availableIndex_s::size, rpmal_s::size, and xcalloc().
Referenced by rpmalAdd().
Check added package file lists for first package that has a provide.
al | available list |
ds | dependency set |
keyp | added package key pointer (or NULL) |
Definition at line 511 of file rpmal.c.
References NULL, ret, and rpmalAllSatisfiesDepend().
Referenced by unsatisfiedDepend().
int _rpmal_debug = 0 |
Definition at line 35 of file rpmal.c.
Referenced by rpmalGetPool().
rpmioPool _rpmalPool |
Definition at line 167 of file rpmal.c.
Referenced by rpmalGetPool().