From 61dec7fe14189e69a2e1f602462ca76258a8051c Mon Sep 17 00:00:00 2001 From: xamidev <121681048+xamidev@users.noreply.github.com> Date: Wed, 22 May 2024 11:54:59 +0200 Subject: [PATCH] Add: serial logging function w/ errlevels --- com1.out | Bin 115 -> 66 bytes iso/boot/kernel.elf | Bin 9940 -> 9960 bytes kernel.elf | Bin 9940 -> 9960 bytes kmain.c | 7 ++++--- os.iso | Bin 485376 -> 485376 bytes serial.c | 21 +++++++++++++++++++++ serial.h | 1 + 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/com1.out b/com1.out index a59a74111c79f742c252ef707b646abbdf59c772..7d4bdc4ffff621f594d73db282ade9432b0bba94 100644 GIT binary patch literal 66 zcma!cadirHk5ynOPA$qz%uz_r&&x|qF3HT#Q%Ef?NlePgEY3(xVc=qj_Vjb}2deW< PEy_#HQ2@#nm4GDx;42kK literal 115 zcmYL>!3~5k3E*!-gB1?1-2Wz1si^D@|Fipef?VYQY^uOuq2P1|jn*aa+ diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index 997ad61e0acb688277d4a6a07b2bdf6cdf6e6282..dda24bd89165578d1c290ae666c8e83a7df3082d 100755 GIT binary patch delta 1435 zcmY+EZERCj7{{M`dwYA=b=#%wb~}NtTU$hf6Bl3RG=Y&-GtAae7!q0MHg;zVO$%KC z;|on~a7r`M`6TlV5+jMV0r<)&O60>*>DDT zIu~u7boN|n7DKKt#TYGY{T`d$t@g3v$_IPg>%>|XnZT6$4%=5eo3IPdxR=GNR1516 zPSjpFcKiw_t~HCVUFZZ+6JgWY2?m%*MiShl$Wi^TN9lIE;P!;v!_ zU>b~SkE`kUaKg7Ql}xJpGVxT>r;cZaM-uVzm^uoNsOhAd@DWL8NXFDeB4r;*49Hj z+@ZL*K~xn#KUc;RikJVojJ2KyoKqxzv5cQ8E!-$BD^2{t>%_hMbJwxe*zv-~DjR2E@fp$wD9#?4^hN4N zL>bshEFPr`<)QdWzDvX%n`NN;3~NAw_o*+?Z=XF*-U6QkWWmGB(8d5IxI+CNGE^pT zaFsdb6)nO~B-eBQ`LB`QwaWiD=`h7lQ_u2QXhYj6|1YMtlb*P_0Umr@7GP-AiGpN! zg-+aRPPmWs5+&SZ>Mf)PRxKDJJxH~9-i+@c-C>d88&mHlEmDOBOg%!H{rjf7o!iLLGh@1^@82MXgYR5iy?olGSwp6QwW7unkVhxy*D_0BBrr>8W4mMTB^mvq?5Lhh zM&H$0D#7AF_ag4ayhxkXJUic6H4TOYmu`1Z$JNS4xWgVsal*T%Z9l-|SFN_95!dV=ma||!g z`78bz^j{pEl2Ksy1O@N2m(ug}xJ?vS4FY`5p^|AH(}SR%Wf3M^ExOb^UIeSipcgd-~&XcW=_A5({Im4Nl+U{b=h z75pN{D++cH-b=lotms{YH`-MAr-Hi)7bxGp3O+!X|6TCK+tLX;R!pc*;|?V8FNb$< zobVx>ZJM6I(6AupWvma^J9!WJ8UQ~`|8E<9yE3cKY+Vis#~G~DELQ$@EQ dU^8A0|0d*cs3jy_X#)5V$6G?eR-A3|KLOVoEu;Vd diff --git a/kernel.elf b/kernel.elf index 997ad61e0acb688277d4a6a07b2bdf6cdf6e6282..dda24bd89165578d1c290ae666c8e83a7df3082d 100755 GIT binary patch delta 1435 zcmY+EZERCj7{{M`dwYA=b=#%wb~}NtTU$hf6Bl3RG=Y&-GtAae7!q0MHg;zVO$%KC z;|on~a7r`M`6TlV5+jMV0r<)&O60>*>DDT zIu~u7boN|n7DKKt#TYGY{T`d$t@g3v$_IPg>%>|XnZT6$4%=5eo3IPdxR=GNR1516 zPSjpFcKiw_t~HCVUFZZ+6JgWY2?m%*MiShl$Wi^TN9lIE;P!;v!_ zU>b~SkE`kUaKg7Ql}xJpGVxT>r;cZaM-uVzm^uoNsOhAd@DWL8NXFDeB4r;*49Hj z+@ZL*K~xn#KUc;RikJVojJ2KyoKqxzv5cQ8E!-$BD^2{t>%_hMbJwxe*zv-~DjR2E@fp$wD9#?4^hN4N zL>bshEFPr`<)QdWzDvX%n`NN;3~NAw_o*+?Z=XF*-U6QkWWmGB(8d5IxI+CNGE^pT zaFsdb6)nO~B-eBQ`LB`QwaWiD=`h7lQ_u2QXhYj6|1YMtlb*P_0Umr@7GP-AiGpN! zg-+aRPPmWs5+&SZ>Mf)PRxKDJJxH~9-i+@c-C>d88&mHlEmDOBOg%!H{rjf7o!iLLGh@1^@82MXgYR5iy?olGSwp6QwW7unkVhxy*D_0BBrr>8W4mMTB^mvq?5Lhh zM&H$0D#7AF_ag4ayhxkXJUic6H4TOYmu`1Z$JNS4xWgVsal*T%Z9l-|SFN_95!dV=ma||!g z`78bz^j{pEl2Ksy1O@N2m(ug}xJ?vS4FY`5p^|AH(}SR%Wf3M^ExOb^UIeSipcgd-~&XcW=_A5({Im4Nl+U{b=h z75pN{D++cH-b=lotms{YH`-MAr-Hi)7bxGp3O+!X|6TCK+tLX;R!pc*;|?V8FNb$< zobVx>ZJM6I(6AupWvma^J9!WJ8UQ~`|8E<9yE3cKY+Vis#~G~DELQ$@EQ dU^8A0|0d*cs3jy_X#)5V$6G?eR-A3|KLOVoEu;Vd diff --git a/kmain.c b/kmain.c index 273b1d1..d5803bf 100644 --- a/kmain.c +++ b/kmain.c @@ -3,11 +3,12 @@ int kmain(int retvalue) { + init_serial(); + log("serial connection established", 3); + log("Kernel started", 2); + clear(); puts("hello\nbrave\nnew\nworld"); - init_serial(); - serial_puts("Hello, brave new world. This is a message to let you know that the kernel has started.\n"); - serial_puts("This is a second message.\n"); return retvalue; } diff --git a/os.iso b/os.iso index d99faa02ff2d70905473d60550efea091b3b001c..9e62f36b250fb67e5c5addd97fca0625fe3d5bda 100644 GIT binary patch delta 1699 zcmY*ZdrVtZ7(eIh?QJPgu7JSYfbtk_hVf`%BGYUTP?-)G8#oUZGx}FB9%(9mz^LyVCB+eL@krVZGZsxhWo_ z`j|3dMIcr;y`JjUPVJRVN2lsySEym{7}bfFuRl$-fh>X}D-hz{bvN$2vkR9hkI_=` z@{EBhBC`wKjh{Uqi!r1TIUpLNh2qJZS8viJU&NqFA_Z9WdzRJ%8KPQ4h*~qgwFf3* zj4!JQ>GUtg5EAGW2yx7-_bGZEk$(n*)q!FWi4P^tL9b)I%w>hRKqTens9r~rOiwFh ztFv6~G~B!4uRZ9(56g&MF*$Zdk zbrn;hQ<9wzvFHJa6!&vxmZc0puDFrsqin|j%&AJS37!54R(=k?65DVC${$$TAmnIT zT}wZ)G@W6sca~!kq{v zyaAQ=P=|!TD%sH&f$e)GN@1(#v)zO<*dFJz-GDQ(sd1*Zgt;oY=k;>W4Z&a#|DL%` zGG~;ziZJ)E%pH)q!Y~&nb4O*)o)#iq$OR9n1F<0}J33_t2^-|*cNndvCbMpjrM=y_ z$7Zs$>x>P5X}yrZCOx2rxkdJg2hwQ^Tkt?C9JtH16gYX8WY?~J{XcRl>g;e?? zd(8`Rp#OWhfWRibAkZ>4&291QCmvE*^mz=$EdM+tX6X24@Rl6D7YvSI{=W^sEpK>? z{-tDe7=ED_*l)wI**=R$cnqzvgpxjtZwV6lJ&fPP_>oeQ56JaV#QRa_LqdE7W3wm` z{w}T?@R}u|zEp1<`KUaJ;B6-l5H-1m(TSf4K4L*ZJ}1OZl0YJQPGEss7ncnx`LA-N?{~yFvs1IS}^%S_FtyurpFxDXMUfuu@9kmnExZ*@>(a?`4 z&IvDg6!AP3%nswti0fCpupDs%_M$7SZ%16LkjS@TT!&c14%LToGh+UsRQ0%phTgzYNJXQ?)vl5Hgl!_1xDYz3F}De&2V_ zckj9HrR}r1?X$U|E#3@kxvjF?YSr7UwhC*d&GwW^`1g2o1$8yn>@9mnW0WiXf$41) zjQaP4jHEzX{Paq`KXvAqnsjPrUs{ry$Q`A!c=<{VO`R_$IEv@vyno--r0n!H=TTZM zUY@O^XqfIlGIszC6WWG&O1gfOR*LU0j4#l~LI$FfNCmoHV;j4mP^>W!Qe&8Sp$n$W zI~PSlI>PtNghVPRA>OFz1FwB07PCkG)gb&qiZo~wv{R)g1(jA4r&Z<)fxXfP={lck zb)KE*gQBwU;??GfohuD95xseQ+8fo|oi~tT+MC_!qd7tc*BCm$SmjKrM8A%r_$8q zG9GPlysH?Sl~!Y`tEH(PQ))QBSylxZ1z8nJ<-N|g+%o)pzm<*w%XH6PS^?YMCkP94sk zoT6}#wkQmt;0A=`;mftRj&F*rvcLr>**bqO7CXr4s#JX^RHq0#yc($eF>KOmiG=iX zI0s^}7+$10WPI+$xx#1w3Ss{$OC5p?wmkrPIJwGp1t1T+tE?da1@r;y4nRKW@3Rq3 zXWwVPV5EPsKe3d4&QgZ(jU9QoZk~h2AL1QPu_~14EOQKDVt{q>Fv7m%;V1U%5M++R zq{!$n+@U&lcNm^+Tg20D#qu;l$;aGAE0N^{{uJZ5AgR4@{cFUpqt1tf_yBHcLA+K! zhP=rt5#IA7L{BC$E{XB{G|-Uih%F!y8%FN8Ku8<8g$eNjN^YV+q%|y(KM-co^#cCs zEGFfzBHoSqAVzK&!?+7KSV~|K4;cOb06=mO+mjmDNZSbM!VXIl1?89!LBq`nyp7|e z4XY3z#NK@g{YAuEG!pqefol=3px>bcK8%?EtMI|wQV{EtZm7}16Hwxx67S$7;-hSC z1g0kZUqLs8sL1kykZ0g+L^BA{vZ`Ttl}AJDV~I w+0MQV!q2pqbzXu(;aUM9r&th|bjQTpB`Bk3B#SQuzL3Tj()vQe#gO>Te_#cD)&Kwi diff --git a/serial.c b/serial.c index 55ec436..6fe07db 100644 --- a/serial.c +++ b/serial.c @@ -42,3 +42,24 @@ void serial_puts(const char* str) write_serial(str[i]); } } + +void log(const char* str, const int errlevel) +{ + switch (errlevel) + { + case 0: + serial_puts("[ERROR] "); + break; + case 1: + serial_puts("[WARNING] "); + break; + case 2: + serial_puts("[INFO] "); + break; + case 3: + serial_puts("[DEBUG] "); + break; + } + serial_puts(str); + serial_puts("\n"); +} diff --git a/serial.h b/serial.h index 07f4791..447024f 100644 --- a/serial.h +++ b/serial.h @@ -7,5 +7,6 @@ int init_serial(); int is_transmit_empty(); void write_serial(const char a); void serial_puts(const char* str); +void log(const char* str, const int errlevel); #endif