|
|
1.1 ! root 1: #include "u.h" ! 2: #include "../port/lib.h" ! 3: #include "mem.h" ! 4: #include "dat.h" ! 5: #include "fns.h" ! 6: #include "io.h" ! 7: #include "../port/error.h" ! 8: ! 9: /* ! 10: * Known to devscsi.c. ! 11: int scsidebugs[8]; ! 12: int scsiownid = CtlrID; ! 13: */ ! 14: ! 15: void ! 16: initscsi(void) ! 17: { ! 18: } ! 19: ! 20: /* ! 21: * Quick hack. Need to do a better job of dynamic initialisation ! 22: * for machines with peculiar memory/cache restictions. ! 23: * Also, what about 16Mb address limit on the Adaptec? ! 24: */ ! 25: static ulong bufdatasize; ! 26: ! 27: void ! 28: scsibufreset(ulong datasize) ! 29: { ! 30: bufdatasize = datasize; ! 31: } ! 32: ! 33: Scsibuf * ! 34: scsibuf(void) ! 35: { ! 36: Scsibuf *b; ! 37: ! 38: b = smalloc(sizeof(*b)); ! 39: b->virt = smalloc(bufdatasize); ! 40: b->phys = (void *)(PADDR(b->virt)); ! 41: return b; ! 42: } ! 43: ! 44: void ! 45: scsifree(Scsibuf *b) ! 46: { ! 47: free(b->virt); ! 48: free(b); ! 49: } ! 50: ! 51: extern int (*aha1542reset(void))(Scsi*, int); ! 52: extern int (*ultra14freset(void))(Scsi*, int); ! 53: ! 54: static int (*exec)(Scsi*, int); ! 55: ! 56: int ! 57: scsiexec(Scsi *p, int rflag) ! 58: { ! 59: if(exec == 0) ! 60: error(Enonexist); ! 61: return (*exec)(p, rflag); ! 62: } ! 63: ! 64: void ! 65: resetscsi(void) ! 66: { ! 67: if(exec = aha1542reset()) ! 68: return; ! 69: exec = ultra14freset(); ! 70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.