diff --git a/Kernel/arch/x86/lib.c b/Kernel/arch/x86/lib.c index b73cc6a2c05052a4cef4ed955c5e34212ea7d1a0..3d951d462cb1ac49109d21082083cfd3f67e5a59 100644 --- a/Kernel/arch/x86/lib.c +++ b/Kernel/arch/x86/lib.c @@ -8,7 +8,7 @@ #define TRACE_LOCKS 0 #if TRACE_LOCKS -struct sShortSpinlock glDebug_Lock; +extern struct sShortSpinlock glDebug_Lock; #endif extern int GetCPUNum(void); diff --git a/Kernel/arch/x86/start.asm b/Kernel/arch/x86/start.asm index 0a4f920e7e2807de73f2166c907d6b0e206d38eb..737ff2e77a65a26058a7d19d342ac2248e7e74aa 100644 --- a/Kernel/arch/x86/start.asm +++ b/Kernel/arch/x86/start.asm @@ -118,8 +118,8 @@ APStartup: mov ds, ax lgdt [DWORD ds:lGDTPtr-KERNEL_BASE-0xFFFF0] mov eax, cr0 - or al, 1 - mov cr0, eax + or al, 1 + mov cr0, eax jmp 08h:DWORD .ProtectedMode-KERNEL_BASE [bits 32] .ProtectedMode: @@ -134,7 +134,7 @@ APStartup: mov eax, gaInitPageDir - KERNEL_BASE mov cr3, eax mov eax, cr0 - or eax, 0x80010000 ; PG and WP + or eax, 0x80010000 ; PG and WP mov cr0, eax ; Jump to higher half lea eax, [.higherHalf] diff --git a/Kernel/time.c b/Kernel/time.c index 9ddf26a374e28da4d766e7c4834521507226e4da..e64d0b77548d322b2c10a81bcf3a96f320c4a1f8 100644 --- a/Kernel/time.c +++ b/Kernel/time.c @@ -21,9 +21,9 @@ Sint64 now(void); void Timer_CallTimers(void); // === GLOBALS === -Uint64 giTicks = 0; -Sint64 giTimestamp = 0; -Uint64 giPartMiliseconds = 0; +volatile Uint64 giTicks = 0; +volatile Sint64 giTimestamp = 0; +volatile Uint64 giPartMiliseconds = 0; tTimer gTimers[NUM_TIMERS]; // TODO: Replace by a ring-list timer // === CODE === @@ -86,7 +86,9 @@ void Time_RemoveTimer(int ID) void Time_Delay(int Delay) { Sint64 dest = giTimestamp + Delay; + //Log("Time_Delay: dest = %lli", dest); while(dest > giTimestamp) Threads_Yield(); + //Log("Time_Delay: giTimestamp = %lli", giTimestamp); } // === EXPORTS ===