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 |