More MP work (now APs start and use the LAPIC timer)
[tpg/acess2.git] / Modules / Storage / FDD / fdd.c
index 23fd4db..cc75bfc 100644 (file)
@@ -136,6 +136,7 @@ tDevFS_Driver       gFDD_DriverInfo = {
 int FDD_Install(char **Arguments)
 {
        Uint8 data;
+       char    **args = Arguments;
        
        // Determine Floppy Types (From CMOS)
        outb(0x70, 0x10);
@@ -145,6 +146,14 @@ int FDD_Install(char **Arguments)
        gFDD_Devices[0].track[0] = -1;
        gFDD_Devices[1].track[1] = -1;
        
+       if(args) {
+               for(;*args;args++)
+               {
+                       if(strcmp(*args, "disable")==0)
+                               return MODULE_ERR_NOTNEEDED;
+               }
+       }
+       
        Log_Log("FDD", "Detected Disk 0: %s and Disk 1: %s", cFDD_TYPES[data>>4], cFDD_TYPES[data&0xF]);
        
        if( data == 0 ) {
@@ -208,7 +217,7 @@ void FDD_UnloadModule()
        LOCK(&glFDD);
        for(i=0;i<4;i++) {
                Time_RemoveTimer(gFDD_Devices[i].timer);
-               FDD_int_StopMotor((void*)i);
+               FDD_int_StopMotor((void *)(Uint)i);
        }
        RELEASE(&glFDD);
        //IRQ_Clear(6);
@@ -768,7 +777,7 @@ void FDD_Reset(int id)
  */
 void FDD_int_TimerCallback(void *Arg)
 {
-        int    disk = (int)Arg;
+        int    disk = (Uint)Arg;
        ENTER("iarg", disk);
        if(gFDD_Devices[disk].motorState == 1)
                gFDD_Devices[disk].motorState = 2;
@@ -797,7 +806,7 @@ void FDD_int_StartMotor(int disk)
  */
 void FDD_int_StopMotor(void *Arg)
 {
-       Uint8   state, disk = (int)Arg;
+       Uint8   state, disk = (Uint)Arg;
        if( IS_LOCKED(&glFDD) ) return ;
        ENTER("iDisk", disk);
        

UCC git Repository :: git.ucc.asn.au