rpm
4.17.0-beta1
lib
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
63
unsigned
int
headerSizeof
(
Header
h,
int
magicp);
64
71
RPM_GNUC_DEPRECATED
72
void
*
headerUnload
(
Header
h);
73
80
void
*
headerExport
(
Header
h,
unsigned
int
* bsize);
81
89
Header
headerReload
(
Header
h,
rpmTagVal
tag);
90
96
Header
headerCopy
(
Header
h);
97
104
RPM_GNUC_DEPRECATED
105
Header
headerLoad
(
void
* uh);
106
113
RPM_GNUC_DEPRECATED
114
Header
headerCopyLoad
(
const
void
* uh);
115
116
enum
headerImportFlags_e
{
117
HEADERIMPORT_COPY
= (1 << 0),
/* Make copy of blob on import? */
118
HEADERIMPORT_FAST
= (1 << 1),
/* Faster but less safe? */
119
};
120
121
typedef
rpmFlags
headerImportFlags
;
122
130
Header
headerImport
(
void
*blob,
unsigned
int
bsize,
headerImportFlags
flags);
131
138
Header
headerRead
(
FD_t
fd,
int
magicp);
139
147
int
headerWrite
(
FD_t
fd,
Header
h,
int
magicp);
148
155
int
headerIsEntry
(
Header
h,
rpmTagVal
tag);
156
166
enum
headerGetFlags_e
{
167
HEADERGET_DEFAULT
= 0,
/* legacy headerGetEntry() behavior */
168
HEADERGET_MINMEM
= (1 << 0),
/* pointers can refer to header memory */
169
HEADERGET_EXT
= (1 << 1),
/* lookup extension types too */
170
HEADERGET_RAW
= (1 << 2),
/* return raw contents (no i18n lookups) */
171
HEADERGET_ALLOC
= (1 << 3),
/* always allocate memory for all data */
172
HEADERGET_ARGV
= (1 << 4),
/* return string arrays NULL-terminated */
173
};
174
175
typedef
rpmFlags
headerGetFlags
;
176
185
int
headerGet
(
Header
h,
rpmTagVal
tag,
rpmtd
td,
headerGetFlags
flags);
186
187
188
enum
headerPutFlags_e
{
189
HEADERPUT_DEFAULT
= 0,
190
HEADERPUT_APPEND
= (1 << 0),
191
};
192
193
typedef
rpmFlags
headerPutFlags
;
194
203
int
headerPut
(
Header
h,
rpmtd
td,
headerPutFlags
flags);
204
228
int
headerPutBin
(
Header
h,
rpmTagVal
tag,
const
uint8_t *val,
rpm_count_t
size);
229
int
headerPutString
(
Header
h,
rpmTagVal
tag,
const
char
*val);
230
int
headerPutStringArray
(
Header
h,
rpmTagVal
tag,
const
char
**val,
rpm_count_t
size);
231
int
headerPutChar
(
Header
h,
rpmTagVal
tag,
const
char
*val,
rpm_count_t
size);
232
int
headerPutUint8
(
Header
h,
rpmTagVal
tag,
const
uint8_t *val,
rpm_count_t
size);
233
int
headerPutUint16
(
Header
h,
rpmTagVal
tag,
const
uint16_t *val,
rpm_count_t
size);
234
int
headerPutUint32
(
Header
h,
rpmTagVal
tag,
const
uint32_t *val,
rpm_count_t
size);
235
int
headerPutUint64
(
Header
h,
rpmTagVal
tag,
const
uint64_t *val,
rpm_count_t
size);
258
int
headerAddI18NString
(
Header
h,
rpmTagVal
tag,
const
char
*
string
,
259
const
char
* lang);
260
268
int
headerMod
(
Header
h,
rpmtd
td);
269
279
int
headerDel
(
Header
h,
rpmTagVal
tag);
280
290
char
*
headerFormat
(
Header
h,
const
char
* fmt,
errmsg_t
* errmsg);
291
298
void
headerCopyTags
(
Header
headerFrom,
Header
headerTo,
299
const
rpmTagVal
* tagstocopy);
300
306
HeaderIterator
headerFreeIterator
(
HeaderIterator
hi);
307
313
HeaderIterator
headerInitIterator
(
Header
h);
314
321
int
headerNext
(
HeaderIterator
hi,
rpmtd
td);
322
328
rpmTagVal
headerNextTag
(
HeaderIterator
hi);
329
336
char
*
headerGetAsString
(
Header
h,
rpmTagVal
tag);
337
344
const
char
*
headerGetString
(
Header
h,
rpmTagVal
tag);
345
352
uint64_t
headerGetNumber
(
Header
h,
rpmTagVal
tag);
353
359
int
headerIsSource
(
Header
h);
360
366
unsigned
int
headerGetInstance
(
Header
h);
367
368
typedef
enum
headerConvOps_e
{
369
HEADERCONV_EXPANDFILELIST
= 0,
370
HEADERCONV_COMPRESSFILELIST
= 1,
371
HEADERCONV_RETROFIT_V3
= 2,
372
}
headerConvOps
;
373
380
int
headerConvert
(
Header
h,
int
op);
381
382
#ifdef __cplusplus
383
}
384
#endif
385
386
#endif
/* H_HEADER */
rpmFlags
uint32_t rpmFlags
Definition:
rpmtypes.h:42
headerGetAsString
char * headerGetAsString(Header h, rpmTagVal tag)
Return any non-array tag from header, converted to string.
headerPutUint32
int headerPutUint32(Header h, rpmTagVal tag, const uint32_t *val, rpm_count_t size)
headerReload
Header headerReload(Header h, rpmTagVal tag)
Convert header to on-disk representation, and then reload.
headerGetString
const char * headerGetString(Header h, rpmTagVal tag)
Return a simple string tag from header.
errmsg_t
const char * errmsg_t
Definition:
rpmtypes.h:17
rpm_count_t
uint32_t rpm_count_t
Definition:
rpmtypes.h:29
headerImport
Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags)
Import header to in-memory representation.
headerPutUint64
int headerPutUint64(Header h, rpmTagVal tag, const uint64_t *val, rpm_count_t size)
headerNew
Header headerNew(void)
Create new (empty) header instance.
HEADERIMPORT_COPY
@ HEADERIMPORT_COPY
Definition:
header.h:117
headerConvOps
enum headerConvOps_e headerConvOps
headerFreeIterator
HeaderIterator headerFreeIterator(HeaderIterator hi)
Destroy header tag iterator.
HEADERGET_DEFAULT
@ HEADERGET_DEFAULT
Definition:
header.h:167
headerUnload
RPM_GNUC_DEPRECATED void * headerUnload(Header h)
Convert header to on-disk representation.
HEADER_MAGIC_NO
@ HEADER_MAGIC_NO
Definition:
header.h:33
headerAddI18NString
int headerAddI18NString(Header h, rpmTagVal tag, const char *string, const char *lang)
Add locale specific tag to header.
rpm_header_magic
const unsigned char rpm_header_magic[8]
Header magic value.
HEADERGET_ARGV
@ HEADERGET_ARGV
Definition:
header.h:172
headerPutFlags
rpmFlags headerPutFlags
Definition:
header.h:193
HEADERPUT_DEFAULT
@ HEADERPUT_DEFAULT
Definition:
header.h:189
headerMod
int headerMod(Header h, rpmtd td)
Modify tag in header.
headerWrite
int headerWrite(FD_t fd, Header h, int magicp)
Write (with unload) header to file handle.
headerPutFlags_e
headerPutFlags_e
Definition:
header.h:188
headerPutUint8
int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size)
headerPut
int headerPut(Header h, rpmtd td, headerPutFlags flags)
Add or append tag to header.
RPM_GNUC_DEPRECATED
#define RPM_GNUC_DEPRECATED
Definition:
rpmutil.h:81
headerLoad
RPM_GNUC_DEPRECATED Header headerLoad(void *uh)
Convert header to in-memory representation.
headerPutString
int headerPutString(Header h, rpmTagVal tag, const char *val)
headerCopy
Header headerCopy(Header h)
Duplicate a header.
headerConvOps_e
headerConvOps_e
Definition:
header.h:368
HEADERGET_EXT
@ HEADERGET_EXT
Definition:
header.h:169
HEADERCONV_RETROFIT_V3
@ HEADERCONV_RETROFIT_V3
Definition:
header.h:371
headerGetFlags
rpmFlags headerGetFlags
Definition:
header.h:175
headerLink
Header headerLink(Header h)
Reference a header instance.
headerNext
int headerNext(HeaderIterator hi, rpmtd td)
Return next tag contents from header.
headerNextTag
rpmTagVal headerNextTag(HeaderIterator hi)
Return next tag number from header.
headerGetFlags_e
headerGetFlags_e
Modifier flags for headerGet() operation.
Definition:
header.h:166
headerPutBin
int headerPutBin(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size)
Type-safe methods for inserting tag data to header.
headerPutChar
int headerPutChar(Header h, rpmTagVal tag, const char *val, rpm_count_t size)
headerImportFlags_e
headerImportFlags_e
Definition:
header.h:116
headerRead
Header headerRead(FD_t fd, int magicp)
Read (and load) header from file handle.
headerExport
void * headerExport(Header h, unsigned int *bsize)
Export header to on-disk representation.
HEADERGET_MINMEM
@ HEADERGET_MINMEM
Definition:
header.h:168
headerPutUint16
int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size)
rpmtd_s
Container for rpm tag data (from headers or extensions).
Definition:
rpmtd.h:32
headerSizeof
unsigned int headerSizeof(Header h, int magicp)
Return size of on-disk header representation in bytes.
FD_t
struct _FD_s * FD_t
RPM IO file descriptor type.
Definition:
rpmtypes.h:99
headerConvert
int headerConvert(Header h, int op)
Convert header to/from (legacy) data presentation.
headerGet
int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags)
Retrieve tag value.
HEADERCONV_COMPRESSFILELIST
@ HEADERCONV_COMPRESSFILELIST
Definition:
header.h:370
headerPutStringArray
int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size)
headerGetInstance
unsigned int headerGetInstance(Header h)
Return header instance, ie is the header from rpmdb.
headerCopyTags
void headerCopyTags(Header headerFrom, Header headerTo, const rpmTagVal *tagstocopy)
Duplicate tag values from one header into another.
HEADERCONV_EXPANDFILELIST
@ HEADERCONV_EXPANDFILELIST
Definition:
header.h:369
hMagic
hMagic
Include calculation for 8 bytes of (magic, 0)?
Definition:
header.h:32
HEADERPUT_APPEND
@ HEADERPUT_APPEND
Definition:
header.h:190
headerIsEntry
int headerIsEntry(Header h, rpmTagVal tag)
Check if tag is in header.
headerFormat
char * headerFormat(Header h, const char *fmt, errmsg_t *errmsg)
Return formatted output string from header tags.
headerCopyLoad
RPM_GNUC_DEPRECATED Header headerCopyLoad(const void *uh)
Make a copy and convert header to in-memory representation.
headerImportFlags
rpmFlags headerImportFlags
Definition:
header.h:121
headerDel
int headerDel(Header h, rpmTagVal tag)
Delete tag in header.
Header
struct headerToken_s * Header
RPM header and data retrieval types.
Definition:
rpmtypes.h:24
HEADERIMPORT_FAST
@ HEADERIMPORT_FAST
Definition:
header.h:118
HEADERGET_ALLOC
@ HEADERGET_ALLOC
Definition:
header.h:171
HeaderIterator
struct headerIterator_s * HeaderIterator
Definition:
rpmtypes.h:25
rpmTagVal
rpm_tag_t rpmTagVal
Definition:
rpmtypes.h:30
headerFree
Header headerFree(Header h)
Dereference a header instance.
headerInitIterator
HeaderIterator headerInitIterator(Header h)
Create header tag iterator.
HEADERGET_RAW
@ HEADERGET_RAW
Definition:
header.h:170
HEADER_MAGIC_YES
@ HEADER_MAGIC_YES
Definition:
header.h:34
headerIsSource
int headerIsSource(Header h)
Check if header is a source or binary package header.
headerGetNumber
uint64_t headerGetNumber(Header h, rpmTagVal tag)
Return a simple number tag (or extension) from header.
Generated by
1.8.20