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