Make header struct really opaque outside header.c
- the low-level stuff in signature.c and package.c need entryInfo_s and indexEntry_s but not the header itself - also move the other defines which have no use outside header.c there
This commit is contained in:
parent
a14d06482a
commit
cef9afbf2a
26
lib/header.c
26
lib/header.c
|
@ -68,11 +68,37 @@ static const int typeSizes[16] = {
|
|||
0
|
||||
};
|
||||
|
||||
typedef enum headerFlags_e {
|
||||
HEADERFLAG_SORTED = (1 << 0), /*!< Are header entries sorted? */
|
||||
HEADERFLAG_ALLOCATED = (1 << 1), /*!< Is 1st header region allocated? */
|
||||
HEADERFLAG_LEGACY = (1 << 2), /*!< Header came from legacy source? */
|
||||
HEADERFLAG_DEBUG = (1 << 3), /*!< Debug this header? */
|
||||
} headerFlags;
|
||||
|
||||
/** \ingroup header
|
||||
* The Header data structure.
|
||||
*/
|
||||
struct headerToken_s {
|
||||
void * blob; /*!< Header region blob. */
|
||||
indexEntry index; /*!< Array of tags. */
|
||||
int indexUsed; /*!< Current size of tag array. */
|
||||
int indexAlloced; /*!< Allocated size of tag array. */
|
||||
unsigned int instance; /*!< Rpmdb instance (offset) */
|
||||
headerFlags flags;
|
||||
int nrefs; /*!< Reference count. */
|
||||
};
|
||||
|
||||
/** \ingroup header
|
||||
* Maximum no. of bytes permitted in a header.
|
||||
*/
|
||||
static const size_t headerMaxbytes = (32*1024*1024);
|
||||
|
||||
#define INDEX_MALLOC_SIZE 8
|
||||
|
||||
#define ENTRY_IS_REGION(_e) \
|
||||
(((_e)->info.tag >= HEADER_IMAGE) && ((_e)->info.tag < HEADER_REGIONS))
|
||||
#define ENTRY_IN_REGION(_e) ((_e)->info.offset < 0)
|
||||
|
||||
/** \ingroup header
|
||||
* HEADER_EXT_TAG format function prototype.
|
||||
* This is allowed to fail, which indicates the tag doesn't exist.
|
||||
|
|
|
@ -5,12 +5,8 @@
|
|||
* \file lib/header_internal.h
|
||||
*/
|
||||
|
||||
#include <netinet/in.h>
|
||||
|
||||
#include <rpm/header.h>
|
||||
|
||||
#define INDEX_MALLOC_SIZE 8
|
||||
|
||||
/** \ingroup header
|
||||
* Description of tag data.
|
||||
*/
|
||||
|
@ -25,10 +21,6 @@ struct entryInfo_s {
|
|||
#define REGION_TAG_TYPE RPM_BIN_TYPE
|
||||
#define REGION_TAG_COUNT sizeof(struct entryInfo_s)
|
||||
|
||||
#define ENTRY_IS_REGION(_e) \
|
||||
(((_e)->info.tag >= HEADER_IMAGE) && ((_e)->info.tag < HEADER_REGIONS))
|
||||
#define ENTRY_IN_REGION(_e) ((_e)->info.offset < 0)
|
||||
|
||||
/** \ingroup header
|
||||
* A single tag from a Header.
|
||||
*/
|
||||
|
@ -40,26 +32,6 @@ struct indexEntry_s {
|
|||
int rdlen; /*!< No. bytes of data in region. */
|
||||
};
|
||||
|
||||
typedef enum headerFlags_e {
|
||||
HEADERFLAG_SORTED = (1 << 0), /*!< Are header entries sorted? */
|
||||
HEADERFLAG_ALLOCATED = (1 << 1), /*!< Is 1st header region allocated? */
|
||||
HEADERFLAG_LEGACY = (1 << 2), /*!< Header came from legacy source? */
|
||||
HEADERFLAG_DEBUG = (1 << 3), /*!< Debug this header? */
|
||||
} headerFlags;
|
||||
|
||||
/** \ingroup header
|
||||
* The Header data structure.
|
||||
*/
|
||||
struct headerToken_s {
|
||||
void * blob; /*!< Header region blob. */
|
||||
indexEntry index; /*!< Array of tags. */
|
||||
int indexUsed; /*!< Current size of tag array. */
|
||||
int indexAlloced; /*!< Allocated size of tag array. */
|
||||
unsigned int instance; /*!< Rpmdb instance (offset) */
|
||||
headerFlags flags;
|
||||
int nrefs; /*!< Reference count. */
|
||||
};
|
||||
|
||||
/**
|
||||
* Sanity check on no. of tags.
|
||||
* This check imposes a limit of 65K tags, more than enough.
|
||||
|
|
Loading…
Reference in New Issue