Subversion Repositories Kolibri OS

Rev

Rev 363 | Rev 378 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 363 Rev 365
Line 238... Line 238...
238
           and eax, not 0xFFF
238
           and eax, not 0xFFF
239
           or eax, [flags]
239
           or eax, [flags]
240
           mov ebx, [lin_addr]
240
           mov ebx, [lin_addr]
241
           shr ebx, 12
241
           shr ebx, 12
242
           mov [pages_tab+ebx*4], eax
242
           mov [page_tabs+ebx*4], eax
243
           mov eax, [lin_addr]
243
           mov eax, [lin_addr]
244
           invlpg [eax]
244
           invlpg [eax]
245
           pop ebx
245
           pop ebx
246
           ret
246
           ret
247
endp
247
endp
248
 
248
 
Line 294... Line 294...
294
           mov edx, 0x1000
294
           mov edx, 0x1000
295
           mov ebx, edi
295
           mov ebx, edi
296
           shr ebx, 12
296
           shr ebx, 12
297
@@:
297
@@:
298
           mov [pages_tab+ebx*4], eax
298
           mov [page_tabs+ebx*4], eax
299
           invlpg [edi]
299
           invlpg [edi]
300
           add edi, edx
300
           add edi, edx
301
           add eax, edx
301
           add eax, edx
302
           inc ebx
302
           inc ebx
303
           dec ecx
303
           dec ecx
Line 321... Line 321...
321
           mov esi, eax
321
           mov esi, eax
322
           mov edi, eax
322
           mov edi, eax
Line 323... Line 323...
323
 
323
 
324
           shr esi, 10
324
           shr esi, 10
Line 325... Line 325...
325
           add esi, pages_tab
325
           add esi, page_tabs
326
 
326
 
327
           mov ebp, [pg_data.pages_free]
327
           mov ebp, [pg_data.pages_free]
328
           mov ebx, [page_start]
328
           mov ebx, [page_start]
Line 366... Line 366...
366
           or eax, PG_UW          ;+PG_NOCACHE
366
           or eax, PG_UW          ;+PG_NOCACHE
367
           mov dword [current_pgdir+ebx*4], eax
367
           mov dword [current_pgdir+ebx*4], eax
368
           mov eax, [lin_addr]
368
           mov eax, [lin_addr]
369
           shr eax, 10
369
           shr eax, 10
370
           add eax, pages_tab
370
           add eax, page_tabs
371
           invlpg [eax]
371
           invlpg [eax]
372
           pop ebx
372
           pop ebx
373
           ret
373
           ret
374
endp
374
endp
375
 
375
 
Line 437... Line 437...
437
 
437
 
Line 438... Line 438...
438
           mov eax, [LFBAddress]
438
           mov eax, [LFBAddress]
439
           mov esi, eax
439
           mov esi, eax
440
           shr esi, 10
440
           shr esi, 10
441
           add esi, pages_tab
441
           add esi, page_tabs
442
           or eax, PG_UW
442
           or eax, PG_UW
443
           mov ecx, [pg_count]
443
           mov ecx, [pg_count]
444
           shr ecx, 2
444
           shr ecx, 2
445
.map:
445
.map:
446
           mov [esi], eax
446
           mov [esi], eax
Line 486... Line 486...
486
 
486
 
Line 487... Line 487...
487
           shr edi, 12
487
           shr edi, 12
488
           shr esi, 12
488
           shr esi, 12
489
@@:
489
@@:
490
           mov eax, [pages_tab+0x00181000+edi*4]
490
           mov eax, [page_tabs+0x00181000+edi*4]
491
           test eax, 1
491
           test eax, 1
492
           jz .next
492
           jz .next
493
           mov dword [pages_tab+0x00181000+edi*4], 2
493
           mov dword [page_tabs+0x00181000+edi*4], 2
494
           mov ebx, edi
494
           mov ebx, edi
495
           shl ebx, 12
495
           shl ebx, 12
496
           invlpg [ebx+std_application_base_address]
496
           invlpg [ebx+std_application_base_address]
497
           call free_page
497
           call free_page
Line 533... Line 533...
533
           stdcall map_page_table, edi, eax
533
           stdcall map_page_table, edi, eax
Line 534... Line 534...
534
 
534
 
535
           push edi
535
           push edi
536
           shr edi, 10
536
           shr edi, 10
537
           add edi, pages_tab
537
           add edi, page_tabs
538
           mov ecx, 1024
538
           mov ecx, 1024
539
           xor eax, eax
539
           xor eax, eax
540
           cld
540
           cld
541
           rep stosd
541
           rep stosd
