1 /*
2 +----------------------------------------------------------------------+
3 | PHP Version 7 |
4 +----------------------------------------------------------------------+
5 | Copyright (c) 1997-2016 The PHP Group |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Authors: Slava Poliakov <hackie@prohost.org> |
16 | Ilia Alshanetsky <ilia@prohost.org> |
17 +----------------------------------------------------------------------+
18 */
19 #ifndef PHP_SHMOP_H
20 #define PHP_SHMOP_H
21
22 #if HAVE_SHMOP
23
24 extern zend_module_entry shmop_module_entry;
25 #define phpext_shmop_ptr &shmop_module_entry
26
27 #include "php_version.h"
28 #define PHP_SHMOP_VERSION PHP_VERSION
29
30 PHP_MINIT_FUNCTION(shmop);
31 PHP_MINFO_FUNCTION(shmop);
32
33 PHP_FUNCTION(shmop_open);
34 PHP_FUNCTION(shmop_read);
35 PHP_FUNCTION(shmop_close);
36 PHP_FUNCTION(shmop_size);
37 PHP_FUNCTION(shmop_write);
38 PHP_FUNCTION(shmop_delete);
39
40 #ifdef PHP_WIN32
41 typedef int key_t;
42 #endif
43
44 struct php_shmop
45 {
46 int shmid;
47 key_t key;
48 int shmflg;
49 int shmatflg;
50 char *addr;
51 zend_long size;
52 };
53
54 typedef struct {
55 int le_shmop;
56 } php_shmop_globals;
57
58 #ifdef ZTS
59 #define SHMOPG(v) TSRMG(shmop_globals_id, php_shmop_globals *, v)
60 #else
61 #define SHMOPG(v) (shmop_globals.v)
62 #endif
63
64 #else
65
66 #define phpext_shmop_ptr NULL
67
68 #endif
69
70 #endif /* PHP_SHMOP_H */
71
72
73 /*
74 * Local variables:
75 * tab-width: 4
76 * c-basic-offset: 4
77 * End:
78 */