git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Usermode/AxWin4 - Fix bitmap upscale
[tpg/acess2.git]
/
KernelLand
/
Kernel
/
arch
/
x86
/
kpanic.c
diff --git
a/KernelLand/Kernel/arch/x86/kpanic.c
b/KernelLand/Kernel/arch/x86/kpanic.c
index
bf18aa8
..
ef2ad4c
100644
(file)
--- a/
KernelLand/Kernel/arch/x86/kpanic.c
+++ b/
KernelLand/Kernel/arch/x86/kpanic.c
@@
-77,18
+77,27
@@
const struct {
*/
void KernelPanic_SetMode(void)
{
*/
void KernelPanic_SetMode(void)
{
- int i;
-
__asm__ __volatile__ ("cli"); // Stop the processor!
// This function is called by Panic(), but MM_PageFault and the
// CPU exception handers also call it, so let's not clear the screen
// twice
if( giKP_Pos ) return ;
__asm__ __volatile__ ("cli"); // Stop the processor!
// This function is called by Panic(), but MM_PageFault and the
// CPU exception handers also call it, so let's not clear the screen
// twice
if( giKP_Pos ) return ;
+
+ #if USE_MP
+ // Send halt to all processors
+ for( int i = 0; i < giNumCPUs; i ++ )
+ {
+ if(i == GetCPUNum()) continue ;
+ FB[i] = BGC|('A'+i);
+ MP_SendIPIVector(i, 0xED);
+ }
+ #endif
+ #if ENABLE_KPANIC_MODE
// Restore VGA 0xB8000 text mode
#if 0
// Restore VGA 0xB8000 text mode
#if 0
- for( i = 0; i < NUM_REGVALUES; i++ )
+ for( i
nt i
= 0; i < NUM_REGVALUES; i++ )
{
// Reset Flip-Flop
if( caRegValues[i].IdxPort == 0x3C0 ) inb(0x3DA);
{
// Reset Flip-Flop
if( caRegValues[i].IdxPort == 0x3C0 ) inb(0x3DA);
@@
-101,19
+110,9
@@
void KernelPanic_SetMode(void)
inb(0x3DA);
outb(0x3C0, 0x20);
#endif
inb(0x3DA);
outb(0x3C0, 0x20);
#endif
-
- #if USE_MP
- // Send halt to all processors
- for( i = 0; i < giNumCPUs; i ++ )
- {
- if(i == GetCPUNum()) continue ;
- FB[i] = BGC|('A'+i);
- MP_SendIPIVector(i, 0xED);
- }
- #endif
// Clear Screen
// Clear Screen
- for( i = 0; i < 80*25; i++ )
+ for( i
nt i
= 0; i < 80*25; i++ )
{
FB[i] = BGC;
}
{
FB[i] = BGC;
}
@@
-124,10
+123,12
@@
void KernelPanic_SetMode(void)
__asm__ __volatile__ ("mov %%ebp, %0" : "=r" (ebp));
Error_Backtrace(eip, ebp);
}
__asm__ __volatile__ ("mov %%ebp, %0" : "=r" (ebp));
Error_Backtrace(eip, ebp);
}
+ #endif
}
void KernelPanic_PutChar(char Ch)
{
}
void KernelPanic_PutChar(char Ch)
{
+ #if ENABLE_KPANIC_MODE
if( giKP_Pos > 80*25 ) return ;
switch(Ch)
{
if( giKP_Pos > 80*25 ) return ;
switch(Ch)
{
@@
-159,4
+160,5
@@
void KernelPanic_PutChar(char Ch)
VT_int_PutString(gpVT_CurTerm, s);
}
#endif
VT_int_PutString(gpVT_CurTerm, s);
}
#endif
+ #endif // ENABLE_KPANIC_MODE
}
}
UCC
git Repository :: git.ucc.asn.au