Annotation of embedaddon/php/Zend/zend_globals.h, revision 1.1

1.1     ! misho       1: /*
        !             2:    +----------------------------------------------------------------------+
        !             3:    | Zend Engine                                                          |
        !             4:    +----------------------------------------------------------------------+
        !             5:    | Copyright (c) 1998-2012 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: zend_globals.h 321634 2012-01-01 13:15:04Z felipe $ */
        !            21: 
        !            22: #ifndef ZEND_GLOBALS_H
        !            23: #define ZEND_GLOBALS_H
        !            24: 
        !            25: 
        !            26: #include <setjmp.h>
        !            27: 
        !            28: #include "zend_globals_macros.h"
        !            29: 
        !            30: #include "zend_stack.h"
        !            31: #include "zend_ptr_stack.h"
        !            32: #include "zend_hash.h"
        !            33: #include "zend_llist.h"
        !            34: #include "zend_objects.h"
        !            35: #include "zend_objects_API.h"
        !            36: #include "zend_modules.h"
        !            37: 
        !            38: #ifdef ZEND_MULTIBYTE
        !            39: #include "zend_multibyte.h"
        !            40: #endif /* ZEND_MULTIBYTE */
        !            41: 
        !            42: /* Define ZTS if you want a thread-safe Zend */
        !            43: /*#undef ZTS*/
        !            44: 
        !            45: #ifdef ZTS
        !            46: 
        !            47: BEGIN_EXTERN_C()
        !            48: ZEND_API extern int compiler_globals_id;
        !            49: ZEND_API extern int executor_globals_id;
        !            50: END_EXTERN_C()
        !            51: 
        !            52: #endif
        !            53: 
        !            54: #define SYMTABLE_CACHE_SIZE 32
        !            55: 
        !            56: 
        !            57: #include "zend_compile.h"
        !            58: 
        !            59: /* excpt.h on Digital Unix 4.0 defines function_table */
        !            60: #undef function_table
        !            61: 
        !            62: #define ZEND_EARLY_BINDING_COMPILE_TIME 0
        !            63: #define ZEND_EARLY_BINDING_DELAYED      1
        !            64: #define ZEND_EARLY_BINDING_DELAYED_ALL  2
        !            65: 
        !            66: typedef struct _zend_declarables {
        !            67:        zval ticks;
        !            68: } zend_declarables;
        !            69: 
        !            70: typedef struct _zend_vm_stack *zend_vm_stack;
        !            71: 
        !            72: struct _zend_compiler_globals {
        !            73:        zend_stack bp_stack;
        !            74:        zend_stack switch_cond_stack;
        !            75:        zend_stack foreach_copy_stack;
        !            76:        zend_stack object_stack;
        !            77:        zend_stack declare_stack;
        !            78: 
        !            79:        zend_class_entry *active_class_entry;
        !            80: 
        !            81:        /* variables for list() compilation */
        !            82:        zend_llist list_llist;
        !            83:        zend_llist dimension_llist;
        !            84:        zend_stack list_stack;
        !            85: 
        !            86:        zend_stack function_call_stack;
        !            87: 
        !            88:        char *compiled_filename;
        !            89: 
        !            90:        int zend_lineno;
        !            91: 
        !            92:        char *heredoc;
        !            93:        int heredoc_len;
        !            94: 
        !            95:        zend_op_array *active_op_array;
        !            96: 
        !            97:        HashTable *function_table;      /* function symbol table */
        !            98:        HashTable *class_table;         /* class table */
        !            99: 
        !           100:        HashTable filenames_table;
        !           101: 
        !           102:        HashTable *auto_globals;
        !           103: 
        !           104:        zend_bool in_compilation;
        !           105:        zend_bool short_tags;
        !           106:        zend_bool asp_tags;
        !           107:        zend_bool allow_call_time_pass_reference;
        !           108: 
        !           109:        zend_declarables declarables;
        !           110: 
        !           111:        zend_bool unclean_shutdown;
        !           112: 
        !           113:        zend_bool ini_parser_unbuffered_errors;
        !           114: 
        !           115:        zend_llist open_files;
        !           116: 
        !           117:        long catch_begin;
        !           118: 
        !           119:        struct _zend_ini_parser_param *ini_parser_param;
        !           120: 
        !           121:        int interactive;
        !           122: 
        !           123:        zend_uint start_lineno;
        !           124:        zend_bool increment_lineno;
        !           125: 
        !           126:        znode implementing_class;
        !           127: 
        !           128:        zend_uint access_type;
        !           129: 
        !           130:        char *doc_comment;
        !           131:        zend_uint doc_comment_len;
        !           132: 
        !           133:        zend_uint compiler_options; /* set of ZEND_COMPILE_* constants */
        !           134: 
        !           135:        zval      *current_namespace;
        !           136:        HashTable *current_import;
        !           137:        zend_bool  in_namespace;
        !           138:        zend_bool  has_bracketed_namespaces;
        !           139: 
        !           140:        HashTable *labels;
        !           141:        zend_stack labels_stack;
        !           142: 
        !           143: #ifdef ZEND_MULTIBYTE
        !           144:        zend_encoding **script_encoding_list;
        !           145:        size_t script_encoding_list_size;
        !           146:        zend_bool detect_unicode;
        !           147:        zend_bool encoding_declared;
        !           148: 
        !           149:        zend_encoding *internal_encoding;
        !           150: 
        !           151:        /* multibyte utility functions */
        !           152:        zend_encoding_detector encoding_detector;
        !           153:        zend_encoding_converter encoding_converter;
        !           154:        zend_encoding_oddlen encoding_oddlen;
        !           155: #endif /* ZEND_MULTIBYTE */
        !           156: 
        !           157: #ifdef ZTS
        !           158:        HashTable **static_members;
        !           159:        int last_static_member;
        !           160: #endif
        !           161: };
        !           162: 
        !           163: 
        !           164: struct _zend_executor_globals {
        !           165:        zval **return_value_ptr_ptr;
        !           166: 
        !           167:        zval uninitialized_zval;
        !           168:        zval *uninitialized_zval_ptr;
        !           169: 
        !           170:        zval error_zval;
        !           171:        zval *error_zval_ptr;
        !           172: 
        !           173:        zend_ptr_stack arg_types_stack;
        !           174: 
        !           175:        /* symbol table cache */
        !           176:        HashTable *symtable_cache[SYMTABLE_CACHE_SIZE];
        !           177:        HashTable **symtable_cache_limit;
        !           178:        HashTable **symtable_cache_ptr;
        !           179: 
        !           180:        zend_op **opline_ptr;
        !           181: 
        !           182:        HashTable *active_symbol_table;
        !           183:        HashTable symbol_table;         /* main symbol table */
        !           184: 
        !           185:        HashTable included_files;       /* files already included */
        !           186: 
        !           187:        JMP_BUF *bailout;
        !           188: 
        !           189:        int error_reporting;
        !           190:        int orig_error_reporting;
        !           191:        int exit_status;
        !           192: 
        !           193:        zend_op_array *active_op_array;
        !           194: 
        !           195:        HashTable *function_table;      /* function symbol table */
        !           196:        HashTable *class_table;         /* class table */
        !           197:        HashTable *zend_constants;      /* constants table */
        !           198: 
        !           199:        zend_class_entry *scope;
        !           200:        zend_class_entry *called_scope; /* Scope of the calling class */
        !           201: 
        !           202:        zval *This;
        !           203: 
        !           204:        long precision;
        !           205: 
        !           206:        int ticks_count;
        !           207: 
        !           208:        zend_bool in_execution;
        !           209:        HashTable *in_autoload;
        !           210:        zend_function *autoload_func;
        !           211:        zend_bool full_tables_cleanup;
        !           212: 
        !           213:        /* for extended information support */
        !           214:        zend_bool no_extensions;
        !           215: 
        !           216: #ifdef ZEND_WIN32
        !           217:        zend_bool timed_out;
        !           218:        OSVERSIONINFOEX windows_version_info;
        !           219: #endif
        !           220: 
        !           221:        HashTable regular_list;
        !           222:        HashTable persistent_list;
        !           223: 
        !           224:        zend_vm_stack argument_stack;
        !           225: 
        !           226:        int user_error_handler_error_reporting;
        !           227:        zval *user_error_handler;
        !           228:        zval *user_exception_handler;
        !           229:        zend_stack user_error_handlers_error_reporting;
        !           230:        zend_ptr_stack user_error_handlers;
        !           231:        zend_ptr_stack user_exception_handlers;
        !           232: 
        !           233:        zend_error_handling_t  error_handling;
        !           234:        zend_class_entry      *exception_class;
        !           235: 
        !           236:        /* timeout support */
        !           237:        int timeout_seconds;
        !           238: 
        !           239:        int lambda_count;
        !           240: 
        !           241:        HashTable *ini_directives;
        !           242:        HashTable *modified_ini_directives;
        !           243: 
        !           244:        zend_objects_store objects_store;
        !           245:        zval *exception, *prev_exception;
        !           246:        zend_op *opline_before_exception;
        !           247:        zend_op exception_op[3];
        !           248: 
        !           249:        struct _zend_execute_data *current_execute_data;
        !           250: 
        !           251:        struct _zend_module_entry *current_module;
        !           252: 
        !           253:        zend_property_info std_property_info;
        !           254: 
        !           255:        zend_bool active; 
        !           256: 
        !           257:        void *saved_fpu_cw;
        !           258: 
        !           259:        void *reserved[ZEND_MAX_RESERVED_RESOURCES];
        !           260: };
        !           261: 
        !           262: struct _zend_ini_scanner_globals {
        !           263:        zend_file_handle *yy_in;
        !           264:        zend_file_handle *yy_out;
        !           265: 
        !           266:        unsigned int yy_leng;
        !           267:        unsigned char *yy_start;
        !           268:        unsigned char *yy_text;
        !           269:        unsigned char *yy_cursor;
        !           270:        unsigned char *yy_marker;
        !           271:        unsigned char *yy_limit;
        !           272:        int yy_state;
        !           273:        zend_stack state_stack;
        !           274: 
        !           275:        char *filename;
        !           276:        int lineno;
        !           277: 
        !           278:        /* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW */
        !           279:        int scanner_mode;
        !           280: };
        !           281: 
        !           282: struct _zend_php_scanner_globals {
        !           283:        zend_file_handle *yy_in;
        !           284:        zend_file_handle *yy_out;
        !           285: 
        !           286:        unsigned int yy_leng;
        !           287:        unsigned char *yy_start;
        !           288:        unsigned char *yy_text;
        !           289:        unsigned char *yy_cursor;
        !           290:        unsigned char *yy_marker;
        !           291:        unsigned char *yy_limit;
        !           292:        int yy_state;
        !           293:        zend_stack state_stack;
        !           294:        
        !           295: #ifdef ZEND_MULTIBYTE
        !           296:        /* original (unfiltered) script */
        !           297:        unsigned char *script_org;
        !           298:        size_t script_org_size;
        !           299: 
        !           300:        /* filtered script */
        !           301:        unsigned char *script_filtered;
        !           302:        size_t script_filtered_size;
        !           303: 
        !           304:        /* input/ouput filters */
        !           305:        zend_encoding_filter input_filter;
        !           306:        zend_encoding_filter output_filter;
        !           307:        zend_encoding *script_encoding;
        !           308:        zend_encoding *internal_encoding;
        !           309: #endif /* ZEND_MULTIBYTE */
        !           310: };
        !           311: 
        !           312: #endif /* ZEND_GLOBALS_H */
        !           313: 
        !           314: /*
        !           315:  * Local variables:
        !           316:  * tab-width: 4
        !           317:  * c-basic-offset: 4
        !           318:  * indent-tabs-mode: t
        !           319:  * End:
        !           320:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>