rpm  6.0.91
The RPM Package Manager
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 
49 
56 
63 unsigned int headerSizeof(Header h, int magicp);
64 
71 void * headerExport(Header h, unsigned int * bsize);
72 
80 Header headerReload(Header h, rpmTagVal tag);
81 
88 
89 enum headerImportFlags_e {
90  HEADERIMPORT_COPY = (1 << 0), /* Make copy of blob on import? */
91  HEADERIMPORT_FAST = (1 << 1), /* Faster but less safe? */
92 };
93 
94 typedef rpmFlags headerImportFlags;
95 
103 Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags);
104 
111 Header headerRead(FD_t fd, int magicp);
112 
120 int headerWrite(FD_t fd, Header h, int magicp);
121 
128 int headerIsEntry(Header h, rpmTagVal tag);
129 
140  HEADERGET_DEFAULT = 0, /* legacy headerGetEntry() behavior */
141  HEADERGET_MINMEM = (1 << 0), /* pointers can refer to header memory */
142  HEADERGET_EXT = (1 << 1), /* lookup extension types too */
143  HEADERGET_RAW = (1 << 2), /* return raw contents (no i18n lookups) */
144  HEADERGET_ALLOC = (1 << 3), /* always allocate memory for all data */
145  HEADERGET_ARGV = (1 << 4), /* return string arrays NULL-terminated */
146 };
147 
148 typedef rpmFlags headerGetFlags;
149 
158 int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags);
159 
160 
161 enum headerPutFlags_e {
162  HEADERPUT_DEFAULT = 0,
163  HEADERPUT_APPEND = (1 << 0),
164 };
165 
166 typedef rpmFlags headerPutFlags;
167 
176 int headerPut(Header h, rpmtd td, headerPutFlags flags);
177 
201 int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
202 int headerPutString(Header h, rpmTagVal tag, const char *val);
203 int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size);
204 int headerPutChar(Header h, rpmTagVal tag, const char *val, rpm_count_t size);
205 int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size);
206 int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size);
207 int headerPutUint32(Header h, rpmTagVal tag, const uint32_t *val, rpm_count_t size);
208 int headerPutUint64(Header h, rpmTagVal tag, const uint64_t *val, rpm_count_t size);
231 int headerAddI18NString(Header h, rpmTagVal tag, const char * string,
232  const char * lang);
233 
241 int headerMod(Header h, rpmtd td);
242 
252 int headerDel(Header h, rpmTagVal tag);
253 
263 char * headerFormat(Header h, const char * fmt, errmsg_t * errmsg);
264 
271 void headerCopyTags(Header headerFrom, Header headerTo,
272  const rpmTagVal * tagstocopy);
273 
279 HeaderIterator headerFreeIterator(HeaderIterator hi);
280 
286 HeaderIterator headerInitIterator(Header h);
287 
294 int headerNext(HeaderIterator hi, rpmtd td);
295 
301 rpmTagVal headerNextTag(HeaderIterator hi);
302 
309 char * headerGetAsString(Header h, rpmTagVal tag);
310 
317 const char * headerGetString(Header h, rpmTagVal tag);
318 
325 uint64_t headerGetNumber(Header h, rpmTagVal tag);
326 
332 int headerIsSource(Header h);
333 
339 unsigned int headerGetInstance(Header h);
340 
341 typedef enum headerConvOps_e {
342  HEADERCONV_EXPANDFILELIST = 0,
343  HEADERCONV_COMPRESSFILELIST = 1,
344  HEADERCONV_RETROFIT_V3 = 2,
345 } headerConvOps;
346 
353 int headerConvert(Header h, int op);
354 
355 #ifdef __cplusplus
356 }
357 #endif
358 
359 #endif /* H_HEADER */
void * headerExport(Header h, unsigned int *bsize)
Header headerNew(void)
int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size)
HeaderIterator headerInitIterator(Header h)
unsigned int headerSizeof(Header h, int magicp)
Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags)
int headerPut(Header h, rpmtd td, headerPutFlags flags)
void headerCopyTags(Header headerFrom, Header headerTo, const rpmTagVal *tagstocopy)
char * headerFormat(Header h, const char *fmt, errmsg_t *errmsg)
uint64_t headerGetNumber(Header h, rpmTagVal tag)
Header headerFree(Header h)
HeaderIterator headerFreeIterator(HeaderIterator hi)
Header headerLink(Header h)
int headerDel(Header h, rpmTagVal tag)
headerGetFlags_e
Definition: header.h:139
int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags)
const unsigned char rpm_header_magic[8]
int headerConvert(Header h, int op)
struct headerToken_s * Header
Definition: rpmtypes.h:24
rpmTagVal headerNextTag(HeaderIterator hi)
Header headerCopy(Header h)
Header headerReload(Header h, rpmTagVal tag)
Header headerRead(FD_t fd, int magicp)
int headerMod(Header h, rpmtd td)
char * headerGetAsString(Header h, rpmTagVal tag)
unsigned int headerGetInstance(Header h)
int headerNext(HeaderIterator hi, rpmtd td)
Definition: rpmtd.h:35
struct FD_s * FD_t
Definition: rpmtypes.h:100
int headerIsSource(Header h)
int headerIsEntry(Header h, rpmTagVal tag)
int headerAddI18NString(Header h, rpmTagVal tag, const char *string, const char *lang)
int headerWrite(FD_t fd, Header h, int magicp)
const char * headerGetString(Header h, rpmTagVal tag)
hMagic
Definition: header.h:32