mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-08-25 21:15:00 +00:00
Tasking is now working under 32-bit
This commit is contained in:
@@ -1082,10 +1082,10 @@ namespace CrashHandler
|
||||
asmv("mov %%ds, %0"
|
||||
: "=r"(ds));
|
||||
|
||||
EHPrint("\eFF2525FS=%#x GS=%#x SS=%#x CS=%#x DS=%#x\n",
|
||||
EHPrint("\eFF2525FS=%#x GS=%#x CS=%#x DS=%#x\n",
|
||||
CPU::x32::rdmsr(CPU::x32::MSR_FS_BASE),
|
||||
CPU::x32::rdmsr(CPU::x32::MSR_GS_BASE),
|
||||
Frame->ss, Frame->cs, ds);
|
||||
Frame->cs, ds);
|
||||
|
||||
EHPrint("EAX=%#x EBX=%#x ECX=%#x EDX=%#x\n",
|
||||
Frame->eax, Frame->ebx, Frame->ecx, Frame->edx);
|
||||
@@ -1300,9 +1300,9 @@ namespace CrashHandler
|
||||
crashdata.efer.SVME ? "True " : "False", crashdata.efer.LMSLE ? "True " : "False", crashdata.efer.FFXSR ? "True " : "False", crashdata.efer.TCE ? "True " : "False",
|
||||
crashdata.efer.Reserved0, crashdata.efer.Reserved1, crashdata.efer.Reserved2);
|
||||
#elif defined(a32)
|
||||
error("FS=%#x GS=%#x SS=%#x CS=%#x DS=%#x",
|
||||
error("FS=%#x GS=%#x CS=%#x DS=%#x",
|
||||
CPU::x32::rdmsr(CPU::x32::MSR_FS_BASE), CPU::x32::rdmsr(CPU::x32::MSR_GS_BASE),
|
||||
Frame->ss, Frame->cs, ds);
|
||||
Frame->cs, ds);
|
||||
|
||||
error("EAX=%#x EBX=%#x ECX=%#x EDX=%#x",
|
||||
Frame->eax, Frame->ebx, Frame->ecx, Frame->edx);
|
||||
|
@@ -79,9 +79,9 @@ namespace CrashHandler
|
||||
EHPrint("RSI=%#lx RDI=%#lx RBP=%#lx RSP=%#lx\n", data.Frame->rsi, data.Frame->rdi, data.Frame->rbp, data.Frame->rsp);
|
||||
EHPrint("RIP=%#lx RFL=%#lx INT=%#lx ERR=%#lx EFER=%#lx\n", data.Frame->rip, data.Frame->rflags.raw, data.Frame->InterruptNumber, data.Frame->ErrorCode, data.efer.raw);
|
||||
#elif defined(a32)
|
||||
EHPrint("\e7981FCFS=%#x GS=%#x SS=%#x CS=%#x DS=%#x\n",
|
||||
EHPrint("\e7981FCFS=%#x GS=%#x CS=%#x DS=%#x\n",
|
||||
CPU::x32::rdmsr(CPU::x32::MSR_FS_BASE), CPU::x32::rdmsr(CPU::x32::MSR_GS_BASE),
|
||||
data.Frame->ss, data.Frame->cs, ds);
|
||||
data.Frame->cs, ds);
|
||||
EHPrint("EAX=%#x EBX=%#x ECX=%#x EDX=%#x\n", data.Frame->eax, data.Frame->ebx, data.Frame->ecx, data.Frame->edx);
|
||||
EHPrint("ESI=%#x EDI=%#x EBP=%#x ESP=%#x\n", data.Frame->esi, data.Frame->edi, data.Frame->ebp, data.Frame->esp);
|
||||
EHPrint("EIP=%#x EFL=%#x INT=%#x ERR=%#x\n", data.Frame->eip, data.Frame->eflags.raw, data.Frame->InterruptNumber, data.Frame->ErrorCode);
|
||||
|
@@ -88,9 +88,9 @@ SafeFunction void UserModeExceptionHandler(CHArchTrapFrame *Frame)
|
||||
error("RSI=%#lx RDI=%#lx RBP=%#lx RSP=%#lx", Frame->rsi, Frame->rdi, Frame->rbp, Frame->rsp);
|
||||
error("RIP=%#lx RFL=%#lx INT=%#lx ERR=%#lx EFER=%#lx", Frame->rip, Frame->rflags.raw, Frame->InterruptNumber, Frame->ErrorCode, efer.raw);
|
||||
#elif defined(a32)
|
||||
error("FS=%#x GS=%#x SS=%#x CS=%#x DS=%#x",
|
||||
error("FS=%#x GS=%#x CS=%#x DS=%#x",
|
||||
CPU::x32::rdmsr(CPU::x32::MSR_FS_BASE), CPU::x32::rdmsr(CPU::x32::MSR_GS_BASE),
|
||||
Frame->ss, Frame->cs, ds);
|
||||
Frame->cs, ds);
|
||||
error("EAX=%#x EBX=%#x ECX=%#x EDX=%#x", Frame->eax, Frame->ebx, Frame->ecx, Frame->edx);
|
||||
error("ESI=%#x EDI=%#x EBP=%#x ESP=%#x", Frame->esi, Frame->edi, Frame->ebp, Frame->esp);
|
||||
error("EIP=%#x EFL=%#x INT=%#x ERR=%#x", Frame->eip, Frame->eflags.raw, Frame->InterruptNumber, Frame->ErrorCode);
|
||||
|
@@ -305,12 +305,13 @@ namespace Driver
|
||||
regs.rsp = Frame->rsp;
|
||||
regs.ss = Frame->ss;
|
||||
#elif defined(a32)
|
||||
regs.ebp = Frame->ebp;
|
||||
regs.edi = Frame->edi;
|
||||
regs.esi = Frame->esi;
|
||||
regs.ebp = Frame->ebp;
|
||||
regs.esp = Frame->esp;
|
||||
regs.ebx = Frame->ebx;
|
||||
regs.edx = Frame->edx;
|
||||
regs.ecx = Frame->ecx;
|
||||
regs.ebx = Frame->ebx;
|
||||
regs.eax = Frame->eax;
|
||||
|
||||
regs.InterruptNumber = Frame->InterruptNumber;
|
||||
@@ -318,8 +319,8 @@ namespace Driver
|
||||
regs.eip = Frame->eip;
|
||||
regs.cs = Frame->cs;
|
||||
regs.eflags = Frame->eflags.raw;
|
||||
regs.esp = Frame->esp;
|
||||
regs.ss = Frame->ss;
|
||||
regs.r3_esp = Frame->r3_esp;
|
||||
regs.r3_ss = Frame->r3_ss;
|
||||
#elif defined(aa64)
|
||||
#endif
|
||||
((int (*)(void *))(Handle.InterruptCallback))(®s);
|
||||
|
Reference in New Issue
Block a user