Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 9f8f97f528 tty_write_to_tty() used the wrong TTY to look at the ECHO flag; also added
a comment that explains why the other TTY has to be chosen there.
Improved debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 03:55:53 +00:00
Axel Dörfler b4fd3816c8 Fixed the stupid bug that prevented you to see what you typed in when bash
was running. Thanks a lot to Jerome Duval who found this!
Since TTY ECHO mode doesn't look too well with the old shell, it will directly
start "sh" now, which should be the bash.
No longer prints out the TTY used when started, but now sets (as usually
done in BeOS) the TTY environment variable.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 03:51:21 +00:00
Axel Dörfler 0e0c2b2927 Now defaults to automatic file system recognition by the disk device
manager - note, this currently does not until the different module
APIs for file systems are merged together.
fs_mount_volume()'s order of arguments was changed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 01:05:30 +00:00
Axel Dörfler ffc27ddbe7 fs_mount_volume() changed the order of arguments to be more intuitive.
Removed the fs_initialize_volume() function, as it's probably not going
to be needed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 01:03:04 +00:00
Axel Dörfler ae4cfab6b9 Since the file system is usually recognized by the disk device manager,
there is no reason to let it appear important by having it as first
parameter; it's only used to override the DDM's decision if the user
so choses.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 01:01:21 +00:00
Axel Dörfler eef883acab Semaphores created in the kernel always belong to the kernel; there is
absolutely no reason to move them to B_SYSTEM_TEAM (additionally, during
startup, set_sem_owner() may crash).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:52:27 +00:00
Axel Dörfler efdc9c95d0 Replaced SYS_MAX_PATH_LEN with B_PATH_NAME_LENGTH.
Changed the last argument of _kern_mount() to be a string rather than a void pointer.
Greatly reduced the stack usage of _user_mount(); it now uses KPath instead
of on stack paths. It now also copies the parameter argument on the heap.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:35:27 +00:00
Axel Dörfler eef5d24c90 Changed the last argument of _kern_mount() to be a string rather than a void pointer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:25:25 +00:00
Axel Dörfler 6f5f688cde Thanks to Ingo, symbolic links are now correctly read all the time.
devfs_read_link() and rootfs_read_link() could write beyond the buffer
size passed in (off by one).
The comment for _kern_read_link() didn't fit to what the function really
did.
common_read_link() no longer null terminates the link - it's the file
system's responsibility to do that.
fs_read_link() is not supposed to return the length of the link anymore,
but only B_OK for success.

