#include <libgen.h>
/* Create new hash table type rpmFpEntryHash */
-#include "lib/rpmhash.C"
-
#undef HASHTYPE
#undef HTKEYTYPE
#undef HTDATATYPE
#define HASHTYPE rpmFpEntryHash
#define HTKEYTYPE const char *
#define HTDATATYPE const struct fprintCacheEntry_s *
+#include "lib/rpmhash.H"
+#include "lib/rpmhash.C"
+
+/* Create by-fingerprint hash table */
+#undef HASHTYPE
+#undef HTKEYTYPE
+#undef HTDATATYPE
+#define HASHTYPE rpmFpHash
+#define HTKEYTYPE const fingerPrint *
+#define HTDATATYPE struct rpmffi_s
+#include "lib/rpmhash.H"
#include "lib/rpmhash.C"
+#undef HASHTYPE
+#undef HTKEYTYPE
+#undef HTDATATYPE
/**
* Finger print cache.
return 0;
}
-unsigned int fpHashFunction(const fingerPrint * fp)
+/**
+ * Return hash value for a finger print.
+ * Hash based on dev and inode only!
+ * @param key pointer to finger print entry
+ * @return hash value
+ */
+static unsigned int fpHashFunction(const fingerPrint * fp)
{
unsigned int hash = 0;
int j;
}
}
-void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr)
+/* Check file for to be installed symlinks in their path and correct their fp */
+static void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr)
{
rpmfi fi = rpmteFI(p);
struct fingerPrint_s current_fp;
* Identify a file name path by a unique "finger print".
*/
-#include <rpm/header.h>
-#include <rpm/rpmte.h>
-#include "lib/rpmdb_internal.h"
+#include <rpm/rpmtypes.h>
/**
*/
const char * baseName; /*!< file base name */
};
-/* Create new hash table data type */
-#define HASHTYPE rpmFpEntryHash
-#define HTKEYTYPE const char *
-#define HTDATATYPE const struct fprintCacheEntry_s *
-#include "lib/rpmhash.H"
-
/**
* Finger print cache entry.
* This is really a directory and symlink cache. We don't differentiate between
ino_t ino; /*!< stat(2) inode number */
};
-/* Create new hash table data type */
-
struct rpmffi_s {
rpmte p;
int fileno;
};
-#undef HASHTYPE
-#undef HTKEYTYPE
-#undef HTDATATYPE
-
-#define HASHTYPE rpmFpHash
-#define HTKEYTYPE const fingerPrint *
-#define HTDATATYPE struct rpmffi_s
-#include "lib/rpmhash.H"
-
/** */
#define FP_ENTRY_EQUAL(a, b) (((a)->dev == (b)->dev) && ((a)->ino == (b)->ino))
fingerPrint *fp);
/**
- * Return hash value for a finger print.
- * Hash based on dev and inode only!
- * @param key pointer to finger print entry
- * @return hash value
- */
-RPM_GNUC_INTERNAL
-unsigned int fpHashFunction(const fingerPrint * key);
-
-/**
* Compare two finger print entries.
* This routine is exactly equivalent to the FP_EQUAL macro.
* @param key1 finger print 1
const uint32_t * dirIndexes,
int fileCount, fingerPrint * fpList);
-/**
- * Check file for to be installed symlinks in their path,
- * correct their fingerprint and add it to newht.
- * @param ht hash table containing all files fingerprints
- * @param newht hash table to add the corrected fingerprints
- * @param fpc fingerprint cache
- * @param fi file iterator of the package
- * @param filenr the number of the file we are dealing with
- */
-RPM_GNUC_INTERNAL
-void fpLookupSubdir(rpmFpHash symlinks, fingerPrintCache fpc, rpmte p, int filenr);
-
-
#ifdef __cplusplus
}
#endif