Include rpmtypes.h first instead of rpmtag.h everywhere
[platform/upstream/rpm.git] / lib / rpmtypes.h
1 #ifndef _RPMTYPES_H
2 #define _RPMTYPES_H
3
4 /** \ingroup rpmtypes
5  * \file lib/rpmtypes.h
6  *
7  * Typedefs for RPM abstract data types.
8  * @todo The grouping needs love to look sane...
9  */
10
11 #include <rpm/rpmints.h>
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 typedef const char *    errmsg_t;
18
19 /** \ingroup rpmtypes
20  *
21  * RPM header and data retrieval types.
22  * @{
23  */
24 typedef struct headerToken_s * Header;
25 typedef struct headerIterator_s * HeaderIterator;
26
27 typedef int32_t         rpm_tag_t;
28 typedef uint32_t        rpm_tagtype_t;          /* unused */
29 typedef uint32_t        rpm_count_t;
30
31 typedef void *          rpm_data_t;
32 typedef const void *    rpm_constdata_t;
33
34 typedef struct rpmtd_s * rpmtd;
35
36 typedef uint32_t        rpm_color_t;
37 typedef uint32_t        rpm_flag_t;
38 typedef int32_t         rpm_tid_t;
39 /** @} */
40
41 /** \ingroup rpmtypes
42  *
43  * In-header hardcoded sizes for various POSIXy types
44  * @{
45  */
46 typedef uint32_t        rpm_off_t;
47 typedef uint32_t        rpm_time_t;
48 typedef uint16_t        rpm_mode_t;
49 typedef uint16_t        rpm_rdev_t;
50 typedef uint32_t        rpm_dev_t;
51 typedef uint32_t        rpm_ino_t;
52 /** @} */
53
54 /** \ingroup rpmtypes
55  * The main types involved in transaction manipulation 
56  * @{
57  */
58 typedef struct rpmts_s * rpmts;
59 typedef struct rpmte_s * rpmte;
60 typedef struct rpmds_s * rpmds;
61 typedef struct rpmfi_s * rpmfi;
62 typedef struct rpmdb_s * rpmdb;
63 typedef struct rpmdbMatchIterator_s * rpmdbMatchIterator;
64 typedef struct rpmal_s * rpmal;
65 typedef void * rpmalKey;
66 typedef const void * fnpyKey;
67 typedef void * rpmCallbackData;
68 /** @} */
69
70 typedef struct rpmgi_s * rpmgi;
71
72 typedef struct rpmSpec_s * rpmSpec;
73
74 typedef struct rpmRelocation_s rpmRelocation;
75
76
77 /** \ingroup rpmtypes 
78  * RPM IO file descriptor type
79  */
80 typedef struct _FD_s * FD_t;
81
82 /** \ingroup rpmtypes
83  * Package read return codes.
84  */
85 typedef enum rpmRC_e {
86     RPMRC_OK            = 0,    /*!< Generic success code */
87     RPMRC_NOTFOUND      = 1,    /*!< Generic not found code. */
88     RPMRC_FAIL          = 2,    /*!< Generic failure code. */
89     RPMRC_NOTTRUSTED    = 3,    /*!< Signature is OK, but key is not trusted. */
90     RPMRC_NOKEY         = 4     /*!< Public key is unavailable. */
91 } rpmRC;
92
93 #ifdef __cplusplus
94 }
95 #endif
96
97 /* XXX included late as rpmtag.h depends on our definitions here... */
98 #include <rpm/rpmtag.h>
99
100 #endif /* _RPMTYPES_H */