40 #define RPM_MIN_TYPE 2
41 #define RPM_MAX_TYPE 9
42 #define RPM_MASK_TYPE 0x0000ffff
115 #define HEADER_IMAGE 61
116 #define HEADER_SIGNATURES 62
117 #define HEADER_IMMUTABLE 63
118 #define HEADER_REGIONS 64
119 #define HEADER_I18NTABLE 100
120 #define HEADER_SIGBASE 256
121 #define HEADER_TAGBASE 1000
159 #define RPMTAG_PKGID RPMTAG_SIGMD5
169 #define RPMTAG_HDRID RPMTAG_SHA1HEADER
172 #define RPMTAG_N RPMTAG_NAME
174 #define RPMTAG_V RPMTAG_VERSION
176 #define RPMTAG_R RPMTAG_RELEASE
178 #define RPMTAG_E RPMTAG_EPOCH
213 #define RPMTAG_FILEMD5S RPMTAG_FILEDIGESTS
230 #define RPMTAG_PROVIDES RPMTAG_PROVIDENAME
231 #define RPMTAG_P RPMTAG_PROVIDENAME
234 #define RPMTAG_REQUIRES RPMTAG_REQUIRENAME
240 #define RPMTAG_CONFLICTS RPMTAG_CONFLICTNAME
241 #define RPMTAG_C RPMTAG_CONFLICTNAME
271 #define RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME
272 #define RPMTAG_O RPMTAG_OBSOLETENAME
347 #define RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME
351 #define RPMTAG_ENHANCES RPMTAG_ENHANCESNAME
356 #define RPMTAG_SVNID RPMTAG_CVSID
412 #define RPMTAG_D RPMTAG_DISTEPOCH
443 #define RPMTAG_EXTERNAL_TAG 1000000
476 #define RPMDBI_PACKAGES (rpmTag)0
477 #define RPMDBI_DEPCACHE (rpmTag)1
479 #define RPMDBI_ADDED (rpmTag)3
480 #define RPMDBI_REMOVED (rpmTag)4
481 #define RPMDBI_AVAILABLE (rpmTag)5
482 #define RPMDBI_HDLIST (rpmTag)6
483 #define RPMDBI_ARGLIST (rpmTag)7
484 #define RPMDBI_FTSWALK (rpmTag)8
485 #define RPMDBI_SEQNO (rpmTag)9
486 #define RPMDBI_BTREE (rpmTag)10
487 #define RPMDBI_HASH (rpmTag)11
488 #define RPMDBI_QUEUE (rpmTag)12
489 #define RPMDBI_RECNO (rpmTag)13
490 #define RPMDBI_HEAP (rpmTag)14
492 #define RPMDBI_REPACKAGES (rpmTag)16
493 #define RPMDBI_REPOSITORY (rpmTag)17
524 #if defined(_RPMTAG_INTERNAL)
531 struct headerTagTableEntry_s {
565 extern headerTagIndices
rpmTags;
568 #if defined(_RPMTAG_INTERNAL)
572 struct headerTagIndices_s {
574 int (*loadIndex) (headerTagTableEntry ** ipp,
size_t * np,
575 int (*cmp) (
const void * avp,
const void * bvp))
578 headerTagTableEntry * byName;
580 int (*byNameCmp) (
const void * avp,
const void * bvp)
585 headerTagTableEntry * byValue;
587 int (*byValueCmp) (
const void * avp,
const void * bvp)
589 const char * (*tagName) (rpmTag value)
599 char * (*tagCanonicalize) (
const char * s)
613 const char *
tagName(rpmTag tag)
622 unsigned int tagType(rpmTag tag)
630 rpmTag
tagValue(
const char * tagstr)
665 tagStore_t
tagStoreFree(tagStore_t dbiTags,
size_t dbiNTags)
668 #if defined(_RPMTAG_INTERNAL)
671 typedef enum headerSprintfExtensionType_e {
676 } headerSprintfExtensionType;
685 typedef char * (*headerTagFormatFunction) (HE_t he,
const char ** av)
696 typedef int (*headerTagTagFunction) (Header h, HE_t he)
703 struct headerSprintfExtension_s {
704 headerSprintfExtensionType type;
710 headerTagFormatFunction fmtFunction;
711 headerTagTagFunction tagFunction;
712 headerSprintfExtension * more;
755 headerTagTableEntry tags,
756 headerSprintfExtension exts,
769 int headerGet(Header h, HE_t he,
unsigned int flags)
772 #define HEADERGET_NOEXTENSION (1 << 0)
773 #define HEADERGET_NOI18NSTRING (1 << 1)
784 int headerPut(Header h, HE_t he,
unsigned int flags)
796 int headerDel(Header h, HE_t he,
unsigned int flags)
807 int headerMod(Header h, HE_t he,
unsigned int flags)
836 int headerNext(HeaderIterator hi, HE_t he,
unsigned int flags)
847 #define headerLink(_h) \
848 ((Header)rpmioLinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
858 #define headerUnlink(_h) \
859 ((Header)rpmioUnlinkPoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
869 #define headerFree(_h) \
870 ((Header)rpmioFreePoolItem((rpmioItem)(_h), __FUNCTION__, __FILE__, __LINE__))
951 #if defined(SUPPORT_I18NSTRING_TYPE)
972 int headerAddI18NString(Header h, rpmTag tag,
const char *
string,
983 void headerCopyTags(Header headerFrom, Header headerTo, rpmTag * tagstocopy)
994 int headerGetMagic( Header h,
unsigned char **magicp,
size_t *nmagicp)
1004 int headerSetMagic( Header h,
unsigned char * magic,
size_t nmagic)