Commit Graph

707 Commits

Author SHA1 Message Date
Axel Dörfler
87ea713dec This file isn't used anymore (the config will be created by the build process).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-12 00:46:39 +00:00
Axel Dörfler
a457ef3c93 Moved the ld-scripts all in one place, instead of spread all over the
repository.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-12 00:45:08 +00:00
Ingo Weinhold
7f879cccff Rename SystemMain to BuildPlatformMain.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 17:29:06 +00:00
Axel Dörfler
db44cc624c Fixed a typo: don't use copy&paste...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 05:52:41 +00:00
Axel Dörfler
23d0f041d6 Added ldscripts for other kernel stuff.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 05:46:05 +00:00
Axel Dörfler
ed6b39346e Added dumb implementations for system_time() and TLS: system_time() currently
just returns the contents of the time base register, and the TLS implementation
is only working correctly for single threaded applications. Enough for testing,
at least.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 05:44:12 +00:00
Axel Dörfler
f45e90df37 Now accepts more PowerPC "standard" defines, which allows it to build here.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 03:15:41 +00:00
Axel Dörfler
14fcd1e5aa The cpuinfo app is only added to the x86 build for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 03:13:19 +00:00
Axel Dörfler
1f78a92b12 Implemented the atomic functions to get in touch with PPC assembly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-11 02:17:54 +00:00
Daniel Reinhold
cb25a0921b implemented tcsetattr()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 09:11:25 +00:00
Daniel Reinhold
15474ec36c added stubs for the termios speed control functions
they are stubs because the BeOS does not support them


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 08:06:33 +00:00
Daniel Reinhold
f291226628 initial implementation of ttyname()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 07:13:44 +00:00
Daniel Reinhold
789a8d2791 add termios to the build
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 03:29:59 +00:00
Daniel Reinhold
d122daf52a initial support for termios in libroot
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 03:25:10 +00:00
Daniel Reinhold
953aa0fc95 fleshed out some tty stuff...
isatty() is fixed - altho this is basically academic since we don't have any
drivers for terminal devices written yet (but at least the code is ready when we do)

