From f551ca29ceee6b5b1b15df127b5bdb6f2e1f313c Mon Sep 17 00:00:00 2001 From: Tiberiu Chibici Date: Tue, 14 Sep 2021 19:01:13 +0300 Subject: [PATCH] Added tools and experiments --- exp/Memory manager/.cproject | 106 +++++++++++ exp/Memory manager/Debug/Memory manager.exe | Bin 0 -> 29464 bytes exp/Memory manager/Debug/main.d | 3 + exp/Memory manager/Debug/main.o | Bin 0 -> 13931 bytes exp/Memory manager/Debug/makefile | 43 +++++ exp/Memory manager/Debug/memory.d | 3 + exp/Memory manager/Debug/memory.o | Bin 0 -> 16318 bytes exp/Memory manager/Debug/objects.mk | 8 + exp/Memory manager/Debug/sources.mk | 17 ++ exp/Memory manager/Debug/subdir.mk | 27 +++ .../Memory manager.exe.stackdump | 12 ++ exp/Memory manager/PROJEC~1 | 82 +++++++++ exp/Memory manager/main.c | 33 ++++ exp/Memory manager/mem.h | 37 ++++ exp/Memory manager/memory.c | 102 +++++++++++ exp/luxRomImageMaker/.cproject | 114 ++++++++++++ exp/luxRomImageMaker/Debug/commands.d | 3 + exp/luxRomImageMaker/Debug/commands.o | Bin 0 -> 89907 bytes .../Debug/luxRomImageMaker.exe | Bin 0 -> 198980 bytes exp/luxRomImageMaker/Debug/main.d | 3 + exp/luxRomImageMaker/Debug/main.o | Bin 0 -> 82272 bytes exp/luxRomImageMaker/Debug/makefile | 58 ++++++ exp/luxRomImageMaker/Debug/objects.mk | 8 + exp/luxRomImageMaker/Debug/romdisk.d | 3 + exp/luxRomImageMaker/Debug/romdisk.o | Bin 0 -> 146094 bytes exp/luxRomImageMaker/Debug/sources.mk | 27 +++ exp/luxRomImageMaker/Debug/subdir.mk | 30 ++++ exp/luxRomImageMaker/PROJEC~1 | 83 +++++++++ exp/luxRomImageMaker/app.h | 71 ++++++++ exp/luxRomImageMaker/commands.cpp | 97 ++++++++++ .../luxRomImageMaker.exe.stackdump | 13 ++ exp/luxRomImageMaker/main.cpp | 97 ++++++++++ exp/luxRomImageMaker/romdisk.cpp | 165 ++++++++++++++++++ 33 files changed, 1245 insertions(+) create mode 100644 exp/Memory manager/.cproject create mode 100644 exp/Memory manager/Debug/Memory manager.exe create mode 100644 exp/Memory manager/Debug/main.d create mode 100644 exp/Memory manager/Debug/main.o create mode 100644 exp/Memory manager/Debug/makefile create mode 100644 exp/Memory manager/Debug/memory.d create mode 100644 exp/Memory manager/Debug/memory.o create mode 100644 exp/Memory manager/Debug/objects.mk create mode 100644 exp/Memory manager/Debug/sources.mk create mode 100644 exp/Memory manager/Debug/subdir.mk create mode 100644 exp/Memory manager/Memory manager.exe.stackdump create mode 100644 exp/Memory manager/PROJEC~1 create mode 100644 exp/Memory manager/main.c create mode 100644 exp/Memory manager/mem.h create mode 100644 exp/Memory manager/memory.c create mode 100644 exp/luxRomImageMaker/.cproject create mode 100644 exp/luxRomImageMaker/Debug/commands.d create mode 100644 exp/luxRomImageMaker/Debug/commands.o create mode 100644 exp/luxRomImageMaker/Debug/luxRomImageMaker.exe create mode 100644 exp/luxRomImageMaker/Debug/main.d create mode 100644 exp/luxRomImageMaker/Debug/main.o create mode 100644 exp/luxRomImageMaker/Debug/makefile create mode 100644 exp/luxRomImageMaker/Debug/objects.mk create mode 100644 exp/luxRomImageMaker/Debug/romdisk.d create mode 100644 exp/luxRomImageMaker/Debug/romdisk.o create mode 100644 exp/luxRomImageMaker/Debug/sources.mk create mode 100644 exp/luxRomImageMaker/Debug/subdir.mk create mode 100644 exp/luxRomImageMaker/PROJEC~1 create mode 100644 exp/luxRomImageMaker/app.h create mode 100644 exp/luxRomImageMaker/commands.cpp create mode 100644 exp/luxRomImageMaker/luxRomImageMaker.exe.stackdump create mode 100644 exp/luxRomImageMaker/main.cpp create mode 100644 exp/luxRomImageMaker/romdisk.cpp diff --git a/exp/Memory manager/.cproject b/exp/Memory manager/.cproject new file mode 100644 index 0000000..a03d121 --- /dev/null +++ b/exp/Memory manager/.cproject @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exp/Memory manager/Debug/Memory manager.exe b/exp/Memory manager/Debug/Memory manager.exe new file mode 100644 index 0000000000000000000000000000000000000000..3784a5247a04ffed9e659a3edbbf9b47afc26972 GIT binary patch literal 29464 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 literal 0 HcmV?d00001 diff --git a/exp/Memory manager/Debug/main.d b/exp/Memory manager/Debug/main.d new file mode 100644 index 0000000..9f7a18b --- /dev/null +++ b/exp/Memory manager/Debug/main.d @@ -0,0 +1,3 @@ +main.d main.o: ../main.c ../mem.h + +../mem.h: diff --git a/exp/Memory manager/Debug/main.o b/exp/Memory manager/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..341a5b6cb5738103e4c36bf6ce320b03aeaabd09 GIT binary patch literal 13931 zcmc&*eUM~VRll>l2}vMs0?TFt1{Sj+J8^cVUw=){w1H)_lOoB+VB8>8LZ1Ecdgi(P zF}~NmGm8+Ltfmq}%3%2wL<*v$v;@iz;uoliiHXsIqEtkyM1rUl0TKKnq!!}u{La1a z-8WO&n7@3L^!)nVbI(2J+;h(T=(opa&NcE}Up3}ZqFpod<7jhCtRG*&pItM?yt|^` zzXN~vo6-->cU$9@lAiPPuqiz>-%iu#WUviW;Y-J@w#Rtqi;ejj#@z?q_D+zH&zX zd{90fe(Id&%9&*L?v*q5?D>g|eD|&$cO5;j3%z7y_PS@~%(Ldpe-6^i9O;QiRQTzC z`r7YF*V7N}#(xh#wd>(0cipw}^xZ2@v!@OU1$H?FAljH6rl1sQGfLZCQ1tXW&z!&U z%E!q7?LA9Wr_XcnCmy-?Ubqv_f755@0d@J^m^XU(X5jC!beZ3&#dmx7LmvKX55EKh zOz~Zw>pc8k4}aOidw1mgD;^$s_!m6;ma^JQ}Y?yV$A&(1)w|rE_vp*@x069d9Q~*=Hb8e@YBFk^9st@jRcsQR}x=I ze1Q0M#8(i%nRuQ!C0-zY5AibbuM#(jA0j?R{5j$qiO&#si1(mGOtVPI?UhDn`yuc+ z+gHdhRYD)f(FCKMjCTB@nysxAl^^>AhFu`7sTq%CyC4C`37-=_`(U$AE(1{(r+N~8RDCWFGey<&2h_}+jWrimy>=qv9kP?hd+G2^wnqSf*gO!!xy5K zIi6Ki42P55f_GETJBd}!7d`w2xXkfOtFz^HsO5bAiyrd7h6jm%jQEqpA13}s;@=_uCh-%*7a{DX=JUi?5)+yM@xSuR zyNSO|{2}6<^x-FnUqt*j#OD!z9oWsqg;+=(z8rXJUP?Jj#Omjph}F*#F(w4hj}k)| zo}VVh2cBOe{!ZeDh+jqgS>o>^{!ik|i7!IQn3@B`hlsBrzMl9>;x*!f#CH(S68{SE zRm6Wnto7s{h!;qIhPXt$7bR(G0^%~UF0wZfS4r;^*NE>Tt`k2%tgFo*5xBYC>S*Ac&y_A-;+DBgAhaevJ70h(AaCX5#-L z{sH3MnEt7G3-N1-ZzWzPCN#fId>g;~8Sx#&UnG{*+?X@O_Yz+M_f5^u5|@bYBfgIK zmx$ZMA0&PU@dLy^NBrx=A0hq?;zx)H%~y#vA78p(#?t2+;@{<$0kP8GNBsNz@~B7u zFXBHS{j%5Oa&9L6IO$W5{xRZDkp2aaelgN!YW|S)W#T_2K21z$9wdH@U!L^ndy!^S z^SCnM^ZpFwc!fL~OK&08`0o=R+#y}=Bfg6GapFV7|3MrOzxsfTwM;C1?w1cd9|iq( zh2~N6z&JeLBG#B+MA}b{=C8E5zA5Og?>orz5@|N?A(kzzK92tZ&<~h=O+Q+|7a1(W ze2$unZM8GzD9~#?x@LpWUuHDw1@AFG2%e8~+}-BPv(G*&T^^DT`#g!iZ?hPt5kE?O z_7Z;@_ycCI!IEtL-eR>zXboGdQL=C}YEM=d%>4XA)%{LTMO!Pg z&naj!OykvI)Xln7wM!KO{RiJFi`ip`+19zHoooM>&ILv5vsWKZ>(!>1T}SW0A3MX% zQl^0qtTq(5O{GOo^5QnV0$)ysn|+d>ko}NLNgrf4ZBT0Oahq7wCm(3?y6OAvuLw4Yr?QSiTmSt7@ll} z{Ww*Rl;Pg1z)=RnkN6$Z5?{c$EE3{g)SG;YyqgGhy{6OWF_ zlZgm~4suYp{0KYH8;(7rBiumeyn#LJN3AsPgit%UI9G9evRuNYUDlK!Z3LMHgw zP1oEI9!H=w=*tE|lM%`o9`$-0qGtU}7hol^M3rux*|kLVFg>{%J7Vr$h_vd}=ESd3 zU`^OtAEmaxxD&Z-i5aiBQ+k*%&0@O-S6C<0z897v$Q}e0EMKzL$(#(@xIr9i>eLVq zGN`ycZG>1ECs+|VsakD9Bu0M{Eej8(U{Vdkjn3LK1v(B8+GK#UT8VJ7^6~Fk*ECe0 zN>c_4W>r=b^-N1zh+5V;Vf__|Z)NgK7lk*mX@pG5LdR#_zL~5BGsC3qEJx7L2GlPn_5~O?B!-CtB9p6)k(=&uz--VDYBuf za{}xuH9>-TL7m0B3021fswBm|QkSn`8g+_32W=3$;nXE$TpLZ2qFT~@&~2S6sz&O_ z32^EO^;CpyjLxrBiGnwB5y29tfaFs-xm;F1h>$q#qS&jHa*f`AVWVLfZN}peWi_RR z2=laz=rHVPg)pvuka!p6(4X_ZS8_u|-=Dkp$8^Kt%P# z152}Wh!EAk-~lkzG4G`YA~e7PFH@hkCq3#U8G?Lkw^Eua0WNE1mIw&9x1$A=Swxlu z7rS43-LVzzFVPc}s^K~{tvXxW+*(UEtOy&!y?zT*1F5hbL5$@;>|q~lDNvH6c8@YE zP#$rOEn?Vj_dI=EfOJNq6EQkV2F|(gz-|TJghMd-^b@AMhmwF1ZKQ-7Njz4oF*D@B zj5r>6i`f=M$VucaHxu{^w+jnAS}Ajm!%lys&MRXoL`)ez<&=P@rZGH0U4kw!rP9E3 zz?4bmu&RxqETgI#JmEwpN#qqXx$G)c4Sten9XdYDg%>Btc%8^vr9RgX=Q$l}Rn?*0 zKjFEvUQ&~>YNV0Ns(Mw8l%Hm(i*;ui?%Yg6?n0L5>WgZolu8z0#KB@o^VC*(AtOW= zp^KQ$2q@dAXp~&GgsDVUy~@}sOTr)+{y$^OvpWl|V!UbDfhV$fn=9Mk@dGRimo$&4 zEIj-WVuVQO@Bfir@b&uZkAnu z$QFUqEE6hbVcsNMZC$G%Wh7M=!GuvoJ3l_`q`O^!jgJNj2E<8`VU3Z6v?5zB$d%2{ zs_X$|A+5+tirC0jQoEFbZr9RbJZihO)0QEnpfk%HC1W&E4Fe`9_|=9AXH~0;Q7j@A zM7@_;%s>P)wwB1N0XEEHH<<99q*j-e94uPhM7r$PHLQ_3D4C5$7$wPYWOG2%Oim$K zEvX^YqSHVdO>_jLmD>f3yXfsW?M48{04vR{w9z0+R-<7D%Q9pZS3QIV3IyCG>uB?BKg|mVwKcT`TR)slCyD@CR(kE32p0QO9 zA~GR2*T{D zEz4+jC9ZRF+>hL@#FaP@Z6U2PmgpN7^TP;B7-S)ECgp0$PNz^LRLZ4BI2lgTsLLo4 zle3i&zkH8JC&E4sIg}u4fKF^H?Tq6=gu^S#e058Z)$H_O#vz}{)50M)?||%+N`wEK z;c9CzXmM`{WL@r@A%Si4q$JrW2208&h;|7Jo5iv>KsLfLA@}9Qj6}3}z+(I@y70r6i@dV4ZS^y5#Fn3P+@MRe%0>oDKWvW1D9@3k zk+m3MuX!|RCtK|ZDkzbn656&|5>#v%#A?OXv|vq8wJzJ}pmmF>K@BUNxNaT?QuH@P@U|-7U#!S!lNFjFbj^u*}8C?clRi6^e}YicG$G`r~#;o>qmE0|$F9_r~|$m%x4M6Zjpd3r*f8K~!E z-We7lT4e{VK9Nmqqt{Ktc09&1C1T({FGF$o6e0>Ut;AlTAVmWJ`A;sW#OZP2h1k%T z!JN~b8onT_8yE@^?kb>wojf_7=#-{dv5HOV4p>qMdVBrpV!qJE9gAEwsX!yY8F)JCl{RoZfY2I?YfjI?#~^*;yFS z25M$zaYP%h&W_@cHe~%qZ%p-%+KAGwagJ!S!J>Zi8?x#Lf8vTQ>!9IcmG>L6fN}Ls zyXXbIBrhVJP2&VN_{_5kqusV;Wxv8`=iO?)7E~DQa)6TyL|pm0d8pW1TRHd$-OWJ- z4i+~fx!nbEP?0;WgZKmW?ODz#qS{k9S~_`xR8XKrj@RVe3e&Qw)J{$s;~e9N&AoI> zTUK;>DK2y{RMsmiI`Z2=H@DDMVBTS)AvcjVSl2RF>@cVpE`!5#{9aNJq_amsXz&E7 z{pjKD$VGryE`RCUcsR=WZ47e+G~^z!0n9)fIl~yY5QIjP>zUVBULVU+02TylS}FHg z-(|B52yp}iDq zniJ8fOh?TGM8?U1>{qZjWldQmp($Sip{%+SUXVWRAC5YCA8{zJySW{)6$M>vVURlJ z{SYL|N-Xhr8#d&==Fy(NvalidwH)u!19j6R(JFq@i)>y)n1m94xXIUdP^Aj!`aT$S z^+yF6IV+E0xISK!TN;?o>5xNx8X&PIg8`4ayg87)X3mJk7cy*S>1kI8@MJD-Fu@gX zCKNt6yHLkY(Q*QoA>;&n6~|)yIt6qNsjZx1&o0=Ta5=zIESy5I=}!*{~aQPGIeMBQE2o`E?s|br*6FuuZt{;rjDNo(|y0N!T`!6874AWVNL}ZA z+lyi}sK4Z5Rj&v1wipdCMtbo2Mnc418KXs`P0m_+4Y>8JJnrIjj177>*54}w{2nTS zT9X}0+W3*l$lcLVmn3rcNA`lk^u3;(*P2X0-qTrOdwM6lzTcJ8A-|j;rRr`}+?n#! zWBcN(JJiXmQqcf<>y}=QT38pMxSVoHY$#3AS$EItiENP3YtUL>zE+3`?HH*g9r+5E zQfCc*2kb1b3kUH@V)y%voDuV0?me#cKVJLByL9rNoxB6Q zhj0F0Oq#r3EAJ7XYhI5}ii)@cnlQY%(Wbo_R=@E9gqB7b`0z#U%t0M2^riyOQU39rP`1;;qlS9)xS1r;Znwg p{Ci_--Gq1-@l9)QkPAZ6EaBz|FEE~r96On=!-aj^>f<+G^S=hb8u0)C literal 0 HcmV?d00001 diff --git a/exp/Memory manager/Debug/makefile b/exp/Memory manager/Debug/makefile new file mode 100644 index 0000000..823a137 --- /dev/null +++ b/exp/Memory manager/Debug/makefile @@ -0,0 +1,43 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +-include ../makefile.init + +RM := rm -rf + +# All of the sources participating in the build are defined here +-include sources.mk +-include subdir.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +-include ../makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: Memory\ manager.exe + +# Tool invocations +Memory\ manager.exe: $(OBJS) $(USER_OBJS) + @echo 'Building target: $@' + @echo 'Invoking: Cygwin C Linker' + gcc -o "Memory manager.exe" $(OBJS) $(USER_OBJS) $(LIBS) + @echo 'Finished building target: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) "Memory manager.exe" + -@echo ' ' + +.PHONY: all clean dependents +.SECONDARY: + +-include ../makefile.targets diff --git a/exp/Memory manager/Debug/memory.d b/exp/Memory manager/Debug/memory.d new file mode 100644 index 0000000..26e6bbd --- /dev/null +++ b/exp/Memory manager/Debug/memory.d @@ -0,0 +1,3 @@ +memory.d memory.o: ../memory.c ../mem.h + +../mem.h: diff --git a/exp/Memory manager/Debug/memory.o b/exp/Memory manager/Debug/memory.o new file mode 100644 index 0000000000000000000000000000000000000000..c02b1512b1eb5cf08df16594b07a30ec87b9aeb2 GIT binary patch literal 16318 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�GhGgV;@T&iDrI9(c@nAh&Rxxb_8vKPc-jvkqdGhh(yH;f|OB68?|wUTvt zaa1Rca&~km72-q(PXKS@j=aN*V7JZR5%z`^s8b!QfIbV#@K)G#tbs-LX>kgfWhn5* zL?A~Qk|zc&5y5U-Vfa>@sXAq1^({MIDX@s_Z;-<%$7?+o-5hq?VUvD=x{c^A`TDIa zuNqkkE0CP{^7arf-tAQr zqPRm6L~>$tG1r@S{X+RhmUJ3(OL<}XMh&*v(dm_&q(-2Tha?@^k#^yBduQ$~qj(wc zw)q2511IOxqdcp_;aY99F5w*A&>zPycJ7ePP6IFEEm+3U*3i3vB`YfKeA@Us)VHz{vpDw4P26@4;BCu4Lm-U^l9Y^*e6 zK+3l*M)Ir8i`n``ApB6ltTkVaX!2>1gYK} z1|;u7uQl@axav}fTW^bLZvv9vPOLQnkm^?h(lHu9I>sNwt%JDrYjNvZNVtF+jK=6X z_)%$}iIEVL_O~$_!>gc5`$mlJ#VesoTaDMh75z9yqC?k+ zy<28R&2o6~T$lJw{6royjN`AoXP!{xjqFE0yFrmRnG?#}K#})^6Uw_m zk+*i0;{R4#lv}Y(-h6d$3WI>l|D84(!9()UAOAPnD_)2PyMl`CC0<#vOn#v)eoZd_ zx7p``yn??nP1*(dzsr{Qn^!DzZ-fu?{V8tU?+8S1c~g2Z<)I-;fDq!@0yMc0FTCZ% z*{%eoEOhbIUH2&R>yO|Z%T7#Wow19D2~bm#mBHS+x^8cW>b0dMMcERP@@WY}719J8 R6*bQUUa_+`&;b?J{2xG3J(U0e literal 0 HcmV?d00001 diff --git a/exp/Memory manager/Debug/objects.mk b/exp/Memory manager/Debug/objects.mk new file mode 100644 index 0000000..742c2da --- /dev/null +++ b/exp/Memory manager/Debug/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/exp/Memory manager/Debug/sources.mk b/exp/Memory manager/Debug/sources.mk new file mode 100644 index 0000000..df1db10 --- /dev/null +++ b/exp/Memory manager/Debug/sources.mk @@ -0,0 +1,17 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +O_SRCS := +C_SRCS := +S_UPPER_SRCS := +OBJ_SRCS := +ASM_SRCS := +OBJS := +C_DEPS := +EXECUTABLES := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +. \ + diff --git a/exp/Memory manager/Debug/subdir.mk b/exp/Memory manager/Debug/subdir.mk new file mode 100644 index 0000000..9f531a7 --- /dev/null +++ b/exp/Memory manager/Debug/subdir.mk @@ -0,0 +1,27 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../main.c \ +../memory.c + +OBJS += \ +./main.o \ +./memory.o + +C_DEPS += \ +./main.d \ +./memory.d + + +# Each subdirectory must supply rules for building sources it contributes +%.o: ../%.c + @echo 'Building file: $<' + @echo 'Invoking: Cygwin C Compiler' + gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<" + @echo 'Finished building: $<' + @echo ' ' + + diff --git a/exp/Memory manager/Memory manager.exe.stackdump b/exp/Memory manager/Memory manager.exe.stackdump new file mode 100644 index 0000000..18ea39f --- /dev/null +++ b/exp/Memory manager/Memory manager.exe.stackdump @@ -0,0 +1,12 @@ +Exception: STATUS_ACCESS_VIOLATION at eip=004016B3 +eax=00A01CB0 ebx=009A0000 ecx=00403100 edx=FFF9E34C esi=00A01CAA edi=00000000 +ebp=0022CB18 esp=0022CAF0 program=C:\Users\Tiberiu\workspace\osdev\Memory manager\Debug\Memory manager.exe, pid 5948, thread main +cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023 +Stack trace: +Frame Function Args +0022CB18 004016B3 (00000050, 00403100, 0000000A, 6112C040) +0022CB38 00401376 (00000002, 0022CB60, 00000000, 00000000) +0022CCA8 00401259 (00403100, 00001000, 00000000, 00401415) +0022CCD8 0040143F (00000001, 009C8608, 009C8508, 00008000) +0022CD68 61007038 (00000000, 0022CDA4, 61006980, 7FFDC000) +End of stack trace diff --git a/exp/Memory manager/PROJEC~1 b/exp/Memory manager/PROJEC~1 new file mode 100644 index 0000000..76b7b43 --- /dev/null +++ b/exp/Memory manager/PROJEC~1 @@ -0,0 +1,82 @@ + + + Memory manager + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/Memory manager/Debug} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/exp/Memory manager/main.c b/exp/Memory manager/main.c new file mode 100644 index 0000000..e1a5933 --- /dev/null +++ b/exp/Memory manager/main.c @@ -0,0 +1,33 @@ +/* + * main.c + * + * Created on: Aug 24, 2011 + * Author: Tiberiu + */ + + +#include +#include +#include "mem.h" + +void print_memmap() +{ + uint32 i; + printf("memory map:\n"); + for (i = 0; i <= TotalFrames>>5; i++) + printf("0x%x ", FrameMap[i]); + printf("\n"); +} + +int main(int argc, char **argv) { + + MemPhInitialize(1024); + MemPhReserveFrames(0, 0x20000); + MemPhReserveFrames(0xF0000, 0x10000); + + // Find a free frame + uint32 i; + for (i = 0; i < 10; i++) MemPhAllocFrame(0,0); + + return 0; +} diff --git a/exp/Memory manager/mem.h b/exp/Memory manager/mem.h new file mode 100644 index 0000000..7209e72 --- /dev/null +++ b/exp/Memory manager/mem.h @@ -0,0 +1,37 @@ +/* + * ord-arr.h + * + * Created on: Aug 24, 2011 + * Author: Tiberiu + */ + +#ifndef ORD_ARR_H_ +#define ORD_ARR_H_ +#include + +typedef unsigned int uint32; +typedef unsigned char uint8; + +#define Log(...) { printf(__VA_ARGS__); } +#define Error(...) { fprintf(stderr, __VA_ARGS__); } + +#define Panic(...) { printf("[PANIC] Kernel panic: "); printf(__VA_ARGS__); } + +#define LogMem(...) { Log("[MemLog] "); Log(__VA_ARGS__); } +#define ErrorMem(...) { Error("[MemErr] "); Error(__VA_ARGS__); } + +extern uint32* FrameMap; +extern uint32 TotalFrames; +extern uint32 TotalMemory; + +extern void ConvertIndexToFrame (uint32 index, uint32* address, uint32* offset); +extern uint32 ConvertFrameToIndex (uint32 address, uint32 offset); + +extern void MemPhSetFrame (uint32 frame, uint8 value); +extern uint32 MemPhGetFrame (uint32 frame); +extern uint32 MemPhFindFreeFrame(); +extern void MemPhAllocFrame(uint8 isKernel, uint8 isWriteable); +extern void MemPhInitialize(uint32 SystemMemoryKb); +extern void MemPhReserveFrames (uint32 address, uint32 length); + +#endif /* ORD_ARR_H_ */ diff --git a/exp/Memory manager/memory.c b/exp/Memory manager/memory.c new file mode 100644 index 0000000..554bf7f --- /dev/null +++ b/exp/Memory manager/memory.c @@ -0,0 +1,102 @@ +/* + * mem-phys.c + * + * Created on: Aug 27, 2011 + * Author: Tiberiu + */ + +#include +#include "mem.h" + +uint32* FrameMap; +uint32 TotalFrames; +uint32 TotalMemory; + +void ConvertIndexToFrame (uint32 index, uint32* address, uint32* offset) +{ + *address = (index >> 5); + *offset = index & 0x1f; +} + +uint32 ConvertFrameToIndex (uint32 address, uint32 offset) +{ + return (address<<5) | offset; +} + +void MemPhSetFrame (uint32 frame, uint8 value) +{ + uint32 addr, off; + ConvertIndexToFrame(frame, &addr, &off); + + if (value) FrameMap[addr] |= 1<> 5; addr++) + if (FrameMap[addr] != 0xffffffff) + { + for (pos = 0; (FrameMap[addr] & (1<Frame != 0) return; + + uint32 free = MemPhFindFreeFrame(); + if (!free) return; + + LogMem("Physical: allocated frame %u.\n", free); + + MemPhSetFrame(free, 1); + /*page->Present = 1; + page->User = (isKernel) ? 0 : 1; + page->Writeable = (isWriteable) ? 1 : 0; + page->Frame = free;*/ +} + +/*void MemPhFreeFrame()//Page* page) +{ + uint32 frame = page->Frame; + if (!frame) return; + + MemPhSetFrame(frame, 0); + page->Frame = 0; +}*/ + +void MemPhInitialize(uint32 SystemMemoryKb) +{ + LogMem("Starting physical memory manager...\n"); + TotalFrames = SystemMemoryKb >> 2; + TotalMemory = SystemMemoryKb; + + FrameMap = (uint32*) malloc(sizeof(uint32) * (1 + (TotalFrames>>5))); + memset(FrameMap, 0, sizeof(uint32) * (1 + (TotalFrames>>5))); + LogMem("Started ok!, found %ukb total_frames=%u\n", SystemMemoryKb, TotalFrames); +} + +void MemPhReserveFrames (uint32 address, uint32 length) +{ + address >>= 12; + length = (length>>12) + ((length & 0xfff) > 0); + uint32 end = address + length; + + for (; address < end && address < TotalFrames ; address++) + MemPhSetFrame(address, 1); +} diff --git a/exp/luxRomImageMaker/.cproject b/exp/luxRomImageMaker/.cproject new file mode 100644 index 0000000..9df1331 --- /dev/null +++ b/exp/luxRomImageMaker/.cproject @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/exp/luxRomImageMaker/Debug/commands.d b/exp/luxRomImageMaker/Debug/commands.d new file mode 100644 index 0000000..0492857 --- /dev/null +++ b/exp/luxRomImageMaker/Debug/commands.d @@ -0,0 +1,3 @@ +commands.d commands.o: ../commands.cpp ../app.h + +../app.h: diff --git a/exp/luxRomImageMaker/Debug/commands.o b/exp/luxRomImageMaker/Debug/commands.o new file mode 100644 index 0000000000000000000000000000000000000000..7c25de238d98d3d4211271ea5ee4436bb9c28530 GIT binary patch literal 89907 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 literal 0 HcmV?d00001 diff --git a/exp/luxRomImageMaker/Debug/luxRomImageMaker.exe b/exp/luxRomImageMaker/Debug/luxRomImageMaker.exe new file mode 100644 index 0000000000000000000000000000000000000000..44f50648f8c9c161cd5714afb23da763c769c33b GIT binary patch literal 198980 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 @J9_qyR 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

