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