61#ifdef COMPILE_DL_SYSVMSG
74#define Z_SYSVMSG_QUEUE_P(zv) sysvmsg_queue_from_obj(Z_OBJ_P(zv))
86 zend_throw_error(
NULL,
"Cannot directly construct SysvMessageQueue, use msg_get_queue() instead");
90static void sysvmsg_queue_free_obj(
zend_object *
object)
107 sysvmsg_queue_object_handlers.free_obj = sysvmsg_queue_free_obj;
108 sysvmsg_queue_object_handlers.get_constructor = sysvmsg_queue_get_constructor;
109 sysvmsg_queue_object_handlers.clone_obj =
NULL;
112 register_sysvmsg_symbols(module_number);
132 struct msqid_ds
stat;
142 if (msgctl(mq->
id, IPC_STAT, &
stat) == 0) {
147 stat.msg_perm.uid = zval_get_long(item);
150 stat.msg_perm.gid = zval_get_long(item);
153 stat.msg_perm.mode = zval_get_long(item);
156 stat.msg_qbytes = zval_get_long(item);
158 if (msgctl(mq->
id, IPC_SET, &
stat) == 0) {
170 struct msqid_ds
stat;
180 if (msgctl(mq->
id, IPC_STAT, &
stat) == 0) {
206 if (msgget(
key, 0) < 0) {
229 mq->
id = msgget(
key, 0);
232 mq->
id = msgget(
key, IPC_CREAT | IPC_EXCL | perms);
254 if (msgctl(mq->
id, IPC_RMID,
NULL) == 0) {
265 zval *out_message, *queue, *out_msgtype, *zerrcode =
NULL;
268 bool do_unserialize = 1;
277 &out_message, &do_unserialize, &
flags, &zerrcode) ==
FAILURE) {
299 realflags |= IPC_NOWAIT;
307 result = msgrcv(mq->
id, messagebuffer, maxsize, desiredmsgtype, realflags);
317 if (do_unserialize) {
320 const unsigned char *
p = (
const unsigned char *) messagebuffer->
mtext;
341 efree(messagebuffer);
348 zval *message, *queue, *zerror=
NULL;
350 bool do_serialize = 1, blocking = 1;
354 size_t message_len = 0;
374 smart_str_free(&msg_var);
386 smart_str_free(&msg_var);
421 messagebuffer->
mtype = msgtype;
423 result = msgsnd(mq->
id, messagebuffer, message_len, blocking ? 0 : IPC_NOWAIT);
425 efree(messagebuffer);
PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format,...)
php_info_print_table_start()
php_info_print_table_row(2, "PDO Driver for Firebird", "enabled")
php_info_print_table_end()
#define PHP_MINIT_FUNCTION
#define PHP_MINFO_FUNCTION
unsigned char key[REFLECTION_KEY_LEN]
#define PHP_MSG_IPC_NOWAIT
#define PHP_VAR_UNSERIALIZE_DESTROY(d)
struct php_unserialize_data * php_unserialize_data_t
struct php_serialize_data * php_serialize_data_t
#define PHP_VAR_UNSERIALIZE_INIT(d)
PHPAPI int php_var_unserialize(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash)
#define PHP_VAR_SERIALIZE_INIT(d)
PHPAPI void php_var_serialize(smart_str *buf, zval *struc, php_serialize_data_t *data)
#define PHP_VAR_SERIALIZE_DESTROY(d)
php_unserialize_data_t var_hash
#define Z_SYSVMSG_QUEUE_P(zv)
zend_module_entry sysvmsg_module_entry
zend_class_entry * sysvmsg_queue_ce
msg_get_queue(int $key, int $permissions=0666)
msg_queue_exists(int $key)
msg_set_queue(SysvMessageQueue $queue, array $data)
msg_stat_queue(SysvMessageQueue $queue)
msg_remove_queue(SysvMessageQueue $queue)
msg_send(SysvMessageQueue $queue, int $message_type, $message, bool $serialize=true, bool $blocking=true, &$error_code=null)
msg_receive(SysvMessageQueue $queue, int $desired_message_type, &$received_message_type, int $max_message_size, mixed &$message, bool $unserialize=true, int $flags=0, &$error_code=null)
ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const char *format,...)
ZEND_API const char * zend_zval_value_name(const zval *arg)
ZEND_API zend_result object_init_ex(zval *arg, zend_class_entry *class_type)
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
ZEND_API void object_properties_init(zend_object *object, zend_class_entry *class_type)
ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *format,...)
ZEND_API ZEND_COLD void zend_argument_type_error(uint32_t arg_num, const char *format,...)
#define ZEND_TRY_ASSIGN_REF_FALSE(zv)
#define ZEND_TRY_ASSIGN_REF_STRINGL(zv, string, len)
#define ZEND_TRY_ASSIGN_REF_TMP(zv, other_zv)
#define ZEND_GET_MODULE(name)
#define ZEND_TRY_ASSIGN_REF_LONG(zv, lval)
#define safe_emalloc(nmemb, size, offset)
zend_string_release_ex(func->internal_function.function_name, 0)
union _zend_function zend_function
ZEND_API zval *ZEND_FASTCALL zend_hash_str_find(const HashTable *ht, const char *str, size_t len)
struct _zend_string zend_string
#define STANDARD_MODULE_HEADER
struct _zend_module_entry zend_module_entry
#define STANDARD_MODULE_PROPERTIES
ZEND_API int zend_objects_not_comparable(zval *o1, zval *o2)
ZEND_API const zend_object_handlers std_object_handlers
ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class_entry *ce)
ZEND_API void zend_object_std_dtor(zend_object *object)
#define XtOffsetOf(s_type, field)
#define UNEXPECTED(condition)
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object
#define Z_STRVAL_P(zval_p)
#define Z_ARRVAL_P(zval_p)
#define Z_STRLEN_P(zval_p)
struct _zend_object_handlers zend_object_handlers
ZEND_API void zval_ptr_dtor(zval *zval_ptr)