4 extern zend_module_entry psi_module_entry
;
5 #define phpext_psi_ptr &psi_module_entry
7 #define PHP_PSI_VERSION "0.1.0"
10 # define PHP_PSI_API __declspec(dllexport)
11 #elif defined(__GNUC__) && __GNUC__ >= 4
12 # define PHP_PSI_API __attribute__ ((visibility("default")))
23 void psi_error_wrapper(void *context
, PSI_Token
*t
, int type
, const char *msg
, ...);
24 void psi_error(int type
, const char *fn
, unsigned ln
, const char *msg
, ...);
25 void psi_verror(int type
, const char *fn
, unsigned ln
, const char *msg
, va_list argv
);
27 static inline int psi_check_env(const char *var
) {
28 char *set
= getenv(var
);
29 return (set
&& *set
&& '0' != *set
);
32 typedef struct psi_object
{
38 static inline psi_object
*PSI_OBJ(zval
*zv
, zend_object
*zo
) {
42 return (void *) (((char *) zo
) - zo
->handlers
->offset
);
45 PHP_PSI_API zend_class_entry
*psi_object_get_class_entry();
47 ZEND_BEGIN_MODULE_GLOBALS(psi
)
51 ZEND_END_MODULE_GLOBALS(psi
);
53 ZEND_EXTERN_MODULE_GLOBALS(psi
);
55 #define PSI_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(psi, v)
57 #if defined(ZTS) && defined(COMPILE_DL_PSI)
58 ZEND_TSRMLS_CACHE_EXTERN();
61 #endif /* PHP_PSI_H */
69 * vim600: noet sw=4 ts=4 fdm=marker
70 * vim<600: noet sw=4 ts=4