Add a printx lock
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 19 Sep 2016 15:38:31 +0000 (11:38 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 19 Sep 2016 15:38:31 +0000 (11:38 -0400)
commit1d309e834521443ba488061b49f59a5a0a72ff9e
tree3c4d736019d815acae65bfc753d047bc45e56d8a
parente544c66bb7ae14bf390d29d00eb589d1c4f46e3e
Add a printx lock

When debugging and relying on printed output, if you have a process that is
spamming the console, it can be hard to see what the kernel is printing
out.

This lock is meant to be used in debugging.  If you have printx turned on,
(px from the monitor), then the console prints will be synchronized with
other uses of px_lock().

For instance, if you want to drop a backtrace at some point, you could do:

sys_foo():
if (some_condition && printx_on) {
px_lock();
backtrace_user_ctx(current, current_ctx);
px_unlock();
}

You'd never commit that blob of code, but it's useful when tracking down a
bug.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/kdebug.h
kern/src/devfs.c
kern/src/kdebug.c