Main Page   Modules   Compound List   File List   Compound Members   File Members   Related Pages  

lib/depends.h

Go to the documentation of this file.
00001 #ifndef H_DEPENDS
00002 #define H_DEPENDS
00003 
00008 #include <header.h>
00009 
00013 struct tsortInfo {
00014     union {
00015         int     count;
00016         /*@dependent@*/ struct availablePackage * suc;
00017     } tsi_u;
00018 #define tsi_count       tsi_u.count
00019 #define tsi_suc         tsi_u.suc
00020 /*@owned@*/ struct tsortInfo * tsi_next;
00021 /*@dependent@*/ struct availablePackage * tsi_pkg;
00022     int         tsi_reqx;
00023     int         tsi_qcnt;
00024 };
00025 
00029 struct availablePackage {
00030     Header h;                           
00031 /*@dependent@*/ const char * name;      
00032 /*@dependent@*/ const char * version;   
00033 /*@dependent@*/ const char * release;   
00034 /*@owned@*/ const char ** provides;     
00035 /*@owned@*/ const char ** providesEVR;  
00036 /*@dependent@*/ int * provideFlags;     
00037 /*@owned@*/ const char ** requires;     
00038 /*@owned@*/ const char ** requiresEVR;  
00039 /*@dependent@*/ int * requireFlags;     
00040 /*@owned@*/ const char ** baseNames;    
00041 /*@dependent@*/ int_32 * epoch;         
00042     int providesCount;                  
00043     int requiresCount;                  
00044     int filesCount;                     
00045     struct tsortInfo tsi;               
00046     uint_32 multiLib;   /* MULTILIB */
00047 /*@dependent@*/ const void * key;       
00048     rpmRelocation * relocs;
00049 /*@null@*/ FD_t fd;
00050 } ;
00051 
00055 struct availableIndexEntry {
00056 /*@dependent@*/ struct availablePackage * package; 
00057 /*@dependent@*/ const char * entry;     
00058     size_t entryLen;                    
00059     enum indexEntryType {
00060         IET_PROVIDES=1          
00061     } type;                             
00062 } ;
00063 
00067 struct availableIndex {
00068 /*@null@*/ struct availableIndexEntry * index; 
00069     int size;                           
00070 } ;
00071 
00075 struct fileIndexEntry {
00076     int pkgNum;                         
00077     int fileFlags;      /* MULTILIB */
00078 /*@dependent@*/ const char * baseName;  
00079 } ;
00080 
00084 struct dirInfo {
00085 /*@owned@*/ const char * dirName;       
00086     int dirNameLen;                     
00087 /*@owned@*/ struct fileIndexEntry * files; 
00088     int numFiles;                       
00089 } ;
00090 
00094 struct availableList {
00095 /*@owned@*/ /*@null@*/ struct availablePackage * list;  
00096     struct availableIndex index;        
00097     int delta;                          
00098     int size;                           
00099     int alloced;                        
00100     int numDirs;                        
00101 /*@owned@*/ struct dirInfo * dirs;      
00102 };
00103 
00107 struct transactionElement {
00108     enum rpmTransactionType {
00109         TR_ADDED,       
00110         TR_REMOVED      
00111     } type;             
00112     union { 
00113         int addedIndex;
00114         struct {
00115             int dboffset;
00116             int dependsOnIndex;
00117         } removed;
00118     } u;
00119 };
00120 
00124 struct rpmTransactionSet_s {
00125     rpmtransFlags transFlags;           
00126     rpmCallbackFunction notify;         
00127 /*@observer@*/ rpmCallbackData notifyData;
00128 /*@dependent@*/ rpmProblemSet probs;    
00129     rpmprobFilterFlags ignoreSet;       
00130 /*@owned@*/ /*@null@*/ rpmdb rpmdb;     
00131 /*@only@*/ int * removedPackages;       
00132     int numRemovedPackages;             
00133     int allocedRemovedPackages;         
00134     struct availableList addedPackages;
00135     struct availableList availablePackages;
00137 /*@only@*/ struct transactionElement * order;
00139     int orderCount;             
00140     int orderAlloced;           
00141     int chrootDone;             
00142 /*@only@*/ const char * rootDir;
00143 /*@only@*/ const char * currDir;
00144 /*@null@*/ FD_t scriptFd;       
00145     int delta;                  
00146     int id;                     
00147 };
00148 
00152 struct problemsSet {
00153     struct rpmDependencyConflict * problems;    
00154     int num;                    
00155     int alloced;                
00156 };
00157 
00158 #ifdef __cplusplus
00159 extern "C" {
00160 #endif
00161 
00162 /* XXX lib/uninstall.c */
00173 int headerMatchesDepFlags(Header h,
00174         const char *reqName, const char * reqEVR, int reqFlags);
00175 
00176 #ifdef __cplusplus
00177 }
00178 #endif
00179 
00180 #endif  /* H_DEPENDS */

Generated at Sun Apr 8 18:42:59 2001 for rpm by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000