Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6338 → Rev 6339

/kernel/branches/Kolibri-acpi/video/framebuffer.inc
20,7 → 20,7
pitch rd 1
format rd 1
private rd 1
pde rd 8
pde rd 16*2
ends
 
align 4
126,18 → 126,18
bt [cpu_caps], CAPS_PSE
jnc .create_page_tables
 
mov edx, 0x00400000
mov edx, 0x00200000
or esi, PG_GLOBAL+PAT_WC+PG_UWR
and esi, [pte_valid_mask]
or esi, PDE_LARGE
mov [ebp+FRB.pde], esi
add esi, edx
mov [ebp+FRB.pde+4], esi
add esi, edx
mov [ebp+FRB.pde+8], esi
add esi, edx
mov [ebp+FRB.pde+12], esi
mov [ebp+FRB.pde+16], esi
add esi, edx
mov [ebp+FRB.pde+24], esi
add esi, edx
.ok:
call calculate_fast_getting_offset_for_WinMapAddress
; for Qemu or non standart video cards
154,7 → 154,7
 
stdcall alloc_kernel_space, 0x1000
mov edi, eax
mov ebx, 4
mov ebx, 8
 
.new_pd:
call alloc_page
164,13 → 164,15
stdcall map_page, edi, eax, PG_SWR
 
mov eax, esi
mov ecx, 1024
mov ecx, 512
@@:
stosd
mov [edi], eax
mov [edi+4], dword 0
add eax, 0x1000
add edi, 8
loop @B
 
add esi, 0x400000
add esi, 0x200000
add ebp, 4
sub edi, 4096
dec ebx
198,8 → 200,10
and eax, [pte_valid_mask]
mov ecx, (1228800+81920)/4096
@@:
stosd
mov [edi], eax
mov [edi+4],dword 0
add eax, 0x1000
add edi, 8
loop @B
 
call free_kernel_space
210,20 → 214,17
push esi
push edi
lea esi, [ecx+FRB.pde]
mov eax, sys_proc
mov edi, sys_pml2+OS_BASE+8192-16*8
 
cld
pushfd
cli
 
mov [_display.current_lfb], ecx
 
.patch_pde:
lea edi, [eax+PROC.pdt_0+4096-32] ;last 8 pd entries up to 32Mb framebuffer
mov ecx, 4
rep movsd ;patch pde
sub esi, 16
mov eax, [eax+PROC.list.next] ;next process/address space
cmp eax, sys_proc
jne .patch_pde
mov ecx, 16*2
rep movsd
 
bt [cpu_caps], CAPS_PGE
jnc .cr3_flush