1 #ifndef _RPMTS_INTERNAL_H
2 #define _RPMTS_INTERNAL_H
5 #include <rpm/rpmal.h> /* XXX availablePackage/relocateFileList ,*/
7 #include "rpmio/rpmkeyring.h"
8 #include "lib/rpmhash.h" /* XXX hashTable */
12 typedef struct diskspaceInfo_s * rpmDiskSpaceInfo;
16 struct diskspaceInfo_s {
17 dev_t dev; /*!< File system device number. */
18 int64_t bneeded; /*!< No. of blocks needed. */
19 int64_t ineeded; /*!< No. of inodes needed. */
20 int64_t bsize; /*!< File system block size. */
21 int64_t bavail; /*!< No. of blocks available. */
22 int64_t iavail; /*!< No. of inodes available. */
26 * Adjust for root only reserved space. On linux e2fs, this is 5%.
28 #define adj_fs_blocks(_nb) (((_nb) * 21) / 20)
30 /* argon thought a shift optimization here was a waste of time... he's
32 #define BLOCK_ROUND(size, block) (((size) + (block) - 1) / (block))
35 * The set of packages to be installed/removed atomically.
38 rpmtransFlags transFlags; /*!< Bit(s) to control operation. */
40 rpmdb sdb; /*!< Solve database handle. */
41 int sdbmode; /*!< Solve database open mode. */
42 int (*solve) (rpmts ts, rpmds key, const void * data);
43 /*!< Search for NEVRA key. */
44 const void * solveData; /*!< Solve callback data */
45 int nsuggests; /*!< No. of depCheck suggestions. */
46 const void ** suggests; /*!< Possible depCheck suggestions. */
48 rpmCallbackFunction notify; /*!< Callback function. */
49 rpmCallbackData notifyData; /*!< Callback private data. */
51 rpmps probs; /*!< Current problems in transaction. */
52 rpmprobFilterFlags ignoreSet;
53 /*!< Bits to filter current problems. */
55 unsigned int filesystemCount; /*!< No. of mounted filesystems. */
56 const char ** filesystems; /*!< Mounted filesystem names. */
57 rpmDiskSpaceInfo dsi; /*!< Per filesystem disk/inode usage. */
59 rpmdb rdb; /*!< Install database handle. */
60 int dbmode; /*!< Install database open mode. */
61 hashTable ht; /*!< Fingerprint hash table. */
63 int * removedPackages; /*!< Set of packages being removed. */
64 int numRemovedPackages; /*!< No. removed package instances. */
65 int allocedRemovedPackages; /*!< Size of removed packages array. */
67 rpmal addedPackages; /*!< Set of packages being installed. */
68 int numAddedPackages; /*!< No. added package instances. */
71 rpmal availablePackages; /*!< Universe of available packages. */
72 int numAvailablePackages; /*!< No. available package instances. */
75 rpmte relocateElement; /*!< Element to use when relocating packages. */
77 rpmte * order; /*!< Packages sorted by dependencies. */
78 int orderCount; /*!< No. of transaction elements. */
79 int orderAlloced; /*!< No. of allocated transaction elements. */
80 int unorderedSuccessors; /*!< Index of 1st element of successors. */
81 int ntrees; /*!< No. of dependency trees. */
82 int maxDepth; /*!< Maximum depth of dependency tree(s). */
84 int selinuxEnabled; /*!< Is SE linux enabled? */
85 int chrootDone; /*!< Has chroot(2) been been done? */
86 char * rootDir; /*!< Path to top of install tree. */
87 char * currDir; /*!< Current working directory. */
88 FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
89 int delta; /*!< Delta for reallocation. */
90 rpm_tid_t tid; /*!< Transaction id. */
92 rpm_color_t color; /*!< Transaction color bits. */
93 rpm_color_t prefcolor; /*!< Preferred file color. */
95 rpmVSFlags vsflags; /*!< Signature/digest verification flags. */
97 const char * fn; /*!< Current package fn. */
99 rpmKeyring keyring; /*!< Keyring in use. */
101 struct rpmop_s ops[RPMTS_OP_MAX];
103 rpmSpec spec; /*!< Spec file control structure. */
105 int nrefs; /*!< Reference count. */
108 #endif /* _RPMTS_INTERNAL_H */