rpm  5.4.10
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 */