Commit Graph
2163 Commits
Author SHA1 Message Date
Axel Dörfler 0bfd48e555 Will now also publish directories for existing driver directories that
have subdirectories in order to find device drivers like /dev/audio/raw
without any drivers in /dev/audio.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 02:57:52 +00:00
Axel Dörfler 7ec59908da Added a devfs_publish_directory() function that just tries to make sure
that a path is available (like "mkdir -p").


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 02:17:02 +00:00
Ingo Weinhold b5c8eaec52 Added messaging service header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:23:20 +00:00
Ingo Weinhold 65174bbf57 Added unregistration. Fixed MessagingService::RegisterService(): the semaphores weren't stored.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:22:03 +00:00
Ingo Weinhold 2c872c4fe5 Removed obsolete ancestor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 23:00:37 +00:00
Ingo Weinhold 4cacc85bae Prevent a linker error. It complains about multiple definitions of nothrow.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 19:56:19 +00:00
Ingo Weinhold 2d50eca728 Added the messaging service.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 19:54:46 +00:00
Ingo Weinhold 59b9b48bb3 Added a service that will be responsible for sending messages from kernel
to userland applications. A userland server (probably the registrar) will
register as the server responsible for delivering the messages. The
messages are passed to it via shared memory.

The advantage over sending the messages directly will be, that they won't
need to be dropped, if the receiver port is temporarily full.

