Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 519 → Rev 520

/kernel/trunk/core/exports.inc
39,7 → 39,9
szUserFree db 'UserFree',0
szKmalloc db 'Kmalloc',0
szKfree db 'Kfree',0
szCreateRingBuffer db 'CreateRingBuffer',0
 
szGetPid db 'GetPid',0
szCreateObject db 'CreateObject',0
szDestroyObject db 'DestroyObject',0
szCreateEvent db 'CreateEvent',0
101,7 → 103,9
dd szUserFree , user_free
dd szKmalloc , malloc
dd szKfree , free
dd szCreateRingBuffer, create_ring_buffer
 
dd szGetPid , get_pid
dd szCreateObject , create_kernel_object
dd szDestroyObject , destroy_kernel_object
dd szCreateEvent , create_event
/kernel/trunk/core/memory.inc
1085,7 → 1085,59
ret
endp
 
align 4
proc create_ring_buffer stdcall, size:dword, flags:dword
locals
buf_ptr dd ?
endl
 
mov eax, [size]
test eax, eax
jz .fail
 
add eax, eax
stdcall alloc_kernel_space, eax
test eax, eax
jz .fail
 
mov [buf_ptr], eax
 
mov ebx, [size]
shr ebx, 12
push ebx
 
stdcall alloc_pages, ebx
pop ecx
 
test eax, eax
jz .mm_fail
 
or eax, [flags]
mov edi, [buf_ptr]
mov ebx, [buf_ptr]
mov edx, ecx
shl edx, 2
shr edi, 10
@@:
mov [page_tabs+edi], eax
mov [page_tabs+edi+edx], eax
invlpg [ebx]
invlpg [ebx+esi]
add eax, 0x1000
add ebx, 0x1000
add edi, 4
dec ecx
jnz @B
 
mov eax, [buf_ptr]
ret
.mm_fail:
stdcall free_kernel_space, [buf_ptr]
xor eax, eax
.fail:
ret
endp
 
if 0
push eax
push edx
/kernel/trunk/core/taskman.inc
544,6 → 544,12
ret
endp
 
align 4
get_pid:
mov eax, [TASK_DATA]
mov eax, [eax+4]
ret
 
pid_to_slot:
;Input:
; eax - pid of process