Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/header.h File Reference

An rpm header carries all information about a package. More...

#include <stdio.h>
#include <rpmio.h>
#include <hdrinline.h>

Go to the source code of this file.

Data Structures

struct  HE_s
struct  headerSprintfExtension_s
struct  headerTagTableEntry_s
union  hRET_s
struct  HV_s

Defines

#define RPM_MIN_TYPE   0
#define RPM_MAX_TYPE   9
#define HEADER_IMAGE   61
 Header private tags. More...

#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 int int_32
typedef short int int_16
typedef char int_8
typedef unsigned int uint_32
typedef unsigned short uint_16
typedef const char* errmsg_t
typedef int_32hTAG_t
typedef int_32hTYP_t
typedef const void* hPTR_t
typedef int_32hCNT_t
typedef struct headerTokenHeader
typedef struct headerIteratorSHeaderIterator
typedef struct headerTagTableEntry_sheaderTagTableEntry
typedef char* (* headerTagFormatFunction )(int_32 type, const void *data, char *formatPrefix, int padding, int element)
typedef int (* headerTagTagFunction )(Header h, hTYP_t type, hPTR_t *data, hCNT_t count, int *freeData)
typedef struct headerSprintfExtension_sheaderSprintfExtension
typedef enum rpmTagType_e  rpmTagType
typedef enum rpmSubTagType_e  rpmSubTagType
typedef union hRET_s *  hRET_t
typedef struct HE_s *  HE_t
typedef Header (* HDRnew )(void)
typedef Header (* HDRfree )(Header h)
typedef Header (* HDRlink )(Header h)
typedef Header (* HDRunlink )(Header h)
typedef void (* HDRsort )(Header h)
typedef void (* HDRunsort )(Header h)
typedef unsigned int (* HDRsizeof )(Header h, enum hMagic magicp)
typedef void* (* HDRunload )(Header h)
typedef Header (* HDRreload )(Header h, int tag)
typedef Header (* HDRcopy )(Header h)
typedef Header (* HDRload )(void *uh)
typedef Header (* HDRcopyload )(const void *uh)
typedef Header (* HDRhdrread )(FD_t fd, enum hMagic magicp)
typedef int (* HDRhdrwrite )(FD_t fd, Header h, enum hMagic magicp)
typedef int (* HDRisentry )(Header h, int_32 tag)
typedef void* (* HDRfreetag )(Header h, const void *data, rpmTagType type)
typedef int (* HDRget )(Header h, int_32 tag, hTYP_t type, void **p, hCNT_t c)
typedef int (* HDRgetmin )(Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c)
typedef int (* HDRadd )(Header h, int_32 tag, int_32 type, const void *p, int_32 c)
typedef int (* HDRappend )(Header h, int_32 tag, int_32 type, const void *p, int_32 c)
typedef int (* HDRaddorappend )(Header h, int_32 tag, int_32 type, const void *p, int_32 c)
typedef int (* HDRaddi18n )(Header h, int_32 tag, const char *string, const char *lang)
typedef int (* HDRmodify )(Header h, int_32 tag, int_32 type, const void *p, int_32 c)
typedef int (* HDRremove )(Header h, int_32 tag)
typedef char* (* HDRhdrsprintf )(Header h, const char *fmt, const struct headerTagTableEntry_s *tags, const struct headerSprintfExtension_s *extensions, errmsg_t *errmsg)
typedef void (* HDRcopytags )(Header headerFrom, Header headerTo, hTAG_t tagstocopy)
typedef HeaderIterator (* HDRfreeiter )(HeaderIterator hi)
typedef HeaderIterator (* HDRinititer )(Header h)
typedef int (* HDRnextiter )(HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c)
typedef struct HV_sHV_t

Enumerations

enum  headerSprintfExtenstionType { HEADER_EXT_LAST = 0, HEADER_EXT_FORMAT, HEADER_EXT_MORE, HEADER_EXT_TAG }
enum  hMagic { HEADER_MAGIC_NO = 0, HEADER_MAGIC_YES = 1 }
enum  rpmTagType_e {
  RPM_NULL_TYPE = 0, RPM_CHAR_TYPE = 1, RPM_INT8_TYPE = 2, RPM_INT16_TYPE = 3,
  RPM_INT32_TYPE = 4, RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8,
  RPM_I18NSTRING_TYPE = 9#define RPM_MAX_TYPE
}
enum  rpmSubTagType_e { RPM_REGION_TYPE = -10, RPM_BIN_ARRAY_TYPE = -11, RPM_XREF_TYPE = -12 }

Functions

void* headerFreeData (const void *data, rpmTagType type)

Variables

const struct headerSprintfExtension_s headerDefaultFormats []


Detailed Description

An rpm header carries all information about a package.

A header is a collection of data elements called tags. Each tag has a data type, and includes 1 or more values.

Historical Issues
Here's a brief description of features/incompatibilities that have been added to headers and tags.

Development Issues
Here's a brief description of future features/incompatibilities that will be added to headers.

Definition in file header.h.


Define Documentation

#define HEADER_I18NTABLE   100
 

Definition at line 258 of file header.h.

#define HEADER_IMAGE   61
 

Header private tags.

Note:
General use tags should start at 1000 (RPM's tag space starts there).

Definition at line 254 of file header.h.

#define HEADER_IMMUTABLE   63
 

Definition at line 256 of file header.h.

#define HEADER_REGIONS   64
 

Definition at line 257 of file header.h.

#define HEADER_SIGBASE   256
 

Definition at line 259 of file header.h.

#define HEADER_SIGNATURES   62
 

Definition at line 255 of file header.h.

#define HEADER_TAGBASE   1000
 

Definition at line 260 of file header.h.

#define RPM_MAX_TYPE   9
 

#define RPM_MIN_TYPE   0
 


Typedef Documentation

typedef struct HE_s * HE_t
 

typedef int_32 * hCNT_t
 

Definition at line 119 of file header.h.

typedef const void * hPTR_t
 

Definition at line 118 of file header.h.

typedef union hRET_s * hRET_t
 

typedef int_32 * hTYP_t
 

Definition at line 117 of file header.h.

typedef short int int_16
 

Definition at line 102 of file header.h.

typedef int int_32
 

Definition at line 101 of file header.h.

typedef char int_8
 

Definition at line 103 of file header.h.

typedef unsigned short uint_16
 

Definition at line 106 of file header.h.

typedef unsigned int uint_32
 

Definition at line 105 of file header.h.


Generated at Tue Dec 23 04:54:13 2003 for rpm by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001