rpm  4.5
rpmfi.h
Go to the documentation of this file.
1 #ifndef H_RPMFI
2 #define H_RPMFI
3 
9 /*@-exportlocal@*/
10 /*@unchecked@*/
11 extern int _rpmfi_debug;
12 /*@=exportlocal@*/
13 
14 #if defined(_RPMFI_INTERNAL)
15 
17 typedef struct sharedFileInfo_s * sharedFileInfo;
18 
21 struct sharedFileInfo_s {
22  int pkgFileNum;
23  int otherFileNum;
24  int otherPkg;
25  int isRemoved;
26 };
27 
31 struct rpmfi_s {
32  int i;
33  int j;
35 /*@observer@*/
36  const char * Type;
38  rpmTag tagN;
39 /*@refcounted@*/ /*@null@*/
40  Header h;
42 /*@only@*/ /*?null?*/
43  const char ** bnl;
44 /*@only@*/ /*?null?*/
45  const char ** dnl;
47 /*@only@*/ /*@relnull@*/
48  const char ** fdigests;
49 /*@only@*/ /*@null@*/
50  uint_32 * fdigestalgos;
51 /*@only@*/ /*@relnull@*/
52  const char ** flinks;
53 /*@only@*/ /*@null@*/
54  const char ** flangs;
56 /*@only@*/ /*@relnull@*/
57  uint_32 * dil;
58 /*@only@*/ /*?null?*/
59  const uint_32 * fflags;
60 /*@only@*/ /*?null?*/
61  const uint_32 * fsizes;
62 /*@only@*/ /*?null?*/
63  const uint_32 * fmtimes;
64 /*@only@*/ /*?null?*/
65  uint_16 * fmodes;
66 /*@only@*/ /*?null?*/
67  const uint_16 * frdevs;
68 /*@only@*/ /*?null?*/
69  const uint_32 * finodes;
71 /*@only@*/ /*@null@*/
72  const char ** fuser;
73 /*@only@*/ /*@null@*/
74  const char ** fgroup;
76 /*@only@*/ /*@null@*/
77  char * fstates;
79 /*@only@*/ /*@null@*/
80  const uint_32 * fcolors;
82 /*@only@*/ /*@null@*/
83  const char ** fcontexts;
85 /*@only@*/ /*@null@*/
86  const char ** cdict;
87  int_32 ncdict;
88 /*@only@*/ /*@null@*/
89  const uint_32 * fcdictx;
91 /*@only@*/ /*@null@*/
92  const uint_32 * ddict;
93  int_32 nddict;
94 /*@only@*/ /*@null@*/
95  const uint_32 * fddictx;
96 /*@only@*/ /*@null@*/
97  const uint_32 * fddictn;
99 /*@only@*/ /*?null?*/
100  const uint_32 * vflags;
102  int_32 dc;
103  int_32 fc;
105 /*=============================*/
106 /*@dependent@*/ /*@relnull@*/
107  rpmte te;
108 
109  HGE_t hge;
110  HAE_t hae;
111  HME_t hme;
112  HRE_t hre;
113  HFD_t hfd;
114 /*-----------------------------*/
115  uid_t uid;
116  gid_t gid;
117  uint_32 flags;
118  fileAction action;
119 /*@owned@*/ /*@relnull@*/
120  fileAction * actions;
121 /*@owned@*/
122  struct fingerPrint_s * fps;
123 /*@owned@*/
124  const char ** obnl;
125 /*@owned@*/
126  const char ** odnl;
127 /*@unused@*/
128  int_32 * odil;
130 /*@only@*/ /*@relnull@*/
131  unsigned char * digests;
132  uint_32 digestalgo;
133  uint_32 digestlen;
135 /*@only@*/ /*@relnull@*/
136  const char * pretrans;
137 /*@only@*/ /*@relnull@*/
138  const char * pretransprog;
139 /*@only@*/ /*@relnull@*/
140  const char * posttrans;
141 /*@only@*/ /*@relnull@*/
142  const char * posttransprog;
143 
144 /*@only@*/ /*@null@*/
145  char * fn;
146  int fnlen;
148  int astriplen;
149  int striplen;
150  unsigned long long archivePos;
151  unsigned long long archiveSize;
152  mode_t dperms;
153  mode_t fperms;
154 /*@only@*/ /*@null@*/
155  const char ** apath;
156  int mapflags;
157 /*@owned@*/ /*@null@*/
158  int * fmapflags;
159 /*@owned@*/
160  FSM_t fsm;
161  int keep_header;
162  uint_32 color;
163 /*@owned@*/
164  sharedFileInfo replaced;
165 /*@owned@*/
166  uint_32 * replacedSizes;
167  unsigned int record;
168  int magic;
169 #define RPMFIMAGIC 0x09697923
170 /*=============================*/
171 
172 /*@refs@*/ int nrefs;
173 };
174 
175 #endif /* _RPMFI_INTERNAL */
176 
177 #ifdef __cplusplus
178 extern "C" {
179 #endif
180 
183 
190 /*@unused@*/ /*@null@*/
191 rpmfi rpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi,
192  /*@null@*/ const char * msg)
193  /*@modifies fi @*/;
194 
202 /*@-exportlocal@*/
203 /*@null@*/
204 rpmfi XrpmfiUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi,
205  /*@null@*/ const char * msg, const char * fn, unsigned ln)
206  /*@modifies fi @*/;
207 /*@=exportlocal@*/
208 #define rpmfiUnlink(_fi, _msg) XrpmfiUnlink(_fi, _msg, __FILE__, __LINE__)
209 
216 /*@unused@*/ /*@null@*/
217 rpmfi rpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg)
218  /*@modifies fi @*/;
219 
227 /*@null@*/
228 rpmfi XrpmfiLink (/*@null@*/ rpmfi fi, /*@null@*/ const char * msg,
229  const char * fn, unsigned ln)
230  /*@modifies fi @*/;
231 #define rpmfiLink(_fi, _msg) XrpmfiLink(_fi, _msg, __FILE__, __LINE__)
232 
238 int rpmfiFC(/*@null@*/ rpmfi fi)
239  /*@*/;
240 
246 /*@unused@*/
247 int rpmfiFX(/*@null@*/ rpmfi fi)
248  /*@*/;
249 
256 /*@unused@*/
257 int rpmfiSetFX(/*@null@*/ rpmfi fi, int fx)
258  /*@modifies fi @*/;
259 
265 int rpmfiDC(/*@null@*/ rpmfi fi)
266  /*@*/;
267 
273 int rpmfiDX(/*@null@*/ rpmfi fi)
274  /*@*/;
275 
282 int rpmfiSetDX(/*@null@*/ rpmfi fi, int dx)
283  /*@modifies fi @*/;
284 
290 /*@observer@*/ /*@null@*/
291 extern const char * rpmfiBN(/*@null@*/ rpmfi fi)
292  /*@*/;
293 
299 /*@observer@*/ /*@null@*/
300 extern const char * rpmfiDN(/*@null@*/ rpmfi fi)
301  /*@*/;
302 
308 /*@observer@*/
309 extern const char * rpmfiFN(/*@null@*/ rpmfi fi)
310  /*@modifies fi @*/;
311 
317 uint_32 rpmfiFFlags(/*@null@*/ rpmfi fi)
318  /*@*/;
319 
326 uint_32 rpmfiSetFFlags(/*@null@*/ rpmfi fi, uint_32 FFlags)
327  /*@modifies fi @*/;
328 
334 uint_32 rpmfiVFlags(/*@null@*/ rpmfi fi)
335  /*@*/;
336 
343 uint_32 rpmfiSetVFlags(/*@null@*/ rpmfi fi, uint_32 VFlags)
344  /*@modifies fi @*/;
345 
351 int_16 rpmfiFMode(/*@null@*/ rpmfi fi)
352  /*@*/;
353 
359 rpmfileState rpmfiFState(/*@null@*/ rpmfi fi)
360  /*@*/;
361 
368 rpmfileState rpmfiSetFState(/*@null@*/ rpmfi fi, rpmfileState fstate)
369  /*@modifies fi @*/;
370 
378 /*@observer@*/ /*@null@*/
379 extern const unsigned char * rpmfiDigest(/*@null@*/ rpmfi fi,
380  /*@out@*/ /*@null@*/ int * algop,
381  /*@out@*/ /*@null@*/ size_t * lenp)
382  /*@modifies *algop, *lenp @*/;
383 
389 /*@observer@*/ /*@null@*/
390 extern const char * rpmfiFLink(/*@null@*/ rpmfi fi)
391  /*@*/;
392 
398 int_32 rpmfiFSize(/*@null@*/ rpmfi fi)
399  /*@*/;
400 
406 int_16 rpmfiFRdev(/*@null@*/ rpmfi fi)
407  /*@*/;
408 
414 int_32 rpmfiFInode(/*@null@*/ rpmfi fi)
415  /*@*/;
416 
422 uint_32 rpmfiColor(/*@null@*/ rpmfi fi)
423  /*@*/;
424 
430 uint_32 rpmfiFColor(/*@null@*/ rpmfi fi)
431  /*@*/;
432 
438 /*@-exportlocal@*/
439 /*@observer@*/ /*@null@*/
440 extern const char * rpmfiFClass(/*@null@*/ rpmfi fi)
441  /*@*/;
442 /*@=exportlocal@*/
443 
449 /*@-exportlocal@*/
450 /*@observer@*/ /*@null@*/
451 extern const char * rpmfiFContext(/*@null@*/ rpmfi fi)
452  /*@*/;
453 /*@=exportlocal@*/
454 
461 int_32 rpmfiFDepends(/*@null@*/ rpmfi fi,
462  /*@out@*/ /*@null@*/ const uint_32 ** fddictp)
463  /*@modifies *fddictp @*/;
464 
470 int_32 rpmfiFNlink(/*@null@*/ rpmfi fi)
471  /*@*/;
472 
478 int_32 rpmfiFMtime(/*@null@*/ rpmfi fi)
479  /*@*/;
480 
486 /*@observer@*/ /*@null@*/
487 extern const char * rpmfiFUser(/*@null@*/ rpmfi fi)
488  /*@*/;
489 
495 /*@observer@*/ /*@null@*/
496 extern const char * rpmfiFGroup(/*@null@*/ rpmfi fi)
497  /*@*/;
498 
504 int rpmfiNext(/*@null@*/ rpmfi fi)
505  /*@modifies fi @*/;
506 
513 /*@null@*/
514 rpmfi rpmfiInit(/*@null@*/ rpmfi fi, int fx)
515  /*@modifies fi @*/;
516 
522 /*@unused@*/
523 int rpmfiNextD(/*@null@*/ rpmfi fi)
524  /*@modifies fi @*/;
525 
532 /*@unused@*/ /*@null@*/
533 rpmfi rpmfiInitD(/*@null@*/ rpmfi fi, int dx)
534  /*@modifies fi @*/;
535 
541 /*@null@*/
542 rpmfi rpmfiFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmfi fi)
543  /*@globals fileSystem @*/
544  /*@modifies fi, fileSystem @*/;
545 
554 /*@null@*/
555 rpmfi rpmfiNew(/*@null@*/ const rpmts ts, Header h, rpmTag tagN, int flags)
556  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
557  /*@modifies ts, h, rpmGlobalMacroContext, fileSystem @*/;
558 
569  /*@out@*/ const char *** fclassp, /*@out@*/ int * fcp)
570  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
571  /*@modifies h, *fclassp, *fcp, rpmGlobalMacroContext, fileSystem @*/;
572 
583  /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp)
584  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
585  /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/;
586 
597  /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp)
598  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
599  /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/;
600 
611  /*@out@*/ const char *** fcontextp, /*@out@*/ int * fcp)
612  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
613  /*@modifies h, *fcontextp, *fcp, rpmGlobalMacroContext, fileSystem @*/;
614 
625 void rpmfiBuildFDeps(Header h, rpmTag tagN,
626  /*@out@*/ const char *** fdepsp, /*@out@*/ int * fcp)
627  /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
628  /*@modifies h, *fdepsp, *fcp,
629  rpmGlobalMacroContext, fileSystem, internalState @*/;
630 
637  /*@*/;
638 
645 int rpmfiCompare(const rpmfi afi, const rpmfi bfi)
646  /*@*/;
647 
655 fileAction rpmfiDecideFate(const rpmfi ofi, rpmfi nfi, int skipMissing)
656  /*@globals h_errno, fileSystem, internalState @*/
657  /*@modifies nfi, fileSystem, internalState @*/;
658 
664 /*@-redef@*/
665 /*@observer@*/
666 const char * rpmfiTypeString(rpmfi fi)
667  /*@*/;
668 /*@=redef@*/
669 
672 #ifdef __cplusplus
673 }
674 #endif
675 
676 #endif /* H_RPMDS */