diff options
Diffstat (limited to 'ext/gmp/php_gmp_int.h')
-rw-r--r-- | ext/gmp/php_gmp_int.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/gmp/php_gmp_int.h b/ext/gmp/php_gmp_int.h new file mode 100644 index 0000000000..d8111a6e47 --- /dev/null +++ b/ext/gmp/php_gmp_int.h @@ -0,0 +1,39 @@ +#ifndef incl_PHP_GMP_INT_H +#define incl_PHP_GMP_INT_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "php.h" +#include <gmp.h> + +#ifdef PHP_WIN32 +# define PHP_GMP_API __declspec(dllexport) +#elif defined(__GNUC__) && __GNUC__ >= 4 +# define PHP_GMP_API __attribute__ ((visibility("default"))) +#else +# define PHP_GMP_API +#endif + +typedef struct _gmp_object { + mpz_t num; + zend_object std; +} gmp_object; + +static inline gmp_object *php_gmp_object_from_zend_object(zend_object *zobj) { + return (gmp_object *)( ((char *)zobj) - XtOffsetOf(gmp_object, std) ); +} + +PHP_GMP_API zend_class_entry *php_gmp_class_entry(); + +/* GMP and MPIR use different datatypes on different platforms */ +#ifdef PHP_WIN32 +typedef zend_long gmp_long; +typedef zend_ulong gmp_ulong; +#else +typedef long gmp_long; +typedef unsigned long gmp_ulong; +#endif + +#endif |