rpm
4.16.1.3
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
void
*
headerUnload
(
Header
h);
72
79
void
*
headerExport
(
Header
h,
unsigned
int
* bsize);
80
88
Header
headerReload
(
Header
h,
rpmTagVal
tag);
89
95
Header
headerCopy
(
Header
h);
96
103
Header
headerLoad
(
void
* uh);
104
111
Header
headerCopyLoad
(
const
void
* uh);
112
113
enum
headerImportFlags_e
{
114
HEADERIMPORT_COPY
= (1 << 0),
/* Make copy of blob on import? */
115
HEADERIMPORT_FAST
= (1 << 1),
/* Faster but less safe? */
116
};
117
118
typedef
rpmFlags
headerImportFlags
;
119
127
Header
headerImport
(
void
*blob,
unsigned
int
bsize,
headerImportFlags
flags);
128
135
Header
headerRead
(
FD_t
fd,
int
magicp);
136
144
int
headerWrite
(
FD_t
fd,
Header
h,
int
magicp);
145
152
int
headerIsEntry
(
Header
h,
rpmTagVal
tag);
153
163
enum
headerGetFlags_e
{
164
HEADERGET_DEFAULT
= 0,
/* legacy headerGetEntry() behavior */
165
HEADERGET_MINMEM
= (1 << 0),
/* pointers can refer to header memory */
166
HEADERGET_EXT
= (1 << 1),
/* lookup extension types too */
167
HEADERGET_RAW
= (1 << 2),
/* return raw contents (no i18n lookups) */
168
HEADERGET_ALLOC
= (1 << 3),
/* always allocate memory for all data */
169
HEADERGET_ARGV
= (1 << 4),
/* return string arrays NULL-terminated */
170
};
171
172
typedef
rpmFlags
headerGetFlags
;
173
182
int
headerGet
(
Header
h,
rpmTagVal
tag,
rpmtd
td,
headerGetFlags
flags);
183
184
185
enum
headerPutFlags_e
{
186
HEADERPUT_DEFAULT
= 0,
187
HEADERPUT_APPEND
= (1 << 0),
188
};
189
190
typedef
rpmFlags
headerPutFlags
;
191
200
int
headerPut
(
Header
h,
rpmtd
td,
headerPutFlags
flags);
201
225
int
headerPutBin
(
Header
h,
rpmTagVal
tag,
const
uint8_t *val,
rpm_count_t
size);
226
int
headerPutString
(
Header
h,
rpmTagVal
tag,
const
char
*val);
227
int
headerPutStringArray
(
Header
h,
rpmTagVal
tag,
const
char
**val,
rpm_count_t
size);
228
int
headerPutChar
(
Header
h,
rpmTagVal
tag,
const
char
*val,
rpm_count_t
size);
229
int
headerPutUint8
(
Header
h,
rpmTagVal
tag,
const
uint8_t *val,
rpm_count_t
size);
230
int
headerPutUint16
(
Header
h,
rpmTagVal
tag,
const
uint16_t *val,
rpm_count_t
size);
231
int
headerPutUint32
(
Header
h,
rpmTagVal
tag,
const
uint32_t *val,
rpm_count_t
size);
232
int
headerPutUint64
(
Header
h,
rpmTagVal
tag,
const
uint64_t *val,
rpm_count_t
size);
255
int
headerAddI18NString
(
Header
h,
rpmTagVal
tag,
const
char
*
string
,
256
const
char
* lang);
257
265
int
headerMod
(
Header
h,
rpmtd
td);
266
276
int
headerDel
(
Header
h,
rpmTagVal
tag);
277
287
char
*
headerFormat
(
Header
h,
const
char
* fmt,
errmsg_t
* errmsg);
288
295
void
headerCopyTags
(
Header
headerFrom,
Header
headerTo,
296
const
rpmTagVal
* tagstocopy);
297
303
HeaderIterator
headerFreeIterator
(
HeaderIterator
hi);
304
310
HeaderIterator
headerInitIterator
(
Header
h);
311
318
int
headerNext
(
HeaderIterator
hi,
rpmtd
td);
319
325
rpmTagVal
headerNextTag
(
HeaderIterator
hi);
326
333
char
*
headerGetAsString
(
Header
h,
rpmTagVal
tag);
334
341
const
char
*
headerGetString
(
Header
h,
rpmTagVal
tag);
342
349
uint64_t
headerGetNumber
(
Header
h,
rpmTagVal
tag);
350
356
int
headerIsSource
(
Header
h);
357
363
unsigned
int
headerGetInstance
(
Header
h);
364
365
typedef
enum
headerConvOps_e
{
366
HEADERCONV_EXPANDFILELIST
= 0,
367
HEADERCONV_COMPRESSFILELIST
= 1,
368
HEADERCONV_RETROFIT_V3
= 2,
369
}
headerConvOps
;
370
377
int
headerConvert
(
Header
h,
int
op);
378
379
#ifdef __cplusplus
380
}
381
#endif
382
383
#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.
headerUnload
void * headerUnload(Header h)
Convert header to on-disk representation.
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.
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.
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.
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.
headerLoad
Header headerLoad(void *uh)
Convert header to in-memory representation.
headerCopyLoad
Header headerCopyLoad(const void *uh)
Make a copy and convert header to in-memory representation.
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:163
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:164
HEADERGET_EXT
@ HEADERGET_EXT
Definition:
header.h:166
HEADERGET_ARGV
@ HEADERGET_ARGV
Definition:
header.h:169
HEADERGET_ALLOC
@ HEADERGET_ALLOC
Definition:
header.h:168
HEADERGET_RAW
@ HEADERGET_RAW
Definition:
header.h:167
HEADERGET_MINMEM
@ HEADERGET_MINMEM
Definition:
header.h:165
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:185
HEADERPUT_APPEND
@ HEADERPUT_APPEND
Definition:
header.h:187
HEADERPUT_DEFAULT
@ HEADERPUT_DEFAULT
Definition:
header.h:186
headerPutFlags
rpmFlags headerPutFlags
Definition:
header.h:190
headerImportFlags
rpmFlags headerImportFlags
Definition:
header.h:118
headerConvOps_e
headerConvOps_e
Definition:
header.h:365
HEADERCONV_EXPANDFILELIST
@ HEADERCONV_EXPANDFILELIST
Definition:
header.h:366
HEADERCONV_RETROFIT_V3
@ HEADERCONV_RETROFIT_V3
Definition:
header.h:368
HEADERCONV_COMPRESSFILELIST
@ HEADERCONV_COMPRESSFILELIST
Definition:
header.h:367
headerImportFlags_e
headerImportFlags_e
Definition:
header.h:113
HEADERIMPORT_FAST
@ HEADERIMPORT_FAST
Definition:
header.h:115
HEADERIMPORT_COPY
@ HEADERIMPORT_COPY
Definition:
header.h:114
headerGetFlags
rpmFlags headerGetFlags
Definition:
header.h:172
headerConvOps
enum headerConvOps_e headerConvOps
errmsg_t
const char * errmsg_t
Definition:
rpmtypes.h:17
rpmtd_s
Container for rpm tag data (from headers or extensions).
Definition:
rpmtd.h:32
Generated by
1.9.1