1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2017 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP 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.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Author: Stanislav Malyshev <stas@php.net> | 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 /* GMP and MPIR use different datatypes on different platforms */ 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 /* PHP_GMP_H */ 111 112 113 /* 114 * Local variables: 115 * tab-width: 4 116 * c-basic-offset: 4 117 * End: 118 */ 119