00001 #ifndef H_DEPENDS 00002 #define H_DEPENDS 00003 00009 #include <header.h> 00010 00014 struct tsortInfo { 00015 union { 00016 int count; 00017 /*@kept@*/ struct availablePackage * suc; 00018 } tsi_u; 00019 #define tsi_count tsi_u.count 00020 #define tsi_suc tsi_u.suc 00021 /*@owned@*/ struct tsortInfo * tsi_next; 00022 /*@kept@*/ struct availablePackage * tsi_pkg; 00023 int tsi_reqx; 00024 int tsi_qcnt; 00025 } ; 00026 00030 struct availablePackage { 00031 Header h; 00032 /*@dependent@*/ const char * name; 00033 /*@dependent@*/ const char * version; 00034 /*@dependent@*/ const char * release; 00035 /*@owned@*/ const char ** provides; 00036 /*@owned@*/ const char ** providesEVR; 00037 /*@dependent@*/ int * provideFlags; 00038 /*@owned@*/ const char ** requires; 00039 /*@owned@*/ const char ** requiresEVR; 00040 /*@dependent@*/ int * requireFlags; 00041 /*@owned@*/ const char ** baseNames; 00042 /*@dependent@*/ int_32 * epoch; 00043 int providesCount; 00044 int requiresCount; 00045 int filesCount; 00046 int npreds; 00047 int depth; 00048 struct tsortInfo tsi; 00049 uint_32 multiLib; /* MULTILIB */ 00050 /*@kept@*/ const void * key; 00051 rpmRelocation * relocs; 00052 /*@null@*/ FD_t fd; 00053 } ; 00054 00058 struct availableIndexEntry { 00059 /*@dependent@*/ struct availablePackage * package; 00060 /*@dependent@*/ const char * entry; 00061 size_t entryLen; 00062 enum indexEntryType { 00063 IET_PROVIDES=1 00064 } type; 00065 } ; 00066 00070 struct availableIndex { 00071 /*@null@*/ struct availableIndexEntry * index; 00072 int size; 00073 } ; 00074 00078 struct fileIndexEntry { 00079 int pkgNum; 00080 int fileFlags; /* MULTILIB */ 00081 /*@dependent@*/ const char * baseName; 00082 } ; 00083 00087 struct dirInfo { 00088 /*@owned@*/ const char * dirName; 00089 int dirNameLen; 00090 /*@owned@*/ struct fileIndexEntry * files; 00091 int numFiles; 00092 } ; 00093 00097 struct availableList { 00098 /*@owned@*/ /*@null@*/ struct availablePackage * list; 00099 struct availableIndex index; 00100 int delta; 00101 int size; 00102 int alloced; 00103 int numDirs; 00104 /*@owned@*/ struct dirInfo * dirs; 00105 } ; 00106 00110 struct transactionElement { 00111 enum rpmTransactionType { 00112 TR_ADDED, 00113 TR_REMOVED 00114 } type; 00115 union { 00116 int addedIndex; 00117 struct { 00118 int dboffset; 00119 int dependsOnIndex; 00120 } removed; 00121 } u; 00122 } ; 00123 00127 struct rpmTransactionSet_s { 00128 rpmtransFlags transFlags; 00129 rpmCallbackFunction notify; 00130 /*@observer@*/ rpmCallbackData notifyData; 00131 /*@dependent@*/ rpmProblemSet probs; 00132 rpmprobFilterFlags ignoreSet; 00133 int filesystemCount; 00134 /*@dependent@*/ const char ** filesystems; 00135 /*@only@*/ struct diskspaceInfo * di; 00136 /*@kept@*/ /*@null@*/ rpmdb rpmdb; 00137 /*@only@*/ int * removedPackages; 00138 int numRemovedPackages; 00139 int allocedRemovedPackages; 00140 struct availableList addedPackages; 00141 struct availableList availablePackages; 00143 /*@only@*/ struct transactionElement * order; 00145 int orderCount; 00146 int orderAlloced; 00147 /*@shared@*/ TFI_t flList; 00148 int flEntries; 00149 int chrootDone; 00150 /*@only@*/ const char * rootDir; 00151 /*@only@*/ const char * currDir; 00152 /*@null@*/ FD_t scriptFd; 00153 int delta; 00154 int id; 00155 } ; 00156 00160 struct problemsSet { 00161 struct rpmDependencyConflict * problems; 00162 int num; 00163 int alloced; 00164 } ; 00165 00166 #ifdef __cplusplus 00167 extern "C" { 00168 #endif 00169 00170 /* XXX lib/scriptlet.c */ 00181 int headerMatchesDepFlags(Header h, 00182 const char *reqName, const char * reqEVR, int reqFlags); 00183 00184 #ifdef __cplusplus 00185 } 00186 #endif 00187 00188 #endif /* H_DEPENDS */
1.2.6-20010408 written by Dimitri van Heesch,
© 1997-2001