Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9708 → Rev 9709

/kernel/trunk/kernel.asm
630,7 → 630,6
mov dword [current_slot_idx], 2
mov [thread_count], 2
mov dword [current_slot], SLOT_BASE + sizeof.APPDATA*2
mov dword [TASK_BASE], TASK_TABLE + sizeof.TASKDATA*2
 
; Move other CPUs to deep sleep, if it is useful
uglobal
1932,8 → 1931,6
 
mov eax, [current_slot]
mov [eax+APPDATA.state], TSTATE_ZOMBIE
mov eax, [TASK_BASE] ;
mov [eax+TASKDATA.state], TSTATE_ZOMBIE ; delete
call wakeup_osloop
 
.waitterm: ; wait here for termination
1953,7 → 1950,7
 
add eax, [_display.win_map]
movzx edx, byte [ebx+eax]
shl edx, 8
shl edx, BSF sizeof.APPDATA
mov esi, [edx+SLOT_BASE+APPDATA.cursor]
 
cmp esi, [current_cursor]
2043,18 → 2040,18
cmp ecx, edx
ja noprocessterminate
mov eax, [thread_count]
shl ecx, BSF sizeof.TASKDATA
mov edx, [ecx*8 + SLOT_BASE + APPDATA.tid]
add ecx, TASK_TABLE+TASKDATA.state
cmp byte [ecx], TSTATE_FREE
shl ecx, BSF sizeof.APPDATA
add ecx, SLOT_BASE
mov edx, [ecx + APPDATA.tid]
cmp byte [ecx + APPDATA.state], TSTATE_FREE
jz noprocessterminate
push eax
lea eax, [(ecx-(TASK_TABLE and 1FFFFFFFh)-TASKDATA.state)*8+SLOT_BASE]
mov eax, ecx
call is_kernel_thread
pop eax
jz noprocessterminate
push ecx edx
lea edx, [(ecx-(TASK_TABLE and 1FFFFFFFh)-TASKDATA.state)*8+SLOT_BASE]
mov edx, ecx
call request_terminate
pop edx ecx
test eax, eax
2062,7 → 2059,7
;--------------------------------------
; terminate all network sockets it used
pusha
mov eax, edx
mov eax, edx ;TODO: check function
call socket_process_end
popa
;--------------------------------------
2082,7 → 2079,7
.restore_end:
;--------------------------------------
;call MEM_Heap_Lock ;guarantee that process isn't working with heap
mov [ecx], byte 3; clear possible i40's
mov [ecx + APPDATA.state], TSTATE_ZOMBIE; clear possible i40's
call wakeup_osloop
;call MEM_Heap_UnLock
 
2189,13 → 2186,10
 
mov eax, edx
shl edx, 5
;shl edx, 8
 
;cmp [edx + SLOT_BASE + APPDATA.state], TSTATE_FREE
cmp [edx + TASK_TABLE + TASKDATA.state], TSTATE_FREE
cmp [edx*8 + SLOT_BASE + APPDATA.state], TSTATE_FREE
je .fail
 
;shr edx, 3
cmp ecx, 1
jnz .set_zmod
 
2665,7 → 2659,6
 
; Process state (+50)
movzx eax, byte [ecx*8 + SLOT_BASE + APPDATA.state]
movzx eax, byte [ecx+TASK_TABLE+TASKDATA.state]
stosd
 
; Window client area box
2745,8 → 2738,9
cmp ebx, 2
jnz srl1
 
mov edx, [TASK_BASE] ; return whole screen draw area for this app
add edx, draw_data - TASK_TABLE
mov edx, [current_slot_idx] ; return whole screen draw area for this app
shl edx, 5
add edx, draw_data
mov [edx + RECT.left], 0
mov [edx + RECT.top], 0
mov eax, [_display.width]
2909,7 → 2903,7
mov [mouse_active], 0
 
xor edi, edi
mov ebx, TASK_TABLE
mov ebx, window_data
 
mov ecx, [thread_count]
movzx eax, word [WIN_POS + ecx*2] ; active window
2922,7 → 2916,7
align 4
.set_mouse_event:
add edi, sizeof.APPDATA
add ebx, sizeof.TASKDATA
add ebx, sizeof.WDATA
test [edi + SLOT_BASE + APPDATA.event_mask], 0x80000000
jz .pos_filter
 
2934,17 → 2928,17
test [edi + SLOT_BASE + APPDATA.event_mask], 0x40000000
jz .set
 
mov esi, [ebx-twdw+WDATA.box.left]
mov esi, [ebx + WDATA.box.left]
cmp eax, esi
jb .skip
add esi, [ebx-twdw+WDATA.box.width]
add esi, [ebx + WDATA.box.width]
cmp eax, esi
ja .skip
 
mov esi, [ebx-twdw+WDATA.box.top]
mov esi, [ebx + WDATA.box.top]
cmp edx, esi
jb .skip
add esi, [ebx-twdw+WDATA.box.height]
add esi, [ebx + WDATA.box.height]
cmp edx, esi
ja .skip
;--------------------------------------
3043,15 → 3037,14
jne noshutdown
 
lea ecx, [edx-1]
mov edx, OS_BASE+0x3040
mov edx, SLOT_BASE + sizeof.APPDATA ;OS_BASE+0x3040
jecxz no_mark_system_shutdown
;--------------------------------------
align 4
markz:
push ecx edx
cmp [edx+TASKDATA.state], TSTATE_FREE
cmp [edx + APPDATA.state], TSTATE_FREE
jz .nokill
lea edx, [(edx-(TASK_TABLE and 1FFFFFFFh))*8+SLOT_BASE]
cmp [edx+APPDATA.process], sys_proc
jz .nokill
call request_terminate
3063,10 → 3056,9
pop edx ecx
test eax, eax
jz @f
mov [edx+TASKDATA.state], TSTATE_ZOMBIE
;mov [edx+APPDATA.state], TSTATE_ZOMBIE
mov [edx + APPDATA.state], TSTATE_ZOMBIE
@@:
add edx, 0x20
add edx, sizeof.APPDATA
loop markz
call wakeup_osloop
;--------------------------------------
3079,7 → 3071,7
align 4
noshutdown:
mov eax, [thread_count] ; termination
mov ebx, TASK_DATA+TASKDATA.state
mov ebx, SLOT_BASE + sizeof.APPDATA + APPDATA.state
mov esi, 1
;--------------------------------------
align 4
3107,7 → 3099,7
je system_shutdown
 
.noterminate:
add ebx, 0x20
add ebx, sizeof.APPDATA
inc esi
dec eax
jnz newct