Lines Matching refs:hvs
251 struct hvsock *hvs = vsk->trans;
252 struct vmbus_channel *chan = hvs->chan;
303 struct hvsock *hvs = NULL;
353 hvs = vsock_sk(sk)->trans;
354 hvs->chan = chan;
393 hvs->chan = NULL;
444 struct hvsock *hvs;
447 hvs = kzalloc(sizeof(*hvs), GFP_KERNEL);
448 if (!hvs)
451 vsk->trans = hvs;
452 hvs->vsk = vsk;
474 static void hvs_shutdown_lock_held(struct hvsock *hvs, int mode)
478 if (hvs->fin_sent || !hvs->chan)
482 (void)__hvs_send_data(hvs->chan, &hdr, 0);
483 hvs->fin_sent = true;
545 struct hvsock *hvs = vsk->trans;
546 struct vmbus_channel *chan = hvs->chan;
551 kfree(hvs);
577 static int hvs_update_recv_data(struct hvsock *hvs)
582 pkt_len = hv_pkt_len(hvs->recv_desc);
587 recv_buf = (struct hvs_recv_buf *)(hvs->recv_desc + 1);
595 hvs->vsk->peer_shutdown |= SEND_SHUTDOWN;
597 hvs->recv_data_len = payload_len;
598 hvs->recv_data_off = 0;
606 struct hvsock *hvs = vsk->trans;
607 bool need_refill = !hvs->recv_desc;
616 hvs->recv_desc = hv_pkt_iter_first(hvs->chan);
617 if (!hvs->recv_desc)
619 ret = hvs_update_recv_data(hvs);
624 recv_buf = (struct hvs_recv_buf *)(hvs->recv_desc + 1);
625 to_read = min_t(u32, len, hvs->recv_data_len);
626 ret = memcpy_to_msg(msg, recv_buf->data + hvs->recv_data_off, to_read);
630 hvs->recv_data_len -= to_read;
631 if (hvs->recv_data_len == 0) {
632 hvs->recv_desc = hv_pkt_iter_next(hvs->chan, hvs->recv_desc);
633 if (hvs->recv_desc) {
634 ret = hvs_update_recv_data(hvs);
639 hvs->recv_data_off += to_read;
648 struct hvsock *hvs = vsk->trans;
649 struct vmbus_channel *chan = hvs->chan;
678 ret = hvs_send_data(hvs->chan, send_buf, to_write);
695 struct hvsock *hvs = vsk->trans;
698 if (hvs->recv_data_len > 0)
701 switch (hvs_channel_readable_payload(hvs->chan)) {
719 struct hvsock *hvs = vsk->trans;
721 return hvs_channel_writable_bytes(hvs->chan);
731 struct hvsock *hvs = vsk->trans;
733 return hvs->chan != NULL;
747 struct hvsock *hvs = vsk->trans;
749 *readable = hvs_channel_readable(hvs->chan);