Code-base clean-up and refactoring (#47)
authorLunaixsky <lunaixsky@qq.com>
Tue, 24 Sep 2024 18:09:53 +0000 (19:09 +0100)
committerGitHub <noreply@github.com>
Tue, 24 Sep 2024 18:09:53 +0000 (19:09 +0100)
commit34f6af4f61e0eec9c96113e07f140b609b4113c8
treed71b11edd80ba80d3df725969e9e337e4bbe9ee2
parentbffa3430fbbaaad29bec0b5bee9c1f0bfc7fd068
Code-base clean-up and refactoring (#47)

* clean up the cpu.h abstraction

* refactor the pte copy algorithm for per-vmr copy

* draw a line between sys/ and asm/; make use of generic arch

restructure the arch/* directory to differentiate the functionality
of sys/ and asm/. In which the former refer to arch-specific kernel
service; the latter refer to code related to low-level architectural
feature.

make use the arch/generic which will serve as a supplier of default
implementation, to allow sharing common code across different arch.

* fix a missing return statement in usr/test_pthread.c

* clean up redundant header files, add default for hwtimer selection

* add documentation on porting to other ISAs

* move asm/isrm to asm-generic for sharing the header

* remove redundancy in syscall numbering
151 files changed:
lunaix-os/.gitignore
lunaix-os/.vscode/c_cpp_properties.json [deleted file]
lunaix-os/.vscode/launch.json [deleted file]
lunaix-os/.vscode/tasks.json [deleted file]
lunaix-os/arch/LBuild
lunaix-os/arch/README.md
lunaix-os/arch/generic/LBuild [new file with mode: 0644]
lunaix-os/arch/generic/arch.c
lunaix-os/arch/generic/bootmem.c [moved from lunaix-os/arch/x86/boot/bootmem.c with 85% similarity]
lunaix-os/arch/generic/hart.c [deleted file]
lunaix-os/arch/generic/includes/asm-generic/isrm.h [moved from lunaix-os/includes/lunaix/generic/isrm.h with 100% similarity]
lunaix-os/arch/generic/includes/asm-generic/muldiv64.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys-generic/bootmem.h [moved from lunaix-os/includes/lunaix/generic/bootmem.h with 100% similarity]
lunaix-os/arch/generic/includes/sys-generic/elf.h [moved from lunaix-os/arch/x86/includes/sys/exebi/elf.h with 88% similarity]
lunaix-os/arch/generic/includes/sys-generic/trace_arch.h [moved from lunaix-os/includes/lunaix/generic/trace_arch.h with 99% similarity]
lunaix-os/arch/generic/includes/sys/abi.h [deleted file]
lunaix-os/arch/generic/includes/sys/cpu.h [deleted file]
lunaix-os/arch/generic/includes/sys/failsafe.h [deleted file]
lunaix-os/arch/generic/includes/sys/gdbstub.h [deleted file]
lunaix-os/arch/generic/includes/sys/hart.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/memory.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/mempart.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/mm_defs.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/pagetable.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/physical.h [deleted file]
lunaix-os/arch/generic/includes/sys/mm/tlb.h [deleted file]
lunaix-os/arch/generic/includes/sys/muldiv64.h [deleted file]
lunaix-os/arch/generic/includes/sys/port_io.h [deleted file]
lunaix-os/arch/generic/includes/sys/trace.h [deleted file]
lunaix-os/arch/generic/mm/fault.c [deleted file]
lunaix-os/arch/generic/procvm.c [new file with mode: 0644]
lunaix-os/arch/generic/trace.c [new file with mode: 0644]
lunaix-os/arch/generic/vmutils.c [moved from lunaix-os/arch/generic/mm/mm.c with 84% similarity]
lunaix-os/arch/x86/LBuild
lunaix-os/arch/x86/arch.c
lunaix-os/arch/x86/boot/boot_helper.c
lunaix-os/arch/x86/boot/i386/init32.c
lunaix-os/arch/x86/boot/i386/kremap32.c
lunaix-os/arch/x86/boot/i386/prologue32.S
lunaix-os/arch/x86/boot/kpt_setup.c
lunaix-os/arch/x86/boot/mb_parser.c
lunaix-os/arch/x86/boot/x86_64/boot64.S
lunaix-os/arch/x86/boot/x86_64/init64.c
lunaix-os/arch/x86/boot/x86_64/kremap64.c
lunaix-os/arch/x86/boot/x86_64/prologue64.S
lunaix-os/arch/x86/exceptions/interrupt32.S
lunaix-os/arch/x86/exceptions/interrupt64.S
lunaix-os/arch/x86/exceptions/interrupts.c
lunaix-os/arch/x86/exceptions/intr_routines.c
lunaix-os/arch/x86/exceptions/isrdef.c
lunaix-os/arch/x86/exceptions/isrm.c
lunaix-os/arch/x86/hal/apic.c
lunaix-os/arch/x86/hal/apic_timer.c
lunaix-os/arch/x86/hal/cpu.c
lunaix-os/arch/x86/hal/ioapic.c
lunaix-os/arch/x86/hal/mc146818a.c
lunaix-os/arch/x86/hal/pci.c
lunaix-os/arch/x86/hal/ps2kbd.c
lunaix-os/arch/x86/hart.c
lunaix-os/arch/x86/hart32.c
lunaix-os/arch/x86/hart64.c
lunaix-os/arch/x86/includes/asm/abi.h [moved from lunaix-os/arch/x86/includes/sys/abi.h with 88% similarity]
lunaix-os/arch/x86/includes/asm/cpu.h [new file with mode: 0644]
lunaix-os/arch/x86/includes/asm/hart.h [moved from lunaix-os/arch/x86/includes/sys/hart.h with 97% similarity]
lunaix-os/arch/x86/includes/asm/mempart.h [moved from lunaix-os/arch/x86/includes/sys/mm/mempart.h with 55% similarity]
lunaix-os/arch/x86/includes/asm/mm_defs.h [moved from lunaix-os/arch/x86/includes/sys/mm/mm_defs.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/muldiv64.h [moved from lunaix-os/arch/x86/includes/sys/muldiv64.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/pagetable.h [moved from lunaix-os/arch/x86/includes/sys/mm/pagetable.h with 97% similarity]
lunaix-os/arch/x86/includes/asm/physical.h [moved from lunaix-os/arch/x86/includes/sys/mm/physical.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/soc/apic.h [moved from lunaix-os/arch/x86/includes/sys/apic.h with 99% similarity]
lunaix-os/arch/x86/includes/asm/soc/ioapic.h [moved from lunaix-os/arch/x86/includes/sys/ioapic.h with 91% similarity]
lunaix-os/arch/x86/includes/asm/tlb.h [moved from lunaix-os/arch/x86/includes/sys/mm/tlb.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/abi32.h [moved from lunaix-os/arch/x86/includes/sys/abi32.h with 97% similarity]
lunaix-os/arch/x86/includes/asm/variants/abi64.h [moved from lunaix-os/arch/x86/includes/sys/abi64.h with 97% similarity]
lunaix-os/arch/x86/includes/asm/variants/interrupt32.S.inc [moved from lunaix-os/arch/x86/includes/sys/interrupt32.S.inc with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/interrupt64.S.inc [moved from lunaix-os/arch/x86/includes/sys/interrupt64.S.inc with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/mempart32.h [moved from lunaix-os/arch/x86/includes/sys/mm/mempart32.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/mempart64.h [moved from lunaix-os/arch/x86/includes/sys/mm/mempart64.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/pt_def32.h [moved from lunaix-os/arch/x86/includes/sys/mm/pt_def32.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/variants/pt_def64.h [moved from lunaix-os/arch/x86/includes/sys/mm/pt_def64.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/x86.h [moved from lunaix-os/arch/x86/includes/sys/x86_isa.h with 96% similarity]
lunaix-os/arch/x86/includes/asm/x86_cpu.h [moved from lunaix-os/arch/x86/includes/sys/cpu.h with 69% similarity]
lunaix-os/arch/x86/includes/asm/x86_crx.h [moved from lunaix-os/arch/x86/includes/sys/crx.h with 100% similarity]
lunaix-os/arch/x86/includes/asm/x86_ivs.h [moved from lunaix-os/arch/x86/includes/sys/vectors.h with 93% similarity]
lunaix-os/arch/x86/includes/asm/x86_pmio.h [moved from lunaix-os/arch/x86/includes/sys/port_io.h with 100% similarity]
lunaix-os/arch/x86/includes/linking/base_defs.ld.inc
lunaix-os/arch/x86/includes/sys/elf.h [new file with mode: 0644]
lunaix-os/arch/x86/includes/sys/gdbstub.h
lunaix-os/arch/x86/includes/sys/int_handler.h [deleted file]
lunaix-os/arch/x86/includes/sys/mm/memory.h [deleted file]
lunaix-os/arch/x86/mm/fault.c
lunaix-os/arch/x86/mm/gdt.c
lunaix-os/arch/x86/mm/tlb.c
lunaix-os/arch/x86/mm/vmutils.c
lunaix-os/arch/x86/syscall32.S
lunaix-os/arch/x86/syscall64.S
lunaix-os/arch/x86/syscall_nr.inc [new file with mode: 0644]
lunaix-os/hal/ahci/ahci.c
lunaix-os/hal/ahci/io_event.c
lunaix-os/hal/char/serial.c
lunaix-os/hal/char/uart/16x50_isa.c
lunaix-os/hal/char/uart/16x50_mmio.c
lunaix-os/hal/char/uart/16x50_pci.c
lunaix-os/hal/char/uart/16x50_pmio.c
lunaix-os/hal/gfxa/vga/vga.c
lunaix-os/hal/gfxa/vga/vga_rawtty.c
lunaix-os/includes/hal/ahci/ahci.h
lunaix-os/includes/lunaix/boot_generic.h
lunaix-os/includes/lunaix/compiler.h
lunaix-os/includes/lunaix/exebi/elf.h
lunaix-os/includes/lunaix/hart_state.h
lunaix-os/includes/lunaix/kpreempt.h
lunaix-os/includes/lunaix/mm/fault.h
lunaix-os/includes/lunaix/mm/mm.h
lunaix-os/includes/lunaix/mm/pagetable.h
lunaix-os/includes/lunaix/mm/physical.h
lunaix-os/includes/lunaix/mm/procvm.h
lunaix-os/includes/lunaix/mm/vmm.h
lunaix-os/includes/lunaix/mm/vmtlb.h
lunaix-os/includes/lunaix/spike.h
lunaix-os/includes/lunaix/trace.h
lunaix-os/kernel/block/blkbuf.c
lunaix-os/kernel/block/blkio.c
lunaix-os/kernel/block/blkpart_gpt.c
lunaix-os/kernel/boot_helper.c
lunaix-os/kernel/debug/gdbstub.c
lunaix-os/kernel/debug/trace.c
lunaix-os/kernel/exe/elf-generic/elfbfmt.c
lunaix-os/kernel/exe/elf-generic/ldelf.c
lunaix-os/kernel/exe/exec.c
lunaix-os/kernel/fs/iso9660/file.c
lunaix-os/kernel/fs/path_walk.c
lunaix-os/kernel/fs/twifs/twifs.c
lunaix-os/kernel/fs/twimap.c
lunaix-os/kernel/kinit.c
lunaix-os/kernel/mm/fault.c
lunaix-os/kernel/mm/mmap.c
lunaix-os/kernel/mm/procvm.c
lunaix-os/kernel/mm/region.c
lunaix-os/kernel/mm/vmap.c
lunaix-os/kernel/mm/vmm.c
lunaix-os/kernel/process/fork.c
lunaix-os/kernel/process/process.c
lunaix-os/kernel/process/sched.c
lunaix-os/kernel/process/signal.c
lunaix-os/kernel/process/thread.c
lunaix-os/kernel/spike.c
lunaix-os/live_debug.sh
lunaix-os/scripts/build-tools/integration/lunamenu.py
lunaix-os/scripts/makefile
lunaix-os/usr/test_pthread.c