Lines Matching defs:channel

98 static void send_msg_with_handles(zx_handle_t channel, MessageType type,
102 type, channel, num_handles);
103 tu_channel_write(channel, 0, &data, sizeof(data), optional_handles, num_handles);
106 static void send_msg(zx_handle_t channel, MessageType type) {
107 send_msg_with_handles(channel, type, nullptr, 0);
110 static bool recv_msg(zx_handle_t channel, Message* msg) {
111 unittest_printf("waiting for message on handle %u\n", channel);
113 if (!tu_channel_wait_readable(channel)) {
120 tu_channel_read(channel, 0, &data, &num_bytes, &msg->handles[0], &msg->num_handles);
132 static bool recv_specific_msg(zx_handle_t channel, MessageType expected_type) {
134 ASSERT_TRUE(recv_msg(channel, &msg));
139 static void do_msg_thread_handle_request(zx_handle_t channel, const Message* msg) {
142 send_msg(channel, MSG_FAIL);
146 send_msg_with_handles(channel, MSG_THREAD_HANDLE_RESPONSE, &self, 1);
149 static void do_msg_sleep_test(zx_handle_t channel, const Message* msg) {
160 static void do_msg_futex_test(zx_handle_t channel, const Message* msg) {
173 static void do_msg_port_test(zx_handle_t channel, const Message* msg) {
176 send_msg(channel, MSG_FAIL);
187 send_msg(channel, MSG_FAIL);
196 send_msg(channel, MSG_FAIL);
200 send_msg(channel, MSG_PASS);
203 static void do_msg_channel_test(zx_handle_t channel, const Message* msg) {
206 send_msg(channel, MSG_FAIL);
234 send_msg(channel, MSG_FAIL);
238 send_msg(channel, MSG_PASS);
241 static void do_msg_wait_one_test(zx_handle_t channel, const Message* msg) {
244 send_msg(channel, MSG_FAIL);
251 send_msg(channel, MSG_PROCEED);
260 send_msg(channel, MSG_FAIL);
266 send_msg(channel, MSG_FAIL);
270 send_msg(channel, MSG_PASS);
273 static void do_msg_wait_many_test(zx_handle_t channel, const Message* msg) {
276 send_msg(channel, MSG_FAIL);
283 send_msg(channel, MSG_PROCEED);
298 send_msg(channel, MSG_FAIL);
312 send_msg(channel, MSG_FAIL);
316 send_msg(channel, MSG_PASS);
319 static void do_msg_interrupt_test(zx_handle_t channel, const Message* msg) {
322 send_msg(channel, MSG_FAIL);
333 send_msg(channel, MSG_FAIL);
339 send_msg(channel, MSG_FAIL);
343 send_msg(channel, MSG_PASS);
346 static void msg_loop(zx_handle_t channel) {
352 if (!recv_msg(channel, &msg)) {
362 do_msg_thread_handle_request(channel, &msg);
365 do_msg_sleep_test(channel, &msg);
368 do_msg_futex_test(channel, &msg);
371 do_msg_port_test(channel, &msg);
374 do_msg_channel_test(channel, &msg);
377 do_msg_wait_one_test(channel, &msg);
380 do_msg_wait_many_test(channel, &msg);
383 do_msg_interrupt_test(channel, &msg);
403 zx_handle_t channel = zx_take_startup_handle(PA_USER0);
404 if (channel == ZX_HANDLE_INVALID)
406 msg_loop(channel);
441 static bool get_child_thread(zx_handle_t channel, zx_handle_t* thread) {
442 send_msg(channel, MSG_THREAD_HANDLE_REQUEST);
444 ASSERT_TRUE(recv_msg(channel, &msg));
474 zx_handle_t child, channel;
475 start_test_child(zx_job_default(), test_child_name, &child, &channel);
477 ASSERT_TRUE(get_child_thread(channel, &thread));
479 send_msg(channel, MSG_SLEEP_TEST);
495 zx_handle_t child, channel;
496 start_test_child(zx_job_default(), test_child_name, &child, &channel);
498 ASSERT_TRUE(get_child_thread(channel, &thread));
500 send_msg_with_handles(channel, MSG_FUTEX_TEST, nullptr, 0);
513 zx_handle_t child, channel;
514 start_test_child(zx_job_default(), test_child_name, &child, &channel);
516 ASSERT_TRUE(get_child_thread(channel, &thread));
522 send_msg_with_handles(channel, MSG_PORT_TEST, &port_dupe, 1);
531 ASSERT_TRUE(recv_specific_msg(channel, MSG_PASS));
543 zx_handle_t child, channel;
544 start_test_child(zx_job_default(), test_child_name, &child, &channel);
546 ASSERT_TRUE(get_child_thread(channel, &thread));
551 send_msg_with_handles(channel, MSG_CHANNEL_TEST, &their_channel, 1);
560 ASSERT_TRUE(recv_specific_msg(channel, MSG_PASS));
571 zx_handle_t child, channel;
572 start_test_child(zx_job_default(), test_child_name, &child, &channel);
574 ASSERT_TRUE(get_child_thread(channel, &thread));
579 send_msg_with_handles(channel, MSG_WAIT_ONE_TEST, &h[1], 1);
583 ASSERT_TRUE(recv_specific_msg(channel, MSG_PROCEED));
592 ASSERT_TRUE(recv_specific_msg(channel, MSG_PASS));
603 zx_handle_t child, channel;
604 start_test_child(zx_job_default(), test_child_name, &child, &channel);
606 ASSERT_TRUE(get_child_thread(channel, &thread));
614 send_msg_with_handles(channel, MSG_WAIT_MANY_TEST, &h[1][0], num_handles);
618 ASSERT_TRUE(recv_specific_msg(channel, MSG_PROCEED));
629 ASSERT_TRUE(recv_specific_msg(channel, MSG_PASS));
640 zx_handle_t child, channel;
641 start_test_child(zx_job_default(), test_child_name, &child, &channel);
643 ASSERT_TRUE(get_child_thread(channel, &thread));
653 send_msg_with_handles(channel, MSG_INTERRUPT_TEST, &interrupt_dupe, 1);
662 ASSERT_TRUE(recv_specific_msg(channel, MSG_PASS));