From b42c7641e6bf4219ad12f8c38428fa2f83b4803d Mon Sep 17 00:00:00 2001 From: kieron Date: Wed, 2 May 2018 17:17:58 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@651 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5230592 -> 5234688 bytes bin/kernel.bin | Bin 176356 -> 180452 bytes iso/boot/asuro.bin | Bin 176356 -> 180452 bytes lib/E1000.ppu | Bin 15708 -> 15730 bytes lib/IDE.ppu | Bin 10454 -> 10454 bytes lib/arp.ppu | Bin 3509 -> 3509 bytes lib/asuro.ppu | Bin 1130 -> 1130 bytes lib/console.ppu | Bin 60084 -> 60084 bytes lib/drivermanagement.ppu | Bin 8770 -> 9213 bytes lib/eth2.ppu | Bin 2231 -> 2231 bytes lib/fat32.ppu | Bin 11994 -> 11994 bytes lib/ipv4.ppu | Bin 2978 -> 2978 bytes lib/kernel.ppu | Bin 4977 -> 4708 bytes lib/libpconsole.a | Bin 265918 -> 265918 bytes lib/libpmultiboot.a | Bin 29980 -> 29980 bytes lib/libpsystem.a | Bin 184472 -> 184472 bytes lib/memview.ppu | Bin 3192 -> 3280 bytes lib/net.ppu | Bin 2928 -> 2928 bytes lib/netutils.ppu | Bin 3902 -> 4026 bytes lib/scheduler.ppu | Bin 3297 -> 3229 bytes lib/shell.ppu | Bin 2773 -> 2773 bytes lib/storagemanagement.ppu | Bin 10322 -> 10322 bytes lib/terminal.ppu | Bin 10957 -> 11333 bytes lib/tracer.ppu | Bin 2941 -> 3782 bytes src/driver/net/include/netutils.pas | 24 ++-- src/driver/net/l3/ipv4.pas | 20 +-- src/driver/netdev/E1000.pas | 5 +- src/driver/storage/storagemanagement.pas | 4 +- src/drivermanagement.pas | 172 +++++++++++++---------- src/include/asuro.pas | 4 +- src/kernel.pas | 54 +++---- src/prog/memview.pas | 9 +- src/prog/terminal.pas | 43 ++++-- src/scheduler.pas | 24 ++-- src/tracer.pas | 71 +++++++++- 35 files changed, 265 insertions(+), 165 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 92defe25ec02f6a24a7a70482e2c837cabe8708c..54cb25842ac74b56c5f61d0ad36e36f2686adcac 100644 GIT binary patch delta 51579 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 delta 49124 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 z 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 diff --git a/bin/kernel.bin b/bin/kernel.bin index b0715ad4fe9e89f3a3ebe300969c815252a77e6f..0c4001af73b95c628693363e050fe070836e90df 100755 GIT binary patch delta 39916 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 delta 37481 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 diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index b0715ad4fe9e89f3a3ebe300969c815252a77e6f..0c4001af73b95c628693363e050fe070836e90df 100755 GIT binary patch delta 39916 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 delta 37481 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 diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 680da57288ebe6ac36db132183a002c2f0c71949..5e5d3813563d2eef25643d99330eda901c5e3648 100644 GIT binary patch delta 239 zcmcap^{GlWARyGx*p#K2k%5`vK!6g1mn{QB=km)USGRaq&X_1`$Sn5w<;1{W9IUZU z(eJ)BzMLG)Xv867?CSO4_Y$kgy^Kp3V>cTyWpD^*u`)9-Ff@Y6W-!@0c_EwFy delta 231 zcmexVb*D-;ARyGx*p#K2k%5`vK!6g1i7f*|=km)USGRaqPM;`i$h^1q{KUXt9Pzic ze%)Icv~zMWqY=kT8NIe6PP2q3_cAVFbl+^ml))jK$;!;Yz|a6Do4{nta9u|bA0bMihDXT}GUnM}ihWR$5IW5eV| zQ)fnn$wy6NfTWU{8e`LBPcvsm?a94naX|77P^4wDu(>m%+2nBZXhyTmo6VJ2fts(` VC<8V8vQY&pQm|D5N;})?0{}AOO3DBL diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 570d334185f73b55cf5b5491c59239baf20f6429..00f3a229bf5bfbab852b5b6f76ca32da30cf6f8a 100644 GIT binary patch delta 19 bcmcZ>cr9?kS`OA&r|5Uz8eeYQs;B_~U`Gj% delta 19 bcmcZ>cr9?kT8{YJTEFhC4BEMItD*(~Y3m9z diff --git a/lib/arp.ppu b/lib/arp.ppu index ce880aec380771e940cc063b9365d37da315915f..5ef009cb702f83d7c2202daedcb61c208ed95759 100644 GIT binary patch delta 19 bcmdlgy;XX`c@7z4SFZ=ZmsoAQevbzLQ~U`L delta 19 bcmdlgy;XX`d5)JddTmFXW(jY+evbzLR^tff diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 773319f052b5da90b374c3a16e1730c1c34d04d5..67886ee42e27f958b43c041d61f450a40fedff6c 100644 GIT binary patch delta 39 xcmV+?0NDTP29J880s%RbZ33?WIkO!DO#yh85Iq0@ delta 39 vcmaFG@rq-D2*>xcKYplZGWAcCF=F<+^I~J5G!vug@Iap(zqThXMe7SkzZe@J{jQ delta 23 fcmdmTm3hlm<_(>@IpS|?{kpd@Xy@jMyOs3;mqrX$ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index a53e4e1ffe3e285172681d11503a1bdf4bd51a8e..cf3fc079178ed97fb85d528cdc0dc944dfaa0bb5 100644 GIT binary patch delta 1205 zcmYjOT}YE*6n@YA_UBTmblHB?>C9|anm>>c=31#`GNbHAYOQV7s;NvfjY|8w2#Jsr zL=tFM5fKr)=&~Q^A|eW+ya=L;2qdyDLW+ob-tYUIj(yKL?{l7W&U?=LEbzC<6AbRI zs;*TolE@HGg2m!pi4g5wcb@;+@cu_o2yuGMvpM7Q%=FliQx@X^f9K5X`RTDQHw}Jk z>OB24@Q8Vkzgx0W7mPNtT1cRb5bJo>xqHDAgGns%Hbv z`#8t!r7+i+%gr@vtd1WV$9dB1N2>`~JM0@+$=TCgt9e+-=f~DO>g0FUc8aFTG6QDX z$R`$Gr=}DwIYiW!I=u82Q8M)}cf{zlpxYQe@?`@%6oCHQ&*P2;V+2f$KRUYdFM%gt z4)FK_Rgc0|u9bPCpsq@qw%UwZ0jlMj&I+q{bK}lHOIu?rXJr=+%i+BE48>c38UB-f z$jH|+NDS(Q&%tIQtSPrj<({?xlxyacBf9bmY%ao(2*aO?K=Rpvtj8sPL;7YpsD#J8 z$=znjThdf|&6QkPP|8E@+Lk>Cq^FrGnwv&wj zudNhrnLN@gn+k`v@0XE4Y#<(qwcssg9a69iYn==^%re} z+lo&i2l4O1vpc*98Hx`}j8{q4r6rQ6*Br44R(8;o5mmWPD$}$2b!9U@Em}?%{!p|Q z%e8q*ZF>=^KnCSC@okUYm5dL>lJeEHMUprO!5UT2$_Y=oEt*bfM?%@~F`QSb@eW{a ze=M1ZcZW}eB0Y&jxH}q(#s<>QLZTPy5>>qqm=o#g9SX&xvF`qOS3H))`Z6KFZNvcV d3RM^eE}qx)g%aWZ$Wb|-)Z$O#47-a<{{yl&%-jF~ delta 957 zcmY*XOH30{6n(etOlzz1vjqA9I;BECBK5OCV`8ur6+cr$l?|4rwoqe*08uK@fau1B zrnw}<#P7m1tW2D^FmBYu=tedgKhdyo!A40~xbTxE-ZwK8o#dT+-?`_WdB0Nki-<>- z zrs0PH!={K5HoXI^6k8yQbz&p*aCFMRfC)yjFlwmI4K$DABe5C!@q_4x5Kar7xYyE0 zqZ5}+8Ee(DT-?+dq=en5nj{ll(Orpb&;5P&O!-iJQsWT zt_;#ij@dAgF0BLDoZfnyBDdCr301g_giWi$ySnfJ9+v9CjDylvc!+b7ui`OP_$t62 zC9K1eR98z^sJ#+kPpRCdmV5A*US4X$@hJ-#<*iTrsrWs4*lH;i%TJ5UzEq?U+{sQ~_rJ4W$ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index df7db34339d8ac3d7e3a8eb1db4ccf70a5fc2bee..14846340dcaccebb7952447eb0c161b7fb846980 100644 GIT binary patch delta 26 icmdlkxLt695A&^uFDLqYbI2IGdOi5P#A@RrQ4Ro{3=2*G delta 26 icmdlkxLt6953`rpxrzSX94}?`+KxEQ65hB-lmh^SG6}5! diff --git a/lib/fat32.ppu b/lib/fat32.ppu index 612ca43a6fa5ff759105e006abf35c49ced4cebd..a8277ecd03f138030f84dff54adbf3cb4753a017 100644 GIT binary patch delta 19 bcmcZ=dnVlTEFhC4BEMIzqB3zY_|$$ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 6e94af3d4e83ae6bcaf7dad5f1affa001b4aba76..6925500f56f38d3e9ff770844fd8b21ee69e1af1 100644 GIT binary patch delta 38 wcmV+>0NMYd7or!COarCi>5)%c2nAh2TkiIO>5;NB2pls-O5ppXI0NMYd7or!COan(3&XG@B2w&SO`rfHhxskFm27m*|TkY;-P;nh+CKZ3Z ze&^=P+PeX4g(vtP237A|es=%coxK<8p>2T87ax=Z1;V)H>%eEeMtnZq!mJK-n5)T(Qu7|VV4XBdc;dK zqiV_F!H&lG1}BuIqRSxCAjF6e8#rwWy0MP-3EHvA9j>EQLEEcDN9$-mr>SwGlY)*D z0qFpt|MJDD!cbvsV|t1~liWEf)J8(zf>m{_a*08+lwv{(5~|Ck^?A#%iws(%)-1FT zp|@h)a44un)+Ps`k)W+rN)^jquNYNhsYKOBWoU{m@Pc%1S^3uz6D7+eVeTmZ>*x`V z7SbTi$JXH5#sW_tlj+-q(u5D8MPU%f_rVk-a6cGJw@QO-i}$TwF4+~cYLpoyF%wFj zY?BUo8hmcb%ygbXO413DnPb2$Id0K5*Z96^Tn!}>?e(Ea9y)e@l)+(q7|JF)q$r2R zoAZ`U$E736;7%x(?5vl0{oX~x9XZaR3w13GS5_Da*NZ zk=)>vY?HTk6l+=ndhwZ-Z0oCc^$6EW*>J8i=*Jy$A=*b6%w8Csx->doFsmj#m0=Jk59}%Vc_|R>Crr414zaLc rRp_o23v^@5>Y_yv@)ZGlP7%E#B1ahgFJj)Y=xXQvfBmm;yt(@~DcQ~6 delta 1277 zcmZ9LOKcNY6o&8d_%ZQ&5<8jrk;cIR;t=8xg~}iWL2!i?z{W`y2!S;rL$G3d!q^Fl zScEF-qGDyvqKit9B@ZElQYmGDlx?L}RIR8gf!a+g(Pei~q_*eIO{5W)=FIs2{`=p# z_n!G9{rCPKH=N|Cb6B;04sDccJk*h-u?M&@X|5H*r|4EREoWM+n&j`?_FsB zmuYXraR?sxrB<^!m+0AE`~2oN_ydf~mDibnetTGcz9l=p2Y9jdO8Qp<1vfqY_{ihK z9lE^oI5==pK8`uL3q~>J?8XgQ@klO-rt%@U-r$Xn1-OjAbTnWB^WG7vP4DgXPU4W{ zF6T}T3l!`Q0y{yNL4O(+GV#TH%$gzcG+Xe<_!iBA@`5~NttTL z`s}%KC0i-Xlo>gC61Nwj4gH z@{+zbZ)oNM1643O0GifM)m1lEniSjXUbhx2asxzyt989@m}_;dp)KmPl9+wwAa^W( zJhB#;~%6i{qNFF{v+ESt?T*l!;dGbS$ z{$k<$XT`fpy89qSIR*~#8LNv8!_=vrauK{1?(?kixrQaY6P|)ed>^`k871)PWLo3` zyUjly`h7`vYFP(=c6?Z+3d6iXahG%bEBrb<+QL0#@5chsh?l^!oC3 r!&su#iH!mFk{o>D5FNp{N?&Ah54<8UWPwqPb;iBLJ@6V&bPoOxSEbGG diff --git a/lib/libpconsole.a b/lib/libpconsole.a index cb94c33f89a21e4ca8801aae8fb0df5f284a5336..de2c1f0e4861a8075be7517a6b511db99fce5305 100644 GIT binary patch delta 3703 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 Ldhv2n+?VWsJ}P^b diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 9d6311342884bf8376578b21d69310eaa3c5f6ab..8f229af98414bf1b6e0fc0025b2bbd2760d2a314 100644 GIT binary patch delta 519 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 BR=fZJ delta 4180 zcmZvfdr(zH9LHymAd-Ohsv)N6)wGQCcEJ!|LuiI+G2R)C!8Zce(ZR>f@vUQGIa->b z$6Tu+ua9yxGIW&ch6_{_u4&o z_ukIC_jWFf4^JGLGQxATf58C#Ne#GTNyUKH4!TJK?kYuH|8g`R^|$5V!VL61DIWX? z$tl+r`B;$w|pc8eXULPBAEPcvf$eK>R7y{8iQ8#&(h-YTZKN^?llg#9K{ZJJQ4I#xxI zs~MNYOEBx0*F0&5w^j{qi6*za708*QJ7@B(J}VWGmdraM9Q9c}dGJ)Wpm&CurFv)R z3l5rj200ULFqaQtX}J>S@<~{IR-PKnzs-D9zln$>-z_+a)VK1ZcxGUj1oKY_=jyY@ zl2eOrnoRZ7qNmJPy!9Q_iPSDGZ^xNkO=zs@S>qyc%LGYCYTU90;#hTyyUAqYStByf zXK4$N;cL&f&MQJmUb{5H9`NxW)k z4?ePM9kd`JTvT0s zRu0)(CY*q^bJVS64O*EmJ$b&p%xHabPU{~h?sHg)AQk7KJd#2ap*PgIR*^p5vlB^E z0R^d?D&~T zKKMmy?AUwrzE8xEnN`0ElN~rYYM{B6WH*Th&@>Wg{z_zx%^}5)Ew)5;FmVP>l<>plJNrT;wI5DPagt+J_c)O|hMBEaRo!kREF4a3b^B3In1PD70v* zR+Q?@C?}40qHopuX#rf-3oXQ5dLo`3Hm#q@TMB9T)8r{#)K}WnKM?74P6N*)QRqw+ zmCn4$p$&u3L6HL{U=XyR)8j88DED@KqDS0vA?72kNR&1Wrig`Gl8uEyl?ywLp*-py zh4zYtnSep4VQofZUX!mexOUf3*BEmGx#$@uMb_qHY1(*nPe8#{AN_D53J4*%TFJ$G za?x|DV_-Nf$v_+V2)nhZ*Nf(e*fP6zGKvq=ZwJg!7*N$($qbrm>q4i(t2rsvW~l$xz@BK>jD_DbO9|Y zunHIitu35%#RhZ+Ig&&6pshg5Hif(fLN$eM5)DoLAInX#XE(x)MaW6Zx1%b4=rhuM z{NFBAsomy9T{_X4o#>Kzl)|WycbHD2Keq}Pgh~o%xiC=0Q9|KaEF66R)d(~M%!e}$ z@gT(>l%ZtDnUBKAK3QxmYEz3tyal0}dP@-uQ4W+N0v_K4!kz9eAVD&;f^suk9Fg~PtSENAI37?H5TYXVmB zgPcY|wZa^?Iqb$wIZKDZh=c|230U*bavBBI3QK#yVIA+wSvm|x1gx})pQhCPyPO4L z4_@r>xiz0|e1wkhurM2geVqkgz3Ysi3tLb*a_AqJrZ)0F5#TTXl3)s|h1~j&l?=8< zrZ=9VbN0rdjbVy@_|upUifm3$EmU78#j;i3F?>`4&hS%VBRsDg~) zc|JWcM4~kTgP`wtmz(X_mb1Vx!M*yb!3EXI9XK+C3xdw=IEryYk2C6cU2s#!7+g@T z+)vX(xFG1<<>TAU+xkg@dnCi)f@(7XAH_|#xF23!BqC|#gjuxCzt zr|n(qJ7Cx9H{G=*%K3I&gbR}2bj>S`t$-@e5$y`~tW&I4CT$c?Hi%( zeP!lo{*RG;BPI=$7Zfk$qaczyl|Fvs&*CdbrufV8#_=C}d)?HDmmHz?N CeNN5* diff --git a/lib/memview.ppu b/lib/memview.ppu index 59058978a6a4b83026ddda8ee6921d865d9730cb..ac371d9655089f97af64a58dab92c3060a655689 100644 GIT binary patch delta 87 zcmV-d0I2`?7|jbdN{2WQ0)Yp0=6B_fBL6*;di`14o7*jI-B}$h$1o?K~45rlhe|?iT z4-!Q%J=~UO8R${F6|BxA;lD2tGWn`Od91ON?!j=dJm&1=CMfx->b}&%kNgQ*K$*SL8dr=O}|L z=e)P-+Gj}+RrB8=j2r2JVXE+TfZt8lU9Xm}%#0T24i~1Ut24D4ZLzg-V57v0Hkn?$VFdLvlt-F* z03R9wz0|%bgd0XoKTmn8Sr6lPBMy_OyM}^K`4_WfjmH8l&#mE4C5rPdkGx6P7B09d O5XFXTKfJ_Hcj_O)9EIcn delta 825 zcmYLHO=uHQ5Pq}SHJhK!+NMdGCUKLPV3VMjMiE6Rjg2K*OKcKLL6BIG7GjKu7JAS_ zK|P3A20awPL$9SE6~qc^K`$QSMG&tdg5aSC4{A`H*>2*%`{wVPdGls>!+5zXRw`Aq zxr6c|2%C6aiVMFk#JBLiTW|8q-lPy>XepMnJ@K`crhdQ%j>A=a2T>J-B2iMuKahqV zMt>g&5R?ELC1i^bz*)(F{`EW3CO{ld%Ciu`-%<=e$RSAKmYjxx^^jtdpn-;c_&|ed zn{))^T?%WmjEO>}S}Bf~&reMjD}~b|$45p-Cky3rqEyXKR|=SQC-9X$9bvZAzRWcl z9^yI&ELp()YRY$yy!#x1T(^A`8)}q$oY+kXDZZ0&t|`D3-kt!&BA1ZdrQ;N|C=#hX zPY4;A@F52*S;mYbr93C^1x`CI-0USwzEqpZ3UGTn4OcAkDrs)Wi)y>zgA8*vtvsu@464e&77HG81e7mie8scQ+L(_l+gy`|(Rw>Kw3tWokq!@& zAT7oHgv6v-v}lLhVz{8iU=Kdh23>n8!&87y$M>2skt08B`aOgy{Q-q5*J^cIlhYgx z#9{7jGH6G_UMyJztwR{@whZ7=kKrnipEL{l@uDXRr|`Dti1yh0v=k;;!ItNcvPzLP Rbn0~&z#M* diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu index bdf989c0c608debaa87dd786a5a68403f4a0a195..0c67574dd8099b27b705ce340aaf764a1b789360 100644 GIT binary patch delta 329 zcmaDTIag9KARyGx*p#K2k%5`vK!6fMDGvj~HMP&#mdVqDL>U+u6elX0GJpT@a$;l# z2WzZT^t*43FDIU?V07Q?#3;fz`2e%f<~2;hY`i9nK*dmCG5HLK1*;=a#Cb9&XA-X` zlAP~kelAVcFrY}p^t%d3GHP=I z$vPyxO<=v#fFd&{|K_UU?1susncTqbq%jZ3Qv~S~69$qjA(_e942(J~tUwMBFfM^A zUOV{}w=(B?Fpq^{>trz=HLmSY-d@JZZaivC`xz(a@yIeAWt`m0qsMfbaq?as6#)1@ BKi&WU delta 321 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 J$A^*}`ya93ElvOc diff --git a/lib/tracer.ppu b/lib/tracer.ppu index e7ce3b20f09f9f035a1ef95ade8af21459315fc0..c77ab97678e6e38f7d2bda4cf3b03d021b7abf13 100644 GIT binary patch delta 897 zcmbVLO=uHA6rQ)qCcCDl*|yolnzl)skd{!2l%f_C(wak|TbKNRMP*sj2%-6rH2#4Q zL@!bl;=6e$cvZoJ2M@i7NKZw3@Zw1-BGiLL4Z^kKH+61_PSEZ67)eE(9v0|3Q^D}3^e80Ja@1_12-`)xt zB;170>DyRioyUU2m`}!SF@)1{xA=;38@M2!Q#SW7w+`^&Uh^x2UD3{7ij`uW zK@YU*zy!Me7-t1~2xTpKroB0OY+{=t5d%i4$VZe6)Lue&-KZ7JrRzg9Z!@W)@V7*x zpZo}UQ2Ws5Q5&I7K4$0rRCQ%*X1+it4B7(m4sqNj^5ePkMyZ-#W^l+RPPB+lc8om# hSHK@23|Ozg$XCl{v$AB=c?)mNz7=580xo)@{{UY7ol5`! delta 482 zcmX>m`&UdcARyGx*p#K2k%5`vK!6fMC^rK`{e^R{CZ2ctEy=*ZAU{!2pZUAtvx&iZ z!aykoMqx%E$rc9&$1q7VN=>$5l4q2i_)tV#fRTZbfdi

tnQ-e3oq%(1;B7Zbt9PU)bj{ z25p|qafXpGeR2X<&g6$&Vya9)vx-5E&}Ij*KrVrTauAz|gMmSSb8;Z7%w!90e%1z{ zSkq)5?ij%iB$Yit_SDHcxh;7?S{Z+`fXH85ldtgf)+>P6q5?pYM 2 then begin end else begin - writestring(' MAC: '); - writeMACAddress(net.GetMAC); - writestring(' IPv4: '); - writeIPv4Address(@Config.Address[0]); - writestring(' Gateway: '); - writeIPv4Address(@Config.Gateway[0]); - writestring(' Netmask: '); - writeIPv4Address(@Config.Netmask[0]); + writestringWND(' MAC: ', getTerminalHWND); + writeMACAddress(net.GetMAC, getTerminalHWND); + writestringWND(' IPv4: ', getTerminalHWND); + writeIPv4Address(@Config.Address[0], getTerminalHWND); + writestringWND(' Gateway: ', getTerminalHWND); + writeIPv4Address(@Config.Gateway[0], getTerminalHWND); + writestringWND(' Netmask: ', getTerminalHWND); + writeIPv4Address(@Config.Netmask[0], getTerminalHWND); if Config.UP then - writestringln(' NetUP: true') + writestringlnWND(' NetUP: true', getTerminalHWND) else - writestringln(' NetUP: false'); + writestringlnWND(' NetUP: false', getTerminalHWND); end; pop_trace; end; diff --git a/src/driver/netdev/E1000.pas b/src/driver/netdev/E1000.pas index 73948dcb..56e7891c 100644 --- a/src/driver/netdev/E1000.pas +++ b/src/driver/netdev/E1000.pas @@ -438,7 +438,7 @@ end; procedure console_command_mac(params : PParamList); begin push_trace('E1000.console_command_mac'); - writeMACAddress(@mac[0]); + writeMACAddress(@mac[0], getTerminalHWND); pop_trace; end; @@ -474,6 +474,7 @@ begin TestPacket[26]:= mac[4]; TestPacket[27]:= mac[5]; sendPacket(void(@TestPacket[0]), 42); + writeStringlnWND('E1000 ARP Testpacket Sent.', getTerminalHWND); pop_trace; end; @@ -513,7 +514,7 @@ begin load:= false; end else begin console.output('E1000 Driver', 'MAC Address: '); - writeMACAddress(@mac[0]); + writeMACAddress(@mac[0], 0); startLink(); diff --git a/src/driver/storage/storagemanagement.pas b/src/driver/storage/storagemanagement.pas index a75e731a..6281541d 100644 --- a/src/driver/storage/storagemanagement.pas +++ b/src/driver/storage/storagemanagement.pas @@ -255,8 +255,8 @@ begin fileSystems:= ll_New(sizeof(TFilesystem)); terminal.registerCommand('DISK', @disk_command, 'Disk utility'); terminal.registerCommand('VOLUME', @volume_command, 'Volume utility'); - terminal.registerCommand('mkdir', @mkdir_command, 'Volume utility'); - terminal.registerCommand('ls', @ls_command, 'Volume utility'); + terminal.registerCommandEx('mkdir', @mkdir_command, 'Volume utility', true); + terminal.registerCommandEx('ls', @ls_command, 'Volume utility', true); pop_trace(); end; diff --git a/src/drivermanagement.pas b/src/drivermanagement.pas index cca66a82..3f718daf 100644 --- a/src/drivermanagement.pas +++ b/src/drivermanagement.pas @@ -67,15 +67,15 @@ var implementation -procedure writeBusType(Bus : TBusIdentifier); +procedure writeBusType(Bus : TBusIdentifier; WND : HWND); begin case Bus of - biUnknown : console.writestring('Unknown'); - biANY : console.writestring('ANY'); - bii2c : console.writestring('i2c'); - biPCI : console.writestring('PCI'); - biPCIe : console.writestring('PCIe'); - biUSB : console.writestring('USB'); + biUnknown : console.writestringWND('Unknown', WND); + biANY : console.writestringWND('ANY', WND); + bii2c : console.writestringWND('i2c', WND); + biPCI : console.writestringWND('PCI', WND); + biPCIe : console.writestringWND('PCIe', WND); + biUSB : console.writestringWND('USB', WND); end; end; @@ -93,29 +93,29 @@ begin i:= 1; while Drv <> nil do begin if Drv^.Loaded then begin - console.writeint(i); - console.writestring(') '); - console.writestring(Drv^.Driver_Name); - console.writestring(' - Bus: '); - writeBusType(Drv^.Identifier^.Bus); - console.writestringln(' '); - console.writestring(' ['); - console.writeHex(Drv^.Identifier^.id0); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id1); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id2); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id3); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id4); + console.writeintWND(i, getTerminalHWND); + console.writestringWND(') ', getTerminalHWND); + console.writestringWND(Drv^.Driver_Name, getTerminalHWND); + console.writestringWND(' - Bus: ', getTerminalHWND); + writeBusType(Drv^.Identifier^.Bus, getTerminalHWND); + console.writestringlnWND(' ', getTerminalHWND); + console.writestringWND(' [', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id0, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id1, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id2, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id3, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id4, getTerminalHWND); ex:= Drv^.Identifier^.ex; while ex <> nil do begin - console.writestring('-'); - console.writeHex(ex^.idN); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(ex^.idN, getTerminalHWND); ex:= ex^.ex; end; - console.writestringln(']'); + console.writestringlnWND(']', getTerminalHWND); i:= i + 1; end; Drv:= Drv^.Next; @@ -134,30 +134,30 @@ begin Drv:= Root; i:= 1; while Drv <> nil do begin - console.writeint(i); - console.writestring(') '); - console.writestring(Drv^.Driver_Name); - console.writestring(' - Bus: '); - writeBusType(Drv^.Identifier^.Bus); - console.writestring(' - Loaded: '); - if Drv^.Loaded then console.writestringln('true') else console.writestringln('false'); - console.writestring(' ['); - console.writeHex(Drv^.Identifier^.id0); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id1); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id2); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id3); - console.writestring('-'); - console.writeHex(Drv^.Identifier^.id4); + console.writeintWND(i, getTerminalHWND); + console.writestringWND(') ', getTerminalHWND); + console.writestringWND(Drv^.Driver_Name, getTerminalHWND); + console.writestringWND(' - Bus: ', getTerminalHWND); + writeBusType(Drv^.Identifier^.Bus, getTerminalHWND); + console.writestringWND(' - Loaded: ', getTerminalHWND); + if Drv^.Loaded then console.writestringlnWND('true', getTerminalHWND) else console.writestringlnWND('false', getTerminalHWND); + console.writestringWND(' [', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id0, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id1, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id2, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id3, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Drv^.Identifier^.id4, getTerminalHWND); ex:= Drv^.Identifier^.ex; while ex <> nil do begin - console.writestring('-'); - console.writeHex(ex^.idN); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(ex^.idN, getTerminalHWND); ex:= ex^.ex; end; - console.writestringln(']'); + console.writestringlnWND(']', getTerminalHWND); i:= i + 1; Drv:= Drv^.Next; end; @@ -175,35 +175,35 @@ begin Dv:= Dev; i:= 1; while Dv <> nil do begin - console.writeint(i); - console.writestring(') '); - console.writestring(Dv^.Device_Name); - console.writestring(' - Bus: '); - writeBusType(Dv^.Identifier^.Bus); - console.writestringln(' '); - console.writestring(' ['); - console.writeHex(Dv^.Identifier^.id0); - console.writestring('-'); - console.writeHex(Dv^.Identifier^.id1); - console.writestring('-'); - console.writeHex(Dv^.Identifier^.id2); - console.writestring('-'); - console.writeHex(Dv^.Identifier^.id3); - console.writestring('-'); - console.writeHex(Dv^.Identifier^.id4); + console.writeintWND(i, getTerminalHWND); + console.writestringWND(') ', getTerminalHWND); + console.writestringWND(Dv^.Device_Name, getTerminalHWND); + console.writestringWND(' - Bus: ', getTerminalHWND); + writeBusType(Dv^.Identifier^.Bus, getTerminalHWND); + console.writestringlnWND(' ', getTerminalHWND); + console.writestringWND(' [', getTerminalHWND); + console.writeHexWND(Dv^.Identifier^.id0, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Dv^.Identifier^.id1, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Dv^.Identifier^.id2, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Dv^.Identifier^.id3, getTerminalHWND); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(Dv^.Identifier^.id4, getTerminalHWND); ex:= Dv^.Identifier^.ex; while ex <> nil do begin - console.writestring('-'); - console.writeHex(ex^.idN); + console.writestringWND('-', getTerminalHWND); + console.writeHexWND(ex^.idN, getTerminalHWND); ex:= ex^.ex; end; - console.writestringln(']'); + console.writestringlnWND(']', getTerminalHWND); if Dv^.Driver_Loaded then begin - console.writestring(' Driver Loaded: '); + console.writestringWND(' Driver Loaded: ', getTerminalHWND); if Dv^.Driver <> nil then begin - console.writestringln(Dv^.Driver^.Driver_Name); + console.writestringlnWND(Dv^.Driver^.Driver_Name, getTerminalHWND); end else begin - console.writestringln('Unknown') + console.writestringlnWND('Unknown', getTerminalHWND) end; end; i:= i + 1; @@ -212,6 +212,35 @@ begin pop_trace; end; +procedure terminal_command_dev(Params : PParamList); +var + p1 : pchar; + +begin + if paramCount(Params) > 0 then begin + p1:= getParam(0, Params); + if StringEquals(p1, 'drivers') then begin + terminal_command_drivers(Params); + end; + if StringEquals(p1, 'devices') then begin + terminal_command_devices(Params); + end; + if StringEquals(p1, 'driverex') then begin + terminal_command_driversex(Params); + end; + end else begin + writeStringlnWND('Driver Management Interface', getTerminalHWND); + writeStringlnWND(' ', getTerminalHWND); + writeStringlnWND('An interface to the drivermanagement portion of the kernel.', getTerminalHWND); + writeStringlnWND(' ', getTerminalHWND); + writeStringlnWND('Usage: ', getTerminalHWND); + writeStringlnWND(' dev drivers - Print a list of loaded drivers.', getTerminalHWND); + writeStringlnWND(' dev devices - Print a list of registered devices.', getTerminalHWND); + writeStringlnWND(' dev driverex - Print a list of all available drivers.', getTerminalHWND); + writeStringlnWND(' ', getTerminalHWND) + end; +end; + { Main Functions } function copy_identifier(DeviceID : PDeviceIdentifier) : PDeviceIdentifier; @@ -288,9 +317,10 @@ end; procedure init; begin push_trace('driver_management.init'); - terminal.registerCommand('DRIVERSEX', @terminal_command_driversex, 'List all available drivers.'); - terminal.registerCommand('DRIVERS', @terminal_command_drivers, 'List loaded drivers.'); - terminal.registerCommand('DEVICES', @terminal_command_devices, 'List devices.'); + terminal.registerCommand('DEV', @terminal_command_dev, 'Driver Management Interface.'); + //terminal.registerCommand('DRIVERSEX', @terminal_command_driversex, 'List all available drivers.'); + //terminal.registerCommand('DRIVERS', @terminal_command_drivers, 'List loaded drivers.'); + //terminal.registerCommand('DEVICES', @terminal_command_devices, 'List devices.'); pop_trace; end; diff --git a/src/include/asuro.pas b/src/include/asuro.pas index 124e6fac..64d053f9 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -3,11 +3,11 @@ unit asuro; interface const - VERSION = '1.0.0-645a'; + VERSION = '1.0.0-649a'; VERSION_MAJOR = '1'; VERSION_MINOR = '0'; VERSION_SUB = '0'; - REVISION = '645'; + REVISION = '649'; RELEASE = 'a'; implementation diff --git a/src/kernel.pas b/src/kernel.pas index 53f11f84..0b01fcef 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -12,23 +12,15 @@ unit kernel; interface uses - multiboot, + multiboot, bios_data_area, util, - gdt, - idt, - isr, - irq, + gdt, idt, isr, irq, tss, TMR_0_ISR, console, - bios_data_area, - keyboard, - mouse, - vmemorymanager, - pmemorymanager, - lmemorymanager, + keyboard, mouse, + vmemorymanager, pmemorymanager, lmemorymanager, tracer, drivermanagement, - tss, scheduler, PCI, Terminal, @@ -54,24 +46,19 @@ procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; implementation -procedure temphook(ignored : TKeyInfo); -begin - Terminal.run; -end; - procedure terminal_command_meminfo(params : PParamList); begin push_trace('kernel.terminal_command_meminfo'); - console.writestring('Lower Memory = '); - console.writeint(multibootinfo^.mem_lower); - console.writestringln('KB'); - console.writestring('Higher Memory = '); - console.writeint(multibootinfo^.mem_upper); - console.writestringln('KB'); - console.writestring('Total Memory = '); - console.writeint(((multibootinfo^.mem_upper + 1000) div 1024) + 1); - console.writestringln('MB'); + console.writestringWND('Lower Memory = ', getTerminalHWND); + console.writeintWND(multibootinfo^.mem_lower, getTerminalHWND); + console.writestringlnWND('KB', getTerminalHWND); + console.writestringWND('Higher Memory = ', getTerminalHWND); + console.writeintWND(multibootinfo^.mem_upper, getTerminalHWND); + console.writestringlnWND('KB', getTerminalHWND); + console.writestringWND('Total Memory = ', getTerminalHWND); + console.writeintWND(((multibootinfo^.mem_upper + 1000) div 1024) + 1, getTerminalHWND); + console.writestringlnWND('MB', getTerminalHWND); pop_trace; end; @@ -83,8 +70,8 @@ begin if ParamCount(params) > 1 then begin bsod(getparam(0, params), getparam(1, params)); end else begin - console.writestringln('Invalid number of params.'); - console.writestringln('Usage: bsod '); + console.writestringlnWND('Invalid number of params.', getTerminalHWND); + console.writestringlnWND('Usage: bsod ', getTerminalHWND); end; pop_trace; @@ -157,7 +144,8 @@ begin { Console Init } console.init(); - //serial.init(); + { Serial Init } + serial.init(); { Call Tracer } tracer.init(); @@ -209,9 +197,6 @@ begin console.setdefaultattribute(console.combinecolors($17E0, $0000)); console.writestringln('Asuro Booted Correctly!'); console.setdefaultattribute(console.combinecolors($FFFF, $0000)); - //console.writestringln(''); - //console.writestringln('Press any key to boot in to Asuro Terminal...'); - //tracer.pop_trace; { Init Progs } shell.init(); @@ -220,11 +205,6 @@ begin { Init Splash } splash.init(); - //console.writehexln(uint32(multibootinfo^.framebuffer_addr)); - //tracer.push_trace('kmain.KEYHOOK'); - //keyboard.hook(@temphook); - //tracer.pop_trace; - tracer.push_trace('kmain.END'); while true do begin diff --git a/src/prog/memview.pas b/src/prog/memview.pas index e18c7662..db9f144a 100644 --- a/src/prog/memview.pas +++ b/src/prog/memview.pas @@ -80,7 +80,14 @@ var begin tracer.push_trace('memview.run'); if ParamCount(Params) < 1 then begin - writestringlnWND('No memory location specified!', getTerminalHWND); + writestringlnWND('Memview Utility', getTerminalHWND); + writestringlnWND(' ', getTerminalHWND); + writestringlnWND('A tool to display the bytes stored at a memory location for debugging.', getTerminalHWND); + writestringlnWND('UP/DOWN on the keyboard can be used to decrement/increment the view location by 16-bytes.', getTerminalHWND); + writestringlnWND(' ', getTerminalHWND); + writestringlnWND('Usage: ', getTerminalHWND); + writestringlnWND(' memview - Display 176 bytes @ ', getTerminalHWND); + writestringlnWND(' ', getTerminalHWND); end else begin loc:= GetParam(0, Params); if StringEquals(loc, 'close') then begin diff --git a/src/prog/terminal.pas b/src/prog/terminal.pas index e64ed064..aea666b4 100644 --- a/src/prog/terminal.pas +++ b/src/prog/terminal.pas @@ -37,6 +37,7 @@ type TCommandMethod = procedure(params : PParamList); TCommand = record registered : boolean; + hidden : boolean; command : pchar; method : TCommandMethod; description : pchar; @@ -52,6 +53,7 @@ var procedure run; procedure init; procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar); +procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean); function getParams(buf : TCommandBuffer) : PParamList; function paramCount(params : PParamList) : uint32; function getParam(index : uint32; params : PParamList) : pchar; @@ -209,15 +211,27 @@ end; procedure help(params : PParamList); var + i, j : uint32; + longestCommand : uint32; + len : uint32; - i : uint32; begin + longestCommand:= 0; + for i:=0 to 65534 do begin + if (Commands[i].Registered) and not(Commands[i].hidden) then begin + if stringSize(Commands[i].command) > longestCommand then longestCommand:= stringSize(Commands[i].command); + end; + end; console.writestringlnWND('Registered Commands: ', TERMINAL_HWND); for i:=0 to 65534 do begin - if Commands[i].Registered then begin + if (Commands[i].Registered) and not(Commands[i].hidden) then begin console.writestringWND(' ', TERMINAL_HWND); console.writestringWND(Commands[i].command, TERMINAL_HWND); - console.writestringWND(' - ', TERMINAL_HWND); + len:= longestCommand - StringSize(Commands[i].command); + for j:=0 to len do begin + writeStringWND(' ', TERMINAL_HWND); + end; + console.writestringWND('- ', TERMINAL_HWND); console.writestringlnWND(Commands[i].description, TERMINAL_HWND); end; end; @@ -282,6 +296,21 @@ begin while Commands[index].registered = true do inc(index); Commands[index].registered:= true; Commands[index].Command:= command; + Commands[index].hidden:= false; + Commands[index].method:= method; + Commands[index].description:= description; +end; + +procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean); +var + index : uint32; + +begin + index:= 0; + while Commands[index].registered = true do inc(index); + Commands[index].registered:= true; + Commands[index].Command:= command; + Commands[index].hidden:= hide; Commands[index].method:= method; Commands[index].description:= description; end; @@ -408,12 +437,8 @@ begin registerCommand('CLEAR', @clear, 'Clear the Screen.'); registerCommand('HELP', @help, 'Lists all registered commands and their description.'); registerCommand('ECHO', @echo, 'Echo''s text to the terminal.'); - registerCommand('TESTPARAMS', @testParams, 'Tests param parsing.'); - registerCommand('TEST', @test, 'Command for testing.'); - registerCommand('CD', @change_dir, 'Change Directory test.'); - registerCommand('PATTERN', @cockwomble, 'Print an animated pattern to the screen.'); registerCommand('TIME', @printTime, 'Print the current time.'); - registerCommand('SERIAL', @SendSerial, 'Send ''helloworld'' through COM1.'); + registerCommandEx('SERIAL', @SendSerial, 'Send ''helloworld'' through COM1.', true); registerCommand('REBOOT', @Reboot, 'Reboot the system.'); console.writestringln('TERMINAL: INIT END.'); end; @@ -426,7 +451,7 @@ end; procedure run; begin if TERMINAL_HWND = 0 then begin - TERMINAL_HWND:= newWindow(20, 10, 90, 20, 'ASURO TERMINAL'); + TERMINAL_HWND:= newWindow(20, 10, 90, 30, 'ASURO TERMINAL'); console.registerEventHandler(TERMINAL_HWND, EVENT_KEY_PRESSED, void(@key_event)); console.registerEventHandler(TERMINAL_HWND, EVENT_CLOSE, void(@OnClose)); console.clearWND(TERMINAL_HWND); diff --git a/src/scheduler.pas b/src/scheduler.pas index 3dbb6f01..6e23d049 100644 --- a/src/scheduler.pas +++ b/src/scheduler.pas @@ -85,20 +85,20 @@ var list : PScheduler_Entry; begin - console.writestringln('ThreadID - Priority - Delta'); + console.writestringlnWND('ThreadID - Priority - Delta', getTerminalHWND); list:= Root_Task; - console.writeint(list^.ThreadID); - console.writestring(' - '); - console.writeint(list^.Priority); - console.writestring(' - '); - console.writeintln(list^.Delta); + console.writeintWND(list^.ThreadID, getTerminalHWND); + console.writestringWND(' - ', getTerminalHWND); + console.writeintWND(list^.Priority, getTerminalHWND); + console.writestringWND(' - ', getTerminalHWND); + console.writeintlnWND(list^.Delta, getTerminalHWND); list:= PScheduler_Entry(list^.Next); while list <> Root_Task do begin - console.writeint(list^.ThreadID); - console.writestring(' - '); - console.writeint(list^.Priority); - console.writestring(' - '); - console.writeintln(list^.Delta); + console.writeintWND(list^.ThreadID, getTerminalHWND); + console.writestringWND(' - ', getTerminalHWND); + console.writeintWND(list^.Priority, getTerminalHWND); + console.writestringWND(' - ', getTerminalHWND); + console.writeintlnWND(list^.Delta, getTerminalHWND); list:= PScheduler_Entry(list^.Next); end; end; @@ -115,7 +115,7 @@ begin Tick:= 0; Active:= False; TMR_0_ISR.hook(uint32(@delta)); - terminal.registerCommand('TASKS', @terminal_command_tasks, 'List Active Processes.'); + //terminal.registerCommand('TASKS', @terminal_command_tasks, 'List Active Processes.'); console.outputln('SCHEDULER','INIT END.'); end; diff --git a/src/tracer.pas b/src/tracer.pas index 39a38fe8..34359a26 100644 --- a/src/tracer.pas +++ b/src/tracer.pas @@ -13,7 +13,7 @@ function get_trace_N(idx : uint32) : pchar; implementation uses - console, lmemorymanager, util, strings, serial; + console, lmemorymanager, util, strings, serial, terminal; const MAX_TRACE = 40; @@ -22,6 +22,60 @@ var t_ready : Boolean; Locked : Boolean; Traces : Array[0..MAX_TRACE-1] of PChar; + c_lock : Boolean = false; + + +procedure terminal_command_tracer(Params : PParamList); +var + p1, p2 : PChar; + count : uint32; + i : uint32; + t : PChar; + +begin + if ParamCount(Params) > 0 then begin + p1:= getParam(0, Params); + if StringEquals(p1, 'list') then begin + count:= 5; + if ParamCount(Params) > 1 then begin + count:= stringToInt(getParam(1, Params)); + if count > MAX_TRACE-1 then count:= MAX_TRACE-1; + end; + for i:=0 to count do begin + writeStringWND('[-', getTerminalHWND); + writeintWND(i, getTerminalHWND); + writeStringWND('] ', getTerminalHWND); + t:= get_trace_N(i); + if t <> nil then writeStringWND(t, getTerminalHWND); + writeStringLnWND(' ', getTerminalHWND); + end; + end; + if StringEquals(p1, 'disable') then begin + if TRACER_ENABLE then begin + t_ready:= false; + writeStringLnWND('Tracer disabled.', getTerminalHWND); + end else begin + writeStringLnWND('Tracer is disabled by the system and it''s status cannot be changed.', getTerminalHWND); + end; + end; + if StringEquals(p1, 'enable') then begin + if TRACER_ENABLE then begin + t_ready:= true; + writeStringLnWND('Tracer enabled.', getTerminalHWND); + end else begin + writeStringLnWND('Tracer is disabled by the system and it''s status cannot be changed.', getTerminalHWND); + end; + end; + end else begin + writeStringLnWND('System Trace Utility', getTerminalHWND); + writeStringLnWND(' ', getTerminalHWND); + writeStringLnWND('Usage: ', getTerminalHWND); + writeStringLnWND(' tracer list - Print the last traces.', getTerminalHWND); + writeStringLnWND(' tracer disable - Disable Tracer.', getTerminalHWND); + writeStringLnWND(' tracer enable - Enable Tracer.', getTerminalHWND); + writeStringLnWND(' ', getTerminalHWND); + end; +end; procedure freeze; begin @@ -36,13 +90,15 @@ begin if TRACER_ENABLE then begin if t_ready then begin if not Locked then begin - Locked:= true; - if Traces[MAX_TRACE-1] <> nil then kfree(void(Traces[MAX_TRACE-1])); - for i:=MAX_TRACE-1 downto 1 do begin - Traces[i]:= Traces[i-1]; + if not c_lock then begin + Locked:= true; + if Traces[MAX_TRACE-1] <> nil then kfree(void(Traces[MAX_TRACE-1])); + for i:=MAX_TRACE-1 downto 1 do begin + Traces[i]:= Traces[i-1]; + end; + Traces[0]:= StringCopy(t_name); + Locked:= false; end; - Traces[0]:= StringCopy(t_name); - Locked:= false; end; end; end; @@ -70,6 +126,7 @@ begin t_ready:= true; push_trace('kmain'); end; + terminal.registerCommand('TRACER', @terminal_command_tracer, 'System.Tracer Interface.'); end; function get_trace_count : uint32;