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

# rpmdb/fprint.c File Reference

More...

`#include "system.h"`
`#include <rpmdb.h>`
`#include <rpmmacro.h>`
`#include "fprint.h"`
`#include "debug.h"`

Go to the source code of this file.

## Functions
fingerPrintCache | fpCacheCreate (int sizeHint)
| Create finger print cache. More...
fingerPrintCache | fpCacheFree (fingerPrintCache cache)
| Destroy finger print cache. More...
const struct fprintCacheEntry_s * | cacheContainsDirectory (fingerPrintCache cache, const char *dirName)
| Find directory name entry in cache. More...
fingerPrint | doLookup (fingerPrintCache cache, const char *dirName, const char *baseName, int scareMemory)
| Return finger print of a file path. More...
fingerPrint | fpLookup (fingerPrintCache cache, const char *dirName, const char *baseName, int scareMemory)
| Return finger print of a file path. More...
unsigned int | fpHashFunction (const void *key)
| Return hash value for a finger print. More...
int | fpEqual (const void *key1, const void *key2)
| Compare two finger print entries. More...
void | fpLookupList (fingerPrintCache cache, const char **dirNames, const char **baseNames, const int *dirIndexes, int fileCount, fingerPrint *fpList)
| Return finger prints of an array of file paths. More...

## Detailed Description

Definition in file fprint.c.

## Function Documentation

const struct fprintCacheEntry_s* cacheContainsDirectory | ( | fingerPrintCache | cache,
|  | const char * | dirName
| ) | `[static]`

  | Find directory name entry in cache. Parameters:
  cache | pointer to fingerprint cache
  dirName | string to locate in cache
Returns: pointer to directory name entry (or NULL if not found). Definition at line 36 of file fprint.c. References htGetEntry. Referenced by doLookup.

fingerPrint doLookup | ( | fingerPrintCache | cache,
|  | const char * | dirName,
|  | const char * | baseName,
|  | int | scareMemory
| ) | `[static]`

  | Return finger print of a file path. Parameters:
  cache | pointer to fingerprint cache
  dirName | leading directory name of path
  baseName | file name of path
  scareMemory |
Returns: pointer to the finger print associated with a file path. Definition at line 59 of file fprint.c. References alloca, fingerPrint_s::baseName, cacheContainsDirectory, fprintCacheEntry_s::dev, fprintCacheEntry_s::dirName, fingerPrint_s::entry, htAddEntry, fprintCacheEntry_s::ino, realpath, rpmCleanPath, stpncpy, fingerPrint_s::subDir, xmalloc, and xstrdup. Referenced by fpLookup, and fpLookupList.

fingerPrintCache fpCacheCreate | ( | int | sizeHint | ) |

  | Create finger print cache. Parameters:
  sizeHint | number of elements expected
Returns: pointer to initialized fingerprint cache Definition at line 13 of file fprint.c. References fprintCache_s::ht, htCreate, and xmalloc.

fingerPrintCache fpCacheFree | ( | fingerPrintCache | cache | ) |

  | Destroy finger print cache. Parameters:
  cache | pointer to fingerprint cache
Returns: NULL always Definition at line 23 of file fprint.c. References fprintCache_s::ht, and htFree.

int fpEqual | ( | const void * | key1,
|  | const void * | key2
| ) |

  | Compare two finger print entries. This routine is exactly equivalent to the FP_EQUAL macro. Parameters:
  key1 | finger print 1
  key2 | finger print 2
Returns: result of comparing key1 and key2 Definition at line 216 of file fprint.c. References FP_EQUAL.

unsigned int fpHashFunction | ( | const void * | key | ) |

  | Return hash value for a finger print. Hash based on dev and inode only! Parameters:
  key | pointer to finger print entry
Returns: hash value Definition at line 195 of file fprint.c. References fingerPrint_s::baseName, fprintCacheEntry_s::dev, fingerPrint_s::entry, and fprintCacheEntry_s::ino.

fingerPrint fpLookup | ( | fingerPrintCache | cache,
|  | const char * | dirName,
|  | const char * | baseName,
|  | int | scareMemory
| ) |

  | Return finger print of a file path. Parameters:
  cache | pointer to fingerprint cache
  dirName | leading directory name of file path
  baseName | base name of file path
  scareMemory |
Returns: pointer to the finger print associated with a file path. Definition at line 189 of file fprint.c. References doLookup.

void fpLookupList | ( | fingerPrintCache | cache,
|  | const char ** | dirNames,
|  | const char ** | baseNames,
|  | const int * | dirIndexes,
|  | int | fileCount,
|  | fingerPrint * | fpList
| ) |

  | Return finger prints of an array of file paths. @warning: scareMemory is assumed! Parameters:
  cache | pointer to fingerprint cache
  dirNames | directory names
  baseNames | file base names
  dirIndexes | index into dirNames for each baseNames
  fileCount | number of file entries
  Return values:
  fpList | pointer to array of finger prints
Definition at line 236 of file fprint.c. References fingerPrint_s::baseName, doLookup, fingerPrint_s::entry, and fingerPrint_s::subDir.