rpm 5.2.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

rpmio/rpmiotypes.h
Go to the documentation of this file.

    00001 #ifndef _H_RPMIOTYPES_
    00002 #define _H_RPMIOTYPES_
    00003
    00011 typedef enum rpmRC_e {
    00012     RPMRC_OK            = 0,
    00013     RPMRC_NOTFOUND      = 1,
    00014     RPMRC_FAIL          = 2,
    00015     RPMRC_NOTTRUSTED    = 3,
    00016     RPMRC_NOKEY         = 4
    00017 } rpmRC;
    00018
    00022 typedef /*@unsignedintegraltype@*/      unsigned char           rpmuint8_t;
    00023 typedef /*@unsignedintegraltype@*/      unsigned short          rpmuint16_t;
    00024 typedef /*@unsignedintegraltype@*/      unsigned int            rpmuint32_t;
    00025 typedef /*@unsignedintegraltype@*/      unsigned long long      rpmuint64_t;
    00026
    00029 typedef /*@signedintegraltype@*/        int                     rpmint32_t;
    00030
    00033 typedef /*@refcounted@*/ struct rpmioItem_s * rpmioItem;
    00034 struct rpmioItem_s {
    00035 /*@null@*/
    00036     void *use;
    00037 /*@kept@*/ /*@null@*/
    00038     void *pool;
    00039 #if defined(__LCLINT__)
    00040 /*@refs@*/
    00041     int nrefs;
    00042 #endif
    00043 };
    00044
    00047 typedef struct rpmioPool_s * rpmioPool;
    00048
    00051 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmiob_s * rpmiob;
    00052
    00055 /*@unchecked@*/
    00056 extern size_t _rpmiob_chunk;
    00057
    00060 typedef /*@abstract@*/ struct DIGEST_CTX_s * DIGEST_CTX;
    00061
    00064 typedef /*@abstract@*/ struct pgpPkt_s * pgpPkt;
    00065
    00068 typedef /*@abstract@*/ /*@refcounted@*/ struct pgpDig_s * pgpDig;
    00069
    00072 typedef /*@abstract@*/ struct pgpDigParams_s * pgpDigParams;
    00073
    00076 typedef rpmuint8_t pgpKeyID_t[8];
    00077
    00080 typedef rpmuint8_t pgpTime_t[4];
    00081
    00085 typedef enum pgpVSFlags_e {
    00086     RPMVSF_DEFAULT      = 0,
    00087     RPMVSF_NOHDRCHK     = (1 <<  0),
    00088     RPMVSF_NEEDPAYLOAD  = (1 <<  1),
    00089     /* bit(s) 2-7 unused */
    00090     RPMVSF_NOSHA1HEADER = (1 <<  8),
    00091     RPMVSF_NOMD5HEADER  = (1 <<  9),    /* unimplemented */
    00092     RPMVSF_NODSAHEADER  = (1 << 10),
    00093     RPMVSF_NORSAHEADER  = (1 << 11),
    00094     /* bit(s) 12-15 unused */
    00095     RPMVSF_NOSHA1       = (1 << 16),    /* unimplemented */
    00096     RPMVSF_NOMD5        = (1 << 17),
    00097     RPMVSF_NODSA        = (1 << 18),
    00098     RPMVSF_NORSA        = (1 << 19)
    00099     /* bit(s) 20-31 unused */
    00100 } pgpVSFlags;
    00101
    00102 #define _RPMVSF_NODIGESTS       \
    00103   ( RPMVSF_NOSHA1HEADER |       \
    00104     RPMVSF_NOMD5HEADER |        \
    00105     RPMVSF_NOSHA1 |             \
    00106     RPMVSF_NOMD5 )
    00107
    00108 #define _RPMVSF_NOSIGNATURES    \
    00109   ( RPMVSF_NODSAHEADER |        \
    00110     RPMVSF_NORSAHEADER |        \
    00111     RPMVSF_NODSA |              \
    00112     RPMVSF_NORSA )
    00113
    00114 #define _RPMVSF_NOHEADER        \
    00115   ( RPMVSF_NOSHA1HEADER |       \
    00116     RPMVSF_NOMD5HEADER |        \
    00117     RPMVSF_NODSAHEADER |        \
    00118     RPMVSF_NORSAHEADER )
    00119
    00120 #define _RPMVSF_NOPAYLOAD       \
    00121   ( RPMVSF_NOSHA1 |             \
    00122     RPMVSF_NOMD5 |              \
    00123     RPMVSF_NODSA |              \
    00124     RPMVSF_NORSA )
    00125
    00126 /*@-redef@*/ /* LCL: ??? */
    00127 typedef /*@abstract@*/ const void * fnpyKey;
    00128 /*@=redef@*/
    00129
    00133 typedef enum rpmCallbackType_e {
    00134     RPMCALLBACK_UNKNOWN         = 0,
    00135     RPMCALLBACK_INST_PROGRESS   = (1 <<  0),
    00136     RPMCALLBACK_INST_START      = (1 <<  1),
    00137     RPMCALLBACK_INST_OPEN_FILE  = (1 <<  2),
    00138     RPMCALLBACK_INST_CLOSE_FILE = (1 <<  3),
    00139     RPMCALLBACK_TRANS_PROGRESS  = (1 <<  4),
    00140     RPMCALLBACK_TRANS_START     = (1 <<  5),
    00141     RPMCALLBACK_TRANS_STOP      = (1 <<  6),
    00142     RPMCALLBACK_UNINST_PROGRESS = (1 <<  7),
    00143     RPMCALLBACK_UNINST_START    = (1 <<  8),
    00144     RPMCALLBACK_UNINST_STOP     = (1 <<  9),
    00145     RPMCALLBACK_REPACKAGE_PROGRESS = (1 << 10),
    00146     RPMCALLBACK_REPACKAGE_START = (1 << 11),
    00147     RPMCALLBACK_REPACKAGE_STOP  = (1 << 12),
    00148     RPMCALLBACK_UNPACK_ERROR    = (1 << 13),
    00149     RPMCALLBACK_CPIO_ERROR      = (1 << 14),
    00150     RPMCALLBACK_SCRIPT_ERROR    = (1 << 15)
    00151 } rpmCallbackType;
    00152
    00155 typedef void * rpmCallbackData;
    00156
    00177 typedef enum pgpHashAlgo_e {
    00178     PGPHASHALGO_ERROR           =  -1,
    00179     PGPHASHALGO_NONE            =  0,
    00180     PGPHASHALGO_MD5             =  1,
    00181     PGPHASHALGO_SHA1            =  2,
    00182     PGPHASHALGO_RIPEMD160       =  3,
    00183     PGPHASHALGO_MD2             =  5,
    00184     PGPHASHALGO_TIGER192        =  6,
    00185     PGPHASHALGO_HAVAL_5_160     =  7,
    00186     PGPHASHALGO_SHA256          =  8,
    00187     PGPHASHALGO_SHA384          =  9,
    00188     PGPHASHALGO_SHA512          = 10,
    00189     PGPHASHALGO_SHA224          = 11,
    00191     PGPHASHALGO_MD4             = 104,
    00192     PGPHASHALGO_RIPEMD128       = 105,
    00193     PGPHASHALGO_CRC32           = 106,
    00194     PGPHASHALGO_ADLER32         = 107,
    00195     PGPHASHALGO_CRC64           = 108,
    00196     PGPHASHALGO_JLU32           = 109,
    00198     PGPHASHALGO_RIPEMD256       = 111,
    00199     PGPHASHALGO_RIPEMD320       = 112,
    00200     PGPHASHALGO_SALSA10         = 113,
    00201     PGPHASHALGO_SALSA20         = 114,
    00203 } pgpHashAlgo;
    00204
    00208 typedef enum rpmDigestFlags_e {
    00209     RPMDIGEST_NONE      = 0
    00210 } rpmDigestFlags;
    00211
    00212
    00213 #if defined(_RPMIOB_INTERNAL)
    00214
    00216 struct rpmiob_s{
    00217     struct rpmioItem_s _item;
    00218     rpmuint8_t * b;
    00219     size_t blen;
    00220     size_t allocated;
    00221 #if defined(__LCLINT__)
    00222 /*@refs@*/
    00223     int nrefs;
    00224 #endif
    00225 };
    00226 #endif
    00227
    00228 #ifdef __cplusplus
    00229 extern "C" {
    00230 #endif
    00231
    00237 pgpHashAlgo rpmDigestAlgo(DIGEST_CTX ctx)
    00238         /*@*/;
    00239
    00245 /*@observer@*/
    00246 const char * rpmDigestName(DIGEST_CTX ctx)
    00247         /*@*/;
    00248
    00255 /*@observer@*/ /*@null@*/
    00256 const char * rpmDigestASN1(DIGEST_CTX ctx)
    00257         /*@*/;
    00258
    00264 /*@only@*/
    00265 DIGEST_CTX rpmDigestDup(DIGEST_CTX octx)
    00266         /*@*/;
    00267
    00275 /*@only@*/ /*@null@*/
    00276 DIGEST_CTX rpmDigestInit(pgpHashAlgo hashalgo, rpmDigestFlags flags)
    00277         /*@*/;
    00278
    00286 int rpmDigestUpdate(/*@null@*/ DIGEST_CTX ctx, const void * data, size_t len)
    00287         /*@modifies ctx @*/;
    00288
    00300 int rpmDigestFinal(/*@only@*/ /*@null@*/ DIGEST_CTX ctx,
    00301         /*@null@*/ /*@out@*/ void * datap,
    00302         /*@null@*/ /*@out@*/ size_t * lenp, int asAscii)
    00303                 /*@modifies *datap, *lenp @*/;
    00304
    00307 typedef void * (*rpmCallbackFunction)
    00308                 (/*@null@*/ const void * h,
    00309                 const rpmCallbackType what,
    00310                 const rpmuint64_t amount,
    00311                 const rpmuint64_t total,
    00312                 /*@null@*/ fnpyKey key,
    00313                 /*@null@*/ rpmCallbackData data)
    00314         /*@globals internalState@*/
    00315         /*@modifies internalState@*/;
    00316
    00317 #if !defined(SWIG)
    00318
    00323 #if defined(WITH_DMALLOC)
    00324 #define _free(p) ((p) != NULL ? free((void *)(p)) : (void)0, NULL)
    00325 #else
    00326 /*@unused@*/ static inline /*@null@*/
    00327 void * _free(/*@only@*/ /*@null@*/ /*@out@*/ const void * p)
    00328         /*@modifies p @*/
    00329 {
    00330     if (p != NULL)      free((void *)p);
    00331     return NULL;
    00332 }
    00333 #endif
    00334 #endif
    00335
    00336 /*@unused@*/ static inline int xislower(int c) /*@*/ {
    00337     return (c >= (int)'a' && c <= (int)'z');
    00338 }
    00339 /*@unused@*/ static inline int xisupper(int c) /*@*/ {
    00340     return (c >= (int)'A' && c <= (int)'Z');
    00341 }
    00342 /*@unused@*/ static inline int xisalpha(int c) /*@*/ {
    00343     return (xislower(c) || xisupper(c));
    00344 }
    00345 /*@unused@*/ static inline int xisdigit(int c) /*@*/ {
    00346     return (c >= (int)'0' && c <= (int)'9');
    00347 }
    00348 /*@unused@*/ static inline int xisalnum(int c) /*@*/ {
    00349     return (xisalpha(c) || xisdigit(c));
    00350 }
    00351 /*@unused@*/ static inline int xisblank(int c) /*@*/ {
    00352     return (c == (int)' ' || c == (int)'\t');
    00353 }
    00354 /*@unused@*/ static inline int xisspace(int c) /*@*/ {
    00355     return (xisblank(c) || c == (int)'\n' || c == (int)'\r' || c == (int)'\f' || c == (int)'\v');
    00356 }
    00357 /*@unused@*/ static inline int xiscntrl(int c) /*@*/ {
    00358     return (c < (int)' ');
    00359 }
    00360 /*@unused@*/ static inline int xisascii(int c) /*@*/ {
    00361     return ((c & 0x80) != 0x80);
    00362 }
    00363 /*@unused@*/ static inline int xisprint(int c) /*@*/ {
    00364     return (c >= (int)' ' && xisascii(c));
    00365 }
    00366 /*@unused@*/ static inline int xisgraph(int c) /*@*/ {
    00367     return (c > (int)' ' && xisascii(c));
    00368 }
    00369 /*@unused@*/ static inline int xispunct(int c) /*@*/ {
    00370     return (xisgraph(c) && !xisalnum(c));
    00371 }
    00372
    00373 /*@unused@*/ static inline int xtolower(int c) /*@*/ {
    00374     return ((xisupper(c)) ? (c | ('a' - 'A')) : c);
    00375 }
    00376 /*@unused@*/ static inline int xtoupper(int c) /*@*/ {
    00377     return ((xislower(c)) ? (c & ~('a' - 'A')) : c);
    00378 }
    00379
    00383 int xstrcasecmp(const char * s1, const char * s2)               /*@*/;
    00384
    00388 int xstrncasecmp(const char *s1, const char * s2, size_t n)     /*@*/;
    00389
    00393 /*@only@*/ /*@null@*/
    00394 const char * xstrtolocale(/*@only@*/ const char *str)
    00395         /*@modifies *str @*/;
    00396
    00402 /*@unused@*/ /*@null@*/
    00403 rpmiob rpmiobUnlink (/*@killref@*/ /*@null@*/ rpmiob iob)
    00404         /*@globals fileSystem @*/
    00405         /*@modifies iob, fileSystem @*/;
    00406 #define rpmiobUnlink(_iob)      \
    00407     ((rpmiob)rpmioUnlinkPoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__))
    00408
    00414 /*@unused@*/ /*@newref@*/ /*@null@*/
    00415 rpmiob rpmiobLink (/*@null@*/ rpmiob iob)
    00416         /*@globals fileSystem @*/
    00417         /*@modifies iob, fileSystem @*/;
    00418 #define rpmiobLink(_iob)        \
    00419     ((rpmiob)rpmioLinkPoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__))
    00420
    00426 /*@null@*/
    00427 rpmiob rpmiobFree( /*@killref@*/ rpmiob iob)
    00428         /*@globals fileSystem @*/
    00429         /*@modifies iob, fileSystem @*/;
    00430 #define rpmiobFree(_iob)        \
    00431     ((rpmiob)rpmioFreePoolItem((rpmioItem)(_iob), __FUNCTION__, __FILE__, __LINE__))
    00432
    00438 /*@newref@*/ /*@null@*/
    00439 rpmiob rpmiobNew(size_t len)
    00440         /*@globals fileSystem @*/
    00441         /*@modifies fileSystem @*/;
    00442
    00448 rpmiob rpmiobEmpty(/*@returned@*/ rpmiob iob)
    00449         /*@modifies iob @*/;
    00450
    00456 rpmiob rpmiobRTrim(/*@returned@*/ rpmiob iob)
    00457         /*@modifies iob @*/;
    00458
    00466 rpmiob rpmiobAppend(/*@returned@*/ rpmiob iob, const char * s, size_t nl)
    00467         /*@modifies iob @*/;
    00468
    00474 rpmuint8_t * rpmiobBuf(rpmiob iob)
    00475         /*@*/;
    00476
    00482 char * rpmiobStr(rpmiob iob)
    00483         /*@*/;
    00484
    00490 size_t rpmiobLen(rpmiob iob)
    00491         /*@*/;
    00492
    00493 #if defined(_RPMIOB_INTERNAL)
    00494
    00500 int rpmiobSlurp(const char * fn, rpmiob * iobp)
    00501         /*@globals h_errno, fileSystem, internalState @*/
    00502         /*@modifies *iobp, fileSystem, internalState @*/;
    00503 #endif
    00504
    00505 #ifdef __cplusplus
    00506 }
    00507 #endif
    00508
    00509 #endif /* _H_RPMIOTYPES_ */