Lines Matching refs:dev_sc
389 hv_vss_notified(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_notified() argument
392 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
393 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) { in hv_vss_notified()
394 reqp = STAILQ_FIRST(&dev_sc->to_notify_queue); in hv_vss_notified()
396 STAILQ_REMOVE_HEAD(&dev_sc->to_notify_queue, slink); in hv_vss_notified()
398 STAILQ_INSERT_TAIL(&dev_sc->to_ack_queue, reqp, slink); in hv_vss_notified()
405 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
409 hv_vss_notify(struct hv_vss_dev_sc *dev_sc, struct hv_vss_req_internal *reqp) in hv_vss_notify() argument
412 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
413 STAILQ_INSERT_TAIL(&dev_sc->to_notify_queue, reqp, slink); in hv_vss_notify()
416 &dev_sc->sc->app_sc == dev_sc ? "app" : "daemon"); in hv_vss_notify()
417 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
418 selwakeup(&dev_sc->hv_vss_selinfo); in hv_vss_notify()
425 hv_vss_daemon_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_daemon_acked() argument
438 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
439 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_daemon_acked()
440 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
458 if (dev_sc->sc->app_register_done) { in hv_vss_daemon_acked()
460 hv_vss_notify(&dev_sc->sc->app_sc, reqp); in hv_vss_daemon_acked()
479 hv_vss_app_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_app_acked() argument
492 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
493 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_app_acked()
494 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
504 if (dev_sc->sc->register_done) { in hv_vss_app_acked()
509 hv_vss_notify(&dev_sc->sc->daemon_sc, reqp); in hv_vss_app_acked()
533 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_open() local
537 if (dev_sc->sc->register_done) in hv_vss_dev_open()
540 dev_sc->sc->register_done = true; in hv_vss_dev_open()
541 hv_vss_callback(vmbus_get_channel(dev_sc->sc->dev), dev_sc->sc); in hv_vss_dev_open()
543 dev_sc->proc_task = curproc; in hv_vss_dev_open()
554 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_close() local
558 dev_sc->sc->register_done = false; in hv_vss_dev_close()
594 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_daemon_poll() local
596 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
600 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_vss_dev_daemon_poll()
603 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_vss_dev_daemon_poll()
605 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
615 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_open() local
619 if (dev_sc->sc->app_register_done) in hv_appvss_dev_open()
622 dev_sc->sc->app_register_done = true; in hv_appvss_dev_open()
623 dev_sc->proc_task = curproc; in hv_appvss_dev_open()
634 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_close() local
638 dev_sc->sc->app_register_done = false; in hv_appvss_dev_close()
647 struct hv_vss_dev_sc *dev_sc; in hv_appvss_dev_ioctl() local
650 dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_ioctl()
657 hv_vss_notified(dev_sc, userdata); in hv_appvss_dev_ioctl()
660 hv_vss_app_acked(dev_sc, userdata); in hv_appvss_dev_ioctl()
674 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_poll() local
676 mtx_lock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()
680 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_appvss_dev_poll()
683 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_appvss_dev_poll()
685 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()