Lines Matching refs:chain
255 TAILQ_REMOVE(&sc->free_list, acb, chain);
279 TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
379 for (acb = sc->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
385 TAILQ_REMOVE(&sc->ready_list, acb, chain);
458 } else if (sc->ready_list.tqh_last == &acb->chain.tqe_next) {
459 TAILQ_REMOVE(&sc->ready_list, acb, chain);
464 acb2 = acb2->chain.tqe_next)
466 TAILQ_REMOVE(&sc->nexus_list, acb, chain);
474 else if (acb->chain.tqe_next) {
475 TAILQ_REMOVE(&sc->ready_list, acb, chain);
488 TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
700 TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
778 memset(&acb->ds.chain, 0, sizeof (acb->ds.chain));
826 acb->ds.chain[nchain].databuf = (char *) kvtop (addr);
829 acb->ds.chain[nchain].datalen = tcount;
832 if (acb->ds.chain[nchain].databuf == dmaend) {
833 dmaend += acb->ds.chain[nchain].datalen;
834 acb->ds.chain[nchain].datalen = 0;
835 acb->ds.chain[--nchain].datalen += tcount;
841 dmaend = acb->ds.chain[nchain].databuf +
842 acb->ds.chain[nchain].datalen;
843 acb->ds.chain[nchain].datalen = tcount;
855 printf (" [%d] %8p %lx\n", i, acb->ds.chain[i].databuf,
856 acb->ds.chain[i].datalen);
1068 if (acb->ds.chain[1].datalen) {
1069 for (i = 0; acb->ds.chain[i].datalen; ++i)
1070 printf("chain[%d] addr %p len %lx\n",
1071 i, acb->ds.chain[i].databuf,
1072 acb->ds.chain[i].datalen);
1164 acb->ds.chain[0].databuf, acb->ds.chain[0].datalen, dfifo, dbc, sstat1, siopstarts, acb);
1182 if (acb->iob_curlen && acb->iob_curlen != acb->ds.chain[0].datalen)
1183 printf("%s: iob_curbuf/len already set? n %x iob %lx/%lx chain[0] %p/%lx\n",
1185 acb->ds.chain[0].databuf, acb->ds.chain[0].datalen);
1193 acb->iob_curbuf = (u_long)acb->ds.chain[n].databuf;
1194 acb->iob_curlen = acb->ds.chain[n].datalen;
1207 * Adjust the DMA chain so that the data transfer begins
1216 printf ("%s: adjusting DMA chain\n",
1225 if (acb->ds.chain[i].datalen == 0)
1227 if (acb->iob_curbuf >= (long)acb->ds.chain[i].databuf &&
1228 acb->iob_curbuf < (long)(acb->ds.chain[i].databuf +
1229 acb->ds.chain[i].datalen))
1232 if (i >= DMAMAXIO || acb->ds.chain[i].datalen == 0) {
1243 printf(" chain[0]: %p/%lx -> %lx/%lx\n",
1244 acb->ds.chain[0].databuf,
1245 acb->ds.chain[0].datalen,
1249 acb->ds.chain[0].databuf = (char *)acb->iob_curbuf;
1250 acb->ds.chain[0].datalen = acb->iob_curlen;
1251 for (j = 1, ++i; i < DMAMAXIO && acb->ds.chain[i].datalen; ++i, ++j) {
1254 printf(" chain[%d]: %p/%lx -> %p/%lx\n", j,
1255 acb->ds.chain[j].databuf,
1256 acb->ds.chain[j].datalen,
1257 acb->ds.chain[i].databuf,
1258 acb->ds.chain[i].datalen);
1260 acb->ds.chain[j].databuf = acb->ds.chain[i].databuf;
1261 acb->ds.chain[j].datalen = acb->ds.chain[i].datalen;
1264 acb->ds.chain[j].datalen = 0;
1265 DCIAS(kvtop((void *)&acb->ds.chain));
1274 TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
1304 TAILQ_INSERT_HEAD(&sc->ready_list, sc->sc_nexus, chain);
1314 acb = acb->chain.tqe_next) {
1318 TAILQ_REMOVE(&sc->nexus_list, acb, chain);
1672 acb = acb->chain.tqe_next;
1679 acb = acb->chain.tqe_next;
1686 acb = acb->chain.tqe_next;