forked from KolibriOS/kolibrios
33 lines
602 B
NASM
33 lines
602 B
NASM
|
format ELF
|
||
|
include "public_stdcall.inc"
|
||
|
section '.text' executable
|
||
|
extrn sysmalloc
|
||
|
public_stdcall _ksys_start_thread,12
|
||
|
;arg1 - proc
|
||
|
;arg2 - stacksize
|
||
|
;arg3 - pid
|
||
|
push dword [esp+8]
|
||
|
call sysmalloc
|
||
|
test eax,eax
|
||
|
jz .no_mem
|
||
|
push ebx
|
||
|
mov edx,eax
|
||
|
add edx,[esp+12]
|
||
|
mov [edx-4],dword 0
|
||
|
mov ecx,[esp+8]
|
||
|
mov ebx,1
|
||
|
mov eax,51
|
||
|
int 0x40
|
||
|
mov ebx,[esp+16]
|
||
|
test ebx,ebx
|
||
|
jz .no_val
|
||
|
mov [ebx],eax
|
||
|
.no_val:
|
||
|
mov eax,edx
|
||
|
sub eax,[esp+12]
|
||
|
pop ebx
|
||
|
ret 12
|
||
|
.no_mem:
|
||
|
mov ecx,[esp+12]
|
||
|
mov [ecx],eax
|
||
|
ret 12
|