rpm 5.3.12
rpmio/rpmjs.h
Go to the documentation of this file.
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 */