rpm
4.8.1
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
62
Header
headerUnlink
(
Header
h);
63
68
void
headerSort
(
Header
h);
69
74
void
headerUnsort
(
Header
h);
75
82
unsigned
int
headerSizeof
(
Header
h,
enum
hMagic
magicp);
83
93
int
headerVerifyInfo
(
int
il,
int
dl,
const
void
* pev,
void
* iv,
int
negate);
94
100
void
*
headerUnload
(
Header
h);
101
109
Header
headerReload
(
Header
h,
rpmTag
tag);
110
116
Header
headerCopy
(
Header
h);
117
123
Header
headerLoad
(
void
* uh);
124
130
Header
headerCopyLoad
(
const
void
* uh);
131
138
Header
headerRead
(
FD_t
fd,
enum
hMagic
magicp);
139
147
int
headerWrite
(
FD_t
fd,
Header
h,
enum
hMagic
magicp);
148
155
int
headerIsEntry
(
Header
h,
rpmTag
tag);
156
166
typedef
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
}
headerGetFlags
;
174
183
int
headerGet
(
Header
h,
rpmTag
tag,
rpmtd
td,
headerGetFlags
flags);
184
185
186
typedef
enum
headerPutFlags_e
{
187
HEADERPUT_DEFAULT
= 0,
188
HEADERPUT_APPEND
= (1 << 0),
189
}
headerPutFlags
;
190
199
int
headerPut
(
Header
h,
rpmtd
td,
headerPutFlags
flags);
200
224
int
headerPutString
(
Header
h,
rpmTag
tag,
const
char
*val);
225
int
headerPutStringArray
(
Header
h,
rpmTag
tag,
const
char
**val,
rpm_count_t
size);
226
int
headerPutBin
(
Header
h,
rpmTag
tag, uint8_t *val,
rpm_count_t
size);
227
int
headerPutChar
(
Header
h,
rpmTag
tag,
char
*val,
rpm_count_t
size);
228
int
headerPutUint8
(
Header
h,
rpmTag
tag, uint8_t *val,
rpm_count_t
size);
229
int
headerPutUint16
(
Header
h,
rpmTag
tag, uint16_t *val,
rpm_count_t
size);
230
int
headerPutUint32
(
Header
h,
rpmTag
tag, uint32_t *val,
rpm_count_t
size);
231
int
headerPutUint64
(
Header
h,
rpmTag
tag, uint64_t *val,
rpm_count_t
size);
254
int
headerAddI18NString
(
Header
h,
rpmTag
tag,
const
char
*
string
,
255
const
char
* lang);
256
264
int
headerMod
(
Header
h,
rpmtd
td);
265
275
int
headerDel
(
Header
h,
rpmTag
tag);
276
286
char
*
headerFormat
(
Header
h,
const
char
* fmt,
errmsg_t
* errmsg);
287
294
void
headerCopyTags
(
Header
headerFrom,
Header
headerTo,
295
const
rpmTag
* tagstocopy);
296
302
HeaderIterator
headerFreeIterator
(
HeaderIterator
hi);
303
309
HeaderIterator
headerInitIterator
(
Header
h);
310
317
int
headerNext
(
HeaderIterator
hi,
rpmtd
td);
318
324
rpmTag
headerNextTag
(
HeaderIterator
hi);
325
334
RPM_GNUC_DEPRECATED
335
int
headerNVR
(
Header
h,
336
const
char
** np,
337
const
char
** vp,
338
const
char
** rp);
339
350
RPM_GNUC_DEPRECATED
351
int
headerNEVRA
(
Header
h,
352
const
char
** np,
353
uint32_t ** ep,
354
const
char
** vp,
355
const
char
** rp,
356
const
char
** ap);
357
364
RPM_GNUC_DEPRECATED
365
char
*
headerGetNEVR
(
Header
h,
const
char
** np );
366
373
RPM_GNUC_DEPRECATED
374
char
*
headerGetNEVRA
(
Header
h,
const
char
** np );
375
376
/* \ingroup header
377
* Return (malloc'd) header (epoch:)version-release string.
378
* @param h header
379
* @retval np name tag value (or NULL)
380
* @return (epoch:)version-release string
381
*/
382
RPM_GNUC_DEPRECATED
383
char
*
headerGetEVR
(
Header
h,
const
char
**np);
384
391
char
*
headerGetAsString
(
Header
h,
rpmTag
tag);
392
399
const
char
*
headerGetString
(
Header
h,
rpmTag
tag);
400
401
/* \ingroup header
402
* Return a simple number tag (or extension) from header
403
* @param h header
404
* @param tag tag to retrieve
405
* @return numeric tag value or 0 on failure
406
*/
407
uint64_t
headerGetNumber
(
Header
h,
rpmTag
tag);
408
414
RPM_GNUC_DEPRECATED
415
rpm_color_t
headerGetColor
(
Header
h);
416
422
int
headerIsSource
(
Header
h);
423
429
unsigned
int
headerGetInstance
(
Header
h);
430
431
typedef
enum
headerConvOps_e
{
432
HEADERCONV_EXPANDFILELIST
= 0,
433
HEADERCONV_COMPRESSFILELIST
= 1,
434
HEADERCONV_RETROFIT_V3
= 2,
435
}
headerConvOps
;
436
443
int
headerConvert
(
Header
h,
headerConvOps
op);
444
445
#ifdef __cplusplus
446
}
447
#endif
448
449
#endif
/* H_HEADER */
headerSizeof
unsigned int headerSizeof(Header h, enum hMagic magicp)
Return size of on-disk header representation in bytes.
headerGet
int headerGet(Header h, rpmTag tag, rpmtd td, headerGetFlags flags)
Retrieve tag value.
headerIsEntry
int headerIsEntry(Header h, rpmTag tag)
Check if tag is in header.
headerReload
Header headerReload(Header h, rpmTag tag)
Convert header to on-disk representation, and then reload.
headerInitIterator
HeaderIterator headerInitIterator(Header h)
Create header tag iterator.
HEADER_MAGIC_NO
Definition:
header.h:33
headerPutChar
int headerPutChar(Header h, rpmTag tag, char *val, rpm_count_t size)
headerRead
Header headerRead(FD_t fd, enum hMagic magicp)
Read (and load) header from file handle.
headerCopyLoad
Header headerCopyLoad(const void *uh)
Make a copy and convert header to in-memory representation.
headerGetEVR
RPM_GNUC_DEPRECATED char * headerGetEVR(Header h, const char **np)
FD_t
struct _FD_s * FD_t
RPM IO file descriptor type.
Definition:
rpmtypes.h:82
headerIsSource
int headerIsSource(Header h)
Check if header is a source or binary package header.
rpm_count_t
uint32_t rpm_count_t
Definition:
rpmtypes.h:29
headerCopyTags
void headerCopyTags(Header headerFrom, Header headerTo, const rpmTag *tagstocopy)
Duplicate tag values from one header into another.
headerPutUint8
int headerPutUint8(Header h, rpmTag tag, uint8_t *val, rpm_count_t size)
HEADERCONV_EXPANDFILELIST
Definition:
header.h:432
HEADERCONV_RETROFIT_V3
Definition:
header.h:434
headerAddI18NString
int headerAddI18NString(Header h, rpmTag tag, const char *string, const char *lang)
Add locale specific tag to header.
headerNVR
RPM_GNUC_DEPRECATED int headerNVR(Header h, const char **np, const char **vp, const char **rp)
Return name, version, release strings from header.
rpmTag
enum rpmTag_e rpmTag
Tags identify data in package headers.
headerGetString
const char * headerGetString(Header h, rpmTag tag)
Return a simple string tag from header.
headerGetFlags_e
headerGetFlags_e
Modifier flags for headerGet() operation.
Definition:
header.h:166
headerConvert
int headerConvert(Header h, headerConvOps op)
Convert header to/from (legacy) data presentation.
headerFreeIterator
HeaderIterator headerFreeIterator(HeaderIterator hi)
Destroy header tag iterator.
HEADER_MAGIC_YES
Definition:
header.h:34
RPM_GNUC_DEPRECATED
#define RPM_GNUC_DEPRECATED
Definition:
rpmutil.h:80
headerSort
void headerSort(Header h)
Sort tags in header.
HEADERGET_EXT
Definition:
header.h:169
headerNext
int headerNext(HeaderIterator hi, rpmtd td)
Return next tag contents from header.
headerGetInstance
unsigned int headerGetInstance(Header h)
Return header instance, ie is the header from rpmdb.
headerGetNEVR
RPM_GNUC_DEPRECATED char * headerGetNEVR(Header h, const char **np)
Return (malloc'd) header name-version-release string.
headerGetFlags
enum headerGetFlags_e headerGetFlags
Modifier flags for headerGet() operation.
headerDel
int headerDel(Header h, rpmTag tag)
Delete tag in header.
headerPutUint32
int headerPutUint32(Header h, rpmTag tag, uint32_t *val, rpm_count_t size)
headerUnsort
void headerUnsort(Header h)
Restore tags in header to original ordering.
headerGetNEVRA
RPM_GNUC_DEPRECATED char * headerGetNEVRA(Header h, const char **np)
Return (malloc'd) header name-version-release.arch string.
HEADERGET_ALLOC
Definition:
header.h:171
headerFree
Header headerFree(Header h)
Dereference a header instance.
headerGetColor
RPM_GNUC_DEPRECATED rpm_color_t headerGetColor(Header h)
Return header color.
headerPutUint64
int headerPutUint64(Header h, rpmTag tag, uint64_t *val, rpm_count_t size)
headerPutBin
int headerPutBin(Header h, rpmTag tag, uint8_t *val, rpm_count_t size)
headerMod
int headerMod(Header h, rpmtd td)
Modify tag in header.
headerPutUint16
int headerPutUint16(Header h, rpmTag tag, uint16_t *val, rpm_count_t size)
headerLoad
Header headerLoad(void *uh)
Convert header to in-memory representation.
headerNextTag
rpmTag headerNextTag(HeaderIterator hi)
Return next tag number from header.
headerPut
int headerPut(Header h, rpmtd td, headerPutFlags flags)
Add or append tag to header.
headerUnload
void * headerUnload(Header h)
Convert header to on-disk representation.
HEADERCONV_COMPRESSFILELIST
Definition:
header.h:433
headerPutString
int headerPutString(Header h, rpmTag tag, const char *val)
Type-safe methods for inserting tag data to header.
headerWrite
int headerWrite(FD_t fd, Header h, enum hMagic magicp)
Write (with unload) header to file handle.
headerPutFlags_e
headerPutFlags_e
Definition:
header.h:186
headerGetAsString
char * headerGetAsString(Header h, rpmTag tag)
Return any non-array tag from header, converted to string.
rpm_color_t
uint32_t rpm_color_t
Definition:
rpmtypes.h:36
rpmtd_s
Container for rpm tag data (from headers or extensions).
Definition:
rpmtd.h:23
headerPutFlags
enum headerPutFlags_e headerPutFlags
HeaderIterator
struct headerIterator_s * HeaderIterator
Definition:
rpmtypes.h:25
HEADERGET_ARGV
Definition:
header.h:172
headerCopy
Header headerCopy(Header h)
Duplicate a header.
headerVerifyInfo
int headerVerifyInfo(int il, int dl, const void *pev, void *iv, int negate)
Perform simple sanity and range checks on header tag(s).
HEADERGET_RAW
Definition:
header.h:170
HEADERGET_DEFAULT
Definition:
header.h:167
headerNew
Header headerNew(void)
Create new (empty) header instance.
hMagic
hMagic
Include calculation for 8 bytes of (magic, 0)?
Definition:
header.h:32
headerLink
Header headerLink(Header h)
Reference a header instance.
rpm_header_magic
const unsigned char rpm_header_magic[8]
Header magic value.
headerNEVRA
RPM_GNUC_DEPRECATED int headerNEVRA(Header h, const char **np, uint32_t **ep, const char **vp, const char **rp, const char **ap)
Return name, epoch, version, release, arch strings from header.
headerFormat
char * headerFormat(Header h, const char *fmt, errmsg_t *errmsg)
Return formatted output string from header tags.
headerConvOps
enum headerConvOps_e headerConvOps
headerUnlink
Header headerUnlink(Header h)
Dereference a header instance.
headerPutStringArray
int headerPutStringArray(Header h, rpmTag tag, const char **val, rpm_count_t size)
headerGetNumber
uint64_t headerGetNumber(Header h, rpmTag tag)
errmsg_t
const char * errmsg_t
Definition:
rpmtypes.h:17
HEADERPUT_APPEND
Definition:
header.h:188
HEADERGET_MINMEM
Definition:
header.h:168
HEADERPUT_DEFAULT
Definition:
header.h:187
headerConvOps_e
headerConvOps_e
Definition:
header.h:431
Header
struct headerToken_s * Header
RPM header and data retrieval types.
Definition:
rpmtypes.h:24
Generated by
1.8.13