rpm  5.4.15
rpmjs.h
Go to the documentation of this file.
1 #ifndef RPMJS_H
2 #define RPMJS_H
3 
8 #include <rpmiotypes.h>
9 #include <rpmio.h>
10 
11 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmjs_s * rpmjs;
12 
13 /*@unchecked@*/
14 extern int _rpmjs_debug;
15 
16 /*@unchecked@*/ /*@relnull@*/
17 extern rpmjs _rpmjsI;
18 
19 /*@unchecked@*/
20 extern uint32_t _rpmjs_options;
21 
22 /*@unchecked@*/
23 extern int _rpmjs_zeal;
24 
25 #if defined(_RPMJS_INTERNAL)
26 
29 enum rpmjsFlags_e {
30  RPMJS_FLAGS_NONE = 0,
31  RPMJS_FLAGS_STRICT = (1<< 0), /* JSOPTION_STRICT */
32  RPMJS_FLAGS_WERROR = (1<< 1), /* JSOPTION_WERROR */
33  RPMJS_FLAGS_VAROBJFIX = (1<< 2), /* JSOPTION_VAROBJFIX */
34  RPMJS_FLAGS_PRIVATE_IS_NSISUPPORTS = (1<< 3), /* JSOPTION_PRIVATE_IS_NSISUPPORTS */
35  RPMJS_FLAGS_COMPILE_N_GO = (1<< 4), /* JSOPTION_COMPILE_N_GO */
36  RPMJS_FLAGS_ATLINE = (1<< 5), /* JSOPTION_ATLINE */
37  RPMJS_FLAGS_XML = (1<< 6), /* JSOPTION_XML */
38  /* bit 7 unused */
39  RPMJS_FLAGS_DONT_REPORT_UNCAUGHT = (1<< 8), /* JSOPTION_DONT_REPORT_UNCAUGHT */
40  RPMJS_FLAGS_RELIMIT = (1<< 9), /* JSOPTION_RELIMIT */
41  RPMJS_FLAGS_ANONFUNFIX = (1<<10), /* JSOPTION_ANONFUNFIX */
42  RPMJS_FLAGS_JIT = (1<<11), /* JSOPTION_JIT */
43  RPMJS_FLAGS_NO_SCRIPT_RVAL = (1<<12), /* JSOPTION_NO_SCRIPT_RVAL */
44  RPMJS_FLAGS_UNROOTED_GLOBAL = (1<<13), /* JSOPTION_UNROOTED_GLOBAL */
45  /* bits 14-15 unused */
46  RPMJS_FLAGS_NOEXEC = (1<<16),
47  RPMJS_FLAGS_SKIPSHEBANG = (1<<17),
48  RPMJS_FLAGS_LOADRC = (1<<18),
49  RPMJS_FLAGS_NOUTF8 = (1<<19),
50  RPMJS_FLAGS_NOCACHE = (1<<20),
51  RPMJS_FLAGS_NOWARN = (1<<21),
52  RPMJS_FLAGS_ALLOW = (1<<22),
53  /* bits 23-30 unused */
54  RPMJS_FLAGS_GLOBAL = (1<<31),
55 };
56 
57 struct rpmjs_s {
58  struct rpmioItem_s _item;
59  uint32_t flags;
60  void * I;
61 #if defined(__LCLINT__)
62 /*@refs@*/
63  int nrefs;
64 #endif
65 };
66 
67 /*@unchecked@*/
68 struct rpmjs_s _rpmjs;
69 
70 #endif /* _RPMJS_INTERNAL */
71 
72 #ifdef __cplusplus
73 extern "C" {
74 #endif
75 
81 /*@unused@*/ /*@null@*/
82 rpmjs rpmjsUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmjs js)
83  /*@modifies js @*/;
84 #define rpmjsUnlink(_js) \
85  ((rpmjs)rpmioUnlinkPoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__))
86 
92 /*@unused@*/ /*@newref@*/ /*@null@*/
93 rpmjs rpmjsLink (/*@null@*/ rpmjs js)
94  /*@modifies js @*/;
95 #define rpmjsLink(_js) \
96  ((rpmjs)rpmioLinkPoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__))
97 
103 /*@null@*/
104 rpmjs rpmjsFree(/*@killref@*/ /*@null@*/rpmjs js)
105  /*@globals fileSystem @*/
106  /*@modifies js, fileSystem @*/;
107 #define rpmjsFree(_js) \
108  ((rpmjs)rpmioFreePoolItem((rpmioItem)(_js), __FUNCTION__, __FILE__, __LINE__))
109 
116 /*@newref@*/ /*@null@*/
117 rpmjs rpmjsNew(/*@null@*/ char ** av, uint32_t flags)
118  /*@globals fileSystem, internalState @*/
119  /*@modifies fileSystem, internalState @*/;
120 
129 rpmRC rpmjsRunFile(rpmjs js, /*@null@*/ const char * fn,
130  /*@null@*/ char *const * Iargv,
131  /*@null@*/ const char ** resultp)
132  /*@globals fileSystem, internalState @*/
133  /*@modifies js, fileSystem, internalState @*/;
134 
142 rpmRC rpmjsRun(rpmjs js, /*@null@*/ const char * str,
143  /*@null@*/ const char ** resultp)
144  /*@globals fileSystem, internalState @*/
145  /*@modifies js, *resultp, fileSystem, internalState @*/;
146 
147 #ifdef __cplusplus
148 }
149 #endif
150 
151 #endif /* RPMJS_H */
#define rpmjsLink(_js)
Definition: rpmjs.h:95
int _rpmjs_debug
Definition: rpmjs.c:74
rpmjs _rpmjsI
Definition: rpmjs.c:80
rpmRC rpmjsRunFile(rpmjs js, const char *fn, char *const *Iargv, const char **resultp)
Execute js from a file.
Definition: rpmjs.c:317
rpmjs rpmjsNew(char **av, uint32_t flags)
Create and load a js interpreter.
Definition: rpmjs.c:171
struct rpmjs_s * rpmjs
Definition: rpmjs.h:11
const char * str
Definition: bson.h:593
int _rpmjs_zeal
Definition: rpmjs.c:86
rpmRC rpmjsRun(rpmjs js, const char *str, const char **resultp)
Execute js string.
Definition: rpmjs.c:410
#define rpmjsFree(_js)
Definition: rpmjs.h:107
const char const bson int mongo_write_concern int flags
Definition: mongo.h:485
enum rpmRC_e rpmRC
RPM return codes.
#define rpmjsUnlink(_js)
Definition: rpmjs.h:84
uint32_t _rpmjs_options
Definition: rpmjs.c:83