also, ctermid() is implemented - which is of no big consequence


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-04 00:53:22 +00:00
Axel Dörfler
060ea25f57 Fixed makeflop on PPC (applied NewOS change 1778).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 17:24:23 +00:00
Axel Dörfler
7cbca7f74c boot headers have been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:33:09 +00:00
Axel Dörfler
b977a6087c The stage2 boot loader now links against the new arch dependent boot_arch_stage2.o.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:32:35 +00:00
Axel Dörfler
75d416a23e Fixed Jamfile - it doesn't try to build all architectures anymore, but only
the one it can.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:29:04 +00:00
Axel Dörfler
d0c59e6faf boot headers have been moved.
Now builds a boot_arch_stage2.o object file that can be used by the architecture
independent Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:28:05 +00:00
Axel Dörfler
b2704e693c boot headers have been moved, some cleanups, dbg_save_registers() renamed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:20:38 +00:00
Axel Dörfler
c182223b6e Updated core/arch/ppc section to be up-to-date again. Note, this only let
it build again; it doesn't work yet at all (pretty similar to NewOS change 1772).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:15:41 +00:00
Axel Dörfler
eda9fea884 Fixed Jamfile to not use OBOS_TARGET_DIR any longer (but OBOS_ARCH instead).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:12:46 +00:00
Axel Dörfler
99b8586b91 boot headers have been moved.
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:11:59 +00:00
Axel Dörfler
16b357f26a Renamed dbg_save_registers() to arch_dbg_save_registers() since it is implemented
in the arch dependent section.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:10:54 +00:00
Axel Dörfler
53a2f3f583 boot headers have been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:09:41 +00:00
Axel Dörfler
4802643275 stage.2 header has been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:09:01 +00:00
Axel Dörfler
64aebcff0e Added glibc's proprietary strchrnul() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:50:10 +00:00
Axel Dörfler
6e5e43433e atexit() is now thread-safe.
Now calls _IO_cleanup() instead of __cleanup() to be able to be compiled
against glibc stdio as well.
Renamed variables to be much nicer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:47:56 +00:00
Axel Dörfler
f57208999e Renamed __cleanup() to _IO_cleanup() to be able to compile the glibc version
as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:40:53 +00:00
Axel Dörfler
2b64308b14 Removed an unused header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:39:26 +00:00
Axel Dörfler
80403b993b Fixed arch Jamfile to not use OBOS_TARGET_DIR any longer.
Added math-arch PPC files - general status: working but not optimized.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:38:58 +00:00
Axel Dörfler
a0c16735c9 Added a temporary isatty() implementation (just checks for the fd number for now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:36:24 +00:00
Axel Dörfler
be3d86f793 Added empty Jamfile for the PPC build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 14:31:22 +00:00
Axel Dörfler
ec639282c8 Added files to build the PPC version. rldreloc.inc doesn't do anything
useful yet, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 13:47:03 +00:00
Axel Dörfler
8b75b64e81 Small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 13:44:56 +00:00
Axel Dörfler
a8130cded6 exit() now calls _thread_do_exit_notification().
Note, this is incompatible with the BeOS behaviour, which didn't call
the hooks when you exit()ed a program.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-28 11:11:26 +00:00
Axel Dörfler
c1615a93f0 No longer calls _thread_do_exit_notification() as exit() now does it.
Note, this is incompatible with the BeOS behaviour, which didn't call
the hooks when you exit()ed a program.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-28 11:10:09 +00:00
Axel Dörfler
d9e72f220a Reenabled the broken assert in free() and applied Travis' NewOS patch 1764
(which fixes that assert).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-21 08:25:26 +00:00
Axel Dörfler
c1705065da Doh, forget to add the license and author information.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-20 18:51:55 +00:00
Axel Dörfler
74b016ecad Added a basic pthread_mutex and pthread_mutexattr implementation which
will come in handy for the glibc stuff - and is great for our libroot.so,
too.
Everything should work except for: pthread_mutexattr_(set|get)prioceiling/
protocol(). That might be added at a later time, though, I don't consider
it a high priority.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-20 18:48:54 +00:00
Axel Dörfler
8120de4558 Implemented on_exit_thread() notification, making use of the new second
thread argument.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-18 09:41:10 +00:00
Axel Dörfler
08b73e5905 Added another argument parameter for the thread creation code. Helps
implementing a more efficient on_exit_thread().
Note, this extra parameter is currently only used for user space code,
not yet in the kernel; thus on_exit_thread() is not available in the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-18 09:38:28 +00:00
Axel Dörfler
8b5c1ef5f6 Does now call _thread_on_exit_notification().
Note, this probably should be called in exit() not here (for now, I copied
the BeOS behaviour).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-18 09:34:49 +00:00
Axel Dörfler
f68d61b912 Added a test for the on_exit_thread() implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-18 09:17:29 +00:00
Michael Phipps
d50d9a6a18 More code cleanup. Removing unused variables. Simplifying and shrinking
vpage to be nearly a TLB entry. Final stripping will occur with kernel
integration. More comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-26 04:00:38 +00:00
Axel Dörfler
95fed0d3e1 Added the includes needed to build GNU's libio package. Tries to be glibc
compatible while cleaning them up and reflecting our standard header
locations a bit more.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-24 00:15:24 +00:00
Axel Dörfler
c387fbc54b Added Jamfile to build the libio part of glibc (for now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-24 00:10:20 +00:00
Axel Dörfler
1d94abd7ae Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-24 00:07:36 +00:00
Axel Dörfler
38c6b242e6 Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-24 00:03:53 +00:00
Axel Dörfler
523bdc7eca Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-23 23:59:15 +00:00
Axel Dörfler
d1c90ca8b2 Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-23 23:57:50 +00:00
Axel Dörfler
000d24f681 Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-23 23:49:22 +00:00
Axel Dörfler
3075346683 Applied patch from Maurizio: fixed setting data part in smp_send_broadcast_ici() msg.
Added TRACE_SMP and a TRACE() macro that is used instead of dprintf() directly.
Also fixed all warnings with TRACE_SMP set to 1.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-18 02:08:51 +00:00
Michael Phipps
69d79fa9f8 More changes and bug fixes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-07 00:11:10 +00:00
Daniel Reinhold
c2a1fc3f66 removed a macro accidentally re-introduced on the last commit
changed the field order in a couple of structs back to their previous ordering


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-01 07:22:13 +00:00
Daniel Reinhold
70dee992a3 style changes -- purely cosmetic
normally, I wouldn't checkin a file with cosmetic changes only
however, Marcus just made a change on this file earlier today,
so the file would have to be rebuilt anyway -- might as well
make it pretty too!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-28 21:21:46 +00:00
beveloper
fb6067c507 removed experimental special case
fixed bug in get_nth_pci_info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-28 14:52:05 +00:00
Michael Phipps
a48062f5fa Many bug fixes and changes.
Also added "locked list" - a semaphore protected list derived from list.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-27 04:41:44 +00:00
Michael Phipps
7c9135c008 Updated and added some tests.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-27 04:40:34 +00:00
Axel Dörfler
43604406d8 Added a new call vfs_new_vnode() which can be used when a new vnode is created
but doesn't have to be read from disk for efficiency reasons.
Fixed a bug in get_vnode() in case of fs->get_vnode() returns an error of some
kind.
fs_mount() no longer hides the return code from the fs->mount() function anymore (for now).
Added some comments and ToDo items.
Changed some return error values to the B_xxx style (will probably need to define
some new error codes for OpenBeOS).
Changed some return types to status_t/void where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-21 13:49:26 +00:00
Michael Phipps
ccbd79a87e Update
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-18 23:56:53 +00:00
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
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
Ingo Weinhold
0598bd378f extended_partition_info::mounted_at is gone.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-08 00:40:48 +00:00
Ingo Weinhold
6342ffb32b Moved the implementation of the disk_scanner API out of the test code to the libroot sources, where it belongs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-02 22:47:24 +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
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
Philippe Houdoin
f3eabb6abd Backport time tracking fix from NewOS:
thread code now properly traces time spent in user vs kernel mode. The code was
just plain broken before
http://www.newos.org/cgi-bin/perfbrowse.perl?@describe+1704


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-29 21:59:37 +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
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
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
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
Michael Phipps
556632b760 bug fixes found as a resule of testing
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-24 05:41:40 +00:00
Michael Phipps
cd5053c617 More tests to round out (for now) createArea
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-24 05:41:10 +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
Michael Phipps
f5b024fb5d Slight changes/bug fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-21 02:45:14 +00:00
Michael Phipps
d89abe1f52 Added more mmap tests, and a file indicating what tests are yet to be done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-19 03:00:31 +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
Daniel Reinhold
d73534e172 added scanf() to stdio
(very curious that this was not already in there!)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 09:29:44 +00:00
Michael Phipps
6c18c9fa14 Small changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 01:40:36 +00:00
Michael Phipps
fa0e80da02 Small fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-17 00:54:52 +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
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
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
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
Ingo Weinhold
4a05764e4b Some smaller changes concerning the scanning of the settings file to make it behave more like BeOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 14:42:09 +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
Michael Phipps
8bd24c033e Moved Tests
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-10 01:20:51 +00:00
Michael Phipps
f767d0eeab Changes due to better testing
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-10 01:19:16 +00:00
Michael Phipps
cf7199ba56 Many changes due to enhanced testing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-10 01:09:45 +00:00
Axel Dörfler
4fff689f48 Some minor updates:
arch_cpu: could have used the TLS_SIZE macro in one place, removed
a now unused variable, assignments to tss_loaded are now booleans.
thread.c: added the new fields to _dump_thread_info().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-08 09:27:55 +00:00
Axel Dörfler
dd8e42a8b4 Also changed the (void *) to (void **) variable in tls_address() here
(the same change has already been done in support/TLS.h).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-08 09:14:16 +00:00
Axel Dörfler
f9afe354bf Added some calls to find_thread(NULL) which does now work as expected
(as it uses TLS, have a look at OS.h).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:56:33 +00:00
Axel Dörfler
20726b7fb1 _create_thread() now correctly allocates the stack with REGION_ADDR_EXACT_ADDRESS
from the USER_STACK_REGION (until B_BASE_ADDRESS is available), made it much better
readable. It now grows from the lower USER_STACK_REGION up to the start of the main
thread's stack location.
Calls arch_thread_tls_init() and accounts for the TLS area in the stack region.
Added some comments, some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:48:01 +00:00
Axel Dörfler
59cbb92fdf team_create_team2() now also allocates a region for TLS in the primary stack
area. It now also calls arch_thread_init_tls(). Cleaned it up to make it more
readable, added some comments.
Some other cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:40:59 +00:00
Axel Dörfler
2a6fbb7f88 Removed some hard-coded values with definitions (mostly USER_x_SEG in arch_x86.S,
and TSS_BASE_SEGMENT in i386_set_tss_and_kstack() (thanks Daniel for pointing this
out)).
Added a arch_thread_init_tls() function which fills the reserved slots - the find_thread()
inline asm in OS.h is finally working.
Added some more comments, resolved the ToDo items from last time :-)
arch_thread_context_switch() now calls set_tls_context() at the correct location.
arch_thread_enter_uspace() now calls set_tls_context() as there is no context
switch in this case for the current thread after TLS has been set up, and it
now gets a pointer to the thread structure directly, and calculates the user
stack top itself, rather than the callee.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:33:30 +00:00
Axel Dörfler
ccfdaba3e9 Moved the errnop() function to the new TLS stuff.
We now have a separate errnop() for the kernel, which just references
a field in the thread structure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:08:44 +00:00
Axel Dörfler
2d6ab447f9 Moved arch-dependent stuff to the correct location, no more #if __INTEL__
anymore.
Adapted tls.c to honour the reserved slots.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:05:27 +00:00
Axel Dörfler
0464331f06 The main thread didn't wait for the other threads.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:01:51 +00:00
Axel Dörfler
f143877df9 _start() now uses set_segment_descriptor() to initialize the GDT instead of
the direct values.
Some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:33:59 +00:00
Axel Dörfler
39c5004d20 Replaced the select_test application with tls_test in the boot image.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:31:26 +00:00
Axel Dörfler
19321ae5a8 Temporarily removed arch_selector.c from the build - it's currently not used
at all, and assumes a fixed and wrong number of preallocated GDT entries.

Implemented TLS: there is one GDT entry per CPU. If a context switch happens,
the FS register of the new thread is set to the matching GDT, and the GDT is
changed so that it points to the current thread's TLS storage area.
This area currently resides unsafely at the bottom of the user stack - for
some reason I could not figure out, it doesn't even work correctly most of
the time (it segfaults when accessing a slot via FS). I've added a ToDo item
explaining the situation - hopefully I have more ideas when I slept a bit more...

The GDT is now no longer static in arch_cpu.c and has been renamed from gdt to
gGDT. It's now also referenced in arch_thread.c, and it would make sense for
arch_selector.c to use it as well (instead of another local copy).
arch_cpu_init2() now uses the set_tss_descriptor() inline function and the
TSS_BASE_SEGMENT macro to set up the TSS section. It now also sets up the
TLS segment descriptors (as TSS, one entry per CPU).

Since I removed desc_table from the headers (the GDT is now a (segment_descriptor *)),
I added it locally to arch_int.c.
i386_enter_uspace() now don't set the FS register to 0x23 anymore, since it's
now already set correctly at the end of arch_thread_context_switch().

Some clean-ups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:25:01 +00:00
Axel Dörfler
722bf47f67 Added some ToDo items.
Smaller cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:10:54 +00:00
Axel Dörfler
1d661e3285 Just slightly changed a comment; there was more, but I removed that, and
I was too lazy to revert that little change back, so that I would be able
to write this short paragraph explaining what I've done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:10:03 +00:00
Axel Dörfler
d703e5451d Removed an XXX comment question, and replaced it with an explanation of the
issue.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:08:13 +00:00
Axel Dörfler
831e32af8c Userland part of the TLS implementation for x86.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:05:09 +00:00
Axel Dörfler
1f149d94c4 Added a simple TLS test app.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:04:21 +00:00
Michael Phipps
954674ddf8 Changes to mmap to make COPY and SHARED work correctly (I hope)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 04:49:58 +00:00
Axel Dörfler
50808915da Removed unused file int.c.
Minor style changes in arch_vm*.c


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-02 13:56:53 +00:00
Axel Dörfler
e8bfc82801 Removed config_manager from the old location (now in src/add-ons/kernel/bus_managers)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-02 13:23:06 +00:00
Axel Dörfler
c893786008 Exported the whole known driver module API - not implemented yet, though.
Removed the probably broken bus module info.
Renamed functions cfdm -> driver, cfbm -> bus.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-31 18:33:32 +00:00
Axel Dörfler
ed5c11d75a Included NewOS change 1674 - moved architecture dependent part of elf.c
to the correct location.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 13:33:22 +00:00
Axel Dörfler
7747cd8133 Included Travis' change 1687.
Cleanups, added TRACE() debugging macro instead of commented dprintfs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 11:18:57 +00:00
Axel Dörfler
2d4d170f83 Some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 11:17:36 +00:00
Michael Phipps
bf738c95da Added the device driver API that Axel reminded me about.
Updated the TODO list. This is 99% feature complete.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-21 07:47:05 +00:00
ejakowatz
b6b5037ebe Added a *lot* of error strings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-18 07:34:58 +00:00
stmansfield
84119b81af Addeded parenthesis around assignment/comparison statement
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-18 05:07:54 +00:00
Michael Phipps
8f72c5bcf2 Fixed a bug in the vnodeManagement
Added statistics counting.
Started down the path of making various tests share one VM space.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-17 02:28:39 +00:00
Michael Phipps
ad5da074bb Removed items, updated items, reordered my priorities...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-15 07:08:41 +00:00
Michael Phipps
ceb3763e56 Implemented the sharing of vnodes. Hopefully mmap and file cache and cloned
areas will not step on each others feet...
Added comments all over the place.
Bugs squished


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-15 07:05:38 +00:00
Axel Dörfler
ce29ea4e8f Removed it again :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-10 04:27:38 +00:00
Axel Dörfler
796a8651e9 Added a skeleton for the image API. Contains almost no code yet, though, only
some structure definitions (to outline some basic ideas), and the symbols
exported to userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-10 03:36:18 +00:00
Axel Dörfler
d768457f49 Included NewOS change 1685 in OpenBeOS; a fix for the VM.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-08 23:12:09 +00:00
Philippe Houdoin
a4d52d3edf Add missing headers/os/drivers/KernelExport.h functions here and there.
Some int -> cpu_state cleanup on the way, and implement the
B_KDEBUG_CONT and B_KDEBUG_QUIT features in our kernel debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-07 00:25:50 +00:00
Axel Dörfler
424880282f Fixed a warning.
Replaced "int state" with "cpu_status state" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-04 16:40:07 +00:00
Axel Dörfler
fb101ff170 Completely rewritten the module iterator code. Fixed many bugs in that
code and made it much simpler (it now just uses a stack of path names
instead of this complex doubly-linked module_iterator_dir list).
Now works together with the rest of the code without making any problems.
Added a module_test() function which iterates over all existing modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 17:54:09 +00:00
Axel Dörfler
ac5b2b4ece bootfs_read_dir() and devfs_read_dir() both returned B_ENTRY_NOT_FOUND
instead of B_OK for the last directory entry.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 17:49:28 +00:00
Axel Dörfler
744761bf27 Removed the team->path variable. Renamed ioctx to io_context.
Some cleanups, moved user_*() functions to the end of the file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:17:53 +00:00
Axel Dörfler
1291a19d84 thread->page_faults_allowed is now initialized.
Updated due to the ioctx -> io_context change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:11:35 +00:00
Axel Dörfler
5cdaa5176e Now panics if page faults are forbidden and happen anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:10:34 +00:00
Axel Dörfler
52bd3fc17c Implemented forbid_page_faults() and permit_page_faults(), added a new
field to the thread structure to keep track of the current state.
forbids/permits can be nested.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:09:43 +00:00
Axel Dörfler
aeb5053982 Added empty (until TLS steps in) function stubs for:
permit_page_faults(), and forbid_page_faults().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 01:50:55 +00:00
beveloper
7d9fdf5918 make sure that the stack page is in place before disabling interrupts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-30 02:36:31 +00:00
beveloper
c0d31b20ab Fixed the detection of page faults that happen while interrupts were
disabled. If a page fault happend while a interrupt handler is executed,
or while a section of code is running with interrupts disabled (with the
exception of the initial kernel startup), the page fault handler will
now panic, to give you the chance to fix the bug.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-30 02:01:29 +00:00
Axel Dörfler
edd97f84ad Fixed return code (using errno) of readdir().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:47:01 +00:00
Axel Dörfler
750a82c5d3 Added new debug output macros (TRACE()).
thread_exit() for now prints a warning if it was called with interrupts
disabled.
Fixed a bug in thread_exit2() that restored the interrupts too early,
instead of simply enabling them (and restoring them later) [found by
Marcus O. great debug additions].
Fixes for the khash changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:42:52 +00:00
Axel Dörfler
14d9bcd728 Fixed two warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:39:34 +00:00
Axel Dörfler
3ae9bebe33 Fixes for the khash changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:38:52 +00:00
Axel Dörfler
fc88dc959f Added a missing include (and fixed a warning this way).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:37:19 +00:00
Axel Dörfler
8a91be0446 Removed two warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:36:42 +00:00
Axel Dörfler
8a531eeb0a Fixes for the changes in khash.
Now the d_reclen field of struct dirent is correctly calculated in all
file systems (read_dir() function).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:36:05 +00:00
Axel Dörfler
b9b1c1c4f5 Almost completely rewritten module.c. Locking now works correctly, memory
leak fixed, some other bugs fixed, removed the global queues as there weren't
needed and used at all, moved to the other hash table implementation
(because the new_hash_table stuff was buggy). Should really work okay now :-)

