From 72f4ef1f002a51083f5e3404ec8e2df08b5a6c59 Mon Sep 17 00:00:00 2001 From: d0p1 Date: Wed, 12 Jul 2023 11:33:08 +0200 Subject: [PATCH] docs: documents memory management --- docs/config/Menu.txt | 2 + docs/img/pmap_bootstrap.mmd | 89 ++++++++++++++++++++++++++++++++++++ docs/img/pmap_bootstrap.png | Bin 0 -> 124525 bytes kernel/Makefile | 2 +- kernel/sys/i386/mmu.inc | 43 ++++++++++++++++- kernel/vm/pmap.s | 46 +++++++++++++++++++ kernel/vm/vm.inc | 60 ++++++++++++++++++++++++ 7 files changed, 239 insertions(+), 3 deletions(-) create mode 100644 docs/img/pmap_bootstrap.mmd create mode 100644 docs/img/pmap_bootstrap.png create mode 100644 kernel/vm/pmap.s create mode 100644 kernel/vm/vm.inc diff --git a/docs/config/Menu.txt b/docs/config/Menu.txt index 9e14c73..97fef88 100644 --- a/docs/config/Menu.txt +++ b/docs/config/Menu.txt @@ -81,6 +81,8 @@ Group: Kernel { } # Group: Sys + File: vm.inc (kernel/vm/vm.inc) + File: pmap.s (kernel/vm/pmap.s) } # Group: Kernel Group: Lib { diff --git a/docs/img/pmap_bootstrap.mmd b/docs/img/pmap_bootstrap.mmd new file mode 100644 index 0000000..c71c22e --- /dev/null +++ b/docs/img/pmap_bootstrap.mmd @@ -0,0 +1,89 @@ +--- +title: pmap_bootstrap +--- +flowchart TD + +R_BEGIN("Begin") +R_GETMMAP["Get Memory Map entry"] +R_MMAP_LAST{"Last Item ?"} +R_END("End") + +subgraph "entry to pmap_block" + C_BEGIN("Begin Proc") + C_IS_FREE{"Is + entry free?"} + C_END("End Proc") + C_OVERLAP_KERNEL{"entry + overlap + kernel?"} + C_REMOVE_KRESERVED["Remove Kernel + Memory from entry"] + C_MEMORY_SIZE_EXCEED{"Is entry size + larger than + 0x0x7f80000 ?"} + C_MEMORY_SPLIT["Split entry"] + C_MEMORY_LAST["Is last ?"] + + C_BEGIN-->C_IS_FREE + C_IS_FREE--No-->C_END + C_IS_FREE--Yes-->C_OVERLAP_KERNEL + C_OVERLAP_KERNEL--Yes-->C_REMOVE_KRESERVED + C_REMOVE_KRESERVED-->C_MEMORY_SIZE_EXCEED + C_OVERLAP_KERNEL--No-->C_MEMORY_SIZE_EXCEED + C_MEMORY_SIZE_EXCEED--Yes-->C_MEMORY_SPLIT + C_MEMORY_SPLIT-->C_MEMORY_LAST + C_MEMORY_LAST--Yes-->C_END + +end + +subgraph "create & store pmap_block" + D_BEGIN("Begin Proc") + D_BOOSTRAP_EXIST{"Bootstrap + pmap_block + exist?"} + D_SETUP_BOOTSTRAP["Setup bootstrap pmap"] + D_END("End Proc") + D_SET_HEAD_BOOTSTRAP["Set bootstrap as Head"] + D_SEARCH_FREE_PAGE["Search free page in Head->bitmap"] + D_FREE_PAGE_FOUND{"Free Page found ?"} + D_HEAD_NEXT_NULL{"Head->next == NULL?"} + D_HEAD_NEXT["Set Head to Head->next"] + D_CREATE_PMAP["Create new pmap_block + in free page"] + D_APPEND_PMAP["Append pmap_block + at end of + linked list"] + + D_BEGIN-->D_BOOSTRAP_EXIST + D_BOOSTRAP_EXIST--No-->D_SETUP_BOOTSTRAP + D_SETUP_BOOTSTRAP-->D_END + D_BOOSTRAP_EXIST--Yes-->D_SET_HEAD_BOOTSTRAP + D_SET_HEAD_BOOTSTRAP-->D_SEARCH_FREE_PAGE + D_SEARCH_FREE_PAGE-->D_FREE_PAGE_FOUND + D_FREE_PAGE_FOUND--No-->D_HEAD_NEXT_NULL + D_HEAD_NEXT_NULL--No-->D_HEAD_NEXT + D_HEAD_NEXT-->D_SEARCH_FREE_PAGE + D_FREE_PAGE_FOUND--Yes-->D_CREATE_PMAP + D_CREATE_PMAP-->D_APPEND_PMAP + D_APPEND_PMAP-->D_END +end + +R_BEGIN-->R_GETMMAP +R_GETMMAP-->R_MMAP_LAST +R_MMAP_LAST--Yes-->R_END + +R_MMAP_LAST--No-->C_BEGIN +C_MEMORY_SIZE_EXCEED--No-->D_BEGIN +D_END--Try get next-->C_MEMORY_LAST +C_MEMORY_LAST--No-->D_BEGIN +C_END--Try get next entry-->R_MMAP_LAST + + +style R_BEGIN fill:#6CA300 +style R_END fill:#A30000 + +style C_BEGIN fill:#6CA300 +style C_END fill:#A30000 + +style D_BEGIN fill:#6CA300 +style D_END fill:#A30000 diff --git a/docs/img/pmap_bootstrap.png b/docs/img/pmap_bootstrap.png new file mode 100644 index 0000000000000000000000000000000000000000..288c07859967fe9ddc971ff6c7364ad7644e6ec3 GIT binary patch literal 124525 zcmce-WmHvP^fr1B3F(qaL~;LN zp5mPuPw6%vr8h0$4W$dGQ|`=-$-};tr?uwhl{fOY&Xz4w{8(MWi<*n56;Jb(MA9x! z(O4BJjws>!o&)XRD+(I>Y|Isj};X9ErLZ7qpEpBW7LW*hP35f-U!7}Qd5(O!--2umg;ult2HId zZqup{nCzz(^%m~=rASKV=$!pq%DhycT<&6XU>*Hk->h+NWj2n2YI34rxCTY95}9(! zG92AsD}&JKuxa9c+ydNu?dq?4F*pPGxLl)S$>vXr>xNI@7ort9k*|LETwc5X{XwjA3|EBMsGSL5S&qq#lH@WwxAqHU6tVoXpQ zUotTioKZdeym=#;13v}+vBqn)^rd875OwYo^-Q0)sh!1~TJ)w|c<`r10>?Jr;%!hV z;?w@*cC%;SrSZP*K2y1Kc9ovF+;`^gZp=O8;#sJxV2zh&p@`4U?1i^;gh?h_l76J` zitWW}3I9-+R}19`dFEAs_c>fo!uq4vOh($(&+kDet<#w@Y5ICc?)66Nt3vyszES3x z6%BRQgdrCN;EA8g6KBPA*xNF$&cw)uU0HuB%jlXf9=N^OI~2vT1y{~pcTYXmA6eYS z3`frHUnuXN;`r+8RSs9=9E|1dA0LaAvpJDh9jM+mbsFD}JzDwrEa}|BALH(YUZxj{ zv0hs=IvyVn6QmXDNlFR^G_Z$2f71Ggtc8pa!m&q38D~4G^A52-2GtqkctO07Ij$w% z;~WnTE54)BcuD5%sW7&|Pr#8Z zS%6jp*}zLqunK3$n%q83mlQX>hnp_CX4y6;+}6kD>kHPpn3%B}Dfb>lnm$cKZ58=@ zU`!n2fwGc0iq}i4-aE;)k(e6AQz@Aw=-mk>h-idih+%ow)|L;PHauo0JEI?r6M1bd z7~3{*CwEr0ldvg#GgW)IZM9yf85R@Eg^*r@4(}JA&yUp}LB&wU8yk zsOzIqo80MyZ&4s|5$1yElF@O{ZU{_gbVip85U9Ut%w(j&+);Q^TCy^$VQ#E?-8f#x^H}4=(mH zaZbiqhtX1@gxU9XYH@1DPI%$T^D=QUg(yb!&{Jk~GH~sx@leE~@D@)$eb(1W3>T(f z(q@QIJe{MQ`9{j-)aQvp(%rDRnSgT9n^T-ngj83V(;Kw`OZ8|I`zD_Pm~|TEBZy1p zun-xBpz3zaSro**|Eo_Z68y6uw|`ESSv6C}@Sy*agQJ7OS5=rR!-x2E?@i7?h~aix zk(VSe_)r=#+kaiZZNp%5>qoRZP9q%?DKLW10O_WN8# ztBgR#3po5?d4~W}RUFv|M;Riql}H&S^>vOwPigXrY>^IJ-M4l9F=?u#@@c8wyZkp)$46 z9i!U?#vg}T#|cIJX)RXS9EF3R(B5R2*26v@6?KySeaV@?qx?Vj#iOCYZ!BF{Gos7T z#hK`zSCb_|yC-C)oS87Gt5$kWDJRcozt+2Xb|}_4@#Ei)=$+Pj$#HOfH+MMaKIWld zLB4%kMMe*I{lD*jMkY`>J3(6~68;$r`|@pNJi0)2Vr%+2#BzgKe8cWpK@c!tPD_`!Z84Y-|fh6fEi$d^t|BH8yn|%F0Kj zpy5l+mLxsRZ`Q z!rf_4;VsQXy1JL_r%ry$rtxK3h-%5|olyzY=n|Hk6B_#Vei4|&e#Mi#-MT!u=YbaF zVI_r&$?TSP98VEd*&a6SNyON_oukNJ?lO{E%;7(x5jo*WTBSmdz3G^da(BC8B=Gr% zF%y$oJl3t>cGC|n$H~~rEytJP&A(J4l~25L6l;z*vY9c|4h(FF2juG$e#iIAENX;; z=X421^_`NNIXK;$q^)kZ(9muV6Vj!Y$CG!ds9^MonI8XSc&VPt&gIG9CrZ!2!eexy zwDLLNg;gJ89(P&V5)oq#-Srm}J|f1$%8@6CJ5*~J8!R$(Gj7Y?By2bG#q?$qWqorW zluTq<9#kpBTvKC)Wjzf<+|#^ms@ICOrEVI&zYQBrW)Rx`*@}5r0vwDRh z9t!=*gMf^^O=DH86Zd)@Q`d0aO^@A{hE^nWE;$(r$M6SeWeDw(0E2UAj1;1zPY~DedM2$q5oFSUWzGfEVt2v6~0Rk@q(K5G- z2cYfH@VOtS$&F5Uma5r91-}is^rtGrko4;OiInp=If$9@j|7;kjLWWYd2oFtx{dX+ zk_LFX-V@s_g&+l0xvVNOE7d4{Jg1XhwiCQBV`7dO z1yK6LHugi72@6aI2lCt;<#D!U2^KDYMupxHmzc^)WUPd1`e&`EnhMlfXnsqn4&`J> zKf)oxB|H4kefC~==nmcD!I#=(ULU{po_VDEW96uCM+(cT%rln<&JztmOIjW-6+CiD zNo^TG@&rS^TlEpi%n9rDsH$>W$irDB!KvOckSAxx)rb^?4QFG39*&Zr+-ESg>LEgaF+N_l1t8EapxrWw`s`>ct-Ot!@^)a_pF)HxYYN>{fWIxZv} z@@bR$ThwY8KFn3D;QX`ODv2xI+1jnQ#*m36C?Hy6@-AfHnHVkO(&#J*25$dQegbBL zh()0_l*=Mbsw~gTX?8PfoXK@FCF!+?&1*_--qN6_xG`Eg{q_mIJWF@f=cgoayKuZV zFS|{xZ4k__9S+`DHHFMMXR40geRbcTWgaXP-R0N4x*9j)RfpH58Az2nO5q-5icKPS zz2H0kRH^3k%Jc`@$TL0;78Aj~q&`--Fu%bdbmS1S2&zpchm_&InEU7M@4ly$)zu!5 z4jZtT%DXu3KX05?Ar{}O7pY*)%J?luLiNs{`YjnAN!r%gW*D zZb>hz>wlTf<-+lOPIuOD=5ImY1cXn&%6#e!*i(XLi%NRexog4>`u$InWq2xMkGg3SL()}kJCFIIFgo{ z;s-Qc|MIdRT=PC=j3u>{vPoHrEF3Fyu(d(vq-WMlm{Ts$^x;)GQ8NfT3$C@$lX6A6 zaHmf-s}1m~x-mtS5dbk>fCZoP6L0vR;}v)7mv2isP*azj&=#zU(Ok?EB+YH;c+5C1 zQd6tjjO7N>(6y`sx1913aEP18P_~~WLPA-%{l&L z*@IY;(Tmi>pu96ZKRD&o=XPovIFpTz>tf$JELcK4DTSUq2P4 znJ3@hsRWzE9VJA@w)fna!zJB6O)l!+;#Rt``p%%|Pc13AcK7dDWUK;8I*aqAtl!7- z`S1;_%k@RJcjUmmTq=H8*tL`6EUp-D6`1JDjiw!v?`8T21wTzKk&| zP*W3($Btea3b@S$jUX?5CL_7;CZjRTIY%k`<)(UcOWBmSXBMT-#K(bYvO5EJwl}$y zL|QlkfAf(r%?tY4XU7y~7xDn{*RoTN8m;->MGp?kNlYIbAWMJ8SaN;i``QxfX8vem zyT0w3lyv)h3*HaOS?I;|b>!=-pG|bINC`#|StU9`bf<39e@)#@R()fLx=%&=Gc~59 z3h$=l8U;0H(r6Z_b7A;^etvdQ_&swZ^o94JwyPuCMJrLjrMLUjbmaB^a1la06naZf zhsp+eUA}c(gHLsm&s{uHBaH6mLSy}U5=Zt}1VhxVDF_|?^53$d@M2`+3uT~_yCEjx zB)gHq>vLh!J)Zh-pZVoxRHMm?2H3W`_>2L`X}tpit7lM-up#bBO#R$Vu2G`)q*WD4 z@JhlLh4*HOk9Kl|tl)2=_hFDdjgy$}Y_Q7oA>}09$)Vtzn~|lv3T$p55x}TNTMFr1zHoE7&bdXi3QbGs9?e*1Hw=in|u#M!dT{z0`MY zv;6n{^WK){a4f@~Hy^OB(@{L&o&7d{8J!(I`;+)RxCE_kaQdsk4?R0vX*u*ilffU2 z(EU>*&7h*aPqp)dM@piu`GS&Zsh4Gw- z3hzizuCqD#NWiFsoYdl+T#FBRW~?j>n}FzWX}Ze!wn8Y#AQTGK=1^RHNj<+1g6m8w z`2Kg}Vd-X`*uC%FRgc(a2d3D@*1P`o!-1K|9S0%rJ1h1h{snZ=I07DD###^6J9|hq zdidF~<(lL>J!#7?6R9WJ5e@I=pCLXa68N~*Bx=0o7ELeu&3VbJZFZ+)#6h~bX3p-y z`Y!~aNxkqVK=x~wmY1(ay{_yKf-%+0Ehi_LwQ6FPmOg6}@L=Du{ro}yfr2mcGh~l@ z#MKzCgL?m$J#~v#+k@hZ-t7@d)fa9$W^{G*ZV@cTzh>-Qn$)EaedxCdtah`Qc+t@s zN}^K2JNl-_pl1F^B0>0A29@wV?6jV-t@bp}U#UhC2l-s0h{r*pb^ll^FEI&8K|a5n zyZiI?^$Ah|6Z#4g5wD?&)^YXNG?g2ImEJbE$`3V*k{b z-j=#z=lsN`&ZPcJy6*R0(Oft{DEu(~jPvP}lHHoj2S*0}=NL*NrMZ5~+ z;VD}USoFRd-E~$84_CCBPw8lA_4VrB^+&>NHzpp4qH04U6C{kaV3!C+Ve?s}eEU_7TvQuvmnK*hpBP;xI40+pG}0&7vvDIJotun;gYi64ZI zC5u#k6woVr{rIrJ@>;(WiVTy+(yPafzwpxipKVDNiKoZL;QhZ5aBxHqWQzGik)69N zN*0>KCEp}NzY4lyN$I3Nuc{Bo&h8kb`W^t50p#K+#g2x8Vs2A_EU-$?{-@Q%t`T@j zG7!Bw=)QSl!qS%2)RZzh`hulx>1Y`RC`4M7BCz()pC2Tpf}*4BSU!J-V=*vTdLE*@3ljC)7?V3|Y)< zx-Zr_X^?i1g&^W@sEFr9l|jcw!nR|$l!ScI8@H>a1lD(Ss>scrB(tmI0G`nSf38bT zNx_XvRDY+oL8$dsO>JZ}eXBQGE`qc`(5T68%nwfVDdG(-SjKK?C>1-qUse|63H<#t zv@^3ml#ihp8ZJN9`}LZ(PLkfW8QaLOb^0j_s%Jkr;XU%qe=0z>ZWi`{f#B4+=UXQJKK8y)==5s~|mzrF3x zH!4>C)QDArwbySmcPmKcb7~&x)Du@#ns`EGZgNKKA+(-ZTqqrEy4lT_UG4$x@ZF~C{B2JnlDD;m@k-DVh(3*jm=a2-! zO9qYbHvJde+zTKd;v^^?`H|nN?n`Cm*Nsxi=PdIfq$STjaC4^#D4GvvhMn+@Ho=zuW!2kB`GaA_rp(8diac>kA zL1Sz%)QKmRmxYGom_s?m_OO#&4S4Y_ykh=MWV-)egW#NhNy!Kaoyq@7Dh zz&}GnTe{hm#vvvB_3QIPKmeLCP(wttBPz;YlL%%bJVdu{c8ialMzs>MZG?M@o0xE> zj@UnbtjER0scL&Aot%6s{_6o$`p?uu^2=MVc!O=-d2jdb61Q>J#`7n0hSzGqLqI^tXLA!eKJsge z&e+u9HE91nKA~AqAn@ATTcTfaH*KslC|R%Y5-7~d3Atr1e*zvuh=3f;>#~;=2(*WV1Rtl!Ja<6>eQ zFvyv|WoO@nIU@mSF*8H!>fWId;V77!V}WA{2o7FZpXhmGMoFNe>X^MAnim}0L!=Y$ zamjl$u8LV#$X)N(<_}LK%pY}iWjXBDTwEOU<%_t33W=Gps0*f7_3~d|pVNb7kl2z+XlP&=7__la zeY0I$U=@U~$4O3Rf`&HUrg30^LRKteTuzQXYoP*bVinKfp8mVHZ#y6EgL{Wv@2qBP zLct+HdLRct?-SlGdyx`u9e!2C!nP*@azN$x7;kU$k8t0^Bxl}OYQw=Gcba1;YH9gq z(o8NQ{0xI!25f)vdZ>Iu?Wwf9xVd@OM%AII=XE9Xl?F>B1 z&i&_jc=lUwW&0tfn}cN$6lDTNBGS9BvH0el$o!Fn;Kif*Z6fH%%78!YA-`?qYWJVF zq33s_tX=T;5!F`S0nDQ2?*3}nw`Jx2@^QhTs>u(cr;r=9 zQD7R3^_(XTI4kFOc+sqiaN={~5)v;=9qmsiIwVN>-zvO*O%)gzJe+hhK3pay5%kn? zw}h`o`<+vS;-B|<2POGi>|CbIOIzWl% zW0xR|l&G&e+%`IjJsg-3k(lW6s1SB7(AHoMqijMhx}7wWM%P1nw&8(EJqjA8T~tm^ z(JbIYTYVNJ-=NdJ{0-96gdITwrhzJa4A|RNc$7K)f(|)_>k|BIhY&qqZz%B57N0&n zA+1_NBNv7OC~Y|}AxS|J5j0gDL8|`5z%@=@b%-1IYP9Es!;d_g| zTR*exqJX*dRv1Napk!oZz-EO)%M-G&$jRm0uJpsC{6mWpOKqkrKX_fQ>t=W!L<6Oe z(IN)$4n$CYe{q#CxwBI|$R+-~()aPT%l=IYrr2FlVWAOWIARbwiMZ3xko^3k1e>=F z{2+XL4JR%be{+Kf*0(pW^{d4jVQ)HC`Sojqe*QpF?=Un9(Kw+48A?IHw0s8Kjv(}R zZ=+l)+#PwD)VzAHj`>^%8|CE_|2Eb}k9-g2@;E!<(k;u+H{Bc(b~zZJrKgW{-sP>H zD`;`GeGwgPFz8?X0x&m*kr6rsRBQ`Xa+l4L_d=h)e3>9b;}w@!Woxcj06=-HA7gDQ?C&Np@f$@T27{L&GI8G!)Yu46@ z=|$LIXwFPa6aL*_)H}!%o9gKYj)tWlc!!WM(spnhgaVu~V6ChB^OJ$kL$&J_Q}JVx zt`ds+?JPfij=~uE^T+L@#?~A~dgdioExxDk8~*9Hy)2Th})%MMZUC zntp$&Y`iAZGr_K?$B^EqWm^J6mIM~hjI6BBrL59xU!Oj`!ogaS7jG|Uw9XXP>^Ydf zURztM@VuO~T5L)6eQ0aiY7}S5p(HX}ZV7Gfkd0A9{xZfL`5kkeqoB7!r|? z3!YI=#3%O>fd9>&r_=RZiSv!8n)MDMOzNdbl$@MlQ&S8!P4;M$Is_80{K|^t2%?oF z;lx=}2h{+-xMulmusJlB&{*o>er|BKwLE7p?d7NsRT0zLR$1^m9p>ic<#61SjEBVk0iZ;Xuzf$g!DYOMXn zBS<`ML!#g?`CSV*qpPz3HR}if-O^^4r<1xu+3VFn*;=j)*?`x*T8n+Gw3(-a03uGy zY6Fu79fy5dcWFr7v%z+nP3NUo*jlw4<s;BK zT`lzuqr5mkzj7W3xlk+Y249^NE&(VJP;C_WJ9MUGT#% z6%jU$Kx;ve64-YRc#@yd-(=YCngmjZ#U5iSE9HK1ARlg|mYIR6zyX9I3dz@2190HA zxl5BKuh&|By+$o8BJv-{{c?MlDFa}w(PiKE;qK~7?ZU?nplb%dAQUUBW$U@ArSw$G zA8*c2U7WY6N2NgKtsC%~tIO7^>85Mc$|_e?y~S4mU^~0QjbU30CsA~B%P;E3+s3Lg zWih@yxG&awB=){Ja{;o{Q8QV8$7}oW1?0uA4}D!7RwT)QkZr37s#IR>CvyZ5EyQi4`DHi?in-zVJK(+PFY>B@Dc438aO zP>?8%X?=toH0-Lues*?AdVk-SDp#pFw(+1L9>id!tm={< zW#O_(K(xCi_Bh=pO<@w9Tptc%8GzF`IHl_~vn#R+q(w!=)Pp;_yD-_d9EWqbxu4qu zxy`E`E=a}1;>su~WdS|P^l69(Q^jUvwC$F)4zKmO+8s78PBha=Hb4-dHrW*w(Lf=t zCR;17&c;eKn5#j|wFVSovu3uXjjxp`uSke`v%=XDL#-%W%eHw0gadWxwudbWX-S=( zA+mAtA1V#If{V55Gh7!m`vLBsey8w`1QfTfK>@oSOu<^()bw?ti0@=Mm_ii*gs6Ag zH>wOM2}#!Fs^QAxvojiC3`O$T_VOTF6u#Z-fF*O*B7N_ed>>8`|CTLw20RN9 zzCUvsT%Z|!#`wzV-Q)EzhFaOeFSAUOvGMWF^T|l#zs0w8_ZM!}+)(YHfq@dBWaHx{ z)T|r3vyszPzMYXiP6XTAwpG9iVOmx1NU<`z*fKq_9@1-pN7)dCOTTk9yC}M>?0Z8G zxDuy%6a}WR9f9k-GYMe2rL4+1{nO2!V)60P?rYJFIyzsW+yL-id0Zkul4Hj3B&!|Gvs$UGU)~F|z!lHBbVhgSp_VZoY2w8=>f; za*Huu2#h&sYllG7tmo=R?#|2l-A)I^PB&70SC)f)yDLqGcY|`N)BT=E(wp)UQ~`P4 ztx`PZDrYXtIS$t*3!W=^dEeGIa7WuvG40Bi*3*5gYJoZ#rtoJS&b$TQ zvA*7v+{-Qo98Yv;-Q&ZvoFC006Q90URD`^cemSfm>Q>%x^wo(Q0jfm9cL`x@{+R~c z6A=e>8iAfyjL-ozPdbvklvOcjcDk_^(l|c^!r4;RH0@rkE#aB_yo~T3HHI}ur z^~c>B1Rv;DTJR_ZKX(K(xt&kAUT=!=0rz5hykaIRHyRg1y>Bs`;RP`?q=v~$`}aVy zs@uc$4-jJWubzK~_paZ}ux-qLiGBG4vMkQSL$A@|#dFwviFtE*X|T{lj@Qr^{w}_U1l8L04hMlYn2~bh-0sZg2h@1tdv>z&a+sJ z1XIk5?{ZP>wGpYL;2+?Z!iaeWCQP6*O!q)vjUVpxRCTQ3C@Fs>22*70trSYm#XgZl zD$38_=pxWFJKbQb1E_p`JxtLtT-I9Dk7LgSumHwvfvqirhKihcn>wllK*VdTrr~~V zjdbt?$-*3y;Gdld63vD)vYWH*L3y^p^}kxSPR_E_HU(K(SdH^a#>Ppo)9GgiKCrUt z^3S;O=7MMIE^xnd319&r7=6KW{-NdO6UE}=gSGJa_~R1bI1?rzbtNk+FCY#6jWPtd zBqUwv?^LHQ&NB&xT;huQvF)``u=e+2l^^;6rKh6QhqT_#KibbbbCj~mg6M=G5e^Ic z8$NP$Da|b|W`>&!T_dmJlRdyTI<4JxJ)YO&golUU-AppMT}*e)d7Yj&JwEiKU{a?` zf*2hh@vK9CYyIDzE5(j~Ev-lDz13@Rj|{=|*Fto-EvQ0ZJG^2t19TL6l6cAxya|~=#I+5H2WRRG{hw|3A+QNQ-sS#w+4AX3Cuw=kQP|*WJ?D$ zu(5##TR`5(=mkgv1O&YVp}Nb^5f-Ej8>8ju&d7Nm}{Cs{C zzt&cpC5BPWYF=S}MoFj>GXk{e3;~MKVq(q)INJ)P|E=Pu7y^_D;ah?n&m{e^4WzxI&6n%5HA=j};G)xqa(b zhsLCK7jHf5a(vSN*bfr2K*uCYUjcgX#qWsj{6 zWPpiTXY%_kIPRhxi2XC5H?YzGqiRbBFl8OsN&*34fVg>HI@{AyAJ7A{2@{25Ma5Ji zCntwZA`7>IGdjk_PUvyG_5HG;0S~)gZU_Riv4{yAa_S}>9h59ADu-%3N>*yNVFl9- zwSz|6FQpn^o#5$}#^FG9Vp}Gi<)2Du3m`y40f5GX+14L!>0uAEfY19#2?Qo6ZibGj z1e;I_ZsiFq3@k2YtABh5Iolqaomhv;kmQ$$z=6KDoEJ_PM@u ze3jOt_jtnriKVA+ti!>!kau>DfQ&TOwsplros@NW{;mIK#FI|VJr|+fzt$^3B!ZiSh``)43vSaTk`eA>W)|Kvz5(S;Mw33smjZ<_`vSY|Lfg@fC(EgvMq zmjjZsH4T>kW)c9#Fa`p@sIOl?0k&)J%t$?o0f-|I=!}dj=0AaMs`&8_Zf5#E`voF~ zLtvsgBIA>jV^wC#>WNgN>-F;gJt_7{r$uFDi{Vr`6^J1n|2+wo27&=XKi2kWrI<_E z(b5_+HeDbxHXh|iZXTWrqaINZoOQzlFJu8ysp@Riub|omdyyhr^TYQ*w!ui?L>XTF zyt>)-=jP_-bTH0=$--r2t33y35L5L1v$F$&S5c||PyibNitl-e4*^+nC!+{f1)w|i z+9;T2K%}k!t3XirBuol^dHEa6RnN#88R3d}Yz=4huA4u@Tox^5{h|5}T$!spY6_mh z?qE!lk>MdP*-+Fi1zQ$IU~s4^82@40KM2wX|KlcwK3Q3{kEv3eQI~u>`Xh*fy%K>( z>Gxea5*8Oo1~jmRIGF*baklmC^*D86_K}@C9(CtD!z)Nvmox;>^CJ>N9uY;+ZvZA6Q zfJ1_;qd&ah@nl=Ec(Bwq$o07YYUeq5#g1dcU}! z;29>ScUEYc((*TN21yy$TnHSg$R`j0fwbX4X+eQ(6?;gU6c}U#gFl2`E+b>Tdncg- zb30YJbV8p1QuIC$dR*Gx9z{LQ7-!rihQHE-hn$~d;fsZ8M$%zB{SXpKlQnfFmE|BP zsOH(N`&EEtuz?gg3-CiG^)2dCJCLJ=gBP5nAjP)u1bq!Fe{`4I`q&u5*ZU{Sy{?HL zj%GF8tmQV9JOxm6q=M350-!lTve?2uY~??TDH^IRBj~9Q%y1M z<_Autj05^3x9)fz&96R|^ zrg;^Gxl6!8TZM==MQO)bwW&lm8uexdbD`7D46mkA?o+=Ul?6E}U6-MG@MSwT^*9cd zPUe%R`qeXAV?A4-VIe2o0;{^NF#-kiLo%aqQwL-!pS246^m`W#0vu0rQ%1&MlAZ}W zEn5D^{<|Lh3i|;S!-w-Hhf}6Uv+6NN-M<$mb1Swk?e7dOoXCkAzb;C%QksY(&yJd^ zc=mkKO~!&G^?fwU6+9Vm?p;IE0AW8vYsOuZSa`@0{r8@u%$i zxq?<4s1z7}DGDkSvS!|1h_R)0trK0aqhGp!Tj>mmg`6Ff00^0%-Zw`J03OB4{YYNU z=z3412RAj@nQg$Z#elIatk*PCz4(PNl0FcXLzpERlRM*i3CIf97%iWk;N3fv098 zkghwzq6IU~6>susLW~}=x~Tr@C?0iAk>l;qFM8#Va9i_@BE(E@a=1p)^SgAMooat@ z5h~Eort~gmNTC1OE$*u6pG#k?!_)QLMJJaF%l6qU623KmIs0j-%8)H{!$wA}=H7>O zw<)(u-$1aSz(Rr89$|B&o10F&fwT6Jrh0k@j-7DmA(oDMJ{+i+kb{LAB<|&kKkl4yuOKqrnng2il7#f1VpxTrE5gyV@sF*!uOyPBe8v6>47cza%bg76S`fTHyS2o99|M zq;h5*(X!QC;kF;}$Q#I=&0PVjrcn_bKz?|CX zhdOV+x2OS7&v&Q+PG%^WI+@}DP6##>l*A-tELb9-&C$m|xlecbLbU^A= zj<=AJ@$siyg*iavI$$8HtgQ7mDEQ8a+=tu0-4S17ieD^byqIZvd&0`|9NfYM_?yFk zTh<+TCrD@HA~I{(5AsCOhM2s8BM^DJc&=r&)e&C{_!p>*`l`7*GUcDO`3j_k)S(Xf zmqaA+6Cdz@|F#NqH|M~N^dGo(JuUlF@bvG-yM)Y877IkzaVrBeO~&iM1qC@-dI2;P zzTC<+crIS}DJ!XN;h#~`JqUJJ{@cQhFB04iXlSq)%03kQ*cwYlQ!@WJtWz zWDG9yBD{?a6c!wE>wfuRHX-IgiI>+OTMJ!MN%PlU4pw>cbRA7R=1Cjmif+*GATEEb z=BG-X4QoN_iu=0y*jBHr)@4Z45a@-4z4FwM)Qxz>Ip*Ke0{@KL-PsEcF`tc@%KSBA zB;sdlY2rxcK1z!@v@MfwQT+G==@H-T7%{~fzU)k@aq^*EwD3mLYMRF6xv83ju4f<= zggM$g-U!l#r7E#y6=KEc$-fwd1Rg4{Cc9P=3h{kLowp>;Y8eRA+mRzj_fN4d5I(ti z8PlUERxPebSC(hSwV_U=@C?52FXv;$8!OVPxFp{nM;OXSvy(VSHS0$Ys71YUX_HOg z;yaQVbF9C*hbx<0c}iWUM|bVWeC zbxt|ruUC=^ajX3;>c~C|bkyynyY9EwMn#p7wk!9?BBR)1Vzg>X}7u$Ii-VQMW@Ui(wbshDCF8NsXfc9--$G{RxaM4lKv>3$+T>DaP#%HVcIqK zbgmBfs;GFo{8|tl0r|{Cywlr_;gwA7(sajAFG=c_weVN>$#;q4Z}k!ehc+xCtvst3 z(L$+eKpqvMxlA5LkPg7i=EA*?IOK zWDXUi{I8HnEyfl45~9U=D8?0gc?yRXmc$)Ajk?s`1hNi*;UUO*C01-Z2QC zIjGWuXI%|I+YYEfElhPDJd&<1v0?^A94vn8Ie5M`yo|XK^-)cB+2BP;)h5=n&1AWA zVM97DT0@LbioqAX!JbKRY1WU)pVZ{8dsfy|JN_F^7dD0@`1|YIy!z z&0AMg?AN#p`q$qp2sAs|FT_gpJ$YU|+Z`o%7Z)`|u`v6~^RT%sou{nw3f>Xv!>k98 z^K-ze0IKpm=PHFqQq#*#AtPdb@TRLqe8Ed1sg%;QM`K$#YI@?MAXuir`Ffc+BRR8+ ztX0-*fNt}wRHDzrTJ-P`-oH%_oi2Akme#@Z<>4NCM~r~mqcOSBq2|DpeeTAsYA_b= z>adVWykB26y$^99(sm)NLs7D!LWzjlDw$b!m~NSmD1xN^gEi%Og%fXtrrgP%fU!vO z?^`34V-IiI7BTx`$EkYjWx<6-&bZ)*sCJ%LgA3Kh2_LX{4G=?i2ib+v8KWU^c^K+- zLF**wG`V31N2<+OV5Z;y%~Y>MKz&j*tsXDEj5?;dco#F+FJ(Z46$>;^%gy1zNk(Q< z{h6ql4GF%o%9QqKrUI2HRYt`#Sq0=%xR=A8`Gv*rH`r?J%zmrTNfOVV7JpP+e%&Al z`rojz`TlH+2k22(>B&-U2#0>B`?YFp1p^&I()gQhLv8!e^pRR(k1R1eI&x&hXGqf=g;ir(7zfH>$`c)X|k7RF;KN@pX;Xd(GNVpqLm29bu zVKgWe_&^Utt@QtHxH+MG&Ug{P)_}+}phEq47abP;~`?IW_f4E*|wv zBG7#Gf0}QjK$Y#y00#dxd9Q4M!2~eq`fo5BYeWiJ+03oMPxHYcZQsJ!3AdjF2II>IMsc( zWP(}mf#B}`_Vlk->r#qkHk^=WEm=nss={|9P(evlbp!GEzgG5dKYyknQKStY`qZX$ zc2?Y754T!iU}6w!>}MTOX8*gSw$?_64kX}7F)=Y84j)aA=MNVg7S0X3dFq|z1KRze z{xJRvO)V@CXhUUVUL8}e1!)4B$HT`#Dt@=6H?{VYSl^B)9YEIsxQt|`;zicl;o=@Mo$- z0<5+7`oHIXZoS`E)%CCt04;w@iLG8Kv$m18vG*?jtrR3|Uj&L5<w1YtU0Jc_Sq3}ae7sD%OrC?p2COCi4lF=Qxhg|>0*+1z843grN7%B9x1w9_0HhI=}s9S%x|1)|a>>ko)mm%AIu)FP=@ zRPbPj!un~kB|BDH^W)Dgjtnmc;)e$xwMgfb8e;75+$7HaqQo~?u+Ivt*J@a z%q$b*&^F(CUaXhdjn1cSd9IPzSqQEBGm_99-WZyl?GK6^rE2N2ogWxszHO%bg>(d` zLA!PWn{VLl0ZDrbPbe}fYPCmk|L6?1eT76d=w5&bx?-5#-|%UfkYlUo!Cb$^cLzr? zgHEUg-g7eJ>y!6%%H*pmsmwYumTx3ghfbIF_Xm?WB-{?0G5PJX1`1B0b?`8e$dIV2 ztM^bmUcJPnA6os*)L7}`P5kWHVy#Cp{^lOkd`NaB2%|X}gX~VT(Ir;Z6x*Kuzpbqm zl@(rH4`(icioo*2t#3DYhHpR+qNYf~7(Wwrif7O^xT$`(RLgBO+;_#!Yb?78T1WEV zoX5vKnH&ylPA8|Ar?-obDWGeBfP&(3%6MD+qabw(31+xdL=)MV@X&7Arvhl*xElmW$z+UtetHZ!pPJ zM0FgakLBJc(8}wA&fr;%dIwRRhNoI03AC(y)U5R6#NnjwBqk=(Zky?8@;+$TuKxsD zA>;GlBNdT0ghb&b_i=_TiI=6zI-=64fR%^(BQ-e$6xF{;M{9iGT{J!r($< z>Co3VGA>TjX~)>;{)QV7W6$c!RmDn*drH+)E7TtWGV zJ1pj1Ut5o+jFcS)d79m}f8>E4IW3VG?I42=n{TR?S$~n z7B%o&Tt?k!%b31b=)77;MLjY7c*Mk@u|TiCsBFhvfja!((-RAF*4RNVe(3h_&~UlE z$L(yS!p(D6y|~eQF4<#qNCW`jDBYGGAApShqvc?Cko)!rU3=X-6R5IEN;d#YHfM?3L2*j z+bHb9y1L|s-8X*y{iUvVm(;bJxulx>F;x{>*3z9lJ(9^RAw3T}O1m?Xn3ToqrW6_3 z^e0SRTa?tzY(;lIB7QxC$DG0BeLd?A=x0C!(=5G@Z+30=S&jNdGP4?vSHfDx6La|I zifa~xG&Fe9J&x)C6V)YPq_8IeSSH$*yHjOEw7&zPILCjdei@%i8I%JxhIDa>5AH5l z!6vH&n`}x4$Y@6cT>o<9Yp=n|pTq6U9>pZmGZ1fYL9df6m%FnX=VCxK)(4`g{Qmv> z;9~XX!B$~nIHB{4mdl|I!0yQ$j}2mWCGF(vr z#My_Fzip~f6r%-Ih+x3ByQoG~gY1uNX1N2@+aNPPKf z4aUJpsK=lRBij?T za##mBFkK$c^1dCxZBM;>=B7K~)mrJmLYu%c79t|Yez~qEN9RN;fj$e<7~`+jlGJsjMpWjXSfay2Fs7CO}P?$NWvmh#TUK&1Lq zn0MHjq^^2ziQzqsCEULy84OQ!IqQ;F6ytSka4}><^5beV_{s4xTX5L+(B3>yaB1Q& z(Pg9x_Ql>aniZvc-|m2(%*Zp<(D1pRN$udGDlj>*r_IZ!zt_b&+{JHE?wSD}u@l>S z-f?cBr&~ub;X9k`fYJ7R0}_acXz&M06+Z06ZInjay{Nmxaje~no{=>>-{$`k3 z)xp6|!2N7zY3Q=>a^Pp$hf{d+Vvge4asf}bGOyd@FJHeJ)&yz7);uD~1biz*%ah1` z>E$2JrhLU}hd*$NhKmDMtctwYNGU2X;H|xVdL+)jG1rWYnss@CyfM5_lY1C_nppO! zDLUA^wV!%tNexAo_gz<_t)|ehC58B~a~}%}DeP>=vFyq*qcNAq9`!<&0>&xA2>(vA zJtHM0Jvx2@5I_jPCN#r=Z9Y3;&xC`ytuZE6Xr1d!?3~AhmAm~lQ~L4_d^IiE+L5cf z`&fgsbFnXGRHocRSrJCjbOHY92IrP>!{90c@Bj!I7QvNOrM353uiDMchJx+w>Fvj6 zB)g=AriSAg3$4quS@WCQ+aeOl&P~{sTw(R_Fi&>8J~n#W!`ClF>o6MuiL^19t^~QtjmXYWU;i}7hJk^h#^qV`#DmRJ zQ)NDGfq+o8vDXj_G|QZ}y1Ge*fTlQ~FYJV!lXrD}nap_`8%<#|$+@}m5!j+Yk4wXm zlZe73#M-1IP`0tD37_X^$G;|&+kc)U(+4x^U(d&T4WuJ2-bH7gpH%_-%t?_C@g7J= z2mG|?bUhH+x>x59b@^OYrugQ~bIcX|hefIah|3F~Wb3PMU9rK`<+Gx%=;$^&LkNKO zu;Yd4-rBF{3)en$r8{pnhJjvyl2CHjVnZaOysQo>!RoR5K-CwShK;ly2(T8ia&zPS zky^5KUXy}@XQRqu!#^sD%lmSm5?6s{kCB-f;sYS&FmsYGBG>_D7kB17MyN8GENOCa z_pVWH0*A6_P%{F!MAcvLtJ6P)028_=pA4%kBSXkzkD1DwdTlBL2S@C(q`uI9N>cZFx4u6N=z#&8*$KmfrHZq^6r!U*df#v(_pnc534;=R^H>QLy@Kcu7zQb z`L2IeWOuq?&?;dVHI|*gLm!Qx58u7{hEyjFv4GU<>^odJ$}}pn40v5#U60%938CQY zhXYItk7LVersfhZ8cY3WgC!@I7_sc1$-jTKpj!hv!@u zK%5JEF#jQZfIC}4{Hvtf>^avris9W5jy$^wp3KuQiG+Qj8Mt0&^(-EPzE8u zuslU@!n%ah9&zTeI*c+?$q@`?A9f_LQ%CHKhAmbaOls{Ea9pn)XEd)f`a#*FHHd$MnHV|7G(3RUK9%FHX-fXbGR>7P%(;4`Lpto&e@9G% z+B^=sM?2?h@(mAn{7|Ib6JG0Cr2X~Ns-JTabmONtG;j2hB5qH;Bkm>)L9ESKcW^Fj z^TtjrNgOuOk&rcT%ze`6Dj#D!pfK-rDB^SV#7dNTQJ#Z`mPNou7GlSyj6D42PmYdw z*+=SwSR*5NnV{1TCLf4-x3~g52u-k@%>o$B7IZYE2Sseycwjg zYIu^^dLkWypd#hSU-75?~|QMmDf%rvDuyGB}^%-om-9u~@5OM~H#u-N@&V z@#K!guPmu}@I=#sy&!h z;C>;Rp$GiiFg?iBX8pV|-NaBEXU5A0r-RWH_Bd+B4}D+MkDT_iD%c|uRS2!ERsEZS zQ8Sq?@_*D)UJ*dNIw?=OJ-!Ert~@(}H`rcFAvEXfnZSY_%tEj)=##%9 zi#qt+Pu_JdUn|BgTd*_bh7ysIGWv6hSVG%$GUH=CQSA=<@C@7VdAfueVh_)66;qw- z7kea1C=nKDA|YG&?cI%{pMPI}L3%#2nQ27Zv7EfMw1vBuePS0;7Jt}u?dWaIms4Fke zLHPAe~AZved)l!6(CG_eE9-2KeVe8&U#) zjvB+s>3J6}-f{aI7hN)z5OA|nSH5zG$fS|TWh=G#Uv;={B#m|ceo6*4Am0UrL{`XA zRdWxP8quGpAFWqr+LC^4(+R11{45qzu5Ch=0HgnHN@90^>K|$w_hznQ5c_z}uB}$) z&h#UHAwawv+tCt(rwg5nc3xOsgWXOEbAlR|!Uo9|{oHP6L0I@LpAzDG_CPV7*IXs! z4bU(7cQvdZ``HmIqUMc$*L2$*6WQF$(b5&7gl$E_C3GeC^&^cH-R*Jo_E}Bo-(X%| zz7y*XNWa7U`jR_*PYe`-|ENpsCcO!|wi6i)rAnJsK-2l8^?Pqk*hUNuIec!n$$oMXTF z!B}wK_i4mHGlNdK_ilIr=(6PGY!TntxG;&H4`sM32ftA; zu`}jXp^Ai>9GX&Dp;2=m5kRwsNk2lN!|U(V)FzENC+O%sa5{h$gEwM6;IZGNP2zbX zJyGHry3piaHDfQHeLC+nD~d*x(7GCR4~}>4A+C1^XL@LeH$}G?ImV02Tq39sEO3<>493`2yhys(;6OuvF|rtP*&PegDpK=;#Mt)L4)JI5a~V z?}?19-g{CgSuSQ}#gOYt)N#-?JIf|WaeP$JHQTdABi5M;dwnig&mE7m?kUW_lUZB$ zY8S=GsW2b+SXpt?0ui-ft)syx6A< z#Kq=w3rIclz=diH^3|
-B_ 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 31 21 11 0 + ;; > +--------+--------+--------+ + ;; > | DIR | PAGE | OFFSET | + ;; > +--------+--------+--------+ + ;; > | + ;; > v + ;; > Page Translation + ;; > | + ;; > 31 v 0 + ;; > +--------------------------+ + ;; > | Pyshical address | + ;; > +--------------------------+ + ;; + ;; About: Page Translation + ;; + ;; > +--------+--------+--------+ +--------+ + ;; > | DIR | PAGE | OFFSET |-----+ | Phys | + ;; > +--------+--------+--------+ +------>| addr | + ;; > | | | | + ;; > | +----+ +--------+ + ;; > | Page Dir | +---> Page Frame + ;; > | +---------+ | +--------+ | + ;; > | | | | | | | + ;; > +->| PDE |-+ +->| PTE |-+ + ;; > | | | | | + ;; > +---------+ | +--------+ + ;; > +----> Page Table + ;; > + ;; + ;; Macro: V2P(addr) + ;; Convert Kernel Address to Physical Address %define V2P(addr) (addr - KERNBASE) + + ;; Macro: P2V(addr) + ;; Convert Physical Address to Kernel Address %define P2V(addr) (addr + KERNBASE) + %define P2PDE(addr) ((addr >> 22) & 0x3FF) %define PDE2P(addr) (addr << 22) %define P2PTE(addr) ((addr >> 12) & 0x3FF) @@ -26,8 +65,8 @@ PDE_G equ 1 << 8 ;; PTE_PCD - Cache Disable ;; PTE_A - Accessed ;; PTE_D - Dirty - ;; PTE_PAT - - ;; PTE_G - + ;; PTE_PAT - TODO + ;; PTE_G - TODO PTE_P equ 1 << 0 PTE_W equ 1 << 1 PTE_U equ 1 << 2 diff --git a/kernel/vm/pmap.s b/kernel/vm/pmap.s new file mode 100644 index 0000000..5e8e348 --- /dev/null +++ b/kernel/vm/pmap.s @@ -0,0 +1,46 @@ + ;; File: pmap.s + ;; Physical Memory Map + + ;; Structure: pmap_block + ;; + ;; .next - pointer to next pmap_block struct + ;; .phys_start - start physical address of memory range + ;; .phys_end - stop address of memory range + ;; .bitmap_size - bitmap size (max: 0xFF0) + ;; .last_alloc - last allocated frame in bitmap + ;; .bitmap - bitmap array + ;; + ;; > pmap_block + ;; > 0x0000 +-------------+ + ;; > | next |-----> pmap_block + ;; > 0x0004 +-------------+ +----------+ + ;; > | phys start | | next |----> NULL (0x0) + ;; > 0x0008 +-------------+ +----------+ + ;; > | phys end | | ..... | + ;; > 0x000C +-------------+ | ..... | + ;; > | bitmap size | | ..... | + ;; > 0x000e +-------------+ +----------+ + ;; > | last alloc | + ;; > 0x0010 +-------------+ + ;; > | bitmap | + ;; > 0x???? +-------------+ (bitmap size * 4) + ;; +struct pmap_block + .next: resd 1 + .phys_start: resd 1 + .phys_end: resd 1 + .bitmap_size: resw 1 + .last_alloc: resw 1 + .bitmap: +endstruc + +section .text + ;; Function: pmap_bootstrap + ;; + ;; (see pmap_bootstrap.png) +pmap_bootstrap: + push esp + mov esp, ebp + + leave + ret diff --git a/kernel/vm/vm.inc b/kernel/vm/vm.inc new file mode 100644 index 0000000..5cae722 --- /dev/null +++ b/kernel/vm/vm.inc @@ -0,0 +1,60 @@ + ;; File: vm.inc + ;; Stupid OS virtual Memory manager + ;; + ;; About: Memory Management + ;; + ;; Terminology: + ;; VA - Virtual Address + ;; PA - Physical Address + ;; PDE - Page Directory Entry + ;; PTE - Page Table Entry + ;; + ;; Memory Layout: + ;; + ;; Virtual Memory above `0xC0000000` is mapped as kernel only flags + ;; + ;; > Virtual + ;; > 0xFFFFFFFF +---------------+ + ;; > | | + ;; > | Device Memory | + ;; > | | + ;; > +---------------+ + ;; > | | + ;; > | Kernel Heap | + ;; > | | + ;; > KERN_END +---------------+ + ;; > | | + ;; > | Stupid Kernel | + ;; > | | + ;; > 0xC0100000 +---------------+ + ;; > | I/O Space and | + ;; > | phys memory | + ;; > | Lower than 1M | kernel mode only + ;; > 0xC0000000 +---------------+ + ;; > | | user mode + ;; > | userspace | + ;; > | | + ;; > 0x00000000 +---------------+ + ;; + ;; Page Frame Allocator + ;; +%define K2P(addr) (addr - KERNBASE) +%define P2K(addr) (addr + KERNBASE) + +struc vm_kmap + .virt: resd 1 + .phys_start: resd 1 + .phys_stop: resd 1 + .access: resb 1 +endstruc + +struc vm_map + .pmap: resd 1 + +endstruc + +struc + .directory: resd 1 + .ref_count: resd 1 + +endstruc