mtdbg: Fixed magic cmd flags
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 1m5s
Build system / Build (pull_request) Successful in 15m56s

Signed-off-by: Max Logaev <maxlogaev@proton.me>
This commit is contained in:
2026-01-11 02:30:38 +03:00
parent c580d4ac5b
commit 0f8d94ab2d
2 changed files with 74 additions and 56 deletions

View File

@@ -122,7 +122,13 @@ struc fpcvt
.sizeof: .sizeof:
} }
;-----------------------------------------------------------------------------
; Command flags
CMD_WITHOUT_PARAM = 1b ; command may be called without parameters
CMD_WITH_PARAM = 10b ; command may be called with parameters
CMD_WITHOUT_LOADED_APP = 100b ; command may be called without loaded program
CMD_WITH_LOADED_APP = 1000b ; command may be called with loaded program
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; Entry point ; Entry point
@@ -449,63 +455,56 @@ z1:
mov esi, commands mov esi, commands
call find_cmd call find_cmd
mov eax, aUnknownCommand mov eax, aUnknownCommand
jc .x11 jc .cmd_procg
; check command requirements
; flags field:
; &1: command may be called without parameters
; &2: command may be called with parameters
; &4: command may be called without loaded program
; &8: command may be called with loaded program
mov eax, [esi+8] mov eax, [esi+8]
mov ecx, [curarg] mov ecx, [curarg]
cmp byte [ecx], 0 cmp byte [ecx], 0
jz .noargs jz .noargs
test byte [esi+16], 2 test byte [esi+16], CMD_WITH_PARAM
jz .x11 jz .cmd_procg
jmp @f jmp @f
.noargs: .noargs:
test byte [esi+16], 1 test byte [esi+16], CMD_WITHOUT_PARAM
jz .x11 jz .cmd_procg
@@: @@:
cmp [debuggee_pid], 0 cmp [debuggee_pid], 0
jz .nodebuggee jz .nodebuggee
mov eax, aAlreadyLoaded mov eax, aAlreadyLoaded
test byte [esi+16], 8 test byte [esi+16], CMD_WITH_LOADED_APP
jz .x11 jz .cmd_procg
jmp .x9 jmp .run_cmd
.nodebuggee: .nodebuggee:
mov eax, need_debuggee mov eax, need_debuggee
test byte [esi+16], 4 test byte [esi+16], CMD_WITHOUT_LOADED_APP
jnz .x9 jnz .run_cmd
.x11: .cmd_procg:
xchg esi, eax xchg esi, eax
call put_message call put_message
; store cmdline for repeating ; store cmdline for repeating
.x10: .cmd_procg_no_put_msg:
mov esi, cmdline mov esi, cmdline
mov ecx, [cmdline_len] mov ecx, [cmdline_len]
@@: @@:
cmp ecx, 0 cmp ecx, 0
jle .we jle .wait_event
mov al, [esi + ecx] mov al, [esi + ecx]
mov [cmdline_prev + ecx], al mov [cmdline_prev + ecx], al
dec ecx dec ecx
jmp @b jmp @b
.we: .wait_event:
mov [cmdline_len], 0 mov [cmdline_len], 0
jmp waitevent jmp waitevent
.x9: .run_cmd:
call dword [esi+4] call dword [esi+4]
jmp .x10 jmp .cmd_procg_no_put_msg
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; Cmdline handling ; Cmdline handling

View File

@@ -1880,66 +1880,85 @@ help_groups:
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; Commands format definitions ; Commands format definitions
; TODO: make it with macros
; flags field:
; &1: command may be called without parameters
; &2: command may be called with parameters
; &4: command may be called without loaded program
; &8: command may be called with loaded program
commands: commands:
dd _aH, OnHelp, HelpSyntax, HelpHelp dd _aH, OnHelp, HelpSyntax, HelpHelp
db 0Fh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
dd aHelp, OnHelp, HelpSyntax, HelpHelp dd aHelp, OnHelp, HelpSyntax, HelpHelp
db 0Fh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
dd aQuit, OnQuit, QuitSyntax, QuitHelp dd aQuit, OnQuit, QuitSyntax, QuitHelp
db 0Dh db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
dd aLoad, OnLoad, LoadSyntax, LoadHelp dd aLoad, OnLoad, LoadSyntax, LoadHelp
db 6 db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP
dd aReload, OnReload, ReloadSyntax, ReloadHelp dd aReload, OnReload, ReloadSyntax, ReloadHelp
db 0Dh db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
dd aTerminate, OnTerminate, TerminateSyntax, TerminateHelp dd aTerminate, OnTerminate, TerminateSyntax, TerminateHelp
db 9 db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
dd aDetach, OnDetach, DetachSyntax, DetachHelp dd aDetach, OnDetach, DetachSyntax, DetachHelp
db 9 db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp
db 9 db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
dd aResume, OnResume, ResumeSyntax, ResumeHelp dd aResume, OnResume, ResumeSyntax, ResumeHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aStep, OnStepMultiple, StepSyntax, StepHelp dd aStep, OnStepMultiple, StepSyntax, StepHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aProceed, OnProceedMultiple, ProceedSyntax, ProceedHelp dd aProceed, OnProceedMultiple, ProceedSyntax, ProceedHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aCalc, OnCalc, CalcSyntax, CalcHelp dd aCalc, OnCalc, CalcSyntax, CalcHelp
db 0Eh db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
dd aDump, OnDump, DumpSyntax, DumpHelp dd aDump, OnDump, DumpSyntax, DumpHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aUnassemble, OnUnassemble, UnassembleSyntax, UnassembleHelp dd aUnassemble, OnUnassemble, UnassembleSyntax, UnassembleHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBp, OnBp, BpSyntax, BpHelp dd aBp, OnBp, BpSyntax, BpHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBpm, OnBpmb, BpmSyntax, BpmHelp dd aBpm, OnBpmb, BpmSyntax, BpmHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBpmb, OnBpmb, BpmSyntax, BpmHelp dd aBpmb, OnBpmb, BpmSyntax, BpmHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBpmw, OnBpmw, BpmSyntax, BpmHelp dd aBpmw, OnBpmw, BpmSyntax, BpmHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBpmd, OnBpmd, BpmSyntax, BpmHelp dd aBpmd, OnBpmd, BpmSyntax, BpmHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBl, OnBl, BlSyntax, BlHelp dd aBl, OnBl, BlSyntax, BlHelp
db 0Bh db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBc, OnBc, BcSyntax, BcHelp dd aBc, OnBc, BcSyntax, BcHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBd, OnBd, BdSyntax, BdHelp dd aBd, OnBd, BdSyntax, BdHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aBe, OnBe, BeSyntax, BeHelp dd aBe, OnBe, BeSyntax, BeHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aReg, OnReg, RSyntax, RHelp dd aReg, OnReg, RSyntax, RHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp
db 9 db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp
db 0Ah db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
dd 0 dd 0
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------