This repository has been archived on 2020-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
php-armadillo/src/arma.c

65 lines
1.6 KiB
C

//
// php-armadillo/arma.c
//
// @Author CismonX
//
#include "php_arma.h"
#include <zend_interfaces.h>
#include <ext/standard/info.h>
#define ARMA_CE_INIT(cls, name) \
zend_class_entry cls##_ce; \
INIT_CLASS_ENTRY(cls##_ce, name, cls##_methods); \
arma_##cls##_ce = zend_register_internal_class(&cls##_ce)
#define ARMA_CONST_DECLARE(cls, name, val) \
zend_declare_class_constant_long(arma_##cls##_ce, name, sizeof(name) - 1, val)
#define ARMA_PROP_DECLARE(cls, name, flags) \
zend_declare_property_null(arma_##cls##_ce, name, sizeof(name) - 1, flags)
#define ARMA_HANDLERS_INIT(cls) \
memcpy(&cls##_handlers, &std_object_handlers, sizeof(zend_object_handlers))
#define ARMA_HANDLER_SET(cls, name) \
cls##_handlers.name = cls##_##name
ZEND_DECLARE_MODULE_GLOBALS(arma)
#ifdef ZTS
ZEND_TSRMLS_CACHE_DEFINE()
#endif
PHP_MINIT_FUNCTION(arma)
{
#ifdef ZTS
ZEND_INIT_MODULE_GLOBALS(arma, NULL, NULL);
#endif
// ...
return SUCCESS;
}
PHP_MINFO_FUNCTION(arma)
{
php_info_print_table_start();
php_info_print_table_header(2, "armadillo support", "enabled");
php_info_print_table_end();
}
zend_module_entry arma_module_entry = {
STANDARD_MODULE_HEADER,
"arma",
NULL,
PHP_MINIT(arma),
NULL,
NULL,
NULL,
PHP_MINFO(arma),
PHP_ARMA_VERSION,
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_ARMA
ZEND_GET_MODULE(arma)
#endif