Lines Matching refs:vsk

15 #define PKT_FIELD(vsk, field_name) (vmci_trans(vsk)->notify.pkt.field_name)  argument
17 static bool vmci_transport_notify_waiting_write(struct vsock_sock *vsk) in vmci_transport_notify_waiting_write() argument
23 if (!PKT_FIELD(vsk, peer_waiting_write)) in vmci_transport_notify_waiting_write()
34 if (!PKT_FIELD(vsk, peer_waiting_write_detected)) { in vmci_transport_notify_waiting_write()
35 PKT_FIELD(vsk, peer_waiting_write_detected) = true; in vmci_transport_notify_waiting_write()
36 if (PKT_FIELD(vsk, write_notify_window) < PAGE_SIZE) { in vmci_transport_notify_waiting_write()
37 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_waiting_write()
38 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_waiting_write()
40 PKT_FIELD(vsk, write_notify_window) -= PAGE_SIZE; in vmci_transport_notify_waiting_write()
41 if (PKT_FIELD(vsk, write_notify_window) < in vmci_transport_notify_waiting_write()
42 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_waiting_write()
43 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_waiting_write()
44 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_waiting_write()
48 notify_limit = vmci_trans(vsk)->consume_size - in vmci_transport_notify_waiting_write()
49 PKT_FIELD(vsk, write_notify_window); in vmci_transport_notify_waiting_write()
68 retval = vmci_qpair_consume_free_space(vmci_trans(vsk)->qpair) > in vmci_transport_notify_waiting_write()
77 PKT_FIELD(vsk, peer_waiting_write_detected) = false; in vmci_transport_notify_waiting_write()
86 static bool vmci_transport_notify_waiting_read(struct vsock_sock *vsk) in vmci_transport_notify_waiting_read() argument
89 if (!PKT_FIELD(vsk, peer_waiting_read)) in vmci_transport_notify_waiting_read()
98 return vmci_qpair_produce_buf_ready(vmci_trans(vsk)->qpair) > 0; in vmci_transport_notify_waiting_read()
112 struct vsock_sock *vsk; in vmci_transport_handle_waiting_read() local
114 vsk = vsock_sk(sk); in vmci_transport_handle_waiting_read()
116 PKT_FIELD(vsk, peer_waiting_read) = true; in vmci_transport_handle_waiting_read()
117 memcpy(&PKT_FIELD(vsk, peer_waiting_read_info), &pkt->u.wait, in vmci_transport_handle_waiting_read()
118 sizeof(PKT_FIELD(vsk, peer_waiting_read_info))); in vmci_transport_handle_waiting_read()
120 if (vmci_transport_notify_waiting_read(vsk)) { in vmci_transport_handle_waiting_read()
129 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_handle_waiting_read()
142 struct vsock_sock *vsk; in vmci_transport_handle_waiting_write() local
144 vsk = vsock_sk(sk); in vmci_transport_handle_waiting_write()
146 PKT_FIELD(vsk, peer_waiting_write) = true; in vmci_transport_handle_waiting_write()
147 memcpy(&PKT_FIELD(vsk, peer_waiting_write_info), &pkt->u.wait, in vmci_transport_handle_waiting_write()
148 sizeof(PKT_FIELD(vsk, peer_waiting_write_info))); in vmci_transport_handle_waiting_write()
150 if (vmci_transport_notify_waiting_write(vsk)) { in vmci_transport_handle_waiting_write()
159 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_handle_waiting_write()
171 struct vsock_sock *vsk; in vmci_transport_handle_read() local
173 vsk = vsock_sk(sk); in vmci_transport_handle_read()
174 PKT_FIELD(vsk, sent_waiting_write) = false; in vmci_transport_handle_read()
183 struct vsock_sock *vsk; in send_waiting_read() local
190 vsk = vsock_sk(sk); in send_waiting_read()
192 if (PKT_FIELD(vsk, sent_waiting_read)) in send_waiting_read()
195 if (PKT_FIELD(vsk, write_notify_window) < in send_waiting_read()
196 vmci_trans(vsk)->consume_size) in send_waiting_read()
197 PKT_FIELD(vsk, write_notify_window) = in send_waiting_read()
198 min(PKT_FIELD(vsk, write_notify_window) + PAGE_SIZE, in send_waiting_read()
199 vmci_trans(vsk)->consume_size); in send_waiting_read()
201 vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair, &tail, &head); in send_waiting_read()
202 room_left = vmci_trans(vsk)->consume_size - head; in send_waiting_read()
206 PKT_FIELD(vsk, consume_q_generation) + 1; in send_waiting_read()
209 waiting_info.generation = PKT_FIELD(vsk, consume_q_generation); in send_waiting_read()
214 PKT_FIELD(vsk, sent_waiting_read) = true; in send_waiting_read()
225 struct vsock_sock *vsk; in send_waiting_write() local
232 vsk = vsock_sk(sk); in send_waiting_write()
234 if (PKT_FIELD(vsk, sent_waiting_write)) in send_waiting_write()
237 vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair, &tail, &head); in send_waiting_write()
238 room_left = vmci_trans(vsk)->produce_size - tail; in send_waiting_write()
242 waiting_info.generation = PKT_FIELD(vsk, produce_q_generation); in send_waiting_write()
246 PKT_FIELD(vsk, produce_q_generation) - 1; in send_waiting_write()
251 PKT_FIELD(vsk, sent_waiting_write) = true; in send_waiting_write()
261 struct vsock_sock *vsk; in vmci_transport_send_read_notification() local
266 vsk = vsock_sk(sk); in vmci_transport_send_read_notification()
271 if (vmci_transport_notify_waiting_write(vsk)) { in vmci_transport_send_read_notification()
279 while (!(vsk->peer_shutdown & RCV_SHUTDOWN) && in vmci_transport_send_read_notification()
293 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_send_read_notification()
307 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_handle_wrote() local
308 PKT_FIELD(vsk, sent_waiting_read) = false; in vmci_transport_handle_wrote()
315 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_socket_init() local
317 PKT_FIELD(vsk, write_notify_window) = PAGE_SIZE; in vmci_transport_notify_pkt_socket_init()
318 PKT_FIELD(vsk, write_notify_min_window) = PAGE_SIZE; in vmci_transport_notify_pkt_socket_init()
319 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_notify_pkt_socket_init()
320 PKT_FIELD(vsk, peer_waiting_write) = false; in vmci_transport_notify_pkt_socket_init()
321 PKT_FIELD(vsk, peer_waiting_write_detected) = false; in vmci_transport_notify_pkt_socket_init()
322 PKT_FIELD(vsk, sent_waiting_read) = false; in vmci_transport_notify_pkt_socket_init()
323 PKT_FIELD(vsk, sent_waiting_write) = false; in vmci_transport_notify_pkt_socket_init()
324 PKT_FIELD(vsk, produce_q_generation) = 0; in vmci_transport_notify_pkt_socket_init()
325 PKT_FIELD(vsk, consume_q_generation) = 0; in vmci_transport_notify_pkt_socket_init()
327 memset(&PKT_FIELD(vsk, peer_waiting_read_info), 0, in vmci_transport_notify_pkt_socket_init()
328 sizeof(PKT_FIELD(vsk, peer_waiting_read_info))); in vmci_transport_notify_pkt_socket_init()
329 memset(&PKT_FIELD(vsk, peer_waiting_write_info), 0, in vmci_transport_notify_pkt_socket_init()
330 sizeof(PKT_FIELD(vsk, peer_waiting_write_info))); in vmci_transport_notify_pkt_socket_init()
333 static void vmci_transport_notify_pkt_socket_destruct(struct vsock_sock *vsk) in vmci_transport_notify_pkt_socket_destruct() argument
341 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_poll_in() local
343 if (vsock_stream_has_data(vsk) >= target) { in vmci_transport_notify_pkt_poll_in()
366 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_poll_out() local
368 produce_q_free_space = vsock_stream_has_space(vsk); in vmci_transport_notify_pkt_poll_out()
396 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_init() local
404 if (PKT_FIELD(vsk, write_notify_min_window) < target + 1) { in vmci_transport_notify_pkt_recv_init()
405 PKT_FIELD(vsk, write_notify_min_window) = target + 1; in vmci_transport_notify_pkt_recv_init()
406 if (PKT_FIELD(vsk, write_notify_window) < in vmci_transport_notify_pkt_recv_init()
407 PKT_FIELD(vsk, write_notify_min_window)) { in vmci_transport_notify_pkt_recv_init()
415 PKT_FIELD(vsk, write_notify_window) = in vmci_transport_notify_pkt_recv_init()
416 PKT_FIELD(vsk, write_notify_min_window); in vmci_transport_notify_pkt_recv_init()
458 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_pre_dequeue() local
464 vmci_qpair_get_consume_indexes(vmci_trans(vsk)->qpair, in vmci_transport_notify_pkt_recv_pre_dequeue()
480 struct vsock_sock *vsk; in vmci_transport_notify_pkt_recv_post_dequeue() local
483 vsk = vsock_sk(sk); in vmci_transport_notify_pkt_recv_post_dequeue()
493 vmci_trans(vsk)->consume_size - data->consume_head) in vmci_transport_notify_pkt_recv_post_dequeue()
494 PKT_FIELD(vsk, consume_q_generation)++; in vmci_transport_notify_pkt_recv_post_dequeue()
535 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_send_pre_enqueue() local
538 vmci_qpair_get_produce_indexes(vmci_trans(vsk)->qpair, in vmci_transport_notify_pkt_send_pre_enqueue()
553 struct vsock_sock *vsk; in vmci_transport_notify_pkt_send_post_enqueue() local
557 vsk = vsock_sk(sk); in vmci_transport_notify_pkt_send_post_enqueue()
564 if (written >= vmci_trans(vsk)->produce_size - data->produce_tail) in vmci_transport_notify_pkt_send_post_enqueue()
565 PKT_FIELD(vsk, produce_q_generation)++; in vmci_transport_notify_pkt_send_post_enqueue()
569 if (vmci_transport_notify_waiting_read(vsk)) { in vmci_transport_notify_pkt_send_post_enqueue()
575 while (!(vsk->peer_shutdown & RCV_SHUTDOWN) && in vmci_transport_notify_pkt_send_post_enqueue()
590 PKT_FIELD(vsk, peer_waiting_read) = false; in vmci_transport_notify_pkt_send_post_enqueue()
635 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_process_request() local
637 PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_request()
638 if (vmci_trans(vsk)->consume_size < in vmci_transport_notify_pkt_process_request()
639 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_pkt_process_request()
640 PKT_FIELD(vsk, write_notify_min_window) = in vmci_transport_notify_pkt_process_request()
641 vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_request()
646 struct vsock_sock *vsk = vsock_sk(sk); in vmci_transport_notify_pkt_process_negotiate() local
648 PKT_FIELD(vsk, write_notify_window) = vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_negotiate()
649 if (vmci_trans(vsk)->consume_size < in vmci_transport_notify_pkt_process_negotiate()
650 PKT_FIELD(vsk, write_notify_min_window)) in vmci_transport_notify_pkt_process_negotiate()
651 PKT_FIELD(vsk, write_notify_min_window) = in vmci_transport_notify_pkt_process_negotiate()
652 vmci_trans(vsk)->consume_size; in vmci_transport_notify_pkt_process_negotiate()