Lines Matching refs:rcs
54 static int rmc_comm_send_req_resp(struct rmc_comm_state *rcs,
62 static int rmc_comm_dreq_thread_start(struct rmc_comm_state *rcs);
63 static void rmc_comm_dreq_thread_kill(struct rmc_comm_state *rcs);
73 struct rmc_comm_state *rcs; in rmc_comm_request_response() local
79 if ((rcs = rmc_comm_getstate(NULL, 0, in rmc_comm_request_response()
84 err = rmc_comm_send_req_resp(rcs, request, response, wait_time); in rmc_comm_request_response()
101 struct rmc_comm_state *rcs; in rmc_comm_request_nowait() local
111 if ((rcs = rmc_comm_getstate(NULL, 0, in rmc_comm_request_nowait()
119 DPRINTF(rcs, DAPI, (CE_CONT, "reqnowait, invalid args\n")); in rmc_comm_request_nowait()
124 DPRINTF(rcs, DAPI, (CE_CONT, in rmc_comm_request_nowait()
136 dps = &rcs->dp_state; in rmc_comm_request_nowait()
138 DPRINTF(rcs, DAPI, (CE_CONT, "going to send request=%x (URG)\n", in rmc_comm_request_nowait()
168 rmc_comm_dp_mcleanup(rcs); in rmc_comm_request_nowait()
178 DPRINTF(rcs, DAPI, (CE_CONT, "send request=%x (URG)\n", in rmc_comm_request_nowait()
181 err = rmc_comm_dp_msend(rcs, &req); in rmc_comm_request_nowait()
186 rmc_comm_serdev_drain(rcs); in rmc_comm_request_nowait()
191 rmc_comm_dp_mcleanup(rcs); in rmc_comm_request_nowait()
198 dp_wake_up_waiter(rcs, MSG_ERROR); in rmc_comm_request_nowait()
213 dis = &rcs->drvi_state; in rmc_comm_request_nowait()
219 DPRINTF(rcs, DAPI, (CE_CONT, "get to send request=%x\n", in rmc_comm_request_nowait()
248 DPRINTF(rcs, DAPI, (CE_CONT, "cannot get to send " in rmc_comm_request_nowait()
272 rmc_comm_send_req_resp(struct rmc_comm_state *rcs, rmc_comm_msg_t *request, in rmc_comm_send_req_resp() argument
288 DPRINTF(rcs, DAPI, (CE_CONT, "reqresp, invalid args\n")); in rmc_comm_send_req_resp()
297 DPRINTF(rcs, DAPI, (CE_CONT, in rmc_comm_send_req_resp()
303 dps = &rcs->dp_state; in rmc_comm_send_req_resp()
335 DPRINTF(rcs, DAPI, (CE_CONT, "pending request=%d, req type=%x\n", in rmc_comm_send_req_resp()
338 rmc_comm_wait_enable_to_send(rcs, dps); in rmc_comm_send_req_resp()
384 DPRINTF(rcs, DAPI, (CE_CONT, "send request=%x\n", request->msg_type)); in rmc_comm_send_req_resp()
388 while ((err = rmc_comm_dp_msend(rcs, &req)) == RCNOERR) { in rmc_comm_send_req_resp()
398 DPRINTF(rcs, DAPI, (CE_CONT, in rmc_comm_send_req_resp()
455 rmc_comm_dp_mcleanup(rcs); in rmc_comm_send_req_resp()
457 rmc_comm_wake_up_next(rcs); in rmc_comm_send_req_resp()
461 DPRINTF(rcs, DAPI, (CE_CONT, "reqresp end: err=%d, request=%x\n", in rmc_comm_send_req_resp()
483 struct rmc_comm_state *rcs; in rmc_comm_request_response_bp() local
495 if ((rcs = rmc_comm_getstate(NULL, 0, in rmc_comm_request_response_bp()
503 DPRINTF(rcs, DAPI, (CE_CONT, "reqresp_bp, invalid args\n")); in rmc_comm_request_response_bp()
509 DPRINTF(rcs, DAPI, (CE_CONT, "send request_bp=%x\n", bp_msg->cmd)); in rmc_comm_request_response_bp()
515 DPRINTF(rcs, DAPI, (CE_CONT, in rmc_comm_request_response_bp()
521 dps = &rcs->dp_state; in rmc_comm_request_response_bp()
527 rmc_comm_wait_enable_to_send(rcs, dps); in rmc_comm_request_response_bp()
552 dp_reset(rcs, INITIAL_SEQID, 0, 1); in rmc_comm_request_response_bp()
566 DPRINTF(rcs, DAPI, (CE_CONT, "expect BP reply. len=%d\n", in rmc_comm_request_response_bp()
577 rmc_comm_bp_msend(rcs, bp_msg); in rmc_comm_request_response_bp()
590 if ((err = rmc_comm_wait_bp_reply(rcs, dps, drr, in rmc_comm_request_response_bp()
614 (void) rmc_comm_dp_ctlsend(rcs, in rmc_comm_request_response_bp()
621 rmc_comm_dp_mcleanup(rcs); in rmc_comm_request_response_bp()
623 rmc_comm_wake_up_next(rcs); in rmc_comm_request_response_bp()
639 struct rmc_comm_state *rcs; in rmc_comm_reg_intr() local
643 if ((rcs = rmc_comm_getstate(NULL, 0, "rmc_comm_reg_intr")) == NULL) in rmc_comm_reg_intr()
646 mutex_enter(rcs->dp_state.dp_mutex); in rmc_comm_reg_intr()
648 msgintr = &rcs->dp_state.msg_intr; in rmc_comm_reg_intr()
655 mutex_exit(rcs->dp_state.dp_mutex); in rmc_comm_reg_intr()
664 if (ddi_add_softintr(rcs->dip, DDI_SOFTINT_HIGH, in rmc_comm_reg_intr()
680 mutex_exit(rcs->dp_state.dp_mutex); in rmc_comm_reg_intr()
691 struct rmc_comm_state *rcs; in rmc_comm_unreg_intr() local
695 if ((rcs = rmc_comm_getstate(NULL, 0, "rmc_comm_unreg_intr")) == NULL) in rmc_comm_unreg_intr()
698 mutex_enter(rcs->dp_state.dp_mutex); in rmc_comm_unreg_intr()
700 msgintr = &rcs->dp_state.msg_intr; in rmc_comm_unreg_intr()
717 mutex_exit(rcs->dp_state.dp_mutex); in rmc_comm_unreg_intr()
730 struct rmc_comm_state *rcs; in rmc_comm_send_srecord_bp() local
740 if ((rcs = rmc_comm_getstate(NULL, 0, in rmc_comm_send_srecord_bp()
748 DPRINTF(rcs, DAPI, (CE_CONT, "send_srecord_bp,invalid args\n")); in rmc_comm_send_srecord_bp()
752 DPRINTF(rcs, DAPI, (CE_CONT, "send_srecord_bp, buflen=%d\n", buflen)); in rmc_comm_send_srecord_bp()
754 dps = &rcs->dp_state; in rmc_comm_send_srecord_bp()
760 rmc_comm_wait_enable_to_send(rcs, dps); in rmc_comm_send_srecord_bp()
779 rmc_comm_bp_srecsend(rcs, (char *)buf, buflen); in rmc_comm_send_srecord_bp()
790 if ((err = rmc_comm_wait_bp_reply(rcs, dps, drr, in rmc_comm_send_srecord_bp()
803 rmc_comm_dp_mcleanup(rcs); in rmc_comm_send_srecord_bp()
805 rmc_comm_wake_up_next(rcs); in rmc_comm_send_srecord_bp()
817 rmc_comm_wait_bp_reply(struct rmc_comm_state *rcs, rmc_comm_dp_state_t *dps, in rmc_comm_wait_bp_reply() argument
827 DPRINTF(rcs, DAPI, (CE_CONT, in rmc_comm_wait_bp_reply()
865 rmc_comm_wait_enable_to_send(struct rmc_comm_state *rcs, in rmc_comm_wait_enable_to_send() argument
868 DPRINTF(rcs, DAPI, (CE_CONT, "pending request=%d\n", in rmc_comm_wait_enable_to_send()
903 rmc_comm_wake_up_next(struct rmc_comm_state *rcs) in rmc_comm_wake_up_next() argument
909 rcs->dp_state.pending_request = 0; in rmc_comm_wake_up_next()
910 cv_signal(rcs->dp_state.cv_ok_to_send); in rmc_comm_wake_up_next()
923 struct rmc_comm_state *rcs; in rmc_comm_send_pend_req() local
932 rcs = (struct rmc_comm_state *)arg; in rmc_comm_send_pend_req()
933 dis = &rcs->drvi_state; in rmc_comm_send_pend_req()
972 while (rmc_comm_send_req_resp(rcs, &dis->dreq_request, NULL, in rmc_comm_send_pend_req()
987 rmc_comm_dreq_thread_start(struct rmc_comm_state *rcs) in rmc_comm_dreq_thread_start() argument
989 rmc_comm_drvintf_state_t *dis = &rcs->drvi_state; in rmc_comm_dreq_thread_start()
998 (caddr_t)rcs, 0, &p0, TS_RUN, maxclsyspri); in rmc_comm_dreq_thread_start()
1012 rmc_comm_dreq_thread_kill(struct rmc_comm_state *rcs) in rmc_comm_dreq_thread_kill() argument
1014 rmc_comm_drvintf_state_t *dis = &rcs->drvi_state; in rmc_comm_dreq_thread_kill()
1037 rmc_comm_drvintf_init(struct rmc_comm_state *rcs) in rmc_comm_drvintf_init() argument
1041 DPRINTF(rcs, DGEN, (CE_CONT, "rmc_comm_drvintf_init\n")); in rmc_comm_drvintf_init()
1042 rcs->drvi_state.dreq_state = RMC_COMM_DREQ_ST_NOTSTARTED; in rmc_comm_drvintf_init()
1043 rcs->drvi_state.dreq_tid = 0; in rmc_comm_drvintf_init()
1045 mutex_init(rcs->drvi_state.dreq_mutex, NULL, MUTEX_DRIVER, NULL); in rmc_comm_drvintf_init()
1046 cv_init(rcs->drvi_state.dreq_sig_cv, NULL, CV_DRIVER, NULL); in rmc_comm_drvintf_init()
1048 err = rmc_comm_dreq_thread_start(rcs); in rmc_comm_drvintf_init()
1050 cv_destroy(rcs->drvi_state.dreq_sig_cv); in rmc_comm_drvintf_init()
1051 mutex_destroy(rcs->drvi_state.dreq_mutex); in rmc_comm_drvintf_init()
1054 DPRINTF(rcs, DGEN, (CE_CONT, "thread started? err=%d\n", err)); in rmc_comm_drvintf_init()
1063 rmc_comm_drvintf_fini(struct rmc_comm_state *rcs) in rmc_comm_drvintf_fini() argument
1065 DPRINTF(rcs, DGEN, (CE_CONT, "rmc_comm_drvintf_fini:stop thread\n")); in rmc_comm_drvintf_fini()
1067 rmc_comm_dreq_thread_kill(rcs); in rmc_comm_drvintf_fini()
1069 DPRINTF(rcs, DGEN, (CE_CONT, "rmc_comm_drvintf_fini:destroy Mx/CVs\n")); in rmc_comm_drvintf_fini()
1071 cv_destroy(rcs->drvi_state.dreq_sig_cv); in rmc_comm_drvintf_fini()
1072 mutex_destroy(rcs->drvi_state.dreq_mutex); in rmc_comm_drvintf_fini()