rpm/lib/rpmtypes.h

101 lines
2.1 KiB
C

#ifndef _RPMTYPES_H
#define _RPMTYPES_H
/** \ingroup rpmtypes
* \file lib/rpmtypes.h
*
* Typedefs for RPM abstract data types.
* @todo The grouping needs love to look sane...
*/
#include <rpm/rpmints.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef const char * errmsg_t;
/** \ingroup rpmtypes
*
* RPM header and data retrieval types.
* @{
*/
typedef struct headerToken_s * Header;
typedef struct headerIterator_s * HeaderIterator;
typedef int32_t rpm_tag_t;
typedef uint32_t rpm_tagtype_t; /* unused */
typedef uint32_t rpm_count_t;
typedef void * rpm_data_t;
typedef const void * rpm_constdata_t;
typedef struct rpmtd_s * rpmtd;
typedef uint32_t rpm_color_t;
typedef uint32_t rpm_flag_t;
typedef int32_t rpm_tid_t;
/** @} */
/** \ingroup rpmtypes
*
* In-header hardcoded sizes for various POSIXy types
* @{
*/
typedef uint32_t rpm_off_t;
typedef uint32_t rpm_time_t;
typedef uint16_t rpm_mode_t;
typedef uint16_t rpm_rdev_t;
typedef uint32_t rpm_dev_t;
typedef uint32_t rpm_ino_t;
/** @} */
/** \ingroup rpmtypes
* The main types involved in transaction manipulation
* @{
*/
typedef struct rpmts_s * rpmts;
typedef struct rpmte_s * rpmte;
typedef struct rpmds_s * rpmds;
typedef struct rpmfi_s * rpmfi;
typedef struct rpmdb_s * rpmdb;
typedef struct rpmdbMatchIterator_s * rpmdbMatchIterator;
typedef struct rpmal_s * rpmal;
typedef void * rpmalKey;
typedef const void * fnpyKey;
typedef void * rpmCallbackData;
/** @} */
typedef struct rpmgi_s * rpmgi;
typedef struct rpmSpec_s * rpmSpec;
typedef struct rpmRelocation_s rpmRelocation;
/** \ingroup rpmtypes
* RPM IO file descriptor type
*/
typedef struct _FD_s * FD_t;
/** \ingroup rpmtypes
* Package read return codes.
*/
typedef enum rpmRC_e {
RPMRC_OK = 0, /*!< Generic success code */
RPMRC_NOTFOUND = 1, /*!< Generic not found code. */
RPMRC_FAIL = 2, /*!< Generic failure code. */
RPMRC_NOTTRUSTED = 3, /*!< Signature is OK, but key is not trusted. */
RPMRC_NOKEY = 4 /*!< Public key is unavailable. */
} rpmRC;
#ifdef __cplusplus
}
#endif
/* XXX included late as rpmtag.h depends on our definitions here... */
#include <rpm/rpmtag.h>
#endif /* _RPMTYPES_H */