- Notifications
You must be signed in to change notification settings - Fork 7.8k
/
Copy pathphp_test.h
105 lines (89 loc) · 3.44 KB
/
php_test.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| https://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: |
+----------------------------------------------------------------------+
*/
#ifndefPHP_TEST_H
#definePHP_TEST_H
#include"fiber.h"
externzend_module_entryzend_test_module_entry;
#definephpext_zend_test_ptr &zend_test_module_entry
#definePHP_ZEND_TEST_VERSION "0.1.0"
#ifdefZTS
#include"TSRM.h"
#endif
#if defined(ZTS) && defined(COMPILE_DL_ZEND_TEST)
ZEND_TSRMLS_CACHE_EXTERN()
#endif
ZEND_BEGIN_MODULE_GLOBALS(zend_test)
intobserver_enabled;
intobserver_show_output;
intobserver_observe_all;
intobserver_observe_includes;
intobserver_observe_functions;
intobserver_observe_declaring;
zend_array*observer_observe_function_names;
intobserver_show_return_type;
intobserver_show_return_value;
intobserver_show_init_backtrace;
intobserver_show_opcode;
char*observer_show_opcode_in_user_handler;
intobserver_nesting_depth;
intobserver_fiber_init;
intobserver_fiber_switch;
intobserver_fiber_destroy;
intobserver_execute_internal;
HashTableglobal_weakmap;
intreplace_zend_execute_ex;
intregister_passes;
boolprint_stderr_mshutdown;
zend_longlimit_copy_file_range;
intobserve_opline_in_zendmm;
zend_mm_heap*zend_orig_heap;
zend_mm_heap*zend_test_heap;
zend_test_fiber*active_fiber;
zend_longquantity_value;
zend_string*str_test;
zend_string*not_empty_str_test;
intzend_mm_custom_handlers_enabled;
// the previous heap that was found in ZendMM
zend_mm_heap*original_heap;
// the custom handlers that might have been found in the previous heap
void* (*custom_malloc)(size_tZEND_FILE_LINE_DCZEND_FILE_LINE_ORIG_DC);
void (*custom_free)(void*ZEND_FILE_LINE_DCZEND_FILE_LINE_ORIG_DC);
void* (*custom_realloc)(void*, size_tZEND_FILE_LINE_DCZEND_FILE_LINE_ORIG_DC);
size_t (*custom_gc)(void);
void (*custom_shutdown)(bool, bool);
// this is our heap that we install our custom handlers on and inject into
// ZendMM
zend_mm_heap*observed_heap;
ZEND_END_MODULE_GLOBALS(zend_test)
externZEND_DECLARE_MODULE_GLOBALS(zend_test)
#defineZT_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(zend_test, v)
structbug79096 {
uint64_ta;
uint64_tb;
};
#ifdefPHP_WIN32
# definePHP_ZEND_TEST_API __declspec(dllexport)
#elif defined(__GNUC__) &&__GNUC__ >= 4
# definePHP_ZEND_TEST_API __attribute__ ((visibility("default")))
#else
# definePHP_ZEND_TEST_API
#endif
PHP_ZEND_TEST_APIintZEND_FASTCALLbug78270(constchar*str, size_tstr_len);
PHP_ZEND_TEST_APIstructbug79096bug79096(void);
PHP_ZEND_TEST_APIvoidbug79532(off_t*array, size_telems);
externPHP_ZEND_TEST_APIint*(*bug79177_cb)(void);
PHP_ZEND_TEST_APIvoidbug79177(void);
#endif