Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 26dade365a Added the _single_threaded global variable as it is needed by the std I/O
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
2003-02-11 19:51:49 +00:00
Axel Dörfler bdd1c86cbb Added a newline and made the B_ error codes more prominent (removing the POSIX
and NewOS error codes, kept the former as comments).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-11 19:49:58 +00:00
Axel Dörfler 79d76063c3 Added stdio post/pre includes for our BeOS compatible stdio implementation.
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
2003-02-11 19:37:58 +00:00
Axel Dörfler 7acdf0be55 Made the load_driver_symbols() prototype equivalent to the KernelExport.h
header (where Philippe added it again temporarily).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-11 19:34:12 +00:00
Axel Dörfler 6f7be67a0f Removed references to the load_driver_symbols() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-11 19:32:08 +00:00
Axel Dörfler 76f5cb0d86 Fixed broken compilation of BFS; forgot to update the Query.h header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-09 15:49:36 +00:00
Axel Dörfler 81afd95226 Cleanups (mainly variable types).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 21:25:53 +00:00
Axel Dörfler f9d7cb3acc Now uses the arch/x86/smp_apic.h header; changed apic_read/write() to accept
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
2003-01-30 21:24:50 +00:00
Axel Dörfler 7870c58c18 Now uses the new smp_apic.h header file.
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
2003-01-30 21:22:03 +00:00
Axel Dörfler 9175b5a5e0 Cleanup of the header mess: removed the redundant APIC/mp structure definitions
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
2003-01-30 21:20:33 +00:00
Axel Dörfler 2dc97fdf08 The dprintf() function scrolled one line too late.
Also fixed a comment and the processor warning text.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:52:49 +00:00
Axel Dörfler 7a6bb51e08 Just some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:49:24 +00:00
Axel Dörfler 9e63d45563 Moved the fd.c source file into the fs directory.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:37:44 +00:00
Axel Dörfler 1241a21542 Only queries non-indexed attributes if the B_QUERY_NON_INDEXED flag was
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
2003-01-29 15:11:44 +00:00
Axel Dörfler 2fee336b52 Removed the load_driver_symbols() call, since it doesn't seem to have any
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
2003-01-29 15:09:18 +00:00
Axel Dörfler f60043082d Unified the look of the different files a bit (their headers in particular).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-29 14:45:15 +00:00
Axel Dörfler 8b9ceff84b New fs_query.h header.
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
2003-01-29 14:43:38 +00:00
Axel Dörfler c69aed7afc Removed some garbage.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 13:58:12 +00:00
Axel Dörfler 74eff974c5 Fixed a variable misnamer I introduced earlier (team -> threadID).
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
2003-01-27 13:55:57 +00:00
Axel Dörfler 868dc95975 Makes use of the new daemon_hook typedef.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 13:53:10 +00:00
Axel Dörfler ec7567030b load_driver_symbols() is no longer part of the public API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 13:51:46 +00:00
Axel Dörfler b16ed21a04 Our new KernelExport.h header.
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
2003-01-27 13:48:39 +00:00
Axel Dörfler 2760fd9495 Renamed resched() to scheduler_reschedule().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 04:01:28 +00:00
Axel Dörfler 4b2d22c03e Fixed userland snooze() implementation, snooze_etc() is now also exported (as
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
2003-01-27 03:19:18 +00:00
Axel Dörfler 88b64a6feb Big cleanup.
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
2003-01-27 03:17:36 +00:00
Axel Dörfler b848af2071 Greatly cleaned up the source.
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
2003-01-27 03:11:45 +00:00
Axel Dörfler 6d8aafc66e Added comments to sys_(get|put)env() - please remove them from the kernel.
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
2003-01-27 03:09:33 +00:00
Axel Dörfler dba0db7fbe Fixed all the broken signal stuff. Now correctly calls the user_*() function,
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
2003-01-27 03:07:30 +00:00
Axel Dörfler 2e7d51f89b Updated due to the changes in scheduler.c (resched() -> scheduler_reschedule(),
thread_enqueue_run_q() -> scheduler_enqueue_in_run_queue()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:05:09 +00:00
Axel Dörfler c333b5aa8e Replaced the standard thread functions with a BeOS compatible set.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:02:24 +00:00
Axel Dörfler 51cc35a759 Cleaned up the source, rearranged some functions. Now exported functions
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
2003-01-27 03:01:35 +00:00
Axel Dörfler 8ccc1ad67d mutex_lock() now prints out the semaphore ID if it panics.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 02:58:17 +00:00
Axel Dörfler fe8ffea9f4 Removed the kernel_posix_signal.o file - it's not needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 02:55:34 +00:00
Axel Dörfler a9731b41c1 Housekeeping changes and small bug-fixes:
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
2003-01-27 02:54:21 +00:00
Axel Dörfler dc7fb22c07 Forgot to resume the kernel_daemon thread.
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
2003-01-27 02:02:20 +00:00
Axel Dörfler 429578fb0b Team/image stuff now uses lists instead of kqueues.
The kernel_daemon now utilizes the updated list API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:31:38 +00:00
Axel Dörfler 878c4156af Added two convenience functions: list_add_item(), list_remove_item().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:30:53 +00:00
Axel Dörfler 7f1f508e13 Added two convenience functions list_add_item(), list_remove_item().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:30:12 +00:00
Axel Dörfler 04d145c94d The team's image API is now using "list" instead of "kqueue".
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:29:33 +00:00
Axel Dörfler 28bf3daa5d Implemented the kernel daemon service. It's not yet tested, but should be
equally inaccurate as the BeOS R5 version :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 17:31:33 +00:00
Axel Dörfler 8a5543b18c Added the kernel_daemon.h header which defines the init function for the
kernel daemon service.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 17:27:42 +00:00
Axel Dörfler 822ea83244 list_add_link_to_tail() didn't work correctly.
Applied fixes by notion: removed two redundant if-statements, replaced
(link *)list with &list->link.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-21 23:43:13 +00:00
Axel Dörfler 6fa8ddedd0 Added a gcc compilable MBR code - borrowed from FreeBSD. For later use with
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
2003-01-20 15:17:19 +00:00
Axel Dörfler d499baecf3 Added a comment about from where to start that application.
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
2003-01-20 08:59:04 +00:00
Axel Dörfler ffa7234e82 Added a missing struct definition.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-20 00:58:13 +00:00
Axel Dörfler a019a926d7 Added the specification documentation of the node monitoring implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 20:05:19 +00:00
Axel Dörfler 5369f0dd55 Now returns descriptive error messages if something went wrong.
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
2003-01-18 14:34:09 +00:00
Axel Dörfler 481ce84e6c A very basic node monitoring test - directly uses the kernel calls (since
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
2003-01-18 14:20:05 +00:00
Axel Dörfler 32a301820f Added node monitor syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:18:04 +00:00
Axel Dörfler 8177f89fd1 Added list.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:16:44 +00:00
Axel Dörfler 8cd0fe6e99 Added new doubly-linked list implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:15:20 +00:00
Axel Dörfler 5afbd29256 Added new files to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:14:07 +00:00
Axel Dörfler 457f7be6f9 Now uses the new list primitive instead of its own implementation (for linking
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
2003-01-18 14:13:44 +00:00
Axel Dörfler a7d654ad0a Added almost complete node monitor implementation - support for watching mounts/
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
2003-01-18 14:11:02 +00:00
Axel Dörfler 6d16fb1d30 Added some file system private function prototypes (for node monitoring/live queries).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:05:58 +00:00
Axel Dörfler f9bdcca59c Added kernel private node_monitor.h header.
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
2003-01-18 14:04:22 +00:00
Axel Dörfler fc3cda204e New list primitive.
A doubly-linked list with some nice features.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:02:47 +00:00
Axel Dörfler 658694ae79 Removed the old dlfcn.h header - the real thing is located in posix/.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 19:13:12 +00:00
Axel Dörfler 39de200904 Now you can really include it from the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 18:28:09 +00:00
Axel Dörfler b6a77342a5 Moved to os/drivers because it's not a userland header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 17:53:28 +00:00
Axel Dörfler 8f0cd8cdee Added header for node monitor calls for kernel add-ons.
Moved fs_interface.h to this location.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 17:52:33 +00:00
Axel Dörfler 31f5d420ed Redone the NodeMonitor.h header file to suit our needs (it can now also be
included from standard C).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 17:43:31 +00:00
Axel Dörfler 25f83d0202 Added the debugger.h header file (for being able to link it from the web).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-14 13:41:16 +00:00
Axel Dörfler 4530a79f4f Forgot a return value in remove_images().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-13 16:37:47 +00:00
Axel Dörfler 9f956562e5 Missed that one, obviously.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-13 16:36:25 +00:00
Axel Dörfler 81ff593b02 Added .fini section to the ld scripts.
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
2003-01-13 11:28:36 +00:00
Axel Dörfler 4f8cebc925 Fixes the build of rld.so, removed unneeded entries in librld.a.
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
2003-01-13 11:25:52 +00:00
Axel Dörfler b8000952ca Implemented BeOS compatible startup code.
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
2003-01-13 11:18:01 +00:00
Axel Dörfler f4c8b1eb40 Added support for BeOS executables, and the .init/.fini sections.
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
2003-01-13 11:08:18 +00:00
Axel Dörfler dd6f547c66 Moved "__progname" from startup code to libroot_init.c (because BeOS start_dyn.o
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
2003-01-13 10:50:14 +00:00
Axel Dörfler 75b2a820de Updated to be a bit more BeOS compatible (now calls B_INIT_BEFORE/AFTER_FUNCTION_NAME
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
2003-01-12 17:22:45 +00:00
Axel Dörfler e6e5ebbc10 Added a comment about the "non-thread-safety" of gStatus (dlerror()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 17:16:20 +00:00
Axel Dörfler 7dce97278f Implemented the unix dlfcn API; note, the RTLD_xxx modes are not yet supported
by the loader. dlerror() is not thread-safe.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 17:15:17 +00:00
Axel Dörfler eadb1c453a Now calls the __init__image() initializer function.
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
2003-01-12 17:13:32 +00:00
Axel Dörfler f9f3e26e3c Implemented the complete BeOS image API, added kernel image API syscalls,
added it to the build.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 17:11:53 +00:00
Axel Dörfler 0c79589d60 First set of changes to have a BeOS compatible runtime loader.
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
2003-01-12 16:59:18 +00:00
Axel Dörfler 077020137d Just cleanups, commented out unused code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:54:38 +00:00
Axel Dörfler 2a2cf1b8f5 Just some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:53:36 +00:00
Axel Dörfler 9bbbc67386 Removed the export prototypes - this is now completely done in rldexport.c.
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
2003-01-12 16:51:15 +00:00
Axel Dörfler 24154245f1 Fixed a comment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:48:48 +00:00
Axel Dörfler f351df0829 Moved export stuff to rldexport.c, rldexport_init() is now also called.
Cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:48:09 +00:00
Axel Dörfler 0119ceeb8e Implemented the runtime linker export API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:37:40 +00:00
Axel Dörfler c60685fcad Fixed parameter for get_nth_image_symbol().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:36:30 +00:00
Axel Dörfler 2700a953b9 Removed rldunix.c and rldbeos.c as they are no longer needed.
The runtime linker now exports the API in rldexport.c


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:32:30 +00:00
Axel Dörfler 1da55179ee thread_exit() now removes the registered images when the team goes down.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:30:09 +00:00
Axel Dörfler c8019cad42 Added support for the image queue in the team structure.
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
2003-01-12 16:29:28 +00:00
Axel Dörfler 75dccdb63c Added the image API syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:27:03 +00:00
Axel Dörfler 598e865517 Added image.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:26:39 +00:00
Axel Dörfler c679492034 Added a queue to the team structure for the registered images.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:25:04 +00:00
Axel Dörfler 29164895ac Must now include image.h directly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:24:12 +00:00
Axel Dörfler 9edac21abd Removed the image_id type definition from ktypes.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:23:21 +00:00
Axel Dörfler ef6d88af27 Renamed "struct rld_export_t" to "struct rld_export", "struct uspace_prog_args_t"
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
2003-01-12 16:22:09 +00:00
Axel Dörfler 30f9b99833 Added sys_ prototypes for the kernel image API syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:17:09 +00:00
Axel Dörfler 909f4951dd Added our dlfcn.h header - the RTLD_xxx constants may change, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:15:49 +00:00
Axel Dörfler 6cdae891c3 minor changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:10:28 +00:00
Axel Dörfler 49c987ef8d Added a macro to iterate through the kqueue.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:00:59 +00:00
Axel Dörfler 1c204d8bb9 Added syscalls for the image API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 15:59:50 +00:00
Axel Dörfler 9c12864dfd Header for the kernel image API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 15:59:12 +00:00
Axel Dörfler 515a4a6590 Implementation of the kernel part of the image API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 15:58:08 +00:00
Axel Dörfler 1ff1332c77 The bootmaker now defaults to the endian of the host platform.
Fixed style issues.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-10 11:48:38 +00:00