1,6 → 1,6 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; |
;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License. ;; |
;; ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
288,27 → 288,6 |
test eax, eax |
jnz .error_ESP |
DEBUGF 1, " [ESP+32]: %x\n",[ebx] |
;for input instruction |
mov ebx, [reg_eip+4] |
call .check_ESP |
test eax, eax |
jnz .error_ESP |
DEBUGF 1, "K : [EIP]: %x",[ebx] |
add ebx, 4 |
call .check_ESP |
test eax, eax |
jnz .error_ESP |
DEBUGF 1, " [EIP+4]: %x",[ebx] |
add ebx, 4 |
call .check_ESP |
test eax, eax |
jnz .error_ESP |
DEBUGF 1, " [EIP+8]: %x\n",[ebx] |
add ebx, 4 |
call .check_ESP |
test eax, eax |
jnz .error_ESP |
DEBUGF 1, "K : [EIP+12]: %x\n",[ebx] |
pop edx ecx ebx eax |
ret |
.error_ESP: |
449,19 → 428,19 |
; if the process is in V86 mode... |
mov eax, [.slot] |
shl eax, BSF sizeof.APPDATA |
mov esi, [eax+SLOT_BASE+APPDATA.pl0_stack] |
mov esi, [SLOT_BASE + eax + APPDATA.pl0_stack] |
add esi, RING0_STACK_SIZE |
cmp [eax+SLOT_BASE+APPDATA.saved_esp0], esi |
cmp [SLOT_BASE + eax + APPDATA.saved_esp0], esi |
jz .nov86 |
; ...it has page directory for V86 mode |
mov esi, [eax+SLOT_BASE+APPDATA.saved_esp0] |
mov esi, [SLOT_BASE + eax + APPDATA.saved_esp0] |
mov ecx, [esi+4] |
mov [eax+SLOT_BASE+APPDATA.process], ecx |
mov [SLOT_BASE + eax + APPDATA.process], ecx |
; ...and I/O permission map for V86 mode |
mov ecx, [esi+12] |
mov [eax+SLOT_BASE+APPDATA.io_map], ecx |
mov [SLOT_BASE + eax + APPDATA.io_map], ecx |
mov ecx, [esi+8] |
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx |
mov [SLOT_BASE + eax + APPDATA.io_map+4], ecx |
.nov86: |
; destroy per-thread kernel objects |
mov esi, [.slot] |
486,7 → 465,7 |
jne @F |
|
mov [fpu_owner], 2 |
mov eax, [sizeof.APPDATA*2+SLOT_BASE+APPDATA.fpu_state] |
mov eax, [SLOT_BASE + sizeof.APPDATA*2 + APPDATA.fpu_state] |
clts |
bt [cpu_caps], CAPS_SSE |
jnc .no_SSE |
674,7 → 653,7 |
|
push esi ; remove hd1 & cd & flp reservation |
shl esi, BSF sizeof.APPDATA |
mov esi, [esi + SLOT_BASE + APPDATA.tid] |
mov esi, [SLOT_BASE + esi + APPDATA.tid] |
cmp [cd_status], esi |
jnz @f |
call free_cd_channel |
690,7 → 669,7 |
pusha ; remove all port reservations |
mov edx, esi |
shl edx, BSF sizeof.APPDATA |
mov edx, [edx + SLOT_BASE + APPDATA.tid] |
mov edx, [SLOT_BASE + edx + APPDATA.tid] |
|
rmpr0: |
|
733,7 → 712,7 |
popa |
mov edi, esi ; do not run this process slot |
shl edi, BSF sizeof.APPDATA |
mov [edi + SLOT_BASE + APPDATA.state], TSTATE_FREE |
mov [SLOT_BASE + edi + APPDATA.state], TSTATE_FREE |
; debugger test - terminate all debuggees |
mov eax, 2 |
mov ecx, SLOT_BASE+2*sizeof.APPDATA + APPDATA.debugger_slot |