Decoupling Architectural-specific Code (#35)
authorLunaixsky <lunaixsky@qq.com>
Sat, 22 Jun 2024 14:16:00 +0000 (15:16 +0100)
committerGitHub <noreply@github.com>
Sat, 22 Jun 2024 14:16:00 +0000 (15:16 +0100)
commitd1b1c8d9119229dbeed06cd252917e54a1cb77f6
tree42005d18832f582e0869c54025a3a8909f3bfa21
parent6c506d8916fb114675e93d0e2cb20831d4022294
Decoupling Architectural-specific Code (#35)

* add headers for generic arch implementation

* restructure the arch-dependent file, better separation

* populate generic architecture for templating

* more cleaning and refactoring to keep things stay decoupled
* allow architectural specific code to override klib functions.

* merge lib/ into klibc for uniformity

* add x86 specific crc32 implementation, require SSE4 extension

* rename isr_param to more general hart_state

* isolate: direct reference of memeber inside hart_state

* isolate the hstate dumping part of trace.h.

* general clean up

* decouple gdbstub from architectual code.

* fix the trace_log missing component name
* add reg_t to shadow the explicit typed register value

* rename hart_change_execution to hart_flow_redirect
110 files changed:
lunaix-os/arch/README.md [new file with mode: 0644]
lunaix-os/arch/generic/arch.c [new file with mode: 0644]
lunaix-os/arch/generic/hart.c [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/abi.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/cpu.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/failsafe.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/gdbstub.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/hart.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/mm/memory.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/mm/mempart.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/mm/mm_defs.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/mm/physical.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/mm/tlb.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/muldiv64.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/pci_hba.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/port_io.h [new file with mode: 0644]
lunaix-os/arch/generic/includes/sys/trace.h [new file with mode: 0644]
lunaix-os/arch/generic/mm/fault.c [new file with mode: 0644]
lunaix-os/arch/generic/mm/mm.c [new file with mode: 0644]
lunaix-os/arch/i386/README [deleted file]
lunaix-os/arch/i386/arch.c
lunaix-os/arch/i386/exceptions/i386_isrm.c
lunaix-os/arch/i386/exceptions/interrupt.S
lunaix-os/arch/i386/exceptions/interrupts.c
lunaix-os/arch/i386/exceptions/intr_routines.c
lunaix-os/arch/i386/gdbstub.c [new file with mode: 0644]
lunaix-os/arch/i386/hal/apic.c
lunaix-os/arch/i386/hal/apic_timer.c [moved from lunaix-os/hal/timer/apic_timer.c with 95% similarity]
lunaix-os/arch/i386/hal/apic_timer.h [moved from lunaix-os/includes/hal/apic_timer.h with 100% similarity]
lunaix-os/arch/i386/hal/ioapic.c
lunaix-os/arch/i386/hal/mc146818a.c [moved from lunaix-os/hal/rtc/mc146818a.c with 95% similarity]
lunaix-os/arch/i386/hal/pci_hba.c [deleted file]
lunaix-os/arch/i386/hal/ps2kbd.c [moved from lunaix-os/hal/char/ps2kbd.c with 98% similarity]
lunaix-os/arch/i386/hal/rngx86.c [moved from lunaix-os/hal/rng/rngx86.c with 100% similarity]
lunaix-os/arch/i386/hal/x86_intc.c [deleted file]
lunaix-os/arch/i386/hart.c [moved from lunaix-os/arch/i386/pcontext.c with 65% similarity]
lunaix-os/arch/i386/includes/sys/abi.h
lunaix-os/arch/i386/includes/sys/apic.h
lunaix-os/arch/i386/includes/sys/cpu.h
lunaix-os/arch/i386/includes/sys/gdbstub.h [new file with mode: 0644]
lunaix-os/arch/i386/includes/sys/hart.h [new file with mode: 0644]
lunaix-os/arch/i386/includes/sys/interrupt.S.inc
lunaix-os/arch/i386/includes/sys/interrupts.h [deleted file]
lunaix-os/arch/i386/includes/sys/ioapic.h
lunaix-os/arch/i386/includes/sys/mm/memory.h
lunaix-os/arch/i386/includes/sys/mm/mempart.h
lunaix-os/arch/i386/includes/sys/mm/physical.h
lunaix-os/arch/i386/includes/sys/pci_hba.h
lunaix-os/arch/i386/includes/sys/vectors.h
lunaix-os/arch/i386/includes/sys/x86_isa.h
lunaix-os/arch/i386/klib/fast_crc.c [new file with mode: 0644]
lunaix-os/arch/i386/klib/fast_str.c [new file with mode: 0644]
lunaix-os/arch/i386/mm/fault.c
lunaix-os/arch/i386/mm/gdt.c
lunaix-os/arch/i386/syscall.S
lunaix-os/arch/i386/trace.c [new file with mode: 0644]
lunaix-os/hal/ahci/ahci.c
lunaix-os/hal/ahci/io_event.c
lunaix-os/hal/char/uart/16550_pmio.c
lunaix-os/hal/intc.c [deleted file]
lunaix-os/hal/pci.c
lunaix-os/hal/timer/timer_device.c
lunaix-os/includes/hal/ahci/ahci.h
lunaix-os/includes/hal/hwtimer.h
lunaix-os/includes/hal/intc.h [deleted file]
lunaix-os/includes/hal/pci.h
lunaix-os/includes/hal/rtc/mc146818a.h [deleted file]
lunaix-os/includes/klibc/crc.h [moved from lunaix-os/includes/lib/crc.h with 99% similarity]
lunaix-os/includes/klibc/hash.h [moved from lunaix-os/includes/lib/hash.h with 100% similarity]
lunaix-os/includes/klibc/ia_utils.h [new file with mode: 0644]
lunaix-os/includes/klibc/stdlib.h [deleted file]
lunaix-os/includes/lunaix/ds/hashtable.h
lunaix-os/includes/lunaix/ds/hstr.h
lunaix-os/includes/lunaix/generic/isrm.h [moved from lunaix-os/includes/lunaix/isrm.h with 73% similarity]
lunaix-os/includes/lunaix/generic/trace_arch.h [new file with mode: 0644]
lunaix-os/includes/lunaix/hart_state.h [moved from lunaix-os/includes/lunaix/pcontext.h with 53% similarity]
lunaix-os/includes/lunaix/mm/fault.h
lunaix-os/includes/lunaix/process.h
lunaix-os/includes/lunaix/signal.h
lunaix-os/includes/lunaix/timer.h
lunaix-os/includes/lunaix/trace.h
lunaix-os/includes/lunaix/types.h
lunaix-os/includes/sdbg/gdbstub.h
lunaix-os/includes/sdbg/lsdbg.h
lunaix-os/kernel/block/blkpart_gpt.c
lunaix-os/kernel/block/block.c
lunaix-os/kernel/debug/failsafe.c
lunaix-os/kernel/debug/gdbstub.c
lunaix-os/kernel/debug/sdbg.c [deleted file]
lunaix-os/kernel/debug/trace.c
lunaix-os/kernel/device/devdb.c
lunaix-os/kernel/exe/exec.c
lunaix-os/kernel/kinit.c
lunaix-os/kernel/mm/fault.c
lunaix-os/kernel/process/fork.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/kernel/time/timer.c
lunaix-os/libs/crc.c
lunaix-os/libs/hash.c
lunaix-os/libs/klibc/itoa.c [moved from lunaix-os/libs/klibc/stdlib/itoa.c with 94% similarity]
lunaix-os/libs/klibc/ksprintf.c
lunaix-os/libs/klibc/string/mem.c
lunaix-os/libs/klibc/string/strchr.c
lunaix-os/libs/klibc/string/strcmp.c
lunaix-os/libs/klibc/string/strcpy.c
lunaix-os/libs/klibc/string/strlen.c
lunaix-os/libs/klibc/string/trim.c