Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5576 → Rev 5577

/kernel/branches/Kolibri-acpi/core/dll.inc
1340,3 → 1340,72
 
call free ;release object memory
ret
 
 
 
; param
; eñõ= size
 
align 4
create_object:
 
push esi
push edi
pushfd
cli
 
mov esi, [current_process]
mov eax, [esi+PROC.ht_free]
mov edi, [esi+PROC.ht_next]
dec eax
js .err0
 
mov [esi+PROC.ht_free], eax
mov eax, [esi+PROC.htab+edi*4]
mov [esi+PROC.ht_next], eax
popfd
 
mov eax, ecx
call malloc
test eax, eax
jz .err1
 
mov [eax+FUTEX.handle], edi
mov [esi+PROC.htab+edi*4], eax
pop edi
pop esi
ret
 
.err1:
pushfd
cli
 
mov eax, [esi+PROC.ht_next]
mov [esi+PROC.htab+edi*4], eax
mov [esi+PROC.ht_next], edi
inc [esi+PROC.ht_free]
.err0:
popfd
pop edi
pop esi
xor eax, eax
ret
 
 
align 4
create_futex:
mov ecx, sizeof.FUTEX
call create_object
test eax, eax
jz .fail
 
mov [eax+FUTEX.magic], 'FUTX'
mov [eax+FUTEX.destroy], 0
lea ecx, [eax+FUTEX.wait_list]
list_init ecx
mov [eax+FUTEX.pointer], 0
mov [eax+FUTEX.flags], 0
 
.fail:
ret