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;
00073
00074 uid_t * fuids;
00075
00076 gid_t * fgids;
00078
00079 char * fstates;
00081
00082 const uint_32 * fcolors;
00084
00085 const char ** cdict;
00086 int_32 ncdict;
00087
00088 const uint_32 * fcdictx;
00090
00091 const uint_32 * ddict;
00092 int_32 nddict;
00093
00094 const uint_32 * fddictx;
00095
00096 const uint_32 * fddictn;
00098
00099 const uint_32 * vflags;
00101 int_32 dc;
00102 int_32 fc;
00104
00105
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
00119 fileAction * actions;
00120
00121 struct fingerPrint_s * fps;
00122
00123 const char ** obnl;
00124
00125 const char ** odnl;
00126
00127 int_32 * odil;
00129
00130 unsigned char * md5s;
00132
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
00143 const char ** apath;
00144 int mapflags;
00145
00146 int * fmapflags;
00147
00148 FSM_t fsm;
00149 int keep_header;
00150 uint_32 color;
00151
00152 sharedFileInfo replaced;
00153
00154 uint_32 * replacedSizes;
00155 unsigned int record;
00156 int magic;
00157 #define RPMFIMAGIC 0x09697923
00158
00159
00160 int nrefs;
00161 };
00162
00163 #endif
00164
00165 #ifdef __cplusplus
00166 extern "C" {
00167 #endif
00168
00175
00176 rpmfi rpmfiUnlink ( rpmfi fi,
00177 const char * msg)
00178 ;
00179
00187
00188
00189 rpmfi XrpmfiUnlink ( rpmfi fi,
00190 const char * msg, const char * fn, unsigned ln)
00191 ;
00192
00193 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00194
00201
00202 rpmfi rpmfiLink ( rpmfi fi, const char * msg)
00203 ;
00204
00212
00213 rpmfi XrpmfiLink ( rpmfi fi, const char * msg,
00214 const char * fn, unsigned ln)
00215 ;
00216 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00217
00223 int rpmfiFC( rpmfi fi)
00224 ;
00225
00231
00232 int rpmfiFX( rpmfi fi)
00233 ;
00234
00241
00242 int rpmfiSetFX( rpmfi fi, int fx)
00243 ;
00244
00250 int rpmfiDC( rpmfi fi)
00251 ;
00252
00258 int rpmfiDX( rpmfi fi)
00259 ;
00260
00267 int rpmfiSetDX( rpmfi fi, int dx)
00268 ;
00269
00275
00276 extern const char * rpmfiBN( rpmfi fi)
00277 ;
00278
00284
00285 extern const char * rpmfiDN( rpmfi fi)
00286 ;
00287
00293
00294 extern const char * rpmfiFN( rpmfi fi)
00295 ;
00296
00302 int_32 rpmfiFFlags( rpmfi fi)
00303 ;
00304
00310 int_32 rpmfiVFlags( rpmfi fi)
00311 ;
00312
00318 int_16 rpmfiFMode( rpmfi fi)
00319 ;
00320
00326 rpmfileState rpmfiFState( rpmfi fi)
00327 ;
00328
00334
00335 extern const unsigned char * rpmfiMD5( rpmfi fi)
00336 ;
00337
00343
00344 extern const char * rpmfiFLink( rpmfi fi)
00345 ;
00346
00352 int_32 rpmfiFSize( rpmfi fi)
00353 ;
00354
00360 int_16 rpmfiFRdev( rpmfi fi)
00361 ;
00362
00368 int_32 rpmfiFInode( rpmfi fi)
00369 ;
00370
00376 uint_32 rpmfiColor( rpmfi fi)
00377 ;
00378
00384 uint_32 rpmfiFColor( rpmfi fi)
00385 ;
00386
00392
00393
00394 extern const char * rpmfiFClass( rpmfi fi)
00395 ;
00396
00397
00404 int_32 rpmfiFDepends( rpmfi fi,
00405 const int_32 ** fddictp)
00406 ;
00407
00413 int_32 rpmfiFNlink( rpmfi fi)
00414 ;
00415
00421 int_32 rpmfiFMtime( rpmfi fi)
00422 ;
00423
00429
00430 extern const char * rpmfiFUser( rpmfi fi)
00431 ;
00432
00438
00439 extern const char * rpmfiFGroup( rpmfi fi)
00440 ;
00441
00447 int rpmfiNext( rpmfi fi)
00448 ;
00449
00456
00457 rpmfi rpmfiInit( rpmfi fi, int fx)
00458 ;
00459
00465
00466 int rpmfiNextD( rpmfi fi)
00467 ;
00468
00475
00476 rpmfi rpmfiInitD( rpmfi fi, int dx)
00477 ;
00478
00484
00485 rpmfi rpmfiFree( rpmfi fi)
00486
00487 ;
00488
00497
00498 rpmfi rpmfiNew( rpmts ts, Header h, rpmTag tagN, int scareMem)
00499
00500 ;
00501
00511 void rpmfiBuildFClasses(Header h,
00512 const char *** fclassp, int * fcp)
00513
00514 ;
00515
00526 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00527 const char *** fdepsp, int * fcp)
00528
00529 ;
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
00557 ;
00558
00564
00565
00566 const char *const rpmfiTypeString(rpmfi fi)
00567 ;
00568
00569
00570 #ifdef __cplusplus
00571 }
00572 #endif
00573
00574 #endif