rpm 5.3.12
|
00001 #ifndef H_RPMPS 00002 #define H_RPMPS 00003 00009 /*@-exportlocal@*/ 00010 /*@unchecked@*/ 00011 extern int _rpmps_debug; 00012 /*@=exportlocal@*/ 00013 00017 typedef /*@abstract@*/ struct rpmProblem_s * rpmProblem; 00018 00022 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmps_s * rpmps; 00023 00026 typedef /*@abstract@*/ struct rpmpsi_s * rpmpsi; 00027 00031 typedef enum rpmprobFilterFlags_e { 00032 RPMPROB_FILTER_NONE = 0, 00033 RPMPROB_FILTER_IGNOREOS = (1 << 0), 00034 RPMPROB_FILTER_IGNOREARCH = (1 << 1), 00035 RPMPROB_FILTER_REPLACEPKG = (1 << 2), 00036 RPMPROB_FILTER_FORCERELOCATE= (1 << 3), 00037 RPMPROB_FILTER_REPLACENEWFILES= (1 << 4), 00038 RPMPROB_FILTER_REPLACEOLDFILES= (1 << 5), 00039 RPMPROB_FILTER_OLDPACKAGE = (1 << 6), 00040 RPMPROB_FILTER_DISKSPACE = (1 << 7), 00041 RPMPROB_FILTER_DISKNODES = (1 << 8) 00042 } rpmprobFilterFlags; 00043 00047 typedef enum rpmProblemType_e { 00048 RPMPROB_BADARCH, 00049 RPMPROB_BADOS, 00050 RPMPROB_PKG_INSTALLED, 00051 RPMPROB_BADRELOCATE, 00052 RPMPROB_REQUIRES, 00053 RPMPROB_CONFLICT, 00054 RPMPROB_NEW_FILE_CONFLICT, 00055 RPMPROB_FILE_CONFLICT, 00056 RPMPROB_OLDPACKAGE, 00057 RPMPROB_DISKSPACE, 00058 RPMPROB_DISKNODES, 00059 RPMPROB_RDONLY, 00060 RPMPROB_BADPRETRANS, 00061 RPMPROB_BADPLATFORM, 00062 RPMPROB_NOREPACKAGE 00063 } rpmProblemType; 00064 00067 #if defined(_RPMPS_INTERNAL) 00068 struct rpmProblem_s { 00069 /*@only@*/ /*@null@*/ 00070 char * pkgNEVR; 00071 /*@only@*/ /*@null@*/ 00072 char * altNEVR; 00073 /*@exposed@*/ /*@null@*/ 00074 fnpyKey key; 00075 rpmProblemType type; 00076 int ignoreProblem; 00077 /*@only@*/ /*@null@*/ 00078 char * str1; 00079 unsigned long long ulong1; 00080 }; 00081 00084 struct rpmps_s { 00085 struct rpmioItem_s _item; 00086 int numProblems; 00087 int numProblemsAlloced; 00088 rpmProblem probs; 00089 #if defined(__LCLINT__) 00090 /*@refs@*/ 00091 int nrefs; 00092 #endif 00093 }; 00094 00097 struct rpmpsi_s { 00098 int ix; 00099 rpmps ps; 00100 }; 00101 00102 #endif 00103 00104 #ifdef __cplusplus 00105 extern "C" { 00106 #endif 00107 00113 /*@-exportlocal@*/ 00114 /*@-redecl@*/ /* LCL: is confused. */ 00115 /*@only@*/ extern const char * rpmProblemString(const rpmProblem prob) 00116 /*@*/; 00117 /*@=redecl@*/ 00118 /*@=exportlocal@*/ 00119 00126 /*@unused@*/ /*@null@*/ 00127 rpmps rpmpsUnlink (/*@killref@*/ /*@returned@*/ rpmps ps, 00128 const char * msg) 00129 /*@modifies ps @*/; 00130 #define rpmpsUnlink(_ps, _msg) \ 00131 ((rpmps)rpmioUnlinkPoolItem((rpmioItem)(_ps), _msg, __FILE__, __LINE__)) 00132 00139 /*@unused@*/ /*@newref@*/ 00140 rpmps rpmpsLink (rpmps ps, const char * msg) 00141 /*@modifies ps @*/; 00142 #define rpmpsLink(_ps, _msg) \ 00143 ((rpmps)rpmioLinkPoolItem((rpmioItem)(_ps), _msg, __FILE__, __LINE__)) 00144 00150 /*@null@*/ 00151 rpmps rpmpsFree(/*@killref@*/ /*@only@*/ /*@null@*/ rpmps ps) 00152 /*@modifies ps @*/; 00153 #define rpmpsFree(_ps) \ 00154 ((rpmps)rpmioFreePoolItem((rpmioItem)(_ps), __FUNCTION__, __FILE__, __LINE__)) 00155 00161 int rpmpsNumProblems(/*@null@*/ rpmps ps) 00162 /*@*/; 00163 00169 rpmpsi rpmpsInitIterator(rpmps ps) 00170 /*@modifies ps @*/; 00171 00177 rpmpsi rpmpsFreeIterator(/*@only@*/ rpmpsi psi) 00178 /*@modifies psi @*/; 00179 00185 int rpmpsNextIterator(rpmpsi psi) 00186 /*@modifies psi @*/; 00187 00193 /*@observer@*/ 00194 rpmProblem rpmpsProblem(rpmpsi psi) 00195 /*@*/; 00196 00201 rpmps rpmpsCreate(void) 00202 /*@*/; 00203 00209 void rpmpsPrint(/*@null@*/ FILE *fp, /*@null@*/ rpmps ps) 00210 /*@globals fileSystem @*/ 00211 /*@modifies *fp, ps, fileSystem @*/; 00212 00226 void rpmpsAppend(/*@null@*/ rpmps ps, rpmProblemType type, 00227 /*@null@*/ const char * pkgNEVR, 00228 /*@exposed@*/ /*@null@*/ fnpyKey key, 00229 /*@null@*/ const char * dn, /*@null@*/ const char * bn, 00230 /*@null@*/ const char * altNEVR, 00231 rpmuint64_t ulong1) 00232 /*@modifies ps @*/; 00233 00249 int rpmpsTrim(/*@null@*/ rpmps ps, /*@null@*/ rpmps filter) 00250 /*@modifies ps @*/; 00251 00259 /*@exposed@*/ 00260 rpmProblem rpmpsGetProblem(/*@null@*/ rpmps ps, int num) 00261 /*@*/; 00262 00269 /*@null@*/ /*@exposed@*/ 00270 char * rpmProblemGetPkgNEVR(rpmProblem prob) 00271 /*@*/; 00272 00279 /*@null@*/ /*@exposed@*/ 00280 char * rpmProblemGetAltNEVR(rpmProblem prob) 00281 /*@*/; 00282 00289 /*@null@*/ /*@exposed@*/ 00290 char * rpmProblemGetStr(rpmProblem prob) 00291 /*@*/; 00292 00298 rpmuint64_t rpmProblemGetDiskNeed(rpmProblem prob) 00299 /*@*/; 00300 00307 rpmProblemType rpmProblemGetType(rpmProblem prob) 00308 /*@*/; 00309 00316 /*@null@*/ /*@exposed@*/ 00317 fnpyKey rpmProblemKey(rpmProblem prob) 00318 /*@*/; 00319 00320 #ifdef __cplusplus 00321 } 00322 #endif 00323 00324 #endif /* H_RPMPS */