From 5c1822e88a548264bda2a617a6885c4170f325b6 Mon Sep 17 00:00:00 2001 From: SpookyDervish Date: Thu, 29 Jan 2026 16:08:15 +1100 Subject: [PATCH] get rsdp --- OVMFbin/OVMF_VARS-pure-efi.fd | Bin 131072 -> 131072 bytes gnu-efi/bootloader/main.c | 25 +++++++++++++++++++++++++ gnu-efi/x86_64/bootloader/main.efi | Bin 53817 -> 53853 bytes kernel/bin/CustomOS.img | Bin 48000000 -> 48000000 bytes kernel/bin/kernel.elf | Bin 35128 -> 35128 bytes kernel/lib/kernel.o | Bin 1480 -> 2544 bytes kernel/src/kernel.cpp | 11 +++++++++++ kernel/src/kernelUtil.h | 1 + 8 files changed, 37 insertions(+) diff --git a/OVMFbin/OVMF_VARS-pure-efi.fd b/OVMFbin/OVMF_VARS-pure-efi.fd index 2df1ac3cd2cf82a5e20cb4f1c8d5db3ce9cfb38f..500991e7d2342c67fd2da642942dc10ebc8e51e9 100644 GIT binary patch delta 59 zcmZo@;Am*z*pL=Bxz5UI^NO%@oSXYx)L0ljHXpS5%**Hrq&D(SP78Bl^a3)^a&9h5 NSeM%LVc7>p0RYwU83O$Rwg7BvB0T7tS B6LtUq diff --git a/gnu-efi/bootloader/main.c b/gnu-efi/bootloader/main.c index 8e10c2f..4575e08 100644 --- a/gnu-efi/bootloader/main.c +++ b/gnu-efi/bootloader/main.c @@ -119,8 +119,18 @@ typedef struct { EFI_MEMORY_DESCRIPTOR* mMap; UINTN mMapSize; UINTN mMapDescriptorSize; + void* rsdp; } BootInfo; +UINTN strcmp(CHAR8* a, CHAR8* b, UINTN length) { + for (UINTN i = 0; i < length; i++) { + if (*a != *b) { + return 0; + } + } + return 1; +} + EFI_STATUS efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE* SystemTable) { // sets up UEFI environment to be able to use @@ -225,6 +235,20 @@ EFI_STATUS efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE* SystemTable) { } + // look for the acpi2 table + EFI_CONFIGURATION_TABLE* configTable = SystemTable->ConfigurationTable; + void* rsdp = NULL; + EFI_GUID Acpi2TableGuid = ACPI_20_TABLE_GUID; + for (UINTN index = 0; index < SystemTable->NumberOfTableEntries; index++) { + if (CompareGuid(&configTable[index].VendorGuid, &Acpi2TableGuid)) { + if (strcmp((CHAR8*)"RSD PTR ", (CHAR8*)configTable->VendorTable, 8)) { + rsdp = (void*)configTable->VendorTable; + } + } + + configTable++; + } + // Run the kernel's main function! :D void (*KernelStart)(BootInfo*) = ((__attribute__((sysv_abi)) void (*)(BootInfo*) ) header.e_entry); @@ -234,6 +258,7 @@ EFI_STATUS efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE* SystemTable) { bootInfo.mMap = Map; bootInfo.mMapSize = MapSize; bootInfo.mMapDescriptorSize = DescriptorSize; + bootInfo.rsdp = rsdp; SystemTable->BootServices->ExitBootServices(ImageHandle, MapKey); diff --git a/gnu-efi/x86_64/bootloader/main.efi b/gnu-efi/x86_64/bootloader/main.efi index 64b50f88a76cc3ca7720f950059c7ea1309cf554..c50157a557b33ab39123c56a99efcb4c56e5a930 100755 GIT binary patch delta 12887 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 diff --git a/kernel/bin/CustomOS.img b/kernel/bin/CustomOS.img index 331e24f5f9382dafdf6c3c5f2a2ec1c3ab9bfd81..9955a6b60d60efc3ffe85b42c28a29bc50325d75 100644 GIT binary patch delta 21228 zcmaic3s_Xu8up&O_8?wxMiWI;L`A_Hf{6l&4#MC@(NOVzBU4lJf{K?kWeiNl5ykSj z%r0`OQ=amqc8W18#VeRucq_D0EYm?cMb~3y&HsLTuPwO$|2+RZz3^~S4o7u2frsezJ#p>0LNKPL~#X8f{@9RL)6h)eP4kf?L zws&L2mcx8&H#XGTWt&B6vUPDJua=eGJT{VLTOQ-jM6!_61K3iY@c?=|jHMh$z*Q8KM?hKjoWy zFsCKjd!YyW&XT9P>(uqw0O{4Bc8vmOHOTbzhG4t3`2zkbPVJ^!wA@C(s33!50`{WX@QtWp*Om8GA}C3U2qT zBxMw(My$+m*ChMLI#iD{TlHkYE-Hv{p;hnE$on%Li2dQ2`q+%3O`2QFgV16`W#r+Y zj1Jsr$Whgu8WE$G>pll$#D*WlGDJh-zC#1mq7Sri--f^Z{`F5OExS*LL^Zs6OXI246SUUZyaf@z!C}kuZi~202YV~Eemr_kb#K#}h7KTG z24-#o^)7~*V)MSEMXR2ShzUj+>F!T$drzu6R7-`LaKx7XGK!mB++Yfm^9Ng&<&5wQ zjY{_n4LL}oV~oXnd1R#@scxpa^}(Z7r04rA=|_CcMm$>P&qSv2fuaM*A5J4h?aAQO^dJ&slg zv1;`=vongaBC=x7Ww^5u1~A)QCCMs~lTvoJ+PA z1rfWox(Xt8Q0hs|i^!&RhDj-iDA6Sh4~zqv;mr0I`?RAcBVzpL)pf_|ypJuLJT-Yr z^3>#M$xVRXY`XhboVdr)q2#P|_g(CYz4=!D zSOM$dc)uU2!5Mr-J@So`;l3IB8wR68pqhVN)q7BLsVhn|w!vgusneG18G!-3iGAhQ z)%89xN$UZKmXp?NAFC$gmanEXrwLnXP&ur&E#Uw|fZ}3Fu zoBv^|8vnd6`?1kBN%91}xru-JAdAtB z+)X^7AM0w_&wKS_gIgeg&OfX`oO+(1zdZcOek``}bnWtHJ@70q?Z-wB$F)Iq|L)IJ zQFc^=`KWon_kC-_R(h@`J{k*5T;^&{!)UN}YHFkTm^e1o@(kY}$KsLPietT6h|7se z!xQBR8ncl{_GgP5ZKcM4;pV&gqrF@CiT>Aw5C=Dda`aWcybB z)&Q2)0%C^N*xLMJEQYzo+#1iO$rFqDtauh_*}{wBS)%;w7Je$8Maw6)@ZaNEpJvs| zaNFem86(?c1Mio>x;Mq5NzXqbdxBbS;Byk#s5k}%%SJ_H@_|O${7;Dp$9mfMG+h}d zsP0QD?T*%sm@67AkJYuAf1kiYL*IcS@)QLRMY!tLvIgDcofBC~{P>3cTkGM+o)(TO zsKTdnMe!$UUz=S_yHb$qK7!KE7V#GoS%{^`TbjtOTEe}!IEotyhpp6K!|QECAMx;a z2Qo*q4L@P2tS^JI%)>27Y(n#6>(F_LC>?4hhuZuS`Ot1@R)@M9Pb+}>mqb-jaIuCd}4rvjHvwS1^b{Z94t{$>u}rLy+& zkvaTBl^wR!dDo<~zggrax4f-} z)kl@5R7<75x)?%F5{gC!#+KoH$c9n#-x|8UXg!4g&opePSL*Fpgw%dgZ~MuA=$_p^ z_zx1^x+etxPWDSENgB$p%)?gMZYcj_9t)E#LwUQ$u_yb|c;e$MO1_-NXFkp%Q^#gt zN!UswWYse^5VzLL9!JYgq7+=laSw9Nhvt=zwHN4)ukJbCgCo`bHG;oMH1m zn4+LEE!0_oS^6A@uC)qO>jBLfchSigEM#*+*TF>NYj%BmZ+&Q;?UcrUSjf5!7>rvL z@=ve#d&bfI05xot$UFqj*~RsG4=2x9guOZ2$)8-r+REM(&KIGdflmGb*&Uty^F^#< zpJ^$2;cKrOgH~Tgfv9)}`DoC(r|_;hDCBY~AC|+qwL6Z0nnv)7RcR{~!*DT`dvaK3 z`E)AZo5T8b7=c#WN{`|MS%-%Kf3JT83jK5YV%A-5JB0UKj73|GqA86_<#QKf zF`r51Zls~XsLEIQwclSe2A6)UF_Aksl^y(mg!LlD{R1^;xZ;aPDG+}gMq#TJpZcM;b1Z9TD;?7c zVUyu(h8(oun<18#^kluhiw?+GZc}Q0zNWPj)xDo0@$E}kShO8^ux5_HgTWjbqV@hN z#=qt*NcxKP2>I0%{`C^JLe5X&lb5m~@>eN**HV@*&r9MFxh%5(aAeb3?2D{MMWrb{ zP*c?qIxR&ncfmj}Nu$MzHg`zj>vGvMeUk@iQ$DpO`>NK_$0>w*?|T@6Hh%TDi^!KU zggckvF0tD{K4%##Xj}3S<@dR-Q0_53wX6txHkn(OW4p;u=6#m4F7|oJT38n?EUwo> ze8zGX85IOoudL=Pzu&dGB{gy5UQ_vrUE`TSu1?g}eiR)$CN$+Ws|9@RJj`HVMv9p#OzF;-$ z9C3!C+*dQ)KdJ8TeTQKUD;oHq@qB(26YqP2|9ds-Wu?O>`1RFnY~m|kz34Q$=?qle z$F$2*xvwd*+q@|XCrFIQNeUy*!HY9@9|_X!lW^hw-aWbh+Tvfh@3{D&u5>*gDV z8@HiF!IM+?18Z=@cbzA!VaqL3`Mx!*r)3@gat-^WW#4!Ge!ZbumF2#_^AFatftH#4 z_q8|?=cV(AJT_K-Af2zyW0{u4{Np?p*?1Hhj+q*g%J1f}33A~8KF-A+YU6nat-`}^ zpz0YIp%&#zX!TFN6MVOe&9r3mpml7kWf0%Bjy1XZq-^yo^4-DUrw&ov?Z}1$*TMS~Y0`yyL zK4?9Av_maUEPwGnst7gXb~=@wGjXr*gRg8KKeV3xqf>V+M0*xRTRx+Qk9c~-uu*W7 zZ|7cK@HAW0_&Mza3~rgo?>^0X%VYNPo*UTs#!Ynjn*{FJfSameyLnb2n=JR!Y}>;ZZN%MJKi%B&CjX&mS3Sf_i`aB|#X}UG4h?2;G#{z}CD|6nff zf7$WR`}6!I4H}>}IBu9}-~Z4X#?Y|~jWug#+aY2kq!lk_`uzvct8k$11;0NVX~PUE zG_ntf)bP2;Mywra_4D<4il6s>{~Qamgno6v@81UG0`CCFfeXN^2fW>$XJJa~{qOtz zy@2^Z0q_EF{GfNzF7}tztL|n`C~aq9x#Q=+bBFeuZKPWlcjGbpF?m9`m$)kR!;SCg zsjEUyi-nzeQnz0cc8>7x6ShOxWx|dT_Q%2w7j~6y=Sg-U+z@s183wxiiqlGOAJ5jUI|2om5G!alN>?~osggsl>Il|5rc8MskP}mOP z-y!T`;eSimF~Wb4Y#M);2>4h8WD5I&uycg{rLePweO=h$qQE*~+l3uiDn?G&;leIC zq3iu&Yx7?$gj5mW5_YDrbA&xp*bZSY5q7q)3x%C2>|!JSlwM(puw#V%cBwR2^Vo&( zfd~i}c9pOtVc#}v(Xr-UerFHswsnm?&qB|Q_?4{GQ;V#pF2iQJoo(2PZcBK}M?Z^I zPaVQ9i}GB{b)5;@Vc4SlaNW+6n5dv`naCh2s5ER*!9K$d(Bp~?yQywh=8F8y^fa8F zMe$>J7N%b@USQIXh3M%%Egtj88ta0~D4@A+=PcDz)>2P14ZDeM8zZ0?BPd2h5j~6% z@rvl+y?D_z3#RTSbAH!p<{>aLLxiVR^qD)}w^z3MkWUW8T7rEoyb8 z3R~3b$`-b$)a4Sk7*^NI!fqsKKUb-+19dykRVf5x*y@BWhQ-zLh#o2C#T6rLF)uDv z*kWE>lY}jX-L+iUHoX|vMq%4EJ5O@GCWICu;E=GzJh?6i`vKv3bUlTvpgT=hw+W;n* zbYml!W73TcVWmkomU*E`H#UeJx}GN)6&pLnZgU2Ghma1Kbg^?t6(-%-K&ni-v61-h z(=m_6j&l1x2X+dvvjm>Ge}s%3Cd8y0J57{HH+GzOldkPNs9#b|4r2$JVA749XpTuY zcBGXi{oWLq^b)Z{?SM}8-iI2V+X4;>BdgxtJk&qC5PDJ z0zaYV)Hlf3-bYr)TGU>*y8*kE$-B-O|$M}m~aKil#$=HtPm~>-XUTM;e?YYpT8@u!lldkX9 zsDHP~VQkw6OuDgsSD18T8?Q3y#&+&A>BhExn{--##!wskd!TrRFmz*^4>9S+b{}QZ zjcq^Pq}z|{Q(IC|KgIl)4_Sx2S-Mcsz(I=f+*4`NrP+FX)&J15#r6s_>nhH(2@sw3;(v7FC9lBnB5i%abN=z9XqCvY&y78E{ z&!iiVZ3j%c@fcTjpN>TkE-I+F&ml?TIZvuI>BeJUl}R@q1FKECB+B=hbnP*b7Ga&q zQ74{~Zku%DIa2yaAM!vk$JHV}(4-sBnRb(2DdIz*Q~meO0^>n6+?1hAWQa29#)E2% zN#7^p<4wBpAnT~twfZGVWKioJTHo|1T}jF`>2+e!O)%-kgK)MRxCf#^h5o6LN5g%{Tjh7h? z(rNt}=dtm2Lp5cfw;lA$H0j36j|nE-co~vy(v6oRa~kN{`oH(Kq=ADfG~S-9H0j3M z6qiXi-mVmybmMJHu}R0<7ybO(VR9I+V@gcA@p@*rNjF~C>@(>Ov4b8k>Bj4vveSC~ z_og65WT-G@!22HUS83AiBEHI`8?S?^O?tS9_Zj*qyAN?hd-LKEpbVVxR{7wZMWOTSjHEhVk@?P#6m4Yc)O2SmxbAQtfvQQ{bAaMBgZ{ujC0}g^qGy_mBb01j>?Vf@{rEY*LggZWBVLjrhmLYhXCWTA-8?)vVa^EilR^||1 zi1>iXIIbJQE9rPKj_oPhvGpk&$MCOCvyK796rRFEP9x++9OtC)fjA!c29B?zSM^FTmm>ykl>_}@^Zz6Kt|BFS8D~*>@-a!UE96akk3CsSVi_qv~}n!f}bJ zw_!Do%MgD9F~rL+rLrA-{#h1grB|uD zdD5r&=i0JXy!untj<5NY1zLLZr=eLU@i#tYom=e-Z#Wl^AkRJr1$VLZ=l0J~eCJBm zTCQx&6Dy$&Jh=TV>x_@9x}0SZXoz}N%ZxU3!M}7CQ!<(7 zTwS-u%e-Y>GAbr*Ui5(@THy?HpIkdT;=4(-h zD5^EDxQId~@$V?n%A&e2U%_1DU;<-!+bY(PFaHds58#_WLzi4Z{B26ZgJ{Ww^19E^ zL`RS|@B!2Diqt-uy41xoiVyi5-*)xoZ;{o3pQB_Z|BVs{53NEO_7*feVSGvz%8%!{ zRd9vz9aZRTFB;@7mPhzY*I8J|E^Kg8m@(_>Ed9;7y**F7gpS41RCR6@jy<&g6up8h z_5}XgCDw%(eTGi>F0p(|BF$HvC7Hi`8Kw8)Cn*`rZ&5OkH~#{O7}3lxutW#)abMtH zs$I?bK5}WT3FY5^fuS2rXG0hK`*iy+(cCyHH!NU1ZVj?0^1?6SaqvA~qW`fx{fe&Y}g?R6qaLl5Z-n`wHcb=dG?F z$+{weY5y=T@Ad3fv*ZT`Y|SV z$-#<{DDVFbiU{YEC`saLDQQbn7{<%K z!F0~h#>~1AdCGXrH#qfs^5)l3T@p{dj@ZF`&UMsKa$gONf>48PUIe5z(SmmR6j~mD_k&nCqS9MeE z^yiyypnqa;_R(>Sc47qlg1Sq_(|+7pE(xTw6sPx17TU^j-&$93=_|?N!)~&E78lRE ziH;56uiivGqj?1-nfyEW>=I57x?bx4;)Gj_7#~Zp%;xia?CHi!bC*220JjHa{Gty9 zJjU<%P+T_eQ-hNypq6#^j;vt^EZ(SE=4#aLG3V^L&KZx=rF_w&i{=kqHg~3!vS>lh zBTHs^kNw2jHY&ZtvICoR7T3kj(cXEo68wNXu?Jrltjv>N?C$+fuo7vJk4N#=ZIl7> zLs9(UHcE^mtA8NquaUitZ z*Znv8O6DX!l<{r-4}F?qJwy@kto>Ot_i7o&BE#q?TWL$%p>yuf$o=Gz@8~ha9>;q*22VUoF0)-;RGOs{I{*C-rUd)MJ!j;BmLnr<)QR^b`HD1Ac0` z^@s6%K{usSNChN}vF~kMFz^vi;|Y`mx4gw)>!yUatHW2W`0~-M1>x_OKJ{I0q{Xcm z&#!e;2FZg*@J^9R8@byEo*1btlV2al_eUz7Wlsjb7^%cGo`^d?)omS?!J9`ZadOuT z?u=5x<;K7B$D))joi1Zc{5I5kY%Il<`;w`6xAmkpR@TGA`I}M7zZx}%>1%w4Pw%dz zH*QX!k`@J*599m0D_!$SXh7W7OSl=s0y&4I-1RE<-nMPq(uz4kIttFyhwp7Ni-H+$ zT2+0m%*U6khx z?iClN7dKoK*A&I6p7l}MN-p=6{GnCWTW`gU`fN9;Qyyz8k?jJOyRY(3O_TKCbM?Uo z_28RM)H(sJd7Yv^z&{}#`W=&dxD&{i`@7$Ni0*0+|DDWPF#kXW?@*qi;GOk_Ez}Ep zo*XD^vVNlVO6R?LDjlO9NJptCK=Zw-&wU$c2T8lzlWlw!*%LY6d>AG7#zPkxXMKqbkM(s*tU}xQ zFn=prSua0Pqv!n?t6AhdKe9pIlVo_T<&+qC500d~kMNs)l;(36lSf}Jd+4L+(z5*9 z7TdNmd^X(!8Ap>_`{TBws>gX-M9P0@(-$Y4wSDN1FCxjJzjbt5+tVS1dnhwgJ;6;z z@@X+jf*kDQ&&4R6)8?Wsv^NF$az-H7XxpP?c&zg&G5SAU*H%)J;Jm%Gx!w}%VS?yCewU&Xn3>R7SZ zX#%muqes?D|4;S(;okLq6^li#9L5VDRF2BchVhJk%3*nUx;H3J87k+^NHES{tS>qv zMnRx;X}hY8<`B(ag7X`0^2d^&p71DfXfK4Iwj;GD*xr*eYnOzJm$h)29GvbGU zHM_LqOPc(DH{ckJ3Dh>5a$g0yP`ez$e{uF53MVHz7IO(|Hq>j{Ia%%-a|La( zm0H~>0}HGv4)e6b+(z`*u>5Yk5@FwtVB4Xwe!X*_RPmSurM=v@mXA!puKd$2zBxe| znz9imi*Fq5WaxzZ01U-^x3xxK3!c4_1^U&(0#kmc^4IDr}B_QrBmJzJYu6Q zbEup`YYZ$nqmW=J7g{^wpmq$Dc6u28E`h?D=wTKk>^7dWYI`B<7aX9pa6Rlgtdmyy zbQ*s~b{>gT+o-r!DXz5?8&fkr|2sSKeF$fMorQLZkMXQ|()uPv!%>2iPReRKHlKi# z&byXc1x&8>hAUim{i(VBB-gwYZhJ^+D?gmVdpx9sRvu2v0VtqMldP|5i6~$X4A&aJ-VE(yaHD`{;L)0qivw!Le55F46%sUK znwE&p%!Z+rLd}>+aYkn{VB|qeB5{4$6HRf4&>P3}Lt))W_E;b8M~TCZ|L~`~?lSzr z_S!bk2h{5j-PZpmYvH#k5rz41EDF1(d*yqXTIq%5iPCQ2#hYGBE3LG*5s#j1(-O?F z1^*RVH|lDhp~`1{n!Z%m=NP(j#3yTx$xu{J(k88R>nzO*o=pkVFzZEd0@!A+514d2^c?1y$^1P;#x z`S#&YO?*${W5_dz?&&WM63!Q$~2*2zbO`+NMvM-^?LC|mp`Hk~>>J6?8 zQo6{tj@~|ll$T_0&=BPnyL>1V?={ETyp3ikzssFBVZ+NrIZ|?S`_pntP=GxAWV1$r z5}snD4+xj}qjP&gO4wpcgFt6KgQW%jqDWHEAwFrY5+?uhAzwx5#lw6jr7g!7o!f z?gYO>=?5ox=;KJgKY_o4LOSUrpG4_rC;2K$1IzhNN(;*QK}t)@`DIG?l=C~3zFf{j z=Of)w&J!v9zMM~@^t*DtiqeXY_)bb&o#qEA?RT1ArgYG0euvVfr}4*0NUKisL`nlb z=94Iu&+t{0c0PkYJwlpxh99JK`Wb$i(yTN54yD)5@X&=w->CE^E>zMip&LVKI3)?E zf%bb9EaRc@P^fq3B4wmSKG=!h%277U^Mm=S#Y(j7>Biq!tSk@xx|g28qbJf`ncfCl zq*HBp;u0k-v|C5ru}S#HW8TRBYA3#PiE=1(miTrIH*?xA6thYGnVtEPrOIoeA9vMt zhn`5cg@08P@0+VchuR}`2X0@qUtg=9KchQe1%Kc69dvz?@UIj8Y*Frfp}#5gk>UI@ z@+EHStvj^kiNm|XzqymHi)Krm1N8cS!O2L!#TGtfnKDjJ>&$m9Q2=RyTeZgkBP^nbHe-BK;-wzoPiT<>>d9qJ6j>*M38Bvq9y( z5yIsan4f{2cweNUBk_8Se(Uu_QgE|Eai>E0sufBawe#o-Wm@0iq8&zgABwmIZS;&& zMEHcK7e5`|%{E{W>+(%RLyy&pn|`lYj5d`>sO!mv`W+D7_HoJ-SL67bJUn^B>>E zo1OSV#ool2#Z5_kbfMC}i7{$lCT)18Pywt!0MG~s1R4WPfTln*AP8s<*Z@1w0%!?5 z0JH*vf!079AOvU&gaYk=_CN<94Cn}i1D$}*Ko=ka=n8ZLB7rENJJ18@3G@Pb1JOVq zAO?s9`T`FE{eU>2KQI7@2NHlp;2~fjK>Zv93 zfDyn*;9(#W7zK<5#sFEsSYRA59+&`31SSEKfhoXLU>YzT$Oaw(W&n=@Gl5yaY~V3q z4loy(2RshU2NnPefki+LuozeZECq6bWx#S^1+Wr$0$2sC2A%}g0BeCfzy+)Wo&xfL z0$@GxG_V0E1l+(zzyoXoih#|)7N8i|3OoZm3v2`a25bj7umgAw*aYN_5l9^-U9Xl`+)tx+rYnpcYt?+Qosuw0Nw)* z0`CJK03QN}fWtr;a0ECC90QI6CxDYcIZy$d0zLvx10MrtfKPx=flA;ka1J;RTmUWt zp8=l(Rlp_SGVlfPCGZt+1-J@S1J{7Bfp388z_-8+;3nV$YJginE$|)iAK-i72cQo4 z5%>xC8TbYG75EMKFK`?99k>Jh0o(=t1pWg2o@WXzTL2=Nh!H77R-yo+Mnr)`jft8N zH6?0B6hzdV$VOx*YC+VJ=mDZuM8QO@iP{i_5Va)=C2B|1o~Q#+7*R)}aH38`or$^- zMG$o*>PCeBJp#4~qV7aJhPP1J`dhA5V(FVTZU{fOd-`V$QxiYH1SN+f!S zXdqD%(IBG1L=K{4q9H^nM5#nhqBNqRL@H4_(J-RnL>WXQh(;1UOq5A9ifA;^7@{nq zu|(sD#uH5-nn*N>Xfn|hqNzmFh^7-|6FovSgXmGBnMAXQW)nR|G>2#|(LAEZiRKe6 zAX-SYh$x3>G0_sDr9`u9MMjq=ZRh*dXeZQ zqFqEKM1LoGndlXwSBd^X^cvCYM7xRpN%RKMn?!qv{zdc_(O#l`MEi-}Ci*wgJ4Eji zl@fW04iLRZbdczMq7R5ZBsxTNn5c~C2+>iZV?@V^P7s|WDkrKSIz{vm(P^TOiOvvx zLi8z7CDB=;b42HfE)ZQL`i$svqAH?GM3;%aAo`N%E21kzSBa{Lt`U7r^bOHOd4m)R8Ehs1s3VqAo-cL|uux5k(S35p^f(LDZ9|7g2AbXrewu zF+{OMeTg0<>PHku)SqYoQ9MxsQ6kYpL<5PEhz1c2CUOuZ6Ad9sAxb535~UFhB~ppf ziG~pkC(0liK{S%+VWLc;QADGO#t>x@jU^gKG@fVz(L|z2M3af85KSeTMl_u$o9Gdu z8AOi~%_N#dG@Ix#qB%r!iRKYKPBfor0ntLDMMOD7i;0#HEhWk&T1K>-Xa&(qq9=$} z5v?YAl4uRlTB1B67tuPRr-<^23W(MdJx#QMsF27_w2{a|w27#QXfx3kqGF=0M9&aC zOSFyXZ$#UPIMEKG=ZJO^Jx}xk(ThYc5$z%>A^JPf%S5jby-M^CqSuICC)!Q)Pog)7 z-Xz*X^e>{fi1rfgBic{&HqpO{-XVIIsFcV{bb#nRqJu>56MaDRA<-eC!$f67M~IFR z9V0qUbb{z4Q8`fs(J7*jh)xrIOmv3m6QWOvDv8b#og+F=bb;t1(Pu=T6IBsiBDyRe L#`Y&K{O11vg0~gv delta 20594 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

%emCm%;HL!~1`18?W-0o?xd;S$y6K)-~)MigH}a zaQtF({OsNWZDe`EK>cm<5}wrV)%=4MtdE&)C-CoAu-y0(mzH%JooCfo8`_o*yRTJa zL|wyWY*87G9}g?6*rQ19RH`PPmX1TnYVngeYV_f?PqMzIOn&1@*3S3g(fX0JJaAGf zzrPrVzk@ukm@PF8Udi(0O)-4jQ*224M?XZZ@V4Y_b0&mgXO>Xw zU)-XHO8G% z*LW$Kfb@PlQ~i>hqjBQ?5wmSo438SX9_aXKy;?(&q}dAto|ioFY4%Vj+E+XkRn!l7 zJ;ljCh2C0ml)2%q+`;!g&0g=)QVqcymD*Kj={+fy-iG`rIKsXBU0(VOThMZuI-r4V zhw$6au)gxZcX{tJHooOm8lLjN@8Y?$3}?QpfAbs%ne=kGb#lAyEOJsv!_N)8q^ z>qU3XcAmJJ^^!Mi=W|xG-txoSIbY2p+q`Z?X6kzSdocfeHCtwi;iH|*BHwt6FL1Ic zJj03S%7VA}jXTPXfAa-vSgd>~k^g%QE0$9dd9QLz_TPC?Ih!k&4dqwL*$KHif$v<) zrpe<57_-T+w-REe01mpz^u#Qy(a%b?Tf5i3E~Z@!zxzS(tg zGYd6^e1>OVDKG=r3VaA01U7u^YWFe=RocC>+vDj7Oa=;pHNc0TxJJIp{xQ2EHZixn zZmGX3Ya3gr1V4mHjLSM(lhO=bu3OlH`&ThbvB{*FDwk@~Bx};H>rB)0bzRYPsYt|| zHE9)oS>$KO%PL(==vG}9`CBx-SfU>*>1x8uCS6PvP_OHvfGS<5gD9>FU2m=F^@}vg z+Gx^(pML0Kc(W(FB<4ie*BCfDWZi<1zN^tkztn5i}fxnShp~=*lUj#C5-lVLf6MFQs|;o zdyddWsrCY)i$d)cLKod?e_!bII|D9zozT5Cz1ZF$40^Xodo_>f7JFBri*d1Ag)YX$ zo+orMF7`P>7u{}uTIhaSw)Pi=?yu^_l6|Kz+$RD~2wjYm{d=L`FZ_Q9JwWLG`?Q-t zp+^e6ozSg9Z!h$5LRTkFF}h@~Fa(Q$3ZaJxy+-IAg#Me*I||*qM!V@O^sYj;2;D05 zE<&FzbQ}40e4}pKY+~dwY?=uJ7?>#RiAI z*>5t~^-X`9!LD!q)dstM2smP}>xY4J!d|S8y?!ci8xrV;gIfl>en{{>e(w{WOthu>Nnt%Eb=*JSbA%T86xn;1|h>X1T$G?`Zq@PxT40ek+ zQ&b+&0;yd7+aA`b_#w@3q?v;(`fExZV|3WLKgGTvmc z>!+$pgFQ=Z+1m_u{nS-uu~uMqKN27Bp#QGSKNp`WBT8SMJWy3$}T z&{u)MuAjWC4E9RV;Ob(7LqD3=80>eB>IS=hbgwtqD?|b340io!-yrOFHlaw-0=FT7 ze)exN*zKZ#TL!!OZa{-~QXRoNb1O^4d*5p>mh^WA|9c%$fk+T!uP?-{!N0THLaKl6yvtF1?vZtrwKP4?Cmv-z))m<|e#%1dhoKIi;;(x4 zcKq#6@y$g$B(z$2J>B=heU_E?_yYHFxNoxZwV&aB3}v3A-RI*zGKuFOgMB{kvy%7` zipM8#Qb7{m276E$?tg28pGP4HlC&PMC-aMx>UG>#C2P68hx__uzUDLwHPex;f=@ff zI(yL|R1N3zk0bm%g$&oiuizekq~1yP-*9h9QDeBZiYc-+h5rLbFFzB?O2HRzl12Q4 z{1GhoUL9evrfIF{kNf;IZb2Qm^)qB-Pg6_dmI6hQE7P=UOh8l(KK8hRqUTY5Hh%mY z+&_W)N*fP7fs)tazRA|StZ)_d#C38b{Lj| zJC^L!`AgGhptg4{S&J4F!eqT`89lv#VzTa9lIA`#eR2AX$h(%pg89P>mPwU^?$nh# zzF_yY%F0g7Ny^C?ThN~G{T$uVbb^^p?Rn^zsO&XVr81GvJ%yp7U;4}V(36-)m2G*$ zN!Ed{ILW+Cz4_CynezBsCt25k8cXx0Oh=lkL<;U^8pQq2BKxlOtesrdg2&gx7SE@W zh~ZDwvuIN|udZh!Oi>$8v96{f-t80%Lq%+-)WoPmH_Y$~5)*jAc^1M?oI>%H{L53! zhTJih-AvKE;T-C{7BjHE6Q6s5g|y0A^vHZ#aaDb3%B__xzP#h-_*A0Cms>wal5uyLeA~Z)NH8O z3m4I}0t{kg0uMnm`O>qc}^pLqmH}2X`~&^OwKJ zqThmtSOb2>))u{OrugM0n8%+-%lgwWbq(;x@7`JfI#s%eB>sc>8|RVBK&pBucb{h^ zrdS%SXwxwM>IHau@j4RO{3?lf?)w#l=+CULFhS$_xUcYM@%%Qtid<@aLio>Lq4$QW z3)5>D_Jf*fyyMrX^+3uz)N2(?`Qv%n*GQ4b-~Jli(4Pl=gBDx-_}WW|7~B#Oi9G)s zHb}NkR68$d4s4ZpWNK}gH*?DcM9Kmj_&g7_0V+*D)liP!~x^D{AyP z=vl3~{URoI0e|fxi$QxaoYb^`NCfh(mr&11>Qm8cHWF1#ry8Znk*%qsq5QW?SU34C zc$)@<59E;~;&@I2Dw@@buWrESgERQ|n$`PTbo(}oUghk_IXAO6<2s7Rvv*yjG1@o3EQ;q5LX44-sdR_ANMW%O9&M0zZQ@OLjG z)i7QSTR_#FBB{|mu^U+L=RaRYenC9uJ7f{cCz2S#pCr+q#xRuEe8;brTsY+2Z=~Gi!;sSbKLCdR?}t{&Md-|tDMC{8`+@FR?!QxG;PN8 z!s*o4xM+IH(hXn9^;{$S*u)n#vaYU-Ys}uF!|(<33Z^fbIbz8pGo*)8XFZbo;6t>B zEO=|s0qV)@>!F85LMk}mgg&5@PB`{m%Cd}W|AN1hVl`YBKeH_4^p zyj^=`u>5xqKBm1ADF=tUR<>7~TFdqK^HbfFAU?U9(x&ysVe}!w;oI(4np+EX>mt<} zBl`sKmSIY!ygkr0Axzm~vf#TQi_NhDAIGQS3zWm|JhaN@NNs}N1bK^34OeVFu@kgf z+76qeC-4u#l`cWPFxeb+?)UMe!-p8qGWOR3ck$ z8BJN4D@OC2o=UX*=xFZjsaWJOfAM#ED&4wR;P&{TA}z;L++lYTmFFv?!{L|sVO?+Y=IO(5Qpts@f-;b4#pQi z<`!f}#)p1FDyR9@2&m2YK|OOE&P^(!2g$N_cB4SWuBcvZ|F9(?SCiXFzED{YQd zvCwVhs+pp`#UDYD=&ccWX+U=O-_34@mfbp$-2=$Z=3Es)$&s$|Z?&++S}pqAP1aXS zHc=!CK{9v!f7ReLEjZ|Iu%rd|B}XxG{pn{!@5bM0_x_1-+1CZ+-i0rc_ue4&6;iiD z{Tns@D-CJN0~=zgRciY`r0#T@zawtaTko*@7k1|^9ujCj}q>CIvWA_T&*SYuFK{>_fZD7 zDJPq$9>ZOd&7=A%0rI?TKBBKO%fBx?r8R!5@=f^o+8mnA_w-eE$m7Pk=J!(unq+>B zKOU)c>vt8?72g&1MxHmbkXK*47N9!j?@4i*ex3ZL|!0nr9%X87%1H!iisW-7gpiznwKDw@iK;YVh50FBH0I44)jObm;pyh2j4; zUF%Q(X<;5|B{e2g?m@bBrrx6eTvXe@Y|g-}F??&35+_e;q9u4y}vEt)kP>2}h3 z)0^;bQk>@ZN$5>|U9;^a5tn*vv9Fr7!~9MrA2C2FHO=D}qm*u`wHRcPufg(J*R7rZPpfIP>)1fWWRlxu z@DqcS{qopRe0{XCPhL0Dl^vsukc+p)>+2S?hbAD0fhJIHgE}9}RDUJbHQeNXjQod5 zg|K?7(rKPf*7Cq{csz?S>hQH1ZX*Zgv#^?Btq^k=m3Q#qIHkKB)`wf;Fb#eC@Nsd< zyy6%vFjM1p=%A!96OKsjkt(ZeM&idu=HULt)r!At#!$ z^a8B;u!f7U7cQX|eml)4vGy>1TI2SRdRy3{8Z)0K$17pcUt_8I?alRQt2F?5+^M%e z9>upRpEgO??%#*k8p&OB9iLF)M&g&^m0zMUgu}xl@Y`1G1uMW=&80d^|qsK zUp^)H1V+&h?&a`l)`PH4(H1&&&aJZ4+o;+bseI}XrAu*Hs#@FGluwy?DKt3eLtuWF znP=kWS~e`xwJ?0xPhnYF*a$r=k;3{QEM5z@bAl2aOCKcC+HA1kspD0b`d`yE1xz7T zy34A${!v~3kn8yrUXY-K7MH3a<^@`$_K+%oVqfu(R5%es_z)DE*@H5%q{l(IhK8Dl z;pRW*%FKhw>kLeUfVHP8YHU5RqXzbZqUI8STsl!)Uy+Ny8kYKBG^-eEbucpUQcdQo z!_~HE8T%_>gp8|dmbJ#|VKMIMLS}Qx>@+_g&36n{+7+*eCe`YXe~ub-#Zb+i*er3syNSa! zukB8v0Q`qfq>J1CWP4;9dDpIHb}Lz}_ytv9C{6fRX0F$)he#CD2+OD3s^eqL@va`O z)VgKW@d_+9=g`xG)T(b+wZOMYlt=FgfN-3`amU^7OL|lc-L8cdYGF&Xu#E^y!uQXJ z(1Kq$N5MhnOf75-35PjL6@d>V^RE(>kla7;|2o`HV9!^d0ooe9Otx*XX>08lsAZ`h z`)H5s9!rt==w~gmnj#Zn!`krZEB3V?`N&~PH*b8FUrIybS};s`S^l6wwwhc%$;xZ~ za#1io@5uFYwRlkZQ|_8^9v@LsV3M!@)ADd1FL_j5n-<;@{V2B^c;Y;tI7bP2GhwEp zg!XP8NcXrX@HYid=iPkbBY2*?yPGd3`Rrc)BFSTW`7V-c_VEiOGiv!?B=c)|$Q;N~ zwLG5WJGE3$sC=fDFDIFJfWJtx=m6hE^5Ox0fu#RI{ujxm2YJY&klPOOc#;8!_(YNw zhxl@m`w#IKNha3e|3g6*)bR@>XVvk)NKUTfA#)+e*710f+v@m4l5f=U)c0?AuP`Claae#%4UL9YK4|62*N=2JeAUp zlD^0JUnE~T&O_!y&N%6cpRc5uLQ;a&{**Ai)N3nP#@kF$uZm& zn!Z^R(m%pp9nNKb!@UsWyAJjuL z&=0nBO@`ec_Q*c`a*?t&^)W;r#S6Wvcu^ z1Rt;*^^fexmy=xE$+dsEGR{XH)ra5w2){_gmMQ+N^ij-6;A6{_m{xkPZBBS*eVGE7 z0WY8h;0?3{S^=$rHh>S{3-|&4z(g2n5;z?SUX57zhD603Cr&Kq$}|umD|v zu0S^+4CoH@0K$O?peN7^=neD%`U3rc{y-!U1q=WN0)v2PAO;u=!~$_ZJTL^HHVy?6 zfnk6ZNCJ|9;Xn$I3Zwxe02`1Fj08pj8Ng^D6Bq+z0S^FUfovcL$OXm$J zco*0KQ~~b+?*ktI9|9i%I{_C^4SWpj0zLtD1ABnIz&@Y`s0H=|2Y`dXA)pR83>*QD z0-plMfaAbtzzN_aP!F5}P6M9Gy+$FYru8jC*Wt`2G9iD1bzX21%3m52mS#51Ka}s1pWg425tlY1^xj% z&h=%cX8|Iah!H77W+E@57DV1eEs0tYwI*sqQ2;yD4ZyQs3%b`qTWP(i24%sBkE5S zNfbpifM_7mAfjlZ7^1;Mu|#o1@kB$25{QNpB@zuIvJxc`B@+!NN+C)mN+TLUWFtx^ z8c8&YD1&G;Q6|wCqAa2Zh{h6S6Xg))5{)AoPn1VAfoLMpB%;YgQ;4P#O(V)Dnojf} z(L+Qth-MPaB6^r;Hqj$QbBG=#noBf~Xg<*bq5`6YM2mq}X(I%o7h+ZUmiD)y?zldHY+Co%G^a|0dM6VHTC3>Cc4Wc)Rwh{fC=q;k{ zL~j$lL-a1u4x%ce_lVvn`he&|qK}An61j+~i9ROUMf3^LZlXOzdx`cD)ezMZ?I$`w zbdcx}Q614?q9a5{i9RJdMs%F$GolkjCyDBbP7$3Z`kd$t(HBH#iM}K{M|7U(0?}7Q zUlV;pbdl&1Q3KJpM3;%aBl@1`2cj!PKN7i#8i}qFT_d_q^b^s~L^p_gP{}TN}XcEz6qA5gEiKY?d6HO<2kmwL;k z0Z{?bLZU@Pi-`(}mJlr^dW@)uXc^IRqQ{AzAX-86BvCPuooFS|Q$!_1r9`WUo+f&R zsEo)#w3^6Cw1%jhXf4sRL={Bqh}IK5N3?h-!#xiS`p6AUa5Nh^UU}FwqgBqePz)9V0qU^cm3!qLW1R iM5l;O6Mar}hUg2TvqWDKog+F=bV1&S$Dcg^yZ;BQ3=Q}I diff --git a/kernel/bin/kernel.elf b/kernel/bin/kernel.elf index 12310c5337140f3f72c7ed1cd7fc1bdd3408b01f..a27439b1eb5043b5c8d7a08701c29385fe16ff42 100755 GIT binary patch delta 4107 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 Xz@BAKru@2z{R7LiZL(`?-5&NoNQKIE diff --git a/kernel/lib/kernel.o b/kernel/lib/kernel.o index b8a476d70600aa02dcee32c916b40f29bb67b182..49acf506439be43a07dd362a275218385f2b5bb7 100644 GIT binary patch literal 2544 zcmbuAO=uHA6vt=N^h0fJtqMXFa?%L8B&n^T2T2=Zx2={K=|MrlCY`n+$!@wkEp0(O z6vU8=2XCIe>qSo%@t`L`JV^0kJqUtcJPJyEZ+B+1U3LiQgV}lWf4?{1ncT}=yBbjx zB1|DyNV_FeLZ0@t{fy&g$N=dl3tIE*O>O%}Tx;Il)mph-t@-vF#1=i)7N4G9I3G)nsVOxXOC?g{iDY6FcQ6Vi1_ieh7!o1ME7Zi9 zDuMP1h@mN41)^*WDI@*8eGdUX4H_1-RZN~dI&?ph9q7qzcR8ZugJ_ie+z$(Pd9!Fo z`@tRd>CRZ79fva1#yl@2(I+MP4T)|@^am3Ci9{z=Y8kYqmKzOHw3%)(QoNlUpD`+| zqSq>0bk2$A(^IC&W{f41OxMhkUMo;zky_M3I>F51ip{Kwv0R7td~$S3w<~3VjO8K1 za{0M(Nbu4;-C()(kjUly8q2QeRu0pW>AYo@scm03*KC^C%T>zOVM*j9e!%dKVEMi8 zS{y~N2o$_aLQkUzhAch_LeHWIhI%g)q0gcS7VM|s$`0QLzTj_hJ;<;6_(MK^L&86j z@Q)?@3kkm?;Xg_EFB1NbgpcA61}wPV7}s$>{p&p^;jChy_^MAo3}cIPiGh!X z^TgtrYH!w=ULq=7V7JDr?06Qf=_-T!Nz_H1=|nBrHc`uFy-p3#43kk6-l&W4vnf}3 zd)Zi188E?Ih=dPDw?6N6-2qVMm_=`Q1Z`CG?*toU|#$_RLPCK*rR z4vJuLzB#yen2UEC?UY-QvrwZRd_r0G@no(U&j&9@Qi}__*)L19Y`d@#h2Ld8SlJi1+9cyu0r!2kpvovt5%{0~6-$K+LvDw8iT zhVW{GWE}Yf+L)Yq*(Psflb;;G|NgWCvy=`S>V9i-4m1ZVcNkk`4op869dy^E>1hH g4^ZPLFiZ~OG~;Ywgz&v4PvkV`lwgAJazHi$08U{=H2?qr diff --git a/kernel/src/kernel.cpp b/kernel/src/kernel.cpp index d95d1d6..ae73fcd 100644 --- a/kernel/src/kernel.cpp +++ b/kernel/src/kernel.cpp @@ -3,6 +3,17 @@ extern "C" void _start(BootInfo* bootInfo) { KernelInfo kernelInfo = InitializeKernel(bootInfo); PageTableManager* pageTableManager = kernelInfo.pageTableManager; + + GlobalRenderer->Print(to_hstring((uint64_t)bootInfo->rsdp)); + GlobalRenderer->Next(); + GlobalRenderer->PutChar(*(uint8_t*)bootInfo->rsdp); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 1)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 2)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 3)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 4)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 5)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 6)); + GlobalRenderer->PutChar(*((uint8_t*)bootInfo->rsdp + 7)); while (true) { ProcessMousePacket(); diff --git a/kernel/src/kernelUtil.h b/kernel/src/kernelUtil.h index 9343c76..d562392 100644 --- a/kernel/src/kernelUtil.h +++ b/kernel/src/kernelUtil.h @@ -19,6 +19,7 @@ struct BootInfo { EFI_MEMORY_DESCRIPTOR* mMap; uint64_t mMapSize; uint64_t mMapDescriptorSize; + void* rsdp; }; extern uint64_t _KernelStart;