diff options
Diffstat (limited to 'Zend/zend_extensions.h')
| -rw-r--r-- | Zend/zend_extensions.h | 90 | 
1 files changed, 90 insertions, 0 deletions
| diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h new file mode 100644 index 0000000000..97c2243e1a --- /dev/null +++ b/Zend/zend_extensions.h @@ -0,0 +1,90 @@ +/* +   +----------------------------------------------------------------------+ +   | Zend Engine                                                          | +   +----------------------------------------------------------------------+ +   | Copyright (c) 1998, 1999 Andi Gutmans, Zeev Suraski                  | +   +----------------------------------------------------------------------+ +   | This source file is subject to the Zend license, that is bundled     | +   | with this package in the file LICENSE.  If you did not receive a     | +   | copy of the Zend license, please mail us at zend@zend.com so we can  | +   | send you a copy immediately.                                         | +   +----------------------------------------------------------------------+ +   | Authors: Andi Gutmans <andi@zend.com>                                | +   |          Zeev Suraski <zeev@zend.com>                                | +   +----------------------------------------------------------------------+ +*/ + +#ifndef _ZEND_EXTENSIONS_H +#define _ZEND_EXTENSIONS_H + +#include "zend_compile.h" + +#define ZEND_EXTENSION_API_NO		2 + +typedef struct { +	int zend_extension_api_no; +	char *required_zend_version; +	unsigned char thread_safe; +} zend_extension_version_info; + + +typedef struct _zend_extension zend_extension; + +struct _zend_extension { +	char *name; +	char *version; +	char *author; +	char *URL; +	char *copyright; + +	void (*startup)(zend_extension *extension); +	void (*shutdown)(zend_extension *extension); +	void (*activate)(); +	void (*deactivate)(); + +	void (*op_array_handler)(zend_op_array *op_array); +	 +	void (*statement_handler)(zend_op_array *op_array); +	void (*fcall_begin_handler)(zend_op_array *op_array); +	void (*fcall_end_handler)(zend_op_array *op_array); + +	void (*op_array_ctor)(void **resource); +	void (*op_array_dtor)(void **resource); + +	void *reserved1; +	void *reserved2; +	void *reserved3; +	void *reserved4; +	void *reserved5; +	void *reserved6; +	void *reserved7; +	void *reserved8; + +	DL_HANDLE handle; +	int resource_number; +}; + + +ZEND_API int zend_get_resource_handle(); + +#ifdef ZTS +#define ZTS_V 1 +#else +#define ZTS_V 0 +#endif + + +#define ZEND_EXTENSION()	\ +	ZEND_EXT_API zend_extension_version_info extension_version_info = { ZEND_EXTENSION_API_NO, "0.80A", ZTS_V } + +#define STANDARD_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1 + + +ZEND_API extern zend_llist zend_extensions; + +void zend_extension_dtor(zend_extension *extension); +int zend_load_extension(char *path); +int zend_load_extensions(char **extension_paths); +void zend_append_version_info(zend_extension *extension); + +#endif /* _ZEND_EXTENSIONS_H */ | 
