diff --git a/Makefile b/Makefile index 3bd5aea..6228658 100644 --- a/Makefile +++ b/Makefile @@ -78,7 +78,8 @@ qemu: kern/kernel.elf @$(QEMU) -machine virt -bios none -nographic -m 128M -smp 4 -kernel $< clean: - find . -type f -name '*.[od(elf)]' -exec rm -f {} + + rm -f *.o *.elf *.d lib/*.o lib/*.d + find . -type f -name '*.[od]' -exec rm -f {} + format: find . -type f -name '*.[ch]' -exec clang-format -i {} + diff --git a/README.md b/README.md index 177f304..3213594 100644 --- a/README.md +++ b/README.md @@ -7,34 +7,7 @@ For a quick reference on RISC-V assembly: Some low-level string format routines borrowed from [mini-printf](https://github.com/mludvig/mini-printf) -### Directory outline - -The planned directory outline is as follows: -``` -root -├── kern # General kernel sources -│ ├── libkern # Kernel specific library routines -│ ├── memory # Memory related code (kalloc, buddy and friends) -│ └── arch # Architecture specific functionality -├── libc # Userspace C library -└── user # Userspace programs -``` - -### Quick Start - -```sh -make get_toolchain # Dont worry, is will land locally inside project directory -make -j$(nproc) -make qemu -``` - -The project can be cleaned with: -```sh -make clean # Wipes .o, .d, .elf -make distclean # Wipes the above, but also removes toolchain -``` - -### Toolchains: +Toolchains: - https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack - https://github.com/xpack-dev-tools/qemu-riscv-xpack/ @@ -44,8 +17,6 @@ make distclean # Wipes the above, but also removes toolchain > term trap, largely because it was the term used by the PDP11/40 and therefore is the > conventional Unix term. -### Notes/Misc - | Register | Name | Privilege Level | Description | |-------------|----------------------------|------------------|-----------------------------------------------------------------------------| | `mstatus` | Machine Status Register | Machine | Holds global interrupt enable, previous privilege mode, etc. | @@ -64,7 +35,9 @@ make distclean # Wipes the above, but also removes toolchain | `mip` | Machine Interrupt Pending | Machine | Indicates pending interrupts. | | `mie` | Machine Interrupt Enable | Machine | Controls which interrupts are enabled. | -### Libc Implementations +# Notes + +## Libc Implementations [uClibc](https://uclibc.org/) [musl libc](https://musl.libc.org/)