1 #ifndef _RPMTS_INTERNAL_H
2 #define _RPMTS_INTERNAL_H
6 #include "lib/rpmal.h" /* XXX availablePackage */
7 #include "lib/rpmhash.h" /* XXX hashTable */
8 #include "lib/fprint.h"
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))
36 * The set of packages to be installed/removed atomically.
39 rpmtransFlags transFlags; /*!< Bit(s) to control operation. */
41 int (*solve) (rpmts ts, rpmds key, const void * data);
42 /*!< Search for NEVRA key. */
43 const void * solveData; /*!< Solve callback data */
45 rpmCallbackFunction notify; /*!< Callback function. */
46 rpmCallbackData notifyData; /*!< Callback private data. */
48 rpmps probs; /*!< Current problems in transaction. */
49 rpmprobFilterFlags ignoreSet;
50 /*!< Bits to filter current problems. */
52 unsigned int filesystemCount; /*!< No. of mounted filesystems. */
53 const char ** filesystems; /*!< Mounted filesystem names. */
54 rpmDiskSpaceInfo dsi; /*!< Per filesystem disk/inode usage. */
56 rpmdb rdb; /*!< Install database handle. */
57 int dbmode; /*!< Install database open mode. */
59 int * removedPackages; /*!< Set of packages being removed. */
60 int numRemovedPackages; /*!< No. removed package instances. */
61 int allocedRemovedPackages; /*!< Size of removed packages array. */
63 rpmal addedPackages; /*!< Set of packages being installed. */
64 int numAddedPackages; /*!< No. added package instances. */
66 rpmte * order; /*!< Packages sorted by dependencies. */
67 int orderCount; /*!< No. of transaction elements. */
68 int orderAlloced; /*!< No. of allocated transaction elements. */
69 int ntrees; /*!< No. of dependency trees. */
70 int maxDepth; /*!< Maximum depth of dependency tree(s). */
72 int selinuxEnabled; /*!< Is SE linux enabled? */
73 int chrootDone; /*!< Has chroot(2) been been done? */
74 char * rootDir; /*!< Path to top of install tree. */
75 char * currDir; /*!< Current working directory. */
76 FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
77 int delta; /*!< Delta for reallocation. */
78 rpm_tid_t tid; /*!< Transaction id. */
80 rpm_color_t color; /*!< Transaction color bits. */
81 rpm_color_t prefcolor; /*!< Preferred file color. */
83 rpmVSFlags vsflags; /*!< Signature/digest verification flags. */
85 rpmKeyring keyring; /*!< Keyring in use. */
87 ARGV_t netsharedPaths; /*!< From %{_netsharedpath} */
88 ARGV_t installLangs; /*!< From %{_install_langs} */
90 struct rpmop_s ops[RPMTS_OP_MAX];
92 rpmSpec spec; /*!< Spec file control structure. */
94 int nrefs; /*!< Reference count. */
97 #endif /* _RPMTS_INTERNAL_H */