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 */