Bolivar cannot carry double. One of these commands should have been
"show mounts", cf. page/pages and a few others. While here fix the
function name to be db_show_all_mounts to conform to the pattern.
crash(8) is built with _KMEMUSER defined but DDB not defined except
for a few specific files or on MIPS.
Seems to me crash(8) should really be built with DDB defined in all
.c files but that leads to other fallout I'm not really inclined to
diagnose right now.
This can be included unconditionally, and db_active can then be
queried unconditionally; if DDB is not in the kernel, then db_active
is a constant zero. Reduces need for #include opt_ddb.h, #ifdef DDB.
db_command_loop - do not ignore the return value from setjmp used to
guard db_cmd_on_enter. We do not want to re-execute the enter command
if it fails. Note that "fails" includes e.g. aborting long output
from the enter command with "q" at the --db more-- prompt, which is
quite likely as the default enter command is "bt".
While here, don't even bother with the whole song and dance if the
enter command is not set.
Include this only inside autoconf itself, and a few files that abuse
autoconf in ways I can't confidently make easy fixes for.
XXX kernel ABI change requires bump -- no more use of struct device
internals allowed, previously done by some drivers
when looking up function names for stack traces (where the addresses are the
return addresses of function calls), if the address is the first instruction
in the function, assume that the function being called is marked "noreturn"
and that the function containing the call is actually the function immediately
before the address that we looked up. to find the correct function name,
do the lookup again with (address - 1) and then add one to the offset within
the function that we find.
log() takes a 'int level' first argument, that must be supplied.
add an inline wrapper that calls vlog() with LOG_INFO, and the
supplied va_list.
(not noticed because this macro is not used anywhere in src but
i have a use in some uncommited code, that now failed to compile.)
DDB can be running in the interrupt context, e.g., when activated from
console. Therefore, we use kmem_intr_alloc(9) and friends in order to
avoid assertion failure.
Exceptions: when we're only testing whether it's there, not about to
dereference it.
Note: We do not use atomic_store_release to set it because the
preceding mutex_exit should be enough.
(That said, it's not clear the mutex_enter/exit is needed unless
refcnt > 0 already, in which case maybe it would be a win to switch
from the membar implied by mutex_enter to the membar implied by
atomic_store_release -- which I would generally expect to be much
cheaper. And a little clearer without a long comment.)