From a6325d5062ae467d043c845f5c3991811a6949c8 Mon Sep 17 00:00:00 2001 From: kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c> Date: Sat, 20 May 2017 12:19:11 +0000 Subject: [PATCH] TRYING TO FIX FUCKING MEMORY MANAGER. git-svn-id: https://spexeah.com:8443/svn/Asuro@133 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- lib/pmemorymanager.ppu | Bin 2274 -> 2278 bytes src/pmemorymanager.pas | 4 ++++ src/vmemorymanager.pas | 11 ++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index 51967737cf8d2e6e99e5b598286fc90ec7d032b7..5b33d802651bced862adf4fab0a07be4ff98d1cc 100644 GIT binary patch delta 125 zcmaDP_)JhXARyGx*p#K2k%5`vK!6g%J`M(ksGs(`WR{%1AU09fnYrCaVPf(Y#`eh) zjMpafFiCA@VOqw-q|G(Co>gM<5tf~dPMhmkm6&)_7#ZLoWAa*dTh>CLNb%(N>~k0^ SC--n@aMnXrv`*g3p$Y)kTp>vS delta 125 zcmaDR_()JTARyGx*p#K2k%5`vK!6g%E)E8UsGs(`WR{%1AUaXjnK`yceq!<##^%Wq zjMpZMFo|vEU|Pn+s6Kf;%Oxf|?#UZiBsR}x<z(VbU}S)Ul*t>}ZCP`HBKea)v(I5H Sojid<gR>f{qH*#;4pjj2dm)?v diff --git a/src/pmemorymanager.pas b/src/pmemorymanager.pas index b3ff0bba..2bf9e266 100644 --- a/src/pmemorymanager.pas +++ b/src/pmemorymanager.pas @@ -33,6 +33,10 @@ begin Present:= True; MappedTo:= 0; end; + with PhysicalMemory[2] do begin + Present:= True; + MappedTo:= 0; + end; console.writestringln('PMM: INIT END.'); end; diff --git a/src/vmemorymanager.pas b/src/vmemorymanager.pas index 3fce78f4..9bc6e2aa 100644 --- a/src/vmemorymanager.pas +++ b/src/vmemorymanager.pas @@ -57,6 +57,15 @@ var begin console.writestringln('VMM: INIT BEGIN.'); PageDirectory:= load_current_page_directory; + PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Present:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 1].PageSize:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Writable:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 1].Address:= (1 SHL 22); + + PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Present:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 2].PageSize:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Writable:= True; + PageDirectory^[KERNEL_VIRTUAL_BASE + 2].Address:= (2 SHL 22); console.writestringln('VMM: INIT END.'); end; @@ -69,7 +78,7 @@ var begin new_page:= false; if PageDirectory^[page_number].Present then exit; - if PageDirectory^[page_number].Reserved then exit; + //if PageDirectory^[page_number].Reserved then exit; block:= pmemorymanager.new_block(uint32(PageDirectory)); if block < 2 then begin GPF;