|
@@ -23,7 +23,6 @@ bits 32
|
|
|
|
|
|
global init_cpu_gdt
|
|
|
global vm86_start
|
|
|
-global exception_return
|
|
|
global save_kernel_handler
|
|
|
global syscall_function
|
|
|
global reschedule
|
|
@@ -85,21 +84,6 @@ vm86_start: pushfd
|
|
|
popad
|
|
|
iret
|
|
|
|
|
|
-;********************************************************************************
|
|
|
-; void exception_return(register_t regs)
|
|
|
-;********************************************************************************
|
|
|
-exception_return: lea esi, [esp + 0x04]
|
|
|
- mov edi, dword [esp + 0x14]
|
|
|
- sub edi, 13 * 4
|
|
|
- mov esp, edi
|
|
|
- mov ecx, 13
|
|
|
- cld
|
|
|
- rep movsd
|
|
|
- add esp, 4
|
|
|
- popad
|
|
|
- add esp, 4
|
|
|
- iret
|
|
|
-
|
|
|
;********************************************************************************
|
|
|
; void save_kernel_handler(exception_handler_t *old_handler)
|
|
|
;********************************************************************************
|
|
@@ -151,7 +135,7 @@ reschedule: push cs
|
|
|
cli
|
|
|
pop eax
|
|
|
mov dword [esp + 44], eax
|
|
|
- add dword [esp + 12], 16
|
|
|
+ add dword [esp + 12], 20
|
|
|
push ds
|
|
|
push esp
|
|
|
call scheduler
|