Lines Matching refs:dev_sc
386 hv_vss_notified(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_notified() argument
389 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
390 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) { in hv_vss_notified()
391 reqp = STAILQ_FIRST(&dev_sc->to_notify_queue); in hv_vss_notified()
393 STAILQ_REMOVE_HEAD(&dev_sc->to_notify_queue, slink); in hv_vss_notified()
395 STAILQ_INSERT_TAIL(&dev_sc->to_ack_queue, reqp, slink); in hv_vss_notified()
402 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
406 hv_vss_notify(struct hv_vss_dev_sc *dev_sc, struct hv_vss_req_internal *reqp) in hv_vss_notify() argument
409 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
410 STAILQ_INSERT_TAIL(&dev_sc->to_notify_queue, reqp, slink); in hv_vss_notify()
413 &dev_sc->sc->app_sc == dev_sc ? "app" : "daemon"); in hv_vss_notify()
414 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
415 selwakeup(&dev_sc->hv_vss_selinfo); in hv_vss_notify()
422 hv_vss_daemon_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_daemon_acked() argument
435 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
436 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_daemon_acked()
437 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
455 if (dev_sc->sc->app_register_done) { in hv_vss_daemon_acked()
457 hv_vss_notify(&dev_sc->sc->app_sc, reqp); in hv_vss_daemon_acked()
476 hv_vss_app_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_app_acked() argument
489 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
490 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_app_acked()
491 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
501 if (dev_sc->sc->register_done) { in hv_vss_app_acked()
506 hv_vss_notify(&dev_sc->sc->daemon_sc, reqp); in hv_vss_app_acked()
530 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_open() local
534 if (dev_sc->sc->register_done) in hv_vss_dev_open()
537 dev_sc->sc->register_done = true; in hv_vss_dev_open()
538 hv_vss_callback(vmbus_get_channel(dev_sc->sc->dev), dev_sc->sc); in hv_vss_dev_open()
540 dev_sc->proc_task = curproc; in hv_vss_dev_open()
551 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_close() local
555 dev_sc->sc->register_done = false; in hv_vss_dev_close()
591 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_daemon_poll() local
593 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
597 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_vss_dev_daemon_poll()
600 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_vss_dev_daemon_poll()
602 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
612 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_open() local
616 if (dev_sc->sc->app_register_done) in hv_appvss_dev_open()
619 dev_sc->sc->app_register_done = true; in hv_appvss_dev_open()
620 dev_sc->proc_task = curproc; in hv_appvss_dev_open()
631 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_close() local
635 dev_sc->sc->app_register_done = false; in hv_appvss_dev_close()
644 struct hv_vss_dev_sc *dev_sc; in hv_appvss_dev_ioctl() local
647 dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_ioctl()
654 hv_vss_notified(dev_sc, userdata); in hv_appvss_dev_ioctl()
657 hv_vss_app_acked(dev_sc, userdata); in hv_appvss_dev_ioctl()
671 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_poll() local
673 mtx_lock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()
677 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_appvss_dev_poll()
680 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_appvss_dev_poll()
682 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()