Fixed logging print not working, cleaned up debug
authorJohn Hodge <[email protected]>
Sat, 27 Mar 2010 07:17:31 +0000 (15:17 +0800)
committerJohn Hodge <[email protected]>
Sat, 27 Mar 2010 07:17:31 +0000 (15:17 +0800)
- Fixed FDD Driver always timing out on a read/write
- Added an error report to the FDD read/write method

Kernel/Makefile.BuildNum
Kernel/lib.c
Kernel/logging.c
Modules/Storage/FDD/fdd.c

index fa878fd..fa88cf0 100644 (file)
@@ -1 +1 @@
-BUILD_NUM = 1586
+BUILD_NUM = 1590
index eea64e0..8548659 100644 (file)
@@ -174,7 +174,7 @@ int vsnprintf(char *__s, size_t __maxlen, const char *__format, va_list args)
        Uint64  val;
        size_t  pos = 0;
        
-       Log("vsnprintf: (__s=%p, __maxlen=%i, __format='%s', ...)\n", __s, __maxlen, __format);
+       //Log("vsnprintf: (__s=%p, __maxlen=%i, __format='%s', ...)", __s, __maxlen, __format);
        
        while((c = *__format++) != 0)
        {
index ad63a21..72856db 100644 (file)
@@ -79,7 +79,7 @@ void Log_AddEvent(char *Ident, int Level, char *Format, va_list Args)
        
        len = vsnprintf(NULL, 256, Format, Args);
        
-       Log("len = %i", len);
+       //Log("len = %i", len);
        
        ent = malloc(sizeof(tLogEntry)+len+1);
        ent->Time = now();
@@ -88,8 +88,8 @@ void Log_AddEvent(char *Ident, int Level, char *Format, va_list Args)
        ent->Length = len;
        vsnprintf( ent->Data, 256, Format, Args );
        
-       Log("ent->Ident = '%s'", ent->Ident);
-       Log("ent->Data = '%s'", ent->Data);
+       //Log("ent->Ident = '%s'", ent->Ident);
+       //Log("ent->Data = '%s'", ent->Data);
        
        LOCK( &glLog );
        
@@ -118,7 +118,7 @@ void Log_AddEvent(char *Ident, int Level, char *Format, va_list Args)
  */
 void Log_Int_PrintMessage(tLogEntry *Entry)
 {
-       LogF("%018i% [%8s] %s\n",
+       LogF("%018lli%s [%8s] %s\n",
                Entry->Time,
                csaLevelCodes[Entry->Level],
                Entry->Ident,
index e54e774..f72e548 100644 (file)
@@ -145,7 +145,7 @@ int FDD_Install(char **Arguments)
        gFDD_Devices[0].track[0] = -1;\r
        gFDD_Devices[1].track[1] = -1;\r
        \r
-       Log("[FDD ] Detected Disk 0: %s and Disk 1: %s", cFDD_TYPES[data>>4], cFDD_TYPES[data&0xF]);\r
+       Log_Log("FDD", "Detected Disk 0: %s and Disk 1: %s", cFDD_TYPES[data>>4], cFDD_TYPES[data&0xF]);\r
        \r
        if( data == 0 ) {\r
                return MODULE_ERR_NOTNEEDED;\r
@@ -471,15 +471,25 @@ int FDD_int_ReadWriteSector(Uint32 Disk, Uint64 SectorAddr, int Write, void *Buf
                \r
                if(st1 & 0x02) {\r
                        LOG("Floppy not writable");\r
-                       i = FDD_MAX_READWRITE_ATTEMPTS;\r
+                       i = FDD_MAX_READWRITE_ATTEMPTS+1;\r
                        break;\r
                }\r
+               \r
+               // Success!\r
+               break;\r
        }\r
        \r
        // Release Spinlock\r
        LOG("Realeasing Spinlock and setting motor to stop");\r
        RELEASE(&glFDD);\r
        \r
+       if(i == FDD_MAX_READWRITE_ATTEMPTS) {\r
+               Log_Warning("FDD", "Exceeded %i attempts in %s the disk",\r
+                       FDD_MAX_READWRITE_ATTEMPTS,\r
+                       (Write ? "writing to" : "reading from")\r
+                       );\r
+       }\r
+       \r
        // Don't turn the motor off now, wait for a while\r
        gFDD_Devices[Disk].timer = Time_CreateTimer(MOTOR_OFF_DELAY, FDD_int_StopMotor, (void*)Disk);\r
 \r

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