Added the last missing function get_next_loaded_module_name() - I am not
sure the Be version works this way, but we could easily change that after
actually having found out how that one is really working.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:33:57 +00:00
Axel Dörfler
d92e4b19e4 Completely removed the buggy, inflexible, and incomplete new_hash_table
implementation.
Some cleanups of the other code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:30:20 +00:00
beveloper
0010bfc64f the new_hash_table code has a larger number of problems
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 17:34:55 +00:00
beveloper
428f0ce25c last cleanup of pool code before rewriting it
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 15:05:58 +00:00
beveloper
9c2992c73b fixed debug function
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 14:41:06 +00:00
beveloper
9eb6ed8082 disable interrupt check when in a panic() context
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 14:11:08 +00:00
beveloper
3b70f94330 added a magic value to check clobbering of the free list
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 14:10:20 +00:00
beveloper
7991b1a031 added a lot of debugging functions that should help fixing bugs
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 02:25:04 +00:00
Michael Phipps
42ff0425a7 Fixed more bugs; simpleTest now seems to work correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-24 05:12:50 +00:00
Michael Phipps
cc22bcb449 Fixed some bugs. Yet another checkpoint.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-24 04:16:06 +00:00
beveloper
d8dd74308e Optimized (yes, we shouldn't do it now) to consume less power on P4,
and to have better performance on Hyper Threading systems. Should be
backward compatible with all x86 systems, according to Intel documentation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-23 17:43:36 +00:00
Axel Dörfler
fe8ba34097 Removed raise.o from the kernel posix lib, because find_thread() is currently
missing there.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 02:15:29 +00:00
Daniel Reinhold
ca60e89ab7 replaced syscall with find_thread(NULL) to obtain current thread id
currently, find_thread(NULL) also uses a syscall, but in the future,
this will be implemented as an efficient inline lookup in calling
thread's local storage


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 20:57:55 +00:00