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 
00014 struct tsortInfo {
00015     union {
00016         int     count;
00017         /*@kept@*/ /*@null@*/ struct availablePackage * suc;
00018     } tsi_u;
00019 #define tsi_count       tsi_u.count
00020 #define tsi_suc         tsi_u.suc
00021 /*@owned@*/ /*@null@*/ struct tsortInfo * tsi_next;
00022 /*@kept@*/ /*@null@*/ 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@*//*@null@*/ const char ** requires;   
00039 /*@owned@*//*@null@*/ const char ** requiresEVR;
00040 /*@dependent@*//*@null@*/ int * requireFlags;   
00041 /*@owned@*//*@null@*/ const char ** baseNames;  
00042 /*@dependent@*//*@null@*/ 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@*//*@null@*/ const void * key;  
00051 /*@null@*/ rpmRelocation * relocs;
00052 /*@null@*/ FD_t fd;
00053 } ;
00054 
00058 struct availableIndexEntry {
00059 /*@dependent@*/ struct availablePackage * package; 
00060 /*@dependent@*/ const char * entry;     
00061     int entryLen;                       
00062     int entryIx;                        
00063     enum indexEntryType {
00064         IET_PROVIDES=1          
00065     } type;                             
00066 } ;
00067 
00071 struct availableIndex {
00072 /*@null@*/ struct availableIndexEntry * index; 
00073     int size;                           
00074 } ;
00075 
00079 struct fileIndexEntry {
00080     int pkgNum;                         
00081     int fileFlags;      /* MULTILIB */
00082 /*@dependent@*/ /*@null@*/ const char * baseName;       
00083 } ;
00084 
00088 typedef struct dirInfo_s {
00089 /*@owned@*/ const char * dirName;       
00090     int dirNameLen;                     
00091 /*@owned@*/ struct fileIndexEntry * files; 
00092     int numFiles;                       
00093 } * dirInfo ;
00094 
00098 typedef /*@abstract@*/ struct availableList_s {
00099 /*@owned@*/ /*@null@*/ struct availablePackage * list;  
00100     struct availableIndex index;        
00101     int delta;                          
00102     int size;                           
00103     int alloced;                        
00104     int numDirs;                        
00105 /*@owned@*/ /*@null@*/ dirInfo dirs;    
00106 } * availableList;
00107 
00111 struct transactionElement {
00112     enum rpmTransactionType {
00113         TR_ADDED,       
00114         TR_REMOVED      
00115     } type;             
00116     union { 
00117 /*@unused@*/ int addedIndex;
00118 /*@unused@*/ struct {
00119             int dboffset;
00120             int dependsOnIndex;
00121         } removed;
00122     } u;
00123 } ;
00124 
00128 struct rpmTransactionSet_s {
00129     rpmtransFlags transFlags;           
00130 /*@null@*/ rpmCallbackFunction notify;  
00131 /*@observer@*/ /*@null@*/ rpmCallbackData notifyData;
00133 /*@dependent@*/ rpmProblemSet probs;    
00134     rpmprobFilterFlags ignoreSet;       
00135     int filesystemCount;                
00136 /*@dependent@*/ const char ** filesystems; 
00137 /*@only@*/ struct diskspaceInfo * di;   
00138 /*@kept@*/ /*@null@*/ rpmdb rpmdb;      
00139 /*@only@*/ int * removedPackages;       
00140     int numRemovedPackages;             
00141     int allocedRemovedPackages;         
00142     struct availableList_s addedPackages;
00144     struct availableList_s availablePackages;
00146 /*@only@*/ struct transactionElement * order;
00148     int orderCount;             
00149     int orderAlloced;           
00150 /*@only@*/ TFI_t flList;        
00151     int flEntries;              
00152     int chrootDone;             
00153 /*@only@*/ const char * rootDir;
00154 /*@only@*/ const char * currDir;
00155 /*@null@*/ FD_t scriptFd;       
00156     int delta;                  
00157     int id;                     
00158 } ;
00159 
00163 typedef /*@abstract@*/ struct problemsSet_s {
00164     rpmDependencyConflict problems;     
00165     int num;                    
00166     int alloced;                
00167 } * problemsSet;
00168 
00169 #ifdef __cplusplus
00170 extern "C" {
00171 #endif
00172 
00183 int headerMatchesDepFlags(Header h,
00184         const char * reqName, const char * reqEVR, int reqFlags)
00185                 /*@*/;
00186 
00187 #ifdef __cplusplus
00188 }
00189 #endif
00190 
00191 #endif  /* H_DEPENDS */

Generated on Wed Mar 13 15:34:47 2002 for rpm by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002