X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FStorage%2FFDD%2Ffdd.c;h=b0bbf784d3b03f467de96e044e25835f6884f70f;hb=a928d1d2a70761eece125cdbe9950ec0b1112ce3;hp=23fd4db0d6ce76683613a293eb6cb916aea350f2;hpb=da7ef0c8cace452ccfdfa0881a3c0b09970874d8;p=tpg%2Facess2.git diff --git a/Modules/Storage/FDD/fdd.c b/Modules/Storage/FDD/fdd.c index 23fd4db0..b0bbf784 100644 --- a/Modules/Storage/FDD/fdd.c +++ b/Modules/Storage/FDD/fdd.c @@ -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); @@ -218,7 +227,7 @@ void FDD_UnloadModule() * \fn char *FDD_ReadDir(tVFS_Node *Node, int pos) * \brief Read Directory */ -char *FDD_ReadDir(tVFS_Node *Node, int Pos) +char *FDD_ReadDir(tVFS_Node *UNUSED(Node), int Pos) { char name[2] = "0\0"; @@ -235,7 +244,7 @@ char *FDD_ReadDir(tVFS_Node *Node, int Pos) * \fn tVFS_Node *FDD_FindDir(tVFS_Node *Node, char *filename); * \brief Find File Routine (for vfs_node) */ -tVFS_Node *FDD_FindDir(tVFS_Node *Node, char *Filename) +tVFS_Node *FDD_FindDir(tVFS_Node *UNUSED(Node), char *Filename) { int i; @@ -278,14 +287,11 @@ static const char *casIOCTLS[] = {DRV_IOCTLNAMES,DRV_DISK_IOCTLNAMES,NULL}; * \fn int FDD_IOCtl(tVFS_Node *Node, int id, void *data) * \brief Stub ioctl function */ -int FDD_IOCtl(tVFS_Node *Node, int ID, void *Data) +int FDD_IOCtl(tVFS_Node *UNUSED(Node), int ID, void *Data) { switch(ID) { - case DRV_IOCTL_TYPE: return DRV_TYPE_DISK; - case DRV_IOCTL_IDENT: return ModUtil_SetIdent(Data, "FDD"); - case DRV_IOCTL_VERSION: return FDD_VERSION; - case DRV_IOCTL_LOOKUP: return ModUtil_LookupString((char**)casIOCTLS, Data); + BASE_IOCTLS(DRV_TYPE_DISK, "FDD", FDD_VERSION, casIOCTLS); case DISK_IOCTL_GETBLOCKSIZE: return 512; @@ -768,7 +774,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 +803,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);