1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef PHP_GMP_H
20 #define PHP_GMP_H
21
22 #if HAVE_GMP
23
24 #include <gmp.h>
25
26 extern zend_module_entry gmp_module_entry;
27 #define phpext_gmp_ptr &gmp_module_entry
28
29 #include "php_version.h"
30 #define PHP_GMP_VERSION PHP_VERSION
31
32 ZEND_MODULE_STARTUP_D(gmp);
33 ZEND_MODULE_DEACTIVATE_D(gmp);
34 ZEND_MODULE_INFO_D(gmp);
35
36 ZEND_FUNCTION(gmp_init);
37 ZEND_FUNCTION(gmp_import);
38 ZEND_FUNCTION(gmp_export);
39 ZEND_FUNCTION(gmp_intval);
40 ZEND_FUNCTION(gmp_strval);
41 ZEND_FUNCTION(gmp_add);
42 ZEND_FUNCTION(gmp_sub);
43 ZEND_FUNCTION(gmp_mul);
44 ZEND_FUNCTION(gmp_div_qr);
45 ZEND_FUNCTION(gmp_div_q);
46 ZEND_FUNCTION(gmp_div_r);
47 ZEND_FUNCTION(gmp_mod);
48 ZEND_FUNCTION(gmp_divexact);
49 ZEND_FUNCTION(gmp_neg);
50 ZEND_FUNCTION(gmp_abs);
51 ZEND_FUNCTION(gmp_fact);
52 ZEND_FUNCTION(gmp_sqrt);
53 ZEND_FUNCTION(gmp_sqrtrem);
54 ZEND_FUNCTION(gmp_root);
55 ZEND_FUNCTION(gmp_rootrem);
56 ZEND_FUNCTION(gmp_pow);
57 ZEND_FUNCTION(gmp_powm);
58 ZEND_FUNCTION(gmp_perfect_square);
59 ZEND_FUNCTION(gmp_prob_prime);
60 ZEND_FUNCTION(gmp_gcd);
61 ZEND_FUNCTION(gmp_gcdext);
62 ZEND_FUNCTION(gmp_invert);
63 ZEND_FUNCTION(gmp_jacobi);
64 ZEND_FUNCTION(gmp_legendre);
65 ZEND_FUNCTION(gmp_cmp);
66 ZEND_FUNCTION(gmp_sign);
67 ZEND_FUNCTION(gmp_and);
68 ZEND_FUNCTION(gmp_or);
69 ZEND_FUNCTION(gmp_com);
70 ZEND_FUNCTION(gmp_xor);
71 ZEND_FUNCTION(gmp_random);
72 ZEND_FUNCTION(gmp_random_seed);
73 ZEND_FUNCTION(gmp_random_bits);
74 ZEND_FUNCTION(gmp_random_range);
75 ZEND_FUNCTION(gmp_setbit);
76 ZEND_FUNCTION(gmp_clrbit);
77 ZEND_FUNCTION(gmp_scan0);
78 ZEND_FUNCTION(gmp_scan1);
79 ZEND_FUNCTION(gmp_testbit);
80 ZEND_FUNCTION(gmp_popcount);
81 ZEND_FUNCTION(gmp_hamdist);
82 ZEND_FUNCTION(gmp_nextprime);
83
84
85 #ifdef PHP_WIN32
86 typedef zend_long gmp_long;
87 typedef zend_ulong gmp_ulong;
88 #else
89 typedef long gmp_long;
90 typedef unsigned long gmp_ulong;
91 #endif
92
93 ZEND_BEGIN_MODULE_GLOBALS(gmp)
94 zend_bool rand_initialized;
95 gmp_randstate_t rand_state;
96 ZEND_END_MODULE_GLOBALS(gmp)
97
98 #define GMPG(v) ZEND_MODULE_GLOBALS_ACCESSOR(gmp, v)
99
100 #if defined(ZTS) && defined(COMPILE_DL_GMP)
101 ZEND_TSRMLS_CACHE_EXTERN()
102 #endif
103
104 #else
105
106 #define phpext_gmp_ptr NULL
107
108 #endif
109
110 #endif
111
112
113
114
115
116
117
118