Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4265 → Rev 4269

/kernel/branches/Kolibri-acpi/const.inc
221,6 → 221,10
TMP_STACK_TOP equ 0x006CC00
 
sys_pgdir equ (OS_BASE+0x006F000)
lfb_pd_0 equ (OS_BASE+0x0070000)
lfb_pd_1 equ (OS_BASE+0x0071000)
lfb_pd_2 equ (OS_BASE+0x0072000)
lfb_pd_3 equ (OS_BASE+0x0073000)
 
SLOT_BASE equ (OS_BASE+0x0080000)
 
248,8 → 252,8
master_tab equ (page_tabs+ (page_tabs shr 10)) ;0xFDFF70000
 
LFB_BASE equ 0xFE000000
LFB_SIZE equ 12*1024*1024
 
 
new_app_base equ 0;
 
twdw equ 0x2000 ;(CURRENT_TASK-window_data)
/kernel/branches/Kolibri-acpi/core/memory.inc
351,10 → 351,8
endp
 
align 4
proc init_LFB
locals
pg_count dd ?
endl
init_LFB:
xchg bx, bx
 
cmp dword [LFBAddress], -1
jne @f
383,61 → 381,33
@@:
call init_mtrr
 
mov edx, LFB_BASE
mov esi, [LFBAddress]
mov edi, 0x00C00000
mov dword [exp_lfb+4], edx
 
shr edi, 12
mov [pg_count], edi
shr edi, 10
 
bt [cpu_caps], CAPS_PSE
jnc .map_page_tables
or esi, PG_LARGE+PG_UW
mov edx, sys_pgdir+(LFB_BASE shr 20)
@@:
mov [edx], esi
add edx, 4
add esi, 0x00400000
dec edi
jnz @B
 
xor edx, edx
mov eax, [LFBAddress]
bt [cpu_caps], CAPS_PGE
jnc @F
or dword [sys_pgdir+(LFB_BASE shr 20)], PG_GLOBAL
@@:
mov dword [LFBAddress], LFB_BASE
mov eax, cr3 ;flush TLB
mov cr3, eax
ret
setc dh ;eliminate branch and
mov ecx, LFB_SIZE/4096
mov edi, lfb_pd_0
lea eax, [eax+edx+PG_UW] ;set PG_GLOBAL if supported
 
.map_page_tables:
.map_pte:
stosd
add eax, 0x1000
loop .map_pte
 
@@:
call alloc_page
stdcall map_page_table, edx, eax
add edx, 0x00400000
dec edi
jnz @B
mov ecx, (LFB_SIZE/4096)/1024
mov edi, sys_pgdir+(LFB_BASE shr 20)
lea eax, [(lfb_pd_0-OS_BASE)+PG_UW]
 
mov eax, [LFBAddress]
mov edi, page_tabs + (LFB_BASE shr 10)
or eax, PG_UW
mov ecx, [pg_count]
cld
@@:
.map_pde:
stosd
add eax, 0x1000
dec ecx
jnz @B
loop .map_pde
 
mov dword [exp_lfb+4], LFB_BASE
mov dword [LFBAddress], LFB_BASE
mov eax, cr3 ;flush TLB
mov cr3, eax
 
ret
endp
 
align 4
proc new_mem_resize stdcall, new_size:dword