#include <stdio.h>
#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 | |
struct | headerTagTableEntry_s |
struct | headerTagIndices_s |
struct | headerSprintfExtension_s |
union | hRET_s |
struct | HE_s |
struct | HV_s |
Defines | |
#define | RPM_MIN_TYPE 0 |
#define | RPM_MAX_TYPE 11 |
#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 int_32 * | hTAG_t |
typedef int_32 * | hTYP_t |
typedef const void * | hPTR_t |
typedef int_32 * | hCNT_t |
typedef headerToken_s * | Header |
typedef headerIterator_s * | HeaderIterator |
typedef headerTagTableEntry_s * | headerTagTableEntry |
Associate tag names with numeric values. | |
typedef headerTagIndices_s * | headerTagIndices |
typedef char *(*) | headerTagFormatFunction (int_32 type, const void *data, char *formatPrefix, int padding, int element) |
HEADER_EXT_TAG format function prototype. | |
typedef int(*) | headerTagTagFunction (Header h, hTYP_t type, hPTR_t *data, hCNT_t count, int *freeData) |
HEADER_EXT_FORMAT format function prototype. | |
typedef headerSprintfExtension_s * | headerSprintfExtension |
Define header tag output formats. | |
typedef enum rpmTagType_e | rpmTagType |
The basic types of data in tags from headers. | |
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 hRET_s * | hRET_t |
typedef HE_s * | HE_t |
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 (FD_t fd, enum hMagic magicp) |
Read (and load) header from file handle. | |
typedef int(*) | HDRwrite (FD_t 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(*) | 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 *extensions, 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 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 HV_s * | HV_t |
Header method vectors. | |
Enumerations | |
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 | 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 | 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 | |
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.
#define HEADER_I18NTABLE 100 |
Definition at line 303 of file header.h.
Referenced by hdrKeyList(), headerFindI18NString(), headerGetLangs(), initSourceHeader(), and regionSwab().
#define HEADER_IMAGE 61 |
Header private tags.
Definition at line 299 of file header.h.
Referenced by copyEntry(), and regionSwab().
#define HEADER_SIGBASE 256 |
Definition at line 304 of file header.h.
Referenced by headerMergeLegacySigs(), and headerRegenSigHeader().
#define HEADER_TAGBASE 1000 |
Definition at line 305 of file header.h.
Referenced by headerMergeLegacySigs(), and headerRegenSigHeader().
#define RPM_MAX_TYPE 11 |
typedef struct headerTagIndices_s* headerTagIndices |
int headerMacrosLoad | ( | Header | h | ) |
Define per-header macros.
h | header |
Definition at line 29 of file hdrNVR.c.
References _free(), addMacro(), argv, 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().
int headerMacrosUnload | ( | Header | h | ) |
Define per-header macros.
h | header |
Definition at line 84 of file hdrNVR.c.
References _free(), argv, 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.
h | header |
Definition at line 240 of file hdrNVR.c.
References headerGetEntryMinMemory(), and RPMTAG_FILECOLORS.
Referenced by rpmdbAdd(), and rpmtsAddInstallElement().
char* hGetNEVR | ( | Header | h, | |
const char ** | np | |||
) |
Return (malloc'd) header name-version-release string.
h | header |
np | name tag value |
Definition at line 194 of file hdrNVR.c.
References headerNVR(), stpcpy(), and xcalloc().
Referenced by addTE(), and ensureOlder().
char* hGetNEVRA | ( | Header | h, | |
const char ** | np | |||
) |
Return (malloc'd) header name-version-release.arch string.
h | header |
np | name tag value |
Definition at line 213 of file hdrNVR.c.
References headerGetEntry(), headerNVR(), RPMTAG_ARCH, stpcpy(), and xcalloc().
Referenced by checkPackageSet(), handleInstInstalledFiles(), rpmteChain(), and rpmtsAddInstallElement().