Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

lib/depends.h

Go to the documentation of this file.
00001 #ifndef H_DEPENDS
00002 #define H_DEPENDS
00003 
00009 #include <header.h>
00010 
00011 typedef /*@abstract@*/ struct transactionElement_s *    transactionElement;
00012 typedef /*@abstract@*/ struct tsortInfo_s *             tsortInfo;
00013 
00017 struct tsortInfo_s {
00018     union {
00019         int     count;
00020         /*@kept@*/ /*@null@*/ struct availablePackage * suc;
00021     } tsi_u;
00022 #define tsi_count       tsi_u.count
00023 #define tsi_suc         tsi_u.suc
00024 /*@owned@*/ /*@null@*/
00025     tsortInfo tsi_next;
00026 /*@kept@*/ /*@null@*/
00027     struct availablePackage * tsi_pkg;
00028     int         tsi_reqx;
00029     int         tsi_qcnt;
00030 } ;
00031 
00035 struct availablePackage {
00036     Header h;                           
00037 /*@dependent@*/ const char * name;      
00038 /*@dependent@*/ const char * version;   
00039 /*@dependent@*/ const char * release;   
00040 /*@owned@*/ const char ** provides;     
00041 /*@owned@*/ const char ** providesEVR;  
00042 /*@dependent@*/ int * provideFlags;     
00043 /*@owned@*//*@null@*/ const char ** requires;   
00044 /*@owned@*//*@null@*/ const char ** requiresEVR;
00045 /*@dependent@*//*@null@*/ int * requireFlags;   
00046 /*@owned@*//*@null@*/ const char ** baseNames;  
00047 /*@dependent@*//*@null@*/ int_32 * epoch;       
00048     int providesCount;                  
00049     int requiresCount;                  
00050     int filesCount;                     
00052     struct availablePackage *  parent;  
00053     int degree;                         
00054     int depth;                          
00055     int npreds;                         
00056     int tree;                           
00057     struct tsortInfo_s tsi;             
00059     uint_32 multiLib;   /* MULTILIB */
00060 /*@kept@*//*@null@*/ const void * key;  
00061 /*@null@*/ rpmRelocation * relocs;
00062 /*@null@*/ FD_t fd;
00063 } ;
00064 
00068 struct availableIndexEntry {
00069 /*@dependent@*/ struct availablePackage * package; 
00070 /*@dependent@*/ const char * entry;     
00071     int entryLen;                       
00072     int entryIx;                        
00073     enum indexEntryType {
00074         IET_PROVIDES=1          
00075     } type;                             
00076 } ;
00077 
00081 struct availableIndex {
00082 /*@null@*/ struct availableIndexEntry * index; 
00083     int size;                           
00084 } ;
00085 
00089 struct fileIndexEntry {
00090     int pkgNum;                         
00091     int fileFlags;      /* MULTILIB */
00092 /*@dependent@*/ /*@null@*/ const char * baseName;       
00093 } ;
00094 
00098 typedef struct dirInfo_s {
00099 /*@owned@*/ const char * dirName;       
00100     int dirNameLen;                     
00101 /*@owned@*/ struct fileIndexEntry * files; 
00102     int numFiles;                       
00103 } * dirInfo ;
00104 
00108 typedef /*@abstract@*/ struct availableList_s {
00109 /*@owned@*/ /*@null@*/ struct availablePackage * list;  
00110     struct availableIndex index;        
00111     int delta;                          
00112     int size;                           
00113     int alloced;                        
00114     int numDirs;                        
00115 /*@owned@*/ /*@null@*/ dirInfo dirs;    
00116 } * availableList;
00117 
00121 struct transactionElement_s {
00122     enum rpmTransactionType {
00123         TR_ADDED,       
00124         TR_REMOVED      
00125     } type;             
00126     union { 
00127 /*@unused@*/ int addedIndex;
00128 /*@unused@*/ struct {
00129             int dboffset;
00130             int dependsOnIndex;
00131         } removed;
00132     } u;
00133 } ;
00134 
00138 struct rpmTransactionSet_s {
00139     rpmtransFlags transFlags;           
00140 /*@null@*/ rpmCallbackFunction notify;  
00141 /*@observer@*/ /*@null@*/ rpmCallbackData notifyData;
00143 /*@dependent@*/ rpmProblemSet probs;    
00144     rpmprobFilterFlags ignoreSet;       
00145     int filesystemCount;                
00146 /*@dependent@*/ const char ** filesystems; 
00147 /*@only@*/ struct diskspaceInfo * di;   
00148 /*@kept@*/ /*@null@*/ rpmdb rpmdb;      
00149 /*@only@*/ int * removedPackages;       
00150     int numRemovedPackages;             
00151     int allocedRemovedPackages;         
00152     struct availableList_s addedPackages;
00154     struct availableList_s availablePackages;
00156 /*@only@*/ transactionElement order;
00158     int orderCount;             
00159     int orderAlloced;           
00160 /*@only@*/ TFI_t flList;        
00161     int flEntries;              
00162     int chrootDone;             
00163 /*@only@*/ const char * rootDir;
00164 /*@only@*/ const char * currDir;
00165 /*@null@*/ FD_t scriptFd;       
00166     int delta;                  
00167     int id;                     
00168 } ;
00169 
00173 typedef /*@abstract@*/ struct problemsSet_s {
00174     rpmDependencyConflict problems;     
00175     int num;                    
00176     int alloced;                
00177 } * problemsSet;
00178 
00179 #ifdef __cplusplus
00180 extern "C" {
00181 #endif
00182 
00193 int headerMatchesDepFlags(Header h,
00194         const char * reqName, const char * reqEVR, int reqFlags)
00195                 /*@*/;
00196 
00197 #ifdef __cplusplus
00198 }
00199 #endif
00200 
00201 #endif  /* H_DEPENDS */

Generated on Thu Apr 29 08:02:19 2004 for rpm by doxygen 1.3.6