Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4432 → Rev 4430

/kernel/branches/kolibri-process/core/heap.inc
565,7 → 565,8
align 4
proc init_heap
 
mov ebx, [current_process]
mov ebx, [current_slot]
mov ebx, [ebx+APPDATA.process]
mov eax, [ebx+PROC.heap_top]
test eax, eax
jz @F
601,7 → 602,8
add ecx, (4095+PAGE_SIZE)
and ecx, not 4095
 
mov ebx, [current_process]
mov ebx, [current_slot]
mov ebx, [ebx+APPDATA.process]
mov esi, dword [ebx+PROC.heap_base] ; heap_base
mov edi, dword [ebx+PROC.heap_top] ; heap_top
.scan:
637,7 → 639,9
jnz @B
.no:
 
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
 
mov ebx, [alloc_size]
add ebx, 0xFFF
and ebx, not 0xFFF
672,7 → 676,8
push esi
push edi
 
mov ebx, [current_process]
mov ebx, [current_slot]
mov ebx, [ebx+APPDATA.process]
 
mov edx, [address]
and edx, not 0xFFF
748,7 → 753,9
mov [page_tabs+ebx*4], ecx
 
.nothird:
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
 
mov ebx, [alloc_size]
add ebx, 0xFFF
and ebx, not 0xFFF
808,7 → 815,8
.released:
push edi
 
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
mov esi, dword [edx+PROC.heap_base]
mov edi, dword [edx+PROC.heap_top]
sub ebx, [edx+PROC.mem_used]
996,7 → 1004,8
jnz .nofreeall
mov eax, [page_tabs+ecx*4]
and eax, not 0xFFF
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
mov ebx, [edx+PROC.mem_used]
sub ebx, eax
add ebx, 0x1000
1017,7 → 1026,8
shr ebx, 12
sub ebx, edx
push ebx ecx edx
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
shl ebx, 12
sub ebx, [edx+PROC.mem_used]
neg ebx
1031,7 → 1041,8
shl ebx, 12
jz .ret
push esi
mov esi, [current_process]
mov esi, [current_slot]
mov esi, [esi+APPDATA.process]
mov esi, [esi+PROC.heap_top]
shr esi, 12
@@:
1055,7 → 1066,8
ret
.realloc_add:
; get some additional memory
mov eax, [current_process]
mov eax, [current_slot]
mov eax, [eax+APPDATA.process]
mov eax, [eax+PROC.heap_top]
shr eax, 12
cmp edx, eax
1088,7 → 1100,8
cld
rep stosd
pop edi
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [edx+APPDATA.process]
shl ebx, 12
add [edx+PROC.mem_used], ebx
pop eax edx ecx
1095,7 → 1108,8
ret
.cant_inplace:
push esi edi
mov eax, [current_process]
mov eax, [current_slot]
mov eax, [eax+APPDATA.process]
mov esi, [eax+PROC.heap_base]
mov edi, [eax+PROC.heap_top]
shr esi, 12
1160,7 → 1174,8
jnz @b
.no:
push ebx
mov edx, [current_process]
mov edx, [current_slot]
mov edx, [eax+APPDATA.process]
shl ebx, 12
add [edx+PROC.mem_used], ebx
pop ebx
/kernel/branches/kolibri-process/core/taskman.inc
248,7 → 248,8
loop .copy_process_name_loop
.copy_process_name_done:
 
mov ebx, [current_process]
mov ebx, [current_slot]
mov ebx, [ebx+APPDATA.process]
mov [save_proc], ebx
 
stdcall create_process, [hdr_mem], [file_base], [file_size]
430,6 → 431,8
mov ecx, pg_data.mutex
call mutex_lock
 
xchg bx, bx
 
xor eax, eax
mov [process], eax
 
562,14 → 565,11
 
align 4
set_cr3:
pushfd
cli
 
mov ebx, [current_slot]
mov [current_process], eax
mov [ebx+APPDATA.process], eax
mov eax, [eax+PROC.pdt_0_phys]
mov cr3, eax
popfd
ret
 
align 4
/kernel/branches/kolibri-process/core/sched.inc
121,10 → 121,10
Mov dword [page_tabs+((tss._io_map_0 and -4096) shr 10)],eax,[ebx+APPDATA.io_map]
Mov dword [page_tabs+((tss._io_map_1 and -4096) shr 10)],eax,[ebx+APPDATA.io_map+4]
; set new thread memory-map
mov eax, [ebx+APPDATA.process]
cmp eax, [current_process]
mov ecx, APPDATA.process
mov eax, [ebx+ecx] ;offset>0x7F
cmp eax, [esi+ecx] ;offset>0x7F
je @f
mov [current_process], eax
mov eax, [eax+PROC.pdt_0_phys]
mov cr3, eax
@@:
/kernel/branches/kolibri-process/kernel.asm
730,8 → 730,6
stosd
stosd
 
mov [current_process], sys_proc
 
mov edx, SLOT_BASE+256*1
mov ebx, [os_stack_seg]
add ebx, 0x2000
/kernel/branches/kolibri-process/data32.inc
446,10 → 446,8
 
LFBSize rd 1
 
current_process rd 1
current_slot rd 1 ; i.e. cureent thread
current_slot rd 1
 
 
; status
hd1_status rd 1 ; 0 - free : other - pid
application_table_owner rd 1 ; 0 - free : other - pid