ccc_t
ccc_t ac_ccc; /* for GHD module */
ghd_doneq_put_head(ccc_t *cccp, gcmd_t *gcmdp)
ghd_doneq_put_tail(ccc_t *cccp, gcmd_t *gcmdp)
ghd_doneq_get(ccc_t *cccp)
ghd_doneq_pollmode_enter(ccc_t *cccp)
ghd_doneq_pollmode_exit(ccc_t *cccp)
ccc_t *cccp = (ccc_t *)arg;
ghd_do_reset_notify_callbacks(ccc_t *cccp)
ccc_t *cccp,
ghd_unregister(ccc_t *cccp)
ghd_intr(ccc_t *cccp, void *intr_status)
ghd_poll(ccc_t *cccp,
static gcmd_t *ghd_doneq_get(ccc_t *cccp);
static void ghd_doneq_pollmode_enter(ccc_t *cccp);
static void ghd_doneq_pollmode_exit(ccc_t *cccp);
static void ghd_do_reset_notify_callbacks(ccc_t *cccp);
static int ghd_poll(ccc_t *cccp, gpoll_t polltype, ulong_t polltime,
ghd_tran_abort(ccc_t *cccp, gcmd_t *gcmdp, gtgt_t *gtgtp, void *intr_status)
ghd_tran_abort_lun(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status)
ghd_doneq_init(ccc_t *cccp)
ghd_tran_reset_target(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status)
ghd_tran_reset_bus(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status)
ghd_transport(ccc_t *cccp,
int ghd_reset_notify(ccc_t *cccp,
ghd_freeze_waitq(ccc_t *cccp, int delay)
ghd_queue_hold(ccc_t *cccp)
ghd_queue_unhold(ccc_t *cccp)
ghd_trigger_reset_notify(ccc_t *cccp)
ghd_complete(ccc_t *cccp, gcmd_t *gcmdp)
void ghd_complete(ccc_t *cccp, gcmd_t *cmdp);
void ghd_doneq_put_head(ccc_t *cccp, gcmd_t *cmdp);
void ghd_doneq_put_tail(ccc_t *cccp, gcmd_t *cmdp);
int ghd_intr(ccc_t *cccp, void *status);
int ghd_register(char *, ccc_t *, dev_info_t *, int, void *hba_handle,
void ghd_unregister(ccc_t *cccp);
int ghd_transport(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
int ghd_tran_abort(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
int ghd_tran_abort_lun(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_tran_reset_target(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_tran_reset_bus(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_reset_notify(ccc_t *cccp, gtgt_t *gtgtp, int flag,
void ghd_freeze_waitq(ccc_t *cccp, int delay);
void ghd_trigger_reset_notify(ccc_t *cccp);
void ghd_queue_hold(ccc_t *cccp);
void ghd_queue_unhold(ccc_t *cccp);
int ghd_timer_attach(ccc_t *cccp, tmr_t *tmrp,
void ghd_timer_detach(ccc_t *cccp);
void ghd_timer_newstate(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
void ghd_timer_poll(ccc_t *cccp, gtimer_poll_t calltype);
void ghd_timer_start(ccc_t *cccp, gcmd_t *cmdp, long cmd_timeout);
void ghd_timer_stop(ccc_t *cccp, gcmd_t *cmdp);
gtgt_t *ghd_target_init(dev_info_t *, dev_info_t *, ccc_t *, size_t,
void ghd_target_free(dev_info_t *, dev_info_t *, ccc_t *, gtgt_t *);
void ghd_waitq_shuffle_up(ccc_t *, gdev_t *);
void ghd_waitq_delete(ccc_t *, gcmd_t *);
int ghd_waitq_process_and_mutex_hold(ccc_t *);
void ghd_waitq_process_and_mutex_exit(ccc_t *);
ghd_dump_ccc(ccc_t *P)
ghd_dmaget_next_attr(ccc_t *cccp, gcmd_t *gcmdp, long max_transfer_cnt,
ghd_dmaget_attr(ccc_t *cccp,
ghd_dma_buf_bind_attr(ccc_t *cccp,
int ghd_dmaget_attr(ccc_t *cccp, gcmd_t *gcmdp, long count, int sg_size,
int ghd_dma_buf_bind_attr(ccc_t *ccp, gcmd_t *gcmdp, struct buf *bp,
uint_t ghd_dmaget_next_attr(ccc_t *cccp, gcmd_t *gcmdp, long max_transfer_cnt,
ghd_pktfree(ccc_t *cccp,
ghd_tran_init_pkt_attr(ccc_t *cccp,
static struct scsi_pkt *ghd_pktalloc(ccc_t *cccp, struct scsi_address *ap,
ghd_pktalloc(ccc_t *cccp,
void ghd_pktfree(ccc_t *cccp, struct scsi_address *ap,
struct scsi_pkt *ghd_tran_init_pkt_attr(ccc_t *cccp, struct scsi_address *ap,
ghd_timeout_loop(ccc_t *cccp)
ccc_t *cccp;
ghd_timer_newstate(ccc_t *cccp, gcmd_t *gcmdp, gtgt_t *gtgtp,
static gcmd_t *ghd_timeout_get(ccc_t *cccp);
static int ghd_timeout_loop(ccc_t *cccp);
ccc_t *cccp = (ccc_t *)arg;
ghd_timer_poll(ccc_t *cccp, gtimer_poll_t calltype)
ghd_timeout_get(ccc_t *cccp)
ghd_timer_attach(ccc_t *cccp, tmr_t *tmrp,
ghd_timer_detach(ccc_t *cccp)
ccc_t **prevpp;
ghd_timer_start(ccc_t *cccp, gcmd_t *gcmdp, long cmd_timeout)
ghd_timer_stop(ccc_t *cccp, gcmd_t *gcmdp)
ccc_t *cccp,
ghd_waitq_shuffle_up(ccc_t *cccp, gdev_t *gdevp)
ghd_waitq_delete(ccc_t *cccp, gcmd_t *gcmdp)
ghd_waitq_process_and_mutex_hold(ccc_t *cccp)
ccc_t *cccp,
ghd_waitq_process_and_mutex_exit(ccc_t *cccp)
} ccc_t;
void ghd_complete(ccc_t *cccp, gcmd_t *cmdp);
void ghd_async_complete(ccc_t *cccp, gcmd_t *cmdp);
void ghd_doneq_put(ccc_t *cccp, gcmd_t *cmdp);
int ghd_intr(ccc_t *cccp, void *status, int chno);
int ghd_register(char *, ccc_t *, dev_info_t *, int, void *hba_handle,
void ghd_unregister(ccc_t *cccp);
int ghd_transport(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
int ghd_tran_abort(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
int ghd_tran_abort_lun(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_tran_reset_target(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_tran_reset_bus(ccc_t *cccp, gtgt_t *gtgtp, void *intr_status);
int ghd_timer_attach(ccc_t *cccp, tmr_t *tmrp,
void ghd_timer_detach(ccc_t *cccp);
void ghd_timer_newstate(ccc_t *cccp, gcmd_t *cmdp, gtgt_t *gtgtp,
void ghd_timer_poll(ccc_t *cccp);
void ghd_timer_start(ccc_t *cccp, gcmd_t *cmdp, uint32_t cmd_timeout);
void ghd_timer_stop(ccc_t *cccp, gcmd_t *cmdp);
gtgt_t *ghd_target_init(dev_info_t *, dev_info_t *, ccc_t *, size_t,
void ghd_target_free(dev_info_t *, dev_info_t *, ccc_t *, gtgt_t *);
void ghd_waitq_shuffle_up(ccc_t *, gdev_t *);
void ghd_waitq_delete(ccc_t *, gcmd_t *);
int ghd_waitq_process_and_mutex_hold(ccc_t *);
void ghd_waitq_process_and_mutex_exit(ccc_t *);
void ghd_pktfree(ccc_t *cccp, struct scsi_address *ap,