From f05347f73b1f493bd0575e378cc2dbba95cfbb60 Mon Sep 17 00:00:00 2001 From: xamidev Date: Mon, 5 Aug 2024 19:33:16 +0200 Subject: [PATCH] Driver section separation --- iso/boot/kernel.elf | Bin 26380 -> 26384 bytes makefile | 7 ++++--- src/{kernel => drivers}/kb.c | 4 ++-- src/{kernel => drivers}/serial.c | 2 +- src/{kernel => drivers}/serial.h | 0 src/{kernel => drivers}/timer.c | 2 +- src/kernel/kmain.c | 4 ++-- 7 files changed, 10 insertions(+), 9 deletions(-) rename src/{kernel => drivers}/kb.c (98%) rename src/{kernel => drivers}/serial.c (97%) rename src/{kernel => drivers}/serial.h (100%) rename src/{kernel => drivers}/timer.c (90%) diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index 3d9bb728f88dbbaaa01a57390af0488bdfd64aab..8f6b39682eb549da4e1063011f0aa2872a19667f 100755 GIT binary patch delta 6024 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 delta 5893 zcmb7I3v?9K8NRdG&2D1CZr<1dKuoqF`dk3lb4&Vu(OX5)iDg*-k>U z-GnZ^h+2!5s%RDQ5sZ}f*wvsBYcUkH)<=si#KEMB7D>dw_PcjxH&c&2r=4@Y%>VfA z|KI0-C+j&O^qmkqR^jmO)P*{GHX-)i>ymUUf(Y67tm}Pa%&T@nv_yVPcy$7U1KUh> zf^Zu>84*XjVv>Wk8bY3kql2;Lr8y7>;s{yFnp``>(4)C7T&MZ&D`8qKvBI4%fh3dg zpMw7>wVx$^5R3c{{v`P8)qc$iPJo$w0Dm=vbhUr=bgC)%YvJFi z_Or3>;A5o^Me2gBSivL7^ohvC;Bts3lc_B#G5A)9|462vM4E%UAvUJa8L&PAu{DJg zjzPRDg)WaW=SdKEn+bVFJzK~U^tiy&Sdl$UM@Wj5?u{}B7ec%$l_#u(n2}1~L+Bqs zEKjAEK-dFuTRJsIX9as9l1#cZ+8lfa;#3CR7@Zib4JKqqCfx-w1EMFB9)h?C;%_qP ziD+|fE5z(9LQ20e?oIL%vvneU;FQs-*rectkhW$~JGRsa#1FIR%9zAR%`;D7l?l0W z)6HitwdF~fQ3IMdU5MU-bD+CiNM~3R9hYVh;;spM=@XOdq`St@+cz@hx5WD`K5mf- zEv~+iNm=J@#E*<}vn$+aFb?h+VWR7#aj<4m{QLQk*ZpAvjAc_ua~UMh@vNa5*V$@u zTr1s$!8(Ul6cW-hESijj#F2iHWpas;M*2r>FHm9=TJXd)!S^#{=1SWwPw8vv~G+9AKZmUu0QaVj?tju$34H zX+xi2T}>*b72z-+Gf7Lo^!Wm@q=ks1OGOw=ihEg@tItz{=AI^&NXlYPt?V4`<{q{@ zvX@VSfp_EYG&gNfe?tcAQs%&D+Fl{&o zKl^+)w+XHxDP+>;!(<28;)jun>zjt9A8w&IwL;e4&cdYXF@G!C9cF?zXCr_eX!NV~;7O2yFj+axDSnRE!tAa$TQ+b!yS9)XcMhsLnYSSHf?70Rn*j)LkqW`e1;3t3vf zX4Vj9<;J$4)=6fWhzwYimS?9eL2|280ZZ#J3w4P#d@*2byQ-B{bm`!<#VlJE{XAf5 zJ;Yk_ls$f9n5=indfA~){Sm$?0w;x&Y|t;tlNgR zkbW_T)89eWkyoLWox=VecET#9nR4~v;fp!3GeGPY=P-+(`j$-XS?)D<7a|10_ltAY zi~)t=-Hh49xXO6I`{jV=HnI-0Hfz;w9CUwPienvT)+x+(J)h3x1wc&3jG7yO+^C3QeBCe(}eQ zE$yR@neqBdC=SIv}1jy|tus{KokhnFI8+$t>!X7n_CP|U2#ACHCn zx)qnvW`pG6`$p@km~vMHF0N?l4RD-82duO%KV35vPVdf7ta?nIN^}k<<1KdF?vX9V z7g*W$!cp1!HnVS+?WzuIrG+eODzdt3OuaQzZqKBTew?2k9?tAzxL&v=t{~U&ehka~ zyoD|)SZVIX;Mg-P_9>E^ORksQVsAY479@l(0AH8vk1$$b36Er!^SF4@=10|5p%<&OAStQXU9`vNp}C%PSSObKaO@Ud*U zAMm9pJz_2v;s{G5`ibg!!Y79H=1QqzifyE@v026!D=xVC;PDkjS=h>|o24w-?H`1a zuyRcB{Kr7r6TUGM!@Oh2jq$U797WB+fZIdc1gZ2gOQ}_NhK3ZS7`{Z6bPm0lL~TWB z|80iHnx`X=HTb)w%HivCHlMNo z99>dzvi>yw>C?TKNEZ|r>mOrsPa?gu*lySe**UZ%kv?BMUwEAUtN5S7?*=}aohKMf zs7=nHPvQom<`xL?M%=dIF{``gu)E@X{}REq>^#0ZqRMH#y*X3 zIl>xhFDb;|+eX9Zy)uR#;(NF`7pZsC%$r>biIbp z&imkYRg9yI_%@ICi^=#fs+1m;Khaq5P-!=AOLl8jToAK8g4!l=(z1l$4i0tbQakA1$8{}G>oU-B*7Z?mzOPXMa;alSC6@hz$# z-5(E_7oE`zC< z@CfiUa0GY>_yh1Z@E70%U=%p7yf5H=2_SP#L=Qv(i9qUHlY?YIC;&=<1;Aop8Bhh( z1GfUV0~>)3U5aJO}&+@B+ty5#Sx*J>WEO78nD*04C=;&?~!% z=l~-S4I}_&AREXB<^c173g8By3aA4bfo5O>&;e`%M4%Vg1?&YL0QLiq15X2kz;6LB zFbtev!QKMi2R;Hufpfs8zy;t65OlSPga9*uXdnq#yl~-ntT~I9*W_A@=GcmCMb_fN z;yHy^7Z=iw>H_*ub(I4b66vbP`0%+TkWl{PMpuK0;IMOj5#HS@y&ih6N^gPgf3)Ot z-$uWJH`DL@hK_Ilzym+^t%z`V0v5T={ol~{LqD92KJq7s9KieCoN4_@=picqGtf&_ z`t#5`RQgfqo@w1deh)*RD&R5b6Vn889D2FRe**e*D*Y7nXqEmh^cI!=A$0%4CS}yG z;H@Q^&waG3=CE)dom)Gr*l?{pFaiIBAHbq~V8yNnFOme2L(n6Vu;z+>6#DFBy0_MR z?fVuS1jYO&%x@-RqbvF;=!dgRqzV5eu`usJe=Y$BO7V|D@1tMVS~U1!CAMyXCL)*C z*6q@)vCz@F<-#xM+hky-moYuhd&2pDi#E zkCG$=A7Q36da>S&OD3kF+=_9sO%_4)#13Cfs)-aU+-sm0)6EUDA|ILUX9baVSbgzy zu)!R0EYC!&3i+onchR#A7Qsq&D=nJEsWfY)P533PfgF6q(=EzJM+i2E2Wuf*)b7U7*%0Kg`(5NGswlv-pp_&don$EV;S3y35 zf&NN~Xo1<&Krc2f(Bu?Qd((1FZX(^;WY+AQNe?vHgeCOtCQI6FHhKS`B9MJ(@i#0q z`w5rtALs>{H1?K7^rKsD%)Vp8nspm(Ye`3Q`?@vjnb6w2p1-$sbT)5*p>y4a=63r1 zTQ&_WSp73?%GMJ5>hG=FVxO~mb}_l5dE0H@U(^1*)wefyu5De@KJd@A_$fJ$Ry135 zc_==4bayj;RBjH_*`V2=rR$0z6?6MYbF^TfXTfC~-atcI(sgW0SZPs9wr)i=ezm4e kurbL_ds@k diff --git a/makefile b/makefile index b236094..e3153ed 100644 --- a/makefile +++ b/makefile @@ -8,10 +8,11 @@ SRC_DIR = src KERNEL_DIR = $(SRC_DIR)/kernel LIBC_DIR = $(SRC_DIR)/libc PROGRAMS_DIR = $(SRC_DIR)/programs +DRIVERS_DIR = $(SRC_DIR)/drivers OBJ_DIR = build -C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c) $(wildcard $(LIBC_DIR)/*.c) $(wildcard $(PROGRAMS_DIR)/*.c) -ASM_SOURCES = $(wildcard $(KERNEL_DIR)/*.s) $(wildcard $(LIBC_DIR)/*.s) $(wildcard $(PROGRAMS_DIR)/*.s) +C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c) $(wildcard $(LIBC_DIR)/*.c) $(wildcard $(PROGRAMS_DIR)/*.c) $(wildcard $(DRIVERS_DIR)/*.c) +ASM_SOURCES = $(wildcard $(KERNEL_DIR)/*.s) $(wildcard $(LIBC_DIR)/*.s) $(wildcard $(PROGRAMS_DIR)/*.s) $(wildcard $(DRIVERS_DIR)/*.s) OBJECTS = $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(C_SOURCES:.c=.o) $(ASM_SOURCES:.s=.o)) @@ -19,7 +20,7 @@ all: $(OBJ_DIR) kernel.elf $(OBJ_DIR): mkdir -p $(OBJ_DIR) - mkdir -p $(OBJ_DIR)/kernel $(OBJ_DIR)/libc $(OBJ_DIR)/programs + mkdir -p $(OBJ_DIR)/kernel $(OBJ_DIR)/libc $(OBJ_DIR)/programs $(OBJ_DIR)/drivers kernel.elf: $(OBJECTS) ld $(LDFLAGS) $(OBJECTS) -o kernel.elf diff --git a/src/kernel/kb.c b/src/drivers/kb.c similarity index 98% rename from src/kernel/kb.c rename to src/drivers/kb.c index 77d3c31..11fa132 100644 --- a/src/kernel/kb.c +++ b/src/drivers/kb.c @@ -1,6 +1,6 @@ -#include "io.h" +#include "../kernel/io.h" #include "../libc/stdio.h" -#include "system.h" +#include "../kernel/system.h" #define KEYBOARD_BUFFER_SIZE 256 diff --git a/src/kernel/serial.c b/src/drivers/serial.c similarity index 97% rename from src/kernel/serial.c rename to src/drivers/serial.c index 6fe07db..8e5861b 100644 --- a/src/kernel/serial.c +++ b/src/drivers/serial.c @@ -1,4 +1,4 @@ -#include "io.h" +#include "../kernel/io.h" #include "serial.h" int init_serial() diff --git a/src/kernel/serial.h b/src/drivers/serial.h similarity index 100% rename from src/kernel/serial.h rename to src/drivers/serial.h diff --git a/src/kernel/timer.c b/src/drivers/timer.c similarity index 90% rename from src/kernel/timer.c rename to src/drivers/timer.c index 5e28741..d10744f 100644 --- a/src/kernel/timer.c +++ b/src/drivers/timer.c @@ -1,4 +1,4 @@ -#include "system.h" +#include "../kernel/system.h" #include "../libc/stdio.h" volatile unsigned long global_ticks = 0; diff --git a/src/kernel/kmain.c b/src/kernel/kmain.c index 5ca323b..6028000 100644 --- a/src/kernel/kmain.c +++ b/src/kernel/kmain.c @@ -1,5 +1,5 @@ #include "../libc/stdio.h" -#include "serial.h" +#include "../drivers/serial.h" #include "gdt.h" #include "idt.h" #include "system.h" @@ -33,7 +33,7 @@ int kmain(int retvalue) clear(); colorputs(ascii_title, 10); - colorputs(" by @xamidev - star the repo for a cookie!\n\n", 11); + colorputs(" by @xamidev - star the repo for a cookie!\n\n", 14); // TODO: Grub modules to load programs