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     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@*/ /*@null@*/ const char * baseName;       
00082 } ;
00083 
00087 typedef struct dirInfo_s {
00088 /*@owned@*/ const char * dirName;       
00089     int dirNameLen;                     
00090 /*@owned@*/ struct fileIndexEntry * files; 
00091     int numFiles;                       
00092 } * dirInfo ;
00093 
00097 typedef /*@abstract@*/ struct availableList_s {
00098 /*@owned@*/ /*@null@*/ struct availablePackage * list;  
00099     struct availableIndex index;        
00100     int delta;                          
00101     int size;                           
00102     int alloced;                        
00103     int numDirs;                        
00104 /*@owned@*/ /*@null@*/ dirInfo dirs;    
00105 } * availableList;
00106 
00110 struct transactionElement {
00111     enum rpmTransactionType {
00112         TR_ADDED,       
00113         TR_REMOVED      
00114     } type;             
00115     union { 
00116 /*@unused@*/ int addedIndex;
00117 /*@unused@*/ struct {
00118             int dboffset;
00119             int dependsOnIndex;
00120         } removed;
00121     } u;
00122 } ;
00123 
00127 struct rpmTransactionSet_s {
00128     rpmtransFlags transFlags;           
00129 /*@null@*/ rpmCallbackFunction notify;  
00130 /*@observer@*/ /*@null@*/ rpmCallbackData notifyData;
00132 /*@dependent@*/ rpmProblemSet probs;    
00133     rpmprobFilterFlags ignoreSet;       
00134     int filesystemCount;                
00135 /*@dependent@*/ const char ** filesystems; 
00136 /*@only@*/ struct diskspaceInfo * di;   
00137 /*@kept@*/ /*@null@*/ rpmdb rpmdb;      
00138 /*@only@*/ int * removedPackages;       
00139     int numRemovedPackages;             
00140     int allocedRemovedPackages;         
00141     struct availableList_s addedPackages;
00143     struct availableList_s availablePackages;
00145 /*@only@*/ struct transactionElement * order;
00147     int orderCount;             
00148     int orderAlloced;           
00149 /*@only@*/ TFI_t flList;        
00150     int flEntries;              
00151     int chrootDone;             
00152 /*@only@*/ const char * rootDir;
00153 /*@only@*/ const char * currDir;
00154 /*@null@*/ FD_t scriptFd;       
00155     int delta;                  
00156     int id;                     
00157 } ;
00158 
00162 typedef /*@abstract@*/ struct problemsSet_s {
00163     rpmDependencyConflict problems;     
00164     int num;                    
00165     int alloced;                
00166 } * problemsSet;
00167 
00168 #ifdef __cplusplus
00169 extern "C" {
00170 #endif
00171 
00182 int headerMatchesDepFlags(Header h,
00183         const char * reqName, const char * reqEVR, int reqFlags)
00184                 /*@*/;
00185 
00186 #ifdef __cplusplus
00187 }
00188 #endif
00189 
00190 #endif  /* H_DEPENDS */

Generated at Mon Sep 24 10:37:14 2001 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001