feat(panic): FUCK [panic] mode=strict|fallback + realtest image variant

- UTSM panic_full returns in fallback mode (logs [PANIC:FALLBACK] + code + hit
  count); panic_halt keeps always-halt sites (CPU exception, VMM-E11 LA57,
  VMM-E15 DSK jump, UTSM-E42 test hook). Call sites given safe continuations.
- Mode passed to DSK/FirstInit/login/desktop via DSK_BOOT_FLAG_PANIC_FALLBACK;
  DKM kernel_api.panic / kern.log.panic return to driver; ext4 fatal aborts the
  op via setjmp/longjmp and DSK falls back to FAT32 ESP.
- build.ps1/Makefile: dev=strict, release=fallback, new realtest (release
  options + strict); default -Variant all; serialized iso packing under -j.
- Fix '*/' inside comments (dkm.h, kernel_api.h, bus.c) that broke the build.
- Includes pending work: dkm_bus service bus, mt7920/wlan drivers, desktop
  files/startmenu/prank, pe-tools, diskinfo, docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Linehu
2026-10-12 23:57:19 +08:00
co-authored by Cursor
parent a7e5b2bc7a
commit 8554a82677
84 changed files with 7325 additions and 484 deletions
+12 -9
View File
@@ -3,25 +3,28 @@ setlocal enabledelayedexpansion
set "SCRIPT_DIR=%~dp0"
REM ===== Variant selection: dev / release =====
REM ===== Variant selection: dev / release / realtest =====
REM Priority: argument > QEMU_VARIANT env > interactive menu > default dev
REM Usage: run_qemu.bat [dev|release]
REM Usage: run_qemu.bat [dev|release|realtest]
set "VARIANT="
if not "%~1"=="" set "VARIANT=%~1"
if not defined VARIANT if defined QEMU_VARIANT set "VARIANT=%QEMU_VARIANT%"
if not defined VARIANT (
echo [qemu] Select image variant to boot:
echo 1. dev ^(deshab-dev.img, debug all on, auto test^)
echo 2. release ^(deshab-release.img, desktop + login^)
set /p CHOICE="Choice [1-2, Enter=dev]: "
echo 1. dev ^(deshab-dev.img, debug all on, auto test, panic=strict^)
echo 2. release ^(deshab-release.img, desktop + login, panic=fallback^)
echo 3. realtest ^(deshab-realtest.img, release options, panic=strict^)
set /p CHOICE="Choice [1-3, Enter=dev]: "
if "!CHOICE!"=="2" set "VARIANT=release"
if "!CHOICE!"=="3" set "VARIANT=realtest"
if not defined VARIANT set "VARIANT=dev"
)
REM Validate variant name (also accepts passing 1/2 as argument)
REM Validate variant name (also accepts passing 1/2/3 as argument)
if "%VARIANT%"=="1" set "VARIANT=dev"
if "%VARIANT%"=="2" set "VARIANT=release"
if not "%VARIANT%"=="dev" if not "%VARIANT%"=="release" (
echo [qemu] Unknown variant: %VARIANT% ^(expected dev / release^)
if "%VARIANT%"=="3" set "VARIANT=realtest"
if not "%VARIANT%"=="dev" if not "%VARIANT%"=="release" if not "%VARIANT%"=="realtest" (
echo [qemu] Unknown variant: %VARIANT% ^(expected dev / release / realtest^)
exit /b 1
)
@@ -31,7 +34,7 @@ set "NVME_IMG=%SCRIPT_DIR%..\.build_tmp\nvme_test.img"
if not exist "%IMG%" (
echo [qemu] Image not found: %IMG%
echo [qemu] Run ..\build.bat first -- default builds both dev and release.
echo [qemu] Run ..\build.bat first -- default builds dev, release and realtest.
echo [qemu] Or build selected only: build.bat -Variant %VARIANT%
exit /b 1
)