Lines Matching refs:mqueue
119 ipc_mqueue_t mqueue,
130 ipc_mqueue_t mqueue) in ipc_mqueue_init() argument
132 ipc_kmsg_queue_init(&mqueue->imq_messages); in ipc_mqueue_init()
133 mqueue->imq_qlimit = MACH_PORT_QLIMIT_DEFAULT; in ipc_mqueue_init()
134 klist_init(&mqueue->imq_klist); in ipc_mqueue_init()
379 ipc_mqueue_t mqueue, in ipc_mqueue_send_locked() argument
384 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_send_locked()
393 if (!imq_full(mqueue) || in ipc_mqueue_send_locked()
394 (!imq_full_kernel(mqueue) && in ipc_mqueue_send_locked()
398 mqueue->imq_msgcount++; in ipc_mqueue_send_locked()
399 assert(mqueue->imq_msgcount > 0); in ipc_mqueue_send_locked()
413 if (imq_full_kernel(mqueue)) { in ipc_mqueue_send_locked()
482 ipc_mqueue_post(mqueue, kmsg, option); in ipc_mqueue_send_locked()
500 ipc_mqueue_t mqueue, in ipc_mqueue_override_send_locked() argument
503 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_override_send_locked()
507 if (imq_full(mqueue)) { in ipc_mqueue_override_send_locked()
508 ipc_kmsg_t first = ipc_kmsg_queue_first(&mqueue->imq_messages); in ipc_mqueue_override_send_locked()
510 if (first && ipc_kmsg_override_qos(&mqueue->imq_messages, first, qos_ovr)) { in ipc_mqueue_override_send_locked()
587 ipc_mqueue_t mqueue, in ipc_mqueue_post() argument
591 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_post()
637 if (mqueue->imq_msgcount == 0) { in ipc_mqueue_post()
644 } else if (!ipc_kmsg_enqueue_qos(&mqueue->imq_messages, kmsg)) { in ipc_mqueue_post()
672 if (receiver->ith_state == MACH_PEEK_IN_PROGRESS && mqueue->imq_msgcount > 0) { in ipc_mqueue_post()
673 ipc_kmsg_enqueue_qos(&mqueue->imq_messages, kmsg); in ipc_mqueue_post()
674 ipc_mqueue_peek_on_thread_locked(mqueue, receiver->ith_option, receiver); in ipc_mqueue_post()
718 receiver->ith_seqno = mqueue->imq_seqno++; in ipc_mqueue_post()
726 ipc_mqueue_release_msgcount(mqueue); in ipc_mqueue_post()
729 if (MACH_NODE_VALID(node) && FPORT_VALID(mqueue->imq_fport)) { in ipc_mqueue_post()
730 flipc_msg_ack(node, mqueue, TRUE); in ipc_mqueue_post()
741 receiver->ith_receiver_name = mqueue->imq_receiver_name; in ipc_mqueue_post()
1305 ipc_mqueue_release_peek_ref(ipc_mqueue_t mqueue) in ipc_mqueue_release_peek_ref() argument
1307 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_release_peek_ref()
1338 ipc_mqueue_destroy_locked(ipc_mqueue_t mqueue, waitq_link_list_t *free_l) in ipc_mqueue_destroy_locked() argument
1340 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_destroy_locked()
1360 cqe_foreach_element_safe(kmsg, &mqueue->imq_messages, ikm_link) { in ipc_mqueue_destroy_locked()
1362 FPORT_VALID(mqueue->imq_fport)) { in ipc_mqueue_destroy_locked()
1363 flipc_msg_ack(kmsg->ikm_node, mqueue, TRUE); in ipc_mqueue_destroy_locked()
1372 reap = ipc_kmsg_delayed_destroy_queue(&mqueue->imq_messages); in ipc_mqueue_destroy_locked()
1380 mqueue->imq_msgcount = 0; in ipc_mqueue_destroy_locked()
1405 ipc_mqueue_t mqueue, in ipc_mqueue_set_qlimit_locked() argument
1408 ipc_port_t port = ip_from_mq(mqueue); in ipc_mqueue_set_qlimit_locked()
1413 if (qlimit > mqueue->imq_qlimit) { in ipc_mqueue_set_qlimit_locked()
1418 wakeup = qlimit - mqueue->imq_qlimit; in ipc_mqueue_set_qlimit_locked()
1436 mqueue->imq_msgcount++; /* give it to the awakened thread */ in ipc_mqueue_set_qlimit_locked()
1439 mqueue->imq_qlimit = (uint16_t)qlimit; in ipc_mqueue_set_qlimit_locked()
1451 ipc_mqueue_t mqueue, in ipc_mqueue_set_seqno_locked() argument
1454 mqueue->imq_seqno = seqno; in ipc_mqueue_set_seqno_locked()