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 ** fdigests;
00049
00050 uint_32 * fdigestalgos;
00051
00052 const char ** flinks;
00053
00054 const char ** flangs;
00056
00057 uint_32 * dil;
00058
00059 const uint_32 * fflags;
00060
00061 const uint_32 * fsizes;
00062
00063 const uint_32 * fmtimes;
00064
00065 uint_16 * fmodes;
00066
00067 const uint_16 * frdevs;
00068
00069 const uint_32 * finodes;
00071
00072 const char ** fuser;
00073
00074 const char ** fgroup;
00076
00077 char * fstates;
00079
00080 const uint_32 * fcolors;
00082
00083 const char ** fcontexts;
00085
00086 const char ** cdict;
00087 int_32 ncdict;
00088
00089 const uint_32 * fcdictx;
00091
00092 const uint_32 * ddict;
00093 int_32 nddict;
00094
00095 const uint_32 * fddictx;
00096
00097 const uint_32 * fddictn;
00099
00100 const uint_32 * vflags;
00102 int_32 dc;
00103 int_32 fc;
00105
00106
00107 rpmte te;
00108
00109 HGE_t hge;
00110 HAE_t hae;
00111 HME_t hme;
00112 HRE_t hre;
00113 HFD_t hfd;
00114
00115 uid_t uid;
00116 gid_t gid;
00117 uint_32 flags;
00118 fileAction action;
00119
00120 fileAction * actions;
00121
00122 struct fingerPrint_s * fps;
00123
00124 const char ** obnl;
00125
00126 const char ** odnl;
00127
00128 int_32 * odil;
00130
00131 unsigned char * digests;
00132 uint_32 digestalgo;
00133 uint_32 digestlen;
00135
00136 const char * pretrans;
00137
00138 const char * pretransprog;
00139
00140 const char * posttrans;
00141
00142 const char * posttransprog;
00143
00144
00145 char * fn;
00146 int fnlen;
00148 int astriplen;
00149 int striplen;
00150 unsigned long long archivePos;
00151 unsigned long long archiveSize;
00152 mode_t dperms;
00153 mode_t fperms;
00154
00155 const char ** apath;
00156 int mapflags;
00157
00158 int * fmapflags;
00159
00160 FSM_t fsm;
00161 int keep_header;
00162 uint_32 color;
00163
00164 sharedFileInfo replaced;
00165
00166 uint_32 * replacedSizes;
00167 unsigned int record;
00168 int magic;
00169 #define RPMFIMAGIC 0x09697923
00170
00171
00172 int nrefs;
00173 };
00174
00175 #endif
00176
00177 #ifdef __cplusplus
00178 extern "C" {
00179 #endif
00180
00183
00190
00191 rpmfi rpmfiUnlink ( rpmfi fi,
00192 const char * msg)
00193 ;
00194
00202
00203
00204 rpmfi XrpmfiUnlink ( rpmfi fi,
00205 const char * msg, const char * fn, unsigned ln)
00206 ;
00207
00208 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
00209
00216
00217 rpmfi rpmfiLink ( rpmfi fi, const char * msg)
00218 ;
00219
00227
00228 rpmfi XrpmfiLink ( rpmfi fi, const char * msg,
00229 const char * fn, unsigned ln)
00230 ;
00231 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
00232
00238 int rpmfiFC( rpmfi fi)
00239 ;
00240
00246
00247 int rpmfiFX( rpmfi fi)
00248 ;
00249
00256
00257 int rpmfiSetFX( rpmfi fi, int fx)
00258 ;
00259
00265 int rpmfiDC( rpmfi fi)
00266 ;
00267
00273 int rpmfiDX( rpmfi fi)
00274 ;
00275
00282 int rpmfiSetDX( rpmfi fi, int dx)
00283 ;
00284
00290
00291 extern const char * rpmfiBN( rpmfi fi)
00292 ;
00293
00299
00300 extern const char * rpmfiDN( rpmfi fi)
00301 ;
00302
00308
00309 extern const char * rpmfiFN( rpmfi fi)
00310 ;
00311
00317 uint_32 rpmfiFFlags( rpmfi fi)
00318 ;
00319
00326 uint_32 rpmfiSetFFlags( rpmfi fi, uint_32 FFlags)
00327 ;
00328
00334 uint_32 rpmfiVFlags( rpmfi fi)
00335 ;
00336
00343 uint_32 rpmfiSetVFlags( rpmfi fi, uint_32 VFlags)
00344 ;
00345
00351 int_16 rpmfiFMode( rpmfi fi)
00352 ;
00353
00359 rpmfileState rpmfiFState( rpmfi fi)
00360 ;
00361
00368 rpmfileState rpmfiSetFState( rpmfi fi, rpmfileState fstate)
00369 ;
00370
00378
00379 extern const unsigned char * rpmfiDigest( rpmfi fi,
00380 int * algop,
00381 size_t * lenp)
00382 ;
00383
00389
00390 extern const char * rpmfiFLink( rpmfi fi)
00391 ;
00392
00398 int_32 rpmfiFSize( rpmfi fi)
00399 ;
00400
00406 int_16 rpmfiFRdev( rpmfi fi)
00407 ;
00408
00414 int_32 rpmfiFInode( rpmfi fi)
00415 ;
00416
00422 uint_32 rpmfiColor( rpmfi fi)
00423 ;
00424
00430 uint_32 rpmfiFColor( rpmfi fi)
00431 ;
00432
00438
00439
00440 extern const char * rpmfiFClass( rpmfi fi)
00441 ;
00442
00443
00449
00450
00451 extern const char * rpmfiFContext( rpmfi fi)
00452 ;
00453
00454
00461 int_32 rpmfiFDepends( rpmfi fi,
00462 const uint_32 ** fddictp)
00463 ;
00464
00470 int_32 rpmfiFNlink( rpmfi fi)
00471 ;
00472
00478 int_32 rpmfiFMtime( rpmfi fi)
00479 ;
00480
00486
00487 extern const char * rpmfiFUser( rpmfi fi)
00488 ;
00489
00495
00496 extern const char * rpmfiFGroup( rpmfi fi)
00497 ;
00498
00504 int rpmfiNext( rpmfi fi)
00505 ;
00506
00513
00514 rpmfi rpmfiInit( rpmfi fi, int fx)
00515 ;
00516
00522
00523 int rpmfiNextD( rpmfi fi)
00524 ;
00525
00532
00533 rpmfi rpmfiInitD( rpmfi fi, int dx)
00534 ;
00535
00541
00542 rpmfi rpmfiFree( rpmfi fi)
00543
00544 ;
00545
00554
00555 rpmfi rpmfiNew( const rpmts ts, Header h, rpmTag tagN, int flags)
00556
00557 ;
00558
00568 void rpmfiBuildFClasses(Header h,
00569 const char *** fclassp, int * fcp)
00570
00571 ;
00572
00582 void rpmfiBuildFContexts(Header h,
00583 const char *** fcontextp, int * fcp)
00584
00585 ;
00586
00596 void rpmfiBuildFSContexts(Header h,
00597 const char *** fcontextp, int * fcp)
00598
00599 ;
00600
00610 void rpmfiBuildREContexts(Header h,
00611 const char *** fcontextp, int * fcp)
00612
00613 ;
00614
00625 void rpmfiBuildFDeps(Header h, rpmTag tagN,
00626 const char *** fdepsp, int * fcp)
00627
00628
00629 ;
00630
00636 fileTypes whatis(uint_16 mode)
00637 ;
00638
00645 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
00646 ;
00647
00655 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
00656
00657 ;
00658
00664
00665
00666 const char * rpmfiTypeString(rpmfi fi)
00667 ;
00668
00669
00672 #ifdef __cplusplus
00673 }
00674 #endif
00675
00676 #endif