Lines Matching +full:dsp +full:- +full:based
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
29 /*-
36 * automatically at kdb_enter(), if defined, based on how the debugger is
44 * - Allow scripts to be defined using tunables so that they can be defined
45 * before boot and be present in single-user mode without boot scripts
47 * - Memory allocation is not possible from within DDB, so we use a set of
51 * flexibility and avoiding hard-defined buffer limits.
52 * - When scripts run automatically on entrance to DDB, placing "continue" at
84 * Global list of scripts -- defined scripts have non-empty name fields.
97 static int db_recursion = -1;
108 * singe-threaded (although reentrance must be carefully considered).
141 * any way--this must be done by the caller.
188 struct ddb_script *dsp; in db_script_set() local
194 dsp = db_script_lookup(scriptname); in db_script_set()
195 if (dsp == NULL) { in db_script_set()
196 dsp = db_script_new(); in db_script_set()
197 if (dsp == NULL) in db_script_set()
199 strlcpy(dsp->ds_scriptname, scriptname, in db_script_set()
200 sizeof(dsp->ds_scriptname)); in db_script_set()
202 strlcpy(dsp->ds_script, script, sizeof(dsp->ds_script)); in db_script_set()
212 struct ddb_script *dsp; in db_script_unset() local
214 dsp = db_script_lookup(scriptname); in db_script_unset()
215 if (dsp == NULL) in db_script_unset()
217 strcpy(dsp->ds_scriptname, ""); in db_script_unset()
218 strcpy(dsp->ds_script, ""); in db_script_unset()
251 db_command_trimmable(command[strlen(command) - 1])) in db_command_trim()
252 command[strlen(command) - 1] = 0; in db_command_trim()
260 * processing a command -- i.e., traps, etc. Also, make sure we don't exceed
271 struct ddb_script *dsp; in db_script_exec() local
276 dsp = db_script_lookup(scriptname); in db_script_exec()
277 if (dsp == NULL) { in db_script_exec()
293 buffer = drd->drd_buffer; in db_script_exec()
294 strcpy(buffer, dsp->ds_script); in db_script_exec()
296 db_printf("db:%d:%s> %s\n", db_recursion, dsp->ds_scriptname, in db_script_exec()
307 db_recursion--; in db_script_exec()
314 * there is no matching script, try the catch-all script.
327 /*-
330 * scripts - lists scripts
331 * run <scriptname> - run a script
332 * script <scriptname> - prints script
333 * script <scriptname> <script> - set a script
334 * unscript <scriptname> - remove a script
387 struct ddb_script *dsp; in db_script_cmd() local
406 dsp = db_script_lookup(scriptname); in db_script_cmd()
407 if (dsp == NULL) { in db_script_cmd()
412 db_printf("%s=%s\n", scriptname, dsp->ds_script); in db_script_cmd()
415 if (buf[strlen(buf)-1] == '\n') in db_script_cmd()
416 buf[strlen(buf)-1] = '\0'; in db_script_cmd()
453 * debug.ddb.scripting.script - Define a new script
454 * debug.ddb.scripting.scripts - List of names *and* scripts
455 * debug.ddb.scripting.unscript - Remove an existing script
460 * line tool wraps them to make things a bit more user-friendly.
474 * Make space to include a maximum-length name, = symbol, in sysctl_debug_ddb_scripting_scripts()
475 * maximum-length script, and carriage return for every script that in sysctl_debug_ddb_scripting_scripts()
540 * debug.ddb.scripting.unscript has somewhat unusual sysctl semantics -- set
553 if (req->newptr == NULL) in sysctl_debug_ddb_scripting_unscript()