Note, we deviate slightly from POSIX here, where even a buffer too small
would be filled, and no terminating null byte has to be written at all.
We always return an error in case the buffer is too small, and the link
is not partially copied into the buffer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 13:11:46 +00:00
Axel Dörfler 4ee37a6c5c fs_read_link() returns status_t, not ssize_t anymore (ie. the size of the
link is not returned anymore).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 13:06:16 +00:00
Axel Dörfler 755901d835 bfs_read_stat() now correctly reports the size of a link for symbolic links
that are short enough to be placed in the short symlink region.
bfs_read_link() now makes sure that the link read is always null terminated.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 13:05:03 +00:00
Axel Dörfler eeb4323204 Implemented devfs_unpublish_partition() and devfs_unpublish_file_device().
Made the FS internal API a bit more consistent.
Removed devfs_unlink(), and devfs_rename() (which was just returning EROFS
anyway) - the devfs now appears completely read-only to the user. All
changes are triggered by kernel internal APIs (most usually through either
the devfs itself (old style drivers), the disk_device_manager, or the
standard device_manager).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 02:24:30 +00:00
Axel Dörfler e876e8c516 Implemented devfs_publish_file_device(); it should actually work, but I haven't tested it yet.
Also implemented the now needed devfs_read_link() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:58:08 +00:00
Axel Dörfler 433c716b82 Removed the empty function stubs from this file (and basically moved there
where they belong). Lazy Ingo ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:43:15 +00:00
Axel Dörfler 65026923e6 Added prototypes for the new devfs_[un]publish_file_device() calls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:41:49 +00:00
Axel Dörfler 554e58f0d4 Added new functions devfs_[un]publish_file_device() - they're not implemented
yet, though, and just return B_ERROR.
devfs_unpublish_partition() now also returns B_ERROR since it's not yet
implemented.
Refactored the device publishing code, so that implementing devfs_publish_file_device()
will become easy.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:41:16 +00:00
Axel Dörfler 4a5d9e3246 The scsi_periph module is now nice to Ingo: B_GET_MEDIA_STATUS now returns
B_OK in case the device is not removable; IOW we always have the medium, dude.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 19:08:40 +00:00
Axel Dörfler 232b61f7be Adapted mount.c to use the Haiku mounting API instead of the on found in BeOS.
New unmount.c that now also use the new API, and accepts the new -f flag to
force unmounts in case of open files.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 18:01:16 +00:00
Axel Dörfler 2c4f728f7e Added our preliminary mount replacements.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 17:00:29 +00:00
Axel Dörfler 9902467dac Fixed the build in case debug output was enabled.
Moved the debug macros into the program flow, so that they don't look so
temporary :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 00:32:10 +00:00
Axel Dörfler c045a66d75 Gosh, didn't even find the time to adapt map_page()'s comment to the new world.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9538 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 17:13:20 +00:00
Axel Dörfler 48ac51f886 Added support to map more than 4 MB in the kernel space. This became necessary
to be able to have more than 1280x1024x8 resolutions. The best solution, however,
would be to map the graphics memory outside of the kernel space, anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:44:04 +00:00
Axel Dörfler 1b50789288 Running a menu may change the currently selected entry, so we need to update its saved index.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:42:05 +00:00
Axel Dörfler a7fb02e6a2 No longer enables video mode when in debug mode (when a menu came up before
it switched to the logo mode afterwards).
Improved and broke the second call of platform_switch_to_logo() with a
different video mode: it now at least works when switching to a lower
resolution.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:25:30 +00:00
Axel Dörfler 7b5e243a4d Added prototype for the new vfs_get_fs_node_from_path() function. It's
currently only used in devfs for the publication of partitions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 15:22:00 +00:00
Axel Dörfler 0ec71451f5 Added a more or less clean implementation of devfs_publish_partition(); might
be changed later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 15:21:11 +00:00
Axel Dörfler b81068c0c8 Turns out that the interrupts were temporarily turned on during startup,
and that main2() cannot therefore just wait until interrupts become
enabled.
Now, the main2() thread is resumed after interrupts are turned on.
I am not yet sure if this is really necessary, but I have the feeling that it is.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 14:00:40 +00:00
Axel Dörfler 4002d2d272 Improved state_to_text() output to match the states in get_thread_info().
Improved the threads list: despite looking much better, it now also prints
out the semaphore number a thread is waiting on.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 12:50:48 +00:00
Axel Dörfler f048d50953 Padding was broken for strings and characters since the move to vsnprintf().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 12:47:16 +00:00
Axel Dörfler 162eda1e2f Fixed a bug that would select a non-selectable entry when wrapping around
the "cursor".
Now disables serial output when the boot menu is shown.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 01:08:48 +00:00
Axel Dörfler c9e4e71f10 Implemented optional additional serial output in the boot loader.
When the debug boot option is set, or ENABLE_SERIAL defined on compile time,
the serial port 1 is activated.
It will also read the serial base port info from the BIOS data and use
that if any ports are reported (will fall back to 0x3f8 if not).
Right now, a fixed baud rate of 115200 and 8n1 is used.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 01:06:33 +00:00
Axel Dörfler f2ea9af307 The boot loader now can tell the x86 serial driver the serial port base
addresses as reported by the BIOS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 01:02:05 +00:00
Axel Dörfler 628e5a0374 The new fSuperItem menu field is now maintained, ie. Menu::Superitem() and
Menu::Supermenu() now work.
Added function to find an item by label.
The boot volume menu now actually lets you choose a different boot volume.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 00:59:56 +00:00
Axel Dörfler e76877adae Added a function to find a menu item by label.
Added super item/menu getters, and a new fSuperItem field.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 00:56:46 +00:00
Axel Dörfler 794822a8b5 Removed the error count from sys_rstat() as this can easily happen with
links and can be regarded as an harmless error (maybe it should directly
test for broken links, though).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 00:48:20 +00:00
Axel Dörfler a7e04f442b Calm down scsi_dsk driver.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 00:02:31 +00:00
Axel Dörfler 55aea1cc5d Calm down SCSI bus manager.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 23:58:50 +00:00
Axel Dörfler b09a63b4f7 Now has a special case if the length read or written is 0 - because in this
case, the read/write must not fail, even if there is no block_run at the
specified position.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 23:51:18 +00:00
Axel Dörfler b229567a92 Now puts out a message if the kernel doesn't fit to the boot loader.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 23:31:48 +00:00
Axel Dörfler c32cb87156 Moved arch_dbg_con_init() to the end of the file.
Added the new arch_dbg_con_early_boot_message() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 23:30:51 +00:00
Axel Dörfler cc67a158ee Added function for an early boot message before anything else (because of
an error, there is supposed to be one of these at maximum right now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 23:29:00 +00:00
Axel Dörfler 3296ebb98a When attributes get overwritten, the size may only change with string types,
ie. it makes sense to optimize the case when we don't have to move any other
item in the small_data region around.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9514 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-26 19:42:36 +00:00
Axel Dörfler 764201fdae Added a workaround for buggy BeOS (all versions) - if you need the setjmp.h
header, you should define COMPILE_FOR_R5 when you want to run the software
under R5 in order not to crash.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 23:29:24 +00:00
Axel Dörfler 8083619cf7 Since the additional 512 bytes of dprintf() on the stack can potentially
change the flow of things, it now has its own buffer, and fills it with
interrupts disabled (everything comes at a price).
Now uses the safe vsnprintf() instead of vsprintf() which could crash
the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 22:53:37 +00:00
Axel Dörfler e88a0f0885 thread_init() now calls the new arch_thread_init() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 22:30:44 +00:00
Axel Dörfler f9fea8ac78 A clean FPU state is now saved during init, and copied into every fresh
thread. That also allows kernel threads to use the FPU as well.
arch_thread_enter_uspace() no longer needs to initialize the FPU.
i386_stack_init() is now only called once, in arch_thread_init(), as
thought.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 22:29:00 +00:00
Axel Dörfler 63be222e2f Added a arch_thread_init() function prototype.
Changed return types to status_t where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 22:08:48 +00:00
Axel Dörfler ec3d3e05fe Implemented the Disk Device Manager Scanning API. It's currently exported
as a separate module, but might be merged with the standard FS API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 14:19:23 +00:00
Axel Dörfler ad2a2999a9 In early boot mode, open_module_list() is not able to find everything we
want it to find; therefore, we're now using get_next_loaded_module_name().
Added a temporary suffix to the FS DDM modules (disk_device/v1) - they
might get merged with the standard FS interface modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-25 13:53:52 +00:00
Axel Dörfler 06eec38c23 Added a table with the names of the standard interrupts on x86: they are
now printed out when an unhandled exception is taken.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-24 14:42:43 +00:00
Axel Dörfler 3ae4fa637a Now also prints the size of every stack frame, as well as the kernel and
eventual user stack regions of the thread.
The registers are no longer jumping around depending on the length of their values.
Removed some unused or doubly included headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-24 14:02:51 +00:00
Axel Dörfler ddccb72483 Improved the kernel debugger's "thread" command: it will now dump the current
thread if no arguments were given.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 17:09:51 +00:00
Axel Dörfler 8c3666d980 Renamed heap_init_postsem() to _post_sem(), added new heap_init_post_thread().
We now have a working periodic wall checker, enabled by USE_CHECKING_WALL.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 13:59:27 +00:00
Axel Dörfler 842b03d549 Now calls vm_free_kernel_args().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 13:53:13 +00:00
Axel Dörfler 25c4f39f68 Implemented vm_free_kernel_args() which frees all arguments from the kernel_args arguments
list (but not the structure itself).
Now calls heap_init_post_thread(), heap_init_post_sem() was called ..._postsem() before.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 13:52:42 +00:00
Axel Dörfler 2797f8cf8a Renamed heap_init_postsem() to ..._post_sem(). Added prototype for heap_init_post_thread().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 13:50:27 +00:00
Axel Dörfler 95e3a7215d Added prototype for vm_free_kernel_args().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-23 13:49:19 +00:00
Axel Dörfler 4a3a8d94e5 Add a different approach to calm down page fault handling when debug output is enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 02:44:07 +00:00
Axel Dörfler 89e31dce3b kernel_args_malloc() now actually maintain the kernel_args ranges correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 02:40:43 +00:00
Axel Dörfler a17b2346d0 Now makes use of sMaxVirtualAddress to calm down gcc.
arch_cpu.h no longer includes kernel.h, so we have to do this for the
ROUNDUP()/ROUNDOWN() macros.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 02:35:37 +00:00
Axel Dörfler 8a37c740eb Renamed some init2() functions to init_post_vm() to make clearer when and why
they are called.
Fixed some return types (mostly from int to status_t).
Some minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 01:50:09 +00:00
Axel Dörfler d330cc09e2 Renamed some init2() functions to init_post_vm() to make clearer when and why
they are called.
Introduced a cpu_init_post_vm() that will now call arch_init_post_vm() instead
of letting main() doing it.
Fixed some return types (mostly from int to status_t).
Some minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 01:45:43 +00:00
Axel Dörfler b0d8e689ac Renamed some more init2 routines to init_post_vm() to make it clearer when
and why they are called.
Introduced a cpu_init_post_vm() that will now call arch_init_post_vm() instead
of letting main() doing it.
Fixed some return types (mostly from int to status_t).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 01:41:29 +00:00
Axel Dörfler 93048e141e The decision to put reserved regions along real ones proves problematic: fixed
three code locations that didn't handle them properly (when iterating over all
areas).
That and the fact that unmap_and_free_physical_pages() is no longer broken now
leads to the boot region being unmapped and freed properly as intended before.
That revealed another bug: the boot loader region was disposed too early, we
need a few other components pick up boot loader resources first; it now happens
in vm_init_post_sem().
allocate_kernel_args() was also broken, and actually didn't try to allocate
kernel args areas, but tried to reallocate all the virtual allocated ranges
of the boot loader...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 01:38:37 +00:00
Axel Dörfler 3433f318e0 Disabled the USE_WALL checking by default.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 10:53:03 +00:00
Axel Dörfler afad65ded7 Replaced all remaining PAGE_SIZE with B_PAGE_SIZE, addr with addr_t.
Removed the definition of PAGE_SIZE and addr.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 00:33:06 +00:00
Axel Dörfler 3cbdc52595 Replaced PAGE_SIZE with B_PAGE_SIZE.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 00:28:48 +00:00
Axel Dörfler 4d41be9656 Replaced addr with addr_t.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 00:26:49 +00:00
Axel Dörfler 7605ddddf0 Replaced all remaining PAGE_SIZE with B_PAGE_SIZE and "addr" with addr_t.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 00:19:38 +00:00
Axel Dörfler 64807a40c3 As Thomas and I found out in a late debugging session, the VM handled the
boot loaders passed in memory completely wrong (for example, the premapped
graphics buffer could be mapped to the same region as some thread stacks,
just because the VM did not use its knowledge about that mapping): the boot
loader regions are now reserved so that they cannot be overwritten
with other regions anymore. The kernel_args arguments are now tracked, and
areas are created for them (they are not yet freed, though). arch_vm_init_end()
must now call the new vm_free_unused_boot_loader_range() to free any remaining
parts of the memory not yet mapped in by any areas.
Renamed a lot of init functions (ie. postsem to post_sem, init2 to post_area),
also updated because of the vm_translation_map*() arch_vm_translation_map*() move.
B_ALREADY_WIRED can now only be used during kernel startup (it's a private flag).
Replaced PAGE_SIZE with B_PAGE_SIZE.
Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:51:42 +00:00
Axel Dörfler be84cd391c Renamed vm_alloc_from_ka_struct() to vm_alloc_from_kernel_args().
Replaced PAGE_SIZE with B_PAGE_SIZE.
Changed some return types to status_t.
Added proper debugging macro instead of dprintf() usage - disabled
debugging output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:41:48 +00:00
Axel Dörfler 952d67454e Now make sure that the kernel address space translation map is initialized
correctly by calling arch_vm_translation_map_init_kernel_map_post_sem().
dump_aspace() now behaves like all debugging functions should behave: it
now accepts decimal numbers as well as hexadecimal numbers as IDs.
vm_translation_map_create() was renamed to arch_translation_map_init_map().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:38:05 +00:00
Axel Dörfler 189a0b84e6 Renamed all externally available functions to have the arch_ prefix.
Moved some functions around, so that the public functions come last.
Renamed the internal vm_translation_map_quick_query() to early_query(),
renamed vm_translation_map_quick_map() to arch_vm_translation_map_early_map().
Removed the _module part of the initialization functions.
Added a function that completes the initialization of the kernel map (it
creates the map's lock, which was just not done before).
arch_vm_translation_map_init_map() will now fail with an appropriate
error code if the map's lock couldn't be created for anything that
is not the kernel map.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:35:30 +00:00
Axel Dörfler 10abe59096 Since only the arch dependent code may know how much memory the boot
loader preallocated, arch_vm_init_end() (formerly called _endvm())
now calls the new vm_free_unused_boot_loader_range() with the correct
parameters.
Moved the creation of the DMA area from 0-0xa0000 into arch_vm_init_post_area().
Changed return types to status_t rather than just having "int" stand
for a status code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:25:32 +00:00
Axel Dörfler 8d7e89291f The VM init calls were renamed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:21:07 +00:00
Axel Dörfler 67a53f72af - the arch_vm_translation_map.c exported functions now have the arch_ prefix
- the above file now also exports a function to finally complete the kernel's
  address space translation map after semaphores became available (was just
  not done before)
- renamed some functions, especially the *_init2() functions are now called
  like *_init_post_area() to indicate they are called after the area functionality
  became available
- removed the _struct suffix from certain structures
- fixed some return types
- added prototype for vm_free_unused_boot_loader_range() to be called by
  arch code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:19:10 +00:00
Axel Dörfler 027c6be29f Updated due to changes to the kernel_args frame buffer structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:07:19 +00:00
Axel Dörfler 11f838fbf7 Updated due to changes to the kernel_args frame buffer structure.
Most importantly, it now always uses map_physical_memory(), and no longer
relies on eventually mapped data by the boot loader (that the VM didn't
know about).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:17:04 +00:00
Axel Dörfler 9f89132031 Updated due to changes to the kernel_args frame buffer structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:13:09 +00:00
Axel Dörfler 184d298298 Now maintains the new kernel_args addr_range array in the kernel_args structure.
Exports the new insert_address_range() function as declared in boot/addr_range.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:11:23 +00:00
Axel Dörfler 1e25c041ec Removed kernel_args::str initialization, since it is no longer there.
Added a kMaxKernelSize constant to be able to change that limit a bit
easier.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:08:31 +00:00
Axel Dörfler a3a0808085 Updates due to the changed frame buffer part in kernel_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:07:01 +00:00
Axel Dörfler 107f1a6a3f Added an addr_range array for kernel_args.
Removed the "str" field I have no idea what it could have been useful for.
Changed the frame buffer part of the kernel args - "already_mapped" is
no longer there, as it doesn't make a lot of sense.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:02:11 +00:00
Axel Dörfler 53ac60d4ea Added the prototype for insert_address_range() that can be used for the
various addr_range arrays in the kernel_args structure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 16:57:19 +00:00
Axel Dörfler 8df71f7876 Fixed compilation with debug output enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 00:31:54 +00:00
Axel Dörfler db01e67532 Added a comment about what vm_alloc_from_ka_struct() is used for.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:56:08 +00:00
Axel Dörfler 0d2dca3b56 That requirement hasn't changed with the name :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:43:16 +00:00
Axel Dörfler 2fdc57b522 BeGeistert checkin: fixed broken allocation length as found by the USE_WALL
feature.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:39:21 +00:00
Axel Dörfler cc0c987a28 No longer relies on certain allocation aligments of malloc(), and instead
uses the new memalign() call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:36:31 +00:00
Axel Dörfler 09ff55a821 BeGeistert checkin: we now have memalign() - and because of that, the
USE_WALL feature can now be used.
Started implementing a USE_CHECKING_WALLS feature, that has a kernel
daemon running that periodically checks the walls of *all* memory
allocations - does not work yet (because of some initialization order
problems).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:29:17 +00:00
Axel Dörfler 4976718d0e We now have a memalign() call in the kernel, too (since there already was
some code that relied on malloc() to return memory with some alignment
restrictions fulfilled).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:23:34 +00:00
Axel Dörfler e1e5a66bc2 BeGeistert checkin: wait_for_child() does now work as expected for any
team and process group IDs as well.
Added a ToDo item that process groups do only work well as long as
their group leader is still active.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:16:00 +00:00
Axel Dörfler b767f41204 BeGeistert checkin: if B_RELEASE_ALL is used, the "count" argument should be
ignored completely (so that zero and below become valid).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:14:03 +00:00
Axel Dörfler 85fa73ff32 stdio does work, too.
Now uses waitpid() instead of wait_for_thread() - and surprise, it doesn't
work yet :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 17:00:51 +00:00
Axel Dörfler 2b6c3301f7 Forgot to put the forked team into its parent group in fork_team() - which
resulted in a nice crash on exit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 16:14:51 +00:00
Axel Dörfler 8cab02c5ce Removed the TRACEPFAULT macro, as it's not really that useful.
Fixed some warnings with debug output enabled.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 16:06:14 +00:00
Axel Dörfler 8593dcc214 Being on a kernel stack doesn't mean we didn't come from userland: we now
no longer pop %fs from the iframe in that case, too.
When we restore a custom stack, however, we'll now pop %fs from the iframe
as such strange threads may even do their own business with it.
Added some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 15:50:41 +00:00
Axel Dörfler d296d770a3 %fs won't be adopted from the iframe anymore, we don't need to change it there.
We also should disable interrupts in arch_restore_fork_frame().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 15:47:34 +00:00
Axel Dörfler ba9c55b555 Sure, that bug waited *that* long to pop up.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 14:20:51 +00:00
Axel Dörfler a7fa05a54b Since arguments may on the stack even in the kernel, load_image() now
always copies the arguments and environment arrays.
No need for the "owns_arrays" in team_arg anymore - it now always owns
them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-15 01:52:07 +00:00