Commit Graph

2067 Commits

Author SHA1 Message Date
Ingo Weinhold
6fef29ae45 * Changed return value of read_port[_etc] from status_t to ssize_t. That's
not how it is declared in R5, but it is what actually is returned.
* Fixed _user_read_port_etc(): It didn't copy the message code back to
  userland, if the message had a size > 0.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 21:43:07 +00:00
Axel Dörfler
cafa4dd931 Removed next_dev() again - it's implemented in libroot/os/fs_info.c and
now used from there, sorry Ingo (I forgot to commit the Jamfile that
included fs_info.c).
Minor comment cleanup to make their appearance consistent throughout
the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 14:41:00 +00:00
Axel Dörfler
40174b5c1b Added fs_info.c functions to the kernel (next_dev, fs_stat_dev, ...).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 14:36:31 +00:00
Ingo Weinhold
40be269010 Added missing next_dev(). Axel?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 13:46:04 +00:00
Axel Dörfler
d7e274c031 The "/tmp" symlink targeted the wrong location.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 01:27:04 +00:00
Axel Dörfler
e3954f5a94 acquire_sem_etc() really didn't like the combination of B_RELATIVE_TIMEOUT
and B_INFINITE_TIMEOUT -- it now does and won't start a timer anymore in
this situation. Reported by Ingo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 01:07:23 +00:00
Axel Dörfler
849647ec72 sync() now also syncs the vnode caches (file data).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 00:38:16 +00:00
Axel Dörfler
8b74caaae0 Brought dump_port_info() into shape, added output of port_entry::total_count.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-14 20:45:18 +00:00
Axel Dörfler
6158f7d53a Fixed a crashing bug in port_buffer_size_etc() - it had a special error
check for B_TIMED_OUT and B_WOULD_BLOCK, but it got through with other
errors.
Removed special error check for "known" error codes from port_buffer_size_etc(),
read_port_etc() and write_port_etc() - they no longer print out a warning in
that case.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10732 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-14 20:21:58 +00:00
Axel Dörfler
4d00c5e1ea We introduced the new constant B_CURRENT_TEAM for this.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-14 19:50:12 +00:00
Ingo Weinhold
2397da28a0 Added support for get_next_image_info() with team ID == 0, which means the current team.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-14 15:32:14 +00:00
Axel Dörfler
9c4f4c037d Changes because of renaming various data structures (pnp_node -> device_node, ...).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-11 23:28:38 +00:00
Axel Dörfler
08ec614080 Changes because of renaming various data structures (pnp_node -> device_node, ...).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-11 23:26:00 +00:00
Axel Dörfler
b8877975aa Added some code to dump the node tree. This is currently done always
after hardware recognition (but will be moved into a debugger command
later).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-11 16:19:59 +00:00
Axel Dörfler
d1f630f624 Fixed some typos, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 18:30:37 +00:00
Axel Dörfler
f1a1d6e98a Implemented get_safemode_option() (not yet tested).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 18:06:25 +00:00
Axel Dörfler
57af9fc29e Added a small program to control the cache (using the generic syscall mechanism).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 08:08:14 +00:00
Axel Dörfler
104de70bd8 Oops, the driver name was not propagated as needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 08:01:39 +00:00
Axel Dörfler
c51144040d The BOCHS_DEBUG_HACK definition now only enables support for the bochs
debug output - to activate it, you now have to enable it in the kernel
settings file ("bochs_debug_output true").
Reimplemented the serial output so that it's flexible towards the base
port at run time.
Implemented support for kernel settings "serial_debug_port" (which can
now also be an index in the BIOS provided serial ports list), and
"serial_debug_speed".
That also means that you can finally use the same kernel executable
under BeOS Bochs and on a real system without any restrictions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:53:22 +00:00
Axel Dörfler
163338aef6 Now calls the new arch_dbg_con_init_settings() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:48:44 +00:00
Axel Dörfler
b15a7e8e0a Now initializes the driver_settings services (so that it can find the
settings passed over by the boot loader).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:47:51 +00:00
Axel Dörfler
74272e4c46 mutex_lock() will no longer panic() if acquire_sem() failed and the mutex
holder did not change (required for booting properly).
Also added a ToDo comment about a required mutex API change in order to
be able to return a status that indicates failure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:46:48 +00:00
Axel Dörfler
486c7eddeb Added driver_settings support: it will now read in the vesa kernel driver
settings and use that one as standard video size (but ignores the depth
parameter for now).
It will be the app_server's responsibility to keep this file up to date.
This file should no longer be edited by users.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:41:01 +00:00
Axel Dörfler
4c89c923bf For now doesn't switch to text mode and back to the logo anymore when the
menu is shown - the logo is now shown after the menu anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:38:01 +00:00
Axel Dörfler
78c5ef46fc Added driver_settings support.
It will now load all settings in the kernel driver settings directory
and pass them over to the kernel (unparsed).
Additionally, it allows other parts of the boot loader to access
driver_settings just like in the kernel.
Moved the switch to the logo in the boot loader much further to the end
of the boot loader's life cycle. This is done so that the boot loader
can directly use the video mode as configured in Haiku, without a jumping
logo. Since the delay will be noticeable on a real system, we might want
to introduce a second different boot logo, though. We'll see.
stdio.cpp now also exports errno (and _errnop). Might be changed to a
different approach later as well (it's now done this way so that strtol.o
can be taken over unchanged from libroot.so).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:32:54 +00:00
Axel Dörfler
a2940337b4 Added strcasecmp(), strlcat(), and strtol() to the boot loader in order to
be able to use the driver settings in a useful way.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:26:50 +00:00
Axel Dörfler
f753d9c494 Updated to export all the functionality we need from within the kernel
and the boot loader.
When compiled in the kernel, driver settings are cached and may be used
without disk access at all.
Added some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:25:23 +00:00
Axel Dörfler
c776c35a04 Added a temporary way to differentiate between kernel and userland builds for
parts of kernel_os_main.o.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 01:32:11 +00:00
Axel Dörfler
0f6c560eec Removed the upper restriction of maximum cache transfers (was restricted
to 32 pages at a time out of pure lazyness).
Also fixed a potential bug when reading across page bounds (pageOffset
might not have been properly reset).
Added some more comments and ToDo items.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-09 22:40:30 +00:00
Axel Dörfler
f3d2f0ffa2 cache_module_info::node_opened() was called with the wrong argument order.
Added generic syscall to control the cache. Right now, only setting/removing
cache modules is implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-07 00:55:08 +00:00
Axel Dörfler
2a5dafa804 recurse_directory() is no longer part of the build if SUPPORT_BOOTFS is
not defined. It will now also skip about all entries called "boot" (to
not load the boot modules again).
The path of preloaded images is now hacked together so that the module
image hash contains the correct path in case the images get replaced
while being used.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-06 21:46:03 +00:00
Axel Dörfler
b1e252f77f Added a SUPPORT_BOOTFS definition and made the vfs_get_module_path() the new
standard mechanism - recurse_directory() is now only used if SUPPORT_BOOTFS
is defined and vfs_get_module_path() failed.
Added standard system kernel add-ons directory to the search path list.
Renamed USER_MODULE_PATHS to FIRST_USER_MODULE_PATH as that's what it is.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-06 20:31:22 +00:00
Axel Dörfler
fb77bc372f vfs_get_module_path() now actually works: it failed to create a valid full
path, since it didn't take into account that vnode_path_to_vnode() may
actually change the provided buffer.
Also fixed a potential buffer overrun in that function (bufferSize was
not correctly changed), and added a comment about a previously undocumented
property of vnode_path_to_vnode() that vfs_get_module_path() relies on.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-06 20:20:48 +00:00
Jérôme Duval
d1e2263502 untested uname implementation
still lacking some way of getting/setting hostname in our kernel


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-17 16:23:22 +00:00
Jérôme Duval
5622a2e2c5 added get_rtc_info, needed in the kernel for services which use local timestamps such as the dos filesystem
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-15 09:23:50 +00:00
Axel Dörfler
e93e8b9a66 Removed unused mount/unmount commands.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-15 00:13:25 +00:00
Axel Dörfler
dbef8d930c As suggested by Ingo, the "subsystem" parameter is now a string. That allows
modules to use their module name directly.
Also introduced a whole range of reserved syscall functions in case we want
to add some more.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 17:09:06 +00:00
Axel Dörfler
f4160aedf9 Renamed semaphore syscalls to the new scheme.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 16:07:23 +00:00
Axel Dörfler
483a56e2fa Implemented a generic syscall mechanism. For example, kernel modules can use
this during runtime to add and remove specific syscalls. You can also use this
to add debugging or temporary kernel calls without messing up the syscall
table (the syscall numbers will stay constant).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 15:49:20 +00:00
Axel Dörfler
836356a0ca Since we now have a working B_BASE_ADDRESS, we don't need the "RLD_padding"
area anymore.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 04:02:42 +00:00
Axel Dörfler
c3808a9e47 Address specifier B_BASE_ADDRESS actually didn't work at all - it now does.
Renamed find_reserved_region() to find_reserved_area(), and
find_and_insert_region_slot() to find_and_insert_area_slot().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 04:02:11 +00:00
Axel Dörfler
8a16a1a0c9 lock_memory() now at least makes sure that the memory range is mapped in.
It's a bit hackish due to the iospace area, and it also might not work
perfectly in all situations, but it does fulfill the current needs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 02:39:37 +00:00
Axel Dörfler
09eaf756d0 Included some code from NewOS to set up a double fault handler. Doesn't seem to work yet, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 01:46:04 +00:00
Axel Dörfler
e082899afe Replaced SYS_MAX_PATH_LEN with B_PATH_NAME_LENGTH.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:15:25 +00:00
Axel Dörfler
220a60685b Updated because of some header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:14:56 +00:00
Axel Dörfler
84a910b64f Updated because of header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:02:18 +00:00
Axel Dörfler
a1d0963176 Locking of the vm_cache_ref was almost completely missing...
cache_node_{opened|closed}() now correctly get the file_cache_ref from a vm_cache_ref.
Implemented cache_prefetch(): for now, it always prefetches the first 64 kB from the file.
Renamed read_from_cache() to read_into_cache().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:58:40 +00:00
Axel Dörfler
fcab2bafe0 Added a pointer to the file_cache_ref to the vnode_store.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:47:41 +00:00
Axel Dörfler
d316037c89 Updated because of header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:46:11 +00:00
Axel Dörfler
64e7394c50 PARANOID_POINTER_CHECK is now only defined if DEBUG is defined, too, by default.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:44:17 +00:00