Kernel/x86 - Fixed bug MM_DumpTables
[tpg/acess2.git] / Kernel / arch / x86 / lib.c
index dbdb98d..0d493bb 100644 (file)
@@ -15,6 +15,7 @@
 // === IMPRORTS ===
 #if TRACE_LOCKS
 extern struct sShortSpinlock   glDebug_Lock;
+extern struct sShortSpinlock   glThreadListLock;
 #endif
 extern int     GetCPUNum(void);
 
@@ -94,6 +95,14 @@ void SHORTLOCK(struct sShortSpinlock *Lock)
        }
        #endif
        
+       #if TRACE_LOCKS
+       if( Lock != &glDebug_Lock && Lock != &glThreadListLock )
+       {
+               //Log_Log("LOCK", "%p locked by %p", Lock, __builtin_return_address(0));
+               Debug("%p obtaining %p (Called by %p)", __builtin_return_address(0), Lock, __builtin_return_address(1));
+       }
+       #endif
+       
        // Wait for another CPU to release
        while(v) {
                // CMPXCHG:
@@ -124,10 +133,11 @@ void SHORTLOCK(struct sShortSpinlock *Lock)
        #endif
        
        #if TRACE_LOCKS
-       if( Lock != &glDebug_Lock )
+       if( Lock != &glDebug_Lock && Lock != &glThreadListLock )
        {
                //Log_Log("LOCK", "%p locked by %p", Lock, __builtin_return_address(0));
-               LogF("Lock %p locked by %p\n", Lock, __builtin_return_address(0));
+               //Debug("Lock %p locked by %p\t%p", Lock, __builtin_return_address(0), __builtin_return_address(1));
+               Debug("got it");
        }
        #endif
 }
@@ -145,10 +155,10 @@ void SHORTREL(struct sShortSpinlock *Lock)
        #endif
        
        #if TRACE_LOCKS
-       if( Lock != &glDebug_Lock )
+       if( Lock != &glDebug_Lock && Lock != &glThreadListLock )
        {
                //Log_Log("LOCK", "%p released by %p", Lock, __builtin_return_address(0));
-               LogF("Lock %p released by %p\n", Lock, __builtin_return_address(0));
+               Debug("Lock %p released by %p\t%p", Lock, __builtin_return_address(0), __builtin_return_address(1));
        }
        #endif
        
@@ -178,7 +188,7 @@ int putDebugChar(char ch)
                outb(GDB_SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit (8N1)
                outb(GDB_SERIAL_PORT + 2, 0xC7);    // Enable FIFO with 14-byte threshold and clear it
                outb(GDB_SERIAL_PORT + 4, 0x0B);    // IRQs enabled, RTS/DSR set
-               gbDebug_SerialSetup = 1;
+               gbGDB_SerialSetup = 1;
        }
        while( (inb(GDB_SERIAL_PORT + 5) & 0x20) == 0 );
        outb(GDB_SERIAL_PORT, ch);
@@ -194,7 +204,7 @@ int getDebugChar(void)
                outb(GDB_SERIAL_PORT + 3, 0x03);    // 8 bits, no parity, one stop bit
                outb(GDB_SERIAL_PORT + 2, 0xC7);    // Enable FIFO with 14-byte threshold and clear it
                outb(GDB_SERIAL_PORT + 4, 0x0B);    // IRQs enabled, RTS/DSR set
-               gbDebug_SerialSetup = 1;
+               gbGDB_SerialSetup = 1;
        }
        while( (inb(GDB_SERIAL_PORT + 5) & 1) == 0)     ;
        return inb(GDB_SERIAL_PORT);

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