Lines Matching defs:sc

100 ipmi_complete_request(struct ipmi_softc *sc, struct ipmi_request *req)
104 IPMI_LOCK_ASSERT(sc);
135 ipmi_submit_driver_request(struct ipmi_softc *sc, struct ipmi_request **preq,
143 IPMI_LOCK(sc);
144 error = sc->ipmi_enqueue_request(sc, req);
147 IPMI_UNLOCK(sc);
153 cv_wait(&req->ir_cv, &sc->ipmi_lock);
155 error = cv_timedwait(&req->ir_cv, &sc->ipmi_lock,
160 TAILQ_REMOVE(&sc->ipmi_pending_requests, req, ir_link);
176 IPMI_UNLOCK(sc);
188 ipmi_dequeue_request(struct ipmi_softc *sc)
192 IPMI_LOCK_ASSERT(sc);
194 while (!sc->ipmi_detaching && TAILQ_EMPTY(&sc->ipmi_pending_requests))
195 cv_wait(&sc->ipmi_request_added, &sc->ipmi_lock);
196 if (sc->ipmi_detaching)
199 req = TAILQ_FIRST(&sc->ipmi_pending_requests);
200 TAILQ_REMOVE(&sc->ipmi_pending_requests, req, ir_link);
210 ipmi_polled_enqueue_request(struct ipmi_softc *sc, struct ipmi_request *req)
213 IPMI_LOCK_ASSERT(sc);
215 TAILQ_INSERT_TAIL(&sc->ipmi_pending_requests, req, ir_link);
217 cv_signal(&sc->ipmi_request_added);
222 ipmi_shutdown(struct ipmi_softc *sc)
224 taskq_destroy(sc->ipmi_kthread);
226 cv_destroy(&sc->ipmi_request_added);
227 mutex_destroy(&sc->ipmi_lock);
231 ipmi_startup(struct ipmi_softc *sc)
237 mutex_init(&sc->ipmi_lock, NULL, MUTEX_DEFAULT, NULL);
238 cv_init(&sc->ipmi_request_added, NULL, CV_DEFAULT, NULL);
239 TAILQ_INIT(&sc->ipmi_pending_requests);
242 error = sc->ipmi_startup(sc);
252 error = ipmi_submit_driver_request(sc, &req, MAX_TIMEOUT);
285 if ((error = ipmi_submit_driver_request(sc, &req, 0)) != 0) {
305 if (ipmi_submit_driver_request(sc, &req, 0) != 0) {
322 if ((error = ipmi_submit_driver_request(sc, &req, 0)) != 0) {