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

lib/rpmfi.h

Go to the documentation of this file.
00001 #ifndef H_RPMFI
00002 #define H_RPMFI
00003 
00009 /*@-exportlocal@*/
00010 /*@unchecked@*/
00011 extern int _rpmfi_debug;
00012 /*@=exportlocal@*/
00013 
00014 #if defined(_RPMFI_INTERNAL)
00015 
00017 typedef struct sharedFileInfo_s *               sharedFileInfo;
00018 
00021 struct sharedFileInfo_s {
00022     int pkgFileNum;
00023     int otherFileNum;
00024     int otherPkg;
00025     int isRemoved;
00026 };
00027 
00031 struct rpmfi_s {
00032     int i;                      
00033     int j;                      
00035 /*@observer@*/
00036     const char * Type;          
00038     rpmTag tagN;                
00039 /*@refcounted@*/ /*@null@*/
00040     Header h;                   
00042 /*@only@*/ /*?null?*/
00043     const char ** bnl;          
00044 /*@only@*/ /*?null?*/
00045     const char ** dnl;          
00047 /*@only@*/ /*@relnull@*/
00048     const char ** fmd5s;        
00049 /*@only@*/ /*@relnull@*/
00050     const char ** flinks;       
00051 /*@only@*/ /*@null@*/
00052     const char ** flangs;       
00054 /*@only@*/ /*@relnull@*/
00055           uint_32 * dil;        
00056 /*@only@*/ /*?null?*/
00057     const uint_32 * fflags;     
00058 /*@only@*/ /*?null?*/
00059     const uint_32 * fsizes;     
00060 /*@only@*/ /*?null?*/
00061     const uint_32 * fmtimes;    
00062 /*@only@*/ /*?null?*/
00063           uint_16 * fmodes;     
00064 /*@only@*/ /*?null?*/
00065     const uint_16 * frdevs;     
00066 /*@only@*/ /*?null?*/
00067     const uint_32 * finodes;    
00069 /*@only@*/ /*@null@*/
00070     const char ** fuser;        
00071 /*@only@*/ /*@null@*/
00072     const char ** fgroup;       
00073 /*@only@*/ /*@null@*/
00074     uid_t * fuids;              
00075 /*@only@*/ /*@null@*/
00076     gid_t * fgids;              
00078 /*@only@*/ /*@null@*/
00079     char * fstates;             
00081 /*@only@*/ /*@null@*/
00082     const uint_32 * fcolors;    
00084 /*@only@*/ /*@null@*/
00085     const char ** cdict;        
00086     int_32 ncdict;              
00087 /*@only@*/ /*@null@*/
00088     const uint_32 * fcdictx;    
00090 /*@only@*/ /*@null@*/
00091     const uint_32 * ddict;      
00092     int_32 nddict;              
00093 /*@only@*/ /*@null@*/
00094     const uint_32 * fddictx;    
00095 /*@only@*/ /*@null@*/
00096     const uint_32 * fddictn;    
00098 /*@only@*/ /*?null?*/
00099     const uint_32 * vflags;     
00101     int_32 dc;                  
00102     int_32 fc;                  
00104 /*=============================*/
00105 /*@dependent@*/ /*@relnull@*/
00106     rpmte te;
00107 
00108     HGE_t hge;                  
00109     HAE_t hae;                  
00110     HME_t hme;                  
00111     HRE_t hre;                  
00112     HFD_t hfd;                  
00113 /*-----------------------------*/
00114     uid_t uid;                  
00115     gid_t gid;                  
00116     uint_32 flags;              
00117     fileAction action;          
00118 /*@owned@*/ /*@relnull@*/
00119     fileAction * actions;       
00120 /*@owned@*/
00121     struct fingerPrint_s * fps; 
00122 /*@owned@*/
00123     const char ** obnl;         
00124 /*@owned@*/
00125     const char ** odnl;         
00126 /*@unused@*/
00127     int_32 * odil;              
00129 /*@only@*/ /*@relnull@*/
00130     unsigned char * md5s;       
00132 /*@only@*/ /*@null@*/
00133     char * fn;                  
00134     int fnlen;                  
00136     int astriplen;
00137     int striplen;
00138     unsigned int archivePos;
00139     unsigned int archiveSize;
00140     mode_t dperms;              
00141     mode_t fperms;              
00142 /*@only@*/ /*@null@*/
00143     const char ** apath;
00144     int mapflags;
00145 /*@owned@*/ /*@null@*/
00146     int * fmapflags;
00147 /*@owned@*/
00148     FSM_t fsm;                  
00149     int keep_header;            
00150     uint_32 color;              
00151 /*@owned@*/
00152     sharedFileInfo replaced;    
00153 /*@owned@*/
00154     uint_32 * replacedSizes;    
00155     unsigned int record;        
00156     int magic;
00157 #define RPMFIMAGIC      0x09697923
00158 /*=============================*/
00159 
00160 /*@refs@*/ int nrefs;           
00161 };
00162 
00163 #endif  /* _RPMFI_INTERNAL */
00164 
00165 #ifdef __cplusplus
00166 extern "C" {
00167 #endif
00168 
00175 /*@unused@*/ /*@null@*/
00176 rpmfi rpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi,
00177                 /*@null@*/ const char * msg)
00178         /*@modifies fi @*/;
00179 
00187 /*@-exportlocal@*/
00188 /*@null@*/
00189 rpmfi XrpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi,
00190                 /*@null@*/ const char * msg, const char * fn, unsigned ln)
00191         /*@modifies fi @*/;
00192 /*@=exportlocal@*/
00193 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00194 
00201 /*@unused@*/ /*@null@*/
00202 rpmfi rpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg)
00203         /*@modifies fi @*/;
00204 
00212 /*@null@*/
00213 rpmfi XrpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg,
00214                 const char * fn, unsigned ln)
00215         /*@modifies fi @*/;
00216 #define rpmfiLink(_fi, _msg)    XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00217 
00223 int rpmfiFC(/*@null@*/ rpmfi fi)
00224         /*@*/;
00225 
00231 /*@unused@*/
00232 int rpmfiFX(/*@null@*/ rpmfi fi)
00233         /*@*/;
00234 
00241 /*@unused@*/
00242 int rpmfiSetFX(/*@null@*/ rpmfi fi, int fx)
00243         /*@modifies fi @*/;
00244 
00250 int rpmfiDC(/*@null@*/ rpmfi fi)
00251         /*@*/;
00252 
00258 int rpmfiDX(/*@null@*/ rpmfi fi)
00259         /*@*/;
00260 
00267 int rpmfiSetDX(/*@null@*/ rpmfi fi, int dx)
00268         /*@modifies fi @*/;
00269 
00275 /*@observer@*/ /*@null@*/
00276 extern const char * rpmfiBN(/*@null@*/ rpmfi fi)
00277         /*@*/;
00278 
00284 /*@observer@*/ /*@null@*/
00285 extern const char * rpmfiDN(/*@null@*/ rpmfi fi)
00286         /*@*/;
00287 
00293 /*@observer@*/
00294 extern const char * rpmfiFN(/*@null@*/ rpmfi fi)
00295         /*@modifies fi @*/;
00296 
00302 int_32 rpmfiFFlags(/*@null@*/ rpmfi fi)
00303         /*@*/;
00304 
00310 int_32 rpmfiVFlags(/*@null@*/ rpmfi fi)
00311         /*@*/;
00312 
00318 int_16 rpmfiFMode(/*@null@*/ rpmfi fi)
00319         /*@*/;
00320 
00326 rpmfileState rpmfiFState(/*@null@*/ rpmfi fi)
00327         /*@*/;
00328 
00334 /*@observer@*/ /*@null@*/
00335 extern const unsigned char * rpmfiMD5(/*@null@*/ rpmfi fi)
00336         /*@*/;
00337 
00343 /*@observer@*/ /*@null@*/
00344 extern const char * rpmfiFLink(/*@null@*/ rpmfi fi)
00345         /*@*/;
00346 
00352 int_32 rpmfiFSize(/*@null@*/ rpmfi fi)
00353         /*@*/;
00354 
00360 int_16 rpmfiFRdev(/*@null@*/ rpmfi fi)
00361         /*@*/;
00362 
00368 int_32 rpmfiFInode(/*@null@*/ rpmfi fi)
00369         /*@*/;
00370 
00376 uint_32 rpmfiColor(/*@null@*/ rpmfi fi)
00377         /*@*/;
00378 
00384 uint_32 rpmfiFColor(/*@null@*/ rpmfi fi)
00385         /*@*/;
00386 
00392 /*@-exportlocal@*/
00393 /*@observer@*/ /*@null@*/
00394 extern const char * rpmfiFClass(/*@null@*/ rpmfi fi)
00395         /*@*/;
00396 /*@=exportlocal@*/
00397 
00404 int_32 rpmfiFDepends(/*@null@*/ rpmfi fi,
00405                 /*@out@*/ /*@null@*/ const int_32 ** fddictp)
00406         /*@modifies *fddictp @*/;
00407 
00413 int_32 rpmfiFNlink(/*@null@*/ rpmfi fi)
00414         /*@*/;
00415 
00421 int_32 rpmfiFMtime(/*@null@*/ rpmfi fi)
00422         /*@*/;
00423 
00429 /*@observer@*/ /*@null@*/
00430 extern const char * rpmfiFUser(/*@null@*/ rpmfi fi)
00431         /*@*/;
00432 
00438 /*@observer@*/ /*@null@*/
00439 extern const char * rpmfiFGroup(/*@null@*/ rpmfi fi)
00440         /*@*/;
00441 
00447 int rpmfiNext(/*@null@*/ rpmfi fi)
00448         /*@modifies fi @*/;
00449 
00456 /*@null@*/
00457 rpmfi rpmfiInit(/*@null@*/ rpmfi fi, int fx)
00458         /*@modifies fi @*/;
00459 
00465 /*@unused@*/
00466 int rpmfiNextD(/*@null@*/ rpmfi fi)
00467         /*@modifies fi @*/;
00468 
00475 /*@unused@*/ /*@null@*/
00476 rpmfi rpmfiInitD(/*@null@*/ rpmfi fi, int dx)
00477         /*@modifies fi @*/;
00478 
00484 /*@null@*/
00485 rpmfi rpmfiFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi)
00486         /*@globals fileSystem @*/
00487         /*@modifies fi, fileSystem @*/;
00488 
00497 /*@null@*/
00498 rpmfi rpmfiNew(/*@null@*/ rpmts ts, Header h, rpmTag tagN, int scareMem)
00499         /*@globals fileSystem @*/
00500         /*@modifies ts, h, fileSystem @*/;
00501 
00511 void rpmfiBuildFClasses(Header h,
00512                 /*@out@*/ const char *** fclassp, /*@out@*/ int * fcp)
00513         /*@globals fileSystem @*/
00514         /*@modifies h, *fclassp, *fcp, fileSystem @*/;
00515 
00526 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00527                 /*@out@*/ const char *** fdepsp, /*@out@*/ int * fcp)
00528         /*@globals fileSystem @*/
00529         /*@modifies h, *fdepsp, *fcp, fileSystem @*/;
00530 
00536 fileTypes whatis(uint_16 mode)
00537         /*@*/;
00538 
00545 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
00546         /*@*/;
00547 
00555 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
00556         /*@globals fileSystem, internalState @*/
00557         /*@modifies nfi, fileSystem, internalState @*/;
00558 
00564 /*@-redef@*/
00565 /*@observer@*/
00566 const char *const rpmfiTypeString(rpmfi fi)
00567         /*@*/;
00568 /*@=redef@*/
00569 
00570 #ifdef __cplusplus
00571 }
00572 #endif
00573 
00574 #endif  /* H_RPMDS */

Generated on Sun Oct 26 13:02:00 2003 for rpm by doxygen1.2.18