Subversion Repositories Kolibri OS

Compare Revisions

Ignore whitespace Rev 114 → Rev 115

/kernel/trunk/core/sys32.inc
228,7 → 228,7
cli
mov eax, [0x3000]
shl eax, 8
mov eax, [0x80000+eax+0xAC]
mov eax, [0x80000+eax+APPDATA.debugger_slot]
test eax, eax
jnz .debug
sti
239,7 → 239,7
call show_error_parameters
mov edx, [0x3010]
mov [edx + 0xA], byte 4
mov [edx + TASKDATA.state], byte 4
jmp change_task
 
250,7 → 250,7
movzx ecx, bl
push ecx
mov ecx, [0x3010]
push dword [ecx+4] ; PID of current process
push dword [ecx+TASKDATA.pid] ; PID of current process
push 12
pop ecx
push 1 ; 1=exception
259,7 → 259,7
pop ecx
pop ecx
mov edx, [0x3010]
mov byte [edx+0xA], 1 ; suspended
mov byte [edx+TASKDATA.state], 1 ; suspended
call change_task
restore_ring3_context
iretd
278,7 → 278,7
mov eax, [prev_user_of_fpu]
shl eax, 8
add eax, 0x80000 + 0x10
add eax, 0x80000 + APPDATA.fpu_save_area
fsave [eax]
mov eax, [0x3000]
285,11 → 285,11
mov [prev_user_of_fpu], eax
shl eax, 8
add eax, 0x80000
cmp [eax + 0x7f], byte 0
cmp [eax + APPDATA.is_fpu_saved], 0
je @f
frstor [eax+0x10]
frstor [eax+APPDATA.fpu_save_area]
@@:
mov [eax + 0x7f], byte 1
mov [eax + APPDATA.is_fpu_saved], 1
restore_ring3_context
iret
338,7 → 338,7
mov [write_error_to],process_pid+43
mov eax,[0x3000]
shl eax, 5
mov eax,[0x3000+4+eax]
mov eax,[0x3000+TASKDATA.pid+eax]
call writehex
mov [write_error_to],process_error+43
556,7 → 556,7
 
mov eax,[0x3000]
shl eax, 5
add eax,0x3000+4
add eax,0x3000+TASKDATA.pid
mov eax,[eax]
 
mov [application_table_status],eax
571,7 → 571,7
 
mov eax,[0x3000]
shl eax, 5
add eax,0x3000+4
add eax,0x3000+TASKDATA.pid
mov eax,[eax]
 
cmp eax,[application_table_status]
676,17 → 676,17
app_esp dd 0x0
app_i_param dd 0x0
app_i_icon dd 0x0
app_mem_pos dd 0x0
;app_mem_pos dd 0x0
appl_path dd 0x0
appl_path_size dd 0x0
endg
 
iglobal
hd_app_string db 'HDAPP '
process_loading db 'K : Process - loading ',13,10,0
process_running db 'K : Process - done',13,10,0
first_gdt_search dd 0x2
endg
;iglobal
;hd_app_string db 'HDAPP '
;process_loading db 'K : Process - loading ',13,10,0
;process_running db 'K : Process - done',13,10,0
;first_gdt_search dd 0x2
;endg
 
 
sys_threads:
812,10 → 812,10
mov [esi+WDATA.box.top],eax
mov [esi+WDATA.box.height], 5
xor eax, eax
mov [esi+16],eax
mov [esi+20],eax
mov [esi+24],eax
mov [esi+28],eax
mov [esi+WDATA.cl_workarea],eax
mov [esi+WDATA.cl_titlebar],eax
mov [esi+WDATA.cl_frames],eax
mov dword [esi+WDATA.reserved],eax ; clear all flags: wstate, redraw, wdrawn
lea edi, [esi-window_data+draw_data]
mov ecx,32/4
rep stosd
825,12 → 825,12
pushad
mov edi, esi
shl edi, 5
mov eax, [0x80000+edi*8+0xAC]
mov eax, [0x80000+edi*8+APPDATA.debugger_slot]
test eax, eax
jz .nodebug
push 8
pop ecx
push dword [0x3000+edi+0x4] ; PID
push dword [0x3000+edi+TASKDATA.pid] ; PID
push 2
call debugger_notify
pop ecx
850,7 → 850,7
pusha ; name to spaces
mov edi,esi
shl edi,8
add edi,0x80000
add edi,0x80000+APPDATA.app_name
mov ecx,11
mov eax,' '
rep stosb
869,7 → 869,7
lea esi, [0xc400+eax*2]
movzx edi, word [esi] ; edi = process
shl edi, 5
cmp [0x3000 + edi + 0xa], byte 9 ; skip dead slots
cmp [0x3000 + edi + TASKDATA.state], byte 9 ; skip dead slots
je .check_next_window
add edi, window_data
call waredraw
896,8 → 896,8
 
pusha ; remove all irq reservations
mov eax,esi
shl eax, 5 ;imul edx,0x20
mov eax,[edx+0x3000+4]
shl eax, 5
mov eax,[edx+0x3000+TASKDATA.pid]
mov edi,irq_owner
mov ecx,16
newirqfree:
911,9 → 911,9
 
pusha ; remove all port reservations
mov edx,esi
shl edx, 5 ;imul edx,0x20
shl edx, 5
add edx,0x3000
mov edx,[edx+4]
mov edx,[edx+TASKDATA.pid]
 
rmpr0:
 
956,10 → 956,10
popa
mov edi,esi ; do not run this process slot
shl edi, 5
mov [edi+0x300A],byte 9
mov [edi+0x3000 + TASKDATA.state],byte 9
; debugger test - terminate all debuggees
mov eax, 2
mov ecx, 0x80000+2*0x100+0xAC
mov ecx, 0x80000+2*0x100+APPDATA.debugger_slot
.xd0:
cmp eax, [0x3004]
ja .xd1