00001 #ifndef H_RPMFI
00002 #define H_RPMFI
00003 
00009 
00010 
00011 extern int _rpmfi_debug;
00012 
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 
00036     const char * Type;          
00038     rpmTag tagN;                
00039  
00040     Header h;                   
00042  
00043     const char ** bnl;          
00044  
00045     const char ** dnl;          
00047  
00048     const char ** fmd5s;        
00049  
00050     const char ** flinks;       
00051  
00052     const char ** flangs;       
00054  
00055           uint_32 * dil;        
00056  
00057     const uint_32 * fflags;     
00058  
00059     const uint_32 * fsizes;     
00060  
00061     const uint_32 * fmtimes;    
00062  
00063           uint_16 * fmodes;     
00064  
00065     const uint_16 * frdevs;     
00066  
00067     const uint_32 * finodes;    
00069  
00070     const char ** fuser;        
00071  
00072     const char ** fgroup;       
00074  
00075     char * fstates;             
00077  
00078     const uint_32 * fcolors;    
00080  
00081     const char ** fcontexts;    
00083  
00084     const char ** cdict;        
00085     int_32 ncdict;              
00086  
00087     const uint_32 * fcdictx;    
00089  
00090     const uint_32 * ddict;      
00091     int_32 nddict;              
00092  
00093     const uint_32 * fddictx;    
00094  
00095     const uint_32 * fddictn;    
00097  
00098     const uint_32 * vflags;     
00100     int_32 dc;                  
00101     int_32 fc;                  
00103 
00104  
00105     rpmte te;
00106 
00107     HGE_t hge;                  
00108     HAE_t hae;                  
00109     HME_t hme;                  
00110     HRE_t hre;                  
00111     HFD_t hfd;                  
00112 
00113     uid_t uid;                  
00114     gid_t gid;                  
00115     uint_32 flags;              
00116     fileAction action;          
00117  
00118     fileAction * actions;       
00119 
00120     struct fingerPrint_s * fps; 
00121 
00122     const char ** obnl;         
00123 
00124     const char ** odnl;         
00125 
00126     int_32 * odil;              
00128  
00129     unsigned char * md5s;       
00131  
00132     const char * pretrans;
00133  
00134     const char * pretransprog;
00135  
00136     const char * posttrans;
00137  
00138     const char * posttransprog;
00139 
00140  
00141     char * fn;                  
00142     int fnlen;                  
00144     int astriplen;
00145     int striplen;
00146     unsigned int archivePos;
00147     unsigned int archiveSize;
00148     mode_t dperms;              
00149     mode_t fperms;              
00150  
00151     const char ** apath;
00152     int mapflags;
00153  
00154     int * fmapflags;
00155 
00156     FSM_t fsm;                  
00157     int keep_header;            
00158     uint_32 color;              
00159 
00160     sharedFileInfo replaced;    
00161 
00162     uint_32 * replacedSizes;    
00163     unsigned int record;        
00164     int magic;
00165 #define RPMFIMAGIC      0x09697923
00166 
00167 
00168  int nrefs;           
00169 };
00170 
00171 #endif  
00172 
00173 #ifdef __cplusplus
00174 extern "C" {
00175 #endif
00176 
00183  
00184 rpmfi rpmfiUnlink (   rpmfi fi,
00185                  const char * msg)
00186         ;
00187 
00195 
00196 
00197 rpmfi XrpmfiUnlink (   rpmfi fi,
00198                  const char * msg, const char * fn, unsigned ln)
00199         ;
00200 
00201 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00202 
00209  
00210 rpmfi rpmfiLink ( rpmfi fi,  const char * msg)
00211         ;
00212 
00220 
00221 rpmfi XrpmfiLink ( rpmfi fi,  const char * msg,
00222                 const char * fn, unsigned ln)
00223         ;
00224 #define rpmfiLink(_fi, _msg)    XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00225 
00231 int rpmfiFC( rpmfi fi)
00232         ;
00233 
00239 
00240 int rpmfiFX( rpmfi fi)
00241         ;
00242 
00249 
00250 int rpmfiSetFX( rpmfi fi, int fx)
00251         ;
00252 
00258 int rpmfiDC( rpmfi fi)
00259         ;
00260 
00266 int rpmfiDX( rpmfi fi)
00267         ;
00268 
00275 int rpmfiSetDX( rpmfi fi, int dx)
00276         ;
00277 
00283  
00284 extern const char * rpmfiBN( rpmfi fi)
00285         ;
00286 
00292  
00293 extern const char * rpmfiDN( rpmfi fi)
00294         ;
00295 
00301 
00302 extern const char * rpmfiFN( rpmfi fi)
00303         ;
00304 
00310 int_32 rpmfiFFlags( rpmfi fi)
00311         ;
00312 
00318 int_32 rpmfiVFlags( rpmfi fi)
00319         ;
00320 
00326 int_16 rpmfiFMode( rpmfi fi)
00327         ;
00328 
00334 rpmfileState rpmfiFState( rpmfi fi)
00335         ;
00336 
00342  
00343 extern const unsigned char * rpmfiMD5( rpmfi fi)
00344         ;
00345 
00351  
00352 extern const char * rpmfiFLink( rpmfi fi)
00353         ;
00354 
00360 int_32 rpmfiFSize( rpmfi fi)
00361         ;
00362 
00368 int_16 rpmfiFRdev( rpmfi fi)
00369         ;
00370 
00376 int_32 rpmfiFInode( rpmfi fi)
00377         ;
00378 
00384 uint_32 rpmfiColor( rpmfi fi)
00385         ;
00386 
00392 uint_32 rpmfiFColor( rpmfi fi)
00393         ;
00394 
00400 
00401  
00402 extern const char * rpmfiFClass( rpmfi fi)
00403         ;
00404 
00405 
00411 
00412  
00413 extern const char * rpmfiFContext( rpmfi fi)
00414         ;
00415 
00416 
00423 int_32 rpmfiFDepends( rpmfi fi,
00424                   const int_32 ** fddictp)
00425         ;
00426 
00432 int_32 rpmfiFNlink( rpmfi fi)
00433         ;
00434 
00440 int_32 rpmfiFMtime( rpmfi fi)
00441         ;
00442 
00448  
00449 extern const char * rpmfiFUser( rpmfi fi)
00450         ;
00451 
00457  
00458 extern const char * rpmfiFGroup( rpmfi fi)
00459         ;
00460 
00466 int rpmfiNext( rpmfi fi)
00467         ;
00468 
00475 
00476 rpmfi rpmfiInit( rpmfi fi, int fx)
00477         ;
00478 
00484 
00485 int rpmfiNextD( rpmfi fi)
00486         ;
00487 
00494  
00495 rpmfi rpmfiInitD( rpmfi fi, int dx)
00496         ;
00497 
00503 
00504 rpmfi rpmfiFree(   rpmfi fi)
00505         
00506         ;
00507 
00517 
00518 rpmfi rpmfiNew( const rpmts ts, Header h, rpmTag tagN, int scareMem)
00519         
00520         ;
00521 
00531 void rpmfiBuildFClasses(Header h,
00532                  const char *** fclassp,  int * fcp)
00533         
00534         ;
00535 
00545 void rpmfiBuildFContexts(Header h,
00546                  const char *** fcontextp,  int * fcp)
00547         
00548         ;
00549 
00559 void rpmfiBuildFSContexts(Header h,
00560                  const char *** fcontextp,  int * fcp)
00561         
00562         ;
00563 
00573 void rpmfiBuildREContexts(Header h,
00574                  const char *** fcontextp,  int * fcp)
00575         
00576         ;
00577 
00588 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00589                  const char *** fdepsp,  int * fcp)
00590         
00591         
00592 ;
00593 
00599 fileTypes whatis(uint_16 mode)
00600         ;
00601 
00608 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
00609         ;
00610 
00618 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
00619         
00620         ;
00621 
00627 int rpmfiConfigConflict(const rpmfi fi)
00628         ;
00629 
00635 
00636 
00637 const char *const rpmfiTypeString(rpmfi fi)
00638         ;
00639 
00640 
00641 #ifdef __cplusplus
00642 }
00643 #endif
00644 
00645 #endif