The branch main has been updated by mhorne:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=8a0994823365740f4d92842c2d6f7f524310ba64

commit 8a0994823365740f4d92842c2d6f7f524310ba64
Author:     Mitchell Horne <[email protected]>
AuthorDate: 2022-07-05 14:45:47 +0000
Commit:     Mitchell Horne <[email protected]>
CommitDate: 2022-07-05 14:51:31 +0000

    db_command.c: use designated initializers
    
    Provide separate helper macros for regular commands and next-level table
    commands as they are mutually exclusive. This ensures proper
    initialization of each element and allows us to exclude some redundant
    fields, such as specifying .more = NULL for every regular command.
    
    Reviewed by:    markj, jhb
    MFC after:      3 days
    Sponsored by:   Juniper Networks, Inc.
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D35580
---
 sys/ddb/db_command.c | 127 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 70 insertions(+), 57 deletions(-)

diff --git a/sys/ddb/db_command.c b/sys/ddb/db_command.c
index e0183e11ab93..e6de6cd716e2 100644
--- a/sys/ddb/db_command.c
+++ b/sys/ddb/db_command.c
@@ -79,84 +79,97 @@ static db_cmdfcn_t  db_stack_trace_active;
 static db_cmdfcn_t     db_stack_trace_all;
 static db_cmdfcn_t     db_watchdog;
 
