Lines Matching refs:msg_queue

45 static void remove_notification(mqueue_object *msg_queue);
46 static void remove_mq(mqueue_object *msg_queue);
63 mqueue_object *msg_queue; in mq_open() local
93 msg_queue = find_in_list(name); in mq_open()
96 if ((msg_queue != NULL) && (oflags & O_CREAT) != 0 && in mq_open()
103 if ((msg_queue == NULL) && (oflags & O_CREAT) == 0) { in mq_open()
119 if (msg_queue == NULL) { in mq_open()
130 msg_queue = (mqueue_object *)mq_obj_ptr; in mq_open()
131 msg_queue->mem_obj = mq_obj_ptr; in mq_open()
140 msg_queue->name = mq_name_ptr; in mq_open()
146 strcpy(msg_queue->name, name); in mq_open()
152 msg_queue->mem_buffer = mq_buf_ptr; in mq_open()
157 (void)atomic_set(&msg_queue->ref_count, 1); in mq_open()
159 k_msgq_init(&msg_queue->queue, msg_queue->mem_buffer, msg_size, in mq_open()
162 sys_slist_append(&mq_list, (sys_snode_t *)&(msg_queue->snode)); in mq_open()
166 atomic_inc(&msg_queue->ref_count); in mq_open()
169 msg_queue_desc->mqueue = msg_queue; in mq_open()
216 mqueue_object *msg_queue; in mq_unlink() local
219 msg_queue = find_in_list(name); in mq_unlink()
221 if (msg_queue == NULL) { in mq_unlink()
227 k_free(msg_queue->name); in mq_unlink()
228 msg_queue->name = NULL; in mq_unlink()
230 remove_mq(msg_queue); in mq_unlink()
376 mqueue_object *msg_queue = mqd->mqueue; in mq_notify() local
379 if ((msg_queue->not.sigev_notify & SIGEV_MASK) == 0) { in mq_notify()
383 remove_notification(msg_queue); in mq_notify()
387 if ((msg_queue->not.sigev_notify & SIGEV_MASK) != 0) { in mq_notify()
405 memcpy(&msg_queue->not, notification, sizeof(struct sigevent)); in mq_notify()
433 mqueue_object *msg_queue; in find_in_list() local
438 msg_queue = (mqueue_object *)mq; in find_in_list()
439 if ((msg_queue->name != NULL) && (strcmp(msg_queue->name, name) == 0)) { in find_in_list()
440 return msg_queue; in find_in_list()
521 static void remove_mq(mqueue_object *msg_queue) in remove_mq() argument
523 if (atomic_cas(&msg_queue->ref_count, 0, 0)) { in remove_mq()
525 sys_slist_find_and_remove(&mq_list, (sys_snode_t *) msg_queue); in remove_mq()
529 k_free(msg_queue->mem_buffer); in remove_mq()
530 k_free(msg_queue->mem_obj); in remove_mq()
534 static void remove_notification(mqueue_object *msg_queue) in remove_notification() argument
537 memset(&msg_queue->not, 0, sizeof(struct sigevent)); in remove_notification()