Menuconfig Implementation and auto-qemu refactoring (#44)
authorLunaixsky <lunaixsky@qq.com>
Sun, 25 Aug 2024 00:55:17 +0000 (01:55 +0100)
committerGitHub <noreply@github.com>
Sun, 25 Aug 2024 00:55:17 +0000 (01:55 +0100)
commit50b4ecfb1b28e9b1dfc57b6a876fcdf938092152
tree793050baf4c539135b709d7e7b9a94f82f075c5d
parenta136ca38d83fae60994a54f5da88120e545895e1
Menuconfig Implementation and auto-qemu refactoring (#44)

* unify the chardev backend definitions

* add --dry option for dry-running
* allow supply extra raw qemu options

* implement ncurses based tui framework

* basic lunamenu framework built on top libtui

* (libtui) add scrollable, list, textbox
* (menu) add listview, dialogue

* interface LunaConfig into menuconfig

* remove flickering when new context being added and redrawn
* add ability to navigate, edit the config node
* adjust the layout parameters
* some refactors

* add help dialogue

* layout refinement
* add <BACKSPACE> as hot key to navigate up level
* add confirmation dialogue for exiting
* refactors

* add user friendly alias to LConfig terms

* fix the focusing problem with textbox

* bypass the configuration for user program generation

* bypass the showing of config view during usr program generation, use
  default value instead
* house keeping stuff

* add terminal dimension check and fallback to prompt based

* replenish the help messages
* fix: udiv64 is not used when doing u64 division
20 files changed:
lunaix-os/LConfig
lunaix-os/arch/LConfig
lunaix-os/arch/x86/LConfig
lunaix-os/hal/LConfig
lunaix-os/hal/ahci/LConfig
lunaix-os/hal/bus/LConfig
lunaix-os/hal/char/LConfig
lunaix-os/kernel/block/blkbuf.c
lunaix-os/kernel/fs/LConfig
lunaix-os/kernel/mm/LConfig
lunaix-os/makeinc/lunabuild.mkinc
lunaix-os/scripts/build-tools/integration/libmenu.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/libtui.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/integration/lunamenu.py [new file with mode: 0644]
lunaix-os/scripts/build-tools/lcfg/types.py
lunaix-os/scripts/build-tools/luna_build.py
lunaix-os/scripts/qemu.py
lunaix-os/scripts/qemus/qemu_x86_dev.json
lunaix-os/usr/LConfig
lunaix-os/usr/makefile