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

rpmdb/rpmdb.h

Go to the documentation of this file.
00001 #ifndef H_RPMDB
00002 #define H_RPMDB
00003 /*@-bounds@*/
00004 
00010 #include <assert.h>
00011 #include "rpmlib.h"
00012 #include "db.h"
00013 
00014 /*@-exportlocal@*/
00015 /*@unchecked@*/
00016 extern int _rpmdb_debug;
00017 /*@=exportlocal@*/
00018 
00019 #ifdef  NOTYET
00020 
00023 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmdb_s * rpmdb;
00024 
00028 typedef /*@abstract@*/ struct _rpmdbMatchIterator * rpmdbMatchIterator;
00029 #endif
00030 
00034 typedef enum rpmMireMode_e {
00035     RPMMIRE_DEFAULT     = 0,    
00036     RPMMIRE_STRCMP      = 1,    
00037     RPMMIRE_REGEX       = 2,    
00038     RPMMIRE_GLOB        = 3     
00039 } rpmMireMode;
00040 
00043 typedef /*@abstract@*/ struct _dbiIndexItem * dbiIndexItem;
00044 
00048 typedef /*@abstract@*/ struct _dbiIndexSet * dbiIndexSet;
00049 
00052 typedef /*@abstract@*/ struct _dbiIndex * dbiIndex;
00053 
00054 /* this will break if sizeof(int) != 4 */
00060 struct _dbiIndexItem {
00061     unsigned int hdrNum;                
00062     unsigned int tagNum;                
00063     unsigned int fpNum;                 
00064 };
00065 
00069 struct _dbiIndexSet {
00070 /*@owned@*/ struct _dbiIndexItem * recs; 
00071     int count;                          
00072 };
00073 
00077 struct _dbiVec {
00078     int dbv_major;                      
00079     int dbv_minor;                      
00080     int dbv_patch;                      
00088     int (*open) (rpmdb rpmdb, rpmTag rpmtag, /*@out@*/ dbiIndex * dbip)
00089         /*@globals fileSystem @*/
00090         /*@modifies *dbip, fileSystem @*/;
00091 
00098     int (*close) (/*@only@*/ dbiIndex dbi, unsigned int flags)
00099         /*@globals fileSystem @*/
00100         /*@modifies dbi, fileSystem @*/;
00101 
00108     int (*sync) (dbiIndex dbi, unsigned int flags)
00109         /*@globals fileSystem @*/
00110         /*@modifies fileSystem @*/;
00111 
00120     int (*associate) (dbiIndex dbi, dbiIndex dbisecondary,
00121                 int (*callback) (DB *, const DBT *, const DBT *, DBT *),
00122                 unsigned int flags)
00123         /*@globals fileSystem @*/
00124         /*@modifies dbi, fileSystem @*/;
00125 
00134     int (*join) (dbiIndex dbi, DBC ** curslist, /*@out@*/ DBC ** dbcp,
00135                 unsigned int flags)
00136         /*@globals fileSystem @*/
00137         /*@modifies dbi, *dbcp, fileSystem @*/;
00138 
00147     int (*copen) (dbiIndex dbi, /*@null@*/ DB_TXN * txnid,
00148                         /*@out@*/ DBC ** dbcp, unsigned int dbiflags)
00149         /*@globals fileSystem @*/
00150         /*@modifies dbi, *txnid, *dbcp, fileSystem @*/;
00151 
00159     int (*cclose) (dbiIndex dbi, /*@only@*/ DBC * dbcursor, unsigned int flags)
00160         /*@globals fileSystem @*/
00161         /*@modifies dbi, *dbcursor, fileSystem @*/;
00162 
00171     int (*cdup) (dbiIndex dbi, DBC * dbcursor, /*@out@*/ DBC ** dbcp,
00172                 unsigned int flags)
00173         /*@globals fileSystem @*/
00174         /*@modifies dbi, *dbcp, fileSystem @*/;
00175 
00185     int (*cdel) (dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00186                         unsigned int flags)
00187         /*@globals fileSystem @*/
00188         /*@modifies *dbcursor, fileSystem @*/;
00189 
00199     int (*cget) (dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00200                         unsigned int flags)
00201         /*@globals fileSystem @*/
00202         /*@modifies *dbcursor, *key, *data, fileSystem @*/;
00203 
00214     int (*cpget) (dbiIndex dbi, /*@null@*/ DBC * dbcursor,
00215                 DBT * key, DBT * pkey, DBT * data, unsigned int flags)
00216         /*@globals fileSystem @*/
00217         /*@modifies *dbcursor, *key, *pkey, *data, fileSystem @*/;
00218 
00228     int (*cput) (dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00229                         unsigned int flags)
00230         /*@globals fileSystem @*/
00231         /*@modifies *dbcursor, fileSystem @*/;
00232 
00241     int (*ccount) (dbiIndex dbi, DBC * dbcursor,
00242                         /*@out@*/ unsigned int * countp,
00243                         unsigned int flags)
00244         /*@globals fileSystem @*/
00245         /*@modifies *dbcursor, fileSystem @*/;
00246 
00252     int (*byteswapped) (dbiIndex dbi)
00253         /*@globals fileSystem @*/
00254         /*@modifies fileSystem @*/;
00255 
00262     int (*stat) (dbiIndex dbi, unsigned int flags)
00263         /*@globals fileSystem @*/
00264         /*@modifies dbi, fileSystem @*/;
00265 
00266 };
00267 
00271 struct _dbiIndex {
00272 /*@null@*/
00273     const char * dbi_root;      
00274 /*@null@*/
00275     const char * dbi_home;      
00276 /*@null@*/
00277     const char * dbi_file;      
00278 /*@null@*/
00279     const char * dbi_subfile;
00280 /*@null@*/
00281     const char * dbi_tmpdir;    
00283     int dbi_ecflags;            
00284     int dbi_cflags;             
00285     int dbi_oeflags;            
00286     int dbi_eflags;             
00287     int dbi_oflags;             
00288     int dbi_tflags;             
00290     int dbi_type;               
00291     unsigned dbi_mode;          
00292     int dbi_perms;              
00293     long dbi_shmkey;            
00294     int dbi_api;                
00296     int dbi_verify_on_close;
00297     int dbi_use_dbenv;          
00298     int dbi_permit_dups;        
00299     int dbi_no_fsync;           
00300     int dbi_no_dbsync;          
00301     int dbi_lockdbfd;           
00302     int dbi_temporary;          
00303     int dbi_debug;
00304     int dbi_byteswapped;
00305 
00306 /*@null@*/
00307     char * dbi_host;
00308     unsigned long dbi_cl_timeout;
00309     unsigned long dbi_sv_timeout;
00310 
00311         /* dbenv parameters */
00312     int dbi_lorder;
00313 /*@unused@*/
00314     void (*db_errcall) (const char *db_errpfx, char *buffer)
00315         /*@globals fileSystem @*/
00316         /*@modifies fileSystem @*/;
00317 /*@unused@*/ /*@shared@*/
00318     FILE *      dbi_errfile;
00319     const char * dbi_errpfx;
00320     int dbi_verbose;
00321     int dbi_region_init;
00322     int dbi_tas_spins;
00323         /* mpool sub-system parameters */
00324     int dbi_mmapsize;   
00325     int dbi_cachesize;  
00326         /* lock sub-system parameters */
00327     unsigned int dbi_lk_max;
00328     unsigned int dbi_lk_detect;
00329 /*@unused@*/ int dbi_lk_nmodes;
00330 /*@unused@*/ unsigned char * dbi_lk_conflicts;
00331         /* log sub-system parameters */
00332     unsigned int dbi_lg_max;
00333     unsigned int dbi_lg_bsize;
00334         /* transaction sub-system parameters */
00335     unsigned int dbi_tx_max;
00336 #if 0
00337     int (*dbi_tx_recover) (DB_ENV *dbenv, DBT *log_rec,
00338                                 DB_LSN *lsnp, int redo, void *info)
00339         /*@globals fileSystem @*/
00340         /*@modifies fileSystem @*/;
00341 #endif
00342         /* dbinfo parameters */
00343     int dbi_pagesize;           
00344 /*@unused@*/ /*@null@*/
00345     void * (*dbi_malloc) (size_t nbytes)
00346         /*@*/;
00347         /* hash access parameters */
00348     unsigned int dbi_h_ffactor; 
00349     unsigned int (*dbi_h_hash_fcn) (DB *, const void *bytes,
00350                                 unsigned int length)
00351         /*@*/;
00352     unsigned int dbi_h_nelem;   
00353     unsigned int dbi_h_flags;   
00354     int (*dbi_h_dup_compare_fcn) (DB *, const DBT *, const DBT *)
00355         /*@*/;
00356         /* btree access parameters */
00357     int dbi_bt_flags;
00358     int dbi_bt_minkey;
00359     int (*dbi_bt_compare_fcn) (DB *, const DBT *, const DBT *)
00360         /*@*/;
00361     int (*dbi_bt_dup_compare_fcn) (DB *, const DBT *, const DBT *)
00362         /*@*/;
00363     size_t (*dbi_bt_prefix_fcn) (DB *, const DBT *, const DBT *)
00364         /*@*/;
00365         /* recno access parameters */
00366     int dbi_re_flags;
00367     int dbi_re_delim;
00368     unsigned int dbi_re_len;
00369     int dbi_re_pad;
00370     const char * dbi_re_source;
00371         /* queue access parameters */
00372     unsigned int dbi_q_extentsize;
00373 
00374 /*@refcounted@*/
00375     rpmdb dbi_rpmdb;            
00376     rpmTag dbi_rpmtag;          
00377     int dbi_jlen;               
00379 /*@only@*//*@null@*/
00380     DB * dbi_db;                
00381 /*@only@*//*@null@*/
00382     DB_TXN * dbi_txnid;         
00383 /*@only@*//*@null@*/
00384     void * dbi_stats;           
00386 /*@observer@*/
00387     const struct _dbiVec * dbi_vec;     
00389 };
00390 
00394 struct rpmdb_s {
00395 /*@owned@*/
00396     const char * db_root;
00397 /*@owned@*/
00398     const char * db_home;
00399     int         db_flags;
00400     int         db_mode;        
00401     int         db_perms;       
00402     int         db_api;         
00403 /*@owned@*/
00404     const char * db_errpfx;
00405     int         db_remove_env;
00406     int         db_filter_dups;
00407     int         db_chrootDone;  
00408     void (*db_errcall) (const char *db_errpfx, char *buffer)
00409         /*@*/;
00410 /*@shared@*/
00411     FILE *      db_errfile;
00412 /*@only@*/
00413     void * (*db_malloc) (size_t nbytes)
00414         /*@*/;
00415 /*@only@*/
00416     void * (*db_realloc) (/*@only@*//*@null@*/ void * ptr,
00417                                                 size_t nbytes)
00418         /*@*/;
00419     void (*db_free) (/*@only@*/ void * ptr)
00420         /*@modifies *ptr @*/;
00421 /*@only@*/ /*@null@*/
00422     unsigned char * db_bits;    
00423     int         db_nbits;       
00424     rpmdb       db_next;
00425     int         db_opens;
00426 /*@only@*/ /*@null@*/
00427     void *      db_dbenv;       
00428     int         db_ndbi;        
00429     dbiIndex * _dbi;            
00431 /*@refs@*/
00432     int nrefs;                  
00433 };
00434 
00435 /* for RPM's internal use only */
00436 
00439 enum rpmdbFlags {
00440         RPMDB_FLAG_JUSTCHECK    = (1 << 0),
00441         RPMDB_FLAG_MINIMAL      = (1 << 1),
00442 /*@-enummemuse@*/
00443         RPMDB_FLAG_CHROOT       = (1 << 2)
00444 /*@=enummemuse@*/
00445 };
00446 
00447 #ifdef __cplusplus
00448 extern "C" {
00449 #endif
00450 
00451 /*@-exportlocal@*/
00458 /*@unused@*/ /*@only@*/ /*@null@*/
00459 dbiIndex db3New(rpmdb rpmdb, rpmTag rpmtag)
00460         /*@globals rpmGlobalMacroContext @*/
00461         /*@modifies rpmGlobalMacroContext @*/;
00462 
00468 /*@null@*/
00469 dbiIndex db3Free( /*@only@*/ /*@null@*/ dbiIndex dbi)
00470         /*@*/;
00471 
00478 /*@-redecl@*/
00479 /*@exposed@*/
00480 extern const char *const prDbiOpenFlags(int dbflags, int print_dbenv_flags)
00481         /*@*/;
00482 /*@=redecl@*/
00483 
00491 /*@only@*/ /*@null@*/ dbiIndex dbiOpen(/*@null@*/ rpmdb db, rpmTag rpmtag,
00492                 unsigned int flags)
00493         /*@globals rpmGlobalMacroContext, errno @*/
00494         /*@modifies db, rpmGlobalMacroContext, errno @*/;
00495 
00496 /*@-globuse -mustmod @*/ /* FIX: vector annotations */
00505 /*@unused@*/ static inline
00506 int dbiCopen(dbiIndex dbi, /*@null@*/ DB_TXN * txnid,
00507                 /*@out@*/ DBC ** dbcp, unsigned int flags)
00508         /*@globals fileSystem @*/
00509         /*@modifies dbi, *dbcp, fileSystem @*/
00510 {
00511     return (*dbi->dbi_vec->copen) (dbi, txnid, dbcp, flags);
00512 }
00513 
00521 /*@unused@*/ static inline
00522 int dbiCclose(dbiIndex dbi, /*@only@*/ DBC * dbcursor, unsigned int flags)
00523         /*@globals fileSystem @*/
00524         /*@modifies dbi, *dbcursor, fileSystem @*/
00525 {
00526     return (*dbi->dbi_vec->cclose) (dbi, dbcursor, flags);
00527 }
00528 
00537 /*@unused@*/ static inline
00538 int dbiCdup(dbiIndex dbi, DBC * dbcursor, /*@out@*/ DBC ** dbcp,
00539                 unsigned int flags)
00540         /*@modifies dbi, *dbcp @*/
00541 {
00542     return (*dbi->dbi_vec->cdup) (dbi, dbcursor, dbcp, flags);
00543 }
00544 
00554 /*@unused@*/ static inline
00555 int dbiDel(dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00556                 unsigned int flags)
00557         /*@globals fileSystem @*/
00558         /*@modifies *dbcursor, fileSystem @*/
00559 {
00560     assert(key->data != NULL && key->size > 0);
00561     return (dbi->dbi_vec->cdel) (dbi, dbcursor, key, data, flags);
00562 }
00563 
00573 /*@unused@*/ static inline
00574 int dbiGet(dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00575                 unsigned int flags)
00576         /*@globals fileSystem @*/
00577         /*@modifies *dbcursor, *key, *data, fileSystem @*/
00578 {
00579     assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
00580     return (dbi->dbi_vec->cget) (dbi, dbcursor, key, data, flags);
00581 }
00582 
00593 /*@unused@*/ static inline
00594 int dbiPget(dbiIndex dbi, /*@null@*/ DBC * dbcursor,
00595                 DBT * key, DBT * pkey, DBT * data, unsigned int flags)
00596         /*@globals fileSystem @*/
00597         /*@modifies *dbcursor, *key, *pkey, *data, fileSystem @*/
00598 {
00599     assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
00600     return (dbi->dbi_vec->cpget) (dbi, dbcursor, key, pkey, data, flags);
00601 }
00602 
00612 /*@unused@*/ static inline
00613 int dbiPut(dbiIndex dbi, /*@null@*/ DBC * dbcursor, DBT * key, DBT * data,
00614                 unsigned int flags)
00615         /*@globals fileSystem @*/
00616         /*@modifies *dbcursor, *key, fileSystem @*/
00617 {
00618     assert(key->data != NULL && key->size > 0 && data->data != NULL && data->size > 0);
00619     return (dbi->dbi_vec->cput) (dbi, dbcursor, key, data, flags);
00620 }
00621 
00630 /*@unused@*/ static inline
00631 int dbiCount(dbiIndex dbi, DBC * dbcursor, /*@out@*/ unsigned int * countp,
00632                 unsigned int flags)
00633         /*@globals fileSystem @*/
00634         /*@modifies *dbcursor, fileSystem @*/
00635 {
00636     return (*dbi->dbi_vec->ccount) (dbi, dbcursor, countp, flags);
00637 }
00638 
00645 /*@unused@*/ static inline
00646 int dbiVerify(/*@only@*/ dbiIndex dbi, unsigned int flags)
00647         /*@globals fileSystem @*/
00648         /*@modifies dbi, fileSystem @*/
00649 {
00650     dbi->dbi_verify_on_close = 1;
00651     return (*dbi->dbi_vec->close) (dbi, flags);
00652 }
00653 
00660 /*@unused@*/ static inline
00661 int dbiClose(/*@only@*/ dbiIndex dbi, unsigned int flags)
00662         /*@globals fileSystem @*/
00663         /*@modifies dbi, fileSystem @*/
00664 {
00665     return (*dbi->dbi_vec->close) (dbi, flags);
00666 }
00667 
00674 /*@unused@*/ static inline
00675 int dbiSync (dbiIndex dbi, unsigned int flags)
00676         /*@globals fileSystem @*/
00677         /*@modifies fileSystem @*/
00678 {
00679     return (*dbi->dbi_vec->sync) (dbi, flags);
00680 }
00681 
00690 /*@unused@*/ static inline
00691 int dbiAssociate(dbiIndex dbi, dbiIndex dbisecondary,
00692                 int (*callback) (DB *, const DBT *, const DBT *, DBT *),
00693                 unsigned int flags)
00694         /*@globals fileSystem @*/
00695         /*@modifies dbi, fileSystem @*/
00696 {
00697     return (*dbi->dbi_vec->associate) (dbi, dbisecondary, callback, flags);
00698 }
00699 
00708 /*@unused@*/ static inline
00709 int dbiJoin(dbiIndex dbi, DBC ** curslist, /*@out@*/ DBC ** dbcp,
00710                 unsigned int flags)
00711         /*@globals fileSystem @*/
00712         /*@modifies dbi, *dbcp, fileSystem @*/
00713 {
00714     return (*dbi->dbi_vec->join) (dbi, curslist, dbcp, flags);
00715 }
00716 
00722 /*@unused@*/ static inline
00723 int dbiByteSwapped(dbiIndex dbi)
00724         /*@modifies dbi @*/
00725 {
00726     if (dbi->dbi_byteswapped == -1)
00727         dbi->dbi_byteswapped = (*dbi->dbi_vec->byteswapped) (dbi);
00728     return dbi->dbi_byteswapped;
00729 }
00736 /*@unused@*/ static inline
00737 int dbiStat(dbiIndex dbi, unsigned int flags)
00738         /*@modifies dbi @*/
00739 {
00740     return (*dbi->dbi_vec->stat) (dbi, flags);
00741 }
00742 /*@=globuse =mustmod @*/
00743 
00744 /*@=exportlocal@*/
00745 
00748 unsigned int rpmdbGetIteratorFileNum(rpmdbMatchIterator mi)
00749         /*@*/;
00750 
00756 /*@null@*/ dbiIndexSet dbiFreeIndexSet(/*@only@*/ /*@null@*/ dbiIndexSet set)
00757         /*@modifies set @*/;
00758 
00764 unsigned int dbiIndexSetCount(dbiIndexSet set)
00765         /*@*/;
00766 
00773 unsigned int dbiIndexRecordOffset(dbiIndexSet set, int recno)
00774         /*@*/;
00775 
00782 unsigned int dbiIndexRecordFileNumber(dbiIndexSet set, int recno)
00783         /*@*/;
00784 
00788 /*@-exportlocal@*/
00789 /*@unchecked@*/
00790 /*@only@*/ /*@null@*/ extern int * dbiTags;
00791 /*@unchecked@*/
00792 extern int dbiTagsMax;
00793 /*@=exportlocal@*/
00794 
00801 /*@unused@*/ /*@null@*/
00802 rpmdb rpmdbUnlink (/*@killref@*/ /*@only@*/ rpmdb db, const char * msg)
00803         /*@modifies db @*/;
00804 
00806 /*@-exportlocal@*/
00807 /*@null@*/
00808 rpmdb XrpmdbUnlink (/*@killref@*/ /*@only@*/ rpmdb db, const char * msg,
00809                 const char * fn, unsigned ln)
00810         /*@modifies db @*/;
00811 /*@=exportlocal@*/
00812 #define rpmdbUnlink(_db, _msg)  XrpmdbUnlink(_db, _msg, __FILE__, __LINE__)
00813 
00820 /*@unused@*/
00821 rpmdb rpmdbLink (rpmdb db, const char * msg)
00822         /*@modifies db @*/;
00823 
00825 /*@-exportlocal@*/
00826 rpmdb XrpmdbLink (rpmdb db, const char * msg,
00827                 const char * fn, unsigned ln)
00828         /*@modifies db @*/;
00829 /*@=exportlocal@*/
00830 #define rpmdbLink(_db, _msg)    XrpmdbLink(_db, _msg, __FILE__, __LINE__)
00831 
00840 int rpmdbOpen (/*@null@*/ const char * prefix, /*@null@*/ /*@out@*/ rpmdb * dbp,
00841                 int mode, int perms)
00842         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
00843         /*@modifies *dbp, rpmGlobalMacroContext, fileSystem, internalState @*/;
00844 
00851 int rpmdbInit(/*@null@*/ const char * prefix, int perms)
00852         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
00853         /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
00854 
00860 int rpmdbVerify(/*@null@*/ const char * prefix)
00861         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
00862         /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
00863 
00870 int rpmdbCloseDBI(/*@null@*/ rpmdb db, int rpmtag)
00871         /*@globals fileSystem @*/
00872         /*@modifies db, fileSystem @*/;
00873 
00879 int rpmdbClose (/*@killref@*/ /*@only@*/ /*@null@*/ rpmdb db)
00880         /*@globals fileSystem @*/
00881         /*@modifies db, fileSystem @*/;
00882 
00888 int rpmdbSync (/*@null@*/ rpmdb db)
00889         /*@globals fileSystem @*/
00890         /*@modifies fileSystem @*/;
00891 
00897 /*@-exportlocal@*/
00898 int rpmdbOpenAll (/*@null@*/ rpmdb db)
00899         /*@globals rpmGlobalMacroContext @*/
00900         /*@modifies db, rpmGlobalMacroContext @*/;
00901 /*@=exportlocal@*/
00902 
00909 int rpmdbCountPackages(/*@null@*/ rpmdb db, const char * name)
00910         /*@globals rpmGlobalMacroContext, fileSystem @*/
00911         /*@modifies db, rpmGlobalMacroContext, fileSystem @*/;
00912 
00918 unsigned int rpmdbGetIteratorOffset(/*@null@*/ rpmdbMatchIterator mi)
00919         /*@*/;
00920 
00926 int rpmdbGetIteratorCount(/*@null@*/ rpmdbMatchIterator mi)
00927         /*@*/;
00928 
00936 int rpmdbAppendIterator(/*@null@*/ rpmdbMatchIterator mi,
00937                 /*@null@*/ const int * hdrNums, int nHdrNums)
00938         /*@modifies mi @*/;
00939 
00949 int rpmdbPruneIterator(/*@null@*/ rpmdbMatchIterator mi,
00950                 /*@null@*/ int * hdrNums, int nHdrNums, int sorted)
00951         /*@modifies mi, hdrNums @*/;
00952 
00961 int rpmdbSetIteratorRE(/*@null@*/ rpmdbMatchIterator mi, rpmTag tag,
00962                 rpmMireMode mode, /*@null@*/ const char * pattern)
00963         /*@globals rpmGlobalMacroContext @*/
00964         /*@modifies mi, mode, rpmGlobalMacroContext @*/;
00965 
00973 int rpmdbSetIteratorRewrite(/*@null@*/ rpmdbMatchIterator mi, int rewrite)
00974         /*@modifies mi @*/;
00975 
00982 int rpmdbSetIteratorModified(/*@null@*/ rpmdbMatchIterator mi, int modified)
00983         /*@modifies mi @*/;
00984 
00992 int rpmdbSetHdrChk(/*@null@*/ rpmdbMatchIterator mi, /*@null@*/ rpmts ts,
00993                 /*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void * uh, size_t uc, const char ** msg))
00994         /*@modifies mi @*/;
00995 
01004 /*@only@*/ /*@null@*/
01005 rpmdbMatchIterator rpmdbInitIterator(/*@null@*/ rpmdb db, rpmTag rpmtag,
01006                         /*@null@*/ const void * keyp, size_t keylen)
01007         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01008         /*@modifies db, rpmGlobalMacroContext, fileSystem, internalState @*/;
01009 
01015 /*@null@*/
01016 Header rpmdbNextIterator(/*@null@*/ rpmdbMatchIterator mi)
01017         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01018         /*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/;
01019 
01023 /*@mayexit@*/
01024 int rpmdbCheckSignals(void)
01025         /*@globals fileSystem, internalState @*/
01026         /*@modifies fileSystem, internalState @*/;
01027 
01033 /*@null@*/
01034 rpmdbMatchIterator rpmdbFreeIterator(/*@only@*/ /*@null@*/rpmdbMatchIterator mi)
01035         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01036         /*@modifies mi, rpmGlobalMacroContext, fileSystem, internalState @*/;
01037 
01047 int rpmdbAdd(/*@null@*/ rpmdb db, int iid, Header h, /*@null@*/ rpmts ts,
01048                 /*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, const char ** msg))
01049         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01050         /*@modifies db, h, rpmGlobalMacroContext, fileSystem, internalState @*/;
01051 
01061 int rpmdbRemove(/*@null@*/ rpmdb db, /*@unused@*/ int rid, unsigned int hdrNum,
01062                 /*@null@*/ rpmts ts,
01063                 /*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, const char ** msg))
01064         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01065         /*@modifies db, rpmGlobalMacroContext, fileSystem, internalState @*/;
01066 
01074 int rpmdbRebuild(/*@null@*/ const char * prefix, /*@null@*/ rpmts ts,
01075                 /*@null@*/ rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, const char ** msg))
01076         /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
01077         /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
01078 
01082 /*@unused@*/
01083 int mergesort(void *base, size_t nmemb, size_t size,
01084                 int (*cmp) (const void *, const void *))
01085         /*@globals errno @*/
01086         /*@modifies base, errno @*/;
01087 
01088 #ifdef __cplusplus
01089 }
01090 #endif
01091 
01092 /*@=bounds@*/
01093 #endif  /* H_RPMDB */

Generated on Sun Oct 26 13:02:03 2003 for rpm by doxygen1.2.18