|
Data Structures |
struct | headerIteratorS |
| Header tag iterator data structure. More...
|
Defines |
#define | __HEADER_PROTOTYPES__ |
#define | PARSER_BEGIN 0 |
#define | PARSER_IN_ARRAY 1 |
#define | PARSER_IN_EXPR 2 |
#define | hdrchkTags(_ntags) ((_ntags) & 0xffff0000) |
| Sanity check on no.
|
#define | hdrchkData(_nbytes) ((_nbytes) & 0xff000000) |
| Sanity check on data size and/or offset.
|
Functions |
const char *const | tagName (int tag) |
static void * | _free (const void *p) |
| Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
|
static Header | headerLink (Header h) |
| Reference a header instance.
|
static Header | headerUnlink (Header h) |
| Dereference a header instance.
|
static Header | headerFree (Header h) |
| Dereference a header instance.
|
static Header | headerNew (void) |
| Create new (empty) header instance.
|
static int | indexCmp (const void *avp, const void *bvp) |
static void | headerSort (Header h) |
| Sort tags in header.
|
static int | offsetCmp (const void *avp, const void *bvp) |
static void | headerUnsort (Header h) |
| Restore tags in header to original ordering.
|
static unsigned int | headerSizeof (Header h, enum hMagic magicp) |
| Return size of on-disk header representation in bytes.
|
static int | dataLength (int_32 type, hPTR_t p, int_32 count, int onDisk) |
| Return length of entry data.
|
static int | regionSwab (indexEntry entry, int il, int dl, entryInfo pe, char *dataStart, int regionid) |
| Swap int_32 and int_16 arrays within header region.
|
static void * | doHeaderUnload (Header h, int *lengthPtr) |
static void * | headerUnload (Header h) |
| Convert header to on-disk representation.
|
static indexEntry | findEntry (Header h, int_32 tag, int_32 type) |
| Find matching (tag,type) entry in header.
|
static int | headerRemoveEntry (Header h, int_32 tag) |
| Delete tag in header.
|
static Header | headerLoad (void *uh) |
| Convert header to in-memory representation.
|
static Header | headerReload (Header h, int tag) |
| Convert header to on-disk representation, and then reload.
|
static Header | headerCopyLoad (const void *uh) |
| Make a copy and convert header to in-memory representation.
|
static Header | headerRead (FD_t fd, enum hMagic magicp) |
| Read (and load) header from file handle.
|
static int | headerWrite (FD_t fd, Header h, enum hMagic magicp) |
| Write (with unload) header to file handle.
|
static int | headerIsEntry (Header h, int_32 tag) |
| Check if tag is in header.
|
static int | copyEntry (const indexEntry entry, hTYP_t type, hPTR_t *p, hCNT_t c, int minMem) |
| Retrieve data from header entry.
|
static int | headerMatchLocale (const char *td, const char *l, const char *le) |
| Does locale match entry in header i18n table?
|
static char * | headerFindI18NString (Header h, indexEntry entry) |
| Return i18n string from header that matches locale.
|
static int | intGetEntry (Header h, int_32 tag, hTAG_t type, hPTR_t *p, hCNT_t c, int minMem) |
| Retrieve tag data from header.
|
static void * | headerFreeTag (Header h, const void *data, rpmTagType type) |
| Free data allocated when retrieved from header.
|
static int | headerGetEntry (Header h, int_32 tag, hTYP_t type, void **p, hCNT_t c) |
| Retrieve tag value.
|
static int | headerGetEntryMinMemory (Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c) |
| Retrieve tag value using header internal array.
|
int | headerGetRawEntry (Header h, int_32 tag, int_32 *type, hPTR_t *p, int_32 *c) |
static void | copyData (int_32 type, void *dstPtr, const void *srcPtr, int_32 c, int dataLength) |
static void * | grabData (int_32 type, hPTR_t p, int_32 c, int *lengthPtr) |
| Return (malloc'ed) copy of entry data.
|
static int | headerAddEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
| Add tag to header.
|
static int | headerAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
| Append element to tag array in header.
|
static int | headerAddOrAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
| Add or append element to tag array in header.
|
static int | headerAddI18NString (Header h, int_32 tag, const char *string, const char *lang) |
| Add locale specific tag to header.
|
static int | headerModifyEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
| Modify tag in header.
|
static char | escapedChar (const char ch) |
static sprintfToken | freeFormat (sprintfToken format, int num) |
| Destroy headerSprintf format array.
|
static void | findTag (char *name, const headerTagTableEntry tags, const headerSprintfExtension extensions, headerTagTableEntry *tagMatch, headerSprintfExtension *extMatch) |
static int | parseExpression (sprintfToken token, char *str, const headerTagTableEntry tags, const headerSprintfExtension extensions,char **endPtr,errmsg_t *errmsg) |
static int | parseFormat (char *str, const headerTagTableEntry tags, const headerSprintfExtension extensions, sprintfToken *formatPtr, int *numTokensPtr, char **endPtr, int state, errmsg_t *errmsg) |
static int | getExtension (Header h, headerTagTagFunction fn, hTYP_t typeptr, hPTR_t *data, hCNT_t countptr, extensionCache ext) |
static char * | formatValue (sprintfTag tag, Header h, const headerSprintfExtension extensions, extensionCache extCache, int element) |
static const char * | singleSprintf (Header h, sprintfToken token, const headerSprintfExtension extensions, extensionCache extCache, int element) |
static extensionCache | allocateExtensionCache (const headerSprintfExtension extensions) |
static extensionCache | freeExtensionCache (const headerSprintfExtension extensions, extensionCache cache) |
static char * | headerSprintf (Header h, const char *fmt, const struct headerTagTableEntry_s *tbltags, const struct headerSprintfExtension_s *extensions, errmsg_t *errmsg) |
| Return formatted output string from header tags.
|
static char * | octalFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
static char * | hexFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
static char * | realDateFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element, const char *strftimeFormat) |
static char * | dateFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
static char * | dayFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
static char * | shescapeFormat (int_32 type, hPTR_t data, char *formatPrefix, int padding, int element) |
static void | headerCopyTags (Header headerFrom, Header headerTo, hTAG_t tagstocopy) |
| Duplicate tag values from one header into another.
|
static HeaderIterator | headerFreeIterator (HeaderIterator hi) |
| Destroy header tag iterator.
|
static HeaderIterator | headerInitIterator (Header h) |
| Create header tag iterator.
|
static int | headerNextIterator (HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c) |
| Return next tag from header.
|
static Header | headerCopy (Header h) |
| Duplicate a header.
|
Variables |
static unsigned char | header_magic [8] |
static size_t | headerMaxbytes = (32*1024*1024) |
| Maximum no.
|
static int | typeSizes [] |
| Alignment needs (and sizeof scalars types) for internal rpm data types.
|
HV_t | hdrVec = &hdrVec1 |
| Header methods for rpm headers.
|
struct headerSprintfExtension_s | headerDefaultFormats [] |
| Supported default header tag output formats.
|
static struct HV_s | hdrVec1 |