sea 215 dev/isa/seagate.c #define STATUS (*(volatile u_char *)sea->maddr_cr_sr) sea 217 dev/isa/seagate.c #define DATA (*(volatile u_char *)sea->maddr_dr) sea 279 dev/isa/seagate.c int sea_select(struct sea_softc *sea, struct sea_scb *scb); sea 280 dev/isa/seagate.c int sea_transfer_pio(struct sea_softc *sea, u_char *phase, sea 289 dev/isa/seagate.c void sea_send_scb(struct sea_softc *sea, struct sea_scb *scb); sea 290 dev/isa/seagate.c void sea_reselect(struct sea_softc *sea); sea 321 dev/isa/seagate.c sea_queue_length(struct sea_softc *sea) sea 326 dev/isa/seagate.c connected = sea->nexus ? 1 : 0; sea 328 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->ready_list, chain) sea 331 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->nexus_list, chain) sea 333 dev/isa/seagate.c printf("%s: length: %d/%d/%d\n", sea->sc_dev.dv_xname, connected, sea 347 dev/isa/seagate.c struct sea_softc *sea = match; sea 363 dev/isa/seagate.c sea->maddr = ISA_HOLE_VADDR(ia->ia_maddr); sea 367 dev/isa/seagate.c if (!bcmp(sea->maddr + signatures[i].offset, sea 369 dev/isa/seagate.c sea->type = signatures[i].type; sea 374 dev/isa/seagate.c switch (sea->type) { sea 377 dev/isa/seagate.c sea->maddr_cr_sr = sea 378 dev/isa/seagate.c (void *) (((u_char *)sea->maddr) + 0x1a00); sea 379 dev/isa/seagate.c sea->maddr_dr = sea 380 dev/isa/seagate.c (void *) (((u_char *)sea->maddr) + 0x1c00); sea 383 dev/isa/seagate.c sea->maddr_cr_sr = sea 384 dev/isa/seagate.c (void *) (((u_char *)sea->maddr) + 0x1c00); sea 385 dev/isa/seagate.c sea->maddr_dr = sea 386 dev/isa/seagate.c (void *) (((u_char *)sea->maddr) + 0x1e00); sea 391 dev/isa/seagate.c sea->sc_dev.dv_xname, sea->maddr); sea 397 dev/isa/seagate.c *((u_char *)sea->maddr + SEA_RAMOFFSET) = 0xa5; sea 398 dev/isa/seagate.c *((u_char *)sea->maddr + SEA_RAMOFFSET + 1) = 0x5a; sea 400 dev/isa/seagate.c if ((*((u_char *)sea->maddr + SEA_RAMOFFSET) != 0xa5) || sea 401 dev/isa/seagate.c (*((u_char *)sea->maddr + SEA_RAMOFFSET + 1) != 0x5a)) { sea 402 dev/isa/seagate.c printf("%s: board RAM failure\n", sea->sc_dev.dv_xname); sea 427 dev/isa/seagate.c struct sea_softc *sea = (void *)self; sea 430 dev/isa/seagate.c sea_init(sea); sea 435 dev/isa/seagate.c sea->sc_link.adapter_softc = sea; sea 436 dev/isa/seagate.c sea->sc_link.adapter_target = sea->our_id; sea 437 dev/isa/seagate.c sea->sc_link.adapter = &sea_switch; sea 438 dev/isa/seagate.c sea->sc_link.device = &sea_dev; sea 439 dev/isa/seagate.c sea->sc_link.openings = 1; sea 443 dev/isa/seagate.c sea->sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq, IST_EDGE, sea 444 dev/isa/seagate.c IPL_BIO, seaintr, sea, sea->sc_dev.dv_xname); sea 447 dev/isa/seagate.c saa.saa_sc_link = &sea->sc_link; sea 461 dev/isa/seagate.c struct sea_softc *sea = arg; sea 475 dev/isa/seagate.c printf("%s: parity error\n", sea->sc_dev.dv_xname); sea 481 dev/isa/seagate.c sea_reselect(sea); sea 494 dev/isa/seagate.c sea_init(struct sea_softc *sea) sea 505 dev/isa/seagate.c switch (sea->type) { sea 507 dev/isa/seagate.c sea->our_id = 7; sea 511 dev/isa/seagate.c sea->our_id = 6; sea 514 dev/isa/seagate.c sea->our_id_mask = 1 << sea->our_id; sea 517 dev/isa/seagate.c sea->nexus = 0; sea 518 dev/isa/seagate.c TAILQ_INIT(&sea->ready_list); sea 519 dev/isa/seagate.c TAILQ_INIT(&sea->nexus_list); sea 520 dev/isa/seagate.c TAILQ_INIT(&sea->free_list); sea 522 dev/isa/seagate.c sea->busy[i] = 0x00; sea 525 dev/isa/seagate.c sea->numscbs = SCB_TABLE_SIZE; sea 527 dev/isa/seagate.c TAILQ_INSERT_TAIL(&sea->free_list, &sea->scb[i], chain); sea 539 dev/isa/seagate.c struct sea_softc *sea = sc_link->adapter_softc; sea 548 dev/isa/seagate.c printf("%s: done?\n", sea->sc_dev.dv_xname); sea 551 dev/isa/seagate.c if ((scb = sea_get_scb(sea, flags)) == NULL) { sea 562 dev/isa/seagate.c printf("%s: resetting\n", sea->sc_dev.dv_xname); sea 574 dev/isa/seagate.c sea_queue_length(sea); sea 579 dev/isa/seagate.c sea_send_scb(sea, scb); sea 596 dev/isa/seagate.c if (sea_poll(sea, xs, xs->timeout)) { sea 598 dev/isa/seagate.c if (sea_poll(sea, xs, 2000)) sea 609 dev/isa/seagate.c sea_get_scb(struct sea_softc *sea, int flags) sea 621 dev/isa/seagate.c scb = TAILQ_FIRST(&sea->free_list); sea 623 dev/isa/seagate.c TAILQ_REMOVE(&sea->free_list, scb, chain); sea 626 dev/isa/seagate.c if (sea->numscbs < SEA_SCB_MAX) { sea 631 dev/isa/seagate.c sea->numscbs++; sea 634 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 639 dev/isa/seagate.c tsleep(&sea->free_list, PRIBIO, "seascb", 0); sea 655 dev/isa/seagate.c sea_send_scb(struct sea_softc *sea, struct sea_scb *scb) sea 658 dev/isa/seagate.c TAILQ_INSERT_TAIL(&sea->ready_list, scb, chain); sea 672 dev/isa/seagate.c struct sea_softc *sea; sea 687 dev/isa/seagate.c sea = sea_cd.cd_devs[unit]; sea 688 dev/isa/seagate.c if (!sea) sea 691 dev/isa/seagate.c if (!sea->nexus) { sea 696 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->ready_list, chain) { sea 697 dev/isa/seagate.c if (!(sea->busy[scb->xs->sc_link->target] & sea 699 dev/isa/seagate.c TAILQ_REMOVE(&sea->ready_list, scb, sea 730 dev/isa/seagate.c sea_reselect(sea); sea 733 dev/isa/seagate.c if (sea_select(sea, scb)) { sea 735 dev/isa/seagate.c TAILQ_INSERT_HEAD(&sea->ready_list, sea 742 dev/isa/seagate.c if (!sea->nexus) { sea 746 dev/isa/seagate.c sea_reselect(sea); sea 752 dev/isa/seagate.c if (sea->nexus) { /* we are connected. Do the task */ sea 753 dev/isa/seagate.c sea_information_transfer(sea); sea 766 dev/isa/seagate.c sea_free_scb(struct sea_softc *sea, struct sea_scb *scb, int flags) sea 773 dev/isa/seagate.c TAILQ_INSERT_HEAD(&sea->free_list, scb, chain); sea 780 dev/isa/seagate.c wakeup((caddr_t)&sea->free_list); sea 791 dev/isa/seagate.c struct sea_softc *sea = sc_link->adapter_softc; sea 809 dev/isa/seagate.c sea_done(sea, scb); sea 814 dev/isa/seagate.c sea_abort(sea, scb); sea 826 dev/isa/seagate.c sea_reselect(struct sea_softc *sea) sea 838 dev/isa/seagate.c printf("%s: wrong state 0x%x\n", sea->sc_dev.dv_xname, sea 851 dev/isa/seagate.c if (!(target_mask & sea->our_id_mask)) { sea 853 dev/isa/seagate.c sea->sc_dev.dv_xname, target_mask); sea 857 dev/isa/seagate.c target_mask &= ~sea->our_id_mask; sea 871 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 875 dev/isa/seagate.c sea->sc_dev.dv_xname, msg[0]); sea 886 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->nexus_list, chain) sea 889 dev/isa/seagate.c TAILQ_REMOVE(&sea->nexus_list, scb, sea 895 dev/isa/seagate.c sea->sc_dev.dv_xname, target_mask, lun); sea 910 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 912 dev/isa/seagate.c sea->nexus = scb; sea 921 dev/isa/seagate.c sea_transfer_pio(struct sea_softc *sea, u_char *phase, int *count, u_char **data) sea 938 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 946 dev/isa/seagate.c if (sea->type == FDOMAIN840) sea 979 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1003 dev/isa/seagate.c sea_select(struct sea_softc *sea, struct sea_scb *scb) sea 1011 dev/isa/seagate.c DATA = sea->our_id_mask; sea 1020 dev/isa/seagate.c printf("%s: arbitration lost\n", sea->sc_dev.dv_xname); sea 1024 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1032 dev/isa/seagate.c DATA = (u_char)((1 << scb->xs->sc_link->target) | sea->our_id_mask); sea 1079 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 1083 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1085 dev/isa/seagate.c sea->nexus = scb; sea 1086 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] |= 1 << scb->xs->sc_link->lun; sea 1097 dev/isa/seagate.c sea_abort(struct sea_softc *sea, struct sea_scb *scb) sea 1108 dev/isa/seagate.c TAILQ_FOREACH(tmp, &sea->ready_list, chain) sea 1110 dev/isa/seagate.c TAILQ_REMOVE(&sea->ready_list, scb, chain); sea 1119 dev/isa/seagate.c if (sea->nexus) sea 1127 dev/isa/seagate.c TAILQ_FOREACH(tmp, &sea->nexus_list, chain) sea 1129 dev/isa/seagate.c if (sea_select(sea, scb)) sea 1137 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &msgptr); sea 1139 dev/isa/seagate.c TAILQ_FOREACH(tmp, &sea->nexus_list, chain) sea 1141 dev/isa/seagate.c TAILQ_REMOVE(&sea->nexus_list, sea 1154 dev/isa/seagate.c sea_done(struct sea_softc *sea, struct sea_scb *scb) sea 1172 dev/isa/seagate.c sea_free_scb(sea, scb, xs->flags); sea 1180 dev/isa/seagate.c sea_poll(struct sea_softc *sea, struct scsi_xfer *xs, int count) sea 1203 dev/isa/seagate.c sea_information_transfer(struct sea_softc *sea) sea 1211 dev/isa/seagate.c struct sea_scb *scb = sea->nexus; sea 1218 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1225 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1227 dev/isa/seagate.c sea->nexus = NULL; sea 1230 dev/isa/seagate.c sea_done(sea, scb); sea 1239 dev/isa/seagate.c if (sea->type == FDOMAIN840) sea 1251 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1267 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1270 dev/isa/seagate.c if (sea->type == FDOMAIN840) sea 1278 dev/isa/seagate.c void *a = sea->maddr_dr; sea 1298 dev/isa/seagate.c void *a = sea->maddr_dr; sea 1321 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &scb->datalen, sea 1328 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 1336 dev/isa/seagate.c sea_done(sea, scb); sea 1340 dev/isa/seagate.c sea->nexus = NULL; sea 1342 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] &= sea 1345 dev/isa/seagate.c sea_done(sea, scb); sea 1349 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1353 dev/isa/seagate.c TAILQ_INSERT_TAIL(&sea->nexus_list, sea 1355 dev/isa/seagate.c sea->nexus = NULL; sea 1371 dev/isa/seagate.c sea->sc_dev.dv_xname, tmp); sea 1379 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 1382 dev/isa/seagate.c sea->sc_dev.dv_xname); sea 1384 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] &= sea 1386 dev/isa/seagate.c sea->nexus = NULL; sea 1390 dev/isa/seagate.c sea_done(sea, scb); sea 1398 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 1403 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &len, &data); sea 1412 dev/isa/seagate.c printf("%s: timeout in data transfer\n", sea->sc_dev.dv_xname); sea 1415 dev/isa/seagate.c sea_done(sea, scb); sea 648 scsi/ch.c _lto2b(first, cmd.sea); sea 142 scsi/scsi_changer.h u_int8_t sea[2]; /* starting element address */