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 char * fn;
00133 int fnlen;
00135 int astriplen;
00136 int striplen;
00137 unsigned int archivePos;
00138 unsigned int archiveSize;
00139 mode_t dperms;
00140 mode_t fperms;
00141
00142 const char ** apath;
00143 int mapflags;
00144
00145 int * fmapflags;
00146
00147 FSM_t fsm;
00148 int keep_header;
00149 uint_32 color;
00150
00151 sharedFileInfo replaced;
00152
00153 uint_32 * replacedSizes;
00154 unsigned int record;
00155 int magic;
00156 #define RPMFIMAGIC 0x09697923
00157
00158
00159 int nrefs;
00160 };
00161
00162 #endif
00163
00164 #ifdef __cplusplus
00165 extern "C" {
00166 #endif
00167
00174
00175 rpmfi rpmfiUnlink ( rpmfi fi,
00176 const char * msg)
00177 ;
00178
00186
00187
00188 rpmfi XrpmfiUnlink ( rpmfi fi,
00189 const char * msg, const char * fn, unsigned ln)
00190 ;
00191
00192 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00193
00200
00201 rpmfi rpmfiLink ( rpmfi fi, const char * msg)
00202 ;
00203
00211
00212 rpmfi XrpmfiLink ( rpmfi fi, const char * msg,
00213 const char * fn, unsigned ln)
00214 ;
00215 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00216
00222 int rpmfiFC( rpmfi fi)
00223 ;
00224
00230
00231 int rpmfiFX( rpmfi fi)
00232 ;
00233
00240
00241 int rpmfiSetFX( rpmfi fi, int fx)
00242 ;
00243
00249 int rpmfiDC( rpmfi fi)
00250 ;
00251
00257 int rpmfiDX( rpmfi fi)
00258 ;
00259
00266 int rpmfiSetDX( rpmfi fi, int dx)
00267 ;
00268
00274
00275 extern const char * rpmfiBN( rpmfi fi)
00276 ;
00277
00283
00284 extern const char * rpmfiDN( rpmfi fi)
00285 ;
00286
00292
00293 extern const char * rpmfiFN( rpmfi fi)
00294 ;
00295
00301 int_32 rpmfiFFlags( rpmfi fi)
00302 ;
00303
00309 int_32 rpmfiVFlags( rpmfi fi)
00310 ;
00311
00317 int_16 rpmfiFMode( rpmfi fi)
00318 ;
00319
00325 rpmfileState rpmfiFState( rpmfi fi)
00326 ;
00327
00333
00334 extern const unsigned char * rpmfiMD5( rpmfi fi)
00335 ;
00336
00342
00343 extern const char * rpmfiFLink( rpmfi fi)
00344 ;
00345
00351 int_32 rpmfiFSize( rpmfi fi)
00352 ;
00353
00359 int_16 rpmfiFRdev( rpmfi fi)
00360 ;
00361
00367 int_32 rpmfiFInode( rpmfi fi)
00368 ;
00369
00375 uint_32 rpmfiColor( rpmfi fi)
00376 ;
00377
00383 uint_32 rpmfiFColor( rpmfi fi)
00384 ;
00385
00391
00392
00393 extern const char * rpmfiFClass( rpmfi fi)
00394 ;
00395
00396
00402
00403
00404 extern const char * rpmfiFContext( rpmfi fi)
00405 ;
00406
00407
00414 int_32 rpmfiFDepends( rpmfi fi,
00415 const int_32 ** fddictp)
00416 ;
00417
00423 int_32 rpmfiFNlink( rpmfi fi)
00424 ;
00425
00431 int_32 rpmfiFMtime( rpmfi fi)
00432 ;
00433
00439
00440 extern const char * rpmfiFUser( rpmfi fi)
00441 ;
00442
00448
00449 extern const char * rpmfiFGroup( rpmfi fi)
00450 ;
00451
00457 int rpmfiNext( rpmfi fi)
00458 ;
00459
00466
00467 rpmfi rpmfiInit( rpmfi fi, int fx)
00468 ;
00469
00475
00476 int rpmfiNextD( rpmfi fi)
00477 ;
00478
00485
00486 rpmfi rpmfiInitD( rpmfi fi, int dx)
00487 ;
00488
00494
00495 rpmfi rpmfiFree( rpmfi fi)
00496
00497 ;
00498
00507
00508 rpmfi rpmfiNew( const rpmts ts, Header h, rpmTag tagN, int scareMem)
00509
00510 ;
00511
00521 void rpmfiBuildFClasses(Header h,
00522 const char *** fclassp, int * fcp)
00523
00524 ;
00525
00535 void rpmfiBuildFContexts(Header h,
00536 const char *** fcontextp, int * fcp)
00537
00538 ;
00539
00549 void rpmfiBuildFSContexts(Header h,
00550 const char *** fcontextp, int * fcp)
00551
00552 ;
00553
00563 void rpmfiBuildREContexts(Header h,
00564 const char *** fcontextp, int * fcp)
00565
00566 ;
00567
00578 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00579 const char *** fdepsp, int * fcp)
00580
00581 ;
00582
00588 fileTypes whatis(uint_16 mode)
00589 ;
00590
00597 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
00598 ;
00599
00607 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
00608
00609 ;
00610
00616 int rpmfiConfigConflict(const rpmfi fi)
00617 ;
00618
00624
00625
00626 const char *const rpmfiTypeString(rpmfi fi)
00627 ;
00628
00629
00630 #ifdef __cplusplus
00631 }
00632 #endif
00633
00634 #endif