rpm
5.2.1
|
Identify a file name path by a unique "finger print". More...
#include "rpmhash.h"
Go to the source code of this file.
Data Structures | |
struct | fprintCacheEntry_s |
Finger print cache entry. More... | |
struct | fprintCache_s |
Finger print cache. More... | |
struct | fingerPrint_s |
Associates a trailing sub-directory and final base name with an existing directory finger print. More... | |
Macros | |
#define | FP_ENTRY_EQUAL(a, b) (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino)) |
#define | FP_EQUAL(a, b) |
Typedefs | |
typedef struct fprintCache_s * | fingerPrintCache |
typedef struct fingerPrint_s | fingerPrint |
Functions | |
int | rpmdbFindFpList (void *_db, fingerPrint *fpList, void *_matchList, int numItems, unsigned int exclude) |
Find fingerprint matches in database. | |
fingerPrintCache | fpCacheCreate (int sizeHint) |
Create finger print cache. | |
fingerPrintCache | fpCacheFree (fingerPrintCache cache) |
Destroy finger print cache. | |
fingerPrint | fpLookup (fingerPrintCache cache, const char *dirName, const char *baseName, int scareMem) |
Return finger print of a file path. | |
rpmuint32_t | fpHashFunction (rpmuint32_t h, const void *data, size_t size) |
Return hash value for a finger print. | |
int | fpEqual (const void *key1, const void *key2) |
Compare two finger print entries. | |
void | fpLookupList (fingerPrintCache cache, const char **dirNames, const char **baseNames, const rpmuint32_t *dirIndexes, rpmuint32_t fileCount, fingerPrint *fpList) |
Return finger prints of an array of file paths. | |
Identify a file name path by a unique "finger print".
Definition in file fprint.h.
#define FP_ENTRY_EQUAL | ( | a, | |
b | |||
) | (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino)) |
#define FP_EQUAL | ( | a, | |
b | |||
) |
Definition at line 59 of file fprint.h.
Referenced by findFps(), fpEqual(), rpmdbFindByFile(), and rpmdbFindFpList().
typedef struct fingerPrint_s fingerPrint |
typedef struct fprintCache_s* fingerPrintCache |
fingerPrintCache fpCacheCreate | ( | int | sizeHint | ) |
Create finger print cache.
sizeHint | number of elements expected |
Definition at line 19 of file fprint.c.
References fprintCache_s::ht, htCreate(), and xmalloc().
Referenced by rpmdbFindByFile(), rpmdbFindFpList(), and rpmtsRun().
fingerPrintCache fpCacheFree | ( | fingerPrintCache | cache | ) |
Destroy finger print cache.
cache | pointer to fingerprint cache |
Definition at line 29 of file fprint.c.
References fprintCache_s::ht, and htFree().
Referenced by rpmdbFindByFile(), rpmdbFindFpList(), and rpmtsRun().
int fpEqual | ( | const void * | key1, |
const void * | key2 | ||
) |
Compare two finger print entries.
This routine is exactly equivalent to the FP_EQUAL macro.
key1 | finger print 1 |
key2 | finger print 2 |
Definition at line 210 of file fprint.c.
References FP_EQUAL.
Referenced by rpmtsRun().
rpmuint32_t fpHashFunction | ( | rpmuint32_t | h, |
const void * | data, | ||
size_t | size | ||
) |
Return hash value for a finger print.
Hash based on dev and inode only!
h | hash initial value |
*data | finger print entry |
size | size of fingerprint entry |
Definition at line 194 of file fprint.c.
References fingerPrint_s::baseName, fprintCacheEntry_s::dev, fingerPrint_s::entry, and fprintCacheEntry_s::ino.
Referenced by rpmtsRun().
fingerPrint fpLookup | ( | fingerPrintCache | cache, |
const char * | dirName, | ||
const char * | baseName, | ||
int | scareMem | ||
) |
Return finger print of a file path.
cache | pointer to fingerprint cache |
dirName | leading directory name of file path |
baseName | base name of file path |
scareMem |
Definition at line 188 of file fprint.c.
References doLookup().
Referenced by rpmdbFindByFile().
void fpLookupList | ( | fingerPrintCache | cache, |
const char ** | dirNames, | ||
const char ** | baseNames, | ||
const rpmuint32_t * | dirIndexes, | ||
rpmuint32_t | fileCount, | ||
fingerPrint * | fpList | ||
) |
Return finger prints of an array of file paths.
cache | pointer to fingerprint cache |
dirNames | directory names |
baseNames | file base names |
dirIndexes | index into dirNames for each baseNames |
fileCount | number of file entries |
*fpList | array of finger prints |
Definition at line 228 of file fprint.c.
References fingerPrint_s::baseName, doLookup(), fingerPrint_s::entry, and fingerPrint_s::subDir.
Referenced by rpmdbFindFpList(), and rpmtsRun().