rpm  5.4.10
rpmtag.h
Go to the documentation of this file.
1 #ifndef H_RPMTAG
2 #define H_RPMTAG
3 
8 #include <rpmiotypes.h>
9 #include <rpmsw.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
17 typedef const char * errmsg_t;
18 
21 typedef /*@abstract@*/ /*@refcounted@*/ struct headerToken_s * Header;
22 
27  /* RPM_NULL_TYPE = 0 - never been used. */
28  /* RPM_CHAR_TYPE = 1 - never been used, same as RPM_UINT8_TYPE. */
37  /* RPM_ASN1_TYPE = 10 - never been used. */
38  /* RPM_OPENPGP_TYPE= 11 - never been used. */
39 };
40 #define RPM_MIN_TYPE 2
41 #define RPM_MAX_TYPE 9
42 #define RPM_MASK_TYPE 0x0000ffff
43 
46 typedef enum rpmTagType_e rpmTagType;
50 typedef union rpmDataType_u rpmTagData;
58 typedef struct _HE_s * HE_t;
62 /*@-typeuse -fielduse@*/
63 #if !defined(SWIG)
65 /*@null@*/
66  void * ptr;
71 /*@relnull@*/
72  const char * str;
73  unsigned char * blob;
74  const char ** argv;
75  HE_t he;
76 };
77 #endif
78 /*@=typeuse =fielduse@*/
79 
80 /*@=typeuse =fielduse@*/
83 /*@-enummemuse -typeuse @*/
84 typedef enum rpmSubTagType_e {
89 /*@=enummemuse =typeuse @*/
90 
94 /*@-enummemuse -typeuse @*/
95 typedef enum rpmTagReturnType_e {
97  RPM_SCALAR_RETURN_TYPE = 0x00010000,
98  RPM_ARRAY_RETURN_TYPE = 0x00020000,
100  /* 0x00080000 */
101  RPM_PROBE_RETURN_TYPE = 0x00100000,
102  RPM_TREE_RETURN_TYPE = 0x00200000,
104  RPM_X509_RETURN_TYPE = 0x00800000,
105  RPM_ASN1_RETURN_TYPE = 0x01000000,
107  RPM_MASK_RETURN_TYPE = 0xffff0000
109 /*@=enummemuse =typeuse @*/
110 
115 #define HEADER_IMAGE 61
116 #define HEADER_SIGNATURES 62
117 #define HEADER_IMMUTABLE 63
118 #define HEADER_REGIONS 64
119 #define HEADER_I18NTABLE 100
120 #define HEADER_SIGBASE 256
121 #define HEADER_TAGBASE 1000
122 
125 typedef /*@abstract@*/ struct headerIterator_s * HeaderIterator;
126 
129 typedef /*@abstract@*/ struct headerTagIndices_s * headerTagIndices;
130 
133 typedef /*@abstract@*/ const struct headerSprintfExtension_s * headerSprintfExtension;
134 
139 enum rpmTag_e {
140 
144 /*@-enummemuse@*/
148 /*@=enummemuse@*/
149 
150 /* Retrofit (and uniqify) signature tags for use by tagName() and rpmQuery. */
151 /* the md5 sum was broken *twice* on big endian machines */
152 /* XXX 2nd underscore prevents tagTable generation */
155  RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, /* internal - obsolete */
157  RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, /* x internal - obsolete */
159 #define RPMTAG_PKGID RPMTAG_SIGMD5 /* x */
161  RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, /* internal - obsolete */
162 
163  RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, /* internal - obsolete */
164  RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, /* internal - obsolete */
169 #define RPMTAG_HDRID RPMTAG_SHA1HEADER /* s */
170 
171  RPMTAG_NAME = 1000, /* s */
172 #define RPMTAG_N RPMTAG_NAME /* s */
173  RPMTAG_VERSION = 1001, /* s */
174 #define RPMTAG_V RPMTAG_VERSION /* s */
175  RPMTAG_RELEASE = 1002, /* s */
176 #define RPMTAG_R RPMTAG_RELEASE /* s */
177  RPMTAG_EPOCH = 1003, /* i */
178 #define RPMTAG_E RPMTAG_EPOCH /* i */
179  RPMTAG_SUMMARY = 1004, /* s */
180  RPMTAG_DESCRIPTION = 1005, /* s */
181  RPMTAG_BUILDTIME = 1006, /* i */
182  RPMTAG_BUILDHOST = 1007, /* s */
183  RPMTAG_INSTALLTIME = 1008, /* i[] */
184  RPMTAG_SIZE = 1009, /* i */
185  RPMTAG_DISTRIBUTION = 1010, /* s */
186  RPMTAG_VENDOR = 1011, /* s */
187  RPMTAG_GIF = 1012, /* x */
188  RPMTAG_XPM = 1013, /* x */
189  RPMTAG_LICENSE = 1014, /* s */
190  RPMTAG_PACKAGER = 1015, /* s */
191  RPMTAG_GROUP = 1016, /* s */
192 /*@-enummemuse@*/
193  RPMTAG_CHANGELOG = 1017, /* s[] internal */
194 /*@=enummemuse@*/
195  RPMTAG_SOURCE = 1018, /* s[] */
196  RPMTAG_PATCH = 1019, /* s[] */
197  RPMTAG_URL = 1020, /* s */
198  RPMTAG_OS = 1021, /* s legacy used int */
199  RPMTAG_ARCH = 1022, /* s legacy used int */
200  RPMTAG_PREIN = 1023, /* s */
201  RPMTAG_POSTIN = 1024, /* s */
202  RPMTAG_PREUN = 1025, /* s */
203  RPMTAG_POSTUN = 1026, /* s */
204  RPMTAG_OLDFILENAMES = 1027, /* s[] obsolete */
205  RPMTAG_FILESIZES = 1028, /* i[] */
206  RPMTAG_FILESTATES = 1029, /* c[] */
207  RPMTAG_FILEMODES = 1030, /* h[] */
208  RPMTAG_FILEUIDS = 1031, /* i[] internal */
209  RPMTAG_FILEGIDS = 1032, /* i[] internal */
210  RPMTAG_FILERDEVS = 1033, /* h[] */
211  RPMTAG_FILEMTIMES = 1034, /* i[] */
212  RPMTAG_FILEDIGESTS = 1035, /* s[] */
213 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS /* s[] */
214  RPMTAG_FILELINKTOS = 1036, /* s[] */
215  RPMTAG_FILEFLAGS = 1037, /* i[] */
216 /*@-enummemuse@*/
217  RPMTAG_ROOT = 1038, /* internal - obsolete */
218 /*@=enummemuse@*/
219  RPMTAG_FILEUSERNAME = 1039, /* s[] */
220  RPMTAG_FILEGROUPNAME = 1040, /* s[] */
221 /*@-enummemuse@*/
222  RPMTAG_EXCLUDE = 1041, /* internal - obsolete */
223  RPMTAG_EXCLUSIVE = 1042, /* internal - obsolete */
224 /*@=enummemuse@*/
225  RPMTAG_ICON = 1043, /* x */
226  RPMTAG_SOURCERPM = 1044, /* s */
227  RPMTAG_FILEVERIFYFLAGS = 1045, /* i[] */
228  RPMTAG_ARCHIVESIZE = 1046, /* i */
229  RPMTAG_PROVIDENAME = 1047, /* s[] */
230 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME /* s[] */
231 #define RPMTAG_P RPMTAG_PROVIDENAME /* s[] */
232  RPMTAG_REQUIREFLAGS = 1048, /* i[] */
233  RPMTAG_REQUIRENAME = 1049, /* s[] */
234 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME /* s[] */
235  RPMTAG_REQUIREVERSION = 1050, /* s[] */
236  RPMTAG_NOSOURCE = 1051, /* i internal */
237  RPMTAG_NOPATCH = 1052, /* i internal */
238  RPMTAG_CONFLICTFLAGS = 1053, /* i[] */
239  RPMTAG_CONFLICTNAME = 1054, /* s[] */
240 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME /* s[] */
241 #define RPMTAG_C RPMTAG_CONFLICTNAME /* s[] */
242  RPMTAG_CONFLICTVERSION = 1055, /* s[] */
243  RPMTAG_DEFAULTPREFIX = 1056, /* s internal - deprecated */
244  RPMTAG_BUILDROOT = 1057, /* s internal */
245  RPMTAG_INSTALLPREFIX = 1058, /* s internal - deprecated */
246  RPMTAG_EXCLUDEARCH = 1059, /* s[] */
247  RPMTAG_EXCLUDEOS = 1060, /* s[] */
248  RPMTAG_EXCLUSIVEARCH = 1061, /* s[] */
249  RPMTAG_EXCLUSIVEOS = 1062, /* s[] */
250  RPMTAG_AUTOREQPROV = 1063, /* s internal */
251  RPMTAG_RPMVERSION = 1064, /* s */
252  RPMTAG_TRIGGERSCRIPTS = 1065, /* s[] */
253  RPMTAG_TRIGGERNAME = 1066, /* s[] */
254  RPMTAG_TRIGGERVERSION = 1067, /* s[] */
255  RPMTAG_TRIGGERFLAGS = 1068, /* i[] */
256  RPMTAG_TRIGGERINDEX = 1069, /* i[] */
257  RPMTAG_VERIFYSCRIPT = 1079, /* s */
258  RPMTAG_CHANGELOGTIME = 1080, /* i[] */
259  RPMTAG_CHANGELOGNAME = 1081, /* s[] */
260  RPMTAG_CHANGELOGTEXT = 1082, /* s[] */
261 /*@-enummemuse@*/
262  RPMTAG_BROKENMD5 = 1083, /* internal - obsolete */
263 /*@=enummemuse@*/
264  RPMTAG_PREREQ = 1084, /* internal */
265  RPMTAG_PREINPROG = 1085, /* s */
266  RPMTAG_POSTINPROG = 1086, /* s */
267  RPMTAG_PREUNPROG = 1087, /* s */
268  RPMTAG_POSTUNPROG = 1088, /* s */
269  RPMTAG_BUILDARCHS = 1089, /* s[] */
270  RPMTAG_OBSOLETENAME = 1090, /* s[] */
271 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME /* s[] */
272 #define RPMTAG_O RPMTAG_OBSOLETENAME /* s[] */
273  RPMTAG_VERIFYSCRIPTPROG = 1091, /* s */
274  RPMTAG_TRIGGERSCRIPTPROG = 1092, /* s[] */
275  RPMTAG_DOCDIR = 1093, /* internal */
276  RPMTAG_COOKIE = 1094, /* s */
277  RPMTAG_FILEDEVICES = 1095, /* i[] */
278  RPMTAG_FILEINODES = 1096, /* i[] */
279  RPMTAG_FILELANGS = 1097, /* s[] */
280  RPMTAG_PREFIXES = 1098, /* s[] */
281  RPMTAG_INSTPREFIXES = 1099, /* s[] */
282  RPMTAG_TRIGGERIN = 1100, /* internal */
283  RPMTAG_TRIGGERUN = 1101, /* internal */
284  RPMTAG_TRIGGERPOSTUN = 1102, /* internal */
285  RPMTAG_AUTOREQ = 1103, /* internal */
286  RPMTAG_AUTOPROV = 1104, /* internal */
287 /*@-enummemuse@*/
288  RPMTAG_CAPABILITY = 1105, /* i legacy - obsolete */
289 /*@=enummemuse@*/
290  RPMTAG_SOURCEPACKAGE = 1106, /* i legacy - obsolete */
291 /*@-enummemuse@*/
292  RPMTAG_OLDORIGFILENAMES = 1107, /* internal - obsolete */
293 /*@=enummemuse@*/
294  RPMTAG_BUILDPREREQ = 1108, /* internal */
295  RPMTAG_BUILDREQUIRES = 1109, /* internal */
296  RPMTAG_BUILDCONFLICTS = 1110, /* internal */
297 /*@-enummemuse@*/
298  RPMTAG_BUILDMACROS = 1111, /* s[] srpms only */
299 /*@=enummemuse@*/
300  RPMTAG_PROVIDEFLAGS = 1112, /* i[] */
301  RPMTAG_PROVIDEVERSION = 1113, /* s[] */
302  RPMTAG_OBSOLETEFLAGS = 1114, /* i[] */
303  RPMTAG_OBSOLETEVERSION = 1115, /* s[] */
304  RPMTAG_DIRINDEXES = 1116, /* i[] */
305  RPMTAG_BASENAMES = 1117, /* s[] */
306  RPMTAG_DIRNAMES = 1118, /* s[] */
307  RPMTAG_ORIGDIRINDEXES = 1119, /* i[] relocation */
308  RPMTAG_ORIGBASENAMES = 1120, /* s[] relocation */
309  RPMTAG_ORIGDIRNAMES = 1121, /* s[] relocation */
310  RPMTAG_OPTFLAGS = 1122, /* s */
311  RPMTAG_DISTURL = 1123, /* s */
312  RPMTAG_PAYLOADFORMAT = 1124, /* s */
313  RPMTAG_PAYLOADCOMPRESSOR = 1125, /* s */
314  RPMTAG_PAYLOADFLAGS = 1126, /* s */
315  RPMTAG_INSTALLCOLOR = 1127, /* i transaction color when installed */
316  RPMTAG_INSTALLTID = 1128, /* i[] */
317  RPMTAG_REMOVETID = 1129, /* i[] */
318 /*@-enummemuse@*/
319  RPMTAG_SHA1RHN = 1130, /* internal - obsolete */
320 /*@=enummemuse@*/
321  RPMTAG_RHNPLATFORM = 1131, /* s deprecated */
322  RPMTAG_PLATFORM = 1132, /* s */
323  RPMTAG_PATCHESNAME = 1133, /* s[] deprecated placeholder (SuSE) */
324  RPMTAG_PATCHESFLAGS = 1134, /* i[] deprecated placeholder (SuSE) */
325  RPMTAG_PATCHESVERSION = 1135, /* s[] deprecated placeholder (SuSE) */
326  RPMTAG_CACHECTIME = 1136, /* i rpmcache(8) only */
327  RPMTAG_CACHEPKGPATH = 1137, /* s rpmcache(8) only */
328  RPMTAG_CACHEPKGSIZE = 1138, /* i rpmcache(8) only */
329  RPMTAG_CACHEPKGMTIME = 1139, /* i rpmcache(8) only */
330  RPMTAG_FILECOLORS = 1140, /* i[] */
331  RPMTAG_FILECLASS = 1141, /* i[] */
332  RPMTAG_CLASSDICT = 1142, /* s[] */
333  RPMTAG_FILEDEPENDSX = 1143, /* i[] */
334  RPMTAG_FILEDEPENDSN = 1144, /* i[] */
335  RPMTAG_DEPENDSDICT = 1145, /* i[] */
336  RPMTAG_SOURCEPKGID = 1146, /* x */
337  RPMTAG_FILECONTEXTS = 1147, /* s[] */
338  RPMTAG_FSCONTEXTS = 1148, /* s[] extension */
339  RPMTAG_RECONTEXTS = 1149, /* s[] extension */
340  RPMTAG_POLICIES = 1150, /* s[] selinux *.te policy file. */
341  RPMTAG_PRETRANS = 1151, /* s */
342  RPMTAG_POSTTRANS = 1152, /* s */
343  RPMTAG_PRETRANSPROG = 1153, /* s */
344  RPMTAG_POSTTRANSPROG = 1154, /* s */
345  RPMTAG_DISTTAG = 1155, /* s */
346  RPMTAG_SUGGESTSNAME = 1156, /* s[] extension */
347 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME /* s[] */
348  RPMTAG_SUGGESTSVERSION = 1157, /* s[] extension */
349  RPMTAG_SUGGESTSFLAGS = 1158, /* i[] extension */
350  RPMTAG_ENHANCESNAME = 1159, /* s[] extension placeholder */
351 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME /* s[] */
352  RPMTAG_ENHANCESVERSION = 1160, /* s[] extension placeholder */
353  RPMTAG_ENHANCESFLAGS = 1161, /* i[] extension placeholder */
354  RPMTAG_PRIORITY = 1162, /* i[] extension placeholder */
355  RPMTAG_CVSID = 1163, /* s */
356 #define RPMTAG_SVNID RPMTAG_CVSID /* s */
357  RPMTAG_BLINKPKGID = 1164, /* s[] */
358  RPMTAG_BLINKHDRID = 1165, /* s[] */
359  RPMTAG_BLINKNEVRA = 1166, /* s[] */
360  RPMTAG_FLINKPKGID = 1167, /* s[] */
361  RPMTAG_FLINKHDRID = 1168, /* s[] */
362  RPMTAG_FLINKNEVRA = 1169, /* s[] */
363  RPMTAG_PACKAGEORIGIN = 1170, /* s */
364  RPMTAG_TRIGGERPREIN = 1171, /* internal */
365  RPMTAG_BUILDSUGGESTS = 1172, /* internal */
366  RPMTAG_BUILDENHANCES = 1173, /* internal */
367  RPMTAG_SCRIPTSTATES = 1174, /* i[] scriptlet exit codes */
368  RPMTAG_SCRIPTMETRICS = 1175, /* i[] scriptlet execution times */
369  RPMTAG_BUILDCPUCLOCK = 1176, /* i */
370  RPMTAG_FILEDIGESTALGOS = 1177, /* i[] */
371  RPMTAG_VARIANTS = 1178, /* s[] */
372  RPMTAG_XMAJOR = 1179, /* i */
373  RPMTAG_XMINOR = 1180, /* i */
374  RPMTAG_REPOTAG = 1181, /* s */
375  RPMTAG_KEYWORDS = 1182, /* s[] */
376  RPMTAG_BUILDPLATFORMS = 1183, /* s[] */
377  RPMTAG_PACKAGECOLOR = 1184, /* i */
378  RPMTAG_PACKAGEPREFCOLOR = 1185, /* i (unimplemented) */
379  RPMTAG_XATTRSDICT = 1186, /* s[] (unimplemented) */
380  RPMTAG_FILEXATTRSX = 1187, /* i[] (unimplemented) */
381  RPMTAG_DEPATTRSDICT = 1188, /* s[] (unimplemented) */
382  RPMTAG_CONFLICTATTRSX = 1189, /* i[] (unimplemented) */
383  RPMTAG_OBSOLETEATTRSX = 1190, /* i[] (unimplemented) */
384  RPMTAG_PROVIDEATTRSX = 1191, /* i[] (unimplemented) */
385  RPMTAG_REQUIREATTRSX = 1192, /* i[] (unimplemented) */
386  RPMTAG_BUILDPROVIDES = 1193, /* internal */
387  RPMTAG_BUILDOBSOLETES = 1194, /* internal */
388  RPMTAG_DBINSTANCE = 1195, /* i */
389  RPMTAG_NVRA = 1196, /* s */
390  RPMTAG_FILEPATHS = 1197, /* s[] */
391  RPMTAG_ORIGPATHS = 1198, /* s[] */
392  RPMTAG_RPMLIBVERSION = 1199, /* i */
393  RPMTAG_RPMLIBTIMESTAMP = 1200, /* i */
394  RPMTAG_RPMLIBVENDOR = 1201, /* i */
395  RPMTAG_CLASS = 1202, /* s arbitrary */
396  RPMTAG_TRACK = 1203, /* s internal arbitrary */
397  RPMTAG_TRACKPROG = 1204, /* s internal arbitrary */
398  RPMTAG_SANITYCHECK = 1205, /* s */
399  RPMTAG_SANITYCHECKPROG = 1206, /* s */
400  RPMTAG_FILESTAT = 1207, /* s[] stat(2) from metadata extension*/
401  RPMTAG_STAT = 1208, /* s[] stat(2) from disk extension */
402  RPMTAG_ORIGINTID = 1209, /* i[] */
403  RPMTAG_ORIGINTIME = 1210, /* i[] */
404  RPMTAG_HEADERSTARTOFF = 1211, /* l */
405  RPMTAG_HEADERENDOFF = 1212, /* l */
406  RPMTAG_PACKAGETIME = 1213, /* l */
407  RPMTAG_PACKAGESIZE = 1214, /* l */
408  RPMTAG_PACKAGEDIGEST = 1215, /* s */
409  RPMTAG_PACKAGESTAT = 1216, /* x */
410  RPMTAG_PACKAGEBASEURL = 1217, /* s */
411  RPMTAG_DISTEPOCH = 1218, /* s */
412 #define RPMTAG_D RPMTAG_DISTEPOCH /* s */
413 
414  RPMTAG_CONFLICTYAMLENTRY = 1219, /* s[] */
415  RPMTAG_OBSOLETEYAMLENTRY = 1220, /* s[] */
416  RPMTAG_PROVIDEYAMLENTRY = 1221, /* s[] */
417  RPMTAG_REQUIREYAMLENTRY = 1222, /* s[] */
418 
419  RPMTAG_FILEDIGESTALGO = 5011, /* i file checksum algorithm */
420  RPMTAG_BUGURL = 5012, /* s */
421 
422 /*@-enummemuse@*/
424 /*@=enummemuse@*/
425 
426  RPMTAG_PACKAGETRANSFLAGS = 0x4efaafd9, /* s[] arbitrary */
427  RPMTAG_PACKAGEDEPFLAGS = 0x748a8314, /* s[] arbitrary */
428 
429  RPMTAG_BUILDPREPPROG = 0x4ba37c9e, /* s[] arbitrary */
430  RPMTAG_BUILDPREP = 0x799c0b4d, /* s[] arbitrary */
431  RPMTAG_BUILDBUILDPROG = 0x6fb46014, /* s[] arbitrary */
432  RPMTAG_BUILDBUILD = 0x5bae1a5a, /* s[] arbitrary */
433  RPMTAG_BUILDINSTALLPROG = 0x70d4ab6f, /* s[] arbitrary */
434  RPMTAG_BUILDINSTALL = 0x567f5983, /* s[] arbitrary */
435  RPMTAG_BUILDCHECKPROG = 0x488a60ce, /* s[] arbitrary */
436  RPMTAG_BUILDCHECK = 0x7f3b97b5, /* s[] arbitrary */
437  RPMTAG_BUILDCLEANPROG = 0x42c93d41, /* s[] arbitrary */
438  RPMTAG_BUILDCLEAN = 0x566042bf, /* s[] arbitrary */
439 
441 };
442 
443 #define RPMTAG_EXTERNAL_TAG 1000000
444 
449  RPMSIGTAG_SIZE = 1000,
451  RPMSIGTAG_PGP = 1002,
453  RPMSIGTAG_MD5 = 1004,
454  RPMSIGTAG_GPG = 1005,
455  RPMSIGTAG_PGP5 = 1006,
462  RPMSIGTAG_PADDING = 0x3fffffff
463 };
464 
467 typedef enum rpmTag_e rpmTag;
468 
471 typedef enum rpmSigTag_e rpmSigTag;
472 
476 #define RPMDBI_PACKAGES (rpmTag)0 /* Installed package headers. */
477 #define RPMDBI_DEPCACHE (rpmTag)1 /* Dependency resolution cache. */
478  /* (obsolete) RPMDBI_LABEL was 2 */
479 #define RPMDBI_ADDED (rpmTag)3 /* Added package headers. */
480 #define RPMDBI_REMOVED (rpmTag)4 /* Removed package headers. */
481 #define RPMDBI_AVAILABLE (rpmTag)5 /* Available package headers. */
482 #define RPMDBI_HDLIST (rpmTag)6 /* (rpmgi) Header list. */
483 #define RPMDBI_ARGLIST (rpmTag)7 /* (rpmgi) Argument list. */
484 #define RPMDBI_FTSWALK (rpmTag)8 /* (rpmgi) File tree walk. */
485 #define RPMDBI_SEQNO (rpmTag)9 /* Sequence numbers. */
486 #define RPMDBI_BTREE (rpmTag)10 /* (development) Generic DB_BTREE. */
487 #define RPMDBI_HASH (rpmTag)11 /* (development) Generic DB_HASH. */
488 #define RPMDBI_QUEUE (rpmTag)12 /* (development) Generic DB_QUEUE. */
489 #define RPMDBI_RECNO (rpmTag)13 /* (development) Generic DB_RECNO. */
490 #define RPMDBI_HEAP (rpmTag)14 /* (development) Generic DB_HEAP. */
491  /* 15 unused */
492 #define RPMDBI_REPACKAGES (rpmTag)16 /* Re-packaged package paths. */
493 #define RPMDBI_REPOSITORY (rpmTag)17 /* Repository URI's. */
494 
497 /*@-typeuse -fielduse@*/
498 #if !defined(SWIG)
499 struct _HE_s {
500  rpmTag tag;
501  rpmTagType t;
502 /*@owned@*/ /*@null@*/
504  rpmTagCount c;
505  int ix;
506  unsigned int freeData : 1;
507  unsigned int avail : 1;
508  unsigned int append : 1;
509 };
510 #endif
511 
514 typedef struct _HE_s HE_s;
515 
518 typedef struct tagStore_s * tagStore_t;
519 
522 typedef /*@abstract@*/ const struct headerTagTableEntry_s * headerTagTableEntry;
523 
524 #if defined(_RPMTAG_INTERNAL)
525 
530 #if !defined(SWIG)
531 struct headerTagTableEntry_s {
532 /*@observer@*/ /*@relnull@*/
533  const char * name;
534  rpmTag val;
535  rpmTagType type;
536 };
537 #endif
538 
541 struct tagStore_s {
542 /*@only@*/
543  const char * str;
544  rpmTag tag;
545  rpmiob iob;
546 };
547 #endif /* _RPMTAG_INTERNAL */
548 
552 /*@-redecl@*/
553 /*@observer@*/ /*@unchecked@*/
554 extern headerTagTableEntry rpmTagTable;
555 /*@=redecl@*/
556 
560 /*@-redecl@*/
561 /*@unchecked@*/
562 extern int rpmTagTableSize;
563 
564 /*@unchecked@*/
565 extern headerTagIndices rpmTags;
566 /*@=redecl@*/
567 
568 #if defined(_RPMTAG_INTERNAL)
569 
571 #if !defined(SWIG)
572 struct headerTagIndices_s {
573 /*@relnull@*/
574  int (*loadIndex) (headerTagTableEntry ** ipp, size_t * np,
575  int (*cmp) (const void * avp, const void * bvp))
576  /*@ modifies *ipp, *np */;
577 /*@relnull@*/
578  headerTagTableEntry * byName;
579  size_t byNameSize;
580  int (*byNameCmp) (const void * avp, const void * bvp)
581  /*@*/;
582  rpmTag (*tagValue) (const char * name)
583  /*@*/;
584 /*@relnull@*/
585  headerTagTableEntry * byValue;
586  size_t byValueSize;
587  int (*byValueCmp) (const void * avp, const void * bvp)
588  /*@*/;
589  const char * (*tagName) (rpmTag value)
590  /*@*/;
591  rpmTag (*tagType) (rpmTag value)
592  /*@*/;
593  size_t nameBufLen;
594 /*@relnull@*/
595  const char ** aTags;
596 /*@owned@*/ /*@null@*/
597  char * nameBuf; /* Name buffer. */
598 /*@only@*/
599  char * (*tagCanonicalize) (const char * s)
600  /*@*/;
601  rpmTag (*tagGenerate) (const char * s)
602  /*@*/;
603 };
604 #endif
605 #endif /* _RPMTAG_INTERNAL */
606 
612 /*@observer@*/
613 const char * tagName(rpmTag tag)
614  /*@*/;
615 
622 unsigned int tagType(rpmTag tag)
623  /*@*/;
624 
630 rpmTag tagValue(const char * tagstr)
631  /*@*/;
632 
638 /*@only@*/
639 char * tagCanonicalize(const char * s)
640  /*@*/;
641 
647 rpmTag tagGenerate(const char * s)
648  /*@*/;
649 
654 void tagClean(/*@null@*/ headerTagIndices _rpmTags)
655  /*@globals rpmTags @*/
656  /*@modifies _rpmTags, rpmTags @*/;
657 
664 /*@null@*/
665 tagStore_t tagStoreFree(/*@only@*//*@null@*/tagStore_t dbiTags, size_t dbiNTags)
666  /*@modifies dbiTags @*/;
667 
668 #if defined(_RPMTAG_INTERNAL)
669 
671 typedef enum headerSprintfExtensionType_e {
672  HEADER_EXT_LAST = 0,
673  HEADER_EXT_FORMAT,
674  HEADER_EXT_MORE,
675  HEADER_EXT_TAG
676 } headerSprintfExtensionType;
677 
685 typedef /*only@*/ char * (*headerTagFormatFunction) (HE_t he, /*@null@*/ const char ** av)
686  /*@modifies he @*/;
687 
696 typedef int (*headerTagTagFunction) (Header h, HE_t he)
697  /*@modifies he @*/;
698 
702 #if !defined(SWIG)
703 struct headerSprintfExtension_s {
704  headerSprintfExtensionType type;
705 /*@observer@*/ /*@null@*/
706  const char * name;
707  union {
708 /*@observer@*/ /*@null@*/
709  void * generic;
710  headerTagFormatFunction fmtFunction;
711  headerTagTagFunction tagFunction;
712  headerSprintfExtension * more;
713  } u;
714 };
715 #endif
716 #endif /* _RPMTAG_INTERNAL */
717 
721 /*@unchecked@*/ /*@observer@*/
722 extern headerSprintfExtension headerDefaultFormats;
723 
727 /*@unchecked@*/ /*@observer@*/
728 extern headerSprintfExtension headerCompoundFormats;
729 
736 void rpmDisplayQueryTags(/*@null@*/ FILE * fp,
737  /*@null@*/ headerTagTableEntry _rpmTagTable,
738  /*@null@*/ headerSprintfExtension _rpmHeaderFormats)
739  /*@globals fileSystem, internalState @*/
740  /*@modifies *fp, fileSystem, internalState @*/;
741 
753 /*@only@*/ /*@null@*/
754 char * headerSprintf(Header h, const char * fmt,
755  /*@null@*/ headerTagTableEntry tags,
756  /*@null@*/ headerSprintfExtension exts,
757  /*@null@*/ /*@out@*/ errmsg_t * errmsg)
758  /*@globals headerCompoundFormats, fileSystem, internalState @*/
759  /*@modifies h, *errmsg, fileSystem, internalState @*/;
760 
769 int headerGet(Header h, HE_t he, unsigned int flags)
770  /*@globals internalState @*/
771  /*@modifies he, internalState @*/;
772 #define HEADERGET_NOEXTENSION (1 << 0)
773 #define HEADERGET_NOI18NSTRING (1 << 1)
783 /*@mayexit@*/
784 int headerPut(Header h, HE_t he, /*@unused@*/ unsigned int flags)
785  /*@modifies h @*/;
786 
795 /*@mayexit@*/
796 int headerDel(Header h, HE_t he, /*@unused@*/ unsigned int flags)
797  /*@modifies h @*/;
798 
807 int headerMod(Header h, HE_t he, /*@unused@*/ unsigned int flags)
808  /*@modifies h @*/;
809 
815 /*@null@*/
816 HeaderIterator headerFini(/*@only@*/ HeaderIterator hi)
817  /*@globals fileSystem @*/
818  /*@modifies hi, fileSystem */;
819 
825 HeaderIterator headerInit(Header h)
826  /*@globals fileSystem @*/
827  /*@modifies h, fileSystem */;
828 
836 int headerNext(HeaderIterator hi, HE_t he, /*@unused@*/ unsigned int flags)
837  /*@globals internalState @*/
838  /*@modifies hi, he, internalState @*/;
839 
845 Header headerLink(Header h)
846  /*@modifies h @*/;
847 #define headerLink(_h) \
848  ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
849 
855 /*@null@*/
856 Header headerUnlink(/*@killref@*/ /*@null@*/ Header h)
857  /*@modifies h @*/;
858 #define headerUnlink(_h) \
859  ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
860 
866 /*@null@*/
867 Header headerFree(/*@killref@*/ /*@null@*/ Header h)
868  /*@modifies h @*/;
869 #define headerFree(_h) \
870  ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
871 
876 Header headerNew(void)
877  /*@globals fileSystem @*/
878  /*@modifies fileSystem @*/;
879 
885 size_t headerSizeof(/*@null@*/ Header h)
886  /*@modifies h @*/;
887 
894 /*@only@*/ /*@null@*/
895 void * headerUnload(Header h, /*@out@*/ /*@null@*/ size_t * lenp)
896  /*@globals internalState @*/
897  /*@modifies h, *lenp, internalState @*/;
898 
907 /*@null@*/
908 Header headerReload(/*@only@*/ Header h, rpmTag tag)
909  /*@globals fileSystem, internalState @*/
910  /*@modifies h, fileSystem, internalState @*/;
911 
917 /*@null@*/
918 Header headerCopy(Header h)
919  /*@globals fileSystem, internalState @*/
920  /*@modifies h, fileSystem, internalState @*/;
921 
927 /*@null@*/
928 Header headerLoad(/*@kept@*/ void * uh)
929  /*@globals fileSystem, internalState @*/
930  /*@modifies uh, fileSystem, internalState @*/;
931 
937 /*@null@*/
938 Header headerCopyLoad(const void * uh)
939  /*@globals fileSystem, internalState @*/
940  /*@modifies fileSystem, internalState @*/;
941 
948 int headerIsEntry(/*@null@*/ Header h, rpmTag tag)
949  /*@*/;
950 
951 #if defined(SUPPORT_I18NSTRING_TYPE)
952 
972 int headerAddI18NString(Header h, rpmTag tag, const char * string,
973  const char * lang)
974  /*@modifies h @*/;
975 #endif
976 
983 void headerCopyTags(Header headerFrom, Header headerTo, rpmTag * tagstocopy)
984  /*@globals internalState @*/
985  /*@modifies headerTo, internalState @*/;
986 
994 int headerGetMagic(/*@null@*/ Header h, unsigned char **magicp, size_t *nmagicp)
995  /*@modifies *magicp, *nmagicp @*/;
996 
1004 int headerSetMagic(/*@null@*/ Header h, unsigned char * magic, size_t nmagic)
1005  /*@modifies h @*/;
1006 
1012 /*@observer@*/ /*@null@*/
1013 const char * headerGetOrigin(/*@null@*/ Header h)
1014  /*@*/;
1015 
1022 int headerSetOrigin(/*@null@*/ Header h, const char * origin)
1023  /*@modifies h @*/;
1024 
1030 /*@observer@*/ /*@null@*/
1031 const char * headerGetParent(/*@null@*/ Header h)
1032  /*@*/;
1033 
1040 int headerSetParent(/*@null@*/ Header h, const char * parent)
1041  /*@modifies h @*/;
1042 
1048 /*@observer@*/ /*@null@*/
1049 const char * headerGetBaseURL(/*@null@*/ Header h)
1050  /*@*/;
1051 
1058 int headerSetBaseURL(/*@null@*/ Header h, const char * baseurl)
1059  /*@modifies h @*/;
1060 
1066 struct stat * headerGetStatbuf(/*@null@*/ Header h)
1067  /*@*/;
1068 
1075 int headerSetStatbuf(/*@null@*/ Header h, struct stat * st)
1076  /*@modifies h @*/;
1077 
1083 /*@null@*/
1084 const char * headerGetDigest(/*@null@*/ Header h)
1085  /*@*/;
1086 
1093 int headerSetDigest(/*@null@*/ Header h, const char * digest)
1094  /*@modifies h @*/;
1095 
1101 /*@null@*/
1102 void * headerGetRpmdb(/*@null@*/ Header h)
1103  /*@*/;
1104 
1111 /*@null@*/
1112 void * headerSetRpmdb(/*@null@*/ Header h, /*@null@*/ void * rpmdb)
1113  /*@modifies h @*/;
1114 
1120 uint32_t headerGetInstance(/*@null@*/ Header h)
1121  /*@*/;
1122 
1129 uint32_t headerSetInstance(/*@null@*/ Header h, uint32_t instance)
1130  /*@modifies h @*/;
1131 
1137 rpmuint32_t headerGetStartOff(/*@null@*/ Header h)
1138  /*@*/;
1139 
1146 rpmuint32_t headerSetStartOff(/*@null@*/ Header h, rpmuint32_t startoff)
1147  /*@modifies h @*/;
1148 
1154 rpmuint32_t headerGetEndOff(/*@null@*/ Header h)
1155  /*@*/;
1156 
1163 rpmuint32_t headerSetEndOff(/*@null@*/ Header h, rpmuint32_t endoff)
1164  /*@modifies h @*/;
1165 
1172 /*@null@*/
1173 void * headerGetStats(Header h, int opx)
1174  /*@*/;
1175 
1181 int headerMacrosLoad(Header h)
1182  /*@globals internalState @*/
1183  /*@modifies internalState @*/;
1184 
1190 int headerMacrosUnload(Header h)
1191  /*@globals internalState @*/
1192  /*@modifies internalState @*/;
1193 
1204 int headerNEVRA(Header h,
1205  /*@null@*/ /*@out@*/ const char ** np,
1206  /*@null@*/ /*@out@*/ /*@unused@*/ const char ** ep,
1207  /*@null@*/ /*@out@*/ const char ** vp,
1208  /*@null@*/ /*@out@*/ const char ** rp,
1209  /*@null@*/ /*@out@*/ const char ** ap)
1210  /*@globals internalState @*/
1211  /*@modifies h, *np, *vp, *rp, *ap, internalState @*/;
1212 
1218 rpmuint32_t hGetColor(Header h)
1219  /*@globals internalState @*/
1220  /*@modifies h, internalState @*/;
1221 
1228 void headerMergeLegacySigs(Header h, const Header sigh)
1229  /*@globals fileSystem, internalState @*/
1230  /*@modifies h, sigh, fileSystem, internalState @*/;
1231 
1239 Header headerRegenSigHeader(const Header h, int noArchiveSize)
1240  /*@globals fileSystem, internalState @*/
1241  /*@modifies h, fileSystem, internalState @*/;
1242 
1243 #ifdef __cplusplus
1244 }
1245 #endif
1246 
1247 #endif /* H_RPMTAG */