Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8869 → Rev 8874

/kernel/trunk/const.inc
479,6 → 479,8
height dd ?
ends
 
; Fields, marked as R now not used, but will be used soon,
; when legacy TASKDATA structure will be deleted
struct APPDATA
app_name rb 11
rb 5
504,17 → 506,17
wait_test dd ? ;+96 +++
wait_param dd ? ;+100 +++
tls_base dd ? ;+104
event_mask dd ? ;+108 ; stores event types allowed for task
tid dd ? ;+112 ; thread id
event_mask dd ? ;+108 ; R stores event types allowed for task
tid dd ? ;+112 ; R thread id
draw_bgr_x dd ? ;+116
draw_bgr_y dd ? ;+120
state db ? ;+124 ; thread state
state db ? ;+124 ; R thread state
db ? ;+125
dw ? ;+126
wnd_shape dd ? ;+128
wnd_shape_scale dd ? ;+132
mem_start dd ? ;+136 ;;
counter_sum dd ? ;+140 ;;
mem_start dd ? ;+136 ; R
counter_sum dd ? ;+140 ; R
saved_box BOX ;+144
ipc_start dd ? ;+160
ipc_size dd ? ;+164
531,8 → 533,8
wnd_clientbox BOX ;+216
priority dd ? ;+232
in_schedule LHEAD ;+236
counter_add dd ? ;+244 ;;
cpu_usage dd ? ;+248 ;;
counter_add dd ? ;+244 ; R
cpu_usage dd ? ;+248 ; R
dd ? ;+252
ends
 
557,6 → 559,7
cpu_usage dd ? ;+28
ends
 
; Thread states:
TSTATE_RUNNING = 0
TSTATE_RUN_SUSPENDED = 1
TSTATE_WAIT_SUSPENDED = 2
565,7 → 568,7
TSTATE_WAITING = 5
TSTATE_FREE = 9
 
; constants definition
; Window constants:
WSTATE_NORMAL = 00000000b
WSTATE_MAXIMIZED = 00000001b
WSTATE_MINIMIZED = 00000010b
581,7 → 584,8
ZPOS_ALWAYS_BACK = -1
ZPOS_NORMAL = 0
ZPOS_ALWAYS_TOP = 1 ;ZPOS_ALWAYS_TOP is always last and has max number!
; structures definition
 
; Window structure:
struct WDATA
box BOX
cl_workarea dd ?
/kernel/trunk/core/memory.inc
1008,7 → 1008,7
 
mov dword [edi+4], ebx
mov eax, [TASK_BASE]
mov eax, [eax+0x04] ;eax - our PID
mov eax, [eax+TASKDATA.pid] ;eax - our PID
add edi, edx
mov [edi], eax
mov ecx, [msg_size]
/kernel/trunk/core/sched.inc
309,7 → 309,7
xor eax, eax
@@:
mov [ebx+APPDATA.wait_param], eax ; retval for wait
mov [edi+TASKDATA.state], 0
mov [edi+TASKDATA.state], TSTATE_RUNNING
.task_found:
mov [scheduler_current+ecx*4], ebx
; If we have selected a thread with higher priority
/kernel/trunk/core/sync.inc
48,7 → 48,7
dec eax
jz @F
 
mov [edx+TASKDATA.state], 1
mov [edx+TASKDATA.state], TSTATE_RUN_SUSPENDED
call change_task
jmp .forever
@@:
80,7 → 80,7
je @F
 
mov eax, [eax+MUTEX_WAITER.task]
mov [eax+TASKDATA.state], 0
mov [eax+TASKDATA.state], TSTATE_RUNNING
@@:
popfd
ret
114,7 → 114,7
mov eax, [TASK_BASE]
mov [esp+MUTEX_WAITER.task], eax
mov [esp+MUTEX_WAITER.type], RWSEM_WAITING_FOR_READ
mov [eax+TASKDATA.state], 1
mov [eax+TASKDATA.state], TSTATE_RUN_SUSPENDED
 
list_add_tail esp, ecx ;esp= new waiter, ecx= list head
 
141,7 → 141,7
mov edx, [TASK_BASE]
mov [esp+MUTEX_WAITER.task], edx
mov [esp+MUTEX_WAITER.type], RWSEM_WAITING_FOR_WRITE
mov [edx+TASKDATA.state], 1
mov [edx+TASKDATA.state], TSTATE_RUN_SUSPENDED
 
