| plan 9 kernel history: overview | file list | diff list |
1999/0506/alphapc/devfloppy.c (diff list | history)
| 1999/0504/sys/src/9/alphapc/devfloppy.c:39,45 – 1999/0506/sys/src/9/alphapc/devfloppy.c:39,45 (short | long | prev | next) | ||
| 1999/0415 | }; #define DPRINT if(floppydebug)print | |
| 1999/0501 |
| |
| 1999/0506 | int floppydebug = 0; | |
| 1999/0415 | /* * types of drive (from PC equipment byte) | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:106,112 – 1999/0506/sys/src/9/alphapc/devfloppy.c:106,113 | ||
| 1999/0415 | static long floppyxfer(FDrive*, int, void*, long, long); Dirtab floppydir[]={ | |
| 1999/0506 | // "fd0disk", {Qdata + 0}, 0, 0660, "fd0disk", {Qdata + 0}, 0, 0666, | |
| 1999/0415 | "fd0ctl", {Qctl + 0}, 0, 0660, "fd1disk", {Qdata + 1}, 0, 0660, "fd1ctl", {Qctl + 1}, 0, 0660, | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:535,541 – 1999/0506/sys/src/9/alphapc/devfloppy.c:536,541 | ||
| 1999/0415 | microdelay(8); /* for machine independence */ } outb(Pfdata, fl.cmd[i]); | |
| 1999/0501 |
| |
| 1999/0415 | } return 0; } | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:639,649 – 1999/0506/sys/src/9/alphapc/devfloppy.c:639,645 | ||
| 1999/0415 | static void floppywait(void) { | |
| 1999/0501 |
| |
| 1999/0415 | tsleep(&fl.r, cmddone, 0, 5000); | |
| 1999/0501 |
| |
| 1999/0415 | if(!cmddone(0)){ floppyintr(0); fl.confused = 1; | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:688,693 – 1999/0506/sys/src/9/alphapc/devfloppy.c:684,709 | ||
| 1999/0415 | } | |
| 1999/0501 | static void | |
| 1999/0506 | dumpreg(void) { int i; fl.ncmd = 0; fl.cmd[fl.ncmd++] = Fdumpreg; if(floppycmd() < 0) return; floppywait(); if(fl.nstat < 0){ print("dumpreg bad %d\n", fl.nstat); fldump(); return; } for(i = 0; i < fl.nstat; i++) print(" %2.2uX", fl.stat[i]); print("\n"); } static void | |
| 1999/0501 | specify(void) { fl.ncmd = 0; | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:794,800 – 1999/0506/sys/src/9/alphapc/devfloppy.c:810,816 | ||
| 1999/0415 | /* retry on error (until it gets ridiculous) */ tries = 0; while(waserror()){ | |
| 1999/0501 |
| |
| 1999/0506 | if(tries++ > 20) | |
| 1999/0415 | nexterror(); DPRINT("floppyxfer: retrying\n"); /*floppyon(dp);*/ | |
| 1999/0504/sys/src/9/alphapc/devfloppy.c:840,848 – 1999/0506/sys/src/9/alphapc/devfloppy.c:856,861 | ||
| 1999/0415 | /* * give bus to DMA, floppyintr() will read result */ | |
| 1999/0501 |
| |
| 1999/0504 |
| |
| 1999/0415 | floppywait(); dmaend(DMAchan); poperror(); | |