�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �% | | Zeev Suraski | +----------------------------------------------------------------------+ */ #ifndef BASIC_FUNCTIONS_H #define BASIC_FUNCTIONS_H #include #include #include "php_filestat.h" #include "zend_highlight.h" #include "url_scanner_ex.h" #if defined(_WIN32) && !defined(__clang__) #include #endif extern zend_module_entry basic_functions_module; #define basic_functions_module_ptr &basic_functions_module PHP_MINIT_FUNCTION(basic); PHP_MSHUTDOWN_FUNCTION(basic); PHP_RINIT_FUNCTION(basic); PHP_RSHUTDOWN_FUNCTION(basic); PHP_MINFO_FUNCTION(basic); ZEND_API void php_get_highlight_struct(zend_syntax_highlighter_ini *syntax_highlighter_ini); PHP_MINIT_FUNCTION(user_filters); PHP_RSHUTDOWN_FUNCTION(user_filters); PHP_RSHUTDOWN_FUNCTION(browscap); /* Left for BC (not binary safe!) */ PHPAPI int _php_error_log(int opt_err, const char *message, const char *opt, const char *headers); PHPAPI int _php_error_log_ex(int opt_err, const char *message, size_t message_len, const char *opt, const char *headers); PHPAPI int php_prefix_varname(zval *result, zend_string *prefix, const char *var_name, size_t var_name_len, bool add_underscore); typedef struct _php_basic_globals { HashTable *user_shutdown_function_names; HashTable putenv_ht; zend_string *strtok_string; zend_string *ctype_string; /* current LC_CTYPE locale (or NULL for 'C') */ bool locale_changed; /* locale was changed and has to be restored */ char *strtok_last; char strtok_table[256]; size_t strtok_len; zend_fcall_info user_compare_fci; zend_fcall_info_cache user_compare_fci_cache; zend_llist *user_tick_functions; zval active_ini_file_section; /* http_fopen_wrapper.c */ zval last_http_headers; /* pageinfo.c */ zend_long page_uid; zend_long page_gid; zend_long page_inode; time_t page_mtime; /* filestat.c && main/streams/streams.c */ zend_string *CurrentStatFile, *CurrentLStatFile; php_stream_statbuf ssb, lssb; /* syslog.c */ char *syslog_device; /* var.c */ unsigned serialize_lock; /* whether to use the locally supplied var_hash instead (__sleep/__wakeup) */ struct { struct php_serialize_data *data; unsigned level; } serialize; struct { struct php_unserialize_data *data; unsigned level; } unserialize; /* url_scanner_ex.re */ url_adapt_state_ex_t url_adapt_session_ex; HashTable url_adapt_session_hosts_ht; url_adapt_state_ex_t url_adapt_output_ex; HashTable url_adapt_output_hosts_ht; HashTable *user_filter_map; /* file.c */ #if defined(_REENTRANT) mbstate_t mblen_state; #endif int umask; zend_long unserialize_max_depth; } php_basic_globals; #ifdef ZTS #define BG(v) ZEND_TSRMG(basic_globals_id, php_basic_globals *, v) PHPAPI extern int basic_globals_id; #else #define BG(v) (basic_globals.v) PHPAPI extern php_basic_globals basic_globals; #endif PHPAPI zend_string *php_getenv(const char *str, size_t str_len); PHPAPI double php_get_nan(void); PHPAPI double php_get_inf(void); typedef struct _php_shutdown_function_entry { zend_fcall_info fci; zend_fcall_info_cache fci_cache; } php_shutdown_function_entry; PHPAPI extern bool register_user_shutdown_function(const char *function_name, size_t function_len, php_shutdown_function_entry *shutdown_function_entry); PHPAPI extern bool remove_user_shutdown_function(const char *function_name, size_t function_len); PHPAPI extern bool append_user_shutdown_function(php_shutdown_function_entry *shutdown_function_entry); PHPAPI void php_call_shutdown_functions(void); PHPAPI void php_free_shutdown_functions(void); #endif /* BASIC_FUNCTIONS_H */