for these changes. I was mostly just staring in amazement at the screen
while Axel and Thomas were discussing IA32 internals. A particularly
fascinating moment was when Thomas produced the cause of a bug we had
been trying to track down for hours off the top of his head (of course
iret behaves specially when the NT bit is set :-). His slowness must be
excused though, since he hadn't slept for more then 30 hours. ;-)
The code doesn't wholeheartedly deal with multi-processor machines yet.
Axel will certainly do some cleanup...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12239 a95241bf-73f2-0310-859d-f6bbb57e9c96
* #undef DEBUG in plib/physmem.c to avoid debug code
* comment out #define mktime rpl_mktime, don't know why it wasn't detected
* now links mv, chown, chgrp, rm, chmod, du, mkdir, pwd against libroot.so for fchdir
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12238 a95241bf-73f2-0310-859d-f6bbb57e9c96
In case of an unknown error, it will now also take the error base definitions
into account (ie. it could return "Unknown Application Kit Error (x)").
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12237 a95241bf-73f2-0310-859d-f6bbb57e9c96
you choose it in the menu.
The boot loader now always switches into a graphics mode unless it's in
debug mode (currently triggered by pressing the escape key on startup).
That means, "Standard VGA" now actually means mode 0x12 (640x480x4)
instead of text mode.
Since the current limited boot logo code would do stupid things with VGA
planes, there will now only be some colored blocks visible during boot.
Implemented support for monochrome modes in the frame buffer console.
Additionally, the frame buffer console now has support for the VGA mode; it
will treat all 4 bit modes as monochrome for now (the VGA 0x12 mode is a
planar mode so this works nicely).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12235 a95241bf-73f2-0310-859d-f6bbb57e9c96
buffer resolution changes during execution (ie. if the boot menu is opened late
and you change the video mode).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12233 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now, it will always link against our libbe.so, so it might not work under
R5 anymore at all (which is okay since it can now be run natively).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12232 a95241bf-73f2-0310-859d-f6bbb57e9c96
flag. Now, it will choose how to set the granularity by evaluating the
limit.
This call was actually already used this way in the kernel, so that
the TLS and TSS segments were much too large (harmless but incorrect).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12231 a95241bf-73f2-0310-859d-f6bbb57e9c96
Introduced a gBootFrameStack that is used until the first thread structure
is available - this allows stack crawls and useful register dumps during
early startup. Could also be solved differently by making sure there is
always a thread structure installed in %dr3 (ie. the boot thread would
get a static thread structure instead of a static iframe stack only).
This might be a better solution as i386_handle_trap() would no longer
need to check for an existing thread structure.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12230 a95241bf-73f2-0310-859d-f6bbb57e9c96
Moved ptentry/pdentry to arch_vm_translation_map.c and renamed them to
page_table_entry and page_directory_entry.
Fixed a race condition that happened when memory was remapped (which
can currently happen because lock_memory() does not work correctly, and
there might be other conditions as well, like certain vm_store fault
handlers). Now, page table and directory entries are updated atomically.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12229 a95241bf-73f2-0310-859d-f6bbb57e9c96
is only accepted when there is at least one valid partition in it.
Before, the module would accept even the BFS boot loader which is now less
likely (IOW you can now boot with Bochs again).
Also, if there was one invalid partition, the partitions that come after
it are no longer ignored.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12228 a95241bf-73f2-0310-859d-f6bbb57e9c96
by consoled by default, the other is used by the input_server) more consistent:
Now, F12 will get you into the kernel debugger. The escape key was somehow not
too happy with vim before :))
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12227 a95241bf-73f2-0310-859d-f6bbb57e9c96
This is helpful in getting a stack crawl during early startup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12226 a95241bf-73f2-0310-859d-f6bbb57e9c96
It cannot be called with interrupts off, and is likely to fail in the debugger;
arch_cpu_shutdown() reboots the machine directly which is what we want here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12225 a95241bf-73f2-0310-859d-f6bbb57e9c96
the APM driver to see it at work).
The frame buffer console now creates such a boot item to give a potential
VESA driver access to the boot frame buffer configuration.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12221 a95241bf-73f2-0310-859d-f6bbb57e9c96
Probably only works under Haiku due to the new area flags.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12219 a95241bf-73f2-0310-859d-f6bbb57e9c96
be used from posix/math.h but some glibc headers. This is not nice, but
it works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12218 a95241bf-73f2-0310-859d-f6bbb57e9c96
describe partitions that are out of bounds. We simply ignore those now,
instead of letting the complete scanning fail.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12206 a95241bf-73f2-0310-859d-f6bbb57e9c96
selected "/safemode/" options are now passed to the kernel.
Added help texts to some safe mode options.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12204 a95241bf-73f2-0310-859d-f6bbb57e9c96
with the number of the actual string length, but it was still used for a
subsequent user_strlcpy() to the user buffer - therefore, it cut off one
byte from the result string.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12202 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a ToDo comment about the forgotten find_directory().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12201 a95241bf-73f2-0310-859d-f6bbb57e9c96
- we must not use static C++ locks: the heap is initialized before the
global constructors are called which means that our sLockList was
initialized twice, and lost all locks added inbetween
- *but* the lock implementation was completely wrong anyway: Hoard used
to allocate superblocks, but it never freed them - instead, their memory
was recycled when their time came. That caused semaphores to be in fact
thrown away, but also corrupted the lock list
- I've now implemented the locks like they are implemented in the other
architectures supported by Hoard: via a spinning (busy waiting) lock.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12200 a95241bf-73f2-0310-859d-f6bbb57e9c96
- vfs_exec_io_context() did not close descriptors
- no variant of dup() did increment the open_count
This allows "VARIABLE=`command`" bash lines to work again.
Removed redundant PRINT() macro from fd.c.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12199 a95241bf-73f2-0310-859d-f6bbb57e9c96