| plan 9 kernel history: overview | file list | diff list |
1995/0328/pc/scsi.c (diff list | history)
| 1995/0324/sys/src/9/pc/scsi.c:25,45 – 1995/0328/sys/src/9/pc/scsi.c:25,54 (short | long | prev | next) | ||
| 1994/0908 | static Ctlr *scsi[MaxScsi]; | |
| 1995/0328 | typedef struct Link Link; typedef struct Link { | |
| 1994/0908 | char *type; Scsiio (*reset)(int, ISAConf*); | |
| 1995/0328 | Link* link; } Link; static Link *link; static int linkcount; | |
| 1993/0915 | void | |
| 1994/0908 |
| |
| 1995/0328 | addscsilink(char *t, Scsiio (*r)(int, ISAConf*)) | |
| 1993/0915 | { | |
| 1994/0908 |
| |
| 1995/0328 | Link *lp; | |
| 1994/0908 |
| |
| 1995/0328 | if((lp = xalloc(sizeof(Link))) == 0) return; lp->type = t; lp->reset = r; lp->link = link; link = lp; linkcount++; | |
| 1993/0915 | } void | |
| 1995/0324/sys/src/9/pc/scsi.c:46,52 – 1995/0328/sys/src/9/pc/scsi.c:55,62 | ||
| 1994/0908 | scsireset(void) | |
| 1993/0915 | { | |
| 1994/0908 | Ctlr *ctlr; | |
| 1995/0328 | int ctlrno, t; Link *lp; | |
| 1994/0908 | for(ctlr = 0, ctlrno = 0; ctlrno < MaxScsi; ctlrno++){ if(ctlr == 0) | |
| 1995/0324/sys/src/9/pc/scsi.c:54,68 – 1995/0328/sys/src/9/pc/scsi.c:64,81 | ||
| 1994/0908 | memset(ctlr, 0, sizeof(Ctlr)); if(isaconfig("scsi", ctlrno, ctlr) == 0) continue; | |
| 1995/0328 | for(lp = link; lp; lp = lp->link){ if(strcmp(lp->type, ctlr->type)) | |
| 1994/0908 | continue; | |
| 1995/0328 | if((ctlr->io = (*lp->reset)(ctlrno, ctlr)) == 0) | |
| 1994/0908 | break; | |
| 1995/0328 | print("scsi%d: %s: port %lux irq %d", | |
| 1994/0908 | ctlrno, ctlr->type, ctlr->port, ctlr->irq, ctlr->mem, ctlr->size); | |
| 1995/0328 | if(ctlr->mem) print(" addr %lux size %d\n", ctlr->mem, ctlr->size); print("\n"); | |
| 1994/0908 | for(t = 0; t < NTarget; t++){ ctlr->target[t].ctlrno = ctlrno; | |