9{|dD3 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%0Adx!dFCLFix2p;B_ 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 + + luxRomImageMaker + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/luxRomImageMaker/Debug} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/exp/luxRomImageMaker/app.h b/exp/luxRomImageMaker/app.h new file mode 100644 index 0000000..2bbe2b2 --- /dev/null +++ b/exp/luxRomImageMaker/app.h @@ -0,0 +1,71 @@ +/* + * app.h + * + * Created on: Aug 31, 2011 + * Author: Tiberiu + */ + +#ifndef APP_H_ +#define APP_H_ +#include +using namespace std; + +extern int cmd_create (char** argv, int argc); +extern int cmd_close (char** argv, int argc); +extern int cmd_mkdir (char** argv, int argc); +extern int cmd_cd (char** argv, int argc); +extern int cmd_add (char** argv, int argc); +extern int cmd_setflags (char** argv, int argc); + + +struct Node { + char Name[256]; + unsigned Flags; + + vector Children; + Node* Parent; +}; + +struct DirectoryEntry { + char Name[256]; + unsigned Flags, OwnerId, GroupId, Size; + struct { unsigned Date; unsigned Time; } TimeCreated, TimeModified, TimeAccessed; + unsigned Offset; +}; + + +class RomDisk +{ +private: + char OutputFile[256]; + unsigned FlagsDefault; + + Node Root; + Node* Current; + + int IndexOf (char* s); + +public: + RomDisk(); + void SetOutFile (char* s); + void SetFlags (unsigned n); + int ChangeCurrentDirectory (char* n); + void AddFile (char* name); + void AddDirectory (char* name); + +// WRITE TO FILE +private: + void *buffer; + FILE* file; + + void prepareBuffer(); + void writeToBuffer(void*, unsigned); + void writeNode (Node* n); + long fileSize (char* file); + long nodeSize (Node* n); + +public: + void Close(); +}; + +#endif /* APP_H_ */ diff --git a/exp/luxRomImageMaker/commands.cpp b/exp/luxRomImageMaker/commands.cpp new file mode 100644 index 0000000..5833ef8 --- /dev/null +++ b/exp/luxRomImageMaker/commands.cpp @@ -0,0 +1,97 @@ +/* + * commands.cpp + * + * Created on: Aug 31, 2011 + * Author: Tiberiu + */ + +#include +#include "app.h" + +RomDisk* disk = NULL; + +char* remove_quotes (char* str) +{ + if (*str == '"') str = str + 1; + + int temp = strlen (str); + if (str[temp-1] == '"') str[temp-1] = 0; + + return str; +} + +int cmd_create (char** argv, int argc) +{ + // Check number of parameters + if (argc < 2) return 0; + + // Create a new disk + disk = new RomDisk(); + + // Set path + argv[1] = remove_quotes(argv[1]); + disk->SetOutFile(argv[1]); + + printf("Created ramdisk '%s'.", argv[1]); + return 1; +} + +int cmd_close (char** argv, int argc) +{ + if (!disk) fprintf(stderr, "Error: no romdisk opened!"); + + disk->Close(); + delete disk; + + printf("Closed ramdisk '%s'.", argv[1]); + return 1; +} + +int cmd_mkdir (char** argv, int argc) +{ + if (!disk) fprintf(stderr, "Error: no romdisk opened!"); + if (argc < 2) return 0; + + argv[1] = remove_quotes(argv[1]); + disk->AddDirectory(argv[1]); + + printf("Created directory '%s'.", argv[1]); + return 1; +} + +int cmd_cd (char** argv, int argc) +{ + if (!disk) fprintf(stderr, "Error: no romdisk opened!"); + if (argc < 2) return 0; + + argv[1] = remove_quotes(argv[1]); + if (disk->ChangeCurrentDirectory(argv[1]) == -1) fprintf(stderr, "Error: invalid path."); + + printf("Changed directory to '%s'.", argv[1]); + return 1; +} + +int cmd_add (char** argv, int argc) +{ + if (!disk) fprintf(stderr, "Error: no romdisk opened!"); + if (argc < 2) return 0; + + argv[1] = remove_quotes(argv[1]); + disk->AddFile(argv[1]); + + printf("Added file '%s'.", argv[1]); + return 1; +} + +int cmd_setflags (char** argv, int argc) +{ + if (!disk) fprintf(stderr, "Error: no romdisk opened!"); + if (argc < 2) return 0; + + argv[1] = remove_quotes(argv[1]); + unsigned flags = strtoul(argv[1], 0, 16); + disk->SetFlags(flags); + + printf("Changed flags to 0x%x.", flags); + return 1; +} diff --git a/exp/luxRomImageMaker/luxRomImageMaker.exe.stackdump b/exp/luxRomImageMaker/luxRomImageMaker.exe.stackdump new file mode 100644 index 0000000..342fd2a --- /dev/null +++ b/exp/luxRomImageMaker/luxRomImageMaker.exe.stackdump @@ -0,0 +1,13 @@ +Exception: STATUS_ACCESS_VIOLATION at eip=61113783 +eax=00001000 ebx=00000000 ecx=FFFFFFFF edx=00001000 esi=00000000 edi=00001000 +ebp=0022B4D8 esp=0022B4D4 program=C:\Users\Tiberiu\workspace\osdev\luxRomImageMaker\Debug\luxRomImageMaker.exe, pid 6932, thread main +cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023 +Stack trace: +Frame Function Args +0022B4D8 61113783 (00001000, 0022BC0A, 00402020, 00000001) +0022BC28 6111B2F4 (0022D000, 611663A0, 00402020, 0022BC58) +0022BC48 6112CF00 (00402020, 00001000, 0000000D, 00401800) +0022BC98 610C3545 (0022BCD0, 00001000, 61166330, 00401212) +0022CCD8 00401247 (00000001, 00A08608, 00A08508, 00008000) +0022CD68 61007038 (00000000, 0022CDA4, 61006980, 7FFD9000) +End of stack trace diff --git a/exp/luxRomImageMaker/main.cpp b/exp/luxRomImageMaker/main.cpp new file mode 100644 index 0000000..a7d4152 --- /dev/null +++ b/exp/luxRomImageMaker/main.cpp @@ -0,0 +1,97 @@ +/* + * main.cpp + * + * Created on: Aug 31, 2011 + * Author: Tiberiu + */ + + +#include +#include +#include + +#include "app.h" +using namespace std; + +void GetParams (char* buffer, char* params[4], int& count) +{ + bool inside_quotes = false; + int len = strlen(buffer); + count = 0; + + if (!isspace(buffer[0])) params[count++] = buffer; + else buffer[0] = 0; + + for (int i = 1; i < len && count < 4; i++) + { + if (buffer[i] == '"') { + inside_quotes = (inside_quotes) ? false : true; + if (inside_quotes && buffer[i-1] == 0) params[count++] = &buffer[i]; + ++i; + } + if (inside_quotes) continue; + + // Comment + if (buffer[i] == '#') { + buffer[i] = 0; + break; + } + + if (!isspace(buffer[i]) && (buffer[i-1]==0)) + params[count++] = &buffer[i]; + + else if (isspace(buffer[i])) buffer[i] = 0; + } +} + +void ProcessLine (char* buffer, int lineno) +{ + char* argv[4]; int argc, res; + GetParams(buffer, argv, argc); + + printf("%i: ", lineno); + + if (strcmp(argv[0], "CREATE") == 0) res = cmd_create(argv, argc); + else if (strcmp(argv[0], "CLOSE") == 0) res = cmd_close(argv, argc); + else if (strcmp(argv[0], "MKDIR") == 0) res = cmd_mkdir(argv, argc); + else if (strcmp(argv[0], "CD") == 0) res = cmd_cd(argv, argc); + else if (strcmp(argv[0], "ADD") == 0) res = cmd_add(argv, argc); + else if (strcmp(argv[0], "SETFLAGS") == 0) res = cmd_setflags(argv, argc); + else if (strcmp(argv[0], "" )) return; + + else printf("Invalid command %s, ignored.", argv[0]); + + if (!res) { + printf("Syntax error!"); + exit(1); + } + + printf("\n"); +} + + +int main(int argc, char **argv) { + + char buffer[0x1000]; + int lineno = 0; + + // Make sure we have an argument + if (argc < 2) { + fprintf(stderr, "Missing argument - script file."); + return 0; + } + + // Try to open file + FILE* input = fopen(argv[1], "r"); + if (!input) { perror(argv[1]); return 0; } + + // Read file line by line + printf("Reading script...\n"); + while ( fgets(buffer, 0x1000, input) ) + ProcessLine(buffer, ++lineno); + + // Cleanup + fclose(input); + return 0; +} + diff --git a/exp/luxRomImageMaker/romdisk.cpp b/exp/luxRomImageMaker/romdisk.cpp new file mode 100644 index 0000000..57e2155 --- /dev/null +++ b/exp/luxRomImageMaker/romdisk.cpp @@ -0,0 +1,165 @@ +/* + * romdisk.cpp + * + * Created on: Aug 31, 2011 + * Author: Tiberiu + */ + +#include +#include + +#include "app.h" +using namespace std; + +RomDisk::RomDisk() +{ + FlagsDefault = 0xB68; + Current = &Root; + + Root.Flags = FlagsDefault; + Root.Parent = &Root; +} + +int RomDisk::IndexOf(char* s) +{ + for (int i = 0; i < (int)Current->Children.size(); i++) + if (strcmp(s, Current->Children[i].Name) == 0) return i; + + return -1; +} + +void RomDisk::SetOutFile (char* s) +{ + strcpy(OutputFile, s); +} + +void RomDisk::SetFlags (unsigned n) +{ + FlagsDefault = n; +} + +int RomDisk::ChangeCurrentDirectory (char* n) +{ + int len = strlen(n); + if (!len) return -1; + + // See if we need to go to root + if (n[0] == '\\') + { + Current = &Root; + n = n+1; + } + + // Process every folder in path + while (char* next = strchr(n, '\\')) + { + // mark next entry to parse + *next = 0; next = next+1; + + // previous dir? + if (strcmp(n, "..") == 0) Current = Current->Parent; + + else { + // Find next node + int index = IndexOf(n); + if (index == -1 && strcmp(n, ".") != 0) return -1; // Invalid path + + // Set as current + Current = &Current->Children[index]; + } + + n = next; + } + + return 0; +} + +void RomDisk::AddFile (char* name) +{ + Node f; + strcpy(f.Name, name); + f.Flags = (FlagsDefault & 0x497) | 1; // File + f.Parent = Current; + + Current->Children.push_back(f); +} + +void RomDisk::AddDirectory (char* name) +{ + Node dir; + strcpy(dir.Name, name); + dir.Flags = (FlagsDefault & 0x497) | 2; // Directory + dir.Parent = Current; + + Current->Children.push_back(dir); +} + +void RomDisk::prepareBuffer() +{ + buffer = malloc(0x10000); + + file = fopen(OutputFile, "w"); + if (!file) { + perror(OutputFile); + return; + } +} + + +#define MIN(a,b) ((a > b) ? (b) : (a)) + +void RomDisk::writeToBuffer(void* data, unsigned size) +{ + while (size) + { + unsigned qty = MIN (size, 0x10000); + memcpy(buffer, data, qty); + size -= qty; + + fwrite(buffer, sizeof(unsigned char), qty, file); + } +} + +long RomDisk::fileSize(char* fn) +{ + FILE* f = fopen(fn, "r"); + if (!f) { + fprintf(stderr, "Invalid file: %s.\n", fn); + exit (1); + } + + fseek(f, 0, SEEK_END); + long size = ftell(f); + fclose(f); + + return size; +} + +long RomDisk::nodeSize(Node* n) +{ + if (n->Flags & 1) return fileSize(n->Name); + + return (n->Children.size() * (sizeof(DirectoryEntry))); +} + +void RomDisk::writeNode(Node* n) +{ + +} + +void RomDisk::Close() +{ + // Init + prepareBuffer(); + + // Write ramdisk header (magic number) + unsigned MAGIC = 0x51042A0D; + writeToBuffer(&MAGIC, sizeof(unsigned)); + + // Write root directory entry + writeNode(&Root); + + // Cleanup + free(buffer); + fclose(file); +}