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 ** cdict;
00082 int_32 ncdict;
00083
00084 const uint_32 * fcdictx;
00086
00087 const uint_32 * ddict;
00088 int_32 nddict;
00089
00090 const uint_32 * fddictx;
00091
00092 const uint_32 * fddictn;
00094
00095 const uint_32 * vflags;
00097 int_32 dc;
00098 int_32 fc;
00100
00101
00102 rpmte te;
00103
00104 HGE_t hge;
00105 HAE_t hae;
00106 HME_t hme;
00107 HRE_t hre;
00108 HFD_t hfd;
00109
00110 uid_t uid;
00111 gid_t gid;
00112 uint_32 flags;
00113 fileAction action;
00114
00115 fileAction * actions;
00116
00117 struct fingerPrint_s * fps;
00118
00119 const char ** obnl;
00120
00121 const char ** odnl;
00122
00123 int_32 * odil;
00125
00126 unsigned char * md5s;
00128
00129 char * fn;
00130 int fnlen;
00132 int astriplen;
00133 int striplen;
00134 unsigned int archivePos;
00135 unsigned int archiveSize;
00136 mode_t dperms;
00137 mode_t fperms;
00138
00139 const char ** apath;
00140 int mapflags;
00141
00142 int * fmapflags;
00143
00144 FSM_t fsm;
00145 int keep_header;
00146 uint_32 color;
00147
00148 sharedFileInfo replaced;
00149
00150 uint_32 * replacedSizes;
00151 unsigned int record;
00152 int magic;
00153 #define RPMFIMAGIC 0x09697923
00154
00155
00156 int nrefs;
00157 };
00158
00159 #endif
00160
00161 #ifdef __cplusplus
00162 extern "C" {
00163 #endif
00164
00171
00172 rpmfi rpmfiUnlink ( rpmfi fi,
00173 const char * msg)
00174 ;
00175
00183
00184
00185 rpmfi XrpmfiUnlink ( rpmfi fi,
00186 const char * msg, const char * fn, unsigned ln)
00187 ;
00188
00189 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00190
00197
00198 rpmfi rpmfiLink ( rpmfi fi, const char * msg)
00199 ;
00200
00208
00209 rpmfi XrpmfiLink ( rpmfi fi, const char * msg,
00210 const char * fn, unsigned ln)
00211 ;
00212 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00213
00219 int rpmfiFC( rpmfi fi)
00220 ;
00221
00227
00228 int rpmfiFX( rpmfi fi)
00229 ;
00230
00237
00238 int rpmfiSetFX( rpmfi fi, int fx)
00239 ;
00240
00246 int rpmfiDC( rpmfi fi)
00247 ;
00248
00254 int rpmfiDX( rpmfi fi)
00255 ;
00256
00263 int rpmfiSetDX( rpmfi fi, int dx)
00264 ;
00265
00271
00272 extern const char * rpmfiBN( rpmfi fi)
00273 ;
00274
00280
00281 extern const char * rpmfiDN( rpmfi fi)
00282 ;
00283
00289
00290 extern const char * rpmfiFN( rpmfi fi)
00291 ;
00292
00298 int_32 rpmfiFFlags( rpmfi fi)
00299 ;
00300
00306 int_32 rpmfiVFlags( rpmfi fi)
00307 ;
00308
00314 int_16 rpmfiFMode( rpmfi fi)
00315 ;
00316
00322 rpmfileState rpmfiFState( rpmfi fi)
00323 ;
00324
00330
00331 extern const unsigned char * rpmfiMD5( rpmfi fi)
00332 ;
00333
00339
00340 extern const char * rpmfiFLink( rpmfi fi)
00341 ;
00342
00348 int_32 rpmfiFSize( rpmfi fi)
00349 ;
00350
00356 int_16 rpmfiFRdev( rpmfi fi)
00357 ;
00358
00364 int_32 rpmfiFInode( rpmfi fi)
00365 ;
00366
00372 uint_32 rpmfiColor( rpmfi fi)
00373 ;
00374
00380 uint_32 rpmfiFColor( rpmfi fi)
00381 ;
00382
00388
00389
00390 extern const char * rpmfiFClass( rpmfi fi)
00391 ;
00392
00393
00400 int_32 rpmfiFDepends( rpmfi fi,
00401 const int_32 ** fddictp)
00402 ;
00403
00409 int_32 rpmfiFNlink( rpmfi fi)
00410 ;
00411
00417 int_32 rpmfiFMtime( rpmfi fi)
00418 ;
00419
00425
00426 extern const char * rpmfiFUser( rpmfi fi)
00427 ;
00428
00434
00435 extern const char * rpmfiFGroup( rpmfi fi)
00436 ;
00437
00443 int rpmfiNext( rpmfi fi)
00444 ;
00445
00452
00453 rpmfi rpmfiInit( rpmfi fi, int fx)
00454 ;
00455
00461
00462 int rpmfiNextD( rpmfi fi)
00463 ;
00464
00471
00472 rpmfi rpmfiInitD( rpmfi fi, int dx)
00473 ;
00474
00480
00481 rpmfi rpmfiFree( rpmfi fi)
00482
00483 ;
00484
00493
00494 rpmfi rpmfiNew( rpmts ts, Header h, rpmTag tagN, int scareMem)
00495
00496 ;
00497
00507 void rpmfiBuildFClasses(Header h,
00508 const char *** fclassp, int * fcp)
00509
00510 ;
00511
00522 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00523 const char *** fdepsp, int * fcp)
00524
00525 ;
00526
00532 fileTypes whatis(uint_16 mode)
00533 ;
00534
00541 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
00542 ;
00543
00551 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
00552
00553 ;
00554
00560
00561
00562 const char *const rpmfiTypeString(rpmfi fi)
00563 ;
00564
00565
00566 #ifdef __cplusplus
00567 }
00568 #endif
00569
00570 #endif