rpm
4.5
|
00001 #ifndef H_RPMFI 00002 #define H_RPMFI 00003 00009 /*@-exportlocal@*/ 00010 /*@unchecked@*/ 00011 extern int _rpmfi_debug; 00012 /*@=exportlocal@*/ 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 /*@observer@*/ 00036 const char * Type; 00038 rpmTag tagN; 00039 /*@refcounted@*/ /*@null@*/ 00040 Header h; 00042 /*@only@*/ /*?null?*/ 00043 const char ** bnl; 00044 /*@only@*/ /*?null?*/ 00045 const char ** dnl; 00047 /*@only@*/ /*@relnull@*/ 00048 const char ** fdigests; 00049 /*@only@*/ /*@null@*/ 00050 uint_32 * fdigestalgos; 00051 /*@only@*/ /*@relnull@*/ 00052 const char ** flinks; 00053 /*@only@*/ /*@null@*/ 00054 const char ** flangs; 00056 /*@only@*/ /*@relnull@*/ 00057 uint_32 * dil; 00058 /*@only@*/ /*?null?*/ 00059 const uint_32 * fflags; 00060 /*@only@*/ /*?null?*/ 00061 const uint_32 * fsizes; 00062 /*@only@*/ /*?null?*/ 00063 const uint_32 * fmtimes; 00064 /*@only@*/ /*?null?*/ 00065 uint_16 * fmodes; 00066 /*@only@*/ /*?null?*/ 00067 const uint_16 * frdevs; 00068 /*@only@*/ /*?null?*/ 00069 const uint_32 * finodes; 00071 /*@only@*/ /*@null@*/ 00072 const char ** fuser; 00073 /*@only@*/ /*@null@*/ 00074 const char ** fgroup; 00076 /*@only@*/ /*@null@*/ 00077 char * fstates; 00079 /*@only@*/ /*@null@*/ 00080 const uint_32 * fcolors; 00082 /*@only@*/ /*@null@*/ 00083 const char ** fcontexts; 00085 /*@only@*/ /*@null@*/ 00086 const char ** cdict; 00087 int_32 ncdict; 00088 /*@only@*/ /*@null@*/ 00089 const uint_32 * fcdictx; 00091 /*@only@*/ /*@null@*/ 00092 const uint_32 * ddict; 00093 int_32 nddict; 00094 /*@only@*/ /*@null@*/ 00095 const uint_32 * fddictx; 00096 /*@only@*/ /*@null@*/ 00097 const uint_32 * fddictn; 00099 /*@only@*/ /*?null?*/ 00100 const uint_32 * vflags; 00102 int_32 dc; 00103 int_32 fc; 00105 /*=============================*/ 00106 /*@dependent@*/ /*@relnull@*/ 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 /*@owned@*/ /*@relnull@*/ 00120 fileAction * actions; 00121 /*@owned@*/ 00122 struct fingerPrint_s * fps; 00123 /*@owned@*/ 00124 const char ** obnl; 00125 /*@owned@*/ 00126 const char ** odnl; 00127 /*@unused@*/ 00128 int_32 * odil; 00130 /*@only@*/ /*@relnull@*/ 00131 unsigned char * digests; 00132 uint_32 digestalgo; 00133 uint_32 digestlen; 00135 /*@only@*/ /*@relnull@*/ 00136 const char * pretrans; 00137 /*@only@*/ /*@relnull@*/ 00138 const char * pretransprog; 00139 /*@only@*/ /*@relnull@*/ 00140 const char * posttrans; 00141 /*@only@*/ /*@relnull@*/ 00142 const char * posttransprog; 00143 00144 /*@only@*/ /*@null@*/ 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 /*@only@*/ /*@null@*/ 00155 const char ** apath; 00156 int mapflags; 00157 /*@owned@*/ /*@null@*/ 00158 int * fmapflags; 00159 /*@owned@*/ 00160 FSM_t fsm; 00161 int keep_header; 00162 uint_32 color; 00163 /*@owned@*/ 00164 sharedFileInfo replaced; 00165 /*@owned@*/ 00166 uint_32 * replacedSizes; 00167 unsigned int record; 00168 int magic; 00169 #define RPMFIMAGIC 0x09697923 00170 /*=============================*/ 00171 00172 /*@refs@*/ int nrefs; 00173 }; 00174 00175 #endif /* _RPMFI_INTERNAL */ 00176 00177 #ifdef __cplusplus 00178 extern "C" { 00179 #endif 00180 00183 00190 /*@unused@*/ /*@null@*/ 00191 rpmfi rpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi, 00192 /*@null@*/ const char * msg) 00193 /*@modifies fi @*/; 00194 00202 /*@-exportlocal@*/ 00203 /*@null@*/ 00204 rpmfi XrpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi, 00205 /*@null@*/ const char * msg, const char * fn, unsigned ln) 00206 /*@modifies fi @*/; 00207 /*@=exportlocal@*/ 00208 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__) 00209 00216 /*@unused@*/ /*@null@*/ 00217 rpmfi rpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg) 00218 /*@modifies fi @*/; 00219 00227 /*@null@*/ 00228 rpmfi XrpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg, 00229 const char * fn, unsigned ln) 00230 /*@modifies fi @*/; 00231 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__) 00232 00238 int rpmfiFC(/*@null@*/ rpmfi fi) 00239 /*@*/; 00240 00246 /*@unused@*/ 00247 int rpmfiFX(/*@null@*/ rpmfi fi) 00248 /*@*/; 00249 00256 /*@unused@*/ 00257 int rpmfiSetFX(/*@null@*/ rpmfi fi, int fx) 00258 /*@modifies fi @*/; 00259 00265 int rpmfiDC(/*@null@*/ rpmfi fi) 00266 /*@*/; 00267 00273 int rpmfiDX(/*@null@*/ rpmfi fi) 00274 /*@*/; 00275 00282 int rpmfiSetDX(/*@null@*/ rpmfi fi, int dx) 00283 /*@modifies fi @*/; 00284 00290 /*@observer@*/ /*@null@*/ 00291 extern const char * rpmfiBN(/*@null@*/ rpmfi fi) 00292 /*@*/; 00293 00299 /*@observer@*/ /*@null@*/ 00300 extern const char * rpmfiDN(/*@null@*/ rpmfi fi) 00301 /*@*/; 00302 00308 /*@observer@*/ 00309 extern const char * rpmfiFN(/*@null@*/ rpmfi fi) 00310 /*@modifies fi @*/; 00311 00317 uint_32 rpmfiFFlags(/*@null@*/ rpmfi fi) 00318 /*@*/; 00319 00326 uint_32 rpmfiSetFFlags(/*@null@*/ rpmfi fi, uint_32 FFlags) 00327 /*@modifies fi @*/; 00328 00334 uint_32 rpmfiVFlags(/*@null@*/ rpmfi fi) 00335 /*@*/; 00336 00343 uint_32 rpmfiSetVFlags(/*@null@*/ rpmfi fi, uint_32 VFlags) 00344 /*@modifies fi @*/; 00345 00351 int_16 rpmfiFMode(/*@null@*/ rpmfi fi) 00352 /*@*/; 00353 00359 rpmfileState rpmfiFState(/*@null@*/ rpmfi fi) 00360 /*@*/; 00361 00368 rpmfileState rpmfiSetFState(/*@null@*/ rpmfi fi, rpmfileState fstate) 00369 /*@modifies fi @*/; 00370 00378 /*@observer@*/ /*@null@*/ 00379 extern const unsigned char * rpmfiDigest(/*@null@*/ rpmfi fi, 00380 /*@out@*/ /*@null@*/ int * algop, 00381 /*@out@*/ /*@null@*/ size_t * lenp) 00382 /*@modifies *algop, *lenp @*/; 00383 00389 /*@observer@*/ /*@null@*/ 00390 extern const char * rpmfiFLink(/*@null@*/ rpmfi fi) 00391 /*@*/; 00392 00398 int_32 rpmfiFSize(/*@null@*/ rpmfi fi) 00399 /*@*/; 00400 00406 int_16 rpmfiFRdev(/*@null@*/ rpmfi fi) 00407 /*@*/; 00408 00414 int_32 rpmfiFInode(/*@null@*/ rpmfi fi) 00415 /*@*/; 00416 00422 uint_32 rpmfiColor(/*@null@*/ rpmfi fi) 00423 /*@*/; 00424 00430 uint_32 rpmfiFColor(/*@null@*/ rpmfi fi) 00431 /*@*/; 00432 00438 /*@-exportlocal@*/ 00439 /*@observer@*/ /*@null@*/ 00440 extern const char * rpmfiFClass(/*@null@*/ rpmfi fi) 00441 /*@*/; 00442 /*@=exportlocal@*/ 00443 00449 /*@-exportlocal@*/ 00450 /*@observer@*/ /*@null@*/ 00451 extern const char * rpmfiFContext(/*@null@*/ rpmfi fi) 00452 /*@*/; 00453 /*@=exportlocal@*/ 00454 00461 int_32 rpmfiFDepends(/*@null@*/ rpmfi fi, 00462 /*@out@*/ /*@null@*/ const uint_32 ** fddictp) 00463 /*@modifies *fddictp @*/; 00464 00470 int_32 rpmfiFNlink(/*@null@*/ rpmfi fi) 00471 /*@*/; 00472 00478 int_32 rpmfiFMtime(/*@null@*/ rpmfi fi) 00479 /*@*/; 00480 00486 /*@observer@*/ /*@null@*/ 00487 extern const char * rpmfiFUser(/*@null@*/ rpmfi fi) 00488 /*@*/; 00489 00495 /*@observer@*/ /*@null@*/ 00496 extern const char * rpmfiFGroup(/*@null@*/ rpmfi fi) 00497 /*@*/; 00498 00504 int rpmfiNext(/*@null@*/ rpmfi fi) 00505 /*@modifies fi @*/; 00506 00513 /*@null@*/ 00514 rpmfi rpmfiInit(/*@null@*/ rpmfi fi, int fx) 00515 /*@modifies fi @*/; 00516 00522 /*@unused@*/ 00523 int rpmfiNextD(/*@null@*/ rpmfi fi) 00524 /*@modifies fi @*/; 00525 00532 /*@unused@*/ /*@null@*/ 00533 rpmfi rpmfiInitD(/*@null@*/ rpmfi fi, int dx) 00534 /*@modifies fi @*/; 00535 00541 /*@null@*/ 00542 rpmfi rpmfiFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi) 00543 /*@globals fileSystem @*/ 00544 /*@modifies fi, fileSystem @*/; 00545 00554 /*@null@*/ 00555 rpmfi rpmfiNew(/*@null@*/ const rpmts ts, Header h, rpmTag tagN, int flags) 00556 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00557 /*@modifies ts, h, rpmGlobalMacroContext, fileSystem @*/; 00558 00568 void rpmfiBuildFClasses(Header h, 00569 /*@out@*/ const char *** fclassp, /*@out@*/ int * fcp) 00570 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00571 /*@modifies h, *fclassp, *fcp, rpmGlobalMacroContext, fileSystem @*/; 00572 00582 void rpmfiBuildFContexts(Header h, 00583 /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp) 00584 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00585 /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/; 00586 00596 void rpmfiBuildFSContexts(Header h, 00597 /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp) 00598 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00599 /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/; 00600 00610 void rpmfiBuildREContexts(Header h, 00611 /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp) 00612 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00613 /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/; 00614 00625 void rpmfiBuildFDeps(Header h, rpmTag tagN, 00626 /*@out@*/ const char *** fdepsp, /*@out@*/ int * fcp) 00627 /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ 00628 /*@modifies h, *fdepsp, *fcp, 00629 rpmGlobalMacroContext, fileSystem, internalState @*/; 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 /*@globals h_errno, fileSystem, internalState @*/ 00657 /*@modifies nfi, fileSystem, internalState @*/; 00658 00664 /*@-redef@*/ 00665 /*@observer@*/ 00666 const char * rpmfiTypeString(rpmfi fi) 00667 /*@*/; 00668 /*@=redef@*/ 00669 00672 #ifdef __cplusplus 00673 } 00674 #endif 00675 00676 #endif /* H_RPMDS */