implementation in BeOS.
(spawn_thread() will change the value later, but that will come with the whole
stdio implemenation (as it would now print out a warning))
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2691 a95241bf-73f2-0310-859d-f6bbb57e9c96
stdio.h will follow later (the headers are currently unused).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2689 a95241bf-73f2-0310-859d-f6bbb57e9c96
offsets as parameter to specify the APIC register.
Added an obviously missing apic_write() call.
Code cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2606 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changed apic_read()/apic_write() to accept offsets not addresses as register
parameter.
Cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2605 a95241bf-73f2-0310-859d-f6bbb57e9c96
from smp_priv.h and stage2_priv.h. Created a new file smp_apic.h which now
contains those definitions.
Made the APIC_xxx register offsets only base offsets (without referencing a
particular variable).
Other small cleanups (i.e. "unsigned int" to uint32).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2604 a95241bf-73f2-0310-859d-f6bbb57e9c96
passed during construction of the Query.
Only live queries are now registered with the BVolume (for now - since Be's kernel
doesn't free queries when an app has crashed, we might want to have a work-around
for that one day [or just a new kernel :)]).
Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2598 a95241bf-73f2-0310-859d-f6bbb57e9c96
effect anyway.
Now passes the flags parameter on to the Query.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2597 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now defines a new flag B_QUERY_NON_INDEXED - because querying non-indexed
attributes is a slow operation, it now has to be enabled on demand only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2595 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a SIGNAL_TO_MASK() macro.
Removed the useless disable_interrupts() call in set_alarm().
More cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2584 a95241bf-73f2-0310-859d-f6bbb57e9c96
Typedefs for debugger and kernel daemon hooks, cleaned up.
Added a ToDo item about the "abuse" of the quent structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2581 a95241bf-73f2-0310-859d-f6bbb57e9c96
required by the Be API).
Removed all posix signal functionality from the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2579 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now directly exports (as is, most of) the kernel thread API.
Now has user_*() functions where needed.
Moved thread_set_priority() from scheduler.c to set_thread_priority().
Renamed thread_wait_on_thread() to wait_for_thread().
user_get_thread_info() now uses user_strlcpy() instead of user_strncpy().
Fixed the snooze() implementation - it now returns B_OK where appropriate. Now all snooze()
calls will call snooze_etc().
New private call spawn_kernel_thread_etc() to replace thread_create_kernel_thread_etc().
Moved some functions around.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2578 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed a bug in sigaction(): it would have crashed with act/oact == NULL (which
is perfectly legal).
Now directly exports the kernel API.
Now has user_*() calls where needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2577 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed team_wait_on_team() to wait_for_team() (more BeOS-alike).
Adapted to other changes (new thread functions).
Cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2576 a95241bf-73f2-0310-859d-f6bbb57e9c96
and don't have any functionality at this place.
Added new syscall for set_thread_priority().
Some other changes due to cleanup.
Fixed userland snooze() call.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2575 a95241bf-73f2-0310-859d-f6bbb57e9c96
have the scheduler_ prefix instead of thread_.
Moved thread_set_priority() back to thread.c where it belongs to.
Added new function to remove a thread from the run queue.
Renamed run_q to gRunQueue.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2572 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added new syscall for set_thread_priority().
Replaced the userland syscall snooze_until() with snooze_etc() (the latter
has to be exported to userland and realize snooze() and snooze_until()).
Cleaned the sources - scheduler functions now have the scheduler_ prefix.
Moved signal related stuff into ksignal.h (out of thread.h).
Replaced public kernel API with direct exports (i.e. resume_thread() instead
of thread_resume_thread()).
Removed the thread_create_XXX_thread*() calls, and replaced them with a
BeOS compatible set.
Made some fields of struct thread a bit prettier.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2569 a95241bf-73f2-0310-859d-f6bbb57e9c96
Actually never unlocked the daemon's lock (always called mutex_lock() instead
of mutex_unlock()...).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2568 a95241bf-73f2-0310-859d-f6bbb57e9c96
the writembr utility (I was just too lazy to make it build right now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2522 a95241bf-73f2-0310-859d-f6bbb57e9c96
If get_nth_partition/session_info() returns with anything else than a
B_ENTRY_NOT_FOUND, an error message is printed out.
The device name can now be specified on the command line, added shortcuts
to identify a particular device, i.e. "cd-1-slave" or "slave1-cd" or
"1-atapi-slave" would be expanded to /dev/disk/ide/atapi/1/slave/0/raw.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2521 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also fixed an almost bug that only catched B_BAD_TEAM_ID error codes from
get_team_info() (bad style).
Made it a bit more style guide compliant.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2488 a95241bf-73f2-0310-859d-f6bbb57e9c96
there is no libbe.so yet).
Doesn't even query the port; just causes send_notification() in the kernel
to be called which will print out some info.
Added to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2487 a95241bf-73f2-0310-859d-f6bbb57e9c96
the vnodes of a mount structure).
Removed stubs for send_notification() and notify_listener() (they are now located
in message.c and node_monitor.c).
Added support for the node monitoring service.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2482 a95241bf-73f2-0310-859d-f6bbb57e9c96
unmounts is not yet implemented.
Added an empty implementation for send_notification() - the function that is
(or will be) able to send out BMessages from within the kernel; currently
just prints out what should be done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2481 a95241bf-73f2-0310-859d-f6bbb57e9c96
Moved definition of "struct io_context" from fd.h to vfs.h.
Introduced new fs/ directory; some cleanups to come.
Added node monitor syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2479 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed a bug that asked ld to discard the .dtors section.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2450 a95241bf-73f2-0310-859d-f6bbb57e9c96
libglue(2).so are now using the new startup code.
libroot.so now statically links against libgcc.a for now (to be able to load
BeOS executables).
Added some comments.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2449 a95241bf-73f2-0310-859d-f6bbb57e9c96
This has almost the same layout as in BeOS - the only difference is crt0.o which
is what is usually provided by crti.o/crtbegin.o/crtend.o/crtn.o. When we want to
move to GCC's crtbegin/end code, we have to introduce crti.o and crtn.o. This is
required because the crtbegin/end stuff assumes to be inserted between a function
start (crti.o) and a function end (crtn.o) - which can only be achieved with assembly,
and is therefore platform dependent.
start_dyn.c is used for executables and calls main() (among other).
init_term_dyn.c functions are called from the .init/.fini sections and search
for B_INIT/TERM_BEFORE/AFTER_FUNCTION_NAME, and execute them if they are present.
Both use BeOS compatible call scheme but add parameters to the end.
lib0.c is no longer needed, because init_term.c/crt0.c replace its functionality.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2448 a95241bf-73f2-0310-859d-f6bbb57e9c96
Note, the _start() function is now called with 4 parameters, because BeOS
requires the first three (the fourth isn't used in BeOS executables).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2447 a95241bf-73f2-0310-859d-f6bbb57e9c96
doesn't export it), initialization has also moved to initialize_before().
Added BeOS compatibility stubs to allow execution of BeOS native apps - added
comments to every function; some of them might be removed later on again.
Also moved "environ" to posix/stdlib/env.c for the same reason.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2446 a95241bf-73f2-0310-859d-f6bbb57e9c96
instead of "INIT_BEFORE/AFTER_CTORS".
Uses the new runtime linker exports.
Note, this is not yet BeOS compatible (will need to have init/fini sections)!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2441 a95241bf-73f2-0310-859d-f6bbb57e9c96
INIT_BEFORE_CTORS() is now called initialize_before() to be compatible
with BeOS start_dyn.o.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2438 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a simple locking strategy to the loader (didn't do any locking before),
it now uses a global recursive lock for the exported API.
Implemented all needed functionality for the BeOS image API.
Now registers images with the kernel.
Added several ToDo items.
Cleanups, and possibly more I've forgotten about.
(hope this works since the local diff does not?!)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2436 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now more dynmodule_id; it now uses the image_id directly.
Updated for the other changes to the functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2433 a95241bf-73f2-0310-859d-f6bbb57e9c96
Adapted because of changing structure names (struct uspace_program_args).
Added comments, fill_team_info() now sets the team_info.image_count correctly.
Some cleanups and style changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2426 a95241bf-73f2-0310-859d-f6bbb57e9c96
to "struct uspace_program_args", prog_name & prog_path to program_name and
program_path.
Moved the MAGIC_APPNAME to a BeOS compatible MAGIG_APP_NAME from rld_priv.h
to this place.
Removed the dlxxx() exports in the rld_export structure - instead, they will
be implemented using the basic runtime linker API which is a slightly extended
version of the standard BeOS calls (load_add_on() has a "flags" paramater to
allow implementation of dlopen()).
Completed the export API to be able to completely support the BeOS API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2420 a95241bf-73f2-0310-859d-f6bbb57e9c96