summaryrefslogtreecommitdiff
path: root/ext/skeleton/php_skeleton.h
blob: 3289b796a67e6e5ff4e5f1ddccb6b6c9ebe19615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/* __header_here__ */

#ifndef PHP_EXTNAME_H
#define PHP_EXTNAME_H

/* You should tweak config.m4 so this symbol (or some else suitable)
   gets defined.
*/
#if HAVE_EXTNAME

extern zend_module_entry extname_module_entry;
#define phpext_extname_ptr &extname_module_entry

#ifdef PHP_WIN32
#define PHP_EXTNAME_API __declspec(dllexport)
#else
#define PHP_EXTNAME_API
#endif

PHP_MINIT_FUNCTION(extname);
PHP_MSHUTDOWN_FUNCTION(extname);
PHP_RINIT_FUNCTION(extname);
PHP_RSHUTDOWN_FUNCTION(extname);
PHP_MINFO_FUNCTION(extname);

PHP_FUNCTION(confirm_extname_compiled);	/* For testing, remove later. */
/* __function_declarations_here__ */

/* 
  	Declare any global variables you may need between the BEGIN
	and END macros here:     

ZEND_BEGIN_MODULE_GLOBALS(extname)
	int global_variable;
ZEND_END_MODULE_GLOBALS(extname)
*/

/* In every function that needs to use variables in php_extname_globals,
   do call EXTNAMELS_FETCH(); after declaring other variables used by
   that function, and always refer to them as EXTNAMEG(variable).
   You are encouraged to rename these macros something shorter, see
   examples in any other php module directory.
*/

#ifdef ZTS
#define EXTNAMEG_HANDLE (*extname_globals)
#define EXTNAMEG(v) (extname_globals->v)
#define EXTNAMELS_FETCH() php_extname_globals *extname_globals = ts_resource(extname_globals_id)
#else
#define EXTNAMEG_HANDLE (extname_globals)
#define EXTNAMEG(v) (extname_globals.v)
#define EXTNAMELS_FETCH()
#endif

#else

#define phpext_extname_ptr NULL

#endif

#endif	/* PHP_EXTNAME_H */

/* __footer_here__ */