Lines Matching refs:dev_sc

387 hv_vss_notified(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata)  in hv_vss_notified()  argument
390 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
391 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) { in hv_vss_notified()
392 reqp = STAILQ_FIRST(&dev_sc->to_notify_queue); in hv_vss_notified()
394 STAILQ_REMOVE_HEAD(&dev_sc->to_notify_queue, slink); in hv_vss_notified()
396 STAILQ_INSERT_TAIL(&dev_sc->to_ack_queue, reqp, slink); in hv_vss_notified()
403 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notified()
407 hv_vss_notify(struct hv_vss_dev_sc *dev_sc, struct hv_vss_req_internal *reqp) in hv_vss_notify() argument
410 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
411 STAILQ_INSERT_TAIL(&dev_sc->to_notify_queue, reqp, slink); in hv_vss_notify()
414 &dev_sc->sc->app_sc == dev_sc ? "app" : "daemon"); in hv_vss_notify()
415 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_notify()
416 selwakeup(&dev_sc->hv_vss_selinfo); in hv_vss_notify()
423 hv_vss_daemon_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_daemon_acked() argument
436 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
437 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_daemon_acked()
438 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_daemon_acked()
456 if (dev_sc->sc->app_register_done) { in hv_vss_daemon_acked()
458 hv_vss_notify(&dev_sc->sc->app_sc, reqp); in hv_vss_daemon_acked()
477 hv_vss_app_acked(struct hv_vss_dev_sc *dev_sc, struct hv_vss_opt_msg *userdata) in hv_vss_app_acked() argument
490 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
491 SEARCH_REMOVE_REQ_LOCKED(reqp, &dev_sc->to_ack_queue, slink, tmp, req_id); in hv_vss_app_acked()
492 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_app_acked()
502 if (dev_sc->sc->register_done) { in hv_vss_app_acked()
507 hv_vss_notify(&dev_sc->sc->daemon_sc, reqp); in hv_vss_app_acked()
531 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_open() local
535 if (dev_sc->sc->register_done) in hv_vss_dev_open()
538 dev_sc->sc->register_done = true; in hv_vss_dev_open()
539 hv_vss_callback(vmbus_get_channel(dev_sc->sc->dev), dev_sc->sc); in hv_vss_dev_open()
541 dev_sc->proc_task = curproc; in hv_vss_dev_open()
552 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_close() local
556 dev_sc->sc->register_done = false; in hv_vss_dev_close()
592 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_vss_dev_daemon_poll() local
594 mtx_lock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
598 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_vss_dev_daemon_poll()
601 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_vss_dev_daemon_poll()
603 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_vss_dev_daemon_poll()
613 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_open() local
617 if (dev_sc->sc->app_register_done) in hv_appvss_dev_open()
620 dev_sc->sc->app_register_done = true; in hv_appvss_dev_open()
621 dev_sc->proc_task = curproc; in hv_appvss_dev_open()
632 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_close() local
636 dev_sc->sc->app_register_done = false; in hv_appvss_dev_close()
645 struct hv_vss_dev_sc *dev_sc; in hv_appvss_dev_ioctl() local
648 dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_ioctl()
655 hv_vss_notified(dev_sc, userdata); in hv_appvss_dev_ioctl()
658 hv_vss_app_acked(dev_sc, userdata); in hv_appvss_dev_ioctl()
672 struct hv_vss_dev_sc *dev_sc = (struct hv_vss_dev_sc*)dev->si_drv1; in hv_appvss_dev_poll() local
674 mtx_lock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()
678 if (!STAILQ_EMPTY(&dev_sc->to_notify_queue)) in hv_appvss_dev_poll()
681 selrecord(td, &dev_sc->hv_vss_selinfo); in hv_appvss_dev_poll()
683 mtx_unlock(&dev_sc->sc->pending_mutex); in hv_appvss_dev_poll()