From 77f40f0bb0da2d8c9693c30107346a19bc7fee6c Mon Sep 17 00:00:00 2001 From: xamidev Date: Thu, 18 Jul 2024 20:25:42 +0200 Subject: [PATCH] Change: build process & makefile, tree restructuration --- .gitignore | 1 + iso/boot/kernel.elf | Bin 21136 -> 21112 bytes kernel.elf | Bin 21136 -> 21112 bytes makefile | 28 +++++++++++++++++++--------- gdt.c => src/gdt.c | 0 gdt.h => src/gdt.h | 0 idt.c => src/idt.c | 0 idt.h => src/idt.h | 0 io.h => src/io.h | 0 io.s => src/io.s | 0 irq.c => src/irq.c | 0 isr.c => src/isr.c | 0 kb.c => src/kb.c | 0 kmain.c => src/kmain.c | 0 loader.s => src/loader.s | 0 serial.c => src/serial.c | 0 serial.h => src/serial.h | 0 stdint.h => src/stdint.h | 0 stdio.c => src/stdio.c | 0 stdio.h => src/stdio.h | 0 string.c => src/string.c | 0 string.h => src/string.h | 0 system.c => src/system.c | 0 system.h => src/system.h | 0 timer.c => src/timer.c | 0 25 files changed, 20 insertions(+), 9 deletions(-) rename gdt.c => src/gdt.c (100%) rename gdt.h => src/gdt.h (100%) rename idt.c => src/idt.c (100%) rename idt.h => src/idt.h (100%) rename io.h => src/io.h (100%) rename io.s => src/io.s (100%) rename irq.c => src/irq.c (100%) rename isr.c => src/isr.c (100%) rename kb.c => src/kb.c (100%) rename kmain.c => src/kmain.c (100%) rename loader.s => src/loader.s (100%) rename serial.c => src/serial.c (100%) rename serial.h => src/serial.h (100%) rename stdint.h => src/stdint.h (100%) rename stdio.c => src/stdio.c (100%) rename stdio.h => src/stdio.h (100%) rename string.c => src/string.c (100%) rename string.h => src/string.h (100%) rename system.c => src/system.c (100%) rename system.h => src/system.h (100%) rename timer.c => src/timer.c (100%) diff --git a/.gitignore b/.gitignore index 7e92dfc..0b2eec3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o bochslog.txt +build/ diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index 3b8ed7bc0ebd0dc87af384cb5660faf53b807dc2..faa52ed84b85df36738856cfb3439c323b6a3889 100755 GIT binary patch literal 21112 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 literal 21136 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 literal 21136 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 jCQ{m3zlwRQXjEXbMH|f