rpm 5.3.7
|
00001 #ifndef RPMJS_H 00002 #define RPMJS_H 00003 00008 #include <rpmiotypes.h> 00009 #include <rpmio.h> 00010 00011 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmjs_s * rpmjs; 00012 00013 /*@unchecked@*/ 00014 extern int _rpmjs_debug; 00015 00016 /*@unchecked@*/ /*@relnull@*/ 00017 extern rpmjs _rpmjsI; 00018 00019 /*@unchecked@*/ 00020 extern uint32_t _rpmjs_options; 00021 00022 /*@unchecked@*/ 00023 extern int _rpmjs_zeal; 00024 00025 #if defined(_RPMJS_INTERNAL) 00026 00029 enum rpmjsFlags_e { 00030 RPMJS_FLAGS_NONE = 0, 00031 RPMJS_FLAGS_STRICT = (1<< 0), /* JSOPTION_STRICT */ 00032 RPMJS_FLAGS_WERROR = (1<< 1), /* JSOPTION_WERROR */ 00033 RPMJS_FLAGS_VAROBJFIX = (1<< 2), /* JSOPTION_VAROBJFIX */ 00034 RPMJS_FLAGS_PRIVATE_IS_NSISUPPORTS = (1<< 3), /* JSOPTION_PRIVATE_IS_NSISUPPORTS */ 00035 RPMJS_FLAGS_COMPILE_N_GO = (1<< 4), /* JSOPTION_COMPILE_N_GO */ 00036 RPMJS_FLAGS_ATLINE = (1<< 5), /* JSOPTION_ATLINE */ 00037 RPMJS_FLAGS_XML = (1<< 6), /* JSOPTION_XML */ 00038 /* bit 7 unused */ 00039 RPMJS_FLAGS_DONT_REPORT_UNCAUGHT = (1<< 8), /* JSOPTION_DONT_REPORT_UNCAUGHT */ 00040 RPMJS_FLAGS_RELIMIT = (1<< 9), /* JSOPTION_RELIMIT */ 00041 RPMJS_FLAGS_ANONFUNFIX = (1<<10), /* JSOPTION_ANONFUNFIX */ 00042 RPMJS_FLAGS_JIT = (1<<11), /* JSOPTION_JIT */ 00043 RPMJS_FLAGS_NO_SCRIPT_RVAL = (1<<12), /* JSOPTION_NO_SCRIPT_RVAL */ 00044 RPMJS_FLAGS_UNROOTED_GLOBAL = (1<<13), /* JSOPTION_UNROOTED_GLOBAL */ 00045 /* bits 14-15 unused */ 00046 RPMJS_FLAGS_NOEXEC = (1<<16), 00047 RPMJS_FLAGS_SKIPSHEBANG = (1<<17), 00048 RPMJS_FLAGS_LOADRC = (1<<18), 00049 RPMJS_FLAGS_NOUTF8 = (1<<19), 00050 RPMJS_FLAGS_NOCACHE = (1<<20), 00051 RPMJS_FLAGS_NOWARN = (1<<21), 00052 RPMJS_FLAGS_ALLOW = (1<<22), 00053 /* bits 23-30 unused */ 00054 RPMJS_FLAGS_GLOBAL = (1<<31), 00055 }; 00056 00057 struct rpmjs_s { 00058 struct rpmioItem_s _item; 00059 uint32_t flags; 00060 void * I; 00061 #if defined(__LCLINT__) 00062 /*@refs@*/ 00063 int nrefs; 00064 #endif 00065 }; 00066 00067 /*@unchecked@*/ 00068 struct rpmjs_s _rpmjs; 00069 00070 #endif /* _RPMJS_INTERNAL */ 00071 00072 #ifdef __cplusplus 00073 extern "C" { 00074 #endif 00075 00081 /*@unused@*/ /*@null@*/ 00082 rpmjs rpmjsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmjs js) 00083 /*@modifies js @*/; 00084 #define rpmjsUnlink(_js) \ 00085 ((rpmjs)rpmioUnlinkPoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__)) 00086 00092 /*@unused@*/ /*@newref@*/ /*@null@*/ 00093 rpmjs rpmjsLink (/*@null@*/ rpmjs js) 00094 /*@modifies js @*/; 00095 #define rpmjsLink(_js) \ 00096 ((rpmjs)rpmioLinkPoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__)) 00097 00103 /*@null@*/ 00104 rpmjs rpmjsFree(/*@killref@*/ /*@null@*/rpmjs js) 00105 /*@globals fileSystem @*/ 00106 /*@modifies js, fileSystem @*/; 00107 #define rpmjsFree(_js) \ 00108 ((rpmjs)rpmioFreePoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__)) 00109 00116 /*@newref@*/ /*@null@*/ 00117 rpmjs rpmjsNew(/*@null@*/ char ** av, uint32_t flags) 00118 /*@globals fileSystem, internalState @*/ 00119 /*@modifies fileSystem, internalState @*/; 00120 00129 rpmRC rpmjsRunFile(rpmjs js, /*@null@*/ const char * fn, 00130 /*@null@*/ char *const * Iargv, 00131 /*@null@*/ const char ** resultp) 00132 /*@globals fileSystem, internalState @*/ 00133 /*@modifies js, fileSystem, internalState @*/; 00134 00142 rpmRC rpmjsRun(rpmjs js, /*@null@*/ const char * str, 00143 /*@null@*/ const char ** resultp) 00144 /*@globals fileSystem, internalState @*/ 00145 /*@modifies js, *resultp, fileSystem, internalState @*/; 00146 00147 #ifdef __cplusplus 00148 } 00149 #endif 00150 00151 #endif /* RPMJS_H */