Skip to content

Commit e4f291b

Browse files
b49020Daniel Thompson
authored andcommitted
kdb: Simplify kdb commands registration
Simplify kdb commands registration via using linked list instead of static array for commands storage. Signed-off-by: Sumit Garg <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Douglas Anderson <[email protected]> [[email protected]: Removed a bunch of .cmd_minline = 0 initializers] Signed-off-by: Daniel Thompson <[email protected]>
1 parent d027fdc commit e4f291b

File tree

3 files changed

+311
-213
lines changed

3 files changed

+311
-213
lines changed

kernel/debug/kdb/kdb_bp.c

Lines changed: 50 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,54 @@ static int kdb_ss(int argc, const char **argv)
522522
return KDB_CMD_SS;
523523
}
524524

525+
static kdbtab_t bptab[] = {
526+
{ .cmd_name = "bp",
527+
.cmd_func = kdb_bp,
528+
.cmd_usage = "[<vaddr>]",
529+
.cmd_help = "Set/Display breakpoints",
530+
.cmd_flags = KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS,
531+
},
532+
{ .cmd_name = "bl",
533+
.cmd_func = kdb_bp,
534+
.cmd_usage = "[<vaddr>]",
535+
.cmd_help = "Display breakpoints",
536+
.cmd_flags = KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS,
537+
},
538+
{ .cmd_name = "bc",
539+
.cmd_func = kdb_bc,
540+
.cmd_usage = "<bpnum>",
541+
.cmd_help = "Clear Breakpoint",
542+
.cmd_flags = KDB_ENABLE_FLOW_CTRL,
543+
},
544+
{ .cmd_name = "be",
545+
.cmd_func = kdb_bc,
546+
.cmd_usage = "<bpnum>",
547+
.cmd_help = "Enable Breakpoint",
548+
.cmd_flags = KDB_ENABLE_FLOW_CTRL,
549+
},
550+
{ .cmd_name = "bd",
551+
.cmd_func = kdb_bc,
552+
.cmd_usage = "<bpnum>",
553+
.cmd_help = "Disable Breakpoint",
554+
.cmd_flags = KDB_ENABLE_FLOW_CTRL,
555+
},
556+
{ .cmd_name = "ss",
557+
.cmd_func = kdb_ss,
558+
.cmd_usage = "",
559+
.cmd_help = "Single Step",
560+
.cmd_minlen = 1,
561+
.cmd_flags = KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS,
562+
},
563+
};
564+
565+
static kdbtab_t bphcmd = {
566+
.cmd_name = "bph",
567+
.cmd_func = kdb_bp,
568+
.cmd_usage = "[<vaddr>]",
569+
.cmd_help = "[datar [length]|dataw [length]] Set hw brk",
570+
.cmd_flags = KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS,
571+
};
572+
525573
/* Initialize the breakpoint table and register breakpoint commands. */
526574

527575
void __init kdb_initbptab(void)
@@ -537,30 +585,7 @@ void __init kdb_initbptab(void)
537585
for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++)
538586
bp->bp_free = 1;
539587

540-
kdb_register_flags("bp", kdb_bp, "[<vaddr>]",
541-
"Set/Display breakpoints", 0,
542-
KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS);
543-
kdb_register_flags("bl", kdb_bp, "[<vaddr>]",
544-
"Display breakpoints", 0,
545-
KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS);
588+
kdb_register_table(bptab, ARRAY_SIZE(bptab));
546589
if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT)
547-
kdb_register_flags("bph", kdb_bp, "[<vaddr>]",
548-
"[datar [length]|dataw [length]] Set hw brk", 0,
549-
KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS);
550-
kdb_register_flags("bc", kdb_bc, "<bpnum>",
551-
"Clear Breakpoint", 0,
552-
KDB_ENABLE_FLOW_CTRL);
553-
kdb_register_flags("be", kdb_bc, "<bpnum>",
554-
"Enable Breakpoint", 0,
555-
KDB_ENABLE_FLOW_CTRL);
556-
kdb_register_flags("bd", kdb_bc, "<bpnum>",
557-
"Disable Breakpoint", 0,
558-
KDB_ENABLE_FLOW_CTRL);
559-
560-
kdb_register_flags("ss", kdb_ss, "",
561-
"Single Step", 1,
562-
KDB_ENABLE_FLOW_CTRL | KDB_REPEAT_NO_ARGS);
563-
/*
564-
* Architecture dependent initialization.
565-
*/
590+
kdb_register_table(&bphcmd, 1);
566591
}

0 commit comments

Comments
 (0)