Lines Matching +full:rx +full:- +full:wake +full:- +full:timeout

5  * SPDX-License-Identifier: Apache-2.0
45 k_timeout_t timeout) in k_fifo_wait_non_empty() argument
52 return k_poll(events, ARRAY_SIZE(events), timeout); in k_fifo_wait_non_empty()
63 return -1; in zcan_socket()
69 errno = -ret; in zcan_socket()
70 return -1; in zcan_socket()
74 ctx->user_data = NULL; in zcan_socket()
76 k_fifo_init(&ctx->recv_q); in zcan_socket()
81 k_condvar_init(&ctx->cond.recv); in zcan_socket()
142 /* To prevent the reader from missing the wake-up signal in zcan_received_cb()
145 if (ctx->cond.lock) { in zcan_received_cb()
146 (void)k_mutex_lock(ctx->cond.lock, K_FOREVER); in zcan_received_cb()
154 k_fifo_peek_tail(&ctx->recv_q); in zcan_received_cb()
159 * become non-empty, so cancel that wait. in zcan_received_cb()
162 k_fifo_cancel_wait(&ctx->recv_q); in zcan_received_cb()
164 NET_DBG("Marked socket %p as peer-closed", ctx); in zcan_received_cb()
174 k_fifo_put(&ctx->recv_q, clone); in zcan_received_cb()
177 if (ctx->cond.lock) { in zcan_received_cb()
178 k_mutex_unlock(ctx->cond.lock); in zcan_received_cb()
181 k_condvar_signal(&ctx->cond.recv); in zcan_received_cb()
197 return -EINVAL; in zcan_bind_ctx()
200 iface = net_if_get_by_index(can_addr->can_ifindex); in zcan_bind_ctx()
202 return -ENOENT; in zcan_bind_ctx()
209 errno = -ret; in zcan_bind_ctx()
210 return -1; in zcan_bind_ctx()
216 ctx->user_data); in zcan_bind_ctx()
218 errno = -ret; in zcan_bind_ctx()
219 return -1; in zcan_bind_ctx()
231 k_timeout_t timeout = K_FOREVER; in zcan_sendto_ctx() local
242 timeout = K_NO_WAIT; in zcan_sendto_ctx()
244 net_context_get_option(ctx, NET_OPT_SNDTIMEO, &timeout, NULL); in zcan_sendto_ctx()
254 can_addr.can_ifindex = -1; in zcan_sendto_ctx()
265 dest_addr, addrlen, NULL, timeout, in zcan_sendto_ctx()
266 ctx->user_data); in zcan_sendto_ctx()
268 errno = -ret; in zcan_sendto_ctx()
269 return -1; in zcan_sendto_ctx()
282 k_timeout_t timeout = K_FOREVER; in zcan_recvfrom_ctx() local
286 timeout = K_NO_WAIT; in zcan_recvfrom_ctx()
288 net_context_get_option(ctx, NET_OPT_RCVTIMEO, &timeout, NULL); in zcan_recvfrom_ctx()
294 ret = k_fifo_wait_non_empty(&ctx->recv_q, timeout); in zcan_recvfrom_ctx()
295 /* EAGAIN when timeout expired, EINTR when cancelled */ in zcan_recvfrom_ctx()
296 if (ret && ret != -EAGAIN && ret != -EINTR) { in zcan_recvfrom_ctx()
297 errno = -ret; in zcan_recvfrom_ctx()
298 return -1; in zcan_recvfrom_ctx()
301 pkt = k_fifo_peek_head(&ctx->recv_q); in zcan_recvfrom_ctx()
303 /* Mechanism as in sockets.c to allow parallel rx/tx in zcan_recvfrom_ctx()
305 if (!K_TIMEOUT_EQ(timeout, K_NO_WAIT)) { in zcan_recvfrom_ctx()
308 res = zsock_wait_data(ctx, &timeout); in zcan_recvfrom_ctx()
310 errno = -res; in zcan_recvfrom_ctx()
311 return -1; in zcan_recvfrom_ctx()
315 pkt = k_fifo_get(&ctx->recv_q, timeout); in zcan_recvfrom_ctx()
320 return -1; in zcan_recvfrom_ctx()
335 return -1; in zcan_recvfrom_ctx()
352 return -1; in zcan_getsockopt_ctx()
386 (UNALIGNED_GET(&sfilter->can_id) & in is_already_attached()
387 UNALIGNED_GET(&sfilter->can_mask)))) { in is_already_attached()
403 api = dev->api; in close_socket()
405 if (!api || !api->close) { in close_socket()
406 return -ENOTSUP; in close_socket()
409 api->close(dev, net_context_get_can_filter_id(ctx)); in close_socket()
454 errno = -ret; in can_sock_close_vmeth()
455 ret = -1; in can_sock_close_vmeth()
484 * since the client-Server-Semantic is no longer present.
485 * When we use RAW-sockets we are sending unconnected packets.
524 return -1; in can_sock_getsockopt_vmeth()
529 api = dev->api; in can_sock_getsockopt_vmeth()
531 if (!api || !api->getsockopt) { in can_sock_getsockopt_vmeth()
533 return -1; in can_sock_getsockopt_vmeth()
536 return api->getsockopt(dev, obj, level, optname, optval, in can_sock_getsockopt_vmeth()
563 return -ENOENT; in can_register_receiver()
641 return -1; in can_sock_setsockopt_vmeth()
646 return -1; in can_sock_setsockopt_vmeth()
651 api = dev->api; in can_sock_setsockopt_vmeth()
653 if (!api || !api->setsockopt) { in can_sock_setsockopt_vmeth()
655 return -1; in can_sock_setsockopt_vmeth()
663 return -1; in can_sock_setsockopt_vmeth()
670 errno = -ret; in can_sock_setsockopt_vmeth()
671 return -1; in can_sock_setsockopt_vmeth()
691 ret = api->setsockopt(dev, obj, level, optname, in can_sock_setsockopt_vmeth()
701 errno = -ret; in can_sock_setsockopt_vmeth()
702 return -1; in can_sock_setsockopt_vmeth()
708 return api->setsockopt(dev, obj, level, optname, optval, optlen); in can_sock_setsockopt_vmeth()