Lines Matching refs:cm

170 typedef void mpr_command_callback_t(struct mpr_softc *, struct mpr_command *cm);
464 mpr_free_command(struct mpr_softc *sc, struct mpr_command *cm)
468 if (cm->cm_reply != NULL)
469 mpr_free_reply(sc, cm->cm_reply_data);
470 cm->cm_reply = NULL;
471 cm->cm_flags = 0;
472 cm->cm_complete = NULL;
473 cm->cm_complete_data = NULL;
474 cm->cm_ccb = NULL;
475 cm->cm_targ = NULL;
476 cm->cm_max_segs = 0;
477 cm->cm_lun = 0;
478 cm->cm_state = MPR_CM_STATE_FREE;
479 cm->cm_data = NULL;
480 cm->cm_length = 0;
481 cm->cm_out_len = 0;
482 cm->cm_sglsize = 0;
483 cm->cm_sge = NULL;
485 TAILQ_FOREACH_SAFE(chain, &cm->cm_chain_list, chain_link, chain_temp) {
486 TAILQ_REMOVE(&cm->cm_chain_list, chain, chain_link);
489 TAILQ_INSERT_TAIL(&sc->req_list, cm, cm_link);
495 struct mpr_command *cm;
497 cm = TAILQ_FIRST(&sc->req_list);
498 if (cm == NULL)
501 TAILQ_REMOVE(&sc->req_list, cm, cm_link);
502 KASSERT(cm->cm_state == MPR_CM_STATE_FREE, ("mpr: Allocating busy command\n"));
503 cm->cm_state = MPR_CM_STATE_BUSY;
504 return (cm);
508 mpr_free_high_priority_command(struct mpr_softc *sc, struct mpr_command *cm)
512 if (cm->cm_reply != NULL)
513 mpr_free_reply(sc, cm->cm_reply_data);
514 cm->cm_reply = NULL;
515 cm->cm_flags = 0;
516 cm->cm_complete = NULL;
517 cm->cm_complete_data = NULL;
518 cm->cm_ccb = NULL;
519 cm->cm_targ = NULL;
520 cm->cm_lun = 0;
521 cm->cm_state = MPR_CM_STATE_FREE;
522 TAILQ_FOREACH_SAFE(chain, &cm->cm_chain_list, chain_link, chain_temp) {
523 TAILQ_REMOVE(&cm->cm_chain_list, chain, chain_link);
526 TAILQ_INSERT_TAIL(&sc->high_priority_req_list, cm, cm_link);
532 struct mpr_command *cm;
534 cm = TAILQ_FIRST(&sc->high_priority_req_list);
535 if (cm == NULL)
538 TAILQ_REMOVE(&sc->high_priority_req_list, cm, cm_link);
539 KASSERT(cm->cm_state == MPR_CM_STATE_FREE, ("mpr: Allocating busy command\n"));
540 cm->cm_state = MPR_CM_STATE_BUSY;
541 return (cm);
662 void mpr_init_sge(struct mpr_command *cm, void *req, void *sge);
668 int mpr_map_command(struct mpr_softc *sc, struct mpr_command *cm);
669 int mpr_wait_command(struct mpr_softc *sc, struct mpr_command *cm,
671 int mpr_request_polled(struct mpr_softc *sc, struct mpr_command *cm);