-/*
- * 'show' commands
- */
+#define        DB_CMD(_name, _func, _flags)    \
+{                                      \
+       .name = (_name),                \
+       .fcn =  (_func),                \
+       .flag = (_flags),               \
+       .more = NULL,                   \
+}
+#define        DB_TABLE(_name, _more)          \
+{                                      \
+       .name = (_name),                \
+       .fcn =  NULL,                   \
+       .more = (_more),                \
+}
 
 static struct db_command db_show_active_cmds[] = {
-       { "trace",      db_stack_trace_active,  0,      NULL },
+       DB_CMD("trace",         db_stack_trace_active,  0),
 };
 struct db_command_table db_show_active_table =
     LIST_HEAD_INITIALIZER(db_show_active_table);
 
 static struct db_command db_show_all_cmds[] = {
-       { "trace",      db_stack_trace_all,     0,      NULL },
+       DB_CMD("trace",         db_stack_trace_all,     0),
 };
 struct db_command_table db_show_all_table =
     LIST_HEAD_INITIALIZER(db_show_all_table);
 
 static struct db_command db_show_cmds[] = {
-       { "active",     0,                      0,      &db_show_active_table },
-       { "all",        0,                      0,      &db_show_all_table },
-       { "registers",  db_show_regs,           0,      NULL },
-       { "breaks",     db_listbreak_cmd,       0,      NULL },
-       { "threads",    db_show_threads,        0,      NULL },
+       DB_TABLE("active",      &db_show_active_table),
+       DB_TABLE("all",         &db_show_all_table),
+       DB_CMD("registers",     db_show_regs,           0),
+       DB_CMD("breaks",        db_listbreak_cmd,       0),
+       DB_CMD("threads",       db_show_threads,        0),
 };
 struct db_command_table db_show_table = LIST_HEAD_INITIALIZER(db_show_table);
 
 static struct db_command db_cmds[] = {
-       { "print",      db_print_cmd,           0,      NULL },
-       { "p",          db_print_cmd,           0,      NULL },
-       { "examine",    db_examine_cmd,         CS_SET_DOT, NULL },
-       { "x",          db_examine_cmd,         CS_SET_DOT, NULL },
-       { "search",     db_search_cmd,          CS_OWN|CS_SET_DOT, NULL },
-       { "set",        db_set_cmd,             CS_OWN, NULL },
-       { "write",      db_write_cmd,           CS_MORE|CS_SET_DOT, NULL },
-       { "w",          db_write_cmd,           CS_MORE|CS_SET_DOT, NULL },
-       { "delete",     db_delete_cmd,          0,      NULL },
-       { "d",          db_delete_cmd,          0,      NULL },
-       { "dump",       db_dump,                0,      NULL },
-       { "break",      db_breakpoint_cmd,      0,      NULL },
-       { "b",          db_breakpoint_cmd,      0,      NULL },
-       { "dwatch",     db_deletewatch_cmd,     0,      NULL },
-       { "watch",      db_watchpoint_cmd,      CS_MORE,NULL },
-       { "dhwatch",    db_deletehwatch_cmd,    0,      NULL },
-       { "hwatch",     db_hwatchpoint_cmd,     0,      NULL },
-       { "step",       db_single_step_cmd,     0,      NULL },
-       { "s",          db_single_step_cmd,     0,      NULL },
-       { "continue",   db_continue_cmd,        0,      NULL },
-       { "c",          db_continue_cmd,        0,      NULL },
-       { "until",      db_trace_until_call_cmd,0,      NULL },
-       { "next",       db_trace_until_matching_cmd,0,  NULL },
-       { "match",      db_trace_until_matching_cmd,0,  NULL },
-       { "trace",      db_stack_trace,         CS_OWN, NULL },
-       { "t",          db_stack_trace,         CS_OWN, NULL },
+       DB_TABLE("show",        &db_show_table),
+       DB_CMD("print",         db_print_cmd,           0),
+       DB_CMD("p",             db_print_cmd,           0),
+       DB_CMD("examine",       db_examine_cmd,         CS_SET_DOT),
+       DB_CMD("x",             db_examine_cmd,         CS_SET_DOT),
+       DB_CMD("search",        db_search_cmd,          CS_OWN|CS_SET_DOT),
+       DB_CMD("set",           db_set_cmd,             CS_OWN),
+       DB_CMD("write",         db_write_cmd,           CS_MORE|CS_SET_DOT),
+       DB_CMD("w",             db_write_cmd,           CS_MORE|CS_SET_DOT),
+       DB_CMD("delete",        db_delete_cmd,          0),
+       DB_CMD("d",             db_delete_cmd,          0),
+       DB_CMD("dump",          db_dump,                0),
+       DB_CMD("break",         db_breakpoint_cmd,      0),
+       DB_CMD("b",             db_breakpoint_cmd,      0),
+       DB_CMD("dwatch",        db_deletewatch_cmd,     0),
+       DB_CMD("watch",         db_watchpoint_cmd,      CS_MORE),
+       DB_CMD("dhwatch",       db_deletehwatch_cmd,    0),
+       DB_CMD("hwatch",        db_hwatchpoint_cmd,     0),
+       DB_CMD("step",          db_single_step_cmd,     0),
+       DB_CMD("s",             db_single_step_cmd,     0),
+       DB_CMD("continue",      db_continue_cmd,        0),
+       DB_CMD("c",             db_continue_cmd,        0),
+       DB_CMD("until",         db_trace_until_call_cmd, 0),
+       DB_CMD("next",          db_trace_until_matching_cmd, 0),
+       DB_CMD("match",         db_trace_until_matching_cmd, 0),
+       DB_CMD("trace",         db_stack_trace,         CS_OWN),
+       DB_CMD("t",             db_stack_trace,         CS_OWN),
        /* XXX alias for active trace */
-       { "acttrace",   db_stack_trace_active,  0,      NULL },
+       DB_CMD("acttrace",      db_stack_trace_active,  0),
        /* XXX alias for all trace */
-       { "alltrace",   db_stack_trace_all,     0,      NULL },
-       { "where",      db_stack_trace,         CS_OWN, NULL },
-       { "bt",         db_stack_trace,         CS_OWN, NULL },
-       { "call",       db_fncall,              CS_OWN, NULL },
-       { "show",       0,                      0,      &db_show_table },
-       { "ps",         db_ps,                  0,      NULL },
-       { "gdb",        db_gdb,                 0,      NULL },
-       { "halt",       db_halt,                0,      NULL },
-       { "reboot",     db_reset,               0,      NULL },
-       { "reset",      db_reset,               0,      NULL },
-       { "kill",       db_kill,                CS_OWN, NULL },
-       { "watchdog",   db_watchdog,            CS_OWN, NULL },
-       { "thread",     db_set_thread,          0,      NULL },
-       { "run",        db_run_cmd,             CS_OWN, NULL },
-       { "script",     db_script_cmd,          CS_OWN, NULL },
-       { "scripts",    db_scripts_cmd,         0,      NULL },
-       { "unscript",   db_unscript_cmd,        CS_OWN, NULL },
-       { "capture",    db_capture_cmd,         CS_OWN, NULL },
-       { "textdump",   db_textdump_cmd,        CS_OWN, NULL },
-       { "findstack",  db_findstack_cmd,       0,      NULL },
+       DB_CMD("alltrace",      db_stack_trace_all,     0),
+       DB_CMD("where",         db_stack_trace,         CS_OWN),
+       DB_CMD("bt",            db_stack_trace,         CS_OWN),
+       DB_CMD("call",          db_fncall,              CS_OWN),
+       DB_CMD("ps",            db_ps,                  0),
+       DB_CMD("gdb",           db_gdb,                 0),
+       DB_CMD("halt",          db_halt,                0),
+       DB_CMD("reboot",        db_reset,               0),
+       DB_CMD("reset",         db_reset,               0),
+       DB_CMD("kill",          db_kill,                CS_OWN),
+       DB_CMD("watchdog",      db_watchdog,            CS_OWN),
+       DB_CMD("thread",        db_set_thread,          0),
+       DB_CMD("run",           db_run_cmd,             CS_OWN),
+       DB_CMD("script",        db_script_cmd,          CS_OWN),
+       DB_CMD("scripts",       db_scripts_cmd,         0),
+       DB_CMD("unscript",      db_unscript_cmd,        CS_OWN),
+       DB_CMD("capture",       db_capture_cmd,         CS_OWN),
+       DB_CMD("textdump",      db_textdump_cmd,        CS_OWN),
+       DB_CMD("findstack",     db_findstack_cmd,       0),
 };
 struct db_command_table db_cmd_table = LIST_HEAD_INITIALIZER(db_cmd_table);
 
+#undef DB_CMD
+#undef DB_TABLE
+
 static struct db_command *db_last_command = NULL;
 
 /*

Reply via email to