Lines Matching defs:vsk
90 /* Per-socket state (accessed via vsk->trans) */
92 struct vsock_sock *vsk;
155 static bool hvs_check_transport(struct vsock_sock *vsk);
241 struct vsock_sock *vsk = vsock_sk(sk);
242 struct hvsock *hvs = vsk->trans;
252 static void hvs_do_close_lock_held(struct vsock_sock *vsk,
255 struct sock *sk = sk_vsock(vsk);
258 vsk->peer_shutdown = SHUTDOWN_MASK;
259 if (vsock_stream_has_data(vsk) <= 0)
262 if (vsk->close_work_scheduled &&
263 (!cancel_timeout || cancel_delayed_work(&vsk->close_work))) {
264 vsk->close_work_scheduled = false;
265 vsock_remove_sock(vsk);
431 static int hvs_sock_init(struct vsock_sock *vsk, struct vsock_sock *psk)
434 struct sock *sk = sk_vsock(vsk);
440 vsk->trans = hvs;
441 hvs->vsk = vsk;
447 static int hvs_connect(struct vsock_sock *vsk)
450 struct hvsock *h = vsk->trans;
453 vm.svm_port = vsk->local_addr.svm_port;
457 host.svm_port = vsk->remote_addr.svm_port;
475 static int hvs_shutdown(struct vsock_sock *vsk, int mode)
480 hvs_shutdown_lock_held(vsk->trans, mode);
486 struct vsock_sock *vsk =
488 struct sock *sk = sk_vsock(vsk);
493 hvs_do_close_lock_held(vsk, false);
495 vsk->close_work_scheduled = false;
501 static bool hvs_close_lock_held(struct vsock_sock *vsk)
503 struct sock *sk = sk_vsock(vsk);
510 hvs_shutdown_lock_held(vsk->trans, SHUTDOWN_MASK);
517 INIT_DELAYED_WORK(&vsk->close_work, hvs_close_timeout);
518 vsk->close_work_scheduled = true;
519 schedule_delayed_work(&vsk->close_work, HVS_CLOSE_TIMEOUT);
523 static void hvs_release(struct vsock_sock *vsk)
527 remove_sock = hvs_close_lock_held(vsk);
529 vsock_remove_sock(vsk);
532 static void hvs_destruct(struct vsock_sock *vsk)
534 struct hvsock *hvs = vsk->trans;
543 static int hvs_dgram_bind(struct vsock_sock *vsk, struct sockaddr_vm *addr)
548 static int hvs_dgram_dequeue(struct vsock_sock *vsk, struct msghdr *msg,
554 static int hvs_dgram_enqueue(struct vsock_sock *vsk,
578 hvs->vsk->peer_shutdown |= SEND_SHUTDOWN;
586 static ssize_t hvs_stream_dequeue(struct vsock_sock *vsk, struct msghdr *msg,
589 struct hvsock *hvs = vsk->trans;
626 static ssize_t hvs_stream_enqueue(struct vsock_sock *vsk, struct msghdr *msg,
629 struct hvsock *hvs = vsk->trans;
674 static s64 hvs_stream_has_data(struct vsock_sock *vsk)
676 struct hvsock *hvs = vsk->trans;
687 vsk->peer_shutdown |= SEND_SHUTDOWN;
698 static s64 hvs_stream_has_space(struct vsock_sock *vsk)
700 struct hvsock *hvs = vsk->trans;
705 static u64 hvs_stream_rcvhiwat(struct vsock_sock *vsk)
710 static bool hvs_stream_is_active(struct vsock_sock *vsk)
712 struct hvsock *hvs = vsk->trans;
726 int hvs_notify_poll_in(struct vsock_sock *vsk, size_t target, bool *readable)
728 struct hvsock *hvs = vsk->trans;
735 int hvs_notify_poll_out(struct vsock_sock *vsk, size_t target, bool *writable)
737 *writable = hvs_stream_has_space(vsk) > 0;
743 int hvs_notify_recv_init(struct vsock_sock *vsk, size_t target,
750 int hvs_notify_recv_pre_block(struct vsock_sock *vsk, size_t target,
757 int hvs_notify_recv_pre_dequeue(struct vsock_sock *vsk, size_t target,
764 int hvs_notify_recv_post_dequeue(struct vsock_sock *vsk, size_t target,
772 int hvs_notify_send_init(struct vsock_sock *vsk,
779 int hvs_notify_send_pre_block(struct vsock_sock *vsk,
786 int hvs_notify_send_pre_enqueue(struct vsock_sock *vsk,
793 int hvs_notify_send_post_enqueue(struct vsock_sock *vsk, ssize_t written,
836 static bool hvs_check_transport(struct vsock_sock *vsk)
838 return vsk->transport == &hvs_transport;