freeze.c (6e9ff14e) | freeze.c (92297093) |
---|---|
1/* 2 * PROJECT: ReactOS Kernel 3 * LICENSE: GPL - See COPYING in the top level directory 4 * FILE: ntoskrnl/ke/freeze.c 5 * PURPOSE: Routines for freezing and unfreezing processors for 6 * kernel debugger synchronization. 7 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 8 */ --- 35 unchanged lines hidden (view full) --- 44 if (OldIrql < DISPATCH_LEVEL) 45 OldIrql = KeRaiseIrqlToDpcLevel(); 46#else 47 /* Raise IRQL to HIGH_LEVEL */ 48 KeRaiseIrql(HIGH_LEVEL, &OldIrql); 49#endif 50 51#ifdef CONFIG_SMP | 1/* 2 * PROJECT: ReactOS Kernel 3 * LICENSE: GPL - See COPYING in the top level directory 4 * FILE: ntoskrnl/ke/freeze.c 5 * PURPOSE: Routines for freezing and unfreezing processors for 6 * kernel debugger synchronization. 7 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 8 */ --- 35 unchanged lines hidden (view full) --- 44 if (OldIrql < DISPATCH_LEVEL) 45 OldIrql = KeRaiseIrqlToDpcLevel(); 46#else 47 /* Raise IRQL to HIGH_LEVEL */ 48 KeRaiseIrql(HIGH_LEVEL, &OldIrql); 49#endif 50 51#ifdef CONFIG_SMP |
52 // TODO: Add SMP support. | 52 /* Architecture specific freeze code */ 53 KxFreezeExecution(); |
53#endif 54 55 /* Save the old IRQL to be restored on unfreeze */ 56 KiOldIrql = OldIrql; 57 58 /* Return whether interrupts were enabled */ 59 return Enable; 60} 61 62VOID 63NTAPI 64KeThawExecution(IN BOOLEAN Enable) 65{ 66#ifdef CONFIG_SMP | 54#endif 55 56 /* Save the old IRQL to be restored on unfreeze */ 57 KiOldIrql = OldIrql; 58 59 /* Return whether interrupts were enabled */ 60 return Enable; 61} 62 63VOID 64NTAPI 65KeThawExecution(IN BOOLEAN Enable) 66{ 67#ifdef CONFIG_SMP |
67 // TODO: Add SMP support. | 68 /* Architecture specific thaw code */ 69 KxThawExecution(); |
68#endif 69 70 /* Clear the freeze flag */ 71 KiFreezeFlag = 0; 72 73 /* Cleanup CPU caches */ 74 KeFlushCurrentTb(); 75 76 /* Restore the old IRQL */ 77#ifndef CONFIG_SMP 78 if (KiOldIrql < DISPATCH_LEVEL) 79#endif 80 KeLowerIrql(KiOldIrql); 81 82 /* Re-enable interrupts */ 83 KeRestoreInterrupts(Enable); 84} | 70#endif 71 72 /* Clear the freeze flag */ 73 KiFreezeFlag = 0; 74 75 /* Cleanup CPU caches */ 76 KeFlushCurrentTb(); 77 78 /* Restore the old IRQL */ 79#ifndef CONFIG_SMP 80 if (KiOldIrql < DISPATCH_LEVEL) 81#endif 82 KeLowerIrql(KiOldIrql); 83 84 /* Re-enable interrupts */ 85 KeRestoreInterrupts(Enable); 86} |