Line 612... Line 612...
612
 
612
 
Line 613... Line 613...
613
align 4
613
align 4
614
get_pg_addr:
614
get_pg_addr:
615
           shr eax, 12
615
           shr eax, 12
616
           mov eax, [pages_tab+eax*4]
616
           mov eax, [page_tabs+eax*4]
617
           and eax, 0xFFFFF000
617
           and eax, 0xFFFFF000
618
           ret
618
           ret
Line 619... Line 619...
619
 
619
 
620
align 4
620
align 4
Line 656... Line 656...
656
           mov edx, [master_tab+ecx*4]
656
           mov edx, [master_tab+ecx*4]
657
           test edx, 1
657
           test edx, 1
658
           jz .fail
658
           jz .fail
659
 
659
 
Line 660... Line 660...
660
           mov eax, [pages_tab+ebx*4]
660
           mov eax, [page_tabs+ebx*4]
661
           test eax, 2
661
           test eax, 2
662
           jz .fail
662
           jz .fail
663
.alloc:
663
.alloc:
664
           call alloc_page
664
           call alloc_page
665
           and eax, eax
665
           and eax, eax
Line 694... Line 694...
694
           iretd
694
           iretd
695
 
695
 
Line 696... Line 696...
696
.kernel_space:
696
.kernel_space:
697
;           shr ebx, 12
697
;           shr ebx, 12
698
;           mov eax, [pages_tab+ebx*4]
698
;           mov eax, [page_tabs+ebx*4]
699
;           shr ebx, 10
699
;           shr ebx, 10
700
;           mov eax, [master_tab+ebx*4]
700
;           mov eax, [master_tab+ebx*4]
701
           jmp .exit
701
           jmp .exit
702
.old_addr:
702
.old_addr:
703
;           shr ebx, 12
703
;           shr ebx, 12
704
;           mov eax, [pages_tab+ebx*4]
704
;           mov eax, [page_tabs+ebx*4]
705
;           shr ebx, 10
705
;           shr ebx, 10
706
;           mov eax, [master_tab+ebx*4]
706
;           mov eax, [master_tab+ebx*4]
707
           jmp .exit
707
           jmp .exit
708
.lfb_addr:
708
.lfb_addr:
709
;           shr ebx, 22
709
;           shr ebx, 22
710
;           ;mov ecx, [sys_page_dir]
710
;           ;mov ecx, [sys_page_dir]
711
;           mov eax, [master_tab+ebx*4]
711
;           mov eax, [master_tab+ebx*4]
712
           jmp .exit
712
           jmp .exit
713
.tab_space:
713
.tab_space:
714
;           shr ebx, 12
714
;           shr ebx, 12
715
;           mov eax, [pages_tab+ebx*4]
715
;           mov eax, [page_tabs+ebx*4]
716
;           shr ebx, 10
716
;           shr ebx, 10
717
;           ;mov ecx, [sys_page_dir]
717
;           ;mov ecx, [sys_page_dir]
718
;           mov eax, [master_tab+ebx*4]
718
;           mov eax, [master_tab+ebx*4]
719
           jmp .exit
719
           jmp .exit
720
endp
720
endp
Line 938... Line 938...
938
           mov ebx, [ipc_tmp]
938
           mov ebx, [ipc_tmp]
939
           mov edx, ebx
939
           mov edx, ebx
940
           shr ebx, 12
940
           shr ebx, 12
941
           xor eax, eax
941
           xor eax, eax
942
           mov [pages_tab+ebx*4], eax
942
           mov [page_tabs+ebx*4], eax
943
           invlpg [edx]
943
           invlpg [edx]
Line 944... Line 944...
944
 
944
 
945
           mov ebx, [ipc_pdir]
945
           mov ebx, [ipc_pdir]
946
           mov edx, ebx
946
           mov edx, ebx
947
           shr ebx, 12
947
           shr ebx, 12
948
           xor eax, eax
948
           xor eax, eax
949
           mov [pages_tab+ebx*4], eax
949
           mov [page_tabs+ebx*4], eax
Line 950... Line 950...
950
           invlpg [edx]
950
           invlpg [edx]
951
 
951
 
952
           mov ebx, [ipc_ptab]
952
           mov ebx, [ipc_ptab]
953
           mov edx, ebx
953
           mov edx, ebx
954
           shr ebx, 12
954
           shr ebx, 12
955
           xor eax, eax
955
           xor eax, eax
Line 956... Line 956...
956
           mov [pages_tab+ebx*4], eax
956
           mov [page_tabs+ebx*4], eax
957
           invlpg [edx]
957
           invlpg [edx]
958
 
958