summaryrefslogtreecommitdiff
path: root/Zend/zend_modules.h
blob: 2aafdd3b0dc51880c12aaa9af269ef485f2fe718 (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
/*
   +----------------------------------------------------------------------+
   | 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 _MODULES_H
#define _MODULES_H

#define INIT_FUNC_ARGS int type, int module_number

#ifdef HAS_ZEND_INI_ENTRIES
#define STANDARD_MODULE_PROPERTIES 0, 0, 0, NULL, 0
#else
#define STANDARD_MODULE_PROPERTIES 0, 0, 0, NULL, 0
#endif


#define MODULE_PERSISTENT 1
#define MODULE_TEMPORARY 2

typedef struct {
	char *name;
	function_entry *functions;
	int (*module_startup_func)(INIT_FUNC_ARGS);
	int (*module_shutdown_func)(void);
	int (*request_startup_func)(INIT_FUNC_ARGS);
	int (*request_shutdown_func)(void);
	void (*info_func)(void);
	int request_started,module_started;
	unsigned char type;
	void *handle;
	int module_number;
} zend_module_entry;


extern HashTable module_registry;

extern void module_destructor(zend_module_entry *module);
extern int module_registry_cleanup(zend_module_entry *module);
extern int module_registry_request_startup(zend_module_entry *module);

#endif