/illumos-gate/usr/src/uts/intel/io/dktp/hba/ghd/ |
H A D | ghd.c | 45 static gcmd_t *ghd_doneq_get(ccc_t *cccp); 46 static void ghd_doneq_pollmode_enter(ccc_t *cccp); 47 static void ghd_doneq_pollmode_exit(ccc_t *cccp); 49 static void ghd_do_reset_notify_callbacks(ccc_t *cccp); 51 static int ghd_poll(ccc_t *cccp, gpoll_t polltype, ulong_t polltime, 66 ghd_doneq_init(ccc_t *cccp) in ghd_doneq_init() argument 70 L2_INIT(&cccp->ccc_doneq); in ghd_doneq_init() 71 cccp->ccc_hba_pollmode = TRUE; in ghd_doneq_init() 73 if (ddi_add_softintr(cccp->ccc_hba_dip, DDI_SOFTINT_LOW, in ghd_doneq_init() 74 &cccp->ccc_doneq_softid, &iblock, NULL, in ghd_doneq_init() [all …]
|
H A D | ghd_waitq.c | 39 ccc_t *cccp, in ghd_target_init() argument 62 gtgtp->gt_ccc = cccp; in ghd_target_init() 78 mutex_enter(&cccp->ccc_hba_mutex); in ghd_target_init() 79 mutex_enter(&cccp->ccc_waitq_mutex); in ghd_target_init() 88 gdevp = CCCP2GDEVP(cccp); in ghd_target_init() 115 GDEV_QATTACH(gdevp, cccp, maxactive); in ghd_target_init() 129 ghd_waitq_process_and_mutex_exit(cccp); in ghd_target_init() 138 ccc_t *cccp, in ghd_target_free() argument 152 mutex_enter(&cccp->ccc_hba_mutex); in ghd_target_free() 153 mutex_enter(&cccp->ccc_waitq_mutex); in ghd_target_free() [all …]
|
H A D | ghd_timer.c | 42 static gcmd_t *ghd_timeout_get(ccc_t *cccp); 43 static int ghd_timeout_loop(ccc_t *cccp); 173 ghd_timeout_loop(ccc_t *cccp) in ghd_timeout_loop() argument 179 mutex_enter(&cccp->ccc_activel_mutex); in ghd_timeout_loop() 181 gcmdp = (gcmd_t *)L2_next(&cccp->ccc_activel); in ghd_timeout_loop() 192 mutex_exit(&cccp->ccc_activel_mutex); in ghd_timeout_loop() 243 ccc_t *cccp; in ghd_timeout() local 256 if ((cccp = tmrp->t_ccc_listp) == NULL) { in ghd_timeout() 269 if (ghd_timeout_loop(cccp)) { in ghd_timeout() 270 cccp->ccc_timeout_pending = 1; in ghd_timeout() [all …]
|
H A D | ghd.h | 205 #define GHBA_QHEAD(cccp) ((cccp)->ccc_waitq.Q_qhead) argument 206 #define GHBA_MAXACTIVE(cccp) ((cccp)->ccc_waitq.Q_maxactive) argument 207 #define GHBA_NACTIVE(cccp) ((cccp)->ccc_waitq.Q_nactive) argument 210 #define CCCP_INIT(cccp) { \ argument 211 L1HEADER_INIT(&(cccp)->ccc_devs); \ 212 L2_INIT(&(cccp)->ccc_doneq); \ 213 L2_INIT(&(cccp)->ccc_reset_notify_list); \ 217 #define CCCP2GDEVP(cccp) \ argument 218 (L1_EMPTY(&(cccp)->ccc_devs) \ 220 : (gdev_t *)((cccp)->ccc_devs.l1_headp->le_datap)) [all …]
|
H A D | ghd_scsa.c | 34 static struct scsi_pkt *ghd_pktalloc(ccc_t *cccp, struct scsi_address *ap, 84 ghd_pktalloc(ccc_t *cccp, in ghd_pktalloc() argument 102 pktp = scsi_hba_pkt_alloc(cccp->ccc_hba_dip, ap, cmdlen, statuslen, in ghd_pktalloc() 133 if (!(*cccp->ccc_ccballoc)(gtgtp, gcmdp, cmdlen, statuslen, tgtlen, in ghd_pktalloc() 149 ghd_pktfree(ccc_t *cccp, in ghd_pktfree() argument 154 (void *)cccp, (void *)ap, (void *)pktp)); in ghd_pktfree() 157 (*cccp->ccc_ccbfree)(PKTP2GCMDP(pktp)); in ghd_pktfree() 165 ghd_tran_init_pkt_attr(ccc_t *cccp, in ghd_tran_init_pkt_attr() argument 188 pktp = ghd_pktalloc(cccp, ap, cmdlen, statuslen, tgtlen, in ghd_tran_init_pkt_attr() 237 if (!ghd_dma_buf_bind_attr(cccp, gcmdp, bp, dma_flags, in ghd_tran_init_pkt_attr() [all …]
|
H A D | ghd_waitq.h | 81 #define GDEV_QATTACH(gdevp, cccp, max) { \ argument 82 GHD_WAITQ_INIT(&(gdevp)->gd_waitq, &(cccp)->ccc_waitq, (max)); \ 86 L1_add(&(cccp)->ccc_devs, &(gdevp)->gd_devlist, (gdevp)); \ 89 #define GDEV_QDETACH(gdevp, cccp) \ argument 90 L1_delete(&(cccp)->ccc_devs, &(gdevp)->gd_devlist)
|
H A D | ghd_dma.c | 51 ghd_dma_buf_bind_attr(ccc_t *cccp, in ghd_dma_buf_bind_attr() argument 71 status = ddi_dma_alloc_handle(cccp->ccc_hba_dip, sg_attrp, callback, in ghd_dma_buf_bind_attr() 135 ghd_dmaget_next_attr(ccc_t *cccp, gcmd_t *gcmdp, long max_transfer_cnt, in ghd_dmaget_next_attr() argument 160 (*cccp->ccc_sg_func)(gcmdp, &cookie, single_seg, num_segs); in ghd_dmaget_next_attr() 196 ghd_dmaget_attr(ccc_t *cccp, in ghd_dmaget_attr() argument 242 *xfer = ghd_dmaget_next_attr(cccp, gcmdp, count, sg_size, cookie); in ghd_dmaget_attr()
|
H A D | ghd_dma.h | 39 int ghd_dmaget_attr(ccc_t *cccp, gcmd_t *gcmdp, long count, int sg_size, 48 uint_t ghd_dmaget_next_attr(ccc_t *cccp, gcmd_t *gcmdp, long max_transfer_cnt,
|
H A D | ghd_scsa.h | 48 void ghd_pktfree(ccc_t *cccp, struct scsi_address *ap, 51 struct scsi_pkt *ghd_tran_init_pkt_attr(ccc_t *cccp, struct scsi_address *ap,
|
/illumos-gate/usr/src/uts/sun/sys/dada/adapters/ghd/ |
H A D | ghd.h | 190 #define GHBA_QHEAD(cccp) ((cccp)->ccc_waitq.Q_qhead) argument 191 #define GHBA_MAXACTIVE(cccp) ((cccp)->ccc_waitq.Q_maxactive) argument 192 #define GHBA_NACTIVE(cccp) ((cccp)->ccc_waitq.Q_nactive) argument 195 #define CCCP_INIT(cccp) { \ argument 196 L1HEADER_INIT(&(cccp)->ccc_devs); \ 197 L2_INIT(&(cccp)->ccc_doneq); \ 201 #define CCCP2GDEVP(cccp) \ argument 202 (L1_EMPTY(&(cccp)->ccc_devs) \ 204 : (gdev_t *)((cccp)->ccc_devs.l1_headp->le_datap)) 213 void ghd_complete(ccc_t *cccp, gcmd_t *cmdp); [all …]
|
H A D | ghd_waitq.h | 83 #define GDEV_QATTACH(gdevp, cccp, max) { \ argument 84 GHD_WAITQ_INIT(&(gdevp)->gd_waitq, &(cccp)->ccc_waitq, (max)); \ 88 L1_add(&(cccp)->ccc_devs, &(gdevp)->gd_devlist, (gdevp)); \ 91 #define GDEV_QDETACH(gdevp, cccp) \ argument 92 L1_delete(&(cccp)->ccc_devs, &(gdevp)->gd_devlist)
|
H A D | ghd_scsa.h | 49 void ghd_pktfree(ccc_t *cccp, struct scsi_address *ap,
|