1ce8ae70d5dd30839bd270d5ae07bdc168a9e1c6
[tpg/acess2.git] / Kernel / arch / x86_64 / kernelpanic.c
1 /*
2  * Acess2 x86_64 port
3  * - Kernel Panic output
4  */
5 #include <acess.h>
6
7 // === PROTOTYPES ===
8 void    KernelPanic_SetMode(void);
9 void    KernelPanic_PutChar(char ch);
10
11 // === GLOBALS ===
12 Uint16  *gpKernelPanic_Buffer = (void*)( KERNEL_BASE|0xB8000 );
13  int    giKernelPanic_CurPos = 0;
14
15 // === CODE ===
16 void KernelPanic_SetMode(void)
17 {
18         giKernelPanic_CurPos = 0;
19 }
20
21 void KernelPanic_PutChar(char ch)
22 {
23         switch(ch)
24         {
25         case '\n':
26                 giKernelPanic_CurPos += 80;
27         case '\r':
28                 giKernelPanic_CurPos /= 80;
29                 giKernelPanic_CurPos *= 80;
30                 break;
31         
32         default:
33                 if(' ' <= ch && ch <= 0x7F)
34                         gpKernelPanic_Buffer[giKernelPanic_CurPos] = 0x4F00|ch;
35                 giKernelPanic_CurPos ++;
36                 break;
37         }
38 }

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