xref: /PHP-5.5/Zend/zend_globals_macros.h (revision 73c1be26)
1 /*
2    +----------------------------------------------------------------------+
3    | Zend Engine                                                          |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 1998-2015 Zend Technologies Ltd. (http://www.zend.com) |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 2.00 of the Zend license,     |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.zend.com/license/2_00.txt.                                |
11    | If you did not receive a copy of the Zend license and are unable to  |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@zend.com so we can mail you a copy immediately.              |
14    +----------------------------------------------------------------------+
15    | Authors: Andi Gutmans <andi@zend.com>                                |
16    |          Zeev Suraski <zeev@zend.com>                                |
17    +----------------------------------------------------------------------+
18 */
19 
20 /* $Id$ */
21 
22 #ifndef ZEND_GLOBALS_MACROS_H
23 #define ZEND_GLOBALS_MACROS_H
24 
25 typedef struct _zend_compiler_globals zend_compiler_globals;
26 typedef struct _zend_executor_globals zend_executor_globals;
27 typedef struct _zend_php_scanner_globals zend_php_scanner_globals;
28 typedef struct _zend_ini_scanner_globals zend_ini_scanner_globals;
29 
30 BEGIN_EXTERN_C()
31 
32 /* Compiler */
33 #ifdef ZTS
34 # define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v)
35 int zendparse(void *compiler_globals);
36 #else
37 # define CG(v) (compiler_globals.v)
38 extern ZEND_API struct _zend_compiler_globals compiler_globals;
39 int zendparse(void);
40 #endif
41 
42 
43 /* Executor */
44 #ifdef ZTS
45 # define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v)
46 #else
47 # define EG(v) (executor_globals.v)
48 extern ZEND_API zend_executor_globals executor_globals;
49 #endif
50 
51 /* Language Scanner */
52 #ifdef ZTS
53 # define LANG_SCNG(v) TSRMG(language_scanner_globals_id, zend_php_scanner_globals *, v)
54 extern ZEND_API ts_rsrc_id language_scanner_globals_id;
55 #else
56 # define LANG_SCNG(v) (language_scanner_globals.v)
57 extern ZEND_API zend_php_scanner_globals language_scanner_globals;
58 #endif
59 
60 
61 /* INI Scanner */
62 #ifdef ZTS
63 # define INI_SCNG(v) TSRMG(ini_scanner_globals_id, zend_ini_scanner_globals *, v)
64 extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
65 #else
66 # define INI_SCNG(v) (ini_scanner_globals.v)
67 extern ZEND_API zend_ini_scanner_globals ini_scanner_globals;
68 #endif
69 
70 END_EXTERN_C()
71 
72 /* For limited downwards source compatibility */
73 #define CLS_FETCH()
74 #define ELS_FETCH()
75 #define ALS_FETCH()
76 #define PLS_FETCH()
77 #define SLS_FETCH()
78 #define CLS_D
79 #define ELS_D
80 #define ALS_D
81 #define PLS_D
82 #define SLS_D
83 #define CLS_DC
84 #define ELS_DC
85 #define ALS_DC
86 #define PLS_DC
87 #define SLS_DC
88 #define CLS_C
89 #define ELS_C
90 #define ALS_C
91 #define PLS_C
92 #define SLS_C
93 #define CLS_CC
94 #define ELS_CC
95 #define ALS_CC
96 #define PLS_CC
97 #define SLS_CC
98 
99 
100 #endif /* ZEND_GLOBALS_MACROS_H */
101 
102 /*
103  * Local variables:
104  * tab-width: 4
105  * c-basic-offset: 4
106  * indent-tabs-mode: t
107  * End:
108  */
109