Lines Matching refs:cmd_list
197 * Signal the "cmd_list" condition variable, if necessary.
859 hermon_cmdlist_t *cmd_list;
862 cmd_list = &state->hs_cmd_list;
863 mutex_enter(&cmd_list->cml_lock);
866 ASSERT(cmd_list->cml_num_alloc != 0);
873 while (cmd_list->cml_entries_free == 0) {
876 mutex_exit(&cmd_list->cml_lock);
890 cmd_list->cml_waiters++;
892 cv_wait(&cmd_list->cml_cv, &cmd_list->cml_lock);
897 head = cmd_list->cml_head_indx;
898 *cmd_ptr = &cmd_list->cml_cmd[head];
905 cmd_list->cml_cmd[next].cmd_prev = prev;
906 cmd_list->cml_cmd[prev].cmd_next = next;
907 cmd_list->cml_head_indx = next;
910 cmd_list->cml_entries_free--;
912 mutex_exit(&cmd_list->cml_lock);
925 hermon_cmdlist_t *cmd_list;
928 cmd_list = &state->hs_cmd_list;
929 mutex_enter(&cmd_list->cml_lock);
939 if (cmd_list->cml_entries_free++ != 0) {
941 (*cmd_ptr)->cmd_next = cmd_list->cml_head_indx;
942 (*cmd_ptr)->cmd_prev = cmd_list->cml_tail_indx;
945 cmd_list->cml_cmd[cmd_list->cml_head_indx].cmd_prev = cmd_indx;
946 cmd_list->cml_cmd[cmd_list->cml_tail_indx].cmd_next = cmd_indx;
949 cmd_list->cml_tail_indx = cmd_indx;
957 cmd_list->cml_head_indx = cmd_indx;
958 cmd_list->cml_tail_indx = cmd_indx;
962 if (cmd_list->cml_waiters > 0) {
963 cmd_list->cml_waiters--;
964 cv_signal(&cmd_list->cml_cv);
970 mutex_exit(&cmd_list->cml_lock);