StupidOS/kernel/proc.inc

54 lines
672 B
PHP
Raw Permalink 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
@@:
2024-07-22 15:31:24 +00:00
2024-07-21 16:14:38 +00:00
.end:
push eax
mov eax, uProcLock
call lock_release
pop eax
ret
2024-08-18 12:19:28 +00:00
context_switch:
mov ax, 0x23
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov eax, esp
push 0x23
push eax
pushf
push 0x1b
; push addr
iret
2024-07-22 15:31:24 +00:00
uNextpid dd 1
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