Make header struct really opaque outside header.c
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 22 Dec 2009 11:25:48 +0000 (13:25 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 22 Dec 2009 11:25:48 +0000 (13:25 +0200)
- 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

lib/header.c
lib/header_internal.h

index 893d6f9..5f9baeb 100644 (file)
@@ -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.
index d9cb67e..cc8b893 100644 (file)
@@ -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.