was a race condition between that and the wall checker daemon (if enabled): it could
occasionally report an overwritten wall in that very moment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14051 a95241bf-73f2-0310-859d-f6bbb57e9c96
removed the locking it did, as that doesn't work anymore in the kernel debugger.
The function was not thought to be used outside the debugger, anyway.
Improved usage message from debugger command "ls".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14050 a95241bf-73f2-0310-859d-f6bbb57e9c96
There, we need to detect the modified state from the mapping, too - the
vm_page state itself might not be up to date.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14049 a95241bf-73f2-0310-859d-f6bbb57e9c96
to it - if that page was read from disk unmodified before (or written back in
the mean time), the updated contents coult not be detected, and therefore, were
never written back.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14048 a95241bf-73f2-0310-859d-f6bbb57e9c96
is a normal one - maybe someone finds the time to implement them for real before I do :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14046 a95241bf-73f2-0310-859d-f6bbb57e9c96
even if "kernel_startup" was "true". Page faults are now no longer allowed
during kernel startup (and could be easily avoided). The only situation where
we accept page faults with interrupts turned off now is during a kernel debugger
session.
Added a command debug_debugger_running() to test for that situation.
kernel_debugger() no longer sets kernel_startup while it's running; there should
be no situation when this could be helpful.
Interrupts are no longer enabled when a page fault happens in the kernel
debugger.
This potentially fixes all sorts of problems, and not only in the kernel debugger,
it could also have affected SMP (will test later).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14045 a95241bf-73f2-0310-859d-f6bbb57e9c96
a page fault during startup, because the chain memory is B_NO_LOCK.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14043 a95241bf-73f2-0310-859d-f6bbb57e9c96
pages, ie. they considered the areas to be B_LAZY_LOCK. But that doesn't really make
sense and potentially cause page faults where you wouldn't expect them (and where
it's not a good idea to trigger them).
Reworked display_mem() (used by the dw/db/ds commands in the kernel debugger) to
be a bit more sane, improved formatting, and allows it to work on non-existing
memory without a panic.
The "area" debugger command now also accepts an address (contained by the area)
as argument - and it will now always print out an error message if no matching
area could be found.
Replaced all dprintf() calls to kprintf() calls for the kernel debugger functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14042 a95241bf-73f2-0310-859d-f6bbb57e9c96
could be shrinked (because the last node was freed), the free node pointer of the
header was still accidently set to that node.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14040 a95241bf-73f2-0310-859d-f6bbb57e9c96
- moved standard keyboard navigation into the BView::KeyDown() hook
- the window now only handles tab+option/command key
- B_COMMAND_KEY triggers group jumping, not B_CONTROL_KEY (that activates the switcher,
but directly in the app_server)
- fixed broken group navigation: (modifiers & B_COMMAND_KEY & B_SHIFT_KEY) is different
to (modifiers & (B_COMMAND_KEY | B_SHIFT_KEY)) and is just never true with these
constants.
That allows the tab key completion to be used again in Terminal.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14038 a95241bf-73f2-0310-859d-f6bbb57e9c96
Just like on BeOS, the overall maximum is 65536 semaphores for now - the mechanism
tends to make more semaphores available than the one under BeOS, though (which is
intended).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14035 a95241bf-73f2-0310-859d-f6bbb57e9c96
Maybe the CursorManager should be used to set the cursors directly instead of using
fDesktop->GetCursorManager.FindCursor() and then fDesktop->GetHWInterface()->SetCursor()
in ServerApp.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14033 a95241bf-73f2-0310-859d-f6bbb57e9c96
Unfortunately, they are pretty broken, so I added them into floatmath.c
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14019 a95241bf-73f2-0310-859d-f6bbb57e9c96
node: like in BeOS, it *must* own the root node (ie. via publish_vnode()),
unlike in BeOS, it must also drop that reference on unmount (symmetrical
behaviour definitely makes more sense to me than the Be way).
Since all existing file systems for Haiku behaved differently, I brought them
in line (only pipefs already adhered to that new standard for some reason,
rootfs did only released the node, devfs did nothing - despite it's probably
not really useful to be able to unmount them).
fs_mount() will now panic if a file system does not do this correctly (useful
for file system developing).
Unmounting is now theoretically working again: when trying to unmount a BFS
volume, the kernel crashes in the block cache destruction... (but that's work
for tomorrow).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14017 a95241bf-73f2-0310-859d-f6bbb57e9c96
from OS.h, sorry for triggering a complete rebuild.
To avoid doing a syscall for find_thread(0), the assembly
version is now in libroot. For BeOS R5 compatibility,
_kfind_thread_ is retained. This will fix some compile
problems, and provides a cleaner OS.h for future Haiku
versions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14014 a95241bf-73f2-0310-859d-f6bbb57e9c96
was incorrectly calculated, and could therefore cause all sorts of troubles with
writes over 4 kB.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14011 a95241bf-73f2-0310-859d-f6bbb57e9c96