rpm
4.17.0
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 */
headerFree
Header headerFree(Header h)
Dereference a header instance.
headerAddI18NString
int headerAddI18NString(Header h, rpmTagVal tag, const char *string, const char *lang)
Add locale specific tag to header.
headerPutUint64
int headerPutUint64(Header h, rpmTagVal tag, const uint64_t *val, rpm_count_t size)
headerMod
int headerMod(Header h, rpmtd td)
Modify tag in header.
headerPut
int headerPut(Header h, rpmtd td, headerPutFlags flags)
Add or append tag to header.
hMagic
hMagic
Include calculation for 8 bytes of (magic, 0)?
Definition:
header.h:32
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.
headerGetString
const char * headerGetString(Header h, rpmTagVal tag)
Return a simple string tag from header.
headerCopyTags
void headerCopyTags(Header headerFrom, Header headerTo, const rpmTagVal *tagstocopy)
Duplicate tag values from one header into another.
headerIsSource
int headerIsSource(Header h)
Check if header is a source or binary package header.
headerPutStringArray
int headerPutStringArray(Header h, rpmTagVal tag, const char **val, rpm_count_t size)
headerDel
int headerDel(Header h, rpmTagVal tag)
Delete tag in header.
headerUnload
RPM_GNUC_DEPRECATED void * headerUnload(Header h)
Convert header to on-disk representation.
rpm_header_magic
const unsigned char rpm_header_magic[8]
Header magic value.
headerPutUint8
int headerPutUint8(Header h, rpmTagVal tag, const uint8_t *val, rpm_count_t size)
headerGet
int headerGet(Header h, rpmTagVal tag, rpmtd td, headerGetFlags flags)
Retrieve tag value.
headerCopyLoad
RPM_GNUC_DEPRECATED Header headerCopyLoad(const void *uh)
Make a copy and convert header to in-memory representation.
headerGetNumber
uint64_t headerGetNumber(Header h, rpmTagVal tag)
Return a simple number tag (or extension) from header.
headerGetAsString
char * headerGetAsString(Header h, rpmTagVal tag)
Return any non-array tag from header, converted to string.
headerLoad
RPM_GNUC_DEPRECATED Header headerLoad(void *uh)
Convert header to in-memory representation.
headerFreeIterator
HeaderIterator headerFreeIterator(HeaderIterator hi)
Destroy header tag iterator.
headerPutString
int headerPutString(Header h, rpmTagVal tag, const char *val)
headerNext
int headerNext(HeaderIterator hi, rpmtd td)
Return next tag contents from header.
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)
headerPutUint32
int headerPutUint32(Header h, rpmTagVal tag, const uint32_t *val, rpm_count_t size)
headerPutUint16
int headerPutUint16(Header h, rpmTagVal tag, const uint16_t *val, rpm_count_t size)
headerGetInstance
unsigned int headerGetInstance(Header h)
Return header instance, ie is the header from rpmdb.
headerConvert
int headerConvert(Header h, int op)
Convert header to/from (legacy) data presentation.
headerLink
Header headerLink(Header h)
Reference a header instance.
headerNew
Header headerNew(void)
Create new (empty) header instance.
headerWrite
int headerWrite(FD_t fd, Header h, int magicp)
Write (with unload) header to file handle.
headerSizeof
unsigned int headerSizeof(Header h, int magicp)
Return size of on-disk header representation in bytes.
headerCopy
Header headerCopy(Header h)
Duplicate a header.
headerFormat
char * headerFormat(Header h, const char *fmt, errmsg_t *errmsg)
Return formatted output string from header tags.
headerGetFlags_e
headerGetFlags_e
Modifier flags for headerGet() operation.
Definition:
header.h:166
headerInitIterator
HeaderIterator headerInitIterator(Header h)
Create header tag iterator.
headerReload
Header headerReload(Header h, rpmTagVal tag)
Convert header to on-disk representation, and then reload.
headerImport
Header headerImport(void *blob, unsigned int bsize, headerImportFlags flags)
Import header to in-memory representation.
headerNextTag
rpmTagVal headerNextTag(HeaderIterator hi)
Return next tag number from header.
headerIsEntry
int headerIsEntry(Header h, rpmTagVal tag)
Check if tag is in header.
HEADER_MAGIC_NO
@ HEADER_MAGIC_NO
Definition:
header.h:33
HEADER_MAGIC_YES
@ HEADER_MAGIC_YES
Definition:
header.h:34
HEADERGET_DEFAULT
@ HEADERGET_DEFAULT
Definition:
header.h:167
HEADERGET_EXT
@ HEADERGET_EXT
Definition:
header.h:169
HEADERGET_ARGV
@ HEADERGET_ARGV
Definition:
header.h:172
HEADERGET_ALLOC
@ HEADERGET_ALLOC
Definition:
header.h:171
HEADERGET_RAW
@ HEADERGET_RAW
Definition:
header.h:170
HEADERGET_MINMEM
@ HEADERGET_MINMEM
Definition:
header.h:168
HeaderIterator
struct headerIterator_s * HeaderIterator
Definition:
rpmtypes.h:25
FD_t
struct _FD_s * FD_t
RPM IO file descriptor type.
Definition:
rpmtypes.h:99
rpm_count_t
uint32_t rpm_count_t
Definition:
rpmtypes.h:29
rpmTagVal
rpm_tag_t rpmTagVal
Definition:
rpmtypes.h:30
rpmFlags
uint32_t rpmFlags
Definition:
rpmtypes.h:42
Header
struct headerToken_s * Header
RPM header and data retrieval types.
Definition:
rpmtypes.h:24
headerPutFlags_e
headerPutFlags_e
Definition:
header.h:188
HEADERPUT_APPEND
@ HEADERPUT_APPEND
Definition:
header.h:190
HEADERPUT_DEFAULT
@ HEADERPUT_DEFAULT
Definition:
header.h:189
headerPutFlags
rpmFlags headerPutFlags
Definition:
header.h:193
headerImportFlags
rpmFlags headerImportFlags
Definition:
header.h:121
headerConvOps_e
headerConvOps_e
Definition:
header.h:368
HEADERCONV_EXPANDFILELIST
@ HEADERCONV_EXPANDFILELIST
Definition:
header.h:369
HEADERCONV_RETROFIT_V3
@ HEADERCONV_RETROFIT_V3
Definition:
header.h:371
HEADERCONV_COMPRESSFILELIST
@ HEADERCONV_COMPRESSFILELIST
Definition:
header.h:370
headerImportFlags_e
headerImportFlags_e
Definition:
header.h:116
HEADERIMPORT_FAST
@ HEADERIMPORT_FAST
Definition:
header.h:118
HEADERIMPORT_COPY
@ HEADERIMPORT_COPY
Definition:
header.h:117
headerGetFlags
rpmFlags headerGetFlags
Definition:
header.h:175
headerConvOps
enum headerConvOps_e headerConvOps
errmsg_t
const char * errmsg_t
Definition:
rpmtypes.h:17
RPM_GNUC_DEPRECATED
#define RPM_GNUC_DEPRECATED
Definition:
rpmutil.h:81
rpmtd_s
Container for rpm tag data (from headers or extensions).
Definition:
rpmtd.h:32
Generated by
1.9.1