Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9715 → Rev 9714

/kernel/trunk/core/taskman.inc
1,6 → 1,6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2022. All rights reserved. ;;
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
127,7 → 127,7
jz .err_0
 
mov [slot], eax
shl eax, BSF sizeof.APPDATA
shl eax, 8
lea edi, [SLOT_BASE + eax]
mov [slot_base], edi
; clean extended information about process
488,7 → 488,10
push ecx
mov ebx, [thread_count]
shl ebx, BSF sizeof.APPDATA ; multiply by size
; add 2*32 cause:
; [TASK_TABLE; TASK_TABLE + 32) isnt a task actually
; skip first process in the task table
;mov ecx, 2*32 ;sizeof.TASKDATA
mov ecx, sizeof.APPDATA
 
.loop:
496,7 → 499,7
;ebx = maximum permitted offset
cmp [SLOT_BASE + ecx + APPDATA.state], TSTATE_FREE
jz .endloop ;skip empty slots
cmp [SLOT_BASE + ecx + APPDATA.tid], eax
cmp [ecx + SLOT_BASE + APPDATA.tid], eax;check PID
jz .pid_found
.endloop:
add ecx, sizeof.APPDATA
695,7 → 698,7
mov ebx, esi ;ebx=esi - pointer to extended information about current thread
 
mov edi, eax
shl edi, BSF sizeof.APPDATA
shl edi, 8
add edi, SLOT_BASE
mov edx, edi ;edx=edi - pointer to extended infomation about new thread
mov ecx, sizeof.APPDATA/4
924,16 → 927,16
mov ebx, eax
 
shl eax, BSF sizeof.APPDATA
mov [SLOT_BASE + eax + APPDATA.fpu_state], edi
mov [SLOT_BASE + eax + APPDATA.exc_handler], 0
mov [SLOT_BASE + eax + APPDATA.except_mask], 0
mov [SLOT_BASE + eax + APPDATA.terminate_protection], 80000001h
mov [eax+SLOT_BASE+APPDATA.fpu_state], edi
mov [eax+SLOT_BASE+APPDATA.exc_handler], 0
mov [eax+SLOT_BASE+APPDATA.except_mask], 0
mov [eax+SLOT_BASE+APPDATA.terminate_protection], 80000001h
 
;set default io permission map
mov ecx, [SLOT_BASE + sizeof.APPDATA + APPDATA.io_map]
mov [SLOT_BASE + eax + APPDATA.io_map], ecx
mov [eax+SLOT_BASE+APPDATA.io_map], ecx
mov ecx, [SLOT_BASE + sizeof.APPDATA + APPDATA.io_map + 4]
mov [SLOT_BASE + eax + APPDATA.io_map + 4], ecx
mov [eax+SLOT_BASE+APPDATA.io_map+4], ecx
 
mov esi, fpu_data
mov ecx, [xsave_area_size]
944,20 → 947,20
cmp [thread_count], ebx
adc [thread_count], 0 ; update number of processes
shl ebx, BSF sizeof.APPDATA
lea edx, [SLOT_BASE + ebx + APP_EV_OFFSET]
mov [SLOT_BASE + ebx + APPDATA.fd_ev], edx
mov [SLOT_BASE + ebx + APPDATA.bk_ev], edx
lea edx, [ebx+SLOT_BASE+APP_EV_OFFSET]
mov [SLOT_BASE+APPDATA.fd_ev+ebx], edx
mov [SLOT_BASE+APPDATA.bk_ev+ebx], edx
 
add edx, APP_OBJ_OFFSET - APP_EV_OFFSET
mov [SLOT_BASE + ebx + APPDATA.fd_obj], edx
mov [SLOT_BASE + ebx + APPDATA.bk_obj], edx
mov [SLOT_BASE+APPDATA.fd_obj+ebx], edx
mov [SLOT_BASE+APPDATA.bk_obj+ebx], edx
 
mov ecx, [def_cursor]
mov [SLOT_BASE + ebx + APPDATA.cursor], ecx
mov [SLOT_BASE+APPDATA.cursor+ebx], ecx
mov eax, [pl0_stack]
mov [SLOT_BASE + ebx + APPDATA.pl0_stack], eax
mov [SLOT_BASE+APPDATA.pl0_stack+ebx], eax
add eax, RING0_STACK_SIZE
mov [SLOT_BASE + ebx + APPDATA.saved_esp0], eax
mov [SLOT_BASE+APPDATA.saved_esp0+ebx], eax
 
push ebx
stdcall kernel_alloc, maxPathLength
966,23 → 969,23
mov esi, [esi + APPDATA.cur_dir]
mov ecx, maxPathLength/4
mov edi, eax
mov [SLOT_BASE + ebx + APPDATA.cur_dir], eax
mov [ebx+SLOT_BASE+APPDATA.cur_dir], eax
rep movsd
 
mov [SLOT_BASE + ebx + APPDATA.event_mask], dword 1+2+4;set default event flags (see 40 function)
mov [ebx+SLOT_BASE+APPDATA.event_mask], dword 1+2+4;set default event flags (see 40 function)
inc dword [process_number]
mov eax, [process_number]
mov [SLOT_BASE + ebx + APPDATA.tid], eax ;set TID
mov [ebx+SLOT_BASE+APPDATA.tid], eax ;set TID
 
mov eax, [slot]
mov [SLOT_BASE + ebx + APPDATA.wnd_number], al
mov [ebx+SLOT_BASE+APPDATA.wnd_number], al
mov ebx, eax
shl ebx, BSF sizeof.WDATA
lea ecx, [draw_data + ebx];ecx - pointer to draw data
 
; set window state to 'normal' (non-minimized/maximized/rolled-up) state
mov [window_data + ebx + WDATA.fl_wstate], WSTATE_NORMAL
mov [window_data + ebx + WDATA.fl_redraw], 1
mov [ebx+window_data+WDATA.fl_wstate], WSTATE_NORMAL
mov [ebx+window_data+WDATA.fl_redraw], 1
 
;set draw data to full screen
xor eax, eax
1028,7 → 1031,7
lea edx, [ebx + REG_RET]
mov ebx, [slot]
shl ebx, BSF sizeof.APPDATA
mov [SLOT_BASE + ebx + APPDATA.saved_esp], edx
mov [ebx+SLOT_BASE+APPDATA.saved_esp], edx
 
xor edx, edx; process state - running
; set if debuggee