From e330bc426b2a0303f6bbb5122dcbe360657ebafc Mon Sep 17 00:00:00 2001 From: kieron Date: Sat, 20 May 2017 19:08:00 +0000 Subject: [PATCH] Memory Manager D'x git-svn-id: https://spexeah.com:8443/svn/Asuro@148 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5156864 -> 5156864 bytes lib/kernel.ppu | Bin 2136 -> 2136 bytes lib/libpconsole.a | Bin 64564 -> 64564 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 129474 -> 129474 bytes lib/pmemorymanager.ppu | Bin 4131 -> 4144 bytes src/kernel.pas | 3 +++ src/pmemorymanager.pas | 49 ++++++++++++++++++++++++----------------- 8 files changed, 32 insertions(+), 20 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 3ca62d685ad2af27ec280ec909b8d28cb8ef0492..6c09523d80acb9f3d16f616bfad1c3f60fd9d132 100644 GIT binary patch delta 11792 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 Ok6#HzTxX)G=>GulwX>Q4 delta 11732 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 diff --git a/lib/kernel.ppu b/lib/kernel.ppu index fd236e07b0a2ecc9f22ecf141705a9e363521c0a..2055d87eb5f36983c37c6d7885bef821ce241c07 100644 GIT binary patch delta 13 Ucmca1a6@210MoIF8-v(504S0L8vp%x#vnEh0481py8r+H diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 98fd15e222482b0b669e985cd2500e1d938207e2..7591591388058fe8c63c4de705717f583cc90f45 100644 GIT binary patch delta 812 zcmZuvODIHP6z<*`QRq&2+^HE%P?3x~@BGoYP>^X}@U#VRc9x>R~uuQPa*#n(TUV`ZORj@eR7m3DV|Hbk}C>D?Py`9TnjY0ky delta 812 zcmZuvODIHP6z<*`QRq$??$mfp9GHT+! zDH9*@r1Hj|M6StJ*s;~f!r?N{0_N;JYPrn2`YG)a&&)BwP5zotgRb2Y-Q~QdQrGMf zbe8UuCx$GlXb~a7S80tGf3oc&d(I-!S87*3z0U-hBA)+Xfu29)ua-brypY5aLwY;tJBg*Ka`xV)q&dTx;;L)#-E1QuA4plRcVELmWJEHV7aW<7p;e<5lxU vnA|!f6~10GSZv~obj=N?S2M(7tp013E?6Ay4M$?J|6+N=6pKgu-p=JO?X3KH diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 01680bf8f27cb9e7dacc2ef53072a33b3b60b9ef..e9ebb5ec017e2bdd68bc40565232df8a163a3ff9 100644 GIT binary patch delta 539 zcmezHi1EWC#tE{lh6d)AMjMrUSs|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYah9;J##$X44tp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVe_u9krS delta 539 zcmezHi1EWC#tE{l1{Ow!1{;-pSs|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYah9;J##$X44tp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVe;Rh5YV diff --git a/lib/libpsystem.a b/lib/libpsystem.a index fd91a214b4e2dcfc363d02c292e275041a976ba4..22d6b1bd47e36b043b25cfd96f3c2e814e045f60 100644 GIT binary patch delta 2833 zcmZ`*e@xX?6yMR52x#v)2RJ8tp)nzc@Sw+iMR1|-advu;$k!X1)`+44tnGR?y?43c5_%fu4MqYsc``342 zhHJ}!8=}XH`O3qLDT2&dQTWnQAO4C;E0&j-nQ6p}(K?n4DR+sFEY+B_OomvZ_^^(S zkR*!ZWVAA!^_P7Ok^_sDXDG(FECe=M`J?(o{M{kq3&d%3JEXJU9=_N< zf|X843RcE@tH<^J;I;tESv{`zBP2Pir^)CEFMH_me(+Yvv)M-znOW01SIDMyaTcs` z#cZr~#cZqn3^|e$XW}!dbe6Mz{*h3a@I^6(&X)4->JHA|y?b33J!0TlFp$+%``K32v)`_Ua6F zvS~!6Xz#3Jzwgi#1oE^v(Xv)23cl$?k=;%d-J=l^*Rr>5+&));>}{KFulBHxC>EmV zE`<;mm&>O1S%*JwECiSzp1 zxa_nWuR80-PhN22=Y}=LPR?fj(M*utw02}ncZdA&rz`LK-)TR|qvw*w=0wb+H*Ab^5M$)BCAai=(s6Uil3U0ZXO!okZ&ZoIw|Z86 z`y(qJVp4s3i2G)OzT3W8pzju!g~0u(pf9(*Gn@J=p@3F-;a=XD23qv44-`NAAySi$ z`@DQ-I-CN!*$e4%P;wMVnkou!nQO13S)kR)aV_P^zn>3UpMrjf&(47^2mcU7L!28A zSO?&-g?7- zd}w*}dFRd$MI5K7)(jqg0ZxNQ4p%#e&`6kn7O_fT8YmjhNw>DGpdSN{dr{x`Dr@Zv zi*;dUq$@j;BB4P=I@t_ofWEa0($v2Y!FPI>n=fL;cdS+Ll~1(Im&e`~9E{yI2eeom za2@6=+H4NOK+&K$q(%jY#5 zK13z!dFuz@8Xpu5L$b6_cM38ET^1S9J^a0{q;^8XMT-5J!FL{oVf(TJ95sJVD_8Zv z6g|Yj!}s(+KX~MO=%Q^lN**6!a4^X;kD~EBM|Vq5MmWG@Ct*zQL`)G+%N+4jB1f`l zDfU-39~pr0e09yDBVv>At?meck6ndk2WIA9&7#s|b(*h?_(n%>g8kPti{HA5bK^gA CbD|0W delta 2833 zcmZ`*eN0?M5YM#Iih#Lm8a~pLoV1dHgz{Ai3Bk)5h*;ZPV-amq8c#5s8oV?ORZ=Xr zYEo^=g_Uknt3|YeZAE1(TQGqu{R(j68KtBriRWJx1!G!U#h`Wez1{cj9e983Z{E(# zZ)blqdn312j@(-5UmKTKQjnkbMaG#leMS5w$?WH}+smV1WL@7fa@vuko2c&Lmp_ZBY>=^BM&Zu*f%ZV=wU1Bxas5} zE9$2E8h%hEjCfO22_xQe&?;Qns47e%UObG?NQ#g&`=+&BukKa5n7b)W1#vf(Lwi*c z8)%-8DcZa0*zfxl1%Yg>(J1dwG;+TgjeLirk^hK7L|n_!wkh*mE^@SOp}oq+j{C6? z`AZZ+TwDg5?Jy1_i%MoY!o*!|W7m$M=l|D!!-++n8%~6oqf^zguWOB}g5#92boRt4 ztFtFpFYxPU4L#~49IU@L`fNzmLHc{A+2?&KI`f}1#ePnR{k#&p=pGMC{^}E14jpF> zS#j|NE3Uj`#ZO+f;^)Q`#!gOU&QLPw-L!3DQgw&^;ZIB6_rFtqI*;CK3TqQ#&-Hp) z4-MX&Hel;a9ScN^#z9B|kuj|;=uZK#%Q0fM8f%@&m7IES7-DRlSt%3fGizd2%`6R* ziP>3AzgOliE+G_s68&;>H0n$)_V;ZQ;~c~o87yaBjVBd1gXGL3Uz}04f4-3=65r}s z)!mPbc!){W-BIpX4(e|E<3QalE^~o9<3U|+dsixTmO(Zxx5K@>F#(k5EgvX;_(P;7 z$M3WA1BoyQbhjN6^+Cx|APKT4ymhs?_NRbSC&#rePyYQHQ2G?~J$ywvbVu>`P&5R2 z0Ra4x&mA~PJ)zZT-QZ)WbYClfof9-&^(nZiN zr~xHgv6=7K39l(ing#;sP((y64>;EnJr?Ri@#h4O0R~IqA|$b4RBqZ z6dzjde?EGrhawJARBICVz5o}%rVm#$htPdqF)09QUHW@l{sZ z7Z&5fv`9Dh$3#Mdj5N>!7lFQY5EA6S5W#ohpp`FT$#?RQ;Hy8;CSM+STX2XRHaVch z;DBo{-`r+$5C)0{$syh^IE3F(9H{2-L`RGR8l=O6$I!v1zs)8KyaW$#c-KlDagaMt z8uuY8S4$h7L E0EQEtk^lez diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index 23d63314a17210b61b8b2f1c5a6b7f871d1e72da..fcc55877987f73f68e6ec39bed871508bf71f163 100644 GIT binary patch delta 267 zcmZ3iut7mFARyGx*p#K2k%5`vK!6ehhX4b^cB}dJa{~8x>M<}d7)(^OXWB4%V$xN{ zy3H1hdl(rtCbO}~v9U4%CAB9@GM6#RO@6?r#i%@aH?s;mFDo-pTx9YGW|7H!EF6=) zS;QEPfIKlUua=2#vjvL_6JyroTDFOd<(v80IT)GxxhB8ikeF=9v6FG(=GPoiER4L9 z-FTfDttNNzMlgy@ehg&CPFCkj;#C2f&6<>xpPbDA6q&{+&!-9$VM|WT$w@5&2_5G9 zpd|+s;xA9k$&SxW&CM^WjL%IhU|_W3W(A5fFfz;qIvk{nQB-;IU4C((rmy^Z0RJyS AJOBUy delta 289 zcmdm>uvkGcARyGx*p#K2k%5`vK!6g%Z+-@b?N;;c=LGKYG-6<2(4VMi&os4jV$xN{ z!p#=y0+miySi>BLh%} z^kzpE4<^RM$z5y{8S^&FuyZgnwoO*$xWqVP^ACb&6<>xpPbFW7$VCGp1hPgoXsvr|Ym4KvRT7FS-YCKRwesVm_j>${{dH{nXJpBLw diff --git a/src/kernel.pas b/src/kernel.pas index be30828f..1b6a1a5c 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -50,6 +50,9 @@ begin isr.init(); irq.init(); pmemorymanager.init(); + + //while true do begin end; + vmemorymanager.init(); vmemorymanager.new_page(0); diff --git a/src/pmemorymanager.pas b/src/pmemorymanager.pas index 4bc5b013..87477658 100644 --- a/src/pmemorymanager.pas +++ b/src/pmemorymanager.pas @@ -29,24 +29,28 @@ var procedure set_memory_area_present(base : uint64; length : uint64; present : boolean); var - BlockHigh, BlockLow : uint16; + FirstBlock : uint32; + LastBlock : uint32; + i : uint32; begin - BlockLow:= base SHR 22; - BlockHigh:= base+length SHR 22; - if not present then begin - PhysicalMemory[BlockLow].Scanned:= True; - PhysicalMemory[BlockHigh].Scanned:= True; - PhysicalMemory[BlockLow].Present:= False; - PhysicalMemory[BlockHigh].Present:= False; - end else begin - If not PhysicalMemory[BlockLow].Scanned then begin - PhysicalMemory[BlockLow].Scanned:= True; - PhysicalMemory[BlockLow].Present:= True; - end; - If not PhysicalMemory[BlockHigh].Scanned then begin - PhysicalMemory[BlockHigh].Scanned:= True; - PhysicalMemory[BlockHigh].Present:= True; + FirstBlock:= base SHR 22; + LastBlock:= (base+length) SHR 22; + console.writewordln(FirstBlock); + console.writewordln(LastBlock); + if (FirstBlock > 1023) then exit; + while LastBlock > 1023 do begin + LastBlock:= LastBlock-1; + end; + for i:=FirstBlock to LastBlock do begin + if not present then begin + PhysicalMemory[i].Scanned:= True; + PhysicalMemory[i].Present:= present; + end else begin + If not PhysicalMemory[i].Scanned then begin + PhysicalMemory[i].Scanned:= True; + PhysicalMemory[i].Present:= present; + end; end; end; end; @@ -63,15 +67,20 @@ begin length:= multibootinfo^.mmap_length; mmap:= Pmemory_map_t(address); for i:=0 to 1023 do begin - PhysicalMemory[i].Present:= True; + PhysicalMemory[i].Present:= False; PhysicalMemory[i].Allocated:= False; PhysicalMemory[i].Scanned:= False; PhysicalMemory[i].MappedTo:= 0; end; while uint32(mmap) < (address + length) do begin - console.writewordln(mmap^.mtype); + console.writehexln(mmap^.base_addr); + console.writehexln(mmap^.length); + console.writehexln(mmap^.mtype); + console.writestringln(''); if mmap^.mtype <> $01 then begin set_memory_area_present(mmap^.base_addr, mmap^.length, False); + end else begin + set_memory_area_present(mmap^.base_addr, mmap^.length, True); end; mmap:= Pmemory_map_t(uint32(mmap)+mmap^.size+sizeof(mmap^.size)); end; @@ -100,7 +109,7 @@ begin walk_memory_map; force_alloc_block(0, 0); force_alloc_block(1, 0); - force_alloc_block(2, 0); //First 12MiB reserved for Kernel/BIOS. + alloc_block(2, 0); //First 12MiB reserved for Kernel/BIOS. console.writestring('PMM: '); console.writeword(nPresent); console.writestringln('/1024 Block Available for Allocation.'); @@ -116,7 +125,7 @@ begin end else begin PhysicalMemory[block].Allocated:= True; PhysicalMemory[block].MappedTo:= caller; - console.writestring('4MiB Block Allocated @ '); + console.writestring('PMM: 4MiB Block Allocated @ '); console.writeword(block); console.writestring(' ['); console.writehex(block SHL 22);