On Thu, 2017-08-03 at 14:34 -0400, Dawid Zamirski wrote: > Also util now includes all the PHP headers. > --- > src/libvirt-php.c | 1 - > src/libvirt-php.h | 157 +------------------------------------------- > ---- > src/util.h | 174 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 175 insertions(+), 157 deletions(-) > > diff --git a/src/libvirt-php.c b/src/libvirt-php.c > index 0e0c620..504a8f2 100644 > --- a/src/libvirt-php.c > +++ b/src/libvirt-php.c > @@ -17,7 +17,6 @@ > #endif > > #include "libvirt-php.h" > -#include "util.h" > #include "vncfunc.h" > #include "sockets.h" > > diff --git a/src/libvirt-php.h b/src/libvirt-php.h > index bfc1934..aa3fbf3 100644 > --- a/src/libvirt-php.h > +++ b/src/libvirt-php.h > @@ -7,7 +7,6 @@ > #ifndef PHP_LIBVIRT_H > #define PHP_LIBVIRT_H 1 > > - > /* Network constants */ > #define VIR_NETWORKS_ACTIVE 1 > #define VIR_NETWORKS_INACTIVE 2 > @@ -28,27 +27,6 @@ > #include "config.h" > #endif > > -#ifdef COMPILE_DL_LIBVIRT > -#undef PACKAGE_BUGREPORT > -#undef PACKAGE_NAME > -#undef PACKAGE_STRING > -#undef PACKAGE_TARNAME > -#undef PACKAGE_URL > -#undef PACKAGE_VERSION > -#include "php.h" > - > -#ifdef ZTS > -#include "TSRM.h" > -#endif > - > -#include "php_ini.h" > -#ifdef EXTWIN > -#include "ext/standard/info.h" > -#else > -#include "standard/info.h" > -#endif > -#endif > - > #ifndef VERSION > #define VERSION "0.5.1" > #define VERSION_MAJOR 0 > @@ -63,6 +41,7 @@ > #include <libxml/xpath.h> > #include <fcntl.h> > #include <sys/types.h> > +#include "util.h" > > #ifndef EXTWIN > #include <inttypes.h> > @@ -109,139 +88,6 @@ typedef uint64_t arch_uint; > #define UINTx PRIx64 > #endif > > -#if PHP_MAJOR_VERSION >= 7 > -typedef size_t strsize_t; > -typedef zend_resource virt_resource; > -typedef virt_resource *virt_resource_handle; > - > -#define VIRT_RETURN_RESOURCE(_resource) \ > - RETVAL_RES(_resource) > - > -#define VIRT_REGISTER_RESOURCE(_resource, _le_resource) \ > - VIRT_RETURN_RESOURCE(zend_register_resource(_resource, > _le_resource)) > - > -#define VIRT_REGISTER_LIST_RESOURCE(_name) do { \ > - zval zret; \ > - ZVAL_RES(&zret, zend_register_resource(res_##_name, > le_libvirt_##_name)); \ > - add_next_index_zval(return_value, &zret); \ > - } while(0) > - > -#define VIRT_RESOURCE_HANDLE(_resource) \ > - Z_RES_P(_resource) > - > -#define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \ > - if ((_state = (_type)zend_fetch_resource(Z_RES_P(*_zval), _name, > _le)) == NULL) { \ > - RETURN_FALSE; \ > - } > - > -#define VIRT_RETVAL_STRING(_str) \ > - RETVAL_STRING(_str) > -#define VIRT_RETVAL_STRINGL(_str, _len) \ > - RETVAL_STRINGL(_str, _len) > -#define VIRT_RETURN_STRING(_str) \ > - RETURN_STRING(_str) > -#define VIRT_RETURN_STRINGL(_str, _len) \ > - RETURN_STRINGL(_str, _len) > -#define VIRT_ZVAL_STRINGL(_zv, _str, _len) \ > - ZVAL_STRINGL(_zv, _str, _len) > -#define VIRT_ADD_INDEX_STRING(_arg, _idx, _str) \ > - add_index_string(_arg, _idx, _str) > -#define VIRT_ADD_NEXT_INDEX_STRING(_arg, _str) \ > - add_next_index_string(_arg, _str) > -#define VIRT_ADD_ASSOC_STRING(_arg, _key, _str) \ > - add_assoc_string(_arg, _key, _str) > -#define VIRT_ADD_ASSOC_STRING_EX(_arg, _key, _key_len, _value) \ > - add_assoc_string_ex(_arg, _key, _key_len, _value) > - > -#define VIRT_FOREACH(_ht, _pos, _zv) \ > - for (zend_hash_internal_pointer_reset_ex(_ht, &_pos); \ > - (_zv = zend_hash_get_current_data_ex(_ht, &_pos)) != NULL; > \ > - zend_hash_move_forward_ex(_ht, &_pos)) \ > - > -#define VIRT_FOREACH_END(_dummy) > - > -#define VIRT_HASH_CURRENT_KEY_INFO(_ht, _pos, _idx, _info) \ > - do { \ > - zend_string *tmp_key_info; \ > - _info.type = zend_hash_get_current_key_ex(_ht, &tmp_key_info, > &_idx, &_pos); \ > - _info.name = ZSTR_VAL(tmp_key_info); \ > - _info.length = ZSTR_LEN(tmp_key_info); \ > - } while(0) > - > -#define VIRT_ARRAY_INIT(_name) do { \ > - zval z##_name; \ > - _name = &z##_name; \ > - array_init(_name); \ > - } while(0) > - > -#else /* PHP_MAJOR_VERSION < 7 */ > -typedef int strsize_t; > -typedef long zend_long; > -typedef unsigned long zend_ulong; > -typedef zend_rsrc_list_entry virt_resource; > -typedef long virt_resource_handle; > - > -#define VIRT_RETURN_RESOURCE(_resource) \ > - RETVAL_RESOURCE((long) _resource) > - > -#define VIRT_REGISTER_RESOURCE(_resource, _le_resource) \ > - ZEND_REGISTER_RESOURCE(return_value, _resource, _le_resource) > - > -#define VIRT_REGISTER_LIST_RESOURCE(_name) do { \ > - zval *zret; \ > - ALLOC_INIT_ZVAL(zret); \ > - ZEND_REGISTER_RESOURCE(zret, res_##_name, le_libvirt_##_name); \ > - add_next_index_zval(return_value, zret); \ > - } while(0) > - > -#define VIRT_RESOURCE_HANDLE(_resource) \ > - Z_LVAL_P(_resource) > - > -#define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \ > - ZEND_FETCH_RESOURCE(_state, _type, _zval, -1, _name, _le); > - > -#define VIRT_RETVAL_STRING(_str) \ > - RETVAL_STRING(_str, 1) > -#define VIRT_RETVAL_STRINGL(_str, _len) \ > - RETVAL_STRINGL(_str, _len, 1) > -#define VIRT_RETURN_STRING(_str) \ > - RETURN_STRING(_str, 1) > -#define VIRT_RETURN_STRINGL(_str, _len) \ > - RETURN_STRINGL(_str, _len, 1) > -#define VIRT_ZVAL_STRINGL(_zv, _str, _len) \ > - ZVAL_STRINGL(_zv, _str, _len, 1) > -#define VIRT_ADD_INDEX_STRING(_arg, _idx, _str) \ > - add_index_string(_arg, _idx, _str, 1) > -#define VIRT_ADD_NEXT_INDEX_STRING(_arg, _str) \ > - add_next_index_string(_arg, _str, 1) > -#define VIRT_ADD_ASSOC_STRING(_arg, _key, _str) \ > - add_assoc_string(_arg, _key, _str, 1) > -#define VIRT_ADD_ASSOC_STRING_EX(_arg, _key, _key_len, _value) \ > - add_assoc_string_ex(_arg, _key, _key_len, _value, 1) > - > -#define VIRT_FOREACH(_ht, _pos, _zv) \ > - { \ > - zval **pzv = &_zv; \ > - for (zend_hash_internal_pointer_reset_ex(_ht, &_pos); \ > - zend_hash_get_current_data_ex(_ht, (void **) &pzv, &_pos) > == SUCCESS; \ > - zend_hash_move_forward_ex(_ht, &_pos)) { \ > - _zv = *pzv; > - > -#define VIRT_FOREACH_END(_dummy) \ > - }} > - > -#define VIRT_HASH_CURRENT_KEY_INFO(_ht, _pos, _idx, _info) \ > - do { \ > - _info.type = zend_hash_get_current_key_ex(_ht, &_info.name, > &_info.length, &_idx, 0, &_pos); \ > - } while(0) > - > -#define VIRT_ARRAY_INIT(_name) do {\ > - ALLOC_INIT_ZVAL(_name); \ > - array_init(_name); \ > - } while(0) > - > -#endif /* PHP_MAJOR_VERSION < 7 */ > - > typedef struct tTokenizer { > char **tokens; > int numTokens; > @@ -366,7 +212,6 @@ typedef struct _php_libvirt_hash_key_info { > > /* Private definitions */ > int set_logfile(char *filename, long maxsize TSRMLS_DC); > -char *get_datetime(void); > char *get_string_from_xpath(char *xml, char *xpath, zval **val, int > *retVal); > char **get_array_from_xpath(char *xml, char *xpath, int *num); > > diff --git a/src/util.h b/src/util.h > index 836b13f..949dea3 100644 > --- a/src/util.h > +++ b/src/util.h > @@ -9,6 +9,27 @@ > > # include <stdint.h> > > +# ifdef COMPILE_DL_LIBVIRT > +# undef PACKAGE_BUGREPORT > +# undef PACKAGE_NAME > +# undef PACKAGE_STRING > +# undef PACKAGE_TARNAME > +# undef PACKAGE_URL > +# undef PACKAGE_VERSION > +# include <php.h> > + starting from here... > +# ifdef ZTS > +# include <TSRM.h> > +# endif > + > +# include <php_ini.h> > +# ifdef EXTWIN > +# include <ext/standard/info.h> > +# else > +# include <standard/info.h> > +# endif > +#endif > + ...to here, the preprocessor directives need one more space of indentation. > # define DEBUG_SUPPORT > > # ifdef DEBUG_SUPPORT > @@ -62,6 +83,159 @@ > ((uint32_t)var[2] << 8) + \ > ((uint32_t)var[3])) > > +# if PHP_MAJOR_VERSION >= 7 > + typedef size_t strsize_t; > + typedef zend_resource virt_resource; > + typedef virt_resource *virt_resource_handle; > + > +# define VIRT_RETURN_RESOURCE(_resource) \ > + RETVAL_RES(_resource) > + > +# define VIRT_REGISTER_RESOURCE(_resource, _le_resource) \ > + VIRT_RETURN_RESOURCE(zend_register_resource(_resource, > _le_resource)) > + > +# define VIRT_REGISTER_LIST_RESOURCE(_name) do { \ > + zval zret; \ > + ZVAL_RES(&zret, zend_register_resource(res_##_name, > le_libvirt_##_name)); \ > + add_next_index_zval(return_value, &zret); \ > + } while(0) > + > +# define VIRT_RESOURCE_HANDLE(_resource) \ > + Z_RES_P(_resource) > + > +# define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \ > + if ((_state = (_type)zend_fetch_resource(Z_RES_P(*_zval), _name, > _le)) == NULL) { \ > + RETURN_FALSE; \ > + } > + > +# define VIRT_RETVAL_STRING(_str) \ > + RETVAL_STRING(_str) > + > +# define VIRT_RETVAL_STRINGL(_str, _len) \ > + RETVAL_STRINGL(_str, _len) > + > +# define VIRT_RETURN_STRING(_str) \ > + RETURN_STRING(_str) > + > +# define VIRT_RETURN_STRINGL(_str, _len) \ > + RETURN_STRINGL(_str, _len) > + > +# define VIRT_ZVAL_STRINGL(_zv, _str, _len) \ > + ZVAL_STRINGL(_zv, _str, _len) > + > +# define VIRT_ADD_INDEX_STRING(_arg, _idx, _str) \ > + add_index_string(_arg, _idx, _str) > + > +# define VIRT_ADD_NEXT_INDEX_STRING(_arg, _str) \ > + add_next_index_string(_arg, _str) > + > +# define VIRT_ADD_ASSOC_STRING(_arg, _key, _str) \ > + add_assoc_string(_arg, _key, _str) > + > +# define VIRT_ADD_ASSOC_STRING_EX(_arg, _key, _key_len, _value) \ > + add_assoc_string_ex(_arg, _key, _key_len, _value) > + > +# define VIRT_FOREACH(_ht, _pos, _zv) \ > + for (zend_hash_internal_pointer_reset_ex(_ht, &_pos); \ > + (_zv = zend_hash_get_current_data_ex(_ht, &_pos)) != NULL; > \ > + zend_hash_move_forward_ex(_ht, &_pos)) \ > + > +# define VIRT_FOREACH_END(_dummy) > + > +# define VIRT_HASH_CURRENT_KEY_INFO(_ht, _pos, _idx, _info) \ > + do { \ > + zend_string *tmp_key_info; \ > + _info.type = zend_hash_get_current_key_ex(_ht, &tmp_key_info, > &_idx, &_pos); \ > + _info.name = ZSTR_VAL(tmp_key_info); \ > + _info.length = ZSTR_LEN(tmp_key_info); \ > + } while(0) > + > +# define VIRT_ARRAY_INIT(_name) do { \ > + zval z##_name; \ > + _name = &z##_name; \ > + array_init(_name); \ > + } while(0) > + > +# else /* PHP_MAJOR_VERSION < 7 */ > + typedef int strsize_t; > + typedef long zend_long; > + typedef unsigned long zend_ulong; > + typedef zend_rsrc_list_entry virt_resource; > + typedef long virt_resource_handle; > + > +# define VIRT_RETURN_RESOURCE(_resource) \ > + RETVAL_RESOURCE((long) _resource) > + > +# define VIRT_REGISTER_RESOURCE(_resource, _le_resource) \ > + ZEND_REGISTER_RESOURCE(return_value, _resource, _le_resource) > + > +# define VIRT_REGISTER_LIST_RESOURCE(_name) do { \ > + zval *zret; \ > + ALLOC_INIT_ZVAL(zret); \ > + ZEND_REGISTER_RESOURCE(zret, res_##_name, le_libvirt_##_name); \ > + add_next_index_zval(return_value, zret); \ > + } while(0) > + > +# define VIRT_RESOURCE_HANDLE(_resource) \ > + Z_LVAL_P(_resource) > + > +# define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \ > + ZEND_FETCH_RESOURCE(_state, _type, _zval, -1, _name, _le); > + > +# define VIRT_RETVAL_STRING(_str) \ > + RETVAL_STRING(_str, 1) > + > +# define VIRT_RETVAL_STRINGL(_str, _len) \ > + RETVAL_STRINGL(_str, _len, 1) > + > +# define VIRT_RETURN_STRING(_str) \ > + RETURN_STRING(_str, 1) > + > +# define VIRT_RETURN_STRINGL(_str, _len) \ > + RETURN_STRINGL(_str, _len, 1) > + > +# define VIRT_ZVAL_STRINGL(_zv, _str, _len) \ > + ZVAL_STRINGL(_zv, _str, _len, 1) > + > +# define VIRT_ADD_INDEX_STRING(_arg, _idx, _str) \ > + add_index_string(_arg, _idx, _str, 1) > + > +# define VIRT_ADD_NEXT_INDEX_STRING(_arg, _str) \ > + add_next_index_string(_arg, _str, 1) > + > +# define VIRT_ADD_ASSOC_STRING(_arg, _key, _str) \ > + add_assoc_string(_arg, _key, _str, 1) > + > +# define VIRT_ADD_ASSOC_STRING_EX(_arg, _key, _key_len, _value) \ > + add_assoc_string_ex(_arg, _key, _key_len, _value, 1) > + > +# define VIRT_FOREACH(_ht, _pos, _zv) \ > + { \ > + zval **pzv = &_zv; \ > + for (zend_hash_internal_pointer_reset_ex(_ht, &_pos); \ > + zend_hash_get_current_data_ex(_ht, (void **) &pzv, &_pos) > == SUCCESS; \ > + zend_hash_move_forward_ex(_ht, &_pos)) { \ > + _zv = *pzv; > + > +# define VIRT_FOREACH_END(_dummy) \ > + }} > + > +# define VIRT_HASH_CURRENT_KEY_INFO(_ht, _pos, _idx, _info) \ > + do { \ > + _info.type = zend_hash_get_current_key_ex(_ht, &_info.name, > &_info.length, &_idx, 0, &_pos); \ > + } while(0) > + > +# define VIRT_ARRAY_INIT(_name) do {\ > + ALLOC_INIT_ZVAL(_name); \ > + array_init(_name); \ > + } while(0) > + > +# endif /* PHP_MAJOR_VERSION < 7 */ > + > +# ifndef PHP_FE_END > +# define PHP_FE_END {NULL, NULL, NULL} > +# endif > + > void debugPrint(const char *source, > const char *fmt, ...); > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list