Lines Matching refs:vsk
23 #define PKT_FIELD(vsk, field_name) (vmci_trans(vsk)->notify.pkt.field_name) argument
25 static bool vmci_transport_notify_waiting_write(struct vsock_sock *vsk) in vmci_transport_notify_waiting_write() argument
31 if (!PKT_FIELD(vsk, peer_waiting_write)) in vmci_transport_notify_waiting_write()
42 if (!PKT_FIELD(vsk, peer_waiting_write_detected)) { in vmci_transport_notify_waiting_write()
43 PKT_FIELD(vsk, peer_waiting_write_detected) = true; in vmci_transport_notify_waiting_write()
44 if (PKT_FIELD(vsk, write_notify_window) < PAGE_SIZE) { in vmci_transport_notify_waiting_write()
45 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_waiting_write()
46 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_waiting_write()
48 PKT_FIELD(vsk, write_notify_window) -= PAGE_SIZE; in vmci_transport_notify_waiting_write()
49 if (PKT_FIELD(vsk, write_notify_window) < in vmci_transport_notify_waiting_write()
50 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_waiting_write()
51 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_waiting_write()
52 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_waiting_write()
56 notify_limit = vmci_trans(vsk)->consume_size - in vmci_transport_notify_waiting_write()
57 PKT_FIELD(vsk, write_notify_window); in vmci_transport_notify_waiting_write()
76 retval = vmci_qpair_consume_free_space(vmci_trans(vsk)->qpair) > in vmci_transport_notify_waiting_write()
85 PKT_FIELD(vsk, peer_waiting_write_detected) = false; in vmci_transport_notify_waiting_write()
94 static bool vmci_transport_notify_waiting_read(struct vsock_sock *vsk) in vmci_transport_notify_waiting_read() argument
97 if (!PKT_FIELD(vsk, peer_waiting_read)) in vmci_transport_notify_waiting_read()
106 return vmci_qpair_produce_buf_ready(vmci_trans(vsk)->qpair) > 0; in vmci_transport_notify_waiting_read()
120 struct vsock_sock *vsk; in vmci_transport_handle_waiting_read() local
122 vsk = vsock_sk(sk); in vmci_transport_handle_waiting_read()
124 PKT_FIELD(vsk, peer_waiting_read) = true; in vmci_transport_handle_waiting_read()
125 memcpy(&PKT_FIELD(vsk, peer_waiting_read_info), &pkt->u.wait, in vmci_transport_handle_waiting_read()
126 sizeof(PKT_FIELD(vsk, peer_waiting_read_info))); in vmci_transport_handle_waiting_read()
128 if (vmci_transport_notify_waiting_read(vsk)) { in vmci_transport_handle_waiting_read()
137 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_handle_waiting_read()
150 struct vsock_sock *vsk; in vmci_transport_handle_waiting_write() local
152 vsk = vsock_sk(sk); in vmci_transport_handle_waiting_write()
154 PKT_FIELD(vsk, peer_waiting_write) = true; in vmci_transport_handle_waiting_write()
155 memcpy(&PKT_FIELD(vsk, peer_waiting_write_info), &pkt->u.wait, in vmci_transport_handle_waiting_write()
156 sizeof(PKT_FIELD(vsk, peer_waiting_write_info))); in vmci_transport_handle_waiting_write()
158 if (vmci_transport_notify_waiting_write(vsk)) { in vmci_transport_handle_waiting_write()
167 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_handle_waiting_write()
179 struct vsock_sock *vsk; in vmci_transport_handle_read() local
181 vsk = vsock_sk(sk); in vmci_transport_handle_read()
182 PKT_FIELD(vsk, sent_waiting_write) = false; in vmci_transport_handle_read()
191 struct vsock_sock *vsk; in send_waiting_read() local
198 vsk = vsock_sk(sk); in send_waiting_read()
200 if (PKT_FIELD(vsk, sent_waiting_read)) in send_waiting_read()
203 if (PKT_FIELD(vsk, write_notify_window) < in send_waiting_read()
204 vmci_trans(vsk)->consume_size) in send_waiting_read()
205 PKT_FIELD(vsk, write_notify_window) = in send_waiting_read()
206 min(PKT_FIELD(vsk, write_notify_window) + PAGE_SIZE, in send_waiting_read()
207 vmci_trans(vsk)->consume_size); in send_waiting_read()
209 vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair, &tail, &head); in send_waiting_read()
210 room_left = vmci_trans(vsk)->consume_size - head; in send_waiting_read()
214 PKT_FIELD(vsk, consume_q_generation) + 1; in send_waiting_read()
217 waiting_info.generation = PKT_FIELD(vsk, consume_q_generation); in send_waiting_read()
222 PKT_FIELD(vsk, sent_waiting_read) = true; in send_waiting_read()
233 struct vsock_sock *vsk; in send_waiting_write() local
240 vsk = vsock_sk(sk); in send_waiting_write()
242 if (PKT_FIELD(vsk, sent_waiting_write)) in send_waiting_write()
245 vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair, &tail, &head); in send_waiting_write()
246 room_left = vmci_trans(vsk)->produce_size - tail; in send_waiting_write()
250 waiting_info.generation = PKT_FIELD(vsk, produce_q_generation); in send_waiting_write()
254 PKT_FIELD(vsk, produce_q_generation) - 1; in send_waiting_write()
259 PKT_FIELD(vsk, sent_waiting_write) = true; in send_waiting_write()
269 struct vsock_sock *vsk; in vmci_transport_send_read_notification() local
274 vsk = vsock_sk(sk); in vmci_transport_send_read_notification()
279 if (vmci_transport_notify_waiting_write(vsk)) { in vmci_transport_send_read_notification()
287 while (!(vsk->peer_shutdown & RCV_SHUTDOWN) && in vmci_transport_send_read_notification()
301 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_send_read_notification()
315 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_handle_wrote() local
316 PKT_FIELD(vsk, sent_waiting_read) = false; in vmci_transport_handle_wrote()
323 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_socket_init() local
325 PKT_FIELD(vsk, write_notify_window) = PAGE_SIZE; in vmci_transport_notify_pkt_socket_init()
326 PKT_FIELD(vsk, write_notify_min_window) = PAGE_SIZE; in vmci_transport_notify_pkt_socket_init()
327 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_notify_pkt_socket_init()
328 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_notify_pkt_socket_init()
329 PKT_FIELD(vsk, peer_waiting_write_detected) = false; in vmci_transport_notify_pkt_socket_init()
330 PKT_FIELD(vsk, sent_waiting_read) = false; in vmci_transport_notify_pkt_socket_init()
331 PKT_FIELD(vsk, sent_waiting_write) = false; in vmci_transport_notify_pkt_socket_init()
332 PKT_FIELD(vsk, produce_q_generation) = 0; in vmci_transport_notify_pkt_socket_init()
333 PKT_FIELD(vsk, consume_q_generation) = 0; in vmci_transport_notify_pkt_socket_init()
335 memset(&PKT_FIELD(vsk, peer_waiting_read_info), 0, in vmci_transport_notify_pkt_socket_init()
336 sizeof(PKT_FIELD(vsk, peer_waiting_read_info))); in vmci_transport_notify_pkt_socket_init()
337 memset(&PKT_FIELD(vsk, peer_waiting_write_info), 0, in vmci_transport_notify_pkt_socket_init()
338 sizeof(PKT_FIELD(vsk, peer_waiting_write_info))); in vmci_transport_notify_pkt_socket_init()
341 static void vmci_transport_notify_pkt_socket_destruct(struct vsock_sock *vsk) in vmci_transport_notify_pkt_socket_destruct() argument
349 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_poll_in() local
351 if (vsock_stream_has_data(vsk)) { in vmci_transport_notify_pkt_poll_in()
374 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_poll_out() local
376 produce_q_free_space = vsock_stream_has_space(vsk); in vmci_transport_notify_pkt_poll_out()
404 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_init() local
412 if (PKT_FIELD(vsk, write_notify_min_window) < target + 1) { in vmci_transport_notify_pkt_recv_init()
413 PKT_FIELD(vsk, write_notify_min_window) = target + 1; in vmci_transport_notify_pkt_recv_init()
414 if (PKT_FIELD(vsk, write_notify_window) < in vmci_transport_notify_pkt_recv_init()
415 PKT_FIELD(vsk, write_notify_min_window)) { in vmci_transport_notify_pkt_recv_init()
423 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_pkt_recv_init()
424 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_pkt_recv_init()
466 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_pre_dequeue() local
472 vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair, in vmci_transport_notify_pkt_recv_pre_dequeue()
488 struct vsock_sock *vsk; in vmci_transport_notify_pkt_recv_post_dequeue() local
491 vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_post_dequeue()
501 vmci_trans(vsk)->consume_size - data->consume_head) in vmci_transport_notify_pkt_recv_post_dequeue()
502 PKT_FIELD(vsk, consume_q_generation)++; in vmci_transport_notify_pkt_recv_post_dequeue()
543 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_send_pre_enqueue() local
546 vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair, in vmci_transport_notify_pkt_send_pre_enqueue()
561 struct vsock_sock *vsk; in vmci_transport_notify_pkt_send_post_enqueue() local
565 vsk = vsock_sk(sk); in vmci_transport_notify_pkt_send_post_enqueue()
572 if (written >= vmci_trans(vsk)->produce_size - data->produce_tail) in vmci_transport_notify_pkt_send_post_enqueue()
573 PKT_FIELD(vsk, produce_q_generation)++; in vmci_transport_notify_pkt_send_post_enqueue()
577 if (vmci_transport_notify_waiting_read(vsk)) { in vmci_transport_notify_pkt_send_post_enqueue()
583 while (!(vsk->peer_shutdown & RCV_SHUTDOWN) && in vmci_transport_notify_pkt_send_post_enqueue()
598 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_notify_pkt_send_post_enqueue()
643 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_process_request() local
645 PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_request()
646 if (vmci_trans(vsk)->consume_size < in vmci_transport_notify_pkt_process_request()
647 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_pkt_process_request()
648 PKT_FIELD(vsk, write_notify_min_window) = in vmci_transport_notify_pkt_process_request()
649 vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_request()
654 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_process_negotiate() local
656 PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_negotiate()
657 if (vmci_trans(vsk)->consume_size < in vmci_transport_notify_pkt_process_negotiate()
658 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_pkt_process_negotiate()
659 PKT_FIELD(vsk, write_notify_min_window) = in vmci_transport_notify_pkt_process_negotiate()
660 vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_negotiate()