rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
header.h
Go to the documentation of this file.
1#ifndef H_HEADER
2#define H_HEADER
3
12
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
21extern "C" {
22#endif
23
27RPM_PUBLIC_API
28extern const unsigned char rpm_header_magic[8];
29
33enum hMagic {
34 HEADER_MAGIC_NO = 0,
35 HEADER_MAGIC_YES = 1
36};
37
42RPM_PUBLIC_API
44
50RPM_PUBLIC_API
52
58RPM_PUBLIC_API
60
67RPM_PUBLIC_API
68unsigned int headerSizeof(Header h, int magicp);
69
76RPM_PUBLIC_API
77void * headerExport(Header h, unsigned int * bsize);
78
86RPM_PUBLIC_API
87Header headerReload(Header h, rpmTagVal tag);
88
94RPM_PUBLIC_API
96
97enum headerImportFlags_e {
98 HEADERIMPORT_COPY = (1 << 0), /* Make copy of blob on import? */
99 HEADERIMPORT_FAST = (1 << 1), /* Faster but less safe? */
100};
101
102typedef rpmFlags headerImportFlags;
103
111RPM_PUBLIC_API
112Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags);
113
120RPM_PUBLIC_API
121Header headerRead(FD_t fd, int magicp);
122
130RPM_PUBLIC_API
131int headerWrite(FD_t fd, Header h, int magicp);
132
139RPM_PUBLIC_API
140int headerIsEntry(Header h, rpmTagVal tag);
141
152 HEADERGET_DEFAULT = 0, /* legacy headerGetEntry() behavior */
153 HEADERGET_MINMEM = (1 << 0), /* pointers can refer to header memory */
154 HEADERGET_EXT = (1 << 1), /* lookup extension types too */
155 HEADERGET_RAW = (1 << 2), /* return raw contents (no i18n lookups) */
156 HEADERGET_ALLOC = (1 << 3), /* always allocate memory for all data */
157 HEADERGET_ARGV = (1 << 4), /* return string arrays NULL-terminated */
158};
159
160typedef rpmFlags headerGetFlags;
161
170RPM_PUBLIC_API
171int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags);
172
173
174enum headerPutFlags_e {
175 HEADERPUT_DEFAULT = 0,
176 HEADERPUT_APPEND = (1 << 0),
177};
178
179typedef rpmFlags headerPutFlags;
180
189RPM_PUBLIC_API
190int headerPut(Header h, rpmtd td, headerPutFlags flags);
191
215RPM_PUBLIC_API
216int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
217RPM_PUBLIC_API
218int headerPutString(Header h, rpmTagVal tag, const char *val);
219RPM_PUBLIC_API
220int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size);
221RPM_PUBLIC_API
222int headerPutChar(Header h, rpmTagVal tag, const char *val, rpm_count_t size);
223RPM_PUBLIC_API
224int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
225RPM_PUBLIC_API
226int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size);
227RPM_PUBLIC_API
228int headerPutUint32(Header h, rpmTagVal tag, const uint32_t *val, rpm_count_t size);
229RPM_PUBLIC_API
230int headerPutUint64(Header h, rpmTagVal tag, const uint64_t *val, rpm_count_t size);
232
253RPM_PUBLIC_API
254int headerAddI18NString(Header h, rpmTagVal tag, const char * string,
255 const char * lang);
256
264RPM_PUBLIC_API
265int headerMod(Header h, rpmtd td);
266
276RPM_PUBLIC_API
277int headerDel(Header h, rpmTagVal tag);
278
288RPM_PUBLIC_API
289char * headerFormat(Header h, const char * fmt, errmsg_t * errmsg);
290
297RPM_PUBLIC_API
298void headerCopyTags(Header headerFrom, Header headerTo,
299 const rpmTagVal * tagstocopy);
300
306RPM_PUBLIC_API
307HeaderIterator headerFreeIterator(HeaderIterator hi);
308
314RPM_PUBLIC_API
315HeaderIterator headerInitIterator(Header h);
316
323RPM_PUBLIC_API
324int headerNext(HeaderIterator hi, rpmtd td);
325
331RPM_PUBLIC_API
332rpmTagVal headerNextTag(HeaderIterator hi);
333
340RPM_PUBLIC_API
341char * headerGetAsString(Header h, rpmTagVal tag);
342
349RPM_PUBLIC_API
350const char * headerGetString(Header h, rpmTagVal tag);
351
358RPM_PUBLIC_API
359uint64_t headerGetNumber(Header h, rpmTagVal tag);
360
366RPM_PUBLIC_API
368
374RPM_PUBLIC_API
375unsigned int headerGetInstance(Header h);
376
377typedef enum headerConvOps_e {
378 HEADERCONV_EXPANDFILELIST = 0,
379 HEADERCONV_COMPRESSFILELIST = 1,
380 HEADERCONV_RETROFIT_V3 = 2,
381} headerConvOps;
382
389RPM_PUBLIC_API
390int headerConvert(Header h, int op);
391
392#ifdef __cplusplus
393}
394#endif
395
396#endif /* H_HEADER */
RPM_PUBLIC_API const unsigned char rpm_header_magic[8]
RPM_PUBLIC_API int headerPut(Header h, rpmtd td, headerPutFlags flags)
RPM_PUBLIC_API int headerAddI18NString(Header h, rpmTagVal tag, const char *string, const char *lang)
RPM_PUBLIC_API Header headerCopy(Header h)
hMagic
Definition header.h:33
RPM_PUBLIC_API int headerMod(Header h, rpmtd td)
RPM_PUBLIC_API int headerIsEntry(Header h, rpmTagVal tag)
RPM_PUBLIC_API int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size)
RPM_PUBLIC_API unsigned int headerGetInstance(Header h)
RPM_PUBLIC_API HeaderIterator headerFreeIterator(HeaderIterator hi)
RPM_PUBLIC_API char * headerGetAsString(Header h, rpmTagVal tag)
RPM_PUBLIC_API char * headerFormat(Header h, const char *fmt, errmsg_t *errmsg)
RPM_PUBLIC_API int headerNext(HeaderIterator hi, rpmtd td)
RPM_PUBLIC_API int headerDel(Header h, rpmTagVal tag)
RPM_PUBLIC_API uint64_t headerGetNumber(Header h, rpmTagVal tag)
RPM_PUBLIC_API Header headerLink(Header h)
RPM_PUBLIC_API void headerCopyTags(Header headerFrom, Header headerTo, const rpmTagVal *tagstocopy)
RPM_PUBLIC_API unsigned int headerSizeof(Header h, int magicp)
RPM_PUBLIC_API int headerConvert(Header h, int op)
RPM_PUBLIC_API rpmTagVal headerNextTag(HeaderIterator hi)
RPM_PUBLIC_API int headerIsSource(Header h)
RPM_PUBLIC_API void * headerExport(Header h, unsigned int *bsize)
RPM_PUBLIC_API int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags)
RPM_PUBLIC_API HeaderIterator headerInitIterator(Header h)
RPM_PUBLIC_API int headerWrite(FD_t fd, Header h, int magicp)
RPM_PUBLIC_API Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags)
headerGetFlags_e
Definition header.h:151
RPM_PUBLIC_API Header headerNew(void)
RPM_PUBLIC_API const char * headerGetString(Header h, rpmTagVal tag)
RPM_PUBLIC_API Header headerRead(FD_t fd, int magicp)
RPM_PUBLIC_API Header headerReload(Header h, rpmTagVal tag)
RPM_PUBLIC_API Header headerFree(Header h)
struct FD_s * FD_t
Definition rpmtypes.h:100
struct headerToken_s * Header
Definition rpmtypes.h:24