#include "rpmio.h"
#include "hdrinline.h"
Include dependency graph for header.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
union | rpmDataType_u |
struct | _HE_s |
struct | headerTagTableEntry_s |
struct | headerTagIndices_s |
struct | headerSprintfExtension_s |
struct | HV_s |
Defines | |
#define | RPM_MIN_TYPE 0 |
#define | RPM_MAX_TYPE 11 |
#define | RPM_UINT8_TYPE RPM_INT8_TYPE |
#define | RPM_UINT16_TYPE RPM_INT16_TYPE |
#define | RPM_UINT32_TYPE RPM_INT32_TYPE |
#define | RPM_UINT64_TYPE RPM_INT64_TYPE |
#define | HEADER_IMAGE 61 |
Header private tags. | |
#define | HEADER_SIGNATURES 62 |
#define | HEADER_IMMUTABLE 63 |
#define | HEADER_REGIONS 64 |
#define | HEADER_I18NTABLE 100 |
#define | HEADER_SIGBASE 256 |
#define | HEADER_TAGBASE 1000 |
Typedefs | |
typedef long long int | int_64 |
typedef int | int_32 |
typedef short int | int_16 |
typedef char | int_8 |
typedef unsigned long long int | uint_64 |
typedef unsigned int | uint_32 |
typedef unsigned short | uint_16 |
typedef unsigned char | uint_8 |
typedef const char * | errmsg_t |
typedef headerToken_s * | Header |
typedef enum rpmTagType_e | rpmTagType |
typedef rpmDataType_u | rpmTagData |
typedef int_32 | rpmTagCount |
typedef _HE_s * | HE_t |
typedef rpmDataType_u | hRET_t |
typedef int_32 * | hTAG_t |
typedef int_32 * | hTYP_t |
typedef const void * | hPTR_t |
typedef int_32 * | hCNT_t |
typedef _HE_s | HE_s |
typedef headerIterator_s * | HeaderIterator |
typedef headerTagTableEntry_s * | headerTagTableEntry |
Associate tag names with numeric values. | |
typedef headerTagIndices_s * | headerTagIndices |
typedef char *(* | headerTagFormatFunction )(HE_t he, const char **av) |
HEADER_EXT_TAG format function prototype. | |
typedef int(* | headerTagTagFunction )(Header h, HE_t he) |
HEADER_EXT_FORMAT format function prototype. | |
typedef headerSprintfExtension_s * | headerSprintfExtension |
Define header tag output formats. | |
typedef enum rpmSubTagType_e | rpmSubTagType |
New rpm data types under consideration/development. | |
typedef enum rpmTagReturnType_e | rpmTagReturnType |
Identify how to return the header data type. | |
typedef void *(* | HFD_t )(const void *data, rpmTagType type) |
Prototype for headerFreeData() vector. | |
typedef int(* | HGE_t )(Header h, int_32 tag, rpmTagType *type, void *p, int_32 *c) |
Prototype for headerGetEntry() vector. | |
typedef int(* | HAE_t )(Header h, int_32 tag, rpmTagType type, const void *p, int_32 c) |
Prototype for headerAddEntry() vector. | |
typedef int(* | HME_t )(Header h, int_32 tag, rpmTagType type, const void *p, int_32 c) |
Prototype for headerModifyEntry() vector. | |
typedef int(* | HRE_t )(Header h, int_32 tag) |
Prototype for headerRemoveEntry() vector. | |
typedef Header(* | HDRnew )(void) |
Create new (empty) header instance. | |
typedef Header(* | HDRfree )(Header h) |
Dereference a header instance. | |
typedef Header(* | HDRlink )(Header h) |
Reference a header instance. | |
typedef Header(* | HDRunlink )(Header h) |
Dereference a header instance. | |
typedef void(* | HDRsort )(Header h) |
Sort tags in header. | |
typedef void(* | HDRunsort )(Header h) |
Restore tags in header to original ordering. | |
typedef unsigned int(* | HDRsizeof )(Header h, enum hMagic magicp) |
Return size of on-disk header representation in bytes. | |
typedef void *(* | HDRunload )(Header h) |
Convert header to on-disk representation. | |
typedef Header(* | HDRreload )(Header h, int tag) |
Convert header to on-disk representation, and then reload. | |
typedef Header(* | HDRcopy )(Header h) |
Duplicate a header. | |
typedef Header(* | HDRload )(void *uh) |
Convert header to in-memory representation. | |
typedef Header(* | HDRcopyload )(const void *uh) |
Make a copy and convert header to in-memory representation. | |
typedef Header(* | HDRread )(void *_fd, enum hMagic magicp) |
Read (and load) header from file handle. | |
typedef int(* | HDRwrite )(void *_fd, Header h, enum hMagic magicp) |
Write (with unload) header to file handle. | |
typedef int(* | HDRisentry )(Header h, int_32 tag) |
Check if tag is in header. | |
typedef void *(* | HDRfreetag )(Header h, const void *data, rpmTagType type) |
Free data allocated when retrieved from header. | |
typedef int(* | HDRext )(Header h, int_32 tag, hTYP_t type, hRET_t *p, hCNT_t c) |
Retrieve extension or tag value. | |
typedef int(* | HDRget )(Header h, int_32 tag, hTYP_t type, void *p, hCNT_t c) |
Retrieve tag value. | |
typedef int(* | HDRgetmin )(Header h, int_32 tag, hTYP_t type, void *p, hCNT_t c) |
Retrieve tag value using header internal array. | |
typedef int(* | HDRadd )(Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
Add tag to header. | |
typedef int(* | HDRappend )(Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
Append element to tag array in header. | |
typedef int(* | HDRaddorappend )(Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
Add or append element to tag array in header. | |
typedef int(* | HDRaddi18n )(Header h, int_32 tag, const char *string, const char *lang) |
Add locale specific tag to header. | |
typedef int(* | HDRmodify )(Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
Modify tag in header. | |
typedef int(* | HDRremove )(Header h, int_32 tag) |
Delete tag in header. | |
typedef char *(* | HDRsprintf )(Header h, const char *fmt, const struct headerTagTableEntry_s *tags, const struct headerSprintfExtension_s *exts, errmsg_t *errmsg) |
Return formatted output string from header tags. | |
typedef void(* | HDRcopytags )(Header headerFrom, Header headerTo, hTAG_t tagstocopy) |
Duplicate tag values from one header into another. | |
typedef HeaderIterator(* | HDRfreeiter )(HeaderIterator hi) |
Destroy header tag iterator. | |
typedef HeaderIterator(* | HDRinititer )(Header h) |
Create header tag iterator. | |
typedef int(* | HDRnextiter )(HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c) |
Return next tag from header. | |
typedef int(* | HDRgetmagic )(Header h, unsigned char **magicp, size_t *nmagicp) |
Return header magic. | |
typedef int(* | HDRsetmagic )(Header h, unsigned char *magic, size_t nmagic) |
Store header magic. | |
typedef const char *(* | HDRgetorigin )(Header h) |
Return header origin (e.g path or URL). | |
typedef int(* | HDRsetorigin )(Header h, const char *origin) |
Store header origin (e.g path or URL). | |
typedef int(* | HDRgetinstance )(Header h) |
Return header instance (if from rpmdb). | |
typedef int(* | HDRsetinstance )(Header h, int instance) |
Store header instance (e.g path or URL). | |
typedef void *(* | HDRgetstats )(Header h, int opx) |
Return header stats accumulator structure. | |
typedef HV_s * | HV_t |
Header method vectors. | |
Enumerations | |
enum | rpmTagType_e { RPM_NULL_TYPE = 0, RPM_CHAR_TYPE = 1, RPM_INT8_TYPE = 2, RPM_INT16_TYPE = 3, RPM_INT32_TYPE = 4, RPM_INT64_TYPE = 5, RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8, RPM_I18NSTRING_TYPE = 9, RPM_ASN1_TYPE = 10, RPM_OPENPGP_TYPE = 11, RPM_MASK_TYPE = 0x0000ffff } |
The basic types of data in tags from headers. More... | |
enum | headerSprintfExtensionType { HEADER_EXT_LAST = 0, HEADER_EXT_FORMAT, HEADER_EXT_MORE, HEADER_EXT_TAG } |
enum | hMagic { HEADER_MAGIC_NO = 0, HEADER_MAGIC_YES = 1 } |
Include calculation for 8 bytes of (magic, 0)? More... | |
enum | rpmSubTagType_e { RPM_REGION_TYPE = -10, RPM_BIN_ARRAY_TYPE = -11, RPM_XREF_TYPE = -12 } |
New rpm data types under consideration/development. More... | |
enum | rpmTagReturnType_e { RPM_ANY_RETURN_TYPE = 0, RPM_SCALAR_RETURN_TYPE = 0x00010000, RPM_ARRAY_RETURN_TYPE = 0x00020000, RPM_MAPPING_RETURN_TYPE = 0x00040000, RPM_MASK_RETURN_TYPE = 0xffff0000 } |
Identify how to return the header data type. More... | |
Functions | |
static void * | headerFreeData (const void *data, rpmTagType type) |
Free data allocated when retrieved from header. | |
int | headerMacrosLoad (Header h) |
Define per-header macros. | |
int | headerMacrosUnload (Header h) |
Define per-header macros. | |
int | headerNVR (Header h, const char **np, const char **vp, const char **rp) |
Return name, version, release strings from header. | |
int | headerNEVRA (Header h, const char **np, const char **ep, const char **vp, const char **rp, const char **ap) |
Return name, epoch, version, release, arch strings from header. | |
char * | hGetNEVR (Header h, const char **np) |
Return (malloc'd) header name-version-release string. | |
char * | hGetNEVRA (Header h, const char **np) |
Return (malloc'd) header name-version-release.arch string. | |
uint_32 | hGetColor (Header h) |
Return header color. | |
Variables | |
const struct headerSprintfExtension_s | headerDefaultFormats [] |
Supported default header tag output formats. |
A header is a collection of data elements called tags. Each tag has a data type, and includes 1 or more values.
Definition in file header.h.
|
Definition at line 354 of file header.h. Referenced by hdrKeyList(), headerFindI18NString(), headerGetLangs(), initSourceHeader(), and regionSwab(). |
|
Header private tags.
Definition at line 350 of file header.h. Referenced by copyEntry(), and regionSwab(). |
|
|
|
|
|
Definition at line 355 of file header.h. Referenced by headerMergeLegacySigs(), and headerRegenSigHeader(). |
|
|
|
Definition at line 356 of file header.h. Referenced by headerMergeLegacySigs(), and headerRegenSigHeader(). |
|
Definition at line 127 of file header.h. Referenced by rpmDisplayQueryTags(). |
|
|
|
Definition at line 130 of file header.h. Referenced by yamlFormat(). |
|
Definition at line 131 of file header.h. Referenced by yamlFormat(). |
|
Definition at line 132 of file header.h. Referenced by digestFormat(), pkgmtimeTag(), pkgsizeTag(), rpnFormat(), and yamlFormat(). |
|
Definition at line 129 of file header.h. Referenced by yamlFormat(). |
|
Prototype for headerAddEntry() vector. Duplicate tags are okay, but only defined for iteration (with the exceptions noted below). While you are allowed to add i18n string arrays through this function, you probably don't mean to. See headerAddI18NString() instead.
|
|
|
|
Return header stats accumulator structure.
|
|
|
|
|
|
Prototype for headerFreeData() vector.
|
|
Prototype for headerGetEntry() vector. Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE entry is present).
|
|
Prototype for headerModifyEntry() vector. If there are multiple entries with this tag, the first one gets replaced.
|
|
|
|
Prototype for headerRemoveEntry() vector. Delete tag in header. Removes all entries of type tag from the header, returns 1 if none were found.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Define per-header macros.
Definition at line 29 of file hdrNVR.c. References _free(), addMacro(), body(), headerFreeData(), headerGetEntryMinMemory(), tagMacro::macroname, RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_I18NSTRING_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_NULL_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmExpand(), tagMacro::tag, and tagMacros. Referenced by processBinaryFiles(), and rpmInstallSourcePackage(). |
|
Define per-header macros.
Definition at line 84 of file hdrNVR.c. References _free(), body(), delMacro(), headerFreeData(), headerGetEntryMinMemory(), tagMacro::macroname, RPM_BIN_TYPE, RPM_CHAR_TYPE, RPM_I18NSTRING_TYPE, RPM_INT16_TYPE, RPM_INT32_TYPE, RPM_INT8_TYPE, RPM_NULL_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmExpand(), tagMacro::tag, and tagMacros. Referenced by processBinaryFiles(). |
|
Return header color.
Definition at line 240 of file hdrNVR.c. References headerGetEntryMinMemory(), and RPMTAG_FILECOLORS. Referenced by rpmdbAdd(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), and rpmtsAddUpgrades(). |
|
Return (malloc'd) header name-version-release string.
Definition at line 194 of file hdrNVR.c. References headerNVR(), stpcpy(), and xcalloc(). Referenced by addTE(), and ensureOlder(). |
|
Return (malloc'd) header name-version-release.arch string.
Definition at line 213 of file hdrNVR.c. References headerGetEntry(), headerNVR(), RPMTAG_ARCH, stpcpy(), and xcalloc(). Referenced by checkPackageSet(), handleInstInstalledFiles(), rpmteChain(), and rpmtsAddInstallElement(). |