/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 |