Closes GH-4524.
#include <errno.h>
#include "php_sysvshm.h"
+#include "sysvshm_arginfo.h"
#include "ext/standard/info.h"
#include "ext/standard/php_var.h"
#include "zend_smart_str.h"
#include "php_ini.h"
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_attach, 0, 0, 1)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_INFO(0, memsize)
- ZEND_ARG_INFO(0, perm)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_detach, 0, 0, 1)
- ZEND_ARG_INFO(0, shm_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_has_var, 0, 0, 2)
- ZEND_ARG_INFO(0, id)
- ZEND_ARG_INFO(0, variable_key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_remove, 0, 0, 1)
- ZEND_ARG_INFO(0, shm_identifier)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_put_var, 0, 0, 3)
- ZEND_ARG_INFO(0, shm_identifier)
- ZEND_ARG_INFO(0, variable_key)
- ZEND_ARG_INFO(0, variable)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_get_var, 0, 0, 2)
- ZEND_ARG_INFO(0, id)
- ZEND_ARG_INFO(0, variable_key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_remove_var, 0, 0, 2)
- ZEND_ARG_INFO(0, id)
- ZEND_ARG_INFO(0, variable_key)
-ZEND_END_ARG_INFO()
-/* }}} */
-
/* {{{ sysvshm_functions[]
*/
static const zend_function_entry sysvshm_functions[] = {
--- /dev/null
+<?php
+
+/** @return resource|false */
+function shm_attach(int $key, int $memsize = UNKNOWN, int $perm = 0666) {}
+
+/**
+ * @param resource $shm_identifier
+ */
+function shm_detach($shm_identifier): bool {}
+
+/**
+ * @param resource $id
+ */
+function shm_has_var($id, int $variable_key): bool {}
+
+/**
+ * @param resource $shm_identifier
+ */
+function shm_remove($shm_identifier): bool {}
+
+/**
+ * @param resource $shm_identifier
+ */
+function shm_put_var($shm_identifier, int $variable_key, $variable): bool {}
+
+/**
+ * @param resource $id
+ * @return mixed
+ */
+function shm_get_var($id, int $variable_key) {}
+
+/**
+ * @param resource $id
+ */
+function shm_remove_var($id, int $variable_key): bool {}
--- /dev/null
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_attach, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, memsize, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, perm, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_shm_detach, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, shm_identifier)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_shm_has_var, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, id)
+ ZEND_ARG_TYPE_INFO(0, variable_key, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_shm_remove arginfo_shm_detach
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_shm_put_var, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, shm_identifier)
+ ZEND_ARG_TYPE_INFO(0, variable_key, IS_LONG, 0)
+ ZEND_ARG_INFO(0, variable)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_get_var, 0, 0, 2)
+ ZEND_ARG_INFO(0, id)
+ ZEND_ARG_TYPE_INFO(0, variable_key, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_shm_remove_var arginfo_shm_has_var