summaryrefslogtreecommitdiff
path: root/lib/rpmfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rpmfs.h')
-rw-r--r--lib/rpmfs.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/rpmfs.h b/lib/rpmfs.h
new file mode 100644
index 0000000..129bc65
--- /dev/null
+++ b/lib/rpmfs.h
@@ -0,0 +1,63 @@
+#ifndef _RPMFS_H
+#define _RPMFS_H
+
+#include <rpm/rpmfi.h>
+#include <rpm/rpmte.h>
+
+/** \ingroup rpmfs
+ * Transaction element file states.
+ */
+typedef struct rpmfs_s * rpmfs;
+typedef struct sharedFileInfo_s * sharedFileInfo;
+typedef char rpm_fstate_t;
+
+/* XXX psm needs access to these */
+struct sharedFileInfo_s {
+ int pkgFileNum;
+ int otherPkg;
+ int otherFileNum;
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+RPM_GNUC_INTERNAL
+rpmfs rpmfsNew(Header h, rpmElementType type);
+
+RPM_GNUC_INTERNAL
+rpmfs rpmfsFree(rpmfs fs);
+
+RPM_GNUC_INTERNAL
+rpm_count_t rpmfsFC(rpmfs fs);
+
+RPM_GNUC_INTERNAL
+void rpmfsAddReplaced(rpmfs fs, int pkgFileNum, int otherPkg, int otherFileNum);
+
+RPM_GNUC_INTERNAL
+sharedFileInfo rpmfsGetReplaced(rpmfs fs);
+
+RPM_GNUC_INTERNAL
+sharedFileInfo rpmfsNextReplaced(rpmfs fs , sharedFileInfo replaced);
+
+RPM_GNUC_INTERNAL
+void rpmfsSetState(rpmfs fs, unsigned int ix, rpmfileState state);
+
+RPM_GNUC_INTERNAL
+rpmfileState rpmfsGetState(rpmfs fs, unsigned int ix);
+
+/* May return NULL */
+RPM_GNUC_INTERNAL
+rpm_fstate_t * rpmfsGetStates(rpmfs fs);
+
+RPM_GNUC_INTERNAL
+rpmFileAction rpmfsGetAction(rpmfs fs, unsigned int ix);
+
+/* XXX this should be internal too but build code needs for now */
+void rpmfsSetAction(rpmfs fs, unsigned int ix, rpmFileAction action);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RPMFS_H */