From b873c662c865b0876a48c284b7be46404725874c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Quei=C3=9Fner?= Date: Sun, 26 Jun 2016 14:36:32 +0200 Subject: [PATCH] Rework of project structure. --- prototypes-rework/Makefile | 27 ++ prototypes-rework/boot.img | Bin 0 -> 1474560 bytes prototypes-rework/common.mk | 36 +++ prototypes-rework/config.mk | 10 + prototypes-rework/include/asm.hpp | 50 ++++ prototypes-rework/include/compat.h | 13 + prototypes-rework/include/console.hpp | 188 +++++++++++++ prototypes-rework/include/cpustate.hpp | 25 ++ prototypes-rework/include/driver/pic.hpp | 28 ++ prototypes-rework/include/elf.hpp | 36 +++ prototypes-rework/include/enums.hpp | 18 ++ prototypes-rework/include/errors.hpp | 8 + prototypes-rework/include/exceptions.hpp | 10 + prototypes-rework/include/io.hpp | 7 + prototypes-rework/include/kernel/bsod.hpp | 26 ++ prototypes-rework/include/kernel/gdt.hpp | 118 ++++++++ prototypes-rework/include/kernel/idt.hpp | 92 +++++++ .../include/kernel/pagedirectory.hpp | 18 ++ .../include/kernel/pagetable.hpp | 17 ++ prototypes-rework/include/kernel/pmm.hpp | 38 +++ prototypes-rework/include/kernel/vmm.hpp | 62 +++++ prototypes-rework/include/lists/errors.lst | 7 + .../include/lists/exceptions.lst | 32 +++ .../include/lists/interrupts.lst | 257 ++++++++++++++++++ prototypes-rework/include/lists/irqs.lst | 16 ++ prototypes-rework/include/multiboot.hpp | 169 ++++++++++++ prototypes-rework/include/numeric.hpp | 49 ++++ prototypes-rework/include/pointer.hpp | 116 ++++++++ prototypes-rework/include/screen.hpp | 64 +++++ prototypes-rework/kernel.mk | 7 + prototypes-rework/libbase/Makefile | 12 + prototypes-rework/libbase/src/string.c | 19 ++ prototypes-rework/libboot/Makefile | 12 + prototypes-rework/libboot/compat.c | 17 ++ prototypes-rework/libboot/entrypoint.S | 23 ++ prototypes-rework/library.mk | 3 + prototypes-rework/linker.ld | 37 +++ prototypes-rework/syslinux.cfg | 22 ++ prototypes-rework/video/Makefile | 13 + prototypes-rework/video/multiboot.S | 28 ++ prototypes-rework/video/src/init.cpp | 95 +++++++ 41 files changed, 1825 insertions(+) create mode 100644 prototypes-rework/Makefile create mode 100644 prototypes-rework/boot.img create mode 100644 prototypes-rework/common.mk create mode 100644 prototypes-rework/config.mk create mode 100644 prototypes-rework/include/asm.hpp create mode 100644 prototypes-rework/include/compat.h create mode 100644 prototypes-rework/include/console.hpp create mode 100644 prototypes-rework/include/cpustate.hpp create mode 100644 prototypes-rework/include/driver/pic.hpp create mode 100644 prototypes-rework/include/elf.hpp create mode 100644 prototypes-rework/include/enums.hpp create mode 100644 prototypes-rework/include/errors.hpp create mode 100644 prototypes-rework/include/exceptions.hpp create mode 100644 prototypes-rework/include/io.hpp create mode 100644 prototypes-rework/include/kernel/bsod.hpp create mode 100644 prototypes-rework/include/kernel/gdt.hpp create mode 100644 prototypes-rework/include/kernel/idt.hpp create mode 100644 prototypes-rework/include/kernel/pagedirectory.hpp create mode 100644 prototypes-rework/include/kernel/pagetable.hpp create mode 100644 prototypes-rework/include/kernel/pmm.hpp create mode 100644 prototypes-rework/include/kernel/vmm.hpp create mode 100644 prototypes-rework/include/lists/errors.lst create mode 100644 prototypes-rework/include/lists/exceptions.lst create mode 100644 prototypes-rework/include/lists/interrupts.lst create mode 100644 prototypes-rework/include/lists/irqs.lst create mode 100644 prototypes-rework/include/multiboot.hpp create mode 100644 prototypes-rework/include/numeric.hpp create mode 100644 prototypes-rework/include/pointer.hpp create mode 100644 prototypes-rework/include/screen.hpp create mode 100644 prototypes-rework/kernel.mk create mode 100644 prototypes-rework/libbase/Makefile create mode 100644 prototypes-rework/libbase/src/string.c create mode 100644 prototypes-rework/libboot/Makefile create mode 100644 prototypes-rework/libboot/compat.c create mode 100644 prototypes-rework/libboot/entrypoint.S create mode 100644 prototypes-rework/library.mk create mode 100644 prototypes-rework/linker.ld create mode 100644 prototypes-rework/syslinux.cfg create mode 100644 prototypes-rework/video/Makefile create mode 100644 prototypes-rework/video/multiboot.S create mode 100644 prototypes-rework/video/src/init.cpp diff --git a/prototypes-rework/Makefile b/prototypes-rework/Makefile new file mode 100644 index 0000000..20ca601 --- /dev/null +++ b/prototypes-rework/Makefile @@ -0,0 +1,27 @@ +## +# Build all projects +## + +PROJECTS = $(shell ls --file-type --ignore=libs --ignore=kernels --ignore=include | grep / | sed "s|/||") + +all: $(PROJECTS) boot.img + +.PHONY: $(PROJECTS) +$(PROJECTS): + make -C $@ $(ARGS) + +boot.img: $(PROJECTS) + mformat -C -f 1440 -v VIDEO -i boot.img :: + mcopy -i boot.img \ + kernels/* \ + syslinux.cfg \ + /boot/syslinux/libcom32.c32 \ + /boot/syslinux/libutil.c32 \ + /boot/syslinux/menu.c32 \ + /boot/syslinux/mboot.c32 \ + :: + syslinux boot.img + mdir -i boot.img :: + +run: boot.img + qemu-system-i386 boot.img \ No newline at end of file diff --git a/prototypes-rework/boot.img b/prototypes-rework/boot.img new file mode 100644 index 0000000000000000000000000000000000000000..4d22536dcc3adcf2c7279aab163d5b1e679d92fd GIT binary patch literal 1474560 zcmeFa2Y6IP`!_sivniy9083|6=p>}kMUp@uC?yc8ZL>)>B$CGNhOQ=bR1mDFC;==e zHbey#B@{&zA5rWz6dzGQK@m|zzTa=ooZU^(=Xu}v`u^W_eeacXW%izX=AM~*?lLoH z&N-74Q�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

