process ID), it also searched for a group with a negative ID.
Some minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12111 a95241bf-73f2-0310-859d-f6bbb57e9c96
any chance to come back (without being signaled), it now will.
For example, this is used by the sleep command (which now actually works
as it should :)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12110 a95241bf-73f2-0310-859d-f6bbb57e9c96
with coordinates specified as arguments, but this somehow
(and why ever) does hinder /bin/sh from execution (under R5
at least). If someone could point me to the problem I'd be greatful.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12105 a95241bf-73f2-0310-859d-f6bbb57e9c96
Everything compiles here, but I couldn't test it yet, since Haiku
doesn't seem to boot properly at the moment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12104 a95241bf-73f2-0310-859d-f6bbb57e9c96
after fork()ing and recreate all semaphores we've been using. To do
the latter, we simply maintain a list of all locks.
fork()ing multithreaded teams can still be troublesome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12097 a95241bf-73f2-0310-859d-f6bbb57e9c96
explicitely when needed.
* Added a ToDo item to _user_resize_area().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12095 a95241bf-73f2-0310-859d-f6bbb57e9c96
the TODO item for an explanation. We could do this as a hack in Looper.cpp though.
Also implement the determine_target function (incomplete).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12082 a95241bf-73f2-0310-859d-f6bbb57e9c96
objects/ tree, so that it doesn't clash with others (those should be
fixed, too). gdb is (or will be, as soon as I check it in) using this
version, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12081 a95241bf-73f2-0310-859d-f6bbb57e9c96
We use Setenv instead of the native setenv to stay binary compatible with
BeOS, as R5 does not have setenv.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12079 a95241bf-73f2-0310-859d-f6bbb57e9c96
This doesn't work under Haiku yet though.
Also made the thread functions into members of MiniView so that we
can have correct private members.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12078 a95241bf-73f2-0310-859d-f6bbb57e9c96
It can be run under R5 and Haiku (binary compatible) and should work
with the Haiku app_server and input_server.
It gives access to a /bin/sh like a normal terminal, but has no fancy features
like different text encoding support and it cannot even redraw itself when
something else overdraws it.
But it's pretty impressiv that it works so well under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12068 a95241bf-73f2-0310-859d-f6bbb57e9c96
- SupportDefs.h only includes stdbool.h if included from C
- stdbool.h for C++ now includes a macro for "bool" as defined by that header
- stdbool.h does nothing if __bool_true_false_are_defined is already defined
- stdbool.h no longer defines a _Bool enum, but defines _Bool as unsigned char, as
previously done by SupportDefs.h (the previous version changed the size).
- The gensyscalls Jamfile now preprocesses its headers in C++ mode so that "bool"
stays "bool", and doesn't become _Bool.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12042 a95241bf-73f2-0310-859d-f6bbb57e9c96
src/libs and build a shared library to be used by all programs that
need it (bash, gdb) instead of letting each have its own copy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12036 a95241bf-73f2-0310-859d-f6bbb57e9c96
Implemented them and moved them to unistd/terminal.c - not yet tested, though,
but should work. As a side effect, the TTY should now send signals.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12034 a95241bf-73f2-0310-859d-f6bbb57e9c96
The target debugger won't work though, since quite a bit of code
would need to be moved from the native support files to those for
the target support. But that's not that important at the moment, since
we're mainly want a native debugger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12027 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Updated KeyboardEventHandler to use the new focus method.
* don't read strlength on B_KEY_DOWN/UP as this gets you into debugger when using ViewDriver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12017 a95241bf-73f2-0310-859d-f6bbb57e9c96
with the bit number, not the respective mask).
* Added a small hack to allow single stepping to work in qemu.
Apparently the BS bit in DR6 is not set when the debug exception
is handled. So we always assume that a single step event occurred,
when we couldn't recognize any other event, if the hack is enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11998 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added initialization function. Currently only need to init the
single step hack for qemu.
* Fixed a deadlock when the nub thread destroyed the debug info. It was
waiting for itself.
* Moved the filling in the origin info of the debug messages into
thread_hit_debug_event_internal(). No need for code duplication.
* Writing to user memory can now be partial. We also change the area
protection, if it wasn't writable. Necessary for setting software
breakpoints.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11996 a95241bf-73f2-0310-859d-f6bbb57e9c96
the thread count need to be accessed atomically.
* Made debugging through exec*() work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11993 a95241bf-73f2-0310-859d-f6bbb57e9c96
Ifdeffed R5 specific stuff so DirectWindow.cpp and WindowScreen.cpp compile on
haiku too. That doesnt' mean they work there though.
This introduced some warnings which I didn't fix, as they'll go away later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11982 a95241bf-73f2-0310-859d-f6bbb57e9c96
instead of hoardGetThreadID()).
Removed unused arch functions.
__init_heap() now calls hoardHeap::initNumProcs(); it's no longer initialized
through a global constructor - that ensures that the heap can really be used
by libroot's constructors (although it did work before as well, somehow).
Moved the heap to 0x30000000 for now (limiting its size, but also ensuring free space
after it) - until the VM can avoid the free space after the heap.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11959 a95241bf-73f2-0310-859d-f6bbb57e9c96
The new heap backend will probably be taken from the boot loader's heap
implementation (the free chunk stuff).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11958 a95241bf-73f2-0310-859d-f6bbb57e9c96
that we no longer need an initialize_after().
Put the architecture dependent hoard functions into the BPrivate namespace
as well. Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11956 a95241bf-73f2-0310-859d-f6bbb57e9c96
(and added support for that function in the emulated kernel).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11951 a95241bf-73f2-0310-859d-f6bbb57e9c96
properties; it should pass on to the next handler (and only if there is none
reply with a B_MESSAGE_NOT_UNDERSTOOD).
Those B_MESSAGE_NOT_UNDERSTOOD are no longer the answer to a B_MESSAGE_NOT_UNDERSTOOD
message anymore, as this lead to an endless loop (for example when starting the
media_server).
Added some ToDo comments - someone please check what has to be done and fill it
out some more.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11950 a95241bf-73f2-0310-859d-f6bbb57e9c96
-S will dump over the serial line (kernel debug output).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11948 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed RLD_STARTUP() runtime_loader() - the new entry point of the loader.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11943 a95241bf-73f2-0310-859d-f6bbb57e9c96
from kernel/Jamfile. Actually kernel/apps is still there as Subversion
doesn't let me commit it -- I'll remove that later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11940 a95241bf-73f2-0310-859d-f6bbb57e9c96
Moved the rld.so creation from kernel/Jamfile to kernel/runtime_loader/Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11936 a95241bf-73f2-0310-859d-f6bbb57e9c96
The default option of "m" is now honored.
Prints out <BEEP> to the debug output instead of printing it on-screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11934 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented unblocking of pending operations when closing a cookie.
Needed to change the simple one reader semaphore, one writer
semaphore strategy for blocking to a request queue based approach
(otherwise unblocking would have been really hairy).
* Implemented select() support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11931 a95241bf-73f2-0310-859d-f6bbb57e9c96
* A new select sync pool entry wasn't really added to the pool.
* More debug output.
* The semaphore created in common_{select,poll}() needs to be created
with count 0, otherwise we won't block.
* A serious race condition remains in common_{select,poll)(). When a
selected FD is closed we can't deselect select events anymore, so
that subsequent notify_select_events() issued by the FS/driver might
write into already free()d memory. A solution would be to get_fd()
the involved FDs and operate directly on them instead of using the
indices. I'm just too lazy to do that now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11929 a95241bf-73f2-0310-859d-f6bbb57e9c96
Entirely implemented on top of the public <debugger.h> API, but more
convenient to use. Lives in a separate library libdebug.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11925 a95241bf-73f2-0310-859d-f6bbb57e9c96
* removed some comments
* mouse down messages go only to the view that has focus. Yeah, they didn't. :p
* solved a bug where some windows did not redraw when hiding a modal.
* another bug where a floating window would not come in front for gaining focus.
* added client's team_id into window title.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11918 a95241bf-73f2-0310-859d-f6bbb57e9c96
now uses this one instead of using map() for every single page - this should
be faster in most cases, and also, more importantly, does not mess up the
map_count counter anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11916 a95241bf-73f2-0310-859d-f6bbb57e9c96
to work when jam was executed in the local directory (as I did for testing).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11914 a95241bf-73f2-0310-859d-f6bbb57e9c96
removed unused headers. Adapted sources to still compile with the new
header locations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11913 a95241bf-73f2-0310-859d-f6bbb57e9c96
so that mails I get from Mr. Wilber are shown correctly, too :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11906 a95241bf-73f2-0310-859d-f6bbb57e9c96
Makes sure the test apps will also build with target=haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11894 a95241bf-73f2-0310-859d-f6bbb57e9c96
be private, as it serves no useful purpose outside of the kernel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11893 a95241bf-73f2-0310-859d-f6bbb57e9c96
team boundaries; if you didn't actually call close() from within the
application, the close-hook of the file system was never called.
Also, you could close files of other teams (ie. invoke close on a
shared file descriptor).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11892 a95241bf-73f2-0310-859d-f6bbb57e9c96
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
and drivers that need to provide special select() support with
managing select notification information.
* Renamed vfs_select.c to *.cpp and fixed the resulting C++ compiler
errors. Added tracing macros.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11886 a95241bf-73f2-0310-859d-f6bbb57e9c96
and free_*_cookie() hooks of the underlying FS were always called
together when the reference count of the FD dropped to zero. When
blocking operations (reading/writing) on the FD were still in progress
this would never happen, though. Now we additionally maintain an open
count and call the close_*() hook when it drops to zero.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11882 a95241bf-73f2-0310-859d-f6bbb57e9c96
is perfectly okay on x86 anyway, but should be moved into the arch stuff).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11869 a95241bf-73f2-0310-859d-f6bbb57e9c96
Should work correctly, although there is a big race condition left when you're
using F_SETLKW. Will be fixed next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11868 a95241bf-73f2-0310-859d-f6bbb57e9c96
simple cases - it might not work properly though, since we don't know yet if
a cache has children; therefore it will print out a warning as a constant
reminder if used in that way. It will still not work if we would need to
insert a new cache inbetween (in case the cache has children or only read-only
areas (even if there is no way yet to specify how exactly the VM should behave
in this case yet).
Added a comment to vm_map_file() about what we still need to do there.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11751 a95241bf-73f2-0310-859d-f6bbb57e9c96
The OHCI stuff was done by Jixt (thanks)./installusb
All is still very much work in progress
Patches applied:
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--base-0
tag of Niels.Reedijk@gmail.com--haiku-2005/usb-busses--mainline--0.1--base-0
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-1
Set the PORT_STATUS_LOW_SPEED flag correctly (using the register bitflag for low speed devices, instead of the proper lowspeed flag)
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-2
Clean up transfers when they're done
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-3
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-4
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-5
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-6
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-7
Remove obsolete ehci.c
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-8
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-9
Completed memory allocation + initialization
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-10
First attempt at performing control transfers - failed miserably
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-11
Trying to read a 16bit value into a 8bit integer, stupid
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-12
nicer way of getting the base io address
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-13
Take over control from BIOS
* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-14
Revert change for disabling USB BIOS support
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11743 a95241bf-73f2-0310-859d-f6bbb57e9c96
Patches applied:
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--base-0
tag of Niels.Reedijk@gmail.com--haiku-2005/usb-busmanager--mainline--0.1--base-0
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-1
Start device addition procedure when a new device is connected
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-2
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-3
Create transfers on the heap.
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-4
Transfer supports synchronous and callbacks
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-5
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-6
Give Pipes a notion of what type they are
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-7
Improve the handling of speed within pipes
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-8
Add a new member to the transfer in which the hostcontroller can store private data
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-9
Made some changes inspired by a mail from Marcus Overhagen
* Niels.Reedijk@gmail.com--nielx-2005/usb-busmanager--development--0.1--patch-10
Fixed memory allocation model
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11741 a95241bf-73f2-0310-859d-f6bbb57e9c96
server accepts input (r5 method). This doesn't work yet, though, as our
input_server fires up the event loop too early.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11731 a95241bf-73f2-0310-859d-f6bbb57e9c96
just create an attribute directory.
Removed the now unnecessary UNSAFE_GET_VNODE lines.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11724 a95241bf-73f2-0310-859d-f6bbb57e9c96
bfs_inode::InitCheck() tested INODE_NOT_READY before making sure the block is
an inode at all, resulting in spurious "inode is not becoming unbusy" errors.
Since there is now publish_vnode() we don't even have to return B_BUSY at all
anymore, though - INODE_NOT_READY is no longer used at all.
bfs_inode::etc is no longer used either (and for the same reason).
Inode::Create() no longer locks the whole volume, but only the write lock
of the parent directory (if any).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11723 a95241bf-73f2-0310-859d-f6bbb57e9c96
can now just do what it's supposed to do, even the bfs_inode::etc pointer is
no longer used.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11722 a95241bf-73f2-0310-859d-f6bbb57e9c96
hold the lock and still call subsequent Lock() and LockWrite() without
the deadlock penalty.
Added another constructor to WriteLocked so that you can also pass NULL
to it (in this case, nothing happens, of course :)).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11720 a95241bf-73f2-0310-859d-f6bbb57e9c96
function publish_vnode(). When calling new_vnode(), the node is only
reserved, but not yet accessible for others. Only when you call
publish_vnode(), it will become available. That simplifies new node
handling/locking considerably.
Note, you don't have to call new_vnode() before publish_vnode(); ie.
publish_vnode() acts exactly like new_vnode() did before if used that
way.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11719 a95241bf-73f2-0310-859d-f6bbb57e9c96
* user_debug_break_or_watchpoint_hit() into separate functions for
break- and watchpoints. The one for breakpoints gets another parameter
which indicates whether the breakpoint was a soft- or hardware
breakpoint. This info is also sent to the debugger.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed the index-based lookup of strings for debug message and
exception codes to a search through entry lists. A bit slower, but more
robust with respect to changes of the underlying enumerations.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11713 a95241bf-73f2-0310-859d-f6bbb57e9c96
changes.
RootLayer.cpp: window tab was properly lit only when changing focus with
the mouse. Now the same happens when showing or hidding windows.
Desktop.cpp: normal windows created after floating windows did not had
B_FLOATING_APP_WINDOW_FEEL windows in their internal list, thus when such
a window was selected to become the front most it did not show floating
app windows in front of it. Fixed that now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11710 a95241bf-73f2-0310-859d-f6bbb57e9c96
(there's a separate B_DEBUGGER_MESSAGE_EXCEPTION_OCCURRED now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11707 a95241bf-73f2-0310-859d-f6bbb57e9c96
condition when the traced team exits, but this seems to be a inherent
problem. The thread that calls _kern_exit_team() apparently still manages
to send the post-syscall message, but when the debugger tries to continue
it, it is already gone. Not really harmful. We'll probably find a remedy
later.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11706 a95241bf-73f2-0310-859d-f6bbb57e9c96
* No longer kill the time when a page fault occurs, but rather send a
SIGSEGV.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11705 a95241bf-73f2-0310-859d-f6bbb57e9c96
of a signal.
* Added sigaction_etc(). It's just a sigaction() for which the thread
in question can be specified.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
not to be notified.
* Added debugger commands for setting/getting of thread signal ignore
masks and signal handlers.
* Renamed user_debug_fault_occurred() to a more correct
user_debug_exception_occurred(). It no longer sends a `stopped' message,
but the new one dedicated to exceptions. Additionally the number of the
signal is supplied that will be sent, when the thread continues (without
indicating to ignore the event).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added support for debugger handover. The current debugger need to send
a B_DEBUG_MESSAGE_HANDED_OVER message. The rest is completely
transparent to the new debugger. It simply calls install_team_debugger().
* Implemented _user_wait_for_debugger().
* Reworked a few bits to ensure that after a remove_team_debugger() or
after requesting a debugger handover the debugger doesn't get any more
messages.
* When the debugger is removed or dies, the debugged threads should now
cleanup their debug info and continue, instead of waiting at their
debug port forever.
All the new features are not tested. Will happen, when gdb will be
debugged.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11697 a95241bf-73f2-0310-859d-f6bbb57e9c96
(new `flags' parameter, flag B_WAIT_TILL_LOADED). This is the default
behaviour for load_image(), so it behaves like R5's implementation now,
i.e. errors while loading are reported to the caller.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11696 a95241bf-73f2-0310-859d-f6bbb57e9c96
* We no longer notify the debugger about a new image when it is registered,
but when it has been relocated.
* When the application image has been relocated, we notify the one who
initiated its loading.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11694 a95241bf-73f2-0310-859d-f6bbb57e9c96
it actually meant.
* Refactored the image initialization process (init_dependencies()) a bit.
topological_sort() is now more flexible.
* The image relocation is now done by relocate_dependencies(). The order
of relocating the images is the same as the initialization order, so
that the app image is the last to be relocated. After having relocated
an image the kernel is notified.
* The FATAL() macro has another parameter, an error code now, and calls
the new syscall _kern_loading_app_failed() instead of _kern_exit_team().
So the error can be reported to the team that called load_image().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11688 a95241bf-73f2-0310-859d-f6bbb57e9c96
second time for already loaded libraries, when a library/add-on is
loaded.
* image_t features now both, a path and a name. The name is the DT_SONAME,
if present, the leaf name otherwise.
* Modified find_image() to compare both path and name, if necessary.
Added a type mask parameter to specify what image types one is
interested.
* Refactored open_container(). We now also support DT_RPATH, a dependency
search path list that can be specified for the dependencies of a shared
object.
* Extended [un]load_library() to support add-ons.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11685 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When the target is a symlink, it is tried to be resolved before making
the decision what to do.
* If the (resolved) target is a file and the source is a file, we don't
fail anymore, if `-f' wasn't specified. We truncate the target file
instead and copy the source data into it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11683 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also removed team::user_env_base: environment variables are now changed on the app's heap.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11672 a95241bf-73f2-0310-859d-f6bbb57e9c96
malloc() currently cannot be used in initialize_before() in libroot.so,
and therefore a _after() call has been added for this.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11670 a95241bf-73f2-0310-859d-f6bbb57e9c96
made it thread-safe, although this is not required by POSIX.
Implemented unsetenv(), improved putenv().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11668 a95241bf-73f2-0310-859d-f6bbb57e9c96
added macros to use our standard posix call when possible instead of prefixed versions
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11651 a95241bf-73f2-0310-859d-f6bbb57e9c96