Lines Matching refs:msg

385 	consms_msg_t		*msg;
422 if ((msg = consms_mux_find_msg(iocbp->ioc_id)) != NULL) {
423 consms_mux_iocdata(msg, mp);
543 consms_msg_t *msg;
593 if ((msg = consms_mux_find_msg(iocbp->ioc_id)) != NULL) {
594 consms_mux_ack(msg, mp);
603 if ((msg = consms_mux_find_msg(copyreq->cq_id)) != NULL) {
604 consms_mux_copyreq(q, msg, mp);
989 * There is a global msg list (consms_mux_msg),
993 * consms_mux_link_msg links a msg into the list,
994 * consms_mux_unlink_msg unlinks a msg from the list,
995 * consms_mux_find_msg finds a msg from the list
998 * The id of each msg is taken from stream's mp,
1002 consms_mux_link_msg(consms_msg_t *msg)
1005 msg->msg_next = consms_mux_msg;
1006 consms_mux_msg = msg;
1013 consms_msg_t *msg;
1018 for (msg = consms_mux_msg; msg != NULL;
1019 prev_msg = msg, msg = msg->msg_next) {
1020 if (msg->msg_id == msg_id)
1024 if (msg != NULL) {
1026 prev_msg->msg_next = msg->msg_next;
1030 msg->msg_next = NULL;
1034 return (msg);
1040 consms_msg_t *msg;
1043 for (msg = consms_mux_msg; msg != NULL; msg = msg->msg_next) {
1044 if (msg->msg_id == msg_id)
1049 return (msg);
1055 * For non-transparent ioctl, the msg->msg_rsp_list
1058 * messages from lower mice. So here if msg->msg_rsp_list
1066 consms_mux_ack(consms_msg_t *msg, mblk_t *mp)
1071 msg->msg_num_responses++;
1083 ASSERT(msg->msg_rsp_list == NULL);
1084 if (msg->msg_ack_mp == NULL) {
1085 msg->msg_ack_mp = mp;
1094 if (msg->msg_num_responses == msg->msg_num_requests) {
1095 if ((msg->msg_ack_mp == NULL) &&
1096 (msg->msg_rsp_list == NULL)) {
1102 } else if (msg->msg_rsp_list == NULL) {
1106 ack_mp = msg->msg_ack_mp;
1107 consms_mux_cache_states(msg->msg_request);
1115 * (msg->msg_rsp_list != NULL)
1119 ack_mp = msg->msg_rsp_list->rsp_mp;
1123 qreply(msg->msg_queue, ack_mp);
1125 if (msg->msg_rsp_list == NULL) {
1129 if (msg->msg_request)
1130 freemsg(msg->msg_request);
1131 (void) consms_mux_unlink_msg(msg->msg_id);
1132 kmem_free(msg, sizeof (*msg));
1146 * msg->msg_rsp_list, reply upper layer using the first
1152 consms_mux_copyreq(queue_t *q, consms_msg_t *msg, mblk_t *mp)
1159 if (msg->msg_rsp_list) {
1160 rsp->rsp_next = msg->msg_rsp_list;
1162 msg->msg_rsp_list = rsp;
1163 msg->msg_num_responses++;
1165 if (msg->msg_num_responses == msg->msg_num_requests) {
1166 consms_mux_max_wheel_report(msg->msg_rsp_list->rsp_mp);
1167 qreply(msg->msg_queue, msg->msg_rsp_list->rsp_mp);
1215 * msg->msg_rsp_list with the M_IOCDATA.
1218 consms_mux_iocdata(consms_msg_t *msg, mblk_t *mp)
1226 ASSERT(msg->msg_rsp_list != NULL);
1237 freemsg(msg->msg_request);
1238 msg->msg_request = copymsg(mp);
1244 msg->msg_num_requests = msg->msg_num_responses;
1245 msg->msg_num_responses = 0;
1253 first = msg->msg_rsp_list;
1255 msg->msg_rsp_list = NULL;
1266 msg->msg_num_requests = request_nums;
1355 consms_msg_t *msg;
1361 msg = (consms_msg_t *)kmem_zalloc(sizeof (*msg), KM_SLEEP);
1362 msg->msg_id = iocp->ioc_id;
1363 msg->msg_request = mp;
1364 msg->msg_queue = q;
1365 msg->msg_num_requests = consms_state.consms_num_lqs;
1366 consms_mux_link_msg(msg);
1379 msg->msg_num_requests--;
1383 if (msg->msg_num_requests <= 0) {
1387 (void) consms_mux_unlink_msg(msg->msg_id);
1388 kmem_free(msg, sizeof (*msg));