Lines Matching refs:cmd

52 void	mrsas_free_frame(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd);
53 void *mrsas_alloc_frame(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd);
60 extern void mrsas_release_mfi_cmd(struct mrsas_mfi_cmd *cmd);
63 struct mrsas_mfi_cmd *cmd);
82 struct mrsas_mfi_cmd *cmd = NULL;
113 cmd = mrsas_get_mfi_cmd(sc);
114 if (!cmd) {
115 device_printf(sc->mrsas_dev, "Failed to get a free cmd for IOCTL\n");
120 * into our cmd's frames. cmd->frame's context will get overwritten
124 memcpy(cmd->frame, user_ioc->frame.raw, 2 * MEGAMFI_FRAME_SIZE);
125 cmd->frame->hdr.context = cmd->index;
126 cmd->frame->hdr.pad_0 = 0;
127 cmd->frame->hdr.flags &= ~(MFI_FRAME_IEEE | MFI_FRAME_SGL64 |
139 ((unsigned long)cmd->frame + user_ioc->sgl_off);
246 (unsigned long *)((unsigned long)cmd->frame + user_ioc->sense_off);
251 * cmd to the SCSI mid-layer
253 cmd->sync_cmd = 1;
254 ret = mrsas_issue_blocked_cmd(sc, cmd);
262 cmd->sync_cmd = 0;
305 memcpy(&user_ioc->frame.hdr.cmd_status, &cmd->frame->hdr.cmd_status,
342 mrsas_release_mfi_cmd(cmd);
362 struct mrsas_mfi_cmd *cmd;
390 cmd = sc->mfi_cmd_list[i];
391 memset(cmd, 0, sizeof(struct mrsas_mfi_cmd));
392 cmd->index = i;
393 cmd->ccb_ptr = NULL;
394 cmd->sc = sc;
395 TAILQ_INSERT_TAIL(&(sc->mrsas_mfi_cmd_list_head), cmd, next);
403 cmd = sc->mfi_cmd_list[i];
404 mrsas_free_frame(sc, cmd);
414 * mrsas_create_frame_pool: Creates DMA pool for cmd frames
427 struct mrsas_mfi_cmd *cmd;
444 cmd = sc->mfi_cmd_list[i];
445 cmd->frame = mrsas_alloc_frame(sc, cmd);
446 if (cmd->frame == NULL) {
461 memset(cmd->frame, 0, MRSAS_MFI_FRAME_SIZE);
462 cmd->frame->io.context = cmd->index;
463 cmd->frame->io.pad_0 = 0;
477 mrsas_alloc_frame(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd)
481 if (bus_dmamem_alloc(sc->mficmd_frame_tag, (void **)&cmd->frame_mem,
482 BUS_DMA_NOWAIT, &cmd->frame_dmamap)) {
486 if (bus_dmamap_load(sc->mficmd_frame_tag, cmd->frame_dmamap,
487 cmd->frame_mem, frame_size, mrsas_alloc_cb,
488 &cmd->frame_phys_addr, BUS_DMA_NOWAIT)) {
492 return (cmd->frame_mem);
524 mrsas_free_frame(struct mrsas_softc *sc, struct mrsas_mfi_cmd *cmd)
526 if (cmd->frame_phys_addr)
527 bus_dmamap_unload(sc->mficmd_frame_tag, cmd->frame_dmamap);
528 if (cmd->frame_mem != NULL)
529 bus_dmamem_free(sc->mficmd_frame_tag, cmd->frame_mem, cmd->frame_dmamap);