summaryrefslogtreecommitdiff
path: root/ext/sysvshm/php_sysvshm.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sysvshm/php_sysvshm.h')
-rw-r--r--ext/sysvshm/php_sysvshm.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/ext/sysvshm/php_sysvshm.h b/ext/sysvshm/php_sysvshm.h
new file mode 100644
index 0000000..280b3e4
--- /dev/null
+++ b/ext/sysvshm/php_sysvshm.h
@@ -0,0 +1,80 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2013 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: Christian Cartus <cartus@atrior.de> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef PHP_SYSVSHM_H
+#define PHP_SYSVSHM_H
+
+#if HAVE_SYSVSHM
+
+extern zend_module_entry sysvshm_module_entry;
+#define sysvshm_module_ptr &sysvshm_module_entry
+
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+
+#define PHP_SHM_RSRC_NAME "sysvshm"
+
+typedef struct {
+ int le_shm;
+ long init_mem;
+} sysvshm_module;
+
+typedef struct {
+ long key;
+ long length;
+ long next;
+ char mem;
+} sysvshm_chunk;
+
+typedef struct {
+ char magic[8];
+ long start;
+ long end;
+ long free;
+ long total;
+} sysvshm_chunk_head;
+
+typedef struct {
+ key_t key; /* key set by user */
+ long id; /* returned by shmget */
+ sysvshm_chunk_head *ptr; /* memory address of shared memory */
+} sysvshm_shm;
+
+PHP_MINIT_FUNCTION(sysvshm);
+PHP_FUNCTION(shm_attach);
+PHP_FUNCTION(shm_detach);
+PHP_FUNCTION(shm_remove);
+PHP_FUNCTION(shm_put_var);
+PHP_FUNCTION(shm_get_var);
+PHP_FUNCTION(shm_has_var);
+PHP_FUNCTION(shm_remove_var);
+
+extern sysvshm_module php_sysvshm;
+
+#else
+
+#define sysvshm_module_ptr NULL
+
+#endif
+
+#define phpext_sysvshm_ptr sysvshm_module_ptr
+
+#endif /* PHP_SYSVSHM_H */