Lines Matching refs:req

185 	struct ipmi_request *req;  in ipmi_purge_completed_requests()  local
188 req = TAILQ_FIRST(&dev->ipmi_completed_requests); in ipmi_purge_completed_requests()
189 TAILQ_REMOVE(&dev->ipmi_completed_requests, req, ir_link); in ipmi_purge_completed_requests()
191 ipmi_free_request(req); in ipmi_purge_completed_requests()
198 struct ipmi_request *req, *nreq; in ipmi_dtor() local
208 TAILQ_FOREACH_MUTABLE(req, &sc->ipmi_pending_requests, ir_link, in ipmi_dtor()
210 if (req->ir_owner == dev) { in ipmi_dtor()
211 TAILQ_REMOVE(&sc->ipmi_pending_requests, req, in ipmi_dtor()
214 ipmi_free_request(req); in ipmi_dtor()
257 struct ipmi_request *req; in ipmi_ipmb_send_message() local
261 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_ipmb_send_message()
263 req->ir_request[0] = channel; in ipmi_ipmb_send_message()
264 req->ir_request[1] = slave_addr; in ipmi_ipmb_send_message()
265 req->ir_request[2] = IPMI_ADDR(netfn, 0); in ipmi_ipmb_send_message()
266 req->ir_request[3] = ipmi_ipmb_checksum(&req->ir_request[1], 2); in ipmi_ipmb_send_message()
267 req->ir_request[4] = sc->ipmi_address; in ipmi_ipmb_send_message()
268 req->ir_request[5] = IPMI_ADDR(seq, sc->ipmi_lun); in ipmi_ipmb_send_message()
269 req->ir_request[6] = command; in ipmi_ipmb_send_message()
271 bcopy(data, &req->ir_request[7], data_len); in ipmi_ipmb_send_message()
272 temp[data_len + 7] = ipmi_ipmb_checksum(&req->ir_request[4], in ipmi_ipmb_send_message()
275 ipmi_submit_driver_request(sc, req); in ipmi_ipmb_send_message()
276 error = req->ir_error; in ipmi_ipmb_send_message()
277 ipmi_free_request(req); in ipmi_ipmb_send_message()
285 struct ipmi_request *req; in ipmi_handle_attn() local
289 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_handle_attn()
292 ipmi_submit_driver_request(sc, req); in ipmi_handle_attn()
294 if (req->ir_error == 0 && req->ir_compcode == 0) { in ipmi_handle_attn()
295 if (req->ir_reply[0] & IPMI_MSG_BUFFER_FULL) { in ipmi_handle_attn()
298 if (req->ir_reply[0] & IPMI_WDT_PRE_TIMEOUT) { in ipmi_handle_attn()
302 if (req->ir_reply[0] & IPMI_MSG_AVAILABLE) { in ipmi_handle_attn()
303 ipmi_free_request(req); in ipmi_handle_attn()
305 req = ipmi_alloc_driver_request( in ipmi_handle_attn()
313 error = req->ir_error; in ipmi_handle_attn()
314 ipmi_free_request(req); in ipmi_handle_attn()
335 struct ipmi_req *req = (struct ipmi_req *)data; in ipmi_ioctl() local
342 struct ipmi_req req; in ipmi_ioctl() member
358 req = &thunk32.req; in ipmi_ioctl()
359 req->addr = PTRIN(req32->addr); in ipmi_ioctl()
360 req->addr_len = req32->addr_len; in ipmi_ioctl()
361 req->msgid = req32->msgid; in ipmi_ioctl()
362 req->msg.netfn = req32->msg.netfn; in ipmi_ioctl()
363 req->msg.cmd = req32->msg.cmd; in ipmi_ioctl()
364 req->msg.data_len = req32->msg.data_len; in ipmi_ioctl()
365 req->msg.data = PTRIN(req32->msg.data); in ipmi_ioctl()
386 error = copyin(req->addr, &addr, sizeof(addr)); in ipmi_ioctl()
401 kreq = ipmi_alloc_request(dev, req->msgid, in ipmi_ioctl()
402 IPMI_ADDR(req->msg.netfn, 0), req->msg.cmd, in ipmi_ioctl()
403 req->msg.data_len, IPMI_MAX_RX); in ipmi_ioctl()
404 error = copyin(req->msg.data, kreq->ir_request, in ipmi_ioctl()
405 req->msg.data_len); in ipmi_ioctl()
532 struct ipmi_request *req; in ipmi_alloc_request() local
534 req = kmalloc(sizeof(struct ipmi_request) + requestlen + replylen, in ipmi_alloc_request()
536 req->ir_owner = dev; in ipmi_alloc_request()
537 req->ir_msgid = msgid; in ipmi_alloc_request()
538 req->ir_addr = addr; in ipmi_alloc_request()
539 req->ir_command = command; in ipmi_alloc_request()
541 req->ir_request = (char *)&req[1]; in ipmi_alloc_request()
542 req->ir_requestlen = requestlen; in ipmi_alloc_request()
545 req->ir_reply = (char *)&req[1] + requestlen; in ipmi_alloc_request()
546 req->ir_replybuflen = replylen; in ipmi_alloc_request()
548 return (req); in ipmi_alloc_request()
553 ipmi_free_request(struct ipmi_request *req) in ipmi_free_request() argument
556 kfree(req, M_IPMI); in ipmi_free_request()
561 ipmi_complete_request(struct ipmi_softc *sc, struct ipmi_request *req) in ipmi_complete_request() argument
571 if (req->ir_owner == NULL) in ipmi_complete_request()
572 wakeup(req); in ipmi_complete_request()
574 dev = req->ir_owner; in ipmi_complete_request()
575 TAILQ_INSERT_TAIL(&dev->ipmi_completed_requests, req, ir_link); in ipmi_complete_request()
584 ipmi_submit_driver_request(struct ipmi_softc *sc, struct ipmi_request *req, in ipmi_submit_driver_request() argument
590 error = sc->ipmi_enqueue_request(sc, req); in ipmi_submit_driver_request()
592 error = lksleep(req, &sc->ipmi_lock, 0, "ipmireq", timo); in ipmi_submit_driver_request()
594 error = req->ir_error; in ipmi_submit_driver_request()
608 struct ipmi_request *req; in ipmi_dequeue_request() local
617 req = TAILQ_FIRST(&sc->ipmi_pending_requests); in ipmi_dequeue_request()
618 TAILQ_REMOVE(&sc->ipmi_pending_requests, req, ir_link); in ipmi_dequeue_request()
619 return (req); in ipmi_dequeue_request()
624 ipmi_polled_enqueue_request(struct ipmi_softc *sc, struct ipmi_request *req) in ipmi_polled_enqueue_request() argument
628 TAILQ_INSERT_TAIL(&sc->ipmi_pending_requests, req, ir_link); in ipmi_polled_enqueue_request()
640 struct ipmi_request *req; in ipmi_set_watchdog() local
646 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_set_watchdog()
650 req->ir_request[0] = IPMI_SET_WD_TIMER_DONT_STOP in ipmi_set_watchdog()
652 req->ir_request[1] = IPMI_SET_WD_ACTION_RESET; in ipmi_set_watchdog()
653 req->ir_request[2] = 0; in ipmi_set_watchdog()
654 req->ir_request[3] = 0; /* Timer use */ in ipmi_set_watchdog()
655 req->ir_request[4] = (sec * 10) & 0xff; in ipmi_set_watchdog()
656 req->ir_request[5] = (sec * 10) >> 8; in ipmi_set_watchdog()
658 req->ir_request[0] = IPMI_SET_WD_TIMER_SMS_OS; in ipmi_set_watchdog()
659 req->ir_request[1] = 0; in ipmi_set_watchdog()
660 req->ir_request[2] = 0; in ipmi_set_watchdog()
661 req->ir_request[3] = 0; /* Timer use */ in ipmi_set_watchdog()
662 req->ir_request[4] = 0; in ipmi_set_watchdog()
663 req->ir_request[5] = 0; in ipmi_set_watchdog()
665 error = ipmi_submit_driver_request(sc, req, 0); in ipmi_set_watchdog()
669 ipmi_free_request(req); in ipmi_set_watchdog()
671 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_set_watchdog()
674 error = ipmi_submit_driver_request(sc, req, 0); in ipmi_set_watchdog()
680 ipmi_free_request(req); in ipmi_set_watchdog()
711 struct ipmi_request *req; in ipmi_startup() local
732 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_startup()
735 error = ipmi_submit_driver_request(sc, req, MAX_TIMEOUT); in ipmi_startup()
738 ipmi_free_request(req); in ipmi_startup()
742 ipmi_free_request(req); in ipmi_startup()
744 } else if (req->ir_compcode != 0) { in ipmi_startup()
747 req->ir_compcode); in ipmi_startup()
748 ipmi_free_request(req); in ipmi_startup()
750 } else if (req->ir_replylen < 5) { in ipmi_startup()
752 req->ir_replylen); in ipmi_startup()
753 ipmi_free_request(req); in ipmi_startup()
759 req->ir_reply[1] & 0x0f, in ipmi_startup()
760 req->ir_reply[2] & 0x7f, req->ir_reply[3] >> 4, req->ir_reply[3] & 0x0f, in ipmi_startup()
761 req->ir_reply[4] & 0x0f, req->ir_reply[4] >> 4); in ipmi_startup()
763 ipmi_free_request(req); in ipmi_startup()
765 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_startup()
768 ipmi_submit_driver_request(sc, req, 0); in ipmi_startup()
771 if (req->ir_compcode == 0xc0) { in ipmi_startup()
774 if (req->ir_compcode == 0xc1) { in ipmi_startup()
777 ipmi_free_request(req); in ipmi_startup()
780 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_startup()
782 req->ir_request[0] = i; in ipmi_startup()
784 ipmi_submit_driver_request(sc, req, 0); in ipmi_startup()
786 if (req->ir_compcode != 0) { in ipmi_startup()
787 ipmi_free_request(req); in ipmi_startup()
790 ipmi_free_request(req); in ipmi_startup()
795 req = ipmi_alloc_driver_request(IPMI_ADDR(IPMI_APP_REQUEST, 0), in ipmi_startup()
798 ipmi_submit_driver_request(sc, req, 0); in ipmi_startup()
800 if (req->ir_compcode == 0x00) { in ipmi_startup()
829 ipmi_free_request(req); in ipmi_startup()
955 error = sysctl_handle_int(oidp, &enable, 0, req); in ipmi_watchdog_sysctl_enable()
956 if(error || req->newptr == NULL) in ipmi_watchdog_sysctl_enable()
988 error = sysctl_handle_int(oidp, &period, 30, req); in ipmi_watchdog_sysctl_period()
990 if (error || req->newptr == NULL) in ipmi_watchdog_sysctl_period()