list_add_tail esp, ecx ;esp= new waiter, ecx= list head
 
152,7 → 152,7
test eax, [ecx+RWSEM.count]
jz @F
 
mov [edx+TASKDATA.state], 1
mov [edx+TASKDATA.state], TSTATE_RUN_SUSPENDED
call change_task
jmp .forever
@@:
178,7 → 178,7
je @F
 
mov eax, [eax+MUTEX_WAITER.task]
mov [eax+TASKDATA.state], 0
mov [eax+TASKDATA.state], TSTATE_RUNNING
@@:
popfd
ret
202,7 → 202,7
jnz .wake
 
mov eax, [eax+MUTEX_WAITER.task]
mov [eax+TASKDATA.state], 0
mov [eax+TASKDATA.state], TSTATE_RUNNING
.done:
popfd
ret
220,7 → 220,7
mov ebx, [eax+MUTEX_WAITER.list.next]
list_del eax
mov edx, [eax+MUTEX_WAITER.task]
mov [edx+TASKDATA.state], 0
mov [edx+TASKDATA.state], TSTATE_RUNNING
inc esi
cmp edi, ebx
je .wake_done
/kernel/trunk/core/sys32.inc
152,7 → 152,7
; not debuggee => say error and terminate
call show_error_parameters
sti
mov [edx + TASKDATA.state], byte 4 ; terminate
mov [edx + TASKDATA.state], TSTATE_TERMINATING ; terminate
call wakeup_osloop
call change_task
; If we're here, then the main OS thread has crashed before initializing IDLE thread.
187,7 → 187,7
call debugger_notify ;; only ONE using, inline ??? SEE: core/debug.inc
add esp, 12
mov edx, [TASK_BASE]
mov byte [edx+TASKDATA.state], 1 ; suspended
mov [edx+TASKDATA.state], TSTATE_RUN_SUSPENDED ; suspended
call change_task ; SEE: core/shed.inc
restore_ring3_context
iretd
419,7 → 419,7
jnz @F
pop esi
shl esi, BSF sizeof.TASKDATA
mov [TASK_TABLE+esi+TASKDATA.state], 9
mov [TASK_TABLE+esi+TASKDATA.state], TSTATE_FREE
ret
@@:
push edx ;save .process
639,7 → 639,7
lea esi, [WIN_POS+eax*2]
movzx edi, word [esi] ; edi = process
shl edi, BSF sizeof.TASKDATA
cmp [TASK_TABLE + edi + TASKDATA.state], byte 9 ; skip dead slots
cmp [TASK_TABLE + edi + TASKDATA.state], TSTATE_FREE ; skip free slots
je .check_next_window
add edi, window_data
; \begin{diamond}[19.09.2006]
714,7 → 714,7
popa
mov edi, esi ; do not run this process slot
shl edi, BSF sizeof.TASKDATA
mov [edi+TASK_TABLE + TASKDATA.state], byte 9
mov [edi+TASK_TABLE + TASKDATA.state], TSTATE_FREE
; debugger test - terminate all debuggees
mov eax, 2
mov ecx, SLOT_BASE+2*0x100+APPDATA.debugger_slot
/kernel/trunk/core/taskman.inc
493,13 → 493,12
.loop:
;ecx = offset of current process info entry
;ebx = maximum permitted offset
; state 9 means "not used"
cmp byte [TASK_TABLE+ecx+TASKDATA.state], TSTATE_FREE
cmp [TASK_TABLE+ecx+TASKDATA.state], TSTATE_FREE
jz .endloop ;skip empty slots
cmp [TASK_TABLE+ecx+TASKDATA.pid], eax;check PID
jz .pid_found
.endloop:
add ecx, 32
add ecx, sizeof.TASKDATA
cmp ecx, ebx
jle .loop
 
895,7 → 894,7
cmp [ebx+APPDATA.debugger_slot], 0
je .exit
mov eax, [TASK_BASE]
mov [eax+TASKDATA.state], 1
mov [eax+TASKDATA.state], TSTATE_RUN_SUSPENDED
call change_task
.exit:
popad
987,7 → 986,7
 
inc dword [process_number]
mov eax, [process_number]
mov [ebx+4], eax ;set PID
mov [ebx+TASKDATA.pid], eax ;set PID
 
;set draw data to full screen
xor eax, eax