diff options
-rw-r--r-- | include/linux/kdb.h | 10 | ||||
-rw-r--r-- | kernel/debug/kdb/kdb_bp.c | 14 | ||||
-rw-r--r-- | kernel/debug/kdb/kdb_main.c | 86 | ||||
-rw-r--r-- | kernel/trace/trace_kdb.c | 2 |
4 files changed, 56 insertions, 56 deletions
diff --git a/include/linux/kdb.h b/include/linux/kdb.h index e650f79aa414..32d2f407981d 100644 --- a/include/linux/kdb.h +++ b/include/linux/kdb.h | |||
@@ -146,17 +146,17 @@ static inline const char *kdb_walk_kallsyms(loff_t *pos) | |||
146 | 146 | ||
147 | /* Dynamic kdb shell command registration */ | 147 | /* Dynamic kdb shell command registration */ |
148 | extern int kdb_register(char *, kdb_func_t, char *, char *, short); | 148 | extern int kdb_register(char *, kdb_func_t, char *, char *, short); |
149 | extern int kdb_register_repeat(char *, kdb_func_t, char *, char *, | 149 | extern int kdb_register_flags(char *, kdb_func_t, char *, char *, |
150 | short, kdb_cmdflags_t); | 150 | short, kdb_cmdflags_t); |
151 | extern int kdb_unregister(char *); | 151 | extern int kdb_unregister(char *); |
152 | #else /* ! CONFIG_KGDB_KDB */ | 152 | #else /* ! CONFIG_KGDB_KDB */ |
153 | static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } | 153 | static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } |
154 | static inline void kdb_init(int level) {} | 154 | static inline void kdb_init(int level) {} |
155 | static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, | 155 | static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, |
156 | char *help, short minlen) { return 0; } | 156 | char *help, short minlen) { return 0; } |
157 | static inline int kdb_register_repeat(char *cmd, kdb_func_t func, char *usage, | 157 | static inline int kdb_register_flags(char *cmd, kdb_func_t func, char *usage, |
158 | char *help, short minlen, | 158 | char *help, short minlen, |
159 | kdb_cmdflags_t flags) { return 0; } | 159 | kdb_cmdflags_t flags) { return 0; } |
160 | static inline int kdb_unregister(char *cmd) { return 0; } | 160 | static inline int kdb_unregister(char *cmd) { return 0; } |
161 | #endif /* CONFIG_KGDB_KDB */ | 161 | #endif /* CONFIG_KGDB_KDB */ |
162 | enum { | 162 | enum { |
diff --git a/kernel/debug/kdb/kdb_bp.c b/kernel/debug/kdb/kdb_bp.c index b20d544f20c2..59536661c7b9 100644 --- a/kernel/debug/kdb/kdb_bp.c +++ b/kernel/debug/kdb/kdb_bp.c | |||
@@ -531,21 +531,21 @@ void __init kdb_initbptab(void) | |||
531 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) | 531 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) |
532 | bp->bp_free = 1; | 532 | bp->bp_free = 1; |
533 | 533 | ||
534 | kdb_register_repeat("bp", kdb_bp, "[<vaddr>]", | 534 | kdb_register_flags("bp", kdb_bp, "[<vaddr>]", |
535 | "Set/Display breakpoints", 0, KDB_REPEAT_NO_ARGS); | 535 | "Set/Display breakpoints", 0, KDB_REPEAT_NO_ARGS); |
536 | kdb_register_repeat("bl", kdb_bp, "[<vaddr>]", | 536 | kdb_register_flags("bl", kdb_bp, "[<vaddr>]", |
537 | "Display breakpoints", 0, KDB_REPEAT_NO_ARGS); | 537 | "Display breakpoints", 0, KDB_REPEAT_NO_ARGS); |
538 | if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) | 538 | if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) |
539 | kdb_register_repeat("bph", kdb_bp, "[<vaddr>]", | 539 | kdb_register_flags("bph", kdb_bp, "[<vaddr>]", |
540 | "[datar [length]|dataw [length]] Set hw brk", 0, KDB_REPEAT_NO_ARGS); | 540 | "[datar [length]|dataw [length]] Set hw brk", 0, KDB_REPEAT_NO_ARGS); |
541 | kdb_register_repeat("bc", kdb_bc, "<bpnum>", | 541 | kdb_register_flags("bc", kdb_bc, "<bpnum>", |
542 | "Clear Breakpoint", 0, KDB_REPEAT_NONE); | 542 | "Clear Breakpoint", 0, KDB_REPEAT_NONE); |
543 | kdb_register_repeat("be", kdb_bc, "<bpnum>", | 543 | kdb_register_flags("be", kdb_bc, "<bpnum>", |
544 | "Enable Breakpoint", 0, KDB_REPEAT_NONE); | 544 | "Enable Breakpoint", 0, KDB_REPEAT_NONE); |
545 | kdb_register_repeat("bd", kdb_bc, "<bpnum>", | 545 | kdb_register_flags("bd", kdb_bc, "<bpnum>", |
546 | "Disable Breakpoint", 0, KDB_REPEAT_NONE); | 546 | "Disable Breakpoint", 0, KDB_REPEAT_NONE); |
547 | 547 | ||
548 | kdb_register_repeat("ss", kdb_ss, "", | 548 | kdb_register_flags("ss", kdb_ss, "", |
549 | "Single Step", 1, KDB_REPEAT_NO_ARGS); | 549 | "Single Step", 1, KDB_REPEAT_NO_ARGS); |
550 | /* | 550 | /* |
551 | * Architecture dependent initialization. | 551 | * Architecture dependent initialization. |
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c index 41966b5f86b7..070f1ff358d2 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c | |||
@@ -2629,7 +2629,7 @@ static int kdb_grep_help(int argc, const char **argv) | |||
2629 | } | 2629 | } |
2630 | 2630 | ||
2631 | /* | 2631 | /* |
2632 | * kdb_register_repeat - This function is used to register a kernel | 2632 | * kdb_register_flags - This function is used to register a kernel |
2633 | * debugger command. | 2633 | * debugger command. |
2634 | * Inputs: | 2634 | * Inputs: |
2635 | * cmd Command name | 2635 | * cmd Command name |
@@ -2641,12 +2641,12 @@ static int kdb_grep_help(int argc, const char **argv) | |||
2641 | * zero for success, one if a duplicate command. | 2641 | * zero for success, one if a duplicate command. |
2642 | */ | 2642 | */ |
2643 | #define kdb_command_extend 50 /* arbitrary */ | 2643 | #define kdb_command_extend 50 /* arbitrary */ |
2644 | int kdb_register_repeat(char *cmd, | 2644 | int kdb_register_flags(char *cmd, |
2645 | kdb_func_t func, | 2645 | kdb_func_t func, |
2646 | char *usage, | 2646 | char *usage, |
2647 | char *help, | 2647 | char *help, |
2648 | short minlen, | 2648 | short minlen, |
2649 | kdb_cmdflags_t flags) | 2649 | kdb_cmdflags_t flags) |
2650 | { | 2650 | { |
2651 | int i; | 2651 | int i; |
2652 | kdbtab_t *kp; | 2652 | kdbtab_t *kp; |
@@ -2699,13 +2699,13 @@ int kdb_register_repeat(char *cmd, | |||
2699 | 2699 | ||
2700 | return 0; | 2700 | return 0; |
2701 | } | 2701 | } |
2702 | EXPORT_SYMBOL_GPL(kdb_register_repeat); | 2702 | EXPORT_SYMBOL_GPL(kdb_register_flags); |
2703 | 2703 | ||
2704 | 2704 | ||
2705 | /* | 2705 | /* |
2706 | * kdb_register - Compatibility register function for commands that do | 2706 | * kdb_register - Compatibility register function for commands that do |
2707 | * not need to specify a repeat state. Equivalent to | 2707 | * not need to specify a repeat state. Equivalent to |
2708 | * kdb_register_repeat with KDB_REPEAT_NONE. | 2708 | * kdb_register_flags with KDB_REPEAT_NONE. |
2709 | * Inputs: | 2709 | * Inputs: |
2710 | * cmd Command name | 2710 | * cmd Command name |
2711 | * func Function to execute the command | 2711 | * func Function to execute the command |
@@ -2720,8 +2720,8 @@ int kdb_register(char *cmd, | |||
2720 | char *help, | 2720 | char *help, |
2721 | short minlen) | 2721 | short minlen) |
2722 | { | 2722 | { |
2723 | return kdb_register_repeat(cmd, func, usage, help, minlen, | 2723 | return kdb_register_flags(cmd, func, usage, help, minlen, |
2724 | KDB_REPEAT_NONE); | 2724 | KDB_REPEAT_NONE); |
2725 | } | 2725 | } |
2726 | EXPORT_SYMBOL_GPL(kdb_register); | 2726 | EXPORT_SYMBOL_GPL(kdb_register); |
2727 | 2727 | ||
@@ -2763,79 +2763,79 @@ static void __init kdb_inittab(void) | |||
2763 | for_each_kdbcmd(kp, i) | 2763 | for_each_kdbcmd(kp, i) |
2764 | kp->cmd_name = NULL; | 2764 | kp->cmd_name = NULL; |
2765 | 2765 | ||
2766 | kdb_register_repeat("md", kdb_md, "<vaddr>", | 2766 | kdb_register_flags("md", kdb_md, "<vaddr>", |
2767 | "Display Memory Contents, also mdWcN, e.g. md8c1", 1, | 2767 | "Display Memory Contents, also mdWcN, e.g. md8c1", 1, |
2768 | KDB_REPEAT_NO_ARGS); | 2768 | KDB_REPEAT_NO_ARGS); |
2769 | kdb_register_repeat("mdr", kdb_md, "<vaddr> <bytes>", | 2769 | kdb_register_flags("mdr", kdb_md, "<vaddr> <bytes>", |
2770 | "Display Raw Memory", 0, KDB_REPEAT_NO_ARGS); | 2770 | "Display Raw Memory", 0, KDB_REPEAT_NO_ARGS); |
2771 | kdb_register_repeat("mdp", kdb_md, "<paddr> <bytes>", | 2771 | kdb_register_flags("mdp", kdb_md, "<paddr> <bytes>", |
2772 | "Display Physical Memory", 0, KDB_REPEAT_NO_ARGS); | 2772 | "Display Physical Memory", 0, KDB_REPEAT_NO_ARGS); |
2773 | kdb_register_repeat("mds", kdb_md, "<vaddr>", | 2773 | kdb_register_flags("mds", kdb_md, "<vaddr>", |
2774 | "Display Memory Symbolically", 0, KDB_REPEAT_NO_ARGS); | 2774 | "Display Memory Symbolically", 0, KDB_REPEAT_NO_ARGS); |
2775 | kdb_register_repeat("mm", kdb_mm, "<vaddr> <contents>", | 2775 | kdb_register_flags("mm", kdb_mm, "<vaddr> <contents>", |
2776 | "Modify Memory Contents", 0, KDB_REPEAT_NO_ARGS); | 2776 | "Modify Memory Contents", 0, KDB_REPEAT_NO_ARGS); |
2777 | kdb_register_repeat("go", kdb_go, "[<vaddr>]", | 2777 | kdb_register_flags("go", kdb_go, "[<vaddr>]", |
2778 | "Continue Execution", 1, KDB_REPEAT_NONE); | 2778 | "Continue Execution", 1, KDB_REPEAT_NONE); |
2779 | kdb_register_repeat("rd", kdb_rd, "", | 2779 | kdb_register_flags("rd", kdb_rd, "", |
2780 | "Display Registers", 0, KDB_REPEAT_NONE); | 2780 | "Display Registers", 0, KDB_REPEAT_NONE); |
2781 | kdb_register_repeat("rm", kdb_rm, "<reg> <contents>", | 2781 | kdb_register_flags("rm", kdb_rm, "<reg> <contents>", |
2782 | "Modify Registers", 0, KDB_REPEAT_NONE); | 2782 | "Modify Registers", 0, KDB_REPEAT_NONE); |
2783 | kdb_register_repeat("ef", kdb_ef, "<vaddr>", | 2783 | kdb_register_flags("ef", kdb_ef, "<vaddr>", |
2784 | "Display exception frame", 0, KDB_REPEAT_NONE); | 2784 | "Display exception frame", 0, KDB_REPEAT_NONE); |
2785 | kdb_register_repeat("bt", kdb_bt, "[<vaddr>]", | 2785 | kdb_register_flags("bt", kdb_bt, "[<vaddr>]", |
2786 | "Stack traceback", 1, KDB_REPEAT_NONE); | 2786 | "Stack traceback", 1, KDB_REPEAT_NONE); |
2787 | kdb_register_repeat("btp", kdb_bt, "<pid>", | 2787 | kdb_register_flags("btp", kdb_bt, "<pid>", |
2788 | "Display stack for process <pid>", 0, KDB_REPEAT_NONE); | 2788 | "Display stack for process <pid>", 0, KDB_REPEAT_NONE); |
2789 | kdb_register_repeat("bta", kdb_bt, "[D|R|S|T|C|Z|E|U|I|M|A]", | 2789 | kdb_register_flags("bta", kdb_bt, "[D|R|S|T|C|Z|E|U|I|M|A]", |
2790 | "Backtrace all processes matching state flag", 0, KDB_REPEAT_NONE); | 2790 | "Backtrace all processes matching state flag", 0, KDB_REPEAT_NONE); |
2791 | kdb_register_repeat("btc", kdb_bt, "", | 2791 | kdb_register_flags("btc", kdb_bt, "", |
2792 | "Backtrace current process on each cpu", 0, KDB_REPEAT_NONE); | 2792 | "Backtrace current process on each cpu", 0, KDB_REPEAT_NONE); |
2793 | kdb_register_repeat("btt", kdb_bt, "<vaddr>", | 2793 | kdb_register_flags("btt", kdb_bt, "<vaddr>", |
2794 | "Backtrace process given its struct task address", 0, | 2794 | "Backtrace process given its struct task address", 0, |
2795 | KDB_REPEAT_NONE); | 2795 | KDB_REPEAT_NONE); |
2796 | kdb_register_repeat("env", kdb_env, "", | 2796 | kdb_register_flags("env", kdb_env, "", |
2797 | "Show environment variables", 0, KDB_REPEAT_NONE); | 2797 | "Show environment variables", 0, KDB_REPEAT_NONE); |
2798 | kdb_register_repeat("set", kdb_set, "", | 2798 | kdb_register_flags("set", kdb_set, "", |
2799 | "Set environment variables", 0, KDB_REPEAT_NONE); | 2799 | "Set environment variables", 0, KDB_REPEAT_NONE); |
2800 | kdb_register_repeat("help", kdb_help, "", | 2800 | kdb_register_flags("help", kdb_help, "", |
2801 | "Display Help Message", 1, KDB_REPEAT_NONE); | 2801 | "Display Help Message", 1, KDB_REPEAT_NONE); |
2802 | kdb_register_repeat("?", kdb_help, "", | 2802 | kdb_register_flags("?", kdb_help, "", |
2803 | "Display Help Message", 0, KDB_REPEAT_NONE); | 2803 | "Display Help Message", 0, KDB_REPEAT_NONE); |
2804 | kdb_register_repeat("cpu", kdb_cpu, "<cpunum>", | 2804 | kdb_register_flags("cpu", kdb_cpu, "<cpunum>", |
2805 | "Switch to new cpu", 0, KDB_REPEAT_NONE); | 2805 | "Switch to new cpu", 0, KDB_REPEAT_NONE); |
2806 | kdb_register_repeat("kgdb", kdb_kgdb, "", | 2806 | kdb_register_flags("kgdb", kdb_kgdb, "", |
2807 | "Enter kgdb mode", 0, KDB_REPEAT_NONE); | 2807 | "Enter kgdb mode", 0, KDB_REPEAT_NONE); |
2808 | kdb_register_repeat("ps", kdb_ps, "[<flags>|A]", | 2808 | kdb_register_flags("ps", kdb_ps, "[<flags>|A]", |
2809 | "Display active task list", 0, KDB_REPEAT_NONE); | 2809 | "Display active task list", 0, KDB_REPEAT_NONE); |
2810 | kdb_register_repeat("pid", kdb_pid, "<pidnum>", | 2810 | kdb_register_flags("pid", kdb_pid, "<pidnum>", |
2811 | "Switch to another task", 0, KDB_REPEAT_NONE); | 2811 | "Switch to another task", 0, KDB_REPEAT_NONE); |
2812 | kdb_register_repeat("reboot", kdb_reboot, "", | 2812 | kdb_register_flags("reboot", kdb_reboot, "", |
2813 | "Reboot the machine immediately", 0, KDB_REPEAT_NONE); | 2813 | "Reboot the machine immediately", 0, KDB_REPEAT_NONE); |
2814 | #if defined(CONFIG_MODULES) | 2814 | #if defined(CONFIG_MODULES) |
2815 | kdb_register_repeat("lsmod", kdb_lsmod, "", | 2815 | kdb_register_flags("lsmod", kdb_lsmod, "", |
2816 | "List loaded kernel modules", 0, KDB_REPEAT_NONE); | 2816 | "List loaded kernel modules", 0, KDB_REPEAT_NONE); |
2817 | #endif | 2817 | #endif |
2818 | #if defined(CONFIG_MAGIC_SYSRQ) | 2818 | #if defined(CONFIG_MAGIC_SYSRQ) |
2819 | kdb_register_repeat("sr", kdb_sr, "<key>", | 2819 | kdb_register_flags("sr", kdb_sr, "<key>", |
2820 | "Magic SysRq key", 0, KDB_REPEAT_NONE); | 2820 | "Magic SysRq key", 0, KDB_REPEAT_NONE); |
2821 | #endif | 2821 | #endif |
2822 | #if defined(CONFIG_PRINTK) | 2822 | #if defined(CONFIG_PRINTK) |
2823 | kdb_register_repeat("dmesg", kdb_dmesg, "[lines]", | 2823 | kdb_register_flags("dmesg", kdb_dmesg, "[lines]", |
2824 | "Display syslog buffer", 0, KDB_REPEAT_NONE); | 2824 | "Display syslog buffer", 0, KDB_REPEAT_NONE); |
2825 | #endif | 2825 | #endif |
2826 | if (arch_kgdb_ops.enable_nmi) { | 2826 | if (arch_kgdb_ops.enable_nmi) { |
2827 | kdb_register_repeat("disable_nmi", kdb_disable_nmi, "", | 2827 | kdb_register_flags("disable_nmi", kdb_disable_nmi, "", |
2828 | "Disable NMI entry to KDB", 0, KDB_REPEAT_NONE); | 2828 | "Disable NMI entry to KDB", 0, KDB_REPEAT_NONE); |
2829 | } | 2829 | } |
2830 | kdb_register_repeat("defcmd", kdb_defcmd, "name \"usage\" \"help\"", | 2830 | kdb_register_flags("defcmd", kdb_defcmd, "name \"usage\" \"help\"", |
2831 | "Define a set of commands, down to endefcmd", 0, KDB_REPEAT_NONE); | 2831 | "Define a set of commands, down to endefcmd", 0, KDB_REPEAT_NONE); |
2832 | kdb_register_repeat("kill", kdb_kill, "<-signal> <pid>", | 2832 | kdb_register_flags("kill", kdb_kill, "<-signal> <pid>", |
2833 | "Send a signal to a process", 0, KDB_REPEAT_NONE); | 2833 | "Send a signal to a process", 0, KDB_REPEAT_NONE); |
2834 | kdb_register_repeat("summary", kdb_summary, "", | 2834 | kdb_register_flags("summary", kdb_summary, "", |
2835 | "Summarize the system", 4, KDB_REPEAT_NONE); | 2835 | "Summarize the system", 4, KDB_REPEAT_NONE); |
2836 | kdb_register_repeat("per_cpu", kdb_per_cpu, "<sym> [<bytes>] [<cpu>]", | 2836 | kdb_register_flags("per_cpu", kdb_per_cpu, "<sym> [<bytes>] [<cpu>]", |
2837 | "Display per_cpu variables", 3, KDB_REPEAT_NONE); | 2837 | "Display per_cpu variables", 3, KDB_REPEAT_NONE); |
2838 | kdb_register_repeat("grephelp", kdb_grep_help, "", | 2838 | kdb_register_flags("grephelp", kdb_grep_help, "", |
2839 | "Display help on | grep", 0, KDB_REPEAT_NONE); | 2839 | "Display help on | grep", 0, KDB_REPEAT_NONE); |
2840 | } | 2840 | } |
2841 | 2841 | ||
diff --git a/kernel/trace/trace_kdb.c b/kernel/trace/trace_kdb.c index bd90e1b06088..1e3b36c75048 100644 --- a/kernel/trace/trace_kdb.c +++ b/kernel/trace/trace_kdb.c | |||
@@ -127,7 +127,7 @@ static int kdb_ftdump(int argc, const char **argv) | |||
127 | 127 | ||
128 | static __init int kdb_ftrace_register(void) | 128 | static __init int kdb_ftrace_register(void) |
129 | { | 129 | { |
130 | kdb_register_repeat("ftdump", kdb_ftdump, "[skip_#lines] [cpu]", | 130 | kdb_register_flags("ftdump", kdb_ftdump, "[skip_#lines] [cpu]", |
131 | "Dump ftrace log", 0, KDB_REPEAT_NONE); | 131 | "Dump ftrace log", 0, KDB_REPEAT_NONE); |
132 | return 0; | 132 | return 0; |
133 | } | 133 | } |