;AVEEX2T(L9`J$!s1 zIFwiENkvQ4Q zNDB0)=Y@Ref&;t`*bUeQ_&eYr;4q*I@B!ds!2jKI5#e70GzBO>U^pNGWeJ8k4)EVS z5rq_W5`dyL5*+gB>>0RE1MozXKjLRW`6t2e`Ua|_&o3J8Gyvjm=<`d2JH_S4*OkPL zg?kPF&t0U|_=21cC70ATT=NDYCyvcyMj8D=sNG;W6^90xA=!y;$)PI|pRK zo2L*Cm5aPy)O)zsCK2}kFP@!6zvp@tmAC~Eqo6*3AizXGA|MA~1k?gn12zF(2OI!& z116D< z9il#ftQy>*6c;yH9Xum7J48JpY+P74M*JER(FI&Q54Yk}Si&%+GEreAODk%YE_Rvb zYAUR{w4C_4ELG)ZykW^JJM90ht9E#v#9m`1=|3CYKvsUlO&&5n6F@Z|-L=C90^uwM zYr@Nf{|OG^?I!@lkHjZ^fB@nBzK7tFClEmP{|Fx8bpnLfiJLqm3Rx?L0SI0!fb

    4a1;_z&wU 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 zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A upnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfCB$73H)!g)a1JW literal 0 HcmV?d00001 diff --git a/prototypes-rework/common.mk b/prototypes-rework/common.mk new file mode 100644 index 0000000..e1a9661 --- /dev/null +++ b/prototypes-rework/common.mk @@ -0,0 +1,36 @@ +## +# DasOS common Makefile targets +## + +INCLUDE_DIRS += ../include/ /opt/lib/gcc/i686-elf/6.1.0/include/ + +FLAGS = -ffreestanding -mno-sse -Werror -Wall -iquote include $(addprefix -I, $(INCLUDE_DIRS)) -O3 -g +ASFLAGS = $(FLAGS) +CFLAGS = $(FLAGS) +CXXFLAGS = $(FLAGS) -std=c++14 -fno-rtti -fno-exceptions -fno-leading-underscore -fno-use-cxa-atexit -nostdlib -fno-builtin +LDFLAGS = -L../libs/ + +SRCS = $(shell find -regextype egrep -regex '.*/.*\.(cpp|S|c)') +OBJS = $(addsuffix .o, $(notdir $(basename $(SRCS)))) + + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o obj/$@ $< + +%.o: %.c + $(CC) $(ASFLAGS) -c -o obj/$@ $< + +%.o: %.S + $(AS) $(CFLAGS) -c -o obj/$@ $< + +%.o: src/%.cpp + $(CXX) $(CXXFLAGS) -c -o obj/$@ $< + +%.o: src/%.c + $(CC) $(ASFLAGS) -c -o obj/$@ $< + +%.o: src/%.S + $(AS) $(CFLAGS) -c -o obj/$@ $< + +builddir: + mkdir -p ./obj/ \ No newline at end of file diff --git a/prototypes-rework/config.mk b/prototypes-rework/config.mk new file mode 100644 index 0000000..7975fa0 --- /dev/null +++ b/prototypes-rework/config.mk @@ -0,0 +1,10 @@ +## +# DasOS Makefile configuration +## + +# Configure for target platform +CC=/opt/bin/i686-elf-gcc +CXX=/opt/bin/i686-elf-g++ +LD=/opt/i686-elf/bin/ld +AR=/opt/i686-elf/bin/ar +AS=/opt/bin/i686-elf-gcc \ No newline at end of file diff --git a/prototypes-rework/include/asm.hpp b/prototypes-rework/include/asm.hpp new file mode 100644 index 0000000..6073347 --- /dev/null +++ b/prototypes-rework/include/asm.hpp @@ -0,0 +1,50 @@ +#pragma once + +#include +#include + +#define ASM_READ_REG(reg, var) asm volatile("mov %%" #reg ", %0" : "=r" (var)); +#define ASM_WRITE_REG(reg, var) asm volatile("mov %0, %%" #reg : : "r" (var)); + +namespace ASM +{ + static inline void sti() + { + __asm__ volatile ("sti"); + } + + static inline void cli() + { + __asm__ volatile ("cli"); + } + + static inline void outb(uint16_t port, uint8_t data) + { + asm volatile ("outb %0, %1" : : "a" (data), "Nd" (port)); + } + + static inline uint8_t inb(uint16_t port) + { + uint8_t data; + asm volatile ("inb %1, %0" : "=a" (data) : "d" (port)); + return data; + } + + static inline void invlpg(void* m) + { + /* Clobber memory to avoid optimizer re-ordering access before invlpg, which may cause nasty bugs. */ + asm volatile ( "invlpg (%0)" : : "b"(m) : "memory" ); + } + + static inline void lidt(void *idt, size_t length) + { + struct { + uint16_t limit; + void* pointer; + } __attribute__((packed)) idtp = { + .limit = uint16_t(length * 8 - 1), + .pointer = idt, + }; + asm volatile("lidt %0" : : "m" (idtp)); + } +} \ No newline at end of file diff --git a/prototypes-rework/include/compat.h b/prototypes-rework/include/compat.h new file mode 100644 index 0000000..747de12 --- /dev/null +++ b/prototypes-rework/include/compat.h @@ -0,0 +1,13 @@ +#pragma once + +#if defined(__cplusplus) +extern "C" { +#endif + +void compat_call_ctors(); + +void compat_call_dtors(); + +#if defined(__cplusplus) +} +#endif \ No newline at end of file diff --git a/prototypes-rework/include/console.hpp b/prototypes-rework/include/console.hpp new file mode 100644 index 0000000..331c555 --- /dev/null +++ b/prototypes-rework/include/console.hpp @@ -0,0 +1,188 @@ +#pragma once + +#include "screen.hpp" +#include "pointer.hpp" + +struct FColor +{ + FColor() : color(Color::White) { } + FColor(Color color) : color(color) { } + Color color; +}; + +struct BColor +{ + BColor() : color(Color::Black) { } + BColor(Color color) : color(color) { } + Color color; +}; + +template +struct NumericFormat +{ + T value; + uint32_t base; + + /** + * Applies a padding to the number. + * A positive number will apply padding the right side, + * a negative number will pad the left side. + */ + int32_t padding = 0; + + char padchar = ' '; + + NumericFormat(T value) : value(value), base(10) { } + NumericFormat(T value, uint32_t base) : value(value), base(base) { } +}; + +namespace console_tools +{ + template + auto hex(T value) { return NumericFormat(value, 16); } + + template + auto dec(T value) { return NumericFormat(value, 10); } + + template + auto oct(T value) { return NumericFormat(value, 8); } + + template + auto bin(T value) { return NumericFormat(value, 2); } + + template + auto nbase(T value, uint32_t base) { return NumericFormat(value, base); } + + template + auto pad(NumericFormat value, int32_t padding, char c = ' ') { + value.padding = padding; + return value; + } + + template + auto pad(T value, int32_t padding, char c = ' ') { + return pad(NumericFormat(value), padding, c); + } +} + +class Console +{ +public: + static Console main; +private: + Screen * const screen; + int x; + int y; + Color fg, bg; + bool caretEnabled; +private: + /** + * Moves the hardware caret. + */ + void updateCaret(); + + /** + * Prints the prefix for a given numeric base. + * @returns the prefix length. + */ + uint32_t printNumericPrefix(uint32_t base); + + /** + * Prints a character several times. + */ + void putrep(char c, uint32_t repetitions); +public: + Console(Screen *screen); + + /** + * Clears the console. + */ + void clear(); + + /** + * Puts a character on the screen. + */ + void put(char c); + + /** + * Inserts a line break and returns the cursor to the start. + */ + void newline(); + + /** + * Scrolls screen a line upwards + */ + void scroll(); + + /** + * Moves the cursor to the given position + */ + void setCursor(int x, int y); + + /** + * Sets the visibility of the caret. + */ + void setCaretVisible(bool visible = true); + + /** + * Sets the text foreground color + */ + void setForeground(Color c) { + this->fg = c; + } + + /** + * Sets the text background color + */ + void setBackground(Color c) { + this->bg = c; + } + + /** + * Sets the text colors. + */ + void setColors(Color bg, Color fg) { + this->fg = fg; + this->bg = bg; + } + + inline Console & operator << (char c) + { + this->put(c); + return *this; + } + + inline Console & operator << (const char *str) + { + while(*str) { + *this << *str++; + } + return *this; + } + + inline Console & operator << (const FColor &color) + { + this->fg = color.color; + return *this; + } + + inline Console & operator << (const BColor &color) + { + this->bg = color.color; + return *this; + } + + Console & operator << (uint32_t value); + + Console & operator << (int32_t value); + + Console & operator << (void *value); + + Console & operator << (bool value); + + template + Console & operator << (pointer ptr); + + template + Console & operator << (const NumericFormat &fmt); +}; \ No newline at end of file diff --git a/prototypes-rework/include/cpustate.hpp b/prototypes-rework/include/cpustate.hpp new file mode 100644 index 0000000..e2e907b --- /dev/null +++ b/prototypes-rework/include/cpustate.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include + +struct CpuState +{ + uint32_t eax; + uint32_t ebx; + uint32_t ecx; + uint32_t edx; + uint32_t esi; + uint32_t edi; + uint32_t ebp; + + uint32_t interrupt; + uint32_t error; + + uint32_t eip; + uint32_t cs; + uint32_t eflags; + uint32_t esp; + uint32_t ss; +} __attribute__((packed)); + +static_assert(sizeof(CpuState) == 56, "CpuState must be 56 bytes large."); \ No newline at end of file diff --git a/prototypes-rework/include/driver/pic.hpp b/prototypes-rework/include/driver/pic.hpp new file mode 100644 index 0000000..f9adc58 --- /dev/null +++ b/prototypes-rework/include/driver/pic.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include + +class PIC +{ +private: + uint16_t port; +public: + PIC(uint16_t port); + + /** + * Sends an initialization code to the PIC.s + */ + void initialize(uint16_t irqBase, uint16_t icw3, uint16_t icw4); + + /** + * Disables all interrupts where the corresponding bit in mask is set. + */ + void maskInterrupts(uint8_t mask); + + /** + * Sends an end-of-interrupt to the PIC. + */ + void sendEndOfInterrupt(); +}; + +extern PIC masterPIC, slavePIC; \ No newline at end of file diff --git a/prototypes-rework/include/elf.hpp b/prototypes-rework/include/elf.hpp new file mode 100644 index 0000000..9bd9834 --- /dev/null +++ b/prototypes-rework/include/elf.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include + +namespace elf +{ + static const uint32_t MAGIC = 0x464C457F; + + struct Header { + uint32_t magic; + uint32_t version; + uint64_t reserved; + uint64_t version2; + uint32_t entry; + uint32_t ph_offset; + uint32_t sh_offset; + uint32_t flags; + uint16_t header_size; + uint16_t ph_entry_size; + uint16_t ph_entry_count; + uint16_t sh_entry_size; + uint16_t sh_entry_count; + uint16_t sh_str_table_index; + } __attribute__((packed)); + + struct ProgramHeader { + uint32_t type; + uint32_t offset; + uint32_t virt_addr; + uint32_t phys_addr; + uint32_t file_size; + uint32_t mem_size; + uint32_t flags; + uint32_t alignment; + } __attribute__((packed)); +} \ No newline at end of file diff --git a/prototypes-rework/include/enums.hpp b/prototypes-rework/include/enums.hpp new file mode 100644 index 0000000..a8b6035 --- /dev/null +++ b/prototypes-rework/include/enums.hpp @@ -0,0 +1,18 @@ +#pragma once + +#define ENUM_CLASS_OPERATORS(type) static inline type operator | (type lhs, type rhs) { \ + return static_cast(static_cast(lhs) | static_cast(rhs)); \ +} \ +static inline type operator & (type lhs, type rhs) { \ + return static_cast(static_cast(lhs) & static_cast(rhs)); \ +} \ +static inline bool operator * (type lhs, type rhs) { \ + return (static_cast(lhs) & static_cast(rhs)) != 0; \ +} \ +static inline type & operator |=(type & lhs, type rhs) { \ + reinterpret_cast(lhs) |= static_cast(rhs); \ + return lhs; \ +} + + + diff --git a/prototypes-rework/include/errors.hpp b/prototypes-rework/include/errors.hpp new file mode 100644 index 0000000..8e02797 --- /dev/null +++ b/prototypes-rework/include/errors.hpp @@ -0,0 +1,8 @@ +#pragma once + +enum class Error +{ +#define ERROR(num, ident, desc) ident = num, +#include "errors.lst" +#undef ERROR +}; \ No newline at end of file diff --git a/prototypes-rework/include/exceptions.hpp b/prototypes-rework/include/exceptions.hpp new file mode 100644 index 0000000..c288ec6 --- /dev/null +++ b/prototypes-rework/include/exceptions.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include "enums.hpp" + +enum class Exception +{ +#define EXCEPTION(num, shorthand, ident, desc, type) ident = num, +#include "exceptions.lst" +#undef EXCEPTION +}; \ No newline at end of file diff --git a/prototypes-rework/include/io.hpp b/prototypes-rework/include/io.hpp new file mode 100644 index 0000000..3265fe2 --- /dev/null +++ b/prototypes-rework/include/io.hpp @@ -0,0 +1,7 @@ +#pragma once + +#include "asm.hpp" + +// Import functions into global namespace +using ASM::inb; +using ASM::outb; \ No newline at end of file diff --git a/prototypes-rework/include/kernel/bsod.hpp b/prototypes-rework/include/kernel/bsod.hpp new file mode 100644 index 0000000..9009bf1 --- /dev/null +++ b/prototypes-rework/include/kernel/bsod.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "errors.hpp" +#include "cpustate.hpp" + +/** + * This class provides the blue screen of death. + * Discaimer: Color may vary! + */ +class BSOD +{ +private: + BSOD() = delete; +public: + + /** + * Dies with a simple message and error code display. + */ + static void die(Error code, const char *msg); + + /** + * Dies with a simple message and error code display. + */ + static void die(Error code, const char *msg, CpuState *cpu); + +}; \ No newline at end of file diff --git a/prototypes-rework/include/kernel/gdt.hpp b/prototypes-rework/include/kernel/gdt.hpp new file mode 100644 index 0000000..77f55a1 --- /dev/null +++ b/prototypes-rework/include/kernel/gdt.hpp @@ -0,0 +1,118 @@ +#pragma once + +#include +#include "enums.hpp" + +enum class SegmentAccess : uint8_t +{ + None = 0, + Accessed = (1<<0), + Readable = (1<<1), + Writeable = (1<<1), + Direction = (1<<2), + Conforming = (1<<2), + Executable = (1<<3), + Segment = (1<<4), + Ring0 = 0, + Ring1 = (1<<5), + Ring2 = (1<<6), + Ring3 = (1<<5) | (1<<6), + Present = (1<<7), +}; + +ENUM_CLASS_OPERATORS(SegmentAccess) + +enum class SegmentFlags : uint8_t +{ + None = 0, + Available = (1<<0), + LongMode = (1<<1), + Use32Bit = (1<<2), + Use4KSize = (1<<3), +}; + +ENUM_CLASS_OPERATORS(SegmentFlags) + +struct SegmentDescriptor +{ + uint16_t limit0; + uint16_t base0; + uint8_t base1; + SegmentAccess access; + uint8_t limit1 : 4; + uint8_t flags0 : 4; + uint8_t base2; + + SegmentDescriptor() : + limit0(0), base0(0), base1(0), + access(SegmentAccess::None), + limit1(0), flags0(0), base2(0) + { + + } + + SegmentDescriptor( + uint32_t base, + uint32_t length, + SegmentAccess access, + SegmentFlags flags) : + access(access) + { + this->setBase(base); + this->setFlags(flags); + + if(this->flags() * SegmentFlags::Use4KSize) { + this->setLimit(length >> 12); + } else { + this->setLimit(length); + } + } + + void setFlags(SegmentFlags flags) + { + this->flags0 = static_cast(flags) & 0x0F; + } + + SegmentFlags flags() const + { + return static_cast(this->flags0); + } + + uint32_t limit() const + { + return this->limit0 | (this->limit1 << 16); + } + + void setLimit(uint32_t value) + { + this->limit0 = (value & 0x0FFFF) >> 0; + this->limit1 = (value & 0xFFFFF) >> 16; + } + + uint32_t base() const + { + return this->base0 | (this->base1 << 16) | (this->base2 << 24); + } + + void setBase(uint32_t value) + { + this->base0 = (value & 0x0000FFFF) >> 0; + this->base1 = (value & 0x00FF0000) >> 16; + this->base2 = (value & 0xFF000000) >> 24; + } +} __attribute__((packed)); + +static_assert(sizeof(SegmentDescriptor) == 8, "SegmentDescriptor must be 8 bytes large."); + +class GDT +{ +public: + static const uint32_t length = 8; +private: + static SegmentDescriptor descriptors[length]; + GDT() = delete; +public: + static void initialize(); + + static SegmentDescriptor & descriptor(uint32_t index); +}; \ No newline at end of file diff --git a/prototypes-rework/include/kernel/idt.hpp b/prototypes-rework/include/kernel/idt.hpp new file mode 100644 index 0000000..10410b2 --- /dev/null +++ b/prototypes-rework/include/kernel/idt.hpp @@ -0,0 +1,92 @@ +#pragma once + +#include +#include "enums.hpp" +#include "cpustate.hpp" + +enum class InterruptFlags : uint8_t +{ + None = 0x00, + Interrupt = 0x06, + TrapGate = 0x07, + TaskGate = 0x05, + Use32Bit = 0x08, + Ring0 = 0x00, + Ring1 = 0x20, + Ring2 = 0x40, + Ring3 = 0x60, + Present = 0x80, +}; + +ENUM_CLASS_OPERATORS(InterruptFlags) + +struct InterruptDescriptor +{ + uint16_t offset0; + uint16_t selector; + uint8_t zero; + InterruptFlags flags; + uint16_t offset1; + + InterruptDescriptor(); + + InterruptDescriptor(uint32_t offset, uint32_t selector, InterruptFlags flags); + + uint32_t offset() const; + + void setOffset(uint32_t offset); +} __attribute__((packed)); + +static_assert(sizeof(InterruptDescriptor) == 8, "InterruptDescriptor must be 8 byte large."); + +/** + * An interrupt that specifies + * a handler and if the interrupt is + * enabled. Any non-enabled interrupt + * causes a BSOD. + */ +class Interrupt +{ + friend class IDT; + using Handler = void (*)(CpuState * & cpu); +private: + bool isEnabled; + Handler handler; + +public: + Interrupt(); + explicit Interrupt(Handler handler); +}; + + +class IDT +{ +public: + static const uint32_t length = 256; + + static Interrupt interrupts[length]; + +private: + static InterruptDescriptor descriptors[length]; + IDT() = delete; + + static CpuState * dispatch(CpuState *cpu); + static void setupPIC(); +public: + + /** + * Accessor to an interrupt handler. + */ + static Interrupt & interrupt(uint32_t index); + + /** + * Gets an interrupt descriptor + */ + static InterruptDescriptor & descriptor(uint32_t idx); + + /** + * Initializes the interrupt table and sets up the PIC. + */ + static void initialize(); + +}; \ No newline at end of file diff --git a/prototypes-rework/include/kernel/pagedirectory.hpp b/prototypes-rework/include/kernel/pagedirectory.hpp new file mode 100644 index 0000000..ef6f3fb --- /dev/null +++ b/prototypes-rework/include/kernel/pagedirectory.hpp @@ -0,0 +1,18 @@ +#pragma once + +#include "pagetable.hpp" + +class PageDirectory +{ +private: + uint32_t tables[1024]; +public: + PageDirectory(); + ~PageDirectory(); + + uint32_t & table(uint32_t index) { + return this->tables[index]; + } +}; + +static_assert(sizeof(PageDirectory) == 4096, "PageDirectory must be 4096 bytes large"); \ No newline at end of file diff --git a/prototypes-rework/include/kernel/pagetable.hpp b/prototypes-rework/include/kernel/pagetable.hpp new file mode 100644 index 0000000..e7c4fc8 --- /dev/null +++ b/prototypes-rework/include/kernel/pagetable.hpp @@ -0,0 +1,17 @@ +#pragma once + +class PageTable +{ +private: + uint32_t pages[1024]; +public: + PageTable(); + ~PageTable(); + + uint32_t & pageDescriptor(uint32_t pageIndex) + { + return this->pages[pageIndex]; + } +}; + +static_assert(sizeof(PageTable) == 4096, "PageDirectory must be 4096 bytes large"); \ No newline at end of file diff --git a/prototypes-rework/include/kernel/pmm.hpp b/prototypes-rework/include/kernel/pmm.hpp new file mode 100644 index 0000000..e5aa39b --- /dev/null +++ b/prototypes-rework/include/kernel/pmm.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include "pointer.hpp" + +/** + * Physical memory management tool. + */ +class PMM +{ +private: + PMM() = delete; +public: + /** + * Marks a page as free by external memory management. + */ + static void markFree(physical_t page); + + /** + * Marks a page as used by external memory management. + */ + static void markUsed(physical_t page); + + /** + * Allocates a single page. + * @remarks This method will either return a valid value or die with a BSOD if out of memory. + */ + static physical_t alloc(); + + /** + * Frees a given page by pointer. + */ + static void free(physical_t page); + + /** + * Returns the free memory. + */ + static uint32_t getFreeMemory(); +}; \ No newline at end of file diff --git a/prototypes-rework/include/kernel/vmm.hpp b/prototypes-rework/include/kernel/vmm.hpp new file mode 100644 index 0000000..d01d288 --- /dev/null +++ b/prototypes-rework/include/kernel/vmm.hpp @@ -0,0 +1,62 @@ +#pragma once + +#include "pmm.hpp" +#include "enums.hpp" +#include "pagedirectory.hpp" + +enum class VMMFlags +{ + None = 0, + Present = (1<<0), + Writable = (1<<1), + UserSpace = (1<<2), + SystemAllocated = (1<<3), +}; + +ENUM_CLASS_OPERATORS(VMMFlags) + +class VMMContext +{ + friend class VMM; +private: + PageDirectory *directory; + + /** + * Gets the uint32_t that describes the given virtual address + */ + uint32_t & getPageDescriptor(virtual_t virt); +public: + VMMContext(); + ~VMMContext(); + + /** + * Maps an arbitrary page into the virtual memory. + */ + void provide(virtual_t virt, VMMFlags flags); + + /** + * Maps a given page into the virtual memory. + */ + void map(virtual_t virt, physical_t phys, VMMFlags flags); + + /** + * Unmaps a given page from the virtual memory. + */ + void unmap(virtual_t virt); +}; + +class VMM +{ +private: + VMM() = delete; +public: + /** + * Enables paging + */ + static void enable(); + + /** + * Sets the given context as the current context. + */ + static void activate(VMMContext & context); +}; diff --git a/prototypes-rework/include/lists/errors.lst b/prototypes-rework/include/lists/errors.lst new file mode 100644 index 0000000..661dc88 --- /dev/null +++ b/prototypes-rework/include/lists/errors.lst @@ -0,0 +1,7 @@ +ERROR(0, Success, Nothing went wrong. This should never encounter.) +ERROR(1, OutOfMemory, The system has run out of memory.) +ERROR(2, UnhandledException, An unhandled exception has occurred.) +ERROR(3, UnhandledInterrupt, An unhandled interrupt has occurred.) +ERROR(4, DriverAlreadyInstalled, A driver was already installed.) +ERROR(5, InvalidELFImage, The file beeing loaded is not a valid ELF file.) +ERROR(6, VMError, The virtual machine has failed.) \ No newline at end of file diff --git a/prototypes-rework/include/lists/exceptions.lst b/prototypes-rework/include/lists/exceptions.lst new file mode 100644 index 0000000..3fcea29 --- /dev/null +++ b/prototypes-rework/include/lists/exceptions.lst @@ -0,0 +1,32 @@ +EXCEPTION(0x00, DE, DiviceByZero, Divide by Zero, Fault) +EXCEPTION(0x01, DB, Debug, Debug, Fault | Trap) +EXCEPTION(0x02, NMI, NonMaskableInterrupt, Non Maskable Interrupt, None) +EXCEPTION(0x03, BP, Breakpoint, Breakpoint, Trap) +EXCEPTION(0x04, OF, Overflow, Overflow, Trap) +EXCEPTION(0x05, BR, BoundRange, Bound Range, Fault) +EXCEPTION(0x06, UD, InvalidOpcode, Invalid Opcode, Fault) +EXCEPTION(0x07, NM, DeviceNotAvailable, Device Not Available, Fault) +EXCEPTION(0x08, DF, DoubleFault, Double Fault, Abort) +EXCEPTION(0x09, CSO, CoprocessorSegmentOverrun, Coprocessor Segment Overrun, None) +EXCEPTION(0x0a, TS, InvalidTSS, Invalid TSS, Fault) +EXCEPTION(0x0b, NP, SegmentNotPresent, Segment not Present, Fault) +EXCEPTION(0x0c, SS, StackFault, Stack Fault, Fault) +EXCEPTION(0x0d, GP, GeneralProtectionFault, General Protection, Fault) +EXCEPTION(0x0e, PF, PageFault, Page Fault, Fault) +EXCEPTION(0x0f, XX, Reserved0, Reserved, None) +EXCEPTION(0x10, MF, x87FloatingPoint, x87 Floating Point, Fault) +EXCEPTION(0x11, AC, AlignmentCheck, Alignment Check, Fault) +EXCEPTION(0x12, MC, MachineCheck, Machine Check, Abort) +EXCEPTION(0x13, XF, SIMDFloatingPoint, SIMD Floating Point, Fault) +EXCEPTION(0x14, XX, Reserved1, Reserved, None) +EXCEPTION(0x15, XX, Reserved2, Reserved, None) +EXCEPTION(0x16, XX, Reserved3, Reserved, None) +EXCEPTION(0x17, XX, Reserved4, Reserved, None) +EXCEPTION(0x18, XX, Reserved5, Reserved, None) +EXCEPTION(0x19, XX, Reserved6, Reserved, None) +EXCEPTION(0x1a, XX, Reserved7, Reserved, None) +EXCEPTION(0x1b, XX, Reserved8, Reserved, None) +EXCEPTION(0x1c, XX, Reserved9, Reserved, None) +EXCEPTION(0x1d, XX, Reserved10, Reserved, None) +EXCEPTION(0x1e, SX, SecuritySensitive, Security-sensitive event in Host, Fault) +EXCEPTION(0x1f, XX, Reserved11, Reserved, None) \ No newline at end of file diff --git a/prototypes-rework/include/lists/interrupts.lst b/prototypes-rework/include/lists/interrupts.lst new file mode 100644 index 0000000..2f1022e --- /dev/null +++ b/prototypes-rework/include/lists/interrupts.lst @@ -0,0 +1,257 @@ +ISR(0) +ISR(1) +ISR(2) +ISR(3) +ISR(4) +ISR(5) +ISR(6) +ISR(7) +ISR_ERR(8) +ISR(9) +ISR_ERR(10) +ISR_ERR(11) +ISR_ERR(12) +ISR_ERR(13) +ISR_ERR(14) +ISR(15) +ISR(16) +ISR_ERR(17) +ISR(18) + +ISR(19) +ISR(20) +ISR(21) +ISR(22) +ISR(23) +ISR(24) +ISR(25) +ISR(26) +ISR(27) +ISR(28) +ISR(29) +ISR(30) +ISR(31) +ISR(32) +ISR(33) +ISR(34) +ISR(35) +ISR(36) +ISR(37) +ISR(38) +ISR(39) +ISR(40) +ISR(41) +ISR(42) +ISR(43) +ISR(44) +ISR(45) +ISR(46) +ISR(47) +ISR(48) +ISR(49) +ISR(50) +ISR(51) +ISR(52) +ISR(53) +ISR(54) +ISR(55) +ISR(56) +ISR(57) +ISR(58) +ISR(59) +ISR(60) +ISR(61) +ISR(62) +ISR(63) +ISR(64) +ISR(65) +ISR(66) +ISR(67) +ISR(68) +ISR(69) +ISR(70) +ISR(71) +ISR(72) +ISR(73) +ISR(74) +ISR(75) +ISR(76) +ISR(77) +ISR(78) +ISR(79) +ISR(80) +ISR(81) +ISR(82) +ISR(83) +ISR(84) +ISR(85) +ISR(86) +ISR(87) +ISR(88) +ISR(89) +ISR(90) +ISR(91) +ISR(92) +ISR(93) +ISR(94) +ISR(95) +ISR(96) +ISR(97) +ISR(98) +ISR(99) +ISR(100) +ISR(101) +ISR(102) +ISR(103) +ISR(104) +ISR(105) +ISR(106) +ISR(107) +ISR(108) +ISR(109) +ISR(110) +ISR(111) +ISR(112) +ISR(113) +ISR(114) +ISR(115) +ISR(116) +ISR(117) +ISR(118) +ISR(119) +ISR(120) +ISR(121) +ISR(122) +ISR(123) +ISR(124) +ISR(125) +ISR(126) +ISR(127) +ISR(128) +ISR(129) +ISR(130) +ISR(131) +ISR(132) +ISR(133) +ISR(134) +ISR(135) +ISR(136) +ISR(137) +ISR(138) +ISR(139) +ISR(140) +ISR(141) +ISR(142) +ISR(143) +ISR(144) +ISR(145) +ISR(146) +ISR(147) +ISR(148) +ISR(149) +ISR(150) +ISR(151) +ISR(152) +ISR(153) +ISR(154) +ISR(155) +ISR(156) +ISR(157) +ISR(158) +ISR(159) +ISR(160) +ISR(161) +ISR(162) +ISR(163) +ISR(164) +ISR(165) +ISR(166) +ISR(167) +ISR(168) +ISR(169) +ISR(170) +ISR(171) +ISR(172) +ISR(173) +ISR(174) +ISR(175) +ISR(176) +ISR(177) +ISR(178) +ISR(179) +ISR(180) +ISR(181) +ISR(182) +ISR(183) +ISR(184) +ISR(185) +ISR(186) +ISR(187) +ISR(188) +ISR(189) +ISR(190) +ISR(191) +ISR(192) +ISR(193) +ISR(194) +ISR(195) +ISR(196) +ISR(197) +ISR(198) +ISR(199) +ISR(200) +ISR(201) +ISR(202) +ISR(203) +ISR(204) +ISR(205) +ISR(206) +ISR(207) +ISR(208) +ISR(209) +ISR(210) +ISR(211) +ISR(212) +ISR(213) +ISR(214) +ISR(215) +ISR(216) +ISR(217) +ISR(218) +ISR(219) +ISR(220) +ISR(221) +ISR(222) +ISR(223) +ISR(224) +ISR(225) +ISR(226) +ISR(227) +ISR(228) +ISR(229) +ISR(230) +ISR(231) +ISR(232) +ISR(233) +ISR(234) +ISR(235) +ISR(236) +ISR(237) +ISR(238) +ISR(239) +ISR(240) +ISR(241) +ISR(242) +ISR(243) +ISR(244) +ISR(245) +ISR(246) +ISR(247) +ISR(248) +ISR(249) +ISR(250) +ISR(251) +ISR(252) +ISR(253) +ISR(254) +ISR(255) diff --git a/prototypes-rework/include/lists/irqs.lst b/prototypes-rework/include/lists/irqs.lst new file mode 100644 index 0000000..bb09567 --- /dev/null +++ b/prototypes-rework/include/lists/irqs.lst @@ -0,0 +1,16 @@ +IRQ(0, Timer, Programmable Interval Timer) +IRQ(1, PrimaryPS2, First PS/2 port / Keyboard Controller) +IRQ(2, SecondaryPIC, Connection to secondary PIC) +IRQ(3, RS232Even, RS-232 Port 2/4) +IRQ(4, RS232Odd, RS-232 Port 1/3) +IRQ(5, SecondaryLPT, LPT 2) +IRQ(6, Floppy, Floppy Disk Controller) +IRQ(7, PrimaryLPT, LPT 1 / Spurious Interrupt) +IRQ(8, RTC, RTC (CMOS Real Time Clock)) +IRQ(9, Free, Free) +IRQ(10, FourthIDE, Fourth ATA/ATAPI/(E)IDE) +IRQ(11, ThirdIDE, Third ATA/ATAPI/(E)IDE) +IRQ(12, SecondaryPS2, Second PS/2 Port / Mouse Controller) +IRQ(13, FPU, FPU) +IRQ(14, PrimaryIDE, Primary ATA/ATAPI/(E)IDE) +IRQ(15, SecondaryIDE, Secundary ATA/ATAPI/(E)IDE / Spurious Interrupt) \ No newline at end of file diff --git a/prototypes-rework/include/multiboot.hpp b/prototypes-rework/include/multiboot.hpp new file mode 100644 index 0000000..23c66de --- /dev/null +++ b/prototypes-rework/include/multiboot.hpp @@ -0,0 +1,169 @@ +#pragma once + +#include +#include +#include "pointer.hpp" + +#define MB_MEMSIZE (1<<0) +#define MB_BOOTDEVICE (1<<1) +#define MB_COMMANDLINE (1<<2) +#define MB_MODULES (1<<3) +#define MB_SYMS_AOUT (1<<4) +#define MB_SYMS_ELF (1<<5) +#define MB_MEMORYMAP (1<<6) +#define MB_DRIVES (1<<7) +#define MB_CONFIG_TABLE (1<<8) +#define MB_BOOTLOADER_NAME (1<<9) +#define MB_APS_TABLE (1<<10) +#define MB_VBE (1<<11) + +#define MB_ASSERT_SIZE(type, len) static_assert(sizeof(type) == len, "multiboot::" #type " must be " #len " bytes large.") + +namespace multiboot +{ + template + class mbarray + { + public: + const uint32_t length; + private: + T *data; + + mbarray() = delete; + public: + T const & operator [](size_t idx) const { + return this->data[idx]; + } + + const T *begin() const { + return &data[0]; + } + const T *end() const { + return &data[length]; + } + } __attribute__((packed)); + + // Make sure the size is not dependend on the template parameter + MB_ASSERT_SIZE(mbarray, 8); + MB_ASSERT_SIZE(mbarray, 8); + + struct MemoryMap + { + uint32_t entry_size; + uint64_t base; + uint64_t length; + uint32_t type; + + + bool isFree() const { + return this->type == 1; + } + + } __attribute__((packed)); + + MB_ASSERT_SIZE(MemoryMap, 24); + + struct Module + { + physical_t start; + physical_t end; + const char * name; + uint32_t reserved; + + uint32_t size() const { + return this->end.numeric() - this->start.numeric(); + } + + } __attribute__((packed)); + + MB_ASSERT_SIZE(Module, 16); + + struct Drive + { + uint32_t size; + uint8_t number; + uint8_t mode; + uint16_t cylinders; + uint8_t heads; + uint8_t sectors; + + // 0x10 size-0x10 drive_ports I/O-Ports, die von diesem Gerät benutzt werden + // uint16_t ports[0]; + + /** + * Gets the number of ports used by this drive. + */ + uint32_t portCount() const { + return (this->size - 0x10) / sizeof(uint16_t); + } + + /** + * Gets the given port. + * @return The port #idx or 0 if out of range. + */ + uint16_t port(size_t idx) const { + uint16_t const * ports = reinterpret_cast(reinterpret_cast(this) + 0x10); + if(idx >= this->portCount()) { + return 0; + } + return ports[idx]; + } + } __attribute__((packed)); + + static_assert(sizeof(Drive) >= 10, "multiboot::Drive must be at least 12 bytes large."); + + struct APMTable + { + uint16_t version; + uint16_t cseg; + uint32_t offset; + uint16_t cseg_16; + uint16_t dseg; + uint16_t flags; + uint16_t cseg_len; + uint16_t cseg_16_len; + uint16_t dseg_len; + } __attribute__((packed)); + + MB_ASSERT_SIZE(APMTable, 20); + + struct Structure + { + uint32_t flags; + physical_t memLower; + physical_t memUpper; + uint32_t bootDevice; + const char * commandline; + mbarray modules; + union { + struct { + uint32_t tabsize; + uint32_t strsize; + uint32_t addr; + uint32_t reserved; + } __attribute__((packed)) symsAssemblerOut; + struct { + uint32_t num; + uint32_t size; + uintptr_t addr; + uintptr_t shndx; + } __attribute__((packed)) symsELF; + }; + mbarray memoryMaps; + mbarray drives; + physical_t configTable; + const char * bootLoaderName; + const APMTable * apmTable; + struct { + uint32_t controlInfo; + uint32_t modeInfo; + uint16_t mode; + uint16_t interfaceSegment; + uint16_t interfaceOffset; + uint16_t interfaceLength; + } __attribute__((packed)) vbe; + } __attribute__((packed)); + + MB_ASSERT_SIZE(Structure, 88); + +} \ No newline at end of file diff --git a/prototypes-rework/include/numeric.hpp b/prototypes-rework/include/numeric.hpp new file mode 100644 index 0000000..5ca83c7 --- /dev/null +++ b/prototypes-rework/include/numeric.hpp @@ -0,0 +1,49 @@ +#pragma once + +#include +#include + +class Numeric +{ +private: + Numeric() = delete; +public: + + /** + * Converts an unsigned number to a string. + * @param buffer The target buffer where the string should be stored. + * @param length The length of the buffer. + * @param number The number that should be converted. + * @param radix The numeric base for the printed number. + * @return The length of the converted strings. + */ + static size_t toString( + char *buffer, + size_t length, + uint32_t number, + uint32_t radix = 10); + static size_t toString( + char *buffer, + size_t length, + uint64_t number, + uint32_t radix = 10); + + /** + * Converts a signed number to a string. + * @param buffer The target buffer where the string should be stored. + * @param length The length of the buffer. + * @param number The number that should be converted. + * @param radix The numeric base for the printed number. + * @return The length of the converted strings. + */ + static size_t toString( + char *buffer, + size_t length, + int32_t number, + uint32_t radix = 10); + static size_t toString( + char *buffer, + size_t length, + int64_t number, + uint32_t radix = 10); +}; \ No newline at end of file diff --git a/prototypes-rework/include/pointer.hpp b/prototypes-rework/include/pointer.hpp new file mode 100644 index 0000000..557e23b --- /dev/null +++ b/prototypes-rework/include/pointer.hpp @@ -0,0 +1,116 @@ +#pragma once + +#include + +/** + * Provides a strong pointer wrapper which can be used to address + * different memory types (physical, virtual, ...) and preventing + * a wrong assignment. + * @remarks The pointer size is fixed to 32 bits. + */ +template +class pointer +{ +public: + /** + * A value that declares the pointer invalid. + */ + static pointer invalid; +private: + uint32_t ptr; +public: + /** + * Creates the pointer by giving a raw pointer. + */ + explicit pointer(void *ptr) : + ptr(reinterpret_cast(ptr)) + { + + } + + /** + * Creates the pointer by giving an integer value. + */ + explicit pointer(uint32_t value) : + ptr(value) + { + + } + + pointer(const pointer &) = default; + pointer(pointer &&) = default; + ~pointer() = default; + + pointer & operator = (const pointer & other) { + this->ptr = other.ptr; + return *this; + } + + /** + * Returns the numeric integer value of the pointer. + */ + uint32_t numeric() const { + return this->ptr; + } + + /** + * Returns the pointer as a raw pointer. + */ + void * data() const { + return reinterpret_cast(this->ptr); + } + + /** + * Returns the pointer as a raw typed pointer. + */ + template + T * data () const { + return reinterpret_cast(this->ptr); + } + + /** + * Allow explicit conversion to a raw pointer. + */ + explicit operator void * () const { + return this->data(); + } + + /** + * Returns an aligned version of the pointer. + * Rounds the pointer to the memory bottom. + */ + pointer alignLower(uint32_t alignment) { + if(alignment == 0) return pointer::invalid; + return pointer(this->ptr & ~(alignment - 1)); + } + + /** + * Returns an aligned version of the pointer. + * Rounds the pointer to the memory top. + */ + pointer alignUpper(uint32_t alignment) { + if(alignment == 0) return pointer::invalid; + return pointer((this->ptr + (alignment - 1)) & ~(alignment - 1)); + } +} __attribute__((packed)); + +template +pointer pointer::invalid(uint32_t(0xFFFFFFFF)); + +struct physical_t_ident; +struct virtual_t_ident; + +// Add different memory pointer types here.... + +/** + * A pointer pointing to physical memory. + */ +using physical_t = pointer; + +/** + * A pointer pointing to virtual memory. + */ +using virtual_t = pointer; + + +static_assert(sizeof(physical_t) == 4, "pointer is not 4 byte wide."); \ No newline at end of file diff --git a/prototypes-rework/include/screen.hpp b/prototypes-rework/include/screen.hpp new file mode 100644 index 0000000..ab4c612 --- /dev/null +++ b/prototypes-rework/include/screen.hpp @@ -0,0 +1,64 @@ +#pragma once + +#include + +enum class Color : uint8_t +{ + Black = 0, + Blue = 1, + Green = 2, + Cyan = 3, + Red = 4, + Magenta = 5, + Brown = 6, + LightGray = 7, + Gray = 8, + LightBlue = 9, + LightGreen = 10, + LightCyan = 11, + LightRed = 12, + LightMagenta = 13, + Yellow = 14, + White = 15, +}; + +using ColorInteger = uint8_t; + +struct ScreenChar +{ + char c; + struct { + ColorInteger fg : 4; + ColorInteger bg : 4; + }; +}; + +class Screen +{ +private: + static ScreenChar outOfScreen; +public: + static Screen main; +private: + ScreenChar * const buffer; +public: + const int width; + const int height; +public: + Screen(ScreenChar *buffer, int width, int height); + + void clear(); + + ScreenChar & operator ()(int x, int y) { + if(x < 0 || y < 0 || x >= this->width || y >= this->height) { + return Screen::outOfScreen; + } + return this->buffer[this->width * y + x]; + } + ScreenChar const & operator ()(int x, int y) const { + if(x < 0 || y < 0 || x >= this->width || y >= this->height) { + return Screen::outOfScreen; + } + return this->buffer[this->width * y + x]; + } +}; \ No newline at end of file diff --git a/prototypes-rework/kernel.mk b/prototypes-rework/kernel.mk new file mode 100644 index 0000000..f51bd1e --- /dev/null +++ b/prototypes-rework/kernel.mk @@ -0,0 +1,7 @@ + + +$(KERNEL): $(OBJS) + $(LD) -T../linker.ld -o ../kernels/$@ $(addprefix obj/, $^) $(LDFLAGS) $(LIBS) + +deploy: $(KERNEL) + cp ../kernels/$(KERNEL) /srv/tftp/$(KERNEL) diff --git a/prototypes-rework/libbase/Makefile b/prototypes-rework/libbase/Makefile new file mode 100644 index 0000000..1a28c46 --- /dev/null +++ b/prototypes-rework/libbase/Makefile @@ -0,0 +1,12 @@ +## +# Build base library parts of the libc. +## + +include ../config.mk + +LIBRARY = libbase.a + +all: builddir $(LIBRARY) + +include ../common.mk +include ../library.mk \ No newline at end of file diff --git a/prototypes-rework/libbase/src/string.c b/prototypes-rework/libbase/src/string.c new file mode 100644 index 0000000..eb16ca2 --- /dev/null +++ b/prototypes-rework/libbase/src/string.c @@ -0,0 +1,19 @@ + + + + +char * strcpy(char * dst, const char *src) +{ + char * tmp = dst; + while(((*tmp++) = (*src++))); + return dst; +} + +char *strcat(char * dst, const char *src) +{ + char * tmp = dst; + while(*tmp++); + tmp--; + while(((*tmp++) = (*src++))); + return dst; +} diff --git a/prototypes-rework/libboot/Makefile b/prototypes-rework/libboot/Makefile new file mode 100644 index 0000000..b1dddb0 --- /dev/null +++ b/prototypes-rework/libboot/Makefile @@ -0,0 +1,12 @@ +## +# Build multiboot entry point library. +## + +include ../config.mk + +LIBRARY = libboot.a + +all: builddir $(LIBRARY) + +include ../common.mk +include ../library.mk \ No newline at end of file diff --git a/prototypes-rework/libboot/compat.c b/prototypes-rework/libboot/compat.c new file mode 100644 index 0000000..1af8b91 --- /dev/null +++ b/prototypes-rework/libboot/compat.c @@ -0,0 +1,17 @@ +#include "compat.h" + +typedef void (*constructor)(); + +constructor start_ctors; +constructor end_ctors; + +void compat_call_ctors() +{ + for (constructor* i = &start_ctors;i != &end_ctors;++i) + (*i)(); +} + +void compat_call_dtors() +{ + +} \ No newline at end of file diff --git a/prototypes-rework/libboot/entrypoint.S b/prototypes-rework/libboot/entrypoint.S new file mode 100644 index 0000000..ba94dae --- /dev/null +++ b/prototypes-rework/libboot/entrypoint.S @@ -0,0 +1,23 @@ +.section .text + +.extern init +.extern compat_call_ctors +.extern compat_call_dtors + +.global _start +_start: + mov $kernel_stack, %esp + + push %ebx + call compat_call_ctors + call init + call compat_call_dtors + +_stop: + cli + hlt + jmp _stop + +.section .bss +.space 8192 +kernel_stack: \ No newline at end of file diff --git a/prototypes-rework/library.mk b/prototypes-rework/library.mk new file mode 100644 index 0000000..e5b1479 --- /dev/null +++ b/prototypes-rework/library.mk @@ -0,0 +1,3 @@ + +$(LIBRARY): $(OBJS) + $(AR) rcs ../libs/$(LIBRARY) $(addprefix obj/, $^) \ No newline at end of file diff --git a/prototypes-rework/linker.ld b/prototypes-rework/linker.ld new file mode 100644 index 0000000..ed97bd5 --- /dev/null +++ b/prototypes-rework/linker.ld @@ -0,0 +1,37 @@ +ENTRY(_start) +OUTPUT_FORMAT(elf32-i386) +OUTPUT_ARCH(i386:i386) + +SECTIONS +{ + . = 0x100000; + + kernelStartMarker = .; + + .text : { + *(multiboot) + *(.text) + } + .data ALIGN(4096) : { + start_ctors = .; + KEEP(*( .init_array )); + KEEP(*(SORT_BY_INIT_PRIORITY( .init_array.* ))); + end_ctors = .; + + start_dtors = .; + KEEP(*( .fini_array )); + end_dtors = .; + + *(.data) + } + .rodata ALIGN(4096) : { + *(.rodata) + } + .bss ALIGN(4096) : { + *(.bss) + } + + /* Align the end of the kernel to the page size */ + . = ALIGN(4096); + kernelEndMarker = .; +} \ No newline at end of file diff --git a/prototypes-rework/syslinux.cfg b/prototypes-rework/syslinux.cfg new file mode 100644 index 0000000..7ae1522 --- /dev/null +++ b/prototypes-rework/syslinux.cfg @@ -0,0 +1,22 @@ +DEFAULT menu.c32 +prompt 0 + +MENU TITLE DasOS Boot Menu +MENU AUTOBOOT Starting DasOS in # seconds +TIMEOUT 300 +TOTALTIMEOUT 9000 + +LABEL dasos + MENU DEFAULT + MENU LABEL DasOS + KERNEL mboot.c32 + APPEND kernel-base.ker + +LABEL video + MENU LABEL VBE Video Test + KERNEL mboot.c32 + APPEND video.ker + +LABEL poweroff + MENU LABEL Poweroff + KERNEL poweroff.c32 diff --git a/prototypes-rework/video/Makefile b/prototypes-rework/video/Makefile new file mode 100644 index 0000000..1d6b872 --- /dev/null +++ b/prototypes-rework/video/Makefile @@ -0,0 +1,13 @@ +## +# Builds the video test kernel +## + +include ../config.mk + +KERNEL = video.ker +LIBS = -lboot + +all: builddir $(KERNEL) + +include ../common.mk +include ../kernel.mk \ No newline at end of file diff --git a/prototypes-rework/video/multiboot.S b/prototypes-rework/video/multiboot.S new file mode 100644 index 0000000..f5af759 --- /dev/null +++ b/prototypes-rework/video/multiboot.S @@ -0,0 +1,28 @@ +.section multiboot + +#define MB_MAGIC 0x1badb002 +#define MB_FLAGS 0x07 +#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS) + +.align 4 + +// Offset Type Field Name Note +// 0 u32 magic required +// 4 u32 flags required +// 8 u32 checksum required +.int MB_MAGIC +.int MB_FLAGS +.int MB_CHECKSUM + +// 12 u32 header_addr if flags[16] is set +// 16 u32 load_addr if flags[16] is set +// 20 u32 load_end_addr if flags[16] is set +// 24 u32 bss_end_addr if flags[16] is set +// 28 u32 entry_addr if flags[16] is set +.int 0, 0, 0, 0, 0 + +// 32 u32 mode_type if flags[2] is set +// 36 u32 width if flags[2] is set +// 40 u32 height if flags[2] is set +// 44 u32 depth if flags[2] is set +.int 0, 640, 480, 32 \ No newline at end of file diff --git a/prototypes-rework/video/src/init.cpp b/prototypes-rework/video/src/init.cpp new file mode 100644 index 0000000..2c93696 --- /dev/null +++ b/prototypes-rework/video/src/init.cpp @@ -0,0 +1,95 @@ +#include + +#include +#include + +struct dummy; + +// Symbols generated by linker, no useful content in there... +extern dummy kernelStartMarker; +extern dummy kernelEndMarker; + +uint16_t * video = (uint16_t*)0xB8000; + +// Prüft, ob man bereits schreiben kann +static uint8_t is_transmit_empty(uint16_t base) { + return inb(base+5) & 0x20; +} + + // Byte senden +static void write_com(uint16_t base, uint8_t chr) { + while (is_transmit_empty(base)==0); + outb(base,chr); +} + +#define VBE_FAR(name) uint32_t name; + +struct ModeInfoBlock { + uint16_t attributes; + uint8_t winA,winB; + uint16_t granularity; + uint16_t winsize; + uint16_t segmentA, segmentB; + VBE_FAR(realFctPtr); + uint16_t pitch; // bytes per scanline + + uint16_t Xres, Yres; + uint8_t Wchar, Ychar, planes, bpp, banks; + uint8_t memory_model, bank_size, image_pages; + uint8_t reserved0; + + uint8_t red_mask, red_position; + uint8_t green_mask, green_position; + uint8_t blue_mask, blue_position; + uint8_t rsv_mask, rsv_position; + uint8_t directcolor_attributes; + + uint32_t physbase; // your LFB (Linear Framebuffer) address ;) + uint32_t reserved1; + uint16_t reserved2; +} __attribute__((packed)); + +static ModeInfoBlock mib; + +static void setpixel(int x, int y, uint32_t color) +{ + uint8_t *fb = (uint8_t*)mib.physbase; + + fb[mib.pitch * y + 4 * x + 2] = (color >> 0) & 0xFF; + fb[mib.pitch * y + 4 * x + 1] = (color >> 8) & 0xFF; + fb[mib.pitch * y + 4 * x + 0] = (color >> 16) & 0xFF; +} + +extern "C" void init(multiboot::Structure const & data) +{ + write_com(0x3F8, 'H'); + write_com(0x3F8, 'i'); + write_com(0x3F8, '\n'); + + const char *msg = "You should not see this."; + while(*msg) + { + *(video++) = *msg++ | 0x0700; + } + + mib = *(ModeInfoBlock*)data.vbe.modeInfo; + + for(int y = 0; y < mib.Yres; y++) + { + for(int x = 0; x < mib.Xres; x++) + { + uint32_t r = x % 256; + uint32_t g = y % 256; + uint32_t b = 0x00; + + setpixel(x, y, r | (g << 8) | (b << 16)); + } + } + + write_com(0x3F8, 'B'); + write_com(0x3F8, 'y'); + write_com(0x3F8, 'e'); + write_com(0x3F8, '\n'); + + while(true); +}