static __init int kdb_enhance_register(void) { #ifdef CONFIG_SCHED_DEBUG kdb_register_repeat("sched_debug", kdb_sched_debug, "", "Display sched_debug information", 0, KDB_REPEAT_NONE); #endif return 0; }
void __init kdb_initbptab(void) { int i; kdb_bp_t *bp; /* * First time initialization. */ memset(&kdb_breakpoints, '\0', sizeof(kdb_breakpoints)); for (i=0, bp=kdb_breakpoints; i<KDB_MAXBPT; i++, bp++) { bp->bp_free = 1; /* * The bph_free flag is architecturally required. It * is set by architecture-dependent code to false (zero) * in the event a hardware breakpoint register is required * for this breakpoint. * * The rest of the template is reserved to the architecture * dependent code and _must_ not be touched by the architecture * independent code. */ bp->bp_template.bph_free = 1; } kdb_register_repeat("bp", kdb_bp, "[<vaddr>]", "Set/Display breakpoints", 0, KDB_REPEAT_NO_ARGS); kdb_register_repeat("bl", kdb_bp, "[<vaddr>]", "Display breakpoints", 0, KDB_REPEAT_NO_ARGS); kdb_register_repeat("bpa", kdb_bp, "[<vaddr>]", "Set/Display global breakpoints", 0, KDB_REPEAT_NO_ARGS); kdb_register_repeat("bph", kdb_bp, "[<vaddr>]", "Set hardware breakpoint", 0, KDB_REPEAT_NO_ARGS); kdb_register_repeat("bpha", kdb_bp, "[<vaddr>]", "Set global hardware breakpoint", 0, KDB_REPEAT_NO_ARGS); kdb_register_repeat("bc", kdb_bc, "<bpnum>", "Clear Breakpoint", 0, KDB_REPEAT_NONE); kdb_register_repeat("be", kdb_bc, "<bpnum>", "Enable Breakpoint", 0, KDB_REPEAT_NONE); kdb_register_repeat("bd", kdb_bc, "<bpnum>", "Disable Breakpoint", 0, KDB_REPEAT_NONE); kdb_register_repeat("ss", kdb_ss, "", "Single Step", 1, KDB_REPEAT_NO_ARGS); kdb_register_repeat("ssb", kdb_ss, "", "Single step to branch/call", 0, KDB_REPEAT_NO_ARGS); /* * Architecture dependent initialization. */ kdba_initbp(); }