sys/arch/acorn32/podulebus/asc.c
294
asc_dmaok (void *dma_h, bus_dma_tag_t dma_t, struct sbic_acb *acb)
sys/arch/acorn32/podulebus/asc.c
300
asc_dmasetup (void *dma_h, bus_dma_tag_t dma_t, struct sbic_acb *acb, int dir)
sys/arch/acorn32/podulebus/asc.c
312
asc_dmanext (void *dma_h, bus_dma_tag_t dma_t, struct sbic_acb *acb, int dir)
sys/arch/acorn32/podulebus/asc.c
324
asc_dmastop (void *dma_h, bus_dma_tag_t dma_t, struct sbic_acb *acb)
sys/arch/acorn32/podulebus/asc.c
330
asc_dmafinish (void *dma_h, bus_dma_tag_t dma_t, struct sbic_acb *acb)
sys/arch/acorn32/podulebus/sbic.c
1248
sbicicmd(struct sbic_softc *dev, int target, int lun, struct sbic_acb *acb)
sys/arch/acorn32/podulebus/sbic.c
1268
cbuf = &acb->cmd;
sys/arch/acorn32/podulebus/sbic.c
1269
clen = acb->clen;
sys/arch/acorn32/podulebus/sbic.c
1270
buf = acb->data;
sys/arch/acorn32/podulebus/sbic.c
1271
len = acb->datalen;
sys/arch/acorn32/podulebus/sbic.c
1276
acb->sc_tcnt = 0;
sys/arch/acorn32/podulebus/sbic.c
1371
if (acb->datalen <= 0)
sys/arch/acorn32/podulebus/sbic.c
1375
if (sbicxfstart(regs, acb->datalen,
sys/arch/acorn32/podulebus/sbic.c
1379
i = sbicxfin(regs, acb->datalen, acb->data);
sys/arch/acorn32/podulebus/sbic.c
1381
i = sbicxfout(regs, acb->datalen, acb->data,
sys/arch/acorn32/podulebus/sbic.c
1383
acb->data += acb->datalen - i;
sys/arch/acorn32/podulebus/sbic.c
1384
acb->datalen = i;
sys/arch/acorn32/podulebus/sbic.c
1468
acb->datalen,
sys/arch/acorn32/podulebus/sbic.c
1538
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
1543
acb = dev->sc_nexus;
sys/arch/acorn32/podulebus/sbic.c
1546
usedma = acb->flags & ACB_DMA;
sys/arch/acorn32/podulebus/sbic.c
1580
acb->sc_tcnt = 0;
sys/arch/acorn32/podulebus/sbic.c
1588
acb->offset = 0;
sys/arch/acorn32/podulebus/sbic.c
1589
acb->sc_tcnt = 0;
sys/arch/acorn32/podulebus/sbic.c
1591
tcnt = dev->sc_dmasetup(dev->sc_dmah, dev->sc_dmat, acb,
sys/arch/acorn32/podulebus/sbic.c
1592
(acb->flags & ACB_DATAIN) != 0);
sys/arch/acorn32/podulebus/sbic.c
2028
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
2035
acb = dev->sc_nexus;
sys/arch/acorn32/podulebus/sbic.c
2045
if (sbicxfstart(regs, acb->clen, CMD_PHASE, sbic_cmd_wait))
sys/arch/acorn32/podulebus/sbic.c
2046
if (sbicxfout(regs, acb->clen,
sys/arch/acorn32/podulebus/sbic.c
2047
&acb->cmd, CMD_PHASE))
sys/arch/acorn32/podulebus/sbic.c
2062
if (acb->flags & ACB_DMA) {
sys/arch/acorn32/podulebus/sbic.c
2065
dev->sc_dmafinish(dev->sc_dmah, dev->sc_dmat, acb);
sys/arch/acorn32/podulebus/sbic.c
2069
sbic_scsidone(acb, dev->sc_stat[0]);
sys/arch/acorn32/podulebus/sbic.c
2084
if ((acb->xs->xs_control & XS_CTL_POLL) ||
sys/arch/acorn32/podulebus/sbic.c
2086
(acb->flags & ACB_DMA) == 0) {
sys/arch/acorn32/podulebus/sbic.c
2089
if (acb->datalen <= 0) {
sys/arch/acorn32/podulebus/sbic.c
2091
acb->datalen, asr, csr);
sys/arch/acorn32/podulebus/sbic.c
2095
if (sbicxfstart(regs, acb->datalen,
sys/arch/acorn32/podulebus/sbic.c
2099
i = sbicxfin(regs, acb->datalen,
sys/arch/acorn32/podulebus/sbic.c
2100
acb->data);
sys/arch/acorn32/podulebus/sbic.c
2102
i = sbicxfout(regs, acb->datalen,
sys/arch/acorn32/podulebus/sbic.c
2103
acb->data, SBIC_PHASE(csr));
sys/arch/acorn32/podulebus/sbic.c
2105
acb->data += acb->datalen - i;
sys/arch/acorn32/podulebus/sbic.c
2106
acb->datalen = i;
sys/arch/acorn32/podulebus/sbic.c
2120
if (acb->offset >= acb->datalen) {
sys/arch/acorn32/podulebus/sbic.c
2122
acb->offset, asr, csr);
sys/arch/acorn32/podulebus/sbic.c
2126
dev->target, acb->offset),
sys/arch/acorn32/podulebus/sbic.c
2130
acb->sc_tcnt =
sys/arch/acorn32/podulebus/sbic.c
2132
acb, acb->offset);
sys/arch/acorn32/podulebus/sbic.c
2134
acb->sc_tcnt), data_pointer_debug);
sys/arch/acorn32/podulebus/sbic.c
2135
SBIC_TC_PUT(regs, (unsigned)acb->sc_tcnt);
sys/arch/acorn32/podulebus/sbic.c
2181
TAILQ_INSERT_HEAD(&dev->nexus_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
2185
if ((acb->xs->xs_control & XS_CTL_POLL)
sys/arch/acorn32/podulebus/sbic.c
2262
for (acb = dev->nexus_list.tqh_first; acb;
sys/arch/acorn32/podulebus/sbic.c
2263
acb = acb->chain.tqe_next) {
sys/arch/acorn32/podulebus/sbic.c
2264
if (acb->xs->xs_periph->periph_target != newtarget ||
sys/arch/acorn32/podulebus/sbic.c
2265
acb->xs->xs_periph->periph_lun != newlun)
sys/arch/acorn32/podulebus/sbic.c
2267
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
2268
dev->sc_nexus = acb;
sys/arch/acorn32/podulebus/sbic.c
2274
if (acb == NULL) {
sys/arch/acorn32/podulebus/sbic.c
2298
dev->sc_dmafinish(dev->sc_dmah, dev->sc_dmat, acb);
sys/arch/acorn32/podulebus/sbic.c
2305
sbic_scsidone(acb, -1);
sys/arch/acorn32/podulebus/sbic.c
2400
sbic_dump_acb(struct sbic_acb *acb)
sys/arch/acorn32/podulebus/sbic.c
2402
u_char *b = (u_char *) &acb->cmd;
sys/arch/acorn32/podulebus/sbic.c
2405
printf("acb@%p ", acb);
sys/arch/acorn32/podulebus/sbic.c
2406
if (acb->xs == NULL) {
sys/arch/acorn32/podulebus/sbic.c
2411
acb->xs->xs_periph->periph_target,
sys/arch/acorn32/podulebus/sbic.c
2412
acb->xs->xs_periph->periph_lun, acb->flags, acb->clen);
sys/arch/acorn32/podulebus/sbic.c
2413
for (i = acb->clen; i; --i)
sys/arch/acorn32/podulebus/sbic.c
2416
printf(" xs: %8p data %8p:%04x ", acb->xs, acb->xs->data,
sys/arch/acorn32/podulebus/sbic.c
2417
acb->xs->datalen);
sys/arch/acorn32/podulebus/sbic.c
2418
printf("tcnt %lx\n", acb->sc_tcnt);
sys/arch/acorn32/podulebus/sbic.c
2426
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
2541
if ((acb = dev->free_list.tqh_first)) {
sys/arch/acorn32/podulebus/sbic.c
2543
while (acb) {
sys/arch/acorn32/podulebus/sbic.c
2544
sbic_dump_acb(acb);
sys/arch/acorn32/podulebus/sbic.c
2545
acb = acb->chain.tqe_next;
sys/arch/acorn32/podulebus/sbic.c
2548
if ((acb = dev->ready_list.tqh_first)) {
sys/arch/acorn32/podulebus/sbic.c
2550
while (acb) {
sys/arch/acorn32/podulebus/sbic.c
2551
sbic_dump_acb(acb);
sys/arch/acorn32/podulebus/sbic.c
2552
acb = acb->chain.tqe_next;
sys/arch/acorn32/podulebus/sbic.c
2555
if ((acb = dev->nexus_list.tqh_first)) {
sys/arch/acorn32/podulebus/sbic.c
2557
while (acb) {
sys/arch/acorn32/podulebus/sbic.c
2558
sbic_dump_acb(acb);
sys/arch/acorn32/podulebus/sbic.c
2559
acb = acb->chain.tqe_next;
sys/arch/acorn32/podulebus/sbic.c
283
struct sbic_acb* acb;
sys/arch/acorn32/podulebus/sbic.c
291
acb = dev->sc_nexus;
sys/arch/acorn32/podulebus/sbic.c
292
if (acb == NULL) {
sys/arch/acorn32/podulebus/sbic.c
312
dev->sc_dmastop(dev->sc_dmah, dev->sc_dmat, acb);
sys/arch/acorn32/podulebus/sbic.c
326
acb->offset += acb->sc_tcnt - count;
sys/arch/acorn32/podulebus/sbic.c
330
dev->target, acb->offset, asr), data_pointer_debug >= 1);
sys/arch/acorn32/podulebus/sbic.c
332
acb->sc_tcnt = 0;
sys/arch/acorn32/podulebus/sbic.c
351
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
370
acb = dev->free_list.tqh_first;
sys/arch/acorn32/podulebus/sbic.c
371
if (acb)
sys/arch/acorn32/podulebus/sbic.c
372
TAILQ_REMOVE(&dev->free_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
375
if (acb == NULL) {
sys/arch/acorn32/podulebus/sbic.c
387
acb->flags = ACB_ACTIVE;
sys/arch/acorn32/podulebus/sbic.c
389
acb->flags |= ACB_DATAIN;
sys/arch/acorn32/podulebus/sbic.c
390
acb->xs = xs;
sys/arch/acorn32/podulebus/sbic.c
391
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/acorn32/podulebus/sbic.c
392
acb->clen = xs->cmdlen;
sys/arch/acorn32/podulebus/sbic.c
393
acb->data = xs->data;
sys/arch/acorn32/podulebus/sbic.c
394
acb->datalen = xs->datalen;
sys/arch/acorn32/podulebus/sbic.c
397
(unsigned) acb->cmd.opcode, acb->clen, xs->data,
sys/arch/acorn32/podulebus/sbic.c
410
dev->sc_nexus = acb;
sys/arch/acorn32/podulebus/sbic.c
415
periph->periph_lun, acb);
sys/arch/acorn32/podulebus/sbic.c
416
} while (dev->sc_nexus != acb);
sys/arch/acorn32/podulebus/sbic.c
418
sbic_scsidone(acb, stat);
sys/arch/acorn32/podulebus/sbic.c
425
TAILQ_INSERT_TAIL(&dev->ready_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
458
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
466
for (acb = dev->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
sys/arch/acorn32/podulebus/sbic.c
467
periph = acb->xs->xs_periph;
sys/arch/acorn32/podulebus/sbic.c
472
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
473
dev->sc_nexus = acb;
sys/arch/acorn32/podulebus/sbic.c
474
periph = acb->xs->xs_periph;
sys/arch/acorn32/podulebus/sbic.c
482
if (acb == NULL)
sys/arch/acorn32/podulebus/sbic.c
485
xs = acb->xs;
sys/arch/acorn32/podulebus/sbic.c
494
DBG(if (data_pointer_debug > 1) sbic_dump_acb(acb));
sys/arch/acorn32/podulebus/sbic.c
502
&& dev->sc_dmaok(dev->sc_dmah, dev->sc_dmat, acb))
sys/arch/acorn32/podulebus/sbic.c
503
acb->flags |= ACB_DMA;
sys/arch/acorn32/podulebus/sbic.c
506
(!sbic_parallel_operations && (acb->flags & ACB_DMA) == 0))
sys/arch/acorn32/podulebus/sbic.c
508
periph->periph_lun, acb);
sys/arch/acorn32/podulebus/sbic.c
515
sbic_scsidone(acb, stat);
sys/arch/acorn32/podulebus/sbic.c
520
sbic_scsidone(struct sbic_acb *acb, int stat)
sys/arch/acorn32/podulebus/sbic.c
528
xs = acb->xs;
sys/arch/acorn32/podulebus/sbic.c
533
if (acb == NULL || xs == NULL) {
sys/arch/acorn32/podulebus/sbic.c
545
dev->target, dev->lun, stat, acb->flags),
sys/arch/acorn32/podulebus/sbic.c
564
if (acb == dev->sc_nexus) {
sys/arch/acorn32/podulebus/sbic.c
570
} else if (dev->ready_list.tqh_last == &acb->chain.tqe_next) {
sys/arch/acorn32/podulebus/sbic.c
571
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
576
if (acb2 == acb) {
sys/arch/acorn32/podulebus/sbic.c
577
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
585
else if (acb->chain.tqe_next) {
sys/arch/acorn32/podulebus/sbic.c
586
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
596
acb->flags = ACB_FREE;
sys/arch/acorn32/podulebus/sbic.c
597
TAILQ_INSERT_HEAD(&dev->free_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
655
while (acb = dev->nexus_list.tqh_first) {
sys/arch/acorn32/podulebus/sbic.c
656
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/acorn32/podulebus/sbic.c
657
sbic_scsidone(acb, -1 /*acb->stat[0]*/);
sys/arch/acorn32/podulebus/sbic.c
720
struct sbic_acb *acb;
sys/arch/acorn32/podulebus/sbic.c
736
acb = dev->sc_acb;
sys/arch/acorn32/podulebus/sbic.c
737
memset(acb, 0, sizeof(dev->sc_acb));
sys/arch/acorn32/podulebus/sbic.c
741
for (i = 0; i < sizeof(dev->sc_acb) / sizeof(*acb); i++) {
sys/arch/acorn32/podulebus/sbic.c
742
TAILQ_INSERT_TAIL(&dev->free_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
743
acb++;
sys/arch/acorn32/podulebus/sbic.c
859
acb = dev->sc_acb;
sys/arch/acorn32/podulebus/sbic.c
860
memset(acb, 0, sizeof(dev->sc_acb));
sys/arch/acorn32/podulebus/sbic.c
861
for (i = 0; i < sizeof(dev->sc_acb) / sizeof(*acb); i++) {
sys/arch/acorn32/podulebus/sbic.c
862
TAILQ_INSERT_TAIL(&dev->free_list, acb, chain);
sys/arch/acorn32/podulebus/sbic.c
863
acb++;
sys/arch/acorn32/podulebus/sbic.c
871
while (acb = dev->nexus_list.tqh_first) {
sys/arch/acorn32/podulebus/sbic.c
872
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/acorn32/podulebus/sbic.c
873
sbic_scsidone(acb, -1 /*acb->stat[0]*/);
sys/arch/amiga/dev/sbic.c
1320
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
1331
acb = dev->sc_nexus;
sys/arch/amiga/dev/sbic.c
1334
dev->sc_last = dev->sc_cur = &acb->sc_pa;
sys/arch/amiga/dev/sbic.c
1335
dev->sc_tcnt = acb->sc_tcnt = 0;
sys/arch/amiga/dev/sbic.c
1336
acb->sc_pa.dc_count = 0; /* No DMA */
sys/arch/amiga/dev/sbic.c
1337
acb->sc_kv.dc_addr = buf;
sys/arch/amiga/dev/sbic.c
1338
acb->sc_kv.dc_count = len;
sys/arch/amiga/dev/sbic.c
1345
acb->sc_kv.dc_count);
sys/arch/amiga/dev/sbic.c
1435
if (acb->sc_kv.dc_count <= 0)
sys/arch/amiga/dev/sbic.c
1440
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
1445
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
1446
acb->sc_kv.dc_addr);
sys/arch/amiga/dev/sbic.c
1449
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
1450
acb->sc_kv.dc_addr,
sys/arch/amiga/dev/sbic.c
1452
acb->sc_kv.dc_addr +=
sys/arch/amiga/dev/sbic.c
1453
(acb->sc_kv.dc_count - i);
sys/arch/amiga/dev/sbic.c
1454
acb->sc_kv.dc_count = i;
sys/arch/amiga/dev/sbic.c
1541
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
1608
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
1613
acb = dev->sc_nexus;
sys/arch/amiga/dev/sbic.c
1650
if (acb->flags & ACB_DATAIN)
sys/arch/amiga/dev/sbic.c
1658
addr = acb->sc_kv.dc_addr;
sys/arch/amiga/dev/sbic.c
1659
count = acb->sc_kv.dc_count;
sys/arch/amiga/dev/sbic.c
1660
if (count && (char *)kvtop(addr) != acb->sc_pa.dc_addr) { /* XXXX check */
sys/arch/amiga/dev/sbic.c
1662
acb->sc_pa.dc_addr, (unsigned)kvtop(addr));
sys/arch/amiga/dev/sbic.c
1677
acb->flags |= ACB_BBUF;
sys/arch/amiga/dev/sbic.c
1678
acb->sc_dmausrbuf = addr;
sys/arch/amiga/dev/sbic.c
1679
acb->sc_dmausrlen = count;
sys/arch/amiga/dev/sbic.c
1680
acb->sc_usrbufpa = (u_char *)kvtop(addr);
sys/arch/amiga/dev/sbic.c
1684
printf("xfer: (%p->%p,%lx)\n", acb->sc_dmausrbuf,
sys/arch/amiga/dev/sbic.c
1685
acb->sc_usrbufpa, acb->sc_dmausrlen);
sys/arch/amiga/dev/sbic.c
1711
acb->sc_kv.dc_addr = addr;
sys/arch/amiga/dev/sbic.c
1723
acb->sc_kv.dc_addr = addr;
sys/arch/amiga/dev/sbic.c
1724
acb->sc_kv.dc_count = count;
sys/arch/amiga/dev/sbic.c
1728
acb->sc_tcnt = dev->sc_tcnt = 0;
sys/arch/amiga/dev/sbic.c
1729
acb->sc_pa.dc_count = 0;
sys/arch/amiga/dev/sbic.c
1736
dev->sc_tcnt = dev->sc_dmago(dev, acb->sc_pa.dc_addr,
sys/arch/amiga/dev/sbic.c
1737
acb->sc_pa.dc_count,
sys/arch/amiga/dev/sbic.c
2200
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
2209
acb = dev->sc_nexus;
sys/arch/amiga/dev/sbic.c
2219
if (sbicxfstart(regs, acb->clen, CMD_PHASE, sbic_cmd_wait))
sys/arch/amiga/dev/sbic.c
2220
if (sbicxfout(regs, acb->clen,
sys/arch/amiga/dev/sbic.c
2221
&acb->cmd, CMD_PHASE))
sys/arch/amiga/dev/sbic.c
2254
if (acb->flags & ACB_BBUF) {
sys/arch/amiga/dev/sbic.c
2255
if ((u_char *)kvtop(acb->sc_dmausrbuf) != acb->sc_usrbufpa)
sys/arch/amiga/dev/sbic.c
2257
device_xname(dev->sc_dev), acb->sc_usrbufpa,
sys/arch/amiga/dev/sbic.c
2258
(unsigned)kvtop(acb->sc_dmausrbuf));
sys/arch/amiga/dev/sbic.c
2262
acb->sc_dmausrlen,
sys/arch/amiga/dev/sbic.c
2267
acb->sc_dmausrbuf,
sys/arch/amiga/dev/sbic.c
2268
acb->sc_dmausrlen);
sys/arch/amiga/dev/sbic.c
2271
sbic_scsidone(acb, dev->sc_stat[0]);
sys/arch/amiga/dev/sbic.c
2284
(dev->sc_flags & SBICF_ICMD) || acb->sc_dmacmd == 0) {
sys/arch/amiga/dev/sbic.c
2287
if (acb->sc_kv.dc_count <= 0) {
sys/arch/amiga/dev/sbic.c
2289
acb->sc_kv.dc_count, asr, csr);
sys/arch/amiga/dev/sbic.c
2294
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
2299
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
2300
acb->sc_kv.dc_addr);
sys/arch/amiga/dev/sbic.c
2303
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
2304
acb->sc_kv.dc_addr,
sys/arch/amiga/dev/sbic.c
2307
acb->sc_kv.dc_addr +=
sys/arch/amiga/dev/sbic.c
2308
(acb->sc_kv.dc_count - i);
sys/arch/amiga/dev/sbic.c
2309
acb->sc_kv.dc_count = i;
sys/arch/amiga/dev/sbic.c
2311
if (acb->sc_kv.dc_count <= 0) {
sys/arch/amiga/dev/sbic.c
2313
acb->sc_kv.dc_count, asr, csr);
sys/arch/amiga/dev/sbic.c
2329
dev->sc_tcnt = acb->sc_tcnt = tcnt;
sys/arch/amiga/dev/sbic.c
2391
TAILQ_INSERT_HEAD(&dev->nexus_list, acb, chain);
sys/arch/amiga/dev/sbic.c
2396
if ((acb->xs->xs_control & XS_CTL_POLL)
sys/arch/amiga/dev/sbic.c
2472
for (acb = dev->nexus_list.tqh_first; acb;
sys/arch/amiga/dev/sbic.c
2473
acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/sbic.c
2474
if (acb->xs->xs_periph->periph_target != newtarget ||
sys/arch/amiga/dev/sbic.c
2475
acb->xs->xs_periph->periph_lun != newlun)
sys/arch/amiga/dev/sbic.c
2477
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/amiga/dev/sbic.c
2478
dev->sc_nexus = acb;
sys/arch/amiga/dev/sbic.c
2479
dev->sc_xs = acb->xs;
sys/arch/amiga/dev/sbic.c
2485
if (acb == NULL) {
sys/arch/amiga/dev/sbic.c
2537
sbic_scsidone(acb, -1);
sys/arch/amiga/dev/sbic.c
259
struct sbic_acb* acb;
sys/arch/amiga/dev/sbic.c
2661
sbic_dump_acb(struct sbic_acb *acb)
sys/arch/amiga/dev/sbic.c
2663
u_char *b = (u_char *) &acb->cmd;
sys/arch/amiga/dev/sbic.c
2666
printf("acb@%p ", acb);
sys/arch/amiga/dev/sbic.c
2667
if (acb->xs == NULL) {
sys/arch/amiga/dev/sbic.c
267
acb = dev->sc_nexus;
sys/arch/amiga/dev/sbic.c
2672
acb->xs->xs_periph->periph_target,
sys/arch/amiga/dev/sbic.c
2673
acb->xs->xs_periph->periph_lun, acb->flags, acb->clen);
sys/arch/amiga/dev/sbic.c
2674
for (i = acb->clen; i; --i)
sys/arch/amiga/dev/sbic.c
2677
printf(" xs: %8p data %8p:%04x ", acb->xs, acb->xs->data,
sys/arch/amiga/dev/sbic.c
2678
acb->xs->datalen);
sys/arch/amiga/dev/sbic.c
2679
printf("va %8p:%04x ", acb->sc_kv.dc_addr, acb->sc_kv.dc_count);
sys/arch/amiga/dev/sbic.c
2680
printf("pa %8p:%04x tcnt %lx\n", acb->sc_pa.dc_addr, acb->sc_pa.dc_count,
sys/arch/amiga/dev/sbic.c
2681
acb->sc_tcnt);
sys/arch/amiga/dev/sbic.c
2689
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
2804
if ((acb = dev->free_list.tqh_first)) {
sys/arch/amiga/dev/sbic.c
2806
while (acb) {
sys/arch/amiga/dev/sbic.c
2807
sbic_dump_acb(acb);
sys/arch/amiga/dev/sbic.c
2808
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/sbic.c
281
acb->sc_dmacmd = dev->sc_dmacmd;
sys/arch/amiga/dev/sbic.c
2811
if ((acb = dev->ready_list.tqh_first)) {
sys/arch/amiga/dev/sbic.c
2813
while (acb) {
sys/arch/amiga/dev/sbic.c
2814
sbic_dump_acb(acb);
sys/arch/amiga/dev/sbic.c
2815
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/sbic.c
2818
if ((acb = dev->nexus_list.tqh_first)) {
sys/arch/amiga/dev/sbic.c
2820
while (acb) {
sys/arch/amiga/dev/sbic.c
2821
sbic_dump_acb(acb);
sys/arch/amiga/dev/sbic.c
2822
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/sbic.c
294
acb->sc_dmacmd, asr);
sys/arch/amiga/dev/sbic.c
298
acb->sc_kv.dc_addr += (dev->sc_tcnt - count);
sys/arch/amiga/dev/sbic.c
299
acb->sc_kv.dc_count -= (dev->sc_tcnt - count);
sys/arch/amiga/dev/sbic.c
300
acb->sc_pa.dc_addr += (dev->sc_tcnt - count);
sys/arch/amiga/dev/sbic.c
301
acb->sc_pa.dc_count -= ((dev->sc_tcnt - count)>>1);
sys/arch/amiga/dev/sbic.c
303
acb->sc_tcnt = dev->sc_tcnt = count;
sys/arch/amiga/dev/sbic.c
323
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
326
acb = dev->sc_nexus;
sys/arch/amiga/dev/sbic.c
327
if (!acb->sc_kv.dc_count) {
sys/arch/amiga/dev/sbic.c
335
dev->sc_last = dev->sc_cur = &acb->sc_pa;
sys/arch/amiga/dev/sbic.c
336
dev->sc_tcnt = acb->sc_tcnt;
sys/arch/amiga/dev/sbic.c
337
dev->sc_dmacmd = acb->sc_dmacmd;
sys/arch/amiga/dev/sbic.c
346
paddr = acb->sc_pa.dc_addr =
sys/arch/amiga/dev/sbic.c
347
(char *) kvtop(acb->sc_kv.dc_addr);
sys/arch/amiga/dev/sbic.c
349
vaddr = acb->sc_kv.dc_addr;
sys/arch/amiga/dev/sbic.c
350
count = acb->sc_kv.dc_count;
sys/arch/amiga/dev/sbic.c
352
count < acb->sc_kv.dc_count
sys/arch/amiga/dev/sbic.c
356
if (count > acb->sc_kv.dc_count) {
sys/arch/amiga/dev/sbic.c
357
count = acb->sc_kv.dc_count;
sys/arch/amiga/dev/sbic.c
366
acb->sc_tcnt = count;
sys/arch/amiga/dev/sbic.c
367
acb->sc_pa.dc_count = count >> 1;
sys/arch/amiga/dev/sbic.c
372
acb->sc_kv.dc_addr,
sys/arch/amiga/dev/sbic.c
373
acb->sc_kv.dc_count,
sys/arch/amiga/dev/sbic.c
374
acb->sc_pa.dc_addr,
sys/arch/amiga/dev/sbic.c
375
acb->sc_tcnt);
sys/arch/amiga/dev/sbic.c
401
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
420
acb = dev->free_list.tqh_first;
sys/arch/amiga/dev/sbic.c
421
if (acb)
sys/arch/amiga/dev/sbic.c
422
TAILQ_REMOVE(&dev->free_list, acb, chain);
sys/arch/amiga/dev/sbic.c
426
if (acb == NULL) {
sys/arch/amiga/dev/sbic.c
432
acb->flags = ACB_ACTIVE;
sys/arch/amiga/dev/sbic.c
434
acb->flags |= ACB_DATAIN;
sys/arch/amiga/dev/sbic.c
435
acb->xs = xs;
sys/arch/amiga/dev/sbic.c
436
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/amiga/dev/sbic.c
437
acb->clen = xs->cmdlen;
sys/arch/amiga/dev/sbic.c
438
acb->sc_kv.dc_addr = xs->data;
sys/arch/amiga/dev/sbic.c
439
acb->sc_kv.dc_count = xs->datalen;
sys/arch/amiga/dev/sbic.c
440
acb->pa_addr = xs->data ? (char *)kvtop(xs->data) : 0; /* XXXX check */
sys/arch/amiga/dev/sbic.c
452
dev->sc_nexus = acb;
sys/arch/amiga/dev/sbic.c
458
&acb->cmd, acb->clen,
sys/arch/amiga/dev/sbic.c
459
acb->sc_kv.dc_addr, acb->sc_kv.dc_count);
sys/arch/amiga/dev/sbic.c
460
} while (dev->sc_nexus != acb);
sys/arch/amiga/dev/sbic.c
461
sbic_scsidone(acb, stat);
sys/arch/amiga/dev/sbic.c
469
TAILQ_INSERT_TAIL(&dev->ready_list, acb, chain);
sys/arch/amiga/dev/sbic.c
507
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
515
for (acb = dev->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/sbic.c
516
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/sbic.c
521
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/amiga/dev/sbic.c
522
dev->sc_nexus = acb;
sys/arch/amiga/dev/sbic.c
525
acb->sc_pa.dc_addr = acb->pa_addr; /* XXXX check */
sys/arch/amiga/dev/sbic.c
531
if (acb == NULL)
sys/arch/amiga/dev/sbic.c
534
dev->sc_xs = xs = acb->xs;
sys/arch/amiga/dev/sbic.c
552
periph->periph_lun, &acb->cmd,
sys/arch/amiga/dev/sbic.c
553
acb->clen, acb->sc_kv.dc_addr, acb->sc_kv.dc_count);
sys/arch/amiga/dev/sbic.c
560
sbic_scsidone(acb, stat);
sys/arch/amiga/dev/sbic.c
565
sbic_scsidone(struct sbic_acb *acb, int stat)
sys/arch/amiga/dev/sbic.c
572
xs = acb->xs;
sys/arch/amiga/dev/sbic.c
577
if (acb == NULL || xs == NULL) {
sys/arch/amiga/dev/sbic.c
611
if (acb == dev->sc_nexus) {
sys/arch/amiga/dev/sbic.c
618
} else if (dev->ready_list.tqh_last == &acb->chain.tqe_next) {
sys/arch/amiga/dev/sbic.c
619
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/amiga/dev/sbic.c
624
if (acb2 == acb) {
sys/arch/amiga/dev/sbic.c
625
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/amiga/dev/sbic.c
633
else if (acb->chain.tqe_next) {
sys/arch/amiga/dev/sbic.c
634
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/amiga/dev/sbic.c
644
acb->flags = ACB_FREE;
sys/arch/amiga/dev/sbic.c
645
TAILQ_INSERT_HEAD(&dev->free_list, acb, chain);
sys/arch/amiga/dev/sbic.c
744
while (acb = dev->nexus_list.tqh_first) {
sys/arch/amiga/dev/sbic.c
745
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/amiga/dev/sbic.c
746
sbic_scsidone(acb, -1 /*acb->stat[0]*/);
sys/arch/amiga/dev/sbic.c
802
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
815
acb = dev->sc_acb;
sys/arch/amiga/dev/sbic.c
816
memset(acb, 0, sizeof(dev->sc_acb));
sys/arch/amiga/dev/sbic.c
817
for (i = 0; i < sizeof(dev->sc_acb) / sizeof(*acb); i++) {
sys/arch/amiga/dev/sbic.c
818
TAILQ_INSERT_TAIL(&dev->free_list, acb, chain);
sys/arch/amiga/dev/sbic.c
819
acb++;
sys/arch/amiga/dev/sbic.c
858
struct sbic_acb *acb;
sys/arch/amiga/dev/sbic.c
920
acb = dev->sc_acb;
sys/arch/amiga/dev/sbic.c
921
memset(acb, 0, sizeof(dev->sc_acb));
sys/arch/amiga/dev/sbic.c
922
for (i = 0; i < sizeof(dev->sc_acb) / sizeof(*acb); i++) {
sys/arch/amiga/dev/sbic.c
923
TAILQ_INSERT_TAIL(&dev->free_list, acb, chain);
sys/arch/amiga/dev/sbic.c
924
acb++;
sys/arch/amiga/dev/sbic.c
932
while (acb = dev->nexus_list.tqh_first) {
sys/arch/amiga/dev/sbic.c
933
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/amiga/dev/sbic.c
934
sbic_scsidone(acb, -1 /*acb->stat[0]*/);
sys/arch/amiga/dev/siop.c
1000
acb->msg[3] == MSG_SYNC_REQ &&
sys/arch/amiga/dev/siop.c
1001
acb->msg[5] != 0) {
sys/arch/amiga/dev/siop.c
1012
if (acb->msg[4] && acb->msg[4] < 100 / 4) {
sys/arch/amiga/dev/siop.c
1016
acb->msg[4] * 4);
sys/arch/amiga/dev/siop.c
1018
if (acb->msg[4] == 50 / 4)
sys/arch/amiga/dev/siop.c
1019
acb->msg[4] = 208 / 4;
sys/arch/amiga/dev/siop.c
1021
acb->msg[4] = 100 / 4;
sys/arch/amiga/dev/siop.c
1026
acb->msg[4] * 4, acb->msg[5]);
sys/arch/amiga/dev/siop.c
1045
if (acb == NULL)
sys/arch/amiga/dev/siop.c
1049
if (acb->iob_len) {
sys/arch/amiga/dev/siop.c
1056
acb->iob_curlen =
sys/arch/amiga/dev/siop.c
1058
acb->iob_curlen += adjust;
sys/arch/amiga/dev/siop.c
1059
acb->iob_curbuf =
sys/arch/amiga/dev/siop.c
1065
acb->iob_curbuf, acb->iob_curlen, dfifo,
sys/arch/amiga/dev/siop.c
1067
siopstarts, acb);
sys/arch/amiga/dev/siop.c
1068
if (acb->ds.chain[1].datalen) {
sys/arch/amiga/dev/siop.c
1069
for (i = 0; acb->ds.chain[i].datalen; ++i)
sys/arch/amiga/dev/siop.c
1071
i, acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop.c
1072
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop.c
1076
dma_cachectl ((void *)acb, sizeof(*acb));
sys/arch/amiga/dev/siop.c
1109
if (acb == NULL)
sys/arch/amiga/dev/siop.c
1114
rp, &scripts, &acb->ds);
sys/arch/amiga/dev/siop.c
1131
acb->xs->error = XS_SELTIMEOUT;
sys/arch/amiga/dev/siop.c
1136
if (acb)
sys/arch/amiga/dev/siop.c
1137
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop.c
1142
if (acb == NULL)
sys/arch/amiga/dev/siop.c
1154
return (acb != NULL);
sys/arch/amiga/dev/siop.c
1163
acb->iob_curbuf, acb->iob_curlen,
sys/arch/amiga/dev/siop.c
1164
acb->ds.chain[0].databuf, acb->ds.chain[0].datalen, dfifo, dbc, sstat1, siopstarts, acb);
sys/arch/amiga/dev/siop.c
1166
if (acb == NULL) {
sys/arch/amiga/dev/siop.c
1179
if (acb->iob_len && rp->siop_temp) {
sys/arch/amiga/dev/siop.c
1182
if (acb->iob_curlen && acb->iob_curlen != acb->ds.chain[0].datalen)
sys/arch/amiga/dev/siop.c
1184
device_xname(sc->sc_dev), n, acb->iob_curbuf, acb->iob_curlen,
sys/arch/amiga/dev/siop.c
1185
acb->ds.chain[0].databuf, acb->ds.chain[0].datalen);
sys/arch/amiga/dev/siop.c
1193
acb->iob_curbuf = (u_long)acb->ds.chain[n].databuf;
sys/arch/amiga/dev/siop.c
1194
acb->iob_curlen = acb->ds.chain[n].datalen;
sys/arch/amiga/dev/siop.c
1199
printf(" curbuf %lx curlen %lx\n", acb->iob_curbuf,
sys/arch/amiga/dev/siop.c
1200
acb->iob_curlen);
sys/arch/amiga/dev/siop.c
1211
if (acb->iob_curlen) {
sys/arch/amiga/dev/siop.c
1225
if (acb->ds.chain[i].datalen == 0)
sys/arch/amiga/dev/siop.c
1227
if (acb->iob_curbuf >= (long)acb->ds.chain[i].databuf &&
sys/arch/amiga/dev/siop.c
1228
acb->iob_curbuf < (long)(acb->ds.chain[i].databuf +
sys/arch/amiga/dev/siop.c
1229
acb->ds.chain[i].datalen))
sys/arch/amiga/dev/siop.c
1232
if (i >= DMAMAXIO || acb->ds.chain[i].datalen == 0) {
sys/arch/amiga/dev/siop.c
1235
acb->iob_curbuf, acb->iob_curlen, i);
sys/arch/amiga/dev/siop.c
1244
acb->ds.chain[0].databuf,
sys/arch/amiga/dev/siop.c
1245
acb->ds.chain[0].datalen,
sys/arch/amiga/dev/siop.c
1246
acb->iob_curbuf,
sys/arch/amiga/dev/siop.c
1247
acb->iob_curlen);
sys/arch/amiga/dev/siop.c
1249
acb->ds.chain[0].databuf = (char *)acb->iob_curbuf;
sys/arch/amiga/dev/siop.c
1250
acb->ds.chain[0].datalen = acb->iob_curlen;
sys/arch/amiga/dev/siop.c
1251
for (j = 1, ++i; i < DMAMAXIO && acb->ds.chain[i].datalen; ++i, ++j) {
sys/arch/amiga/dev/siop.c
1255
acb->ds.chain[j].databuf,
sys/arch/amiga/dev/siop.c
1256
acb->ds.chain[j].datalen,
sys/arch/amiga/dev/siop.c
1257
acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop.c
1258
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop.c
1260
acb->ds.chain[j].databuf = acb->ds.chain[i].databuf;
sys/arch/amiga/dev/siop.c
1261
acb->ds.chain[j].datalen = acb->ds.chain[i].datalen;
sys/arch/amiga/dev/siop.c
1264
acb->ds.chain[j].datalen = 0;
sys/arch/amiga/dev/siop.c
1265
DCIAS(kvtop((void *)&acb->ds.chain));
sys/arch/amiga/dev/siop.c
1273
acb->status = sc->sc_flags & SIOP_INTSOFF;
sys/arch/amiga/dev/siop.c
1274
TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop.c
1313
for (acb = sc->nexus_list.tqh_first; acb;
sys/arch/amiga/dev/siop.c
1314
acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/siop.c
1315
if (reselid != (acb->ds.scsi_addr >> 16) ||
sys/arch/amiga/dev/siop.c
1316
reselun != (acb->msgout[0] & 0x07))
sys/arch/amiga/dev/siop.c
1318
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop.c
1319
sc->sc_nexus = acb;
sys/arch/amiga/dev/siop.c
1320
sc->sc_flags |= acb->status;
sys/arch/amiga/dev/siop.c
1321
acb->status = 0;
sys/arch/amiga/dev/siop.c
1322
DCIAS(kvtop(&acb->stat[0]));
sys/arch/amiga/dev/siop.c
1323
rp->siop_dsa = kvtop((void *)&acb->ds);
sys/arch/amiga/dev/siop.c
1325
sc->sc_sync[acb->xs->xs_periph->periph_target].sxfer;
sys/arch/amiga/dev/siop.c
1327
sc->sc_sync[acb->xs->xs_periph->periph_target].sbcl;
sys/arch/amiga/dev/siop.c
1330
if (acb == NULL) {
sys/arch/amiga/dev/siop.c
1336
dma_cachectl ((void *)acb, sizeof(*acb));
sys/arch/amiga/dev/siop.c
1376
if (acb == NULL)
sys/arch/amiga/dev/siop.c
1380
dma_cachectl (&acb->msg[1],1);
sys/arch/amiga/dev/siop.c
1382
device_xname(sc->sc_dev), rp->siop_sfbr, acb->msg[1], rp->siop_sbcl);
sys/arch/amiga/dev/siop.c
1384
DCIAS(kvtop(&acb->msg[1]));
sys/arch/amiga/dev/siop.c
1399
dma_cachectl (&acb->stat[0], 1);
sys/arch/amiga/dev/siop.c
1400
dma_cachectl (&acb->msg[0], 1);
sys/arch/amiga/dev/siop.c
1402
rp->siop_dsps, acb->stat[0], acb->msg[0], acb->msg[1],
sys/arch/amiga/dev/siop.c
1421
printf ("siopchkintr: target %x ds %p\n", target, &acb->ds);
sys/arch/amiga/dev/siop.c
1423
sc->sc_scriptspa, (unsigned)kvtop((void *)&acb->ds),
sys/arch/amiga/dev/siop.c
1428
rp->siop_sbcl, acb->stat[0], acb->msg[0], acb->msg[1], rp->siop_sfbr);
sys/arch/amiga/dev/siop.c
1445
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop.c
1453
if (acb->xs->xs_control & XS_CTL_POLL || siop_no_dma) {
sys/arch/amiga/dev/siop.c
1472
acb->xs->xs_periph->periph_target, acb->cmd.opcode,
sys/arch/amiga/dev/siop.c
1476
siop_start(sc, acb->xs->xs_periph->periph_target,
sys/arch/amiga/dev/siop.c
1477
acb->xs->xs_periph->periph_lun,
sys/arch/amiga/dev/siop.c
1478
(u_char *)&acb->cmd, acb->clen, acb->daddr, acb->dleft);
sys/arch/amiga/dev/siop.c
1632
siop_dump_acb(struct siop_acb *acb)
sys/arch/amiga/dev/siop.c
1634
u_char *b = (u_char *) &acb->cmd;
sys/arch/amiga/dev/siop.c
1637
printf("acb@%p ", acb);
sys/arch/amiga/dev/siop.c
1638
if (acb->xs == NULL) {
sys/arch/amiga/dev/siop.c
1643
acb->xs->xs_periph->periph_target,
sys/arch/amiga/dev/siop.c
1644
acb->xs->xs_periph->periph_lun, acb->flags, acb->clen);
sys/arch/amiga/dev/siop.c
1645
for (i = acb->clen; i; --i)
sys/arch/amiga/dev/siop.c
1648
printf(" xs: %p data %p:%04x ", acb->xs, acb->xs->data,
sys/arch/amiga/dev/siop.c
1649
acb->xs->datalen);
sys/arch/amiga/dev/siop.c
1650
printf("va %p:%lx ", acb->iob_buf, acb->iob_len);
sys/arch/amiga/dev/siop.c
1651
printf("cur %lx:%lx\n", acb->iob_curbuf, acb->iob_curlen);
sys/arch/amiga/dev/siop.c
1657
struct siop_acb *acb;
sys/arch/amiga/dev/siop.c
1668
if ((acb = sc->free_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop.c
1670
while (acb) {
sys/arch/amiga/dev/siop.c
1671
siop_dump_acb(acb);
sys/arch/amiga/dev/siop.c
1672
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop.c
1675
if ((acb = sc->ready_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop.c
1677
while (acb) {
sys/arch/amiga/dev/siop.c
1678
siop_dump_acb(acb);
sys/arch/amiga/dev/siop.c
1679
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop.c
1682
if ((acb = sc->nexus_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop.c
1684
while (acb) {
sys/arch/amiga/dev/siop.c
1685
siop_dump_acb(acb);
sys/arch/amiga/dev/siop.c
1686
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop.c
231
struct siop_acb *acb;
sys/arch/amiga/dev/siop.c
253
acb = sc->free_list.tqh_first;
sys/arch/amiga/dev/siop.c
254
if (acb) {
sys/arch/amiga/dev/siop.c
255
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop.c
264
if (acb == NULL) {
sys/arch/amiga/dev/siop.c
271
acb->flags = ACB_ACTIVE;
sys/arch/amiga/dev/siop.c
272
acb->xs = xs;
sys/arch/amiga/dev/siop.c
273
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/amiga/dev/siop.c
274
acb->clen = xs->cmdlen;
sys/arch/amiga/dev/siop.c
275
acb->daddr = xs->data;
sys/arch/amiga/dev/siop.c
276
acb->dleft = xs->datalen;
sys/arch/amiga/dev/siop.c
279
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop.c
287
siop_poll(sc, acb);
sys/arch/amiga/dev/siop.c
299
siop_poll(struct siop_softc *sc, struct siop_acb *acb)
sys/arch/amiga/dev/siop.c
302
struct scsipi_xfer *xs = acb->xs;
sys/arch/amiga/dev/siop.c
325
xs->xs_periph->periph_target, acb->cmd.opcode,
sys/arch/amiga/dev/siop.c
328
*((volatile long *)&rp->siop_dcmd), &acb->ds, acb->xs->timeout);
sys/arch/amiga/dev/siop.c
342
if (acb != sc->sc_nexus)
sys/arch/amiga/dev/siop.c
366
struct siop_acb *acb;
sys/arch/amiga/dev/siop.c
379
for (acb = sc->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/siop.c
380
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop.c
385
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop.c
386
sc->sc_nexus = acb;
sys/arch/amiga/dev/siop.c
387
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop.c
394
if (acb == NULL) {
sys/arch/amiga/dev/siop.c
402
if (acb->xs->xs_control & XS_CTL_RESET)
sys/arch/amiga/dev/siop.c
406
acb->cmd.bytes[0] |= slp->scsipi_scsi.lun << 5; /* XXXX */
sys/arch/amiga/dev/siop.c
413
siop_scsidone(struct siop_acb *acb, int stat)
sys/arch/amiga/dev/siop.c
420
if (acb == NULL || (xs = acb->xs) == NULL) {
sys/arch/amiga/dev/siop.c
450
if (acb == sc->sc_nexus) {
sys/arch/amiga/dev/siop.c
458
} else if (sc->ready_list.tqh_last == &acb->chain.tqe_next) {
sys/arch/amiga/dev/siop.c
459
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop.c
465
if (acb2 == acb) {
sys/arch/amiga/dev/siop.c
466
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop.c
474
else if (acb->chain.tqe_next) {
sys/arch/amiga/dev/siop.c
475
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop.c
487
acb->flags = ACB_FREE;
sys/arch/amiga/dev/siop.c
488
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop.c
611
struct siop_acb *acb;
sys/arch/amiga/dev/siop.c
616
acb = arg;
sys/arch/amiga/dev/siop.c
617
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop.c
624
acb->xs->error = XS_TIMEOUT;
sys/arch/amiga/dev/siop.c
636
struct siop_acb *acb;
sys/arch/amiga/dev/siop.c
697
acb = sc->sc_acb;
sys/arch/amiga/dev/siop.c
698
memset(acb, 0, sizeof(struct siop_acb) * SIOP_NACB);
sys/arch/amiga/dev/siop.c
700
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop.c
701
acb++;
sys/arch/amiga/dev/siop.c
709
while ((acb = sc->nexus_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop.c
710
acb->xs->error = XS_RESET;
sys/arch/amiga/dev/siop.c
711
siop_scsidone(acb, acb->stat[0]);
sys/arch/amiga/dev/siop.c
738
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop.c
746
rp, &scripts, &acb->ds, sc->sc_active);
sys/arch/amiga/dev/siop.c
755
acb->msgout[0] = MSG_IDENTIFY | lun;
sys/arch/amiga/dev/siop.c
758
acb->msgout[0] = MSG_IDENTIFY_DR | lun;
sys/arch/amiga/dev/siop.c
759
acb->status = 0;
sys/arch/amiga/dev/siop.c
760
acb->stat[0] = -1;
sys/arch/amiga/dev/siop.c
761
acb->msg[0] = -1;
sys/arch/amiga/dev/siop.c
762
acb->ds.scsi_addr = (0x10000 << target) | (sc->sc_sync[target].sxfer << 8);
sys/arch/amiga/dev/siop.c
763
acb->ds.idlen = 1;
sys/arch/amiga/dev/siop.c
764
acb->ds.idbuf = (char *) kvtop(&acb->msgout[0]);
sys/arch/amiga/dev/siop.c
765
acb->ds.cmdlen = clen;
sys/arch/amiga/dev/siop.c
766
acb->ds.cmdbuf = (char *) kvtop(cbuf);
sys/arch/amiga/dev/siop.c
767
acb->ds.stslen = 1;
sys/arch/amiga/dev/siop.c
768
acb->ds.stsbuf = (char *) kvtop(&acb->stat[0]);
sys/arch/amiga/dev/siop.c
769
acb->ds.msglen = 1;
sys/arch/amiga/dev/siop.c
770
acb->ds.msgbuf = (char *) kvtop(&acb->msg[0]);
sys/arch/amiga/dev/siop.c
771
acb->msg[1] = -1;
sys/arch/amiga/dev/siop.c
772
acb->ds.msginlen = 1;
sys/arch/amiga/dev/siop.c
773
acb->ds.extmsglen = 1;
sys/arch/amiga/dev/siop.c
774
acb->ds.synmsglen = 3;
sys/arch/amiga/dev/siop.c
775
acb->ds.msginbuf = (char *) kvtop(&acb->msg[1]);
sys/arch/amiga/dev/siop.c
776
acb->ds.extmsgbuf = (char *) kvtop(&acb->msg[2]);
sys/arch/amiga/dev/siop.c
777
acb->ds.synmsgbuf = (char *) kvtop(&acb->msg[3]);
sys/arch/amiga/dev/siop.c
778
memset(&acb->ds.chain, 0, sizeof (acb->ds.chain));
sys/arch/amiga/dev/siop.c
796
acb->msg[2] = -1;
sys/arch/amiga/dev/siop.c
797
acb->msgout[1] = MSG_EXT_MESSAGE;
sys/arch/amiga/dev/siop.c
798
acb->msgout[2] = 3;
sys/arch/amiga/dev/siop.c
799
acb->msgout[3] = MSG_SYNC_REQ;
sys/arch/amiga/dev/siop.c
801
acb->msgout[4] = 50 / 4; /* ask for ridiculous period */
sys/arch/amiga/dev/siop.c
803
acb->msgout[4] = sc->sc_minsync;
sys/arch/amiga/dev/siop.c
805
acb->msgout[5] = SIOP_MAX_OFFSET;
sys/arch/amiga/dev/siop.c
806
acb->ds.idlen = 6;
sys/arch/amiga/dev/siop.c
818
acb->iob_buf = buf;
sys/arch/amiga/dev/siop.c
819
acb->iob_len = len;
sys/arch/amiga/dev/siop.c
820
acb->iob_curbuf = acb->iob_curlen = 0;
sys/arch/amiga/dev/siop.c
826
acb->ds.chain[nchain].databuf = (char *) kvtop (addr);
sys/arch/amiga/dev/siop.c
829
acb->ds.chain[nchain].datalen = tcount;
sys/arch/amiga/dev/siop.c
832
if (acb->ds.chain[nchain].databuf == dmaend) {
sys/arch/amiga/dev/siop.c
833
dmaend += acb->ds.chain[nchain].datalen;
sys/arch/amiga/dev/siop.c
834
acb->ds.chain[nchain].datalen = 0;
sys/arch/amiga/dev/siop.c
835
acb->ds.chain[--nchain].datalen += tcount;
sys/arch/amiga/dev/siop.c
841
dmaend = acb->ds.chain[nchain].databuf +
sys/arch/amiga/dev/siop.c
842
acb->ds.chain[nchain].datalen;
sys/arch/amiga/dev/siop.c
843
acb->ds.chain[nchain].datalen = tcount;
sys/arch/amiga/dev/siop.c
855
printf (" [%d] %8p %lx\n", i, acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop.c
856
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop.c
862
dma_cachectl ((void *)acb, sizeof (struct siop_acb));
sys/arch/amiga/dev/siop.c
869
rp, &scripts, &acb->ds, sc->sc_active);
sys/arch/amiga/dev/siop.c
876
callout_reset(&acb->xs->xs_callout,
sys/arch/amiga/dev/siop.c
877
mstohz(acb->xs->timeout) + 1, siop_timeout, acb);
sys/arch/amiga/dev/siop.c
883
rp->siop_dsa = kvtop((void *)&acb->ds);
sys/arch/amiga/dev/siop.c
909
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop.c
924
DCIAS(&acb->stat[0]); /* XXX */
sys/arch/amiga/dev/siop.c
926
istat, dstat, sstat0, rp->siop_dsps, rp->siop_sbcl, acb->stat[0], acb->msg[0]);
sys/arch/amiga/dev/siop.c
928
acb->msg[0], acb->msg[1], acb->msg[2],
sys/arch/amiga/dev/siop.c
929
acb->msg[3], acb->msg[4], acb->msg[5]);
sys/arch/amiga/dev/siop.c
948
if (rp->siop_dsa != kvtop((void *)&acb->ds)) {
sys/arch/amiga/dev/siop.c
950
(unsigned)kvtop((void *)&acb->ds));
sys/arch/amiga/dev/siop.c
954
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop.c
956
if (acb->msg[1] == 0xff)
sys/arch/amiga/dev/siop.c
959
else if (acb->msg[1] == MSG_REJECT)
sys/arch/amiga/dev/siop.c
965
device_xname(sc->sc_dev), target, acb->msg[1],
sys/arch/amiga/dev/siop.c
966
acb->msg[2], acb->msg[3]);
sys/arch/amiga/dev/siop.c
969
dma_cachectl(&acb->stat[0], 1);
sys/arch/amiga/dev/siop.c
970
*status = acb->stat[0];
sys/arch/amiga/dev/siop.c
979
if (acb->msg[0] != 0x00)
sys/arch/amiga/dev/siop.c
981
device_xname(sc->sc_dev), acb->msg[0]);
sys/arch/amiga/dev/siop.c
988
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop.c
989
if (acb->msg[1] == MSG_EXT_MESSAGE && acb->msg[2] == 3 &&
sys/arch/amiga/dev/siop.c
990
acb->msg[3] == MSG_SYNC_REQ) {
sys/arch/amiga/dev/siop.c
994
acb->msg[0], acb->msg[1], acb->msg[2],
sys/arch/amiga/dev/siop.c
995
acb->msg[3], acb->msg[4], acb->msg[5]);
sys/arch/amiga/dev/siop.c
999
if (acb->msg[2] == 3 &&
sys/arch/amiga/dev/siop2.c
1016
if (rp->siop_dsa != kvtop((void *)&acb->ds)) {
sys/arch/amiga/dev/siop2.c
1018
(unsigned)kvtop((void *)&acb->ds));
sys/arch/amiga/dev/siop2.c
1022
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop2.c
1024
if (acb->msg[1] == 0xff)
sys/arch/amiga/dev/siop2.c
1027
else if (acb->msg[1] == MSG_REJECT)
sys/arch/amiga/dev/siop2.c
1032
device_xname(sc->sc_dev), target, acb->msg[1],
sys/arch/amiga/dev/siop2.c
1033
acb->msg[2], acb->msg[3], acb->msg[4]);
sys/arch/amiga/dev/siop2.c
1034
if (acb->msg[1] == MSG_EXT_MESSAGE &&
sys/arch/amiga/dev/siop2.c
1035
acb->msg[2] == 2 &&
sys/arch/amiga/dev/siop2.c
1036
acb->msg[3] == MSG_WIDE_REQ)
sys/arch/amiga/dev/siop2.c
1037
sc->sc_sync[target].scntl3 = acb->msg[4] ?
sys/arch/amiga/dev/siop2.c
1044
if (acb->msg[1] == 0xff)
sys/arch/amiga/dev/siop2.c
1047
else if (acb->msg[1] == MSG_REJECT)
sys/arch/amiga/dev/siop2.c
1053
device_xname(sc->sc_dev), target, acb->msg[1],
sys/arch/amiga/dev/siop2.c
1054
acb->msg[2], acb->msg[3]);
sys/arch/amiga/dev/siop2.c
1057
dma_cachectl(&acb->stat[0], 1);
sys/arch/amiga/dev/siop2.c
1058
*status = acb->stat[0];
sys/arch/amiga/dev/siop2.c
1067
if (acb->msg[0] != 0x00)
sys/arch/amiga/dev/siop2.c
1069
device_xname(sc->sc_dev), acb->msg[0]);
sys/arch/amiga/dev/siop2.c
1076
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop2.c
1077
if (acb->msg[1] == MSG_EXT_MESSAGE && acb->msg[2] == 2 &&
sys/arch/amiga/dev/siop2.c
1078
acb->msg[3] == MSG_WIDE_REQ) {
sys/arch/amiga/dev/siop2.c
1082
acb->msg[0], acb->msg[1], acb->msg[2],
sys/arch/amiga/dev/siop2.c
1083
acb->msg[3], acb->msg[4], acb->msg[5]);
sys/arch/amiga/dev/siop2.c
1086
if (acb->msg[2] == 2 &&
sys/arch/amiga/dev/siop2.c
1087
acb->msg[3] == MSG_WIDE_REQ &&
sys/arch/amiga/dev/siop2.c
1088
acb->msg[4] != 0) {
sys/arch/amiga/dev/siop2.c
1092
acb->msg[4]);
sys/arch/amiga/dev/siop2.c
1107
if (acb->msg[1] == MSG_EXT_MESSAGE && acb->msg[2] == 3 &&
sys/arch/amiga/dev/siop2.c
1108
acb->msg[3] == MSG_SYNC_REQ) {
sys/arch/amiga/dev/siop2.c
1112
acb->msg[0], acb->msg[1], acb->msg[2],
sys/arch/amiga/dev/siop2.c
1113
acb->msg[3], acb->msg[4], acb->msg[5]);
sys/arch/amiga/dev/siop2.c
1118
if (acb->msg[2] == 3 &&
sys/arch/amiga/dev/siop2.c
1119
acb->msg[3] == MSG_SYNC_REQ &&
sys/arch/amiga/dev/siop2.c
1120
acb->msg[5] != 0) {
sys/arch/amiga/dev/siop2.c
1131
if (acb->msg[4] && acb->msg[4] < 100 / 4) {
sys/arch/amiga/dev/siop2.c
1135
acb->msg[4] * 4);
sys/arch/amiga/dev/siop2.c
1137
if (acb->msg[4] == 50 / 4)
sys/arch/amiga/dev/siop2.c
1138
acb->msg[4] = 208 / 4;
sys/arch/amiga/dev/siop2.c
1140
acb->msg[4] = 100 / 4;
sys/arch/amiga/dev/siop2.c
1145
(acb->msg[4] == 12) ? 50 : acb->msg[4] * 4,
sys/arch/amiga/dev/siop2.c
1146
acb->msg[5]);
sys/arch/amiga/dev/siop2.c
1168
if (acb == NULL)
sys/arch/amiga/dev/siop2.c
1172
if (acb->iob_len) {
sys/arch/amiga/dev/siop2.c
1183
acb->iob_curlen =
sys/arch/amiga/dev/siop2.c
1185
acb->iob_curlen += adjust;
sys/arch/amiga/dev/siop2.c
1186
acb->iob_curbuf =
sys/arch/amiga/dev/siop2.c
1192
acb->iob_curbuf, acb->iob_curlen, dfifo,
sys/arch/amiga/dev/siop2.c
1193
dbc, sstat1, adjust, rp->siop_sbcl, siopngstarts, acb);
sys/arch/amiga/dev/siop2.c
1194
if (acb->ds.chain[1].datalen) {
sys/arch/amiga/dev/siop2.c
1195
for (i = 0; acb->ds.chain[i].datalen; ++i)
sys/arch/amiga/dev/siop2.c
1197
i, acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop2.c
1198
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop2.c
1202
dma_cachectl ((void *)acb, sizeof(*acb));
sys/arch/amiga/dev/siop2.c
1236
if (acb == NULL)
sys/arch/amiga/dev/siop2.c
1241
rp, &siopng_scripts, &acb->ds);
sys/arch/amiga/dev/siop2.c
1260
acb->xs->error = XS_SELTIMEOUT;
sys/arch/amiga/dev/siop2.c
1267
if (acb)
sys/arch/amiga/dev/siop2.c
1268
target = acb->xs->xs_periph->periph_target;
sys/arch/amiga/dev/siop2.c
1273
if (acb == NULL)
sys/arch/amiga/dev/siop2.c
1289
return (acb != NULL);
sys/arch/amiga/dev/siop2.c
1298
acb->iob_curbuf, acb->iob_curlen,
sys/arch/amiga/dev/siop2.c
1299
acb->ds.chain[0].databuf, acb->ds.chain[0].datalen, dfifo, dbc, sstat1, siopngstarts, acb);
sys/arch/amiga/dev/siop2.c
1301
if (acb == NULL) {
sys/arch/amiga/dev/siop2.c
1314
if (acb->iob_len && rp->siop_temp) {
sys/arch/amiga/dev/siop2.c
1317
if (acb->iob_curlen && acb->iob_curlen != acb->ds.chain[0].datalen)
sys/arch/amiga/dev/siop2.c
1319
device_xname(sc->sc_dev), n, acb->iob_curbuf, acb->iob_curlen,
sys/arch/amiga/dev/siop2.c
1320
acb->ds.chain[0].databuf, acb->ds.chain[0].datalen);
sys/arch/amiga/dev/siop2.c
1328
acb->iob_curbuf = (u_long)acb->ds.chain[n].databuf;
sys/arch/amiga/dev/siop2.c
1329
acb->iob_curlen = acb->ds.chain[n].datalen;
sys/arch/amiga/dev/siop2.c
1334
printf(" curbuf %lx curlen %lx\n", acb->iob_curbuf,
sys/arch/amiga/dev/siop2.c
1335
acb->iob_curlen);
sys/arch/amiga/dev/siop2.c
1346
if (acb->iob_curlen) {
sys/arch/amiga/dev/siop2.c
1358
if (acb->ds.chain[i].datalen == 0)
sys/arch/amiga/dev/siop2.c
1360
if (acb->iob_curbuf >= (long)acb->ds.chain[i].databuf &&
sys/arch/amiga/dev/siop2.c
1361
acb->iob_curbuf < (long)(acb->ds.chain[i].databuf +
sys/arch/amiga/dev/siop2.c
1362
acb->ds.chain[i].datalen))
sys/arch/amiga/dev/siop2.c
1365
if (i >= DMAMAXIO || acb->ds.chain[i].datalen == 0) {
sys/arch/amiga/dev/siop2.c
1368
acb->iob_curbuf, acb->iob_curlen, i);
sys/arch/amiga/dev/siop2.c
1376
acb->ds.chain[0].databuf,
sys/arch/amiga/dev/siop2.c
1377
acb->ds.chain[0].datalen,
sys/arch/amiga/dev/siop2.c
1378
acb->iob_curbuf,
sys/arch/amiga/dev/siop2.c
1379
acb->iob_curlen);
sys/arch/amiga/dev/siop2.c
1381
acb->ds.chain[0].databuf = (char *)acb->iob_curbuf;
sys/arch/amiga/dev/siop2.c
1382
acb->ds.chain[0].datalen = acb->iob_curlen;
sys/arch/amiga/dev/siop2.c
1383
for (j = 1, ++i; i < DMAMAXIO && acb->ds.chain[i].datalen; ++i, ++j) {
sys/arch/amiga/dev/siop2.c
1387
acb->ds.chain[j].databuf,
sys/arch/amiga/dev/siop2.c
1388
acb->ds.chain[j].datalen,
sys/arch/amiga/dev/siop2.c
1389
acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop2.c
1390
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop2.c
1392
acb->ds.chain[j].databuf = acb->ds.chain[i].databuf;
sys/arch/amiga/dev/siop2.c
1393
acb->ds.chain[j].datalen = acb->ds.chain[i].datalen;
sys/arch/amiga/dev/siop2.c
1396
acb->ds.chain[j].datalen = 0;
sys/arch/amiga/dev/siop2.c
1397
DCIAS(kvtop((void *)&acb->ds.chain));
sys/arch/amiga/dev/siop2.c
1405
acb->status = sc->sc_flags & SIOP_INTSOFF;
sys/arch/amiga/dev/siop2.c
1406
TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop2.c
1451
for (acb = sc->nexus_list.tqh_first; acb;
sys/arch/amiga/dev/siop2.c
1452
acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/siop2.c
1453
if (reselid != ((acb->ds.scsi_addr >> 16) & 0xff) ||
sys/arch/amiga/dev/siop2.c
1454
reselun != (acb->msgout[0] & 0x07))
sys/arch/amiga/dev/siop2.c
1456
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop2.c
1457
sc->sc_nexus = acb;
sys/arch/amiga/dev/siop2.c
1458
sc->sc_flags |= acb->status;
sys/arch/amiga/dev/siop2.c
1459
acb->status = 0;
sys/arch/amiga/dev/siop2.c
1460
DCIAS(kvtop(&acb->stat[0]));
sys/arch/amiga/dev/siop2.c
1461
rp->siop_dsa = kvtop((void *)&acb->ds);
sys/arch/amiga/dev/siop2.c
1464
sc->sc_sync[acb->xs->xs_periph->periph_target].sxfer;
sys/arch/amiga/dev/siop2.c
1467
sc->sc_sync[acb->xs->xs_periph->periph_target].scntl3;
sys/arch/amiga/dev/siop2.c
1472
if (acb == NULL) {
sys/arch/amiga/dev/siop2.c
1478
dma_cachectl ((void *)acb, sizeof(*acb));
sys/arch/amiga/dev/siop2.c
1524
if (acb == NULL)
sys/arch/amiga/dev/siop2.c
1528
dma_cachectl (&acb->msg[1],1);
sys/arch/amiga/dev/siop2.c
1530
device_xname(sc->sc_dev), rp->siop_sfbr, acb->msg[1], rp->siop_sbcl);
sys/arch/amiga/dev/siop2.c
1532
DCIAS(kvtop(&acb->msg[1]));
sys/arch/amiga/dev/siop2.c
1548
dma_cachectl (&acb->stat[0], 1);
sys/arch/amiga/dev/siop2.c
1549
dma_cachectl (&acb->msg[0], 1);
sys/arch/amiga/dev/siop2.c
1551
rp->siop_dsps, acb->stat[0], acb->msg[0], acb->msg[1],
sys/arch/amiga/dev/siop2.c
1570
printf ("siopngchkintr: target %x ds %p\n", target, &acb->ds);
sys/arch/amiga/dev/siop2.c
1572
sc->sc_scriptspa, (unsigned)kvtop((void *)&acb->ds),
sys/arch/amiga/dev/siop2.c
1577
rp->siop_sbcl, acb->stat[0], acb->msg[0], acb->msg[1], rp->siop_sfbr);
sys/arch/amiga/dev/siop2.c
1594
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop2.c
1602
if (acb->xs->xs_control & XS_CTL_POLL || siopng_no_dma) {
sys/arch/amiga/dev/siop2.c
1621
acb->xs->xs_periph->periph_target, acb->cmd.opcode,
sys/arch/amiga/dev/siop2.c
1625
siopng_start(sc, acb->xs->xs_periph->periph_target,
sys/arch/amiga/dev/siop2.c
1626
acb->xs->xs_periph->periph_lun,
sys/arch/amiga/dev/siop2.c
1627
(u_char *)&acb->cmd, acb->clen, acb->daddr, acb->dleft);
sys/arch/amiga/dev/siop2.c
1820
siopng_dump_acb(struct siop_acb *acb)
sys/arch/amiga/dev/siop2.c
1822
u_char *b = (u_char *) &acb->cmd;
sys/arch/amiga/dev/siop2.c
1825
printf("acb@%p ", acb);
sys/arch/amiga/dev/siop2.c
1826
if (acb->xs == NULL) {
sys/arch/amiga/dev/siop2.c
1831
acb->xs->xs_periph->periph_target,
sys/arch/amiga/dev/siop2.c
1832
acb->xs->xs_periph->periph_lun, acb->flags, acb->clen);
sys/arch/amiga/dev/siop2.c
1833
for (i = acb->clen; i; --i)
sys/arch/amiga/dev/siop2.c
1836
printf(" xs: %p data %p:%04x ", acb->xs, acb->xs->data,
sys/arch/amiga/dev/siop2.c
1837
acb->xs->datalen);
sys/arch/amiga/dev/siop2.c
1838
printf("va %p:%lx ", acb->iob_buf, acb->iob_len);
sys/arch/amiga/dev/siop2.c
1839
printf("cur %lx:%lx\n", acb->iob_curbuf, acb->iob_curlen);
sys/arch/amiga/dev/siop2.c
1845
struct siop_acb *acb;
sys/arch/amiga/dev/siop2.c
1856
if ((acb = sc->free_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop2.c
1858
while (acb) {
sys/arch/amiga/dev/siop2.c
1859
siopng_dump_acb(acb);
sys/arch/amiga/dev/siop2.c
1860
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop2.c
1863
if ((acb = sc->ready_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop2.c
1865
while (acb) {
sys/arch/amiga/dev/siop2.c
1866
siopng_dump_acb(acb);
sys/arch/amiga/dev/siop2.c
1867
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop2.c
1870
if ((acb = sc->nexus_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop2.c
1872
while (acb) {
sys/arch/amiga/dev/siop2.c
1873
siopng_dump_acb(acb);
sys/arch/amiga/dev/siop2.c
1874
acb = acb->chain.tqe_next;
sys/arch/amiga/dev/siop2.c
218
struct siop_acb *acb;
sys/arch/amiga/dev/siop2.c
240
acb = sc->free_list.tqh_first;
sys/arch/amiga/dev/siop2.c
241
if (acb) {
sys/arch/amiga/dev/siop2.c
242
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop2.c
251
if (acb == NULL) {
sys/arch/amiga/dev/siop2.c
257
acb->flags = ACB_ACTIVE;
sys/arch/amiga/dev/siop2.c
258
acb->xs = xs;
sys/arch/amiga/dev/siop2.c
259
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/amiga/dev/siop2.c
260
acb->clen = xs->cmdlen;
sys/arch/amiga/dev/siop2.c
261
acb->daddr = xs->data;
sys/arch/amiga/dev/siop2.c
262
acb->dleft = xs->datalen;
sys/arch/amiga/dev/siop2.c
265
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop2.c
273
siopng_poll(sc, acb);
sys/arch/amiga/dev/siop2.c
285
siopng_poll(struct siop_softc *sc, struct siop_acb *acb)
sys/arch/amiga/dev/siop2.c
288
struct scsipi_xfer *xs = acb->xs;
sys/arch/amiga/dev/siop2.c
311
xs->xs_periph->periph_target, acb->cmd.opcode,
sys/arch/amiga/dev/siop2.c
314
*((volatile long *)&rp->siop_dcmd), &acb->ds, acb->xs->timeout);
sys/arch/amiga/dev/siop2.c
328
if (acb != sc->sc_nexus)
sys/arch/amiga/dev/siop2.c
351
struct siop_acb *acb;
sys/arch/amiga/dev/siop2.c
364
for (acb = sc->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
sys/arch/amiga/dev/siop2.c
365
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop2.c
370
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop2.c
371
sc->sc_nexus = acb;
sys/arch/amiga/dev/siop2.c
372
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop2.c
379
if (acb == NULL) {
sys/arch/amiga/dev/siop2.c
387
if (acb->xs->xs_control & XS_CTL_RESET)
sys/arch/amiga/dev/siop2.c
391
acb->cmd.bytes[0] |= periph->periph_lun << 5; /* XXXX */
sys/arch/amiga/dev/siop2.c
398
siopng_scsidone(struct siop_acb *acb, int stat)
sys/arch/amiga/dev/siop2.c
405
if (acb == NULL || (xs = acb->xs) == NULL) {
sys/arch/amiga/dev/siop2.c
435
if (acb == sc->sc_nexus) {
sys/arch/amiga/dev/siop2.c
443
} else if (sc->ready_list.tqh_last == &acb->chain.tqe_next) {
sys/arch/amiga/dev/siop2.c
444
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop2.c
450
if (acb2 == acb) {
sys/arch/amiga/dev/siop2.c
451
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/amiga/dev/siop2.c
459
else if (acb->chain.tqe_next) {
sys/arch/amiga/dev/siop2.c
460
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/amiga/dev/siop2.c
472
acb->flags = ACB_FREE;
sys/arch/amiga/dev/siop2.c
473
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop2.c
599
struct siop_acb *acb;
sys/arch/amiga/dev/siop2.c
604
acb = arg;
sys/arch/amiga/dev/siop2.c
605
periph = acb->xs->xs_periph;
sys/arch/amiga/dev/siop2.c
612
acb->xs->error = XS_TIMEOUT;
sys/arch/amiga/dev/siop2.c
624
struct siop_acb *acb;
sys/arch/amiga/dev/siop2.c
724
acb = sc->sc_acb;
sys/arch/amiga/dev/siop2.c
725
memset(acb, 0, sizeof(struct siop_acb) * SIOP_NACB);
sys/arch/amiga/dev/siop2.c
727
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/arch/amiga/dev/siop2.c
728
acb++;
sys/arch/amiga/dev/siop2.c
736
while ((acb = sc->nexus_list.tqh_first) > 0) {
sys/arch/amiga/dev/siop2.c
737
acb->xs->error = XS_RESET;
sys/arch/amiga/dev/siop2.c
738
siopng_scsidone(acb, acb->stat[0]);
sys/arch/amiga/dev/siop2.c
767
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop2.c
775
rp, &siopng_scripts, &acb->ds, sc->sc_active);
sys/arch/amiga/dev/siop2.c
784
acb->msgout[0] = MSG_IDENTIFY | lun;
sys/arch/amiga/dev/siop2.c
787
acb->msgout[0] = MSG_IDENTIFY_DR | lun;
sys/arch/amiga/dev/siop2.c
788
acb->status = 0;
sys/arch/amiga/dev/siop2.c
789
acb->stat[0] = -1;
sys/arch/amiga/dev/siop2.c
790
acb->msg[0] = -1;
sys/arch/amiga/dev/siop2.c
791
acb->ds.scsi_addr = (target << 16) | (sc->sc_sync[target].sxfer << 8) |
sys/arch/amiga/dev/siop2.c
793
acb->ds.idlen = 1;
sys/arch/amiga/dev/siop2.c
794
acb->ds.idbuf = (char *) kvtop(&acb->msgout[0]);
sys/arch/amiga/dev/siop2.c
795
acb->ds.cmdlen = clen;
sys/arch/amiga/dev/siop2.c
796
acb->ds.cmdbuf = (char *) kvtop(cbuf);
sys/arch/amiga/dev/siop2.c
797
acb->ds.stslen = 1;
sys/arch/amiga/dev/siop2.c
798
acb->ds.stsbuf = (char *) kvtop(&acb->stat[0]);
sys/arch/amiga/dev/siop2.c
799
acb->ds.msglen = 1;
sys/arch/amiga/dev/siop2.c
800
acb->ds.msgbuf = (char *) kvtop(&acb->msg[0]);
sys/arch/amiga/dev/siop2.c
801
acb->msg[1] = -1;
sys/arch/amiga/dev/siop2.c
802
acb->ds.msginlen = 1;
sys/arch/amiga/dev/siop2.c
803
acb->ds.extmsglen = 1;
sys/arch/amiga/dev/siop2.c
804
acb->ds.synmsglen = 3;
sys/arch/amiga/dev/siop2.c
805
acb->ds.msginbuf = acb->ds.msgbuf + 1;
sys/arch/amiga/dev/siop2.c
806
acb->ds.extmsgbuf = acb->ds.msginbuf + 1;
sys/arch/amiga/dev/siop2.c
807
acb->ds.synmsgbuf = acb->ds.extmsgbuf + 1;
sys/arch/amiga/dev/siop2.c
808
memset(&acb->ds.chain, 0, sizeof (acb->ds.chain));
sys/arch/amiga/dev/siop2.c
822
acb->msg[2] = -1;
sys/arch/amiga/dev/siop2.c
823
acb->msgout[1] = MSG_EXT_MESSAGE;
sys/arch/amiga/dev/siop2.c
824
acb->msgout[2] = 2;
sys/arch/amiga/dev/siop2.c
825
acb->msgout[3] = MSG_WIDE_REQ;
sys/arch/amiga/dev/siop2.c
826
acb->msgout[4] = 1;
sys/arch/amiga/dev/siop2.c
827
acb->ds.idlen = 5;
sys/arch/amiga/dev/siop2.c
828
acb->ds.synmsglen = 2;
sys/arch/amiga/dev/siop2.c
850
acb->msg[2] = -1;
sys/arch/amiga/dev/siop2.c
851
acb->msgout[1] = MSG_EXT_MESSAGE;
sys/arch/amiga/dev/siop2.c
852
acb->msgout[2] = 3;
sys/arch/amiga/dev/siop2.c
853
acb->msgout[3] = MSG_SYNC_REQ;
sys/arch/amiga/dev/siop2.c
855
acb->msgout[4] = 50 / 4; /* ask for ridiculous period */
sys/arch/amiga/dev/siop2.c
857
acb->msgout[4] = sc->sc_minsync;
sys/arch/amiga/dev/siop2.c
859
acb->msgout[5] = SIOP_MAX_OFFSET;
sys/arch/amiga/dev/siop2.c
860
acb->ds.idlen = 6;
sys/arch/amiga/dev/siop2.c
872
acb->iob_buf = buf;
sys/arch/amiga/dev/siop2.c
873
acb->iob_len = len;
sys/arch/amiga/dev/siop2.c
874
acb->iob_curbuf = acb->iob_curlen = 0;
sys/arch/amiga/dev/siop2.c
880
acb->ds.chain[nchain].databuf = (char *) kvtop (addr);
sys/arch/amiga/dev/siop2.c
887
acb->ds.chain[nchain].databuf);
sys/arch/amiga/dev/siop2.c
889
acb->ds.chain[nchain].datalen = tcount;
sys/arch/amiga/dev/siop2.c
892
if (acb->ds.chain[nchain].databuf == dmaend) {
sys/arch/amiga/dev/siop2.c
893
dmaend += acb->ds.chain[nchain].datalen;
sys/arch/amiga/dev/siop2.c
894
acb->ds.chain[nchain].datalen = 0;
sys/arch/amiga/dev/siop2.c
895
acb->ds.chain[--nchain].datalen += tcount;
sys/arch/amiga/dev/siop2.c
901
dmaend = acb->ds.chain[nchain].databuf +
sys/arch/amiga/dev/siop2.c
902
acb->ds.chain[nchain].datalen;
sys/arch/amiga/dev/siop2.c
903
acb->ds.chain[nchain].datalen = tcount;
sys/arch/amiga/dev/siop2.c
915
printf (" [%d] %8p %lx\n", i, acb->ds.chain[i].databuf,
sys/arch/amiga/dev/siop2.c
916
acb->ds.chain[i].datalen);
sys/arch/amiga/dev/siop2.c
922
dma_cachectl ((void *)acb, sizeof (struct siop_acb));
sys/arch/amiga/dev/siop2.c
929
rp, &siopng_scripts, &acb->ds, sc->sc_active);
sys/arch/amiga/dev/siop2.c
936
callout_reset(&acb->xs->xs_callout,
sys/arch/amiga/dev/siop2.c
937
mstohz(acb->xs->timeout) + 1, siopng_timeout, acb);
sys/arch/amiga/dev/siop2.c
946
rp->siop_dsa = kvtop((void *)&acb->ds);
sys/arch/amiga/dev/siop2.c
974
struct siop_acb *acb = sc->sc_nexus;
sys/arch/amiga/dev/siop2.c
992
DCIAS(&acb->stat[0]); /* XXX */
sys/arch/amiga/dev/siop2.c
994
istat, dstat, sist, rp->siop_dsps, rp->siop_sbcl, acb->stat[0], acb->msg[0]);
sys/arch/amiga/dev/siop2.c
996
acb->msg[0], acb->msg[1], acb->msg[2],
sys/arch/amiga/dev/siop2.c
997
acb->msg[3], acb->msg[4], acb->msg[5]);
sys/arch/atari/include/acia.h
39
volatile u_char acb[4]; /* use only the even bytes */
sys/arch/atari/include/acia.h
42
#define ac_cs acb[0] /* control and status register */
sys/arch/atari/include/acia.h
43
#define ac_da acb[2] /* data register */
sys/arch/mvme68k/dev/sbic.c
1298
struct sbic_acb *acb = dev->sc_nexus;
sys/arch/mvme68k/dev/sbic.c
1305
dev->sc_last = dev->sc_cur = &acb->sc_pa;
sys/arch/mvme68k/dev/sbic.c
1306
dev->sc_tcnt = acb->sc_tcnt = 0;
sys/arch/mvme68k/dev/sbic.c
1308
acb->sc_dmacmd = 0;
sys/arch/mvme68k/dev/sbic.c
1309
acb->sc_pa.dc_count = 0; /* No DMA */
sys/arch/mvme68k/dev/sbic.c
1310
acb->sc_kv.dc_addr = buf;
sys/arch/mvme68k/dev/sbic.c
1311
acb->sc_kv.dc_count = len;
sys/arch/mvme68k/dev/sbic.c
1316
dev->target, dev->lun, acb->sc_kv.dc_count);
sys/arch/mvme68k/dev/sbic.c
1471
acb->sc_kv.dc_count, dev->sc_stat[0]);
sys/arch/mvme68k/dev/sbic.c
1532
struct sbic_acb *acb = dev->sc_nexus;
sys/arch/mvme68k/dev/sbic.c
1559
if (acb->flags & ACB_DATAIN)
sys/arch/mvme68k/dev/sbic.c
1564
addr = acb->sc_kv.dc_addr;
sys/arch/mvme68k/dev/sbic.c
1565
count = acb->sc_kv.dc_count;
sys/arch/mvme68k/dev/sbic.c
1567
if (count && ((char *)kvtop((void *)addr) != acb->sc_pa.dc_addr)) {
sys/arch/mvme68k/dev/sbic.c
1569
acb->sc_pa.dc_addr, kvtop((void *)addr));
sys/arch/mvme68k/dev/sbic.c
1583
acb->sc_tcnt = dev->sc_tcnt = 0;
sys/arch/mvme68k/dev/sbic.c
1584
acb->sc_pa.dc_count = 0;
sys/arch/mvme68k/dev/sbic.c
1595
dev->sc_tcnt = dev->sc_dmago(dev, acb->sc_pa.dc_addr,
sys/arch/mvme68k/dev/sbic.c
1596
acb->sc_pa.dc_count, dmaflags);
sys/arch/mvme68k/dev/sbic.c
1603
acb->sc_dmacmd = dev->sc_dmacmd;
sys/arch/mvme68k/dev/sbic.c
2102
struct sbic_acb *acb = dev->sc_nexus;
sys/arch/mvme68k/dev/sbic.c
2112
if ( sbicxfout(regs, acb->clen, &acb->cmd) )
sys/arch/mvme68k/dev/sbic.c
213
struct sbic_acb *acb;
sys/arch/mvme68k/dev/sbic.c
2147
sbic_scsidone(acb, dev->sc_stat[0]);
sys/arch/mvme68k/dev/sbic.c
2162
if (acb->sc_kv.dc_count <= 0) {
sys/arch/mvme68k/dev/sbic.c
2165
acb->sc_kv.dc_count, asr, csr);
sys/arch/mvme68k/dev/sbic.c
2174
acb->sc_dmacmd == 0 ) {
sys/arch/mvme68k/dev/sbic.c
2184
acb->sc_kv.dc_addr,
sys/arch/mvme68k/dev/sbic.c
2185
acb->sc_kv.dc_count);
sys/arch/mvme68k/dev/sbic.c
2192
i = sbicxfin(regs, acb->sc_kv.dc_count,
sys/arch/mvme68k/dev/sbic.c
2193
acb->sc_kv.dc_addr);
sys/arch/mvme68k/dev/sbic.c
2198
i = sbicxfout(regs, acb->sc_kv.dc_count,
sys/arch/mvme68k/dev/sbic.c
2199
acb->sc_kv.dc_addr);
sys/arch/mvme68k/dev/sbic.c
2201
acb->sc_kv.dc_addr += (acb->sc_kv.dc_count - i);
sys/arch/mvme68k/dev/sbic.c
2202
acb->sc_kv.dc_count = i;
sys/arch/mvme68k/dev/sbic.c
2207
acb->sc_tcnt = dev->sc_tcnt = i;
sys/arch/mvme68k/dev/sbic.c
2308
TAILQ_INSERT_HEAD(&dev->nexus_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
2315
if (acb->xs->xs_control & XS_CTL_POLL ||
sys/arch/mvme68k/dev/sbic.c
243
acb = dev->sc_nexus;
sys/arch/mvme68k/dev/sbic.c
244
acb->sc_dmacmd = dev->sc_dmacmd;
sys/arch/mvme68k/dev/sbic.c
2457
for (acb = dev->nexus_list.tqh_first; acb;
sys/arch/mvme68k/dev/sbic.c
2458
acb = acb->chain.tqe_next) {
sys/arch/mvme68k/dev/sbic.c
2460
if ( acb->xs->xs_periph->periph_target == newtarget &&
sys/arch/mvme68k/dev/sbic.c
2461
acb->xs->xs_periph->periph_lun == newlun) {
sys/arch/mvme68k/dev/sbic.c
2466
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
2468
dev->sc_nexus = acb;
sys/arch/mvme68k/dev/sbic.c
2469
dev->sc_xs = acb->xs;
sys/arch/mvme68k/dev/sbic.c
2477
if (acb == NULL) {
sys/arch/mvme68k/dev/sbic.c
2525
sbic_scsidone(acb, -1);
sys/arch/mvme68k/dev/sbic.c
271
acb->sc_tcnt = count;
sys/arch/mvme68k/dev/sbic.c
277
dev->sc_tcnt = acb->sc_tcnt;
sys/arch/mvme68k/dev/sbic.c
282
acb->sc_kv.dc_addr += count;
sys/arch/mvme68k/dev/sbic.c
283
acb->sc_kv.dc_count -= count;
sys/arch/mvme68k/dev/sbic.c
284
acb->sc_pa.dc_addr += count;
sys/arch/mvme68k/dev/sbic.c
285
acb->sc_pa.dc_count -= count >> 1;
sys/arch/mvme68k/dev/sbic.c
304
struct sbic_acb *acb = dev->sc_nexus;
sys/arch/mvme68k/dev/sbic.c
307
if (acb->sc_kv.dc_count == 0) {
sys/arch/mvme68k/dev/sbic.c
319
dev->sc_last = dev->sc_cur = &acb->sc_pa;
sys/arch/mvme68k/dev/sbic.c
324
dev->sc_tcnt = acb->sc_tcnt;
sys/arch/mvme68k/dev/sbic.c
325
dev->sc_dmacmd = acb->sc_dmacmd;
sys/arch/mvme68k/dev/sbic.c
344
vaddr = acb->sc_kv.dc_addr;
sys/arch/mvme68k/dev/sbic.c
345
paddr = acb->sc_pa.dc_addr = (char *)kvtop((void *)vaddr);
sys/arch/mvme68k/dev/sbic.c
348
count < acb->sc_kv.dc_count &&
sys/arch/mvme68k/dev/sbic.c
357
if (count > acb->sc_kv.dc_count) {
sys/arch/mvme68k/dev/sbic.c
358
count = acb->sc_kv.dc_count;
sys/arch/mvme68k/dev/sbic.c
368
acb->sc_tcnt = count;
sys/arch/mvme68k/dev/sbic.c
369
acb->sc_pa.dc_count = count >> 1;
sys/arch/mvme68k/dev/sbic.c
374
acb->sc_kv.dc_addr,
sys/arch/mvme68k/dev/sbic.c
375
acb->sc_kv.dc_count,
sys/arch/mvme68k/dev/sbic.c
376
acb->sc_pa.dc_addr,
sys/arch/mvme68k/dev/sbic.c
377
acb->sc_tcnt);
sys/arch/mvme68k/dev/sbic.c
399
struct sbic_acb *acb;
sys/arch/mvme68k/dev/sbic.c
416
if ((acb = dev->free_list.tqh_first) != NULL)
sys/arch/mvme68k/dev/sbic.c
417
TAILQ_REMOVE(&dev->free_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
421
if (acb == NULL) {
sys/arch/mvme68k/dev/sbic.c
435
acb->flags = ACB_ACTIVE | ACB_DATAIN;
sys/arch/mvme68k/dev/sbic.c
437
acb->flags = ACB_ACTIVE;
sys/arch/mvme68k/dev/sbic.c
439
acb->xs = xs;
sys/arch/mvme68k/dev/sbic.c
440
acb->clen = xs->cmdlen;
sys/arch/mvme68k/dev/sbic.c
441
acb->sc_kv.dc_addr = xs->data;
sys/arch/mvme68k/dev/sbic.c
442
acb->sc_kv.dc_count = xs->datalen;
sys/arch/mvme68k/dev/sbic.c
443
acb->pa_addr = xs->data ?
sys/arch/mvme68k/dev/sbic.c
445
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/mvme68k/dev/sbic.c
474
dev->sc_nexus = acb;
sys/arch/mvme68k/dev/sbic.c
479
stat = sbicicmd(dev, &acb->cmd, acb->clen,
sys/arch/mvme68k/dev/sbic.c
480
acb->sc_kv.dc_addr, acb->sc_kv.dc_count);
sys/arch/mvme68k/dev/sbic.c
482
} while (dev->sc_nexus != acb);
sys/arch/mvme68k/dev/sbic.c
484
sbic_scsidone(acb, stat);
sys/arch/mvme68k/dev/sbic.c
492
TAILQ_INSERT_TAIL(&dev->ready_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
522
struct sbic_acb *acb;
sys/arch/mvme68k/dev/sbic.c
536
for (acb = dev->ready_list.tqh_first; acb; acb = acb->chain.tqe_next) {
sys/arch/mvme68k/dev/sbic.c
539
periph = acb->xs->xs_periph;
sys/arch/mvme68k/dev/sbic.c
551
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
552
dev->sc_nexus = acb;
sys/arch/mvme68k/dev/sbic.c
553
acb->sc_pa.dc_addr = acb->pa_addr; /* XXXX check */
sys/arch/mvme68k/dev/sbic.c
558
if (acb == NULL) {
sys/arch/mvme68k/dev/sbic.c
569
dev->sc_xs = xs = acb->xs;
sys/arch/mvme68k/dev/sbic.c
581
stat = sbicicmd(dev, &acb->cmd, acb->clen,
sys/arch/mvme68k/dev/sbic.c
582
acb->sc_kv.dc_addr, acb->sc_kv.dc_count);
sys/arch/mvme68k/dev/sbic.c
588
sbic_scsidone(acb, stat);
sys/arch/mvme68k/dev/sbic.c
592
sbic_scsidone(struct sbic_acb *acb, int stat)
sys/arch/mvme68k/dev/sbic.c
594
struct scsipi_xfer *xs = acb->xs;
sys/arch/mvme68k/dev/sbic.c
601
if (acb == NULL || xs == NULL) {
sys/arch/mvme68k/dev/sbic.c
637
if (acb == dev->sc_nexus ) {
sys/arch/mvme68k/dev/sbic.c
648
} else if (dev->ready_list.tqh_last == &acb->chain.tqe_next) {
sys/arch/mvme68k/dev/sbic.c
650
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
658
if (a == acb) {
sys/arch/mvme68k/dev/sbic.c
659
TAILQ_REMOVE(&dev->nexus_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
668
else if ( acb->chain.tqe_next ) {
sys/arch/mvme68k/dev/sbic.c
669
TAILQ_REMOVE(&dev->ready_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
682
acb->flags = ACB_FREE;
sys/arch/mvme68k/dev/sbic.c
683
TAILQ_INSERT_HEAD(&dev->free_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
831
struct sbic_acb *acb;
sys/arch/mvme68k/dev/sbic.c
841
acb = dev->sc_acb;
sys/arch/mvme68k/dev/sbic.c
842
memset(acb, 0, sizeof(dev->sc_acb));
sys/arch/mvme68k/dev/sbic.c
844
for (i = 0; i < sizeof(dev->sc_acb) / sizeof(*acb); i++) {
sys/arch/mvme68k/dev/sbic.c
845
TAILQ_INSERT_TAIL(&dev->free_list, acb, chain);
sys/arch/mvme68k/dev/sbic.c
846
acb++;
sys/arch/x68k/dev/mha.c
1071
struct acb *acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1073
&sc->sc_tinfo[acb->xs->xs_periph->periph_target];
sys/arch/x68k/dev/mha.c
1079
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/arch/x68k/dev/mha.c
1086
acb->xs->resid = acb->dleft = sc->sc_dleft;
sys/arch/x68k/dev/mha.c
1097
scsipi_printaddr(acb->xs->xs_periph);
sys/arch/x68k/dev/mha.c
1117
if ((acb->xs->xs_periph->periph_quirks & PQUIRK_AUTOSAVE) == 0)
sys/arch/x68k/dev/mha.c
1122
acb->dleft = sc->sc_dleft;
sys/arch/x68k/dev/mha.c
1123
acb->daddr = sc->sc_dp;
sys/arch/x68k/dev/mha.c
1127
if (!acb) {
sys/arch/x68k/dev/mha.c
1133
sc->sc_dp = acb->daddr;
sys/arch/x68k/dev/mha.c
1134
sc->sc_dleft = acb->dleft;
sys/arch/x68k/dev/mha.c
1139
acb->xs->xs_periph->periph_target);
sys/arch/x68k/dev/mha.c
1155
acb->xs->xs_periph->periph_target);
sys/arch/x68k/dev/mha.c
1160
acb->xs->xs_periph->periph_target);
sys/arch/x68k/dev/mha.c
1171
scsipi_printaddr(acb->xs->xs_periph);
sys/arch/x68k/dev/mha.c
1214
struct acb *acb;
sys/arch/x68k/dev/mha.c
1227
TAILQ_FOREACH(acb, &sc->nexus_list, chain) {
sys/arch/x68k/dev/mha.c
1228
periph = acb->xs->xs_periph;
sys/arch/x68k/dev/mha.c
1231
TAILQ_REMOVE(&sc->nexus_list, acb,
sys/arch/x68k/dev/mha.c
1233
ACB_SETQ(acb, ACB_QNONE);
sys/arch/x68k/dev/mha.c
1238
if (!acb) { /* Invalid reselection! */
sys/arch/x68k/dev/mha.c
1248
sc->sc_nexus = acb;
sys/arch/x68k/dev/mha.c
1249
sc->sc_dp = acb->daddr;
sys/arch/x68k/dev/mha.c
1250
sc->sc_dleft = acb->dleft;
sys/arch/x68k/dev/mha.c
1618
struct acb *acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1622
if (acb->cmd.opcode == SCSI_REQUEST_SENSE || (n & 1))
sys/arch/x68k/dev/mha.c
1642
struct acb *acb;
sys/arch/x68k/dev/mha.c
1683
acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1694
acb->xs->cmd->opcode,
sys/arch/x68k/dev/mha.c
1701
acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1703
acb->xs->error = XS_SELTIMEOUT;
sys/arch/x68k/dev/mha.c
1704
mha_done(sc, acb);
sys/arch/x68k/dev/mha.c
1726
acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1731
acb->stat = sc->sc_pcx[0]; /* XXX */
sys/arch/x68k/dev/mha.c
1732
SPC_MISC(("stat=0x%02x ", acb->stat));
sys/arch/x68k/dev/mha.c
1815
if (acb->dleft) {
sys/arch/x68k/dev/mha.c
1817
if (acb->xs->xs_control & XS_CTL_DATA_IN) {
sys/arch/x68k/dev/mha.c
1823
else if (acb->xs->xs_control & XS_CTL_DATA_OUT) {
sys/arch/x68k/dev/mha.c
1849
acb = sc->sc_nexus;
sys/arch/x68k/dev/mha.c
1851
acb->xs->error = XS_NOERROR;
sys/arch/x68k/dev/mha.c
1852
mha_done(sc, acb);
sys/arch/x68k/dev/mha.c
1854
TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
sys/arch/x68k/dev/mha.c
1925
mha_abort(struct mha_softc *sc, struct acb *acb)
sys/arch/x68k/dev/mha.c
1927
acb->flags |= ACB_ABORTED;
sys/arch/x68k/dev/mha.c
1929
if (acb == sc->sc_nexus) {
sys/arch/x68k/dev/mha.c
1947
struct acb *acb = (struct acb *)arg;
sys/arch/x68k/dev/mha.c
1948
struct scsipi_xfer *xs = acb->xs;
sys/arch/x68k/dev/mha.c
1960
acb, acb->flags, acb->dleft, acb->stat,
sys/arch/x68k/dev/mha.c
1967
if (acb->flags & ACB_ABORTED) {
sys/arch/x68k/dev/mha.c
1977
mha_abort(sc, acb);
sys/arch/x68k/dev/mha.c
1990
mha_show_scsi_cmd(struct acb *acb)
sys/arch/x68k/dev/mha.c
1992
u_char *b = (u_char *)&acb->cmd;
sys/arch/x68k/dev/mha.c
1993
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/arch/x68k/dev/mha.c
1997
if ((acb->xs->xs_control & XS_CTL_RESET) == 0) {
sys/arch/x68k/dev/mha.c
1998
for (i = 0; i < acb->clen; i++) {
sys/arch/x68k/dev/mha.c
2009
mha_print_acb(struct acb *acb)
sys/arch/x68k/dev/mha.c
2012
printf("acb@%p xs=%p flags=%x", acb, acb->xs, acb->flags);
sys/arch/x68k/dev/mha.c
2014
acb->daddr, acb->dleft, acb->stat);
sys/arch/x68k/dev/mha.c
2015
mha_show_scsi_cmd(acb);
sys/arch/x68k/dev/mha.c
2021
struct acb *acb;
sys/arch/x68k/dev/mha.c
2025
TAILQ_FOREACH(acb, &sc->ready_list, chain)
sys/arch/x68k/dev/mha.c
2026
mha_print_acb(acb);
sys/arch/x68k/dev/mha.c
2031
TAILQ_FOREACH(acb, &sc->nexus_list, chain)
sys/arch/x68k/dev/mha.c
2032
mha_print_acb(acb);
sys/arch/x68k/dev/mha.c
241
void mha_free_acb(struct mha_softc *, struct acb *, int);
sys/arch/x68k/dev/mha.c
242
void mha_sense(struct mha_softc *, struct acb *);
sys/arch/x68k/dev/mha.c
249
void mha_abort(struct mha_softc *, struct acb *);
sys/arch/x68k/dev/mha.c
252
void mha_poll(struct mha_softc *, struct acb *);
sys/arch/x68k/dev/mha.c
254
void mha_done(struct mha_softc *, struct acb *);
sys/arch/x68k/dev/mha.c
258
void mha_dequeue(struct mha_softc *, struct acb *);
sys/arch/x68k/dev/mha.c
261
void mha_print_acb(struct acb *);
sys/arch/x68k/dev/mha.c
262
void mha_show_scsi_cmd(struct acb *);
sys/arch/x68k/dev/mha.c
434
struct acb *acb;
sys/arch/x68k/dev/mha.c
443
acb = sc->sc_acb;
sys/arch/x68k/dev/mha.c
444
memset(acb, 0, sizeof(sc->sc_acb));
sys/arch/x68k/dev/mha.c
445
for (r = 0; r < sizeof(sc->sc_acb) / sizeof(*acb); r++) {
sys/arch/x68k/dev/mha.c
446
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/arch/x68k/dev/mha.c
447
acb++;
sys/arch/x68k/dev/mha.c
477
if ((acb = sc->sc_nexus) != NULL) {
sys/arch/x68k/dev/mha.c
478
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/x68k/dev/mha.c
479
mha_done(sc, acb);
sys/arch/x68k/dev/mha.c
481
while ((acb = TAILQ_FIRST(&sc->nexus_list)) != NULL) {
sys/arch/x68k/dev/mha.c
482
acb->xs->error = XS_DRIVER_STUFFUP;
sys/arch/x68k/dev/mha.c
483
mha_done(sc, acb);
sys/arch/x68k/dev/mha.c
506
mha_free_acb(struct mha_softc *sc, struct acb *acb, int flags)
sys/arch/x68k/dev/mha.c
512
acb->flags = 0;
sys/arch/x68k/dev/mha.c
513
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/arch/x68k/dev/mha.c
519
if (TAILQ_NEXT(acb, chain) == NULL)
sys/arch/x68k/dev/mha.c
598
struct acb *acb;
sys/arch/x68k/dev/mha.c
623
TAILQ_FOREACH(acb, &sc->nexus_list, chain) {
sys/arch/x68k/dev/mha.c
624
periph = acb->xs->xs_periph;
sys/arch/x68k/dev/mha.c
629
if (acb == NULL) {
sys/arch/x68k/dev/mha.c
637
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/x68k/dev/mha.c
639
sc->sc_nexus = acb;
sys/arch/x68k/dev/mha.c
644
if (acb->flags & ACB_RESET)
sys/arch/x68k/dev/mha.c
646
else if (acb->flags & ACB_ABORTED)
sys/arch/x68k/dev/mha.c
650
sc->sc_dp = acb->daddr;
sys/arch/x68k/dev/mha.c
651
sc->sc_dleft = acb->dleft;
sys/arch/x68k/dev/mha.c
652
sc->sc_cp = (u_char *)&acb->cmd;
sys/arch/x68k/dev/mha.c
653
sc->sc_cleft = acb->clen;
sys/arch/x68k/dev/mha.c
677
struct acb *acb;
sys/arch/x68k/dev/mha.c
692
acb = TAILQ_FIRST(&sc->free_list);
sys/arch/x68k/dev/mha.c
693
if (acb) {
sys/arch/x68k/dev/mha.c
694
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/arch/x68k/dev/mha.c
695
ACB_SETQ(acb, ACB_QNONE);
sys/arch/x68k/dev/mha.c
698
if (acb == NULL) {
sys/arch/x68k/dev/mha.c
707
acb->xs = xs;
sys/arch/x68k/dev/mha.c
708
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/arch/x68k/dev/mha.c
709
acb->clen = xs->cmdlen;
sys/arch/x68k/dev/mha.c
710
acb->daddr = xs->data;
sys/arch/x68k/dev/mha.c
711
acb->dleft = xs->datalen;
sys/arch/x68k/dev/mha.c
712
acb->stat = 0;
sys/arch/x68k/dev/mha.c
715
ACB_SETQ(acb, ACB_QREADY);
sys/arch/x68k/dev/mha.c
716
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/arch/x68k/dev/mha.c
718
callout_reset(&acb->xs->xs_callout,
sys/arch/x68k/dev/mha.c
719
mstohz(xs->timeout), mha_timeout, acb);
sys/arch/x68k/dev/mha.c
732
mha_poll(sc, acb);
sys/arch/x68k/dev/mha.c
763
mha_poll(struct mha_softc *sc, struct acb *acb)
sys/arch/x68k/dev/mha.c
765
struct scsipi_xfer *xs = acb->xs;
sys/arch/x68k/dev/mha.c
794
mha_timeout((void *)acb);
sys/arch/x68k/dev/mha.c
822
struct acb *acb;
sys/arch/x68k/dev/mha.c
836
TAILQ_FOREACH(acb, &sc->ready_list, chain) {
sys/arch/x68k/dev/mha.c
838
periph = acb->xs->xs_periph;
sys/arch/x68k/dev/mha.c
842
if ((acb->flags & ACB_QBITS) != ACB_QREADY)
sys/arch/x68k/dev/mha.c
844
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/x68k/dev/mha.c
845
ACB_SETQ(acb, ACB_QNONE);
sys/arch/x68k/dev/mha.c
846
sc->sc_nexus = acb;
sys/arch/x68k/dev/mha.c
849
sc->sc_dp = acb->daddr;
sys/arch/x68k/dev/mha.c
850
sc->sc_dleft = acb->dleft;
sys/arch/x68k/dev/mha.c
853
(u_char *)&acb->cmd, acb->clen);
sys/arch/x68k/dev/mha.c
867
mha_done(struct mha_softc *sc, struct acb *acb)
sys/arch/x68k/dev/mha.c
869
struct scsipi_xfer *xs = acb->xs;
sys/arch/x68k/dev/mha.c
876
callout_stop(&acb->xs->xs_callout);
sys/arch/x68k/dev/mha.c
888
if ((acb->flags & ACB_ABORTED) != 0) {
sys/arch/x68k/dev/mha.c
890
} else if (acb->flags & ACB_CHKSENSE) {
sys/arch/x68k/dev/mha.c
893
xs->status = acb->stat & ST_MASK;
sys/arch/x68k/dev/mha.c
896
xs->resid = acb->dleft;
sys/arch/x68k/dev/mha.c
902
xs->resid = acb->dleft;
sys/arch/x68k/dev/mha.c
908
device_xname(sc->sc_dev), acb->stat);
sys/arch/x68k/dev/mha.c
929
switch (acb->flags & ACB_QBITS) {
sys/arch/x68k/dev/mha.c
931
if (acb != sc->sc_nexus) {
sys/arch/x68k/dev/mha.c
940
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/x68k/dev/mha.c
943
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/x68k/dev/mha.c
952
device_xname(sc->sc_dev), acb->flags & ACB_QBITS);
sys/arch/x68k/dev/mha.c
957
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/arch/x68k/dev/mha.c
958
acb->flags = ACB_QFREE;
sys/arch/x68k/dev/mha.c
960
mha_free_acb(sc, acb, xs->xs_control);
sys/arch/x68k/dev/mha.c
968
mha_dequeue(struct mha_softc *sc, struct acb *acb)
sys/arch/x68k/dev/mha.c
971
if (acb->flags & ACB_QNEXUS) {
sys/arch/x68k/dev/mha.c
972
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/arch/x68k/dev/mha.c
974
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/arch/x68k/dev/mhavar.h
38
TAILQ_ENTRY(acb) chain;
sys/arch/x68k/dev/mhavar.h
94
TAILQ_HEAD(, acb) free_list, ready_list, nexus_list;
sys/arch/x68k/dev/mhavar.h
95
struct acb *sc_nexus; /* current command */
sys/arch/x68k/dev/mhavar.h
96
struct acb sc_acb[8]; /* one per target */
sys/dev/ic/aic6360.c
1053
struct aic_acb *acb;
sys/dev/ic/aic6360.c
1058
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1059
ti = &sc->sc_tinfo[acb->xs->xs_periph->periph_target];
sys/dev/ic/aic6360.c
1066
periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
1074
acb->xs->resid = acb->data_length = sc->sc_dleft;
sys/dev/ic/aic6360.c
1100
acb->xs->xs_periph->periph_target);
sys/dev/ic/aic6360.c
1108
acb->xs->xs_periph->periph_target);
sys/dev/ic/aic6360.c
1126
acb->data_addr = sc->sc_dp;
sys/dev/ic/aic6360.c
1127
acb->data_length = sc->sc_dleft;
sys/dev/ic/aic6360.c
1131
sc->sc_dp = acb->data_addr;
sys/dev/ic/aic6360.c
1132
sc->sc_dleft = acb->data_length;
sys/dev/ic/aic6360.c
1133
sc->sc_cp = (u_char *)&acb->scsipi_cmd;
sys/dev/ic/aic6360.c
1134
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/aic6360.c
1154
acb->xs->xs_periph->periph_target);
sys/dev/ic/aic6360.c
1172
acb->xs->xs_periph->periph_target);
sys/dev/ic/aic6360.c
1703
struct aic_acb *acb;
sys/dev/ic/aic6360.c
1779
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1781
TAILQ_INSERT_HEAD(&sc->ready_list, acb, chain);
sys/dev/ic/aic6360.c
1803
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1804
periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
1808
if (acb->flags & ACB_RESET)
sys/dev/ic/aic6360.c
1810
else if (acb->flags & ACB_ABORT)
sys/dev/ic/aic6360.c
1823
acb->flags |= ACB_NEXUS;
sys/dev/ic/aic6360.c
1827
sc->sc_dp = acb->data_addr;
sys/dev/ic/aic6360.c
1828
sc->sc_dleft = acb->data_length;
sys/dev/ic/aic6360.c
1829
sc->sc_cp = (u_char *)&acb->scsipi_cmd;
sys/dev/ic/aic6360.c
1830
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/aic6360.c
1833
if ((acb->xs->xs_control & XS_CTL_POLL) == 0)
sys/dev/ic/aic6360.c
1834
callout_reset(&acb->xs->xs_callout,
sys/dev/ic/aic6360.c
1835
mstohz(acb->timeout), aic_timeout, acb);
sys/dev/ic/aic6360.c
1848
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1855
acb->xs->error = XS_SELTIMEOUT;
sys/dev/ic/aic6360.c
1900
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1909
periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
1941
aic_sense(sc, acb);
sys/dev/ic/aic6360.c
1945
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/aic6360.c
1950
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
1952
acb->data_addr = sc->sc_dp;
sys/dev/ic/aic6360.c
1953
acb->data_length = sc->sc_dleft;
sys/dev/ic/aic6360.c
1955
TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
sys/dev/ic/aic6360.c
1961
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
2000
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
2002
acb->scsipi_cmd.opcode, acb->scsipi_cmd_length-1);
sys/dev/ic/aic6360.c
2035
acb = sc->sc_nexus;
sys/dev/ic/aic6360.c
2037
acb->target_stat = bus_space_read_1(iot, ioh, SCSIDAT);
sys/dev/ic/aic6360.c
2039
AIC_MISC(("target_stat=0x%02x ", acb->target_stat));
sys/dev/ic/aic6360.c
2051
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/aic6360.c
2052
aic_done(sc, acb);
sys/dev/ic/aic6360.c
2066
aic_abort(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
2070
acb->timeout = AIC_ABORT_TIMEOUT;
sys/dev/ic/aic6360.c
2071
acb->flags |= ACB_ABORT;
sys/dev/ic/aic6360.c
2073
if (acb == sc->sc_nexus) {
sys/dev/ic/aic6360.c
2081
aic_dequeue(sc, acb);
sys/dev/ic/aic6360.c
2082
TAILQ_INSERT_HEAD(&sc->ready_list, acb, chain);
sys/dev/ic/aic6360.c
2091
struct aic_acb *acb = arg;
sys/dev/ic/aic6360.c
2092
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/aic6360.c
2103
if (acb->flags & ACB_ABORT) {
sys/dev/ic/aic6360.c
2110
acb->xs->error = XS_TIMEOUT;
sys/dev/ic/aic6360.c
2111
aic_abort(sc, acb);
sys/dev/ic/aic6360.c
2124
aic_show_scsi_cmd(struct aic_acb *acb)
sys/dev/ic/aic6360.c
2126
u_char *b = (u_char *)&acb->scsipi_cmd;
sys/dev/ic/aic6360.c
2127
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
2131
if ((acb->xs->xs_control & XS_CTL_RESET) == 0) {
sys/dev/ic/aic6360.c
2132
for (i = 0; i < acb->scsipi_cmd_length; i++) {
sys/dev/ic/aic6360.c
2143
aic_print_acb(struct aic_acb *acb)
sys/dev/ic/aic6360.c
2146
printf("acb@%p xs=%p flags=%x", acb, acb->xs, acb->flags);
sys/dev/ic/aic6360.c
2148
acb->data_addr, acb->data_length, acb->target_stat);
sys/dev/ic/aic6360.c
2149
aic_show_scsi_cmd(acb);
sys/dev/ic/aic6360.c
2155
struct aic_acb *acb;
sys/dev/ic/aic6360.c
2159
for (acb = sc->ready_list.tqh_first; acb != NULL;
sys/dev/ic/aic6360.c
2160
acb = acb->chain.tqe_next)
sys/dev/ic/aic6360.c
2161
aic_print_acb(acb);
sys/dev/ic/aic6360.c
2166
for (acb = sc->nexus_list.tqh_first; acb != NULL;
sys/dev/ic/aic6360.c
2167
acb = acb->chain.tqe_next)
sys/dev/ic/aic6360.c
2168
aic_print_acb(acb);
sys/dev/ic/aic6360.c
382
struct aic_acb *acb;
sys/dev/ic/aic6360.c
397
acb = sc->sc_acb;
sys/dev/ic/aic6360.c
398
memset(acb, 0, sizeof(sc->sc_acb));
sys/dev/ic/aic6360.c
399
for (r = 0; r < sizeof(sc->sc_acb) / sizeof(*acb); r++) {
sys/dev/ic/aic6360.c
400
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/dev/ic/aic6360.c
401
acb++;
sys/dev/ic/aic6360.c
407
if ((acb = sc->sc_nexus) != NULL) {
sys/dev/ic/aic6360.c
408
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/aic6360.c
409
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/aic6360.c
410
aic_done(sc, acb);
sys/dev/ic/aic6360.c
412
while ((acb = sc->nexus_list.tqh_first) != NULL) {
sys/dev/ic/aic6360.c
413
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/aic6360.c
414
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/aic6360.c
415
aic_done(sc, acb);
sys/dev/ic/aic6360.c
433
aic_free_acb(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
438
acb->flags = 0;
sys/dev/ic/aic6360.c
439
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/dev/ic/aic6360.c
446
struct aic_acb *acb;
sys/dev/ic/aic6360.c
450
acb = TAILQ_FIRST(&sc->free_list);
sys/dev/ic/aic6360.c
451
if (acb != NULL) {
sys/dev/ic/aic6360.c
452
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/dev/ic/aic6360.c
453
acb->flags |= ACB_ALLOC;
sys/dev/ic/aic6360.c
456
return (acb);
sys/dev/ic/aic6360.c
490
struct aic_acb *acb;
sys/dev/ic/aic6360.c
510
acb = aic_get_acb(sc);
sys/dev/ic/aic6360.c
516
if (acb == NULL) {
sys/dev/ic/aic6360.c
524
acb->xs = xs;
sys/dev/ic/aic6360.c
525
acb->timeout = xs->timeout;
sys/dev/ic/aic6360.c
528
acb->flags |= ACB_RESET;
sys/dev/ic/aic6360.c
529
acb->scsipi_cmd_length = 0;
sys/dev/ic/aic6360.c
530
acb->data_length = 0;
sys/dev/ic/aic6360.c
532
memcpy(&acb->scsipi_cmd, xs->cmd, xs->cmdlen);
sys/dev/ic/aic6360.c
533
acb->scsipi_cmd_length = xs->cmdlen;
sys/dev/ic/aic6360.c
534
acb->data_addr = xs->data;
sys/dev/ic/aic6360.c
535
acb->data_length = xs->datalen;
sys/dev/ic/aic6360.c
537
acb->target_stat = 0;
sys/dev/ic/aic6360.c
541
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/dev/ic/aic6360.c
551
if (aic_poll(sc, xs, acb->timeout)) {
sys/dev/ic/aic6360.c
552
aic_timeout(acb);
sys/dev/ic/aic6360.c
553
if (aic_poll(sc, xs, acb->timeout))
sys/dev/ic/aic6360.c
554
aic_timeout(acb);
sys/dev/ic/aic6360.c
703
aic_select(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
705
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
728
struct aic_acb *acb;
sys/dev/ic/aic6360.c
753
for (acb = sc->nexus_list.tqh_first; acb != NULL;
sys/dev/ic/aic6360.c
754
acb = acb->chain.tqe_next) {
sys/dev/ic/aic6360.c
755
periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
760
if (acb == NULL) {
sys/dev/ic/aic6360.c
768
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/aic6360.c
770
sc->sc_nexus = acb;
sys/dev/ic/aic6360.c
775
if (acb->flags & ACB_RESET)
sys/dev/ic/aic6360.c
777
else if (acb->flags & ACB_ABORT)
sys/dev/ic/aic6360.c
781
sc->sc_dp = acb->data_addr;
sys/dev/ic/aic6360.c
782
sc->sc_dleft = acb->data_length;
sys/dev/ic/aic6360.c
783
sc->sc_cp = (u_char *)&acb->scsipi_cmd;
sys/dev/ic/aic6360.c
784
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/aic6360.c
806
struct aic_acb *acb;
sys/dev/ic/aic6360.c
821
for (acb = sc->ready_list.tqh_first; acb != NULL;
sys/dev/ic/aic6360.c
822
acb = acb->chain.tqe_next) {
sys/dev/ic/aic6360.c
823
periph = acb->xs->xs_periph;
sys/dev/ic/aic6360.c
828
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/aic6360.c
829
sc->sc_nexus = acb;
sys/dev/ic/aic6360.c
830
aic_select(sc, acb);
sys/dev/ic/aic6360.c
844
aic_sense(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
846
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/aic6360.c
849
struct scsi_request_sense *ss = (void *)&acb->scsipi_cmd;
sys/dev/ic/aic6360.c
857
acb->scsipi_cmd_length = sizeof(*ss);
sys/dev/ic/aic6360.c
858
acb->data_addr = (char *)&xs->sense.scsi_sense;
sys/dev/ic/aic6360.c
859
acb->data_length = sizeof(struct scsi_sense_data);
sys/dev/ic/aic6360.c
860
acb->flags |= ACB_SENSE;
sys/dev/ic/aic6360.c
862
if (acb->flags & ACB_NEXUS)
sys/dev/ic/aic6360.c
864
if (acb == sc->sc_nexus) {
sys/dev/ic/aic6360.c
865
aic_select(sc, acb);
sys/dev/ic/aic6360.c
867
aic_dequeue(sc, acb);
sys/dev/ic/aic6360.c
868
TAILQ_INSERT_HEAD(&sc->ready_list, acb, chain);
sys/dev/ic/aic6360.c
878
aic_done(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
880
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/aic6360.c
895
if (acb->flags & ACB_ABORT) {
sys/dev/ic/aic6360.c
897
} else if (acb->flags & ACB_SENSE) {
sys/dev/ic/aic6360.c
899
} else if (acb->target_stat == SCSI_CHECK) {
sys/dev/ic/aic6360.c
901
xs->resid = acb->data_length;
sys/dev/ic/aic6360.c
902
xs->status = acb->target_stat;
sys/dev/ic/aic6360.c
903
aic_sense(sc, acb);
sys/dev/ic/aic6360.c
906
xs->resid = acb->data_length;
sys/dev/ic/aic6360.c
924
if (acb->flags & ACB_NEXUS)
sys/dev/ic/aic6360.c
926
if (acb == sc->sc_nexus) {
sys/dev/ic/aic6360.c
931
aic_dequeue(sc, acb);
sys/dev/ic/aic6360.c
933
aic_free_acb(sc, acb);
sys/dev/ic/aic6360.c
939
aic_dequeue(struct aic_softc *sc, struct aic_acb *acb)
sys/dev/ic/aic6360.c
942
if (acb->flags & ACB_NEXUS) {
sys/dev/ic/aic6360.c
943
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/aic6360.c
945
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/mb89352.c
1041
struct spc_acb *acb;
sys/dev/ic/mb89352.c
1046
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1047
ti = &sc->sc_tinfo[acb->xs->xs_periph->periph_target];
sys/dev/ic/mb89352.c
1053
periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
1061
acb->xs->resid = acb->data_length = sc->sc_dleft;
sys/dev/ic/mb89352.c
1109
acb->data_addr = sc->sc_dp;
sys/dev/ic/mb89352.c
1110
acb->data_length = sc->sc_dleft;
sys/dev/ic/mb89352.c
1114
sc->sc_dp = acb->data_addr;
sys/dev/ic/mb89352.c
1115
sc->sc_dleft = acb->data_length;
sys/dev/ic/mb89352.c
1116
sc->sc_cp = (uint8_t *)&acb->scsipi_cmd;
sys/dev/ic/mb89352.c
1117
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/mb89352.c
1136
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/mb89352.c
1156
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/mb89352.c
1644
struct spc_acb *acb;
sys/dev/ic/mb89352.c
1729
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1731
TAILQ_INSERT_HEAD(&sc->ready_list, acb, chain);
sys/dev/ic/mb89352.c
1754
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1755
periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
1759
if (acb->flags & ACB_RESET)
sys/dev/ic/mb89352.c
1761
else if (acb->flags & ACB_ABORT)
sys/dev/ic/mb89352.c
1774
acb->flags |= ACB_NEXUS;
sys/dev/ic/mb89352.c
1778
sc->sc_dp = acb->data_addr;
sys/dev/ic/mb89352.c
1779
sc->sc_dleft = acb->data_length;
sys/dev/ic/mb89352.c
1780
sc->sc_cp = (uint8_t *)&acb->scsipi_cmd;
sys/dev/ic/mb89352.c
1781
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/mb89352.c
1784
if ((acb->xs->xs_control & XS_CTL_POLL) == 0)
sys/dev/ic/mb89352.c
1785
callout_reset(&acb->xs->xs_callout,
sys/dev/ic/mb89352.c
1786
mstohz(acb->timeout), spc_timeout, acb);
sys/dev/ic/mb89352.c
1799
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1803
acb->xs->error = XS_SELTIMEOUT;
sys/dev/ic/mb89352.c
1841
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1850
periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
1882
acb->target_stat = SCSI_CHECK;
sys/dev/ic/mb89352.c
1883
acb->xs->error = XS_NOERROR;
sys/dev/ic/mb89352.c
1887
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/mb89352.c
1892
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1893
TAILQ_INSERT_HEAD(&sc->nexus_list, acb, chain);
sys/dev/ic/mb89352.c
1899
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1953
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
1955
acb->scsipi_cmd.opcode, acb->scsipi_cmd_length - 1);
sys/dev/ic/mb89352.c
2000
acb = sc->sc_nexus;
sys/dev/ic/mb89352.c
2007
acb->target_stat = bus_space_read_1(iot, ioh, TEMP);
sys/dev/ic/mb89352.c
2013
SPC_MISC(("target_stat=0x%02x ", acb->target_stat));
sys/dev/ic/mb89352.c
2026
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/mb89352.c
2029
spc_done(sc, acb);
sys/dev/ic/mb89352.c
2046
spc_abort(struct spc_softc *sc, struct spc_acb *acb)
sys/dev/ic/mb89352.c
2050
acb->timeout = SPC_ABORT_TIMEOUT;
sys/dev/ic/mb89352.c
2051
acb->flags |= ACB_ABORT;
sys/dev/ic/mb89352.c
2053
if (acb == sc->sc_nexus) {
sys/dev/ic/mb89352.c
2061
spc_dequeue(sc, acb);
sys/dev/ic/mb89352.c
2062
TAILQ_INSERT_HEAD(&sc->ready_list, acb, chain);
sys/dev/ic/mb89352.c
2071
struct spc_acb *acb = arg;
sys/dev/ic/mb89352.c
2072
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/mb89352.c
2083
if (acb->flags & ACB_ABORT) {
sys/dev/ic/mb89352.c
2090
acb->xs->error = XS_TIMEOUT;
sys/dev/ic/mb89352.c
2091
spc_abort(sc, acb);
sys/dev/ic/mb89352.c
2104
spc_show_scsi_cmd(struct spc_acb *acb)
sys/dev/ic/mb89352.c
2106
uint8_t *b = (uint8_t *)&acb->scsipi_cmd;
sys/dev/ic/mb89352.c
2109
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/mb89352.c
2110
if ((acb->xs->xs_control & XS_CTL_RESET) == 0) {
sys/dev/ic/mb89352.c
2111
for (i = 0; i < acb->scsipi_cmd_length; i++) {
sys/dev/ic/mb89352.c
2122
spc_print_acb(struct spc_acb *acb)
sys/dev/ic/mb89352.c
2125
printf("acb@%p xs=%p flags=%x", acb, acb->xs, acb->flags);
sys/dev/ic/mb89352.c
2127
acb->data_addr, acb->data_length, acb->target_stat);
sys/dev/ic/mb89352.c
2128
spc_show_scsi_cmd(acb);
sys/dev/ic/mb89352.c
2134
struct spc_acb *acb;
sys/dev/ic/mb89352.c
2138
TAILQ_FOREACH(acb, &sc->ready_list, chain)
sys/dev/ic/mb89352.c
2139
spc_print_acb(acb);
sys/dev/ic/mb89352.c
2144
TAILQ_FOREACH(acb, &sc->nexus_list, chain)
sys/dev/ic/mb89352.c
2145
spc_print_acb(acb);
sys/dev/ic/mb89352.c
391
struct spc_acb *acb;
sys/dev/ic/mb89352.c
407
acb = sc->sc_acb;
sys/dev/ic/mb89352.c
408
memset(acb, 0, sizeof(sc->sc_acb));
sys/dev/ic/mb89352.c
409
for (r = 0; r < sizeof(sc->sc_acb) / sizeof(*acb); r++) {
sys/dev/ic/mb89352.c
410
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/dev/ic/mb89352.c
411
acb++;
sys/dev/ic/mb89352.c
417
if ((acb = sc->sc_nexus) != NULL) {
sys/dev/ic/mb89352.c
418
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/mb89352.c
419
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/mb89352.c
420
spc_done(sc, acb);
sys/dev/ic/mb89352.c
422
while ((acb = TAILQ_FIRST(&sc->nexus_list)) != NULL) {
sys/dev/ic/mb89352.c
423
acb->xs->error = XS_DRIVER_STUFFUP;
sys/dev/ic/mb89352.c
424
callout_stop(&acb->xs->xs_callout);
sys/dev/ic/mb89352.c
425
spc_done(sc, acb);
sys/dev/ic/mb89352.c
455
spc_free_acb(struct spc_softc *sc, struct spc_acb *acb, int flags)
sys/dev/ic/mb89352.c
462
acb->flags = 0;
sys/dev/ic/mb89352.c
463
TAILQ_INSERT_HEAD(&sc->free_list, acb, chain);
sys/dev/ic/mb89352.c
470
struct spc_acb *acb;
sys/dev/ic/mb89352.c
475
acb = TAILQ_FIRST(&sc->free_list);
sys/dev/ic/mb89352.c
476
if (acb != NULL) {
sys/dev/ic/mb89352.c
477
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/dev/ic/mb89352.c
478
acb->flags |= ACB_ALLOC;
sys/dev/ic/mb89352.c
481
return acb;
sys/dev/ic/mb89352.c
515
struct spc_acb *acb;
sys/dev/ic/mb89352.c
527
acb = spc_get_acb(sc);
sys/dev/ic/mb89352.c
533
if (acb == NULL) {
sys/dev/ic/mb89352.c
541
acb->xs = xs;
sys/dev/ic/mb89352.c
542
acb->timeout = xs->timeout;
sys/dev/ic/mb89352.c
545
acb->flags |= ACB_RESET;
sys/dev/ic/mb89352.c
546
acb->scsipi_cmd_length = 0;
sys/dev/ic/mb89352.c
547
acb->data_length = 0;
sys/dev/ic/mb89352.c
549
memcpy(&acb->scsipi_cmd, xs->cmd, xs->cmdlen);
sys/dev/ic/mb89352.c
550
acb->scsipi_cmd_length = xs->cmdlen;
sys/dev/ic/mb89352.c
551
acb->data_addr = xs->data;
sys/dev/ic/mb89352.c
552
acb->data_length = xs->datalen;
sys/dev/ic/mb89352.c
554
acb->target_stat = 0;
sys/dev/ic/mb89352.c
558
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/dev/ic/mb89352.c
576
if (spc_poll(sc, xs, acb->timeout)) {
sys/dev/ic/mb89352.c
577
spc_timeout(acb);
sys/dev/ic/mb89352.c
578
if (spc_poll(sc, xs, acb->timeout))
sys/dev/ic/mb89352.c
579
spc_timeout(acb);
sys/dev/ic/mb89352.c
667
spc_select(struct spc_softc *sc, struct spc_acb *acb)
sys/dev/ic/mb89352.c
669
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
710
struct spc_acb *acb;
sys/dev/ic/mb89352.c
736
TAILQ_FOREACH(acb, &sc->nexus_list, chain) {
sys/dev/ic/mb89352.c
737
periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
742
if (acb == NULL) {
sys/dev/ic/mb89352.c
750
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/mb89352.c
752
sc->sc_nexus = acb;
sys/dev/ic/mb89352.c
757
if (acb->flags & ACB_RESET)
sys/dev/ic/mb89352.c
759
else if (acb->flags & ACB_ABORT)
sys/dev/ic/mb89352.c
763
sc->sc_dp = acb->data_addr;
sys/dev/ic/mb89352.c
764
sc->sc_dleft = acb->data_length;
sys/dev/ic/mb89352.c
765
sc->sc_cp = (uint8_t *)&acb->scsipi_cmd;
sys/dev/ic/mb89352.c
766
sc->sc_cleft = acb->scsipi_cmd_length;
sys/dev/ic/mb89352.c
788
struct spc_acb *acb;
sys/dev/ic/mb89352.c
800
TAILQ_FOREACH(acb, &sc->ready_list, chain) {
sys/dev/ic/mb89352.c
801
periph = acb->xs->xs_periph;
sys/dev/ic/mb89352.c
806
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/mb89352.c
807
sc->sc_nexus = acb;
sys/dev/ic/mb89352.c
808
spc_select(sc, acb);
sys/dev/ic/mb89352.c
823
spc_done(struct spc_softc *sc, struct spc_acb *acb)
sys/dev/ic/mb89352.c
825
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/mb89352.c
832
if (acb->flags & ACB_ABORT) {
sys/dev/ic/mb89352.c
835
switch (acb->target_stat) {
sys/dev/ic/mb89352.c
838
xs->resid = acb->data_length;
sys/dev/ic/mb89352.c
841
xs->status = acb->target_stat;
sys/dev/ic/mb89352.c
845
xs->resid = acb->data_length;
sys/dev/ic/mb89352.c
851
device_xname(sc->sc_dev), acb->target_stat);
sys/dev/ic/mb89352.c
870
if (acb->flags & ACB_NEXUS)
sys/dev/ic/mb89352.c
872
if (acb == sc->sc_nexus) {
sys/dev/ic/mb89352.c
877
spc_dequeue(sc, acb);
sys/dev/ic/mb89352.c
879
spc_free_acb(sc, acb, xs->xs_control);
sys/dev/ic/mb89352.c
885
spc_dequeue(struct spc_softc *sc, struct spc_acb *acb)
sys/dev/ic/mb89352.c
889
if (acb->flags & ACB_NEXUS)
sys/dev/ic/mb89352.c
890
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/mb89352.c
892
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/osiop.c
1004
sc->sc_script, acb->ds, sc->sc_active);
sys/dev/ic/osiop.c
1019
dsdma->dm_segs[0].ds_addr + acb->dsoffset);
sys/dev/ic/osiop.c
1045
struct osiop_acb *acb = sc->sc_nexus;
sys/dev/ic/osiop.c
1081
if (acb != NULL) { /* XXX */
sys/dev/ic/osiop.c
1082
ds = acb->ds;
sys/dev/ic/osiop.c
1084
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1087
if (acb->status != ACB_S_ACTIVE)
sys/dev/ic/osiop.c
1089
acb->status);
sys/dev/ic/osiop.c
1098
if (acb == NULL) {
sys/dev/ic/osiop.c
1105
dsdma->dm_segs[0].ds_addr + acb->dsoffset) {
sys/dev/ic/osiop.c
1108
dsdma->dm_segs[0].ds_addr + acb->dsoffset);
sys/dev/ic/osiop.c
1112
target = acb->xs->xs_periph->periph_target;
sys/dev/ic/osiop.c
1144
acb->status = ACB_S_DONE;
sys/dev/ic/osiop.c
1148
if (acb == NULL) {
sys/dev/ic/osiop.c
1153
target = acb->xs->xs_periph->periph_target;
sys/dev/ic/osiop.c
1175
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1197
if (acb == NULL) {
sys/dev/ic/osiop.c
1202
if (acb->datalen > 0) {
sys/dev/ic/osiop.c
1208
acb->curaddr = osiop_read_4(sc, OSIOP_DNAD) - adjust;
sys/dev/ic/osiop.c
1209
acb->curlen = dbc + adjust;
sys/dev/ic/osiop.c
1215
acb->curaddr, acb->curlen, dfifo,
sys/dev/ic/osiop.c
1218
osiopstarts, acb);
sys/dev/ic/osiop.c
1228
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1270
if (acb == NULL) {
sys/dev/ic/osiop.c
1279
dsdma->dm_segs[0].ds_addr + acb->dsoffset);
sys/dev/ic/osiop.c
1305
acb->status = ACB_S_DONE;
sys/dev/ic/osiop.c
1307
acb->xs->error = XS_SELTIMEOUT;
sys/dev/ic/osiop.c
1313
if (acb != NULL)
sys/dev/ic/osiop.c
1314
target = acb->xs->xs_periph->periph_target;
sys/dev/ic/osiop.c
1320
if (acb == NULL)
sys/dev/ic/osiop.c
1330
return (acb != NULL);
sys/dev/ic/osiop.c
1335
if (acb == NULL) {
sys/dev/ic/osiop.c
1349
acb->curaddr, acb->curlen,
sys/dev/ic/osiop.c
1351
dfifo, dbc, sstat1, osiopstarts, acb);
sys/dev/ic/osiop.c
1353
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1365
if (acb->datalen > 0 &&
sys/dev/ic/osiop.c
1369
if (acb->curlen != 0 &&
sys/dev/ic/osiop.c
1370
acb->curlen != ds->data[0].count)
sys/dev/ic/osiop.c
1374
acb->curaddr, acb->curlen,
sys/dev/ic/osiop.c
1383
acb->curaddr = ds->data[n].addr;
sys/dev/ic/osiop.c
1384
acb->curlen = ds->data[n].count;
sys/dev/ic/osiop.c
1391
acb->curaddr, acb->curlen);
sys/dev/ic/osiop.c
1402
if (acb->curlen > 0) {
sys/dev/ic/osiop.c
1417
if (acb->curaddr >= ds->data[i].addr &&
sys/dev/ic/osiop.c
1418
acb->curaddr <
sys/dev/ic/osiop.c
1425
acb->curaddr, acb->curlen, i);
sys/dev/ic/osiop.c
1434
acb->curaddr, acb->curlen);
sys/dev/ic/osiop.c
1436
ds->data[0].addr = acb->curaddr;
sys/dev/ic/osiop.c
1437
ds->data[0].count = acb->curlen;
sys/dev/ic/osiop.c
1457
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1466
acb->intstat = sc->sc_flags & OSIOP_INTSOFF;
sys/dev/ic/osiop.c
1467
TAILQ_INSERT_TAIL(&sc->nexus_list, acb, chain);
sys/dev/ic/osiop.c
1512
TAILQ_FOREACH(acb, &sc->nexus_list, chain) {
sys/dev/ic/osiop.c
1513
struct scsipi_periph *periph = acb->xs->xs_periph;
sys/dev/ic/osiop.c
1518
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/osiop.c
1519
sc->sc_nexus = acb;
sys/dev/ic/osiop.c
1520
sc->sc_flags |= acb->intstat;
sys/dev/ic/osiop.c
1521
acb->intstat = 0;
sys/dev/ic/osiop.c
1523
dsdma->dm_segs[0].ds_addr + acb->dsoffset);
sys/dev/ic/osiop.c
1530
if (acb == NULL) {
sys/dev/ic/osiop.c
1583
if (acb == NULL) {
sys/dev/ic/osiop.c
1595
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
1636
acb ? sc->sc_dsdma->dm_segs[0].ds_addr + acb->dsoffset : 0,
sys/dev/ic/osiop.c
1657
if (acb != NULL)
sys/dev/ic/osiop.c
1658
acb->status = ACB_S_DONE;
sys/dev/ic/osiop.c
1665
struct osiop_acb *acb = sc->sc_nexus;
sys/dev/ic/osiop.c
1672
if (acb->xs->xs_control & XS_CTL_POLL || sc->sc_flags & OSIOP_NODMA) {
sys/dev/ic/osiop.c
1691
acb->xs->xs_periph->periph_target,
sys/dev/ic/osiop.c
1692
acb->xs->cmd->opcode, sc->sc_nexus->ds);
sys/dev/ic/osiop.c
180
struct osiop_acb *acb;
sys/dev/ic/osiop.c
1841
struct osiop_acb *acb = arg;
sys/dev/ic/osiop.c
1842
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/osiop.c
1843
struct osiop_softc *sc = acb->sc;
sys/dev/ic/osiop.c
1855
acb->flags |= ACB_F_TIMEOUT;
sys/dev/ic/osiop.c
1881
osiop_dump_acb(struct osiop_acb *acb)
sys/dev/ic/osiop.c
1886
printf("acb@%p ", acb);
sys/dev/ic/osiop.c
1887
if (acb->xs == NULL) {
sys/dev/ic/osiop.c
1892
b = (uint8_t *)&acb->xs->cmd;
sys/dev/ic/osiop.c
1894
acb->xs->xs_periph->periph_target,
sys/dev/ic/osiop.c
1895
acb->xs->xs_periph->periph_lun, acb->status, acb->cmdlen);
sys/dev/ic/osiop.c
1896
for (i = acb->cmdlen; i > 0; i--)
sys/dev/ic/osiop.c
1899
printf(" xs: %p data %p:%04x ", acb->xs, acb->xs->data,
sys/dev/ic/osiop.c
1900
acb->xs->datalen);
sys/dev/ic/osiop.c
1901
printf("va %p:%lx ", acb->data, acb->datalen);
sys/dev/ic/osiop.c
1902
printf("cur %lx:%lx\n", acb->curaddr, acb->curlen);
sys/dev/ic/osiop.c
1908
struct osiop_acb *acb;
sys/dev/ic/osiop.c
1917
if ((acb = TAILQ_FIRST(&sc->free_list)) != NULL) {
sys/dev/ic/osiop.c
1919
while (acb) {
sys/dev/ic/osiop.c
1920
osiop_dump_acb(acb);
sys/dev/ic/osiop.c
1921
acb = TAILQ_NEXT(acb, chain);
sys/dev/ic/osiop.c
1924
if ((acb = TAILQ_FIRST(&sc->ready_list)) != NULL) {
sys/dev/ic/osiop.c
1926
while (acb) {
sys/dev/ic/osiop.c
1927
osiop_dump_acb(acb);
sys/dev/ic/osiop.c
1928
acb = TAILQ_NEXT(acb, chain);
sys/dev/ic/osiop.c
1931
if ((acb = TAILQ_FIRST(&sc->nexus_list)) != NULL) {
sys/dev/ic/osiop.c
1933
while (acb) {
sys/dev/ic/osiop.c
1934
osiop_dump_acb(acb);
sys/dev/ic/osiop.c
1935
acb = TAILQ_NEXT(acb, chain);
sys/dev/ic/osiop.c
253
acb = malloc(sizeof(struct osiop_acb) * OSIOP_NACB,
sys/dev/ic/osiop.c
255
sc->sc_acb = acb;
sys/dev/ic/osiop.c
271
OSIOP_MAX_XFER, 0, BUS_DMA_NOWAIT, &acb->datadma);
sys/dev/ic/osiop.c
278
acb->sc = sc;
sys/dev/ic/osiop.c
279
acb->ds = &sc->sc_ds[i];
sys/dev/ic/osiop.c
280
acb->dsoffset = sizeof(struct osiop_ds) * i;
sys/dev/ic/osiop.c
282
dsa = sc->sc_dsdma->dm_segs[0].ds_addr + acb->dsoffset;
sys/dev/ic/osiop.c
283
acb->ds->id.addr = dsa + OSIOP_DSIDOFF;
sys/dev/ic/osiop.c
284
acb->ds->cmd.addr = dsa + OSIOP_DSCMDOFF;
sys/dev/ic/osiop.c
285
acb->ds->status.count = 1;
sys/dev/ic/osiop.c
286
acb->ds->status.addr = dsa + OSIOP_DSSTATOFF;
sys/dev/ic/osiop.c
287
acb->ds->msg.count = 1;
sys/dev/ic/osiop.c
288
acb->ds->msg.addr = dsa + OSIOP_DSMSGOFF;
sys/dev/ic/osiop.c
289
acb->ds->msgin.count = 1;
sys/dev/ic/osiop.c
290
acb->ds->msgin.addr = dsa + OSIOP_DSMSGINOFF;
sys/dev/ic/osiop.c
291
acb->ds->extmsg.count = 1;
sys/dev/ic/osiop.c
292
acb->ds->extmsg.addr = dsa + OSIOP_DSEXTMSGOFF;
sys/dev/ic/osiop.c
293
acb->ds->synmsg.count = 3;
sys/dev/ic/osiop.c
294
acb->ds->synmsg.addr = dsa + OSIOP_DSSYNMSGOFF;
sys/dev/ic/osiop.c
295
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/dev/ic/osiop.c
297
acb++;
sys/dev/ic/osiop.c
356
struct osiop_acb *acb;
sys/dev/ic/osiop.c
380
acb = TAILQ_FIRST(&sc->free_list);
sys/dev/ic/osiop.c
381
if (acb != NULL) {
sys/dev/ic/osiop.c
382
TAILQ_REMOVE(&sc->free_list, acb, chain);
sys/dev/ic/osiop.c
392
acb->status = ACB_S_READY;
sys/dev/ic/osiop.c
393
acb->xs = xs;
sys/dev/ic/osiop.c
397
err = bus_dmamap_load(sc->sc_dmat, acb->datadma,
sys/dev/ic/osiop.c
407
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/dev/ic/osiop.c
413
acb->cmdlen = xs->cmdlen;
sys/dev/ic/osiop.c
414
acb->datalen = xs->datalen;
sys/dev/ic/osiop.c
416
acb->data = xs->data;
sys/dev/ic/osiop.c
419
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/dev/ic/osiop.c
427
osiop_poll(sc, acb);
sys/dev/ic/osiop.c
457
osiop_poll(struct osiop_softc *sc, struct osiop_acb *acb)
sys/dev/ic/osiop.c
459
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/osiop.c
484
acb->ds, acb->xs->timeout);
sys/dev/ic/osiop.c
501
if (acb != sc->sc_nexus)
sys/dev/ic/osiop.c
527
struct osiop_acb *acb;
sys/dev/ic/osiop.c
540
TAILQ_FOREACH(acb, &sc->ready_list, chain) {
sys/dev/ic/osiop.c
541
periph = acb->xs->xs_periph;
sys/dev/ic/osiop.c
546
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/osiop.c
547
sc->sc_nexus = acb;
sys/dev/ic/osiop.c
554
if (acb == NULL) {
sys/dev/ic/osiop.c
562
if (acb->xs->xs_control & XS_CTL_RESET)
sys/dev/ic/osiop.c
570
osiop_scsidone(struct osiop_acb *acb, int status)
sys/dev/ic/osiop.c
578
if (acb == NULL || acb->xs == NULL) {
sys/dev/ic/osiop.c
586
xs = acb->xs;
sys/dev/ic/osiop.c
587
sc = acb->sc;
sys/dev/ic/osiop.c
591
if (acb->status != ACB_S_DONE)
sys/dev/ic/osiop.c
593
device_xname(sc->sc_dev), acb->status);
sys/dev/ic/osiop.c
630
bus_dmamap_sync(sc->sc_dmat, acb->datadma, 0, acb->datalen,
sys/dev/ic/osiop.c
633
bus_dmamap_unload(sc->sc_dmat, acb->datadma);
sys/dev/ic/osiop.c
643
if (acb == sc->sc_nexus) {
sys/dev/ic/osiop.c
651
} else if (sc->ready_list.tqh_last == &TAILQ_NEXT(acb, chain)) {
sys/dev/ic/osiop.c
652
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/osiop.c
657
if (acb2 == acb) {
sys/dev/ic/osiop.c
658
TAILQ_REMOVE(&sc->nexus_list, acb, chain);
sys/dev/ic/osiop.c
666
if (TAILQ_NEXT(acb, chain) != NULL) {
sys/dev/ic/osiop.c
667
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/osiop.c
682
acb->status = ACB_S_FREE;
sys/dev/ic/osiop.c
683
TAILQ_INSERT_TAIL(&sc->free_list, acb, chain);
sys/dev/ic/osiop.c
769
struct osiop_acb *acb;
sys/dev/ic/osiop.c
843
while ((acb = TAILQ_FIRST(&sc->nexus_list)) != NULL) {
sys/dev/ic/osiop.c
844
acb->xs->error = (acb->flags & ACB_F_TIMEOUT) ?
sys/dev/ic/osiop.c
846
acb->status = ACB_S_DONE;
sys/dev/ic/osiop.c
847
acb->flags = 0;
sys/dev/ic/osiop.c
848
osiop_scsidone(acb, SCSI_OSIOP_NOCHECK);
sys/dev/ic/osiop.c
880
struct osiop_acb *acb = sc->sc_nexus;
sys/dev/ic/osiop.c
881
struct osiop_ds *ds = acb->ds;
sys/dev/ic/osiop.c
882
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/osiop.c
883
bus_dmamap_t dsdma = sc->sc_dsdma, datadma = acb->datadma;
sys/dev/ic/osiop.c
893
sc->sc_script, acb->ds, sc->sc_active);
sys/dev/ic/osiop.c
909
if (acb->status != ACB_S_READY)
sys/dev/ic/osiop.c
913
acb->intstat = 0;
sys/dev/ic/osiop.c
916
memcpy(ds->scsipi_cmd, xs->cmd, acb->cmdlen);
sys/dev/ic/osiop.c
917
ds->cmd.count = acb->cmdlen;
sys/dev/ic/osiop.c
966
acb->curaddr = 0;
sys/dev/ic/osiop.c
967
acb->curlen = 0;
sys/dev/ic/osiop.c
978
bus_dmamap_sync(sc->sc_dmat, acb->datadma,
sys/dev/ic/osiop.c
979
0, acb->datalen, (xs->xs_control & XS_CTL_DATA_IN) ?
sys/dev/ic/osiop.c
985
acb->dsoffset, sizeof(struct osiop_ds),
sys/dev/ic/osiop.c
988
acb->status = ACB_S_ACTIVE;
sys/dev/ic/osiop.c
992
int timeout = mstohz(acb->xs->timeout);
sys/dev/ic/osiop.c
997
osiop_timeout, acb);
sys/dev/ic/wd33c93.c
1011
callout_reset(&xs->xs_callout, mstohz(acb->timeout),
sys/dev/ic/wd33c93.c
1012
wd33c93_timeout_callout, acb);
sys/dev/ic/wd33c93.c
1051
wd33c93_nextstate(sc, acb, csr, asr);
sys/dev/ic/wd33c93.c
1320
wd33c93_go(struct wd33c93_softc *sc, struct wd33c93_acb *acb)
sys/dev/ic/wd33c93.c
1322
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/wd33c93.c
1328
sc->sc_nexus = acb;
sys/dev/ic/wd33c93.c
1334
sc->sc_daddr = acb->daddr;
sys/dev/ic/wd33c93.c
1335
sc->sc_dleft = acb->dleft;
sys/dev/ic/wd33c93.c
1349
if ((csr = wd33c93_selectbus(sc, acb)) == 0)
sys/dev/ic/wd33c93.c
1360
i = wd33c93_nextstate(sc, acb, csr, asr);
sys/dev/ic/wd33c93.c
1433
wd33c93_poll(struct wd33c93_softc *sc, struct wd33c93_acb *acb)
sys/dev/ic/wd33c93.c
1437
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/wd33c93.c
1440
for (count=acb->timeout; count;) {
sys/dev/ic/wd33c93.c
1546
struct wd33c93_acb *acb = sc->sc_nexus;
sys/dev/ic/wd33c93.c
1564
if (acb->tag_type &&
sys/dev/ic/wd33c93.c
1565
li->queued[acb->tag_id] != NULL) {
sys/dev/ic/wd33c93.c
1566
li->queued[acb->tag_id] = NULL;
sys/dev/ic/wd33c93.c
1569
acb->tag_type = acb->tag_id = 0;
sys/dev/ic/wd33c93.c
1570
li->untagged = acb;
sys/dev/ic/wd33c93.c
1581
acb->xs->xs_periph->periph_target);
sys/dev/ic/wd33c93.c
1611
acb->flags |= ACB_COMPLETE;
sys/dev/ic/wd33c93.c
1613
if (acb->xs->xs_control & XS_CTL_POLL)
sys/dev/ic/wd33c93.c
1620
if ((acb->xs->xs_periph->periph_quirks &
sys/dev/ic/wd33c93.c
1627
acb->daddr = sc->sc_daddr;
sys/dev/ic/wd33c93.c
1628
acb->dleft = sc->sc_dleft;
sys/dev/ic/wd33c93.c
1633
sc->sc_daddr = acb->daddr;
sys/dev/ic/wd33c93.c
1634
sc->sc_dleft = acb->dleft;
sys/dev/ic/wd33c93.c
1712
acb->xs->xs_periph->periph_target);
sys/dev/ic/wd33c93.c
1721
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/wd33c93.c
1729
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/wd33c93.c
1812
struct wd33c93_acb *acb = sc->sc_nexus;
sys/dev/ic/wd33c93.c
1814
if (acb == NULL)
sys/dev/ic/wd33c93.c
1825
ti = &sc->sc_tinfo[acb->xs->xs_periph->periph_target];
sys/dev/ic/wd33c93.c
1851
MSG_IDENTIFY(acb->xs->xs_periph->periph_lun, 0);
sys/dev/ic/wd33c93.c
1858
sc->sc_omsg[0] = acb->tag_type;
sys/dev/ic/wd33c93.c
1859
sc->sc_omsg[1] = acb->tag_id;
sys/dev/ic/wd33c93.c
1904
wd33c93_nextstate(struct wd33c93_softc *sc, struct wd33c93_acb *acb, u_char csr, u_char asr)
sys/dev/ic/wd33c93.c
1915
if (wd33c93_xfout(sc, acb->clen, &acb->cmd))
sys/dev/ic/wd33c93.c
1936
acb->dleft = (acb->flags & ACB_COMPLETE) ? 0 :
sys/dev/ic/wd33c93.c
1942
wd33c93_scsidone(sc, acb, sc->sc_status);
sys/dev/ic/wd33c93.c
1958
if (acb->dleft <= 0) {
sys/dev/ic/wd33c93.c
1960
acb->dleft, asr, csr);
sys/dev/ic/wd33c93.c
1967
if (acb->xs->xs_control & XS_CTL_POLL ||
sys/dev/ic/wd33c93.c
1984
(acb->dleft - resid);
sys/dev/ic/wd33c93.c
2058
if (acb->xs->xs_control & XS_CTL_POLL || wd33c93_nodisc)
sys/dev/ic/wd33c93.c
2163
if (acb->xs)
sys/dev/ic/wd33c93.c
2164
wd33c93_error(sc, acb, "unexpected/abort");
sys/dev/ic/wd33c93.c
2165
wd33c93_abort(sc, acb, "next");
sys/dev/ic/wd33c93.c
2169
wd33c93_scsidone(sc, acb, STATUS_UNKNOWN);
sys/dev/ic/wd33c93.c
2183
struct wd33c93_acb *acb;
sys/dev/ic/wd33c93.c
2207
acb = NULL;
sys/dev/ic/wd33c93.c
2216
acb = li->untagged;
sys/dev/ic/wd33c93.c
2224
acb = li->queued[tag_id];
sys/dev/ic/wd33c93.c
2227
if (acb == NULL) {
sys/dev/ic/wd33c93.c
2236
sc->sc_nexus = acb;
sys/dev/ic/wd33c93.c
2239
if (!wd33c93_dmaok(sc, acb->xs))
sys/dev/ic/wd33c93.c
2243
sc->sc_daddr = acb->daddr;
sys/dev/ic/wd33c93.c
2244
sc->sc_dleft = acb->dleft;
sys/dev/ic/wd33c93.c
2249
if (acb->flags & ACB_RESET)
sys/dev/ic/wd33c93.c
2251
else if (acb->flags & ACB_ABORT)
sys/dev/ic/wd33c93.c
2291
struct wd33c93_acb *acb = arg;
sys/dev/ic/wd33c93.c
2295
wd33c93_timeout(acb);
sys/dev/ic/wd33c93.c
2308
wd33c93_timeout(struct wd33c93_acb *acb)
sys/dev/ic/wd33c93.c
2310
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/wd33c93.c
2324
device_xname(sc->sc_dev), asr, acb, acb->flags, acb->dleft,
sys/dev/ic/wd33c93.c
2333
(void) wd33c93_abort(sc, acb, "timeout");
sys/dev/ic/wd33c93.c
399
wd33c93_error(struct wd33c93_softc *sc, struct wd33c93_acb *acb,
sys/dev/ic/wd33c93.c
402
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/wd33c93.c
479
struct wd33c93_acb *acb = sc->sc_nexus;
sys/dev/ic/wd33c93.c
482
sc->sc_daddr = acb->daddr;
sys/dev/ic/wd33c93.c
483
sc->sc_dleft = acb->dleft;
sys/dev/ic/wd33c93.c
558
struct wd33c93_acb *acb;
sys/dev/ic/wd33c93.c
576
acb = pool_get(&wd33c93_pool, PR_NOWAIT);
sys/dev/ic/wd33c93.c
579
if (acb == NULL) {
sys/dev/ic/wd33c93.c
588
("wd33c93_scsi_request: RUN_XFER: acb %p\n", acb));
sys/dev/ic/wd33c93.c
590
acb->flags = ACB_ACTIVE;
sys/dev/ic/wd33c93.c
591
acb->xs = xs;
sys/dev/ic/wd33c93.c
592
acb->clen = xs->cmdlen;
sys/dev/ic/wd33c93.c
593
acb->daddr = xs->data;
sys/dev/ic/wd33c93.c
594
acb->dleft = xs->datalen;
sys/dev/ic/wd33c93.c
595
acb->timeout = xs->timeout;
sys/dev/ic/wd33c93.c
596
memcpy(&acb->cmd, xs->cmd, xs->cmdlen);
sys/dev/ic/wd33c93.c
608
TAILQ_INSERT_TAIL(&sc->ready_list, acb, chain);
sys/dev/ic/wd33c93.c
609
acb->flags |= ACB_READY;
sys/dev/ic/wd33c93.c
619
if (wd33c93_poll(sc, acb)) {
sys/dev/ic/wd33c93.c
620
wd33c93_timeout(acb);
sys/dev/ic/wd33c93.c
621
if (wd33c93_poll(sc, acb)) /* 2nd retry for ABORT */
sys/dev/ic/wd33c93.c
622
wd33c93_timeout(acb);
sys/dev/ic/wd33c93.c
677
struct wd33c93_acb *acb;
sys/dev/ic/wd33c93.c
688
TAILQ_FOREACH(acb, &sc->ready_list, chain) {
sys/dev/ic/wd33c93.c
689
periph = acb->xs->xs_periph;
sys/dev/ic/wd33c93.c
694
KASSERT(acb->flags & ACB_READY);
sys/dev/ic/wd33c93.c
701
else if ((acb->flags & ACB_SENSE) != 0)
sys/dev/ic/wd33c93.c
703
else if (acb->xs->xs_control & XS_CTL_POLL)
sys/dev/ic/wd33c93.c
706
tag = acb->xs->xs_tag_type;
sys/dev/ic/wd33c93.c
725
li->untagged = acb; /* Issue untagged */
sys/dev/ic/wd33c93.c
731
acb = li->untagged;
sys/dev/ic/wd33c93.c
732
periph = acb->xs->xs_periph;
sys/dev/ic/wd33c93.c
737
acb->tag_type = tag;
sys/dev/ic/wd33c93.c
739
if (li->queued[acb->xs->xs_tag_id])
sys/dev/ic/wd33c93.c
741
li->queued[acb->xs->xs_tag_id] = acb;
sys/dev/ic/wd33c93.c
742
acb->tag_id = acb->xs->xs_tag_id;
sys/dev/ic/wd33c93.c
757
if (acb == NULL) {
sys/dev/ic/wd33c93.c
765
TAILQ_REMOVE(&sc->ready_list, acb, chain);
sys/dev/ic/wd33c93.c
766
acb->flags &= ~ACB_READY;
sys/dev/ic/wd33c93.c
768
flags = acb->xs->xs_control;
sys/dev/ic/wd33c93.c
773
if (wd33c93_go(sc, acb) != 0 || acb->xs->error == XS_SELTIMEOUT) {
sys/dev/ic/wd33c93.c
774
acb->dleft = sc->sc_dleft;
sys/dev/ic/wd33c93.c
775
wd33c93_scsidone(sc, acb, sc->sc_status);
sys/dev/ic/wd33c93.c
783
wd33c93_scsidone(struct wd33c93_softc *sc, struct wd33c93_acb *acb, int status)
sys/dev/ic/wd33c93.c
785
struct scsipi_xfer *xs = acb->xs;
sys/dev/ic/wd33c93.c
793
if (acb == NULL || xs == NULL) {
sys/dev/ic/wd33c93.c
797
KASSERT(acb->flags != ACB_FREE);
sys/dev/ic/wd33c93.c
806
xs->resid = acb->dleft;
sys/dev/ic/wd33c93.c
833
wd33c93_dequeue(sc, acb);
sys/dev/ic/wd33c93.c
834
if (sc->sc_nexus == acb) {
sys/dev/ic/wd33c93.c
845
acb->flags = ACB_FREE;
sys/dev/ic/wd33c93.c
846
pool_put(&wd33c93_pool, acb);
sys/dev/ic/wd33c93.c
853
wd33c93_dequeue(struct wd33c93_softc *sc, struct wd33c93_acb *acb)
sys/dev/ic/wd33c93.c
855
struct wd33c93_tinfo *ti = &sc->sc_tinfo[acb->xs->xs_periph->periph_target];
sys/dev/ic/wd33c93.c
857
int lun = acb->xs->xs_periph->periph_lun;
sys/dev/ic/wd33c93.c
863
lun, acb);
sys/dev/ic/wd33c93.c
865
if (li->untagged == acb) {
sys/dev/ic/wd33c93.c
869
if (acb->tag_type && li->queued[acb->tag_id] != NULL) {
sys/dev/ic/wd33c93.c
871
if (li->queued[acb->tag_id] != NULL &&
sys/dev/ic/wd33c93.c
872
(li->queued[acb->tag_id] != acb))
sys/dev/ic/wd33c93.c
874
"instead of acb %p\n", acb->tag_id,
sys/dev/ic/wd33c93.c
875
lun, li->queued[acb->tag_id], acb);
sys/dev/ic/wd33c93.c
877
li->queued[acb->tag_id] = NULL;
sys/dev/ic/wd33c93.c
910
wd33c93_abort(struct wd33c93_softc *sc, struct wd33c93_acb *acb,
sys/dev/ic/wd33c93.c
918
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/wd33c93.c
921
acb->timeout = SBIC_ABORT_TIMEOUT;
sys/dev/ic/wd33c93.c
922
acb->flags |= ACB_ABORT;
sys/dev/ic/wd33c93.c
927
if (sc->sc_nexus == acb) {
sys/dev/ic/wd33c93.c
929
callout_reset(&acb->xs->xs_callout, mstohz(acb->timeout),
sys/dev/ic/wd33c93.c
930
wd33c93_timeout_callout, acb);
sys/dev/ic/wd33c93.c
946
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/wd33c93.c
955
scsipi_printaddr(acb->xs->xs_periph);
sys/dev/ic/wd33c93.c
992
wd33c93_selectbus(struct wd33c93_softc *sc, struct wd33c93_acb *acb)
sys/dev/ic/wd33c93.c
994
struct scsipi_xfer *xs = acb->xs;