rpm 4.11.1-rc1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

header.h
Go to the documentation of this file.
1 #ifndef H_HEADER
2 #define H_HEADER
3
13 /* RPM - Copyright (C) 1995-2001 Red Hat Software */
14
15 #include <rpm/rpmio.h>
16 #include <rpm/rpmtypes.h>
17 #include <rpm/rpmtd.h>
18 #include <rpm/rpmutil.h>
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
27 extern const unsigned char rpm_header_magic[8];
28
32 enum hMagic {
33 HEADER_MAGIC_NO = 0,
34 HEADER_MAGIC_YES = 1
35 };
36
41 Header headerNew(void);
42
48 Header headerFree( Header h);
49
55 Header headerLink(Header h);
56
61 void headerSort(Header h);
62
67 void headerUnsort(Header h);
68
75 unsigned int headerSizeof(Header h, int magicp);
76
86 int headerVerifyInfo(int il, int dl, const void * pev, void * iv, int negate);
87
94 void * headerUnload(Header h);
95
102 void * headerExport(Header h, unsigned int * bsize);
103
111 Header headerReload(Header h, rpmTagVal tag);
112
118 Header headerCopy(Header h);
119
126 Header headerLoad(void * uh);
127
134 Header headerCopyLoad(const void * uh);
135
136 enum headerImportFlags_e {
137 HEADERIMPORT_COPY = (1 << 0), /* Make copy of blob on import? */
138 HEADERIMPORT_FAST = (1 << 1), /* Faster but less safe? */
139 };
140
141 typedef rpmFlags headerImportFlags;
142
150 Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags);
151
158 Header headerRead(FD_t fd, int magicp);
159
167 int headerWrite(FD_t fd, Header h, int magicp);
168
175 int headerIsEntry(Header h, rpmTagVal tag);
176
186 enum headerGetFlags_e {
187 HEADERGET_DEFAULT = 0, /* legacy headerGetEntry() behavior */
188 HEADERGET_MINMEM = (1 << 0), /* pointers can refer to header memory */
189 HEADERGET_EXT = (1 << 1), /* lookup extension types too */
190 HEADERGET_RAW = (1 << 2), /* return raw contents (no i18n lookups) */
191 HEADERGET_ALLOC = (1 << 3), /* always allocate memory for all data */
192 HEADERGET_ARGV = (1 << 4), /* return string arrays NULL-terminated */
193 };
194
195 typedef rpmFlags headerGetFlags;
196
205 int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags);
206
207
208 enum headerPutFlags_e {
209 HEADERPUT_DEFAULT = 0,
210 HEADERPUT_APPEND = (1 << 0),
211 };
212
213 typedef rpmFlags headerPutFlags;
214
223 int headerPut(Header h, rpmtd td, headerPutFlags flags);
224
248 int headerPutString(Header h, rpmTagVal tag, const char *val);
249 int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size);
250 int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
251 int headerPutChar(Header h, rpmTagVal tag, const char *val, rpm_count_t size);
252 int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
253 int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size);
254 int headerPutUint32(Header h, rpmTagVal tag, const uint32_t *val, rpm_count_t size);
255 int headerPutUint64(Header h, rpmTagVal tag, const uint64_t *val, rpm_count_t size);
278 int headerAddI18NString(Header h, rpmTagVal tag, const char * string,
279 const char * lang);
280
288 int headerMod(Header h, rpmtd td);
289
299 int headerDel(Header h, rpmTagVal tag);
300
310 char * headerFormat(Header h, const char * fmt, errmsg_t * errmsg);
311
318 void headerCopyTags(Header headerFrom, Header headerTo,
319 const rpmTagVal * tagstocopy);
320
326 HeaderIterator headerFreeIterator(HeaderIterator hi);
327
333 HeaderIterator headerInitIterator(Header h);
334
341 int headerNext(HeaderIterator hi, rpmtd td);
342
348 rpmTagVal headerNextTag(HeaderIterator hi);
349
358 RPM_GNUC_DEPRECATED
359 int headerNVR(Header h,
360 const char ** np,
361 const char ** vp,
362 const char ** rp);
363
374 RPM_GNUC_DEPRECATED
375 int headerNEVRA(Header h,
376 const char ** np,
377 uint32_t ** ep,
378 const char ** vp,
379 const char ** rp,
380 const char ** ap);
381
388 RPM_GNUC_DEPRECATED
389 char * headerGetNEVR(Header h, const char ** np );
390
397 RPM_GNUC_DEPRECATED
398 char * headerGetNEVRA(Header h, const char ** np );
399
400 /* \ingroup header
401 * Return (malloc'd) header (epoch:)version-release string.
402 * @param h header
403 * @retval np name tag value (or NULL)
404 * @return (epoch:)version-release string
405 */
406 RPM_GNUC_DEPRECATED
407 char * headerGetEVR(Header h, const char **np);
408
415 char * headerGetAsString(Header h, rpmTagVal tag);
416
423 const char * headerGetString(Header h, rpmTagVal tag);
424
425 /* \ingroup header
426 * Return a simple number tag (or extension) from header
427 * @param h header
428 * @param tag tag to retrieve
429 * @return numeric tag value or 0 on failure
430 */
431 uint64_t headerGetNumber(Header h, rpmTagVal tag);
432
438 RPM_GNUC_DEPRECATED
439 rpm_color_t headerGetColor(Header h);
440
446 int headerIsSource(Header h);
447
453 unsigned int headerGetInstance(Header h);
454
455 typedef enum headerConvOps_e {
456 HEADERCONV_EXPANDFILELIST = 0,
457 HEADERCONV_COMPRESSFILELIST = 1,
458 HEADERCONV_RETROFIT_V3 = 2,
459 } headerConvOps;
460
467 int headerConvert(Header h, int op);
468
469 #ifdef __cplusplus
470 }
471 #endif
472
473 #endif /* H_HEADER */