Currently only the kernel side is implemented. Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 19:54:19 +00:00
Philippe Houdoin ce0c82200a Fixed the "no previous prototype" warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 21:23:33 +00:00
Ingo Weinhold c3a3ddf246 Added KMessage, a data container pretty much like BMessage, but
append-only and hence has very compact storage and a comparatively small
footprint implementation. Can be used for kernel->userland messaging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 19:19:36 +00:00
Ingo Weinhold 1e78d7ff9f That may be the wrong place, but R5's libroot prints 'Abort' when abort() was called. That's at least a helpful clue, when you see your program terminate spontaneously.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 17:34:57 +00:00
Ingo Weinhold 14a8f01955 Also call the initialization function of an executable's image. I don't know for what reason it wasn't done before, but not doing it at all breaks C++ exceptions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10950 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 17:29:40 +00:00
Ingo Weinhold 3e35b88903 Rather keep the .eh_frame section, if we want exceptions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10949 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 16:29:21 +00:00
Axel Dörfler ba6aff63d0 The userland build now includes GCC's crtbegin/end.o as needed, surrounded
by our crti.o/crtn.o. In the future, we really shouldn't use kernel build
rules for userland applications/libraries anymore...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 14:13:39 +00:00
Axel Dörfler 5af708a20c Changed our nice crt0.c to something more GCC compatible; we're not calling
the global constructors/desctructors ourselves anymore, but let GCC do
that using crtbegin/end.o how it's thought to be done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 13:36:31 +00:00
Axel Dörfler 9cc2fa71c5 The top-level stack frame now clears %ebp to mark the end.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 22:02:49 +00:00
Ingo Weinhold 984c3a2ec3 It's already 2005, isn't it. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 15:18:34 +00:00
Ingo Weinhold 61a9031bd0 Added get_stack_frame().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 15:03:08 +00:00
Axel Dörfler 60ec020574 Added a temporary fix to be able to boot using bootfs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 02:15:58 +00:00
Axel Dörfler 205c4c26e7 Use native types instead of "long".
Updated license.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 20:59:00 +00:00
Axel Dörfler 5195a9a892 Added __errno_location() when building under Linux - we might adopt this
as standard, though (and keep errnop() for BeOS compatibility only).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 20:12:10 +00:00
Axel Dörfler 2b9e2cec46 Fixed warning (GCC 3).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:58:58 +00:00
Axel Dörfler 623d7696c0 Added a platform_register_boot_device() stub function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:40:46 +00:00
Axel Dörfler 5629cb08f3 Have I already mentioned how amazing many bugs can be in such a short code snippet?
cache_io() should now finally work correctly in all cases.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:15:42 +00:00
Axel Dörfler 17351b0417 If we remove bochs support from the build system one day, make sure that
this file still does the right thing as suggested by Michael Pfeiffer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 17:32:06 +00:00
Ingo Weinhold 327a7d825f The FD supplied to _user_open() was not passed to file_open().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 14:59:05 +00:00
Ingo Weinhold 791e6b3a75 BOCHS_DEBUG_HACK is always defined (to 0 or 1). Reported by Gert van Valkenhoef.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 14:19:35 +00:00
Ingo Weinhold 285449a68f Default arg in implementation. Reported by Gert van Valkenhoef.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 14:16:01 +00:00
Axel Dörfler 19b83dc2b3 Got rid of ERR_VM_NO_REGION_SLOT - we now return BeBook friendly error codes.
Added short description to find_reserved_area() as that name is not that good.
vm_reserve_address_range() now doesn't do anything if the requested size
of the reservation is zero.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 03:17:25 +00:00
Axel Dörfler 0f4c53b1d0 Better debug output, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 02:59:00 +00:00
Axel Dörfler 0f8e6927d8 Fixed another big and stupid bug: the first read/write not in the cache
and not on a page boundary had been executed with a I/O size too large,
and thus clobbering all sorts of memory (oh my god).
The problems with ResourceFile now seems to be gone.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 02:35:39 +00:00
Ingo Weinhold ffb6ed34b3 Fixed build with debug output enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 01:07:30 +00:00
Axel Dörfler 5e07b72508 Renamed probe() to register_device(), cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 19:03:01 +00:00
Axel Dörfler dcbf2cb678 Now uses a driver/device exploration like R5; when a directory is looked
up for the first time, it will try to load all drivers that may export
devices there. Those devices will currently stay loaded, though - this
will only be changed when load_kernel_add_on() is able to cache add-ons.
Renamed pnp_devfs_probe() to pnp_devfs_register_device().
Fixed debug output for devfs_create().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:51:21 +00:00
Axel Dörfler 568f1574d2 dev_init() and bus_init() are now both obsolete.
con_init() now takes care of the initialization of its currently built-in
console drivers itself.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:44:44 +00:00
Axel Dörfler 19abe05796 Removed dev.c as it's no longer in use (driver loading is now done by
the device manager).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:39:33 +00:00
Axel Dörfler 321fcdaf57 Removed ToDo comment about removing kernel.so - actually, we'll keep kernel.so
because it has some advantages over a relocatable kernel.
Removed libbus.a as it's no longer needed.
kernel.so now depends on kernel, so that both files are updated at once.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:37:49 +00:00
Axel Dörfler a9435d9740 Some work in progress cut back to support R5 style device exploration.
Also includes the loader of R5 styled drivers (taken from dev.c).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10833 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:29:40 +00:00
Axel Dörfler 339a06ca55 get_vnode_name() now handles a NULL parent vnode gracefully (and returns
an error in case the vnode name could not be retrieved without it).
Comment cleanup for consistency.
Renamed remaining "omode" variables to openMode.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 15:59:18 +00:00
Axel Dörfler e8edb8545b A hash_lookup() to the module images was made without having the proper lock held.
Added kernel private calls load_module() and unload_module() that can be used to
load/unload modules by path.
load_module_image() now only mentions when it couldn't load a module when tracing
is enabled (because the device manager uses it to determine if an add-on is a
module or an old-style driver).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 02:37:38 +00:00
Axel Dörfler cdde948ccc Fixed compilation in case COMPILE_FOR_R5 is defined.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 22:35:28 +00:00
Axel Dörfler c004da882f Fixed compilation issues that came with changing it to be C++ (hi mmu_man :-)).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10809 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 22:23:20 +00:00
Axel Dörfler 7e536c5607 Renamed probe.c to probe.cpp to prepare if for all the changes it got.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10808 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 22:19:43 +00:00
Ingo Weinhold 523144419b * utsname::sysname is the name of the OS while system_info::kernel_name is
the name of the kernel file. Now return "Haiku" as operating system.
* Even if we can't fill in utsname::nodename with something useful yet,
  fill in at least something.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10782 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 01:18:56 +00:00
Ingo Weinhold 7e3ac9f35f 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.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 21:45:13 +00:00
Ingo Weinhold 2751025516 Temporarily added debug_[v]printf() functions for userland usage, equivalent to dprintf() in kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 21:44:16 +00:00
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