StupidOS/kernel/proc.inc

38 lines
506 B
PHP
Raw Normal View History

2024-07-19 07:53:03 +00:00
proc_init:
mov ecx, sizeof.Process * 64
xor ax, ax
mov edi, aProcs
rep stosb
ret
2024-07-21 16:14:38 +00:00
proc_alloc:
mov eax, uProcLock
call lock_acquire
xor ecx, ecx
@@:
mov eax, [ecx + Process.state]
or eax, eax
jz @f
add ecx, sizeof.Process
cmp ecx, sizeof.Process * 64
jb @b
mov esi, szErrorNoFreeProcess
call klog
mov eax, -1
jmp .end
@@:
.end:
push eax
mov eax, uProcLock
call lock_release
pop eax
ret
2024-07-19 07:53:03 +00:00
uProcLock dd 0
pCurrentProc dd 0
2024-07-21 16:14:38 +00:00
szErrorNoFreeProcess db "Error: can't alloc new process", 0