Add macro %isu_package to generate ISU Package
[platform/upstream/rpm.git] / lib / rpmdb_internal.h
index 1b691a2..ce95ce1 100644 (file)
 extern "C" {
 #endif
 
+#undef HASHTYPE
+#undef HTKEYTYPE
+#undef HTDATATYPE
+#define HASHTYPE removedHash
+#define HTKEYTYPE unsigned int
+#define HTDATATYPE struct rpmte_s *
+#include "rpmhash.H"
+#undef HASHTYPE
+#undef HTKEYTYPE
+#undef HTDATATYPE
+
+/** \ingroup rpmdb
+ * Reference a database instance.
+ * @param db           rpm database
+ * @return             new rpm database reference
+ */
+rpmdb rpmdbLink(rpmdb db);
+
+/** \ingroup rpmdb
+ * Open rpm database.
+ * @param prefix       path to top of install tree
+ * @retval dbp         address of rpm database
+ * @param mode         open(2) flags:  O_RDWR or O_RDONLY (O_CREAT also)
+ * @param perms                database permissions
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbOpen (const char * prefix, rpmdb * dbp, int mode, int perms);
+
+/** \ingroup rpmdb
+ * Initialize database.
+ * @param prefix       path to top of install tree
+ * @param perms                database permissions
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbInit(const char * prefix, int perms);
+
+/** \ingroup rpmdb
+ * Close all database indices and free rpmdb.
+ * @param db           rpm database
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbClose (rpmdb db);
+
+/** \ingroup rpmdb
+ * Sync all database indices.
+ * @param db           rpm database
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbSync (rpmdb db);
+
+/** \ingroup rpmdb
+ * Rebuild database indices from package headers.
+ * @param prefix       path to top of install tree
+ * @param ts           transaction set (or NULL)
+ * @param (*hdrchk)    headerCheck() vector (or NULL)
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbRebuild(const char * prefix, rpmts ts,
+               rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg));
+
+/** \ingroup rpmdb
+ * Verify database components.
+ * @param prefix       path to top of install tree
+ * @return             0 on success
+ */
+RPM_GNUC_INTERNAL
+int rpmdbVerify(const char * prefix);
+
 /** \ingroup rpmdb
  * Add package header to rpm database and indices.
  * @param db           rpm database
@@ -56,16 +129,6 @@ int rpmdbExtendIterator(rpmdbMatchIterator mi,
  */
 void rpmdbSortIterator(rpmdbMatchIterator mi);
 
-/* avoid importing rpmts_internal.h */
-#undef HASHTYPE
-#undef HTKEYTYPE
-#undef HTDATATYPE
-#define HASHTYPE intHash
-#define HTKEYTYPE unsigned int
-#include "rpmhash.H"
-#undef HASHTYPE
-#undef HTKEYTYPE
-
 /** \ingroup rpmdb
  * Remove items from set of package instances to iterate.
  * @note Sorted hdrNums are always passed in rpmlib.
@@ -73,7 +136,17 @@ void rpmdbSortIterator(rpmdbMatchIterator mi);
  * @param hdrNums      hash of package instances
  * @return             0 on success, 1 on failure (bad args)
  */
-int rpmdbPruneIterator(rpmdbMatchIterator mi, intHash hdrNums);
+int rpmdbPruneIterator(rpmdbMatchIterator mi, removedHash hdrNums);
+
+/** \ingroup rpmdb
+ * Create a new, empty match iterator (for purposes of extending it
+ * through other means)
+ * @param db           rpm database
+ * @param dbitag       database index tag
+ * @return             empty match iterator
+ */
+RPM_GNUC_INTERNAL
+rpmdbMatchIterator rpmdbNewIterator(rpmdb db, rpmDbiTagVal dbitag);
 
 #ifndef __APPLE__
 /**