Return to php_skeleton.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / skeleton |
1.1 ! misho 1: /* __header_here__ */ ! 2: ! 3: #ifndef PHP_EXTNAME_H ! 4: #define PHP_EXTNAME_H ! 5: ! 6: extern zend_module_entry extname_module_entry; ! 7: #define phpext_extname_ptr &extname_module_entry ! 8: ! 9: #ifdef PHP_WIN32 ! 10: # define PHP_EXTNAME_API __declspec(dllexport) ! 11: #elif defined(__GNUC__) && __GNUC__ >= 4 ! 12: # define PHP_EXTNAME_API __attribute__ ((visibility("default"))) ! 13: #else ! 14: # define PHP_EXTNAME_API ! 15: #endif ! 16: ! 17: #ifdef ZTS ! 18: #include "TSRM.h" ! 19: #endif ! 20: ! 21: PHP_MINIT_FUNCTION(extname); ! 22: PHP_MSHUTDOWN_FUNCTION(extname); ! 23: PHP_RINIT_FUNCTION(extname); ! 24: PHP_RSHUTDOWN_FUNCTION(extname); ! 25: PHP_MINFO_FUNCTION(extname); ! 26: ! 27: PHP_FUNCTION(confirm_extname_compiled); /* For testing, remove later. */ ! 28: /* __function_declarations_here__ */ ! 29: ! 30: /* ! 31: Declare any global variables you may need between the BEGIN ! 32: and END macros here: ! 33: ! 34: ZEND_BEGIN_MODULE_GLOBALS(extname) ! 35: long global_value; ! 36: char *global_string; ! 37: ZEND_END_MODULE_GLOBALS(extname) ! 38: */ ! 39: ! 40: /* In every utility function you add that needs to use variables ! 41: in php_extname_globals, call TSRMLS_FETCH(); after declaring other ! 42: variables used by that function, or better yet, pass in TSRMLS_CC ! 43: after the last function argument and declare your utility function ! 44: with TSRMLS_DC after the last declared argument. Always refer to ! 45: the globals in your function as EXTNAME_G(variable). You are ! 46: encouraged to rename these macros something shorter, see ! 47: examples in any other php module directory. ! 48: */ ! 49: ! 50: #ifdef ZTS ! 51: #define EXTNAME_G(v) TSRMG(extname_globals_id, zend_extname_globals *, v) ! 52: #else ! 53: #define EXTNAME_G(v) (extname_globals.v) ! 54: #endif ! 55: ! 56: #endif /* PHP_EXTNAME_H */ ! 57: ! 58: /* __footer_here__ */