ACB
static int arcmsr_dma_alloc(struct ACB *acb,
static int arcmsr_dma_move(struct ACB *acb,
static void arcmsr_handle_iop_bus_hold(struct ACB *acb);
static void arcmsr_hbc_message_isr(struct ACB *acb);
static void arcmsr_pcidev_disattach(struct ACB *acb);
static void arcmsr_iop_init(struct ACB *acb);
static void arcmsr_iop_parking(struct ACB *acb);
struct ACB *acb;
acb = (struct ACB *)ap->a_hba_tran->tran_hba_private;
static void arcmsr_log(struct ACB *acb, int level, char *fmt, ...);
static void arcmsr_warn(struct ACB *acb, char *fmt, ...);
static void arcmsr_mutex_init(struct ACB *acb);
static void arcmsr_remove_intr(struct ACB *acb);
static void arcmsr_pcidev_disattach(struct ACB *acb);
static void arcmsr_iop_message_read(struct ACB *acb);
static void arcmsr_post_ioctldata2iop(struct ACB *acb);
static void arcmsr_enable_allintr(struct ACB *acb, uint32_t intmask_org);
static void arcmsr_done4abort_postqueue(struct ACB *acb);
static int arcmsr_seek_cmd2abort(struct ACB *acb, struct scsi_pkt *abortpkt);
static int arcmsr_iop_message_xfer(struct ACB *acb, struct scsi_pkt *pkt);
static int arcmsr_post_ccb(struct ACB *acb, struct CCB *ccb);
static uint8_t arcmsr_iop_reset(struct ACB *acb);
struct ACB *acb;
static uint32_t arcmsr_disable_allintr(struct ACB *acb);
static uint32_t arcmsr_iop_confirm(struct ACB *acb);
static struct CCB *arcmsr_get_freeccb(struct ACB *acb);
struct ACB *acb;
static void arcmsr_flush_hba_cache(struct ACB *acb);
acb = (struct ACB *)ap->a_hba_tran->tran_hba_private;
static void arcmsr_flush_hbb_cache(struct ACB *acb);
static void arcmsr_flush_hbc_cache(struct ACB *acb);
static void arcmsr_stop_hba_bgrb(struct ACB *acb);
struct ACB *acb;
static void arcmsr_stop_hbb_bgrb(struct ACB *acb);
static void arcmsr_stop_hbc_bgrb(struct ACB *acb);
static void arcmsr_start_hba_bgrb(struct ACB *acb);
static void arcmsr_start_hbb_bgrb(struct ACB *acb);
static void arcmsr_start_hbc_bgrb(struct ACB *acb);
arcmsr_dma_alloc(struct ACB *acb, struct scsi_pkt *pkt,
static void arcmsr_mutex_destroy(struct ACB *acb);
static void arcmsr_polling_hba_ccbdone(struct ACB *acb, struct CCB *poll_ccb);
static void arcmsr_polling_hbb_ccbdone(struct ACB *acb, struct CCB *poll_ccb);
static void arcmsr_polling_hbc_ccbdone(struct ACB *acb, struct CCB *poll_ccb);
static dev_info_t *arcmsr_find_child(struct ACB *acb, uint16_t tgt,
static struct QBUFFER *arcmsr_get_iop_rqbuffer(struct ACB *acb);
static int arcmsr_add_intr(struct ACB *, int);
arcmsr_dma_move(struct ACB *acb, struct scsi_pkt *pkt, struct buf *bp)
arcmsr_post_ccb(struct ACB *acb, struct CCB *ccb)
struct ACB *acb = ccb->acb;
arcmsr_report_ccb_state(struct ACB *acb, struct CCB *ccb, boolean_t error)
arcmsr_drain_donequeue(struct ACB *acb, struct CCB *ccb, boolean_t error)
arcmsr_seek_cmd2abort(struct ACB *acb, struct scsi_pkt *abortpkt)
arcmsr_find_child(struct ACB *acb, uint16_t tgt, uint8_t lun)
arcmsr_config_child(struct ACB *acb, struct scsi_device *sd, dev_info_t **dipp)
arcmsr_config_lun(struct ACB *acb, uint16_t tgt, uint8_t lun, dev_info_t **ldip)
arcmsr_add_intr(struct ACB *acb, int intr_type)
arcmsr_remove_intr(struct ACB *acb)
arcmsr_mutex_init(struct ACB *acb)
arcmsr_mutex_destroy(struct ACB *acb)
arcmsr_initialize(struct ACB *acb)
ret = ddi_soft_state_init(&arcmsr_soft_state, sizeof (struct ACB), 1);
struct ACB *acb;
arcmsr_vlog(struct ACB *acb, int level, char *fmt, va_list ap)
arcmsr_log(struct ACB *acb, int level, char *fmt, ...)
arcmsr_warn(struct ACB *acb, char *fmt, ...)
arcmsr_get_complete_ccb_from_list(struct ACB *acb)
arcmsr_get_freeccb(struct ACB *acb)
struct ACB *acb;
struct ACB *acb = ccb->acb;
struct ACB *acb = (struct ACB *)arg;
arcmsr_abort_dr_ccbs(struct ACB *acb, uint16_t target, uint8_t lun)
arcmsr_scsi_device_probe(struct ACB *acb, uint16_t tgt, uint8_t lun)
arcmsr_dr_handle(struct ACB *acb)
struct ACB *acb = (struct ACB *)arg;
arcmsr_disable_allintr(struct ACB *acb)
arcmsr_enable_allintr(struct ACB *acb, uint32_t intmask_org)
arcmsr_iop_parking(struct ACB *acb)
arcmsr_hba_wait_msgint_ready(struct ACB *acb)
struct ACB *acb;
arcmsr_hbb_wait_msgint_ready(struct ACB *acb)
arcmsr_hbc_wait_msgint_ready(struct ACB *acb)
arcmsr_flush_hba_cache(struct ACB *acb)
arcmsr_flush_hbb_cache(struct ACB *acb)
arcmsr_flush_hbc_cache(struct ACB *acb)
arcmsr_abort_hba_allcmd(struct ACB *acb)
arcmsr_abort_hbb_allcmd(struct ACB *acb)
arcmsr_abort_hbc_allcmd(struct ACB *acb)
arcmsr_done4abort_postqueue(struct ACB *acb)
arcmsr_get_echo_from_iop(struct ACB *acb)
arcmsr_iop_reset(struct ACB *acb)
arcmsr_get_iop_rqbuffer(struct ACB *acb)
arcmsr_get_iop_wqbuffer(struct ACB *acb)
arcmsr_iop_message_read(struct ACB *acb)
arcmsr_iop_message_wrote(struct ACB *acb)
arcmsr_post_ioctldata2iop(struct ACB *acb)
arcmsr_stop_hba_bgrb(struct ACB *acb)
arcmsr_stop_hbb_bgrb(struct ACB *acb)
arcmsr_stop_hbc_bgrb(struct ACB *acb)
arcmsr_iop_message_xfer(struct ACB *acb, struct scsi_pkt *pkt)
arcmsr_pcidev_disattach(struct ACB *acb)
struct ACB *acb;
arcmsr_get_hba_config(struct ACB *acb)
acb = (struct ACB *)scsi_hba_transport->tran_hba_private;
arcmsr_get_hbb_config(struct ACB *acb)
arcmsr_get_hbc_config(struct ACB *acb)
struct ACB *acb;
arcmsr_start_hba_bgrb(struct ACB *acb)
arcmsr_start_hbb_bgrb(struct ACB *acb)
arcmsr_start_hbc_bgrb(struct ACB *acb)
arcmsr_polling_hba_ccbdone(struct ACB *acb, struct CCB *poll_ccb)
arcmsr_polling_hbb_ccbdone(struct ACB *acb, struct CCB *poll_ccb)
arcmsr_polling_hbc_ccbdone(struct ACB *acb, struct CCB *poll_ccb)
arcmsr_hba_hardware_reset(struct ACB *acb)
arcmsr_abort_host_command(struct ACB *acb)
arcmsr_handle_iop_bus_hold(struct ACB *acb)
arcmsr_iop2drv_data_wrote_handle(struct ACB *acb)
arcmsr_iop2drv_data_read_handle(struct ACB *acb)
arcmsr_hba_doorbell_isr(struct ACB *acb)
arcmsr_hbc_doorbell_isr(struct ACB *acb)
arcmsr_hba_message_isr(struct ACB *acb)
arcmsr_hbb_message_isr(struct ACB *acb)
arcmsr_hbc_message_isr(struct ACB *acb)
arcmsr_hba_postqueue_isr(struct ACB *acb)
arcmsr_hbb_postqueue_isr(struct ACB *acb)
arcmsr_hbc_postqueue_isr(struct ACB *acb)
arcmsr_handle_hba_isr(struct ACB *acb)
arcmsr_handle_hbb_isr(struct ACB *acb)
arcmsr_handle_hbc_isr(struct ACB *acb)
struct ACB *acb = (void *)arg;
arcmsr_wait_firmware_ready(struct ACB *acb)
arcmsr_clear_doorbell_queue_buffer(struct ACB *acb)
arcmsr_iop_confirm(struct ACB *acb)
arcmsr_enable_eoi_mode(struct ACB *acb)
arcmsr_iop_init(struct ACB *acb)
struct ACB *acb = tran->tran_hba_private;
struct ACB *acb = (struct ACB *)ap->a_hba_tran->tran_hba_private;
struct ACB *acb = (struct ACB *)ap->a_hba_tran->tran_hba_private;
static int arcmsr_config_child(struct ACB *acb, struct scsi_device *sd,
static int arcmsr_config_lun(struct ACB *acb, uint16_t tgt, uint8_t lun,
struct ACB *acb;
acb = (struct ACB *)ap->a_hba_tran->tran_hba_private;
static uint8_t arcmsr_abort_host_command(struct ACB *acb);
static uint8_t arcmsr_get_echo_from_iop(struct ACB *acb);
static int arcmsr_initialize(struct ACB *acb);
typedef struct ACB *PACB;
struct ACB *acb;