Commit Graph

52 Commits

Author SHA1 Message Date
Ingo Weinhold
716a16ce61 * Find out a few interesting information about the system (like CPU,
bus, and time base frequency) in the PPC boot loader, and propagate
  them to the kernel via kernel_args.
* Now we use the correct time base frequency for timer calculations.
* Implemented PPC specific system info stuff. Added a few PPC CPU
  types to <OS.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15817 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 13:30:23 +00:00
Axel Dörfler
348c7214f5 Improved processor identification for some VIA C3 models.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 11:55:01 +00:00
Ingo Weinhold
758b1d0e05 Fixes that make Haiku build with gcc 4. Mainly out of the following
categories:
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
  declarations).
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
  explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
  something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
  'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
  is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
  Otherwise the an inner class with that name is considered as friend.
  gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-12 23:27:14 +00:00
Axel Dörfler
9235adf794 The cpuid "extended features" in function 1/%ecx aren't Intel only anymore - my
AMD docs were not up to date. Thanks to Herve for the note.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-30 18:26:41 +00:00
Axel Dörfler
1c016e0e3f Cleaned up OS.h a bit more.
Return type of thread_func is now status_t instead of the previous int32.
Added some more cpuid_info fields - many fields aren't just reserved anymore.
"sysinfo" now supports the extended features of Intel CPUs, and also knows
the "HTT" bit of the standard features indicating the hyper-threading capability.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-26 22:46:30 +00:00
Marcus Overhagen
794df3bf25 This removes the inline assembly code for find_thread
from OS.h, sorry for triggering a complete rebuild.
To avoid doing a syscall for find_thread(0), the assembly
version is now in libroot. For BeOS R5 compatibility, 
_kfind_thread_ is retained. This will fix some compile 
problems, and provides a cleaner OS.h for future Haiku
versions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 23:57:11 +00:00
Axel Dörfler
183dee22cb Unlike R5, receive_data() could return an error code under Haiku - this
can now only happen if the thread is killed.
_user_receive_data() will now longer pass B_CAN_INTERRUPT to receive_data(),
but B_KILL_CAN_INTERRUPT - this should fix the problem Stefano experienced
with this function, even if I couldn't reproduce it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-12 11:14:37 +00:00
Jérôme Duval
5258e67dff Courtesy of Olivier Coursiere (aka oco), based on documentation (feel free to check against real hardware)
Adds latests IDs from Intel docs
Adds some Sempron IDs
Renamed Athlon 64 to be consistent with Intel names
Adds IDs in cpu_type.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-17 22:46:08 +00:00
Ingo Weinhold
576c52f8b1 Added the gcc printf format attribute for debug_printf(), so that gcc warns about format/parameter inconsistencies.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 15:25:57 +00:00
Axel Dörfler
34e92cad76 Added and implemented new system calls switch_sem() and switch_sem_etc(); even if
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:35:00 +00:00
Ingo Weinhold
17e41f5251 Added new semaphore flag B_KILL_CAN_INTERRUPT. It makes acquire_sem_etc()
interruptable by SIGKILL[THR], even if B_CAN_INTERRUPT is not set. Not
sure, if this is the best solution, but it works.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-25 14:10:41 +00:00
Ingo Weinhold
06f5fe61a2 * Removed B_USER_CLONEABLE_AREA. The value conflics with other flags and
it does belong to <KernelExport.h> anyway.
* Reverted the protection flags back to decimal for consistency with the
  other places. BTW, since when do we use decimals for flags?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 22:54:22 +00:00
Ingo Weinhold
6e9582baf1 Introduced new protection flag B_USER_CLONEABLE_AREA. It makes kernel areas cloneable for userland apps.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 22:11:59 +00:00
Ingo Weinhold
57b6c3bcad * Changed return value of read_port[_etc] from status_t to ssize_t. That's
not how it is declared in R5, but it is what actually is returned.
* Temporarily added debug_[v]printf() functions for userland usage,
  equivalent to dprintf() in kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-15 21:41:14 +00:00
Axel Dörfler
c05649ebef Fixed a typo reported by John Drinkwater.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-28 16:38:48 +00:00
Axel Dörfler
bc93cc3fa7 Happy source compatibility breaking:
- Removed the OBOS_CPU_TYPE stuff - our types are now always defined.
- Made the cpu types consistent, renamed X86 to x86.
- cpuid_info.eax_1 now also contains the extended family/model info.
- Renamed cpuid_info.eax_0.vendorid to vendor_id.
- changed B_CPU_x86_VENDOR_MASK to 0xff to make some space for future changes.
- added some more CPU types (if anyone knows more Transmeta IDs; I
  couldn't find more of them).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 03:36:48 +00:00
Axel Dörfler
d76bee070b Added a note to the new B_TEAM_USAGE_SELF/CHILDREN constants that they
are compatible to sys/resource.h definitions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:59:45 +00:00
Axel Dörfler
40bfa3f782 The inline version of find_thread() now references _kern_find_thread() if
__HAIKU__ is defined.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:52:29 +00:00
Jérôme Duval
83b629e1ad Added Pentium M cpu type
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 14:07:56 +00:00
Jérôme Duval
f9b87f230b Patch from Olivier Coursiere, adds Athlon 64 and Opteron values. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 21:48:53 +00:00
Axel Dörfler
9de969006b Added two experimental release_sem_etc() flags (both should stay, but they
may be renamed):
- B_RELEASE_ALL: the semaphore count is set to 0, all waiting threads are released
  (the "count" argument of release_etc_sem() is ignored then)
- B_RELEASE_IF_WAITING_ONLY: the semaphore count is only decreased if there
  are any waiting threads; ie. the semaphore is signaled
Together, they will make the pthread_cond_*() functions easy to implement, and
they come in handy at other places, too.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-13 15:54:47 +00:00
Axel Dörfler
76b72b95e1 Removed delete_sem_etc() prototypes as that function is no longer available
(and never was in userspace, anyway).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-13 14:58:14 +00:00
Axel Dörfler
9fdf5bbb13 Resolved an old ToDo item; thanks to Rogier van der Hee for pointing this out.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-05 00:30:46 +00:00
Axel Dörfler
3f403c721c Since our libroot/os/thread.c already exports this, we can as well just add
it to the header, too :)
(it's a new function in Dano/Zeta)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-29 20:04:07 +00:00
Axel Dörfler
06e37d1ea5 Fix missing identation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-10 13:24:14 +00:00
Axel Dörfler
6f3a136e47 Added the inline x86 asm version of find_thread() as it is found on BeOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 00:44:18 +00:00
Axel Dörfler
7ba272b8b3 Added a B_CURRENT_TEAM constant - it's not available in BeOS, but it's
actually used at several places (like get_next_thread_info(), ...).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:32:44 +00:00
Axel Dörfler
afa70266a3 Fixed set_real_time_clock() - its time parameter is now uint32 not int32,
that's what real_time_clock() returns as well. I don't know why Be made
it int32, but I don't care too much either.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 14:50:15 +00:00
Philippe Houdoin
c6f77f6c2c Trying to be quicker than shatty to add more ids, courtesy of pulse 1.07 on bebits.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-18 21:38:16 +00:00
shatty
3c90558523 okay, last commit for today :-P ... protected non-R5 cpu types with #define OBOS_CPU_TYPES and #ifdef OBOS_CPU_TYPES
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-13 19:33:22 +00:00
shatty
7aae8aac0e not all iv_model2 are xeon so I am taking it back out...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-13 18:22:17 +00:00
shatty
9a7fc04885 used xeon name directly, left IV_MODEL2 as another alias
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3499 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-13 18:12:26 +00:00
shatty
09b1f9ddba added some more ids, courtesy of pulse 1.06 on bebits
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-13 17:56:05 +00:00
Philippe Houdoin
9360e22d50 Add missing cpu_type values for AMD Athlon and Duron processor.
Next step: add B_CPU_INTEL_PENTIUM_IV, when we could boot successfully on such beast ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-25 21:31:45 +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
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
François Revol
2a03a60a17 Added some B_CPU_ defines, compatible against R5.1.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-08 16:50:28 +00:00
beveloper
1be91d1603 added thread_entry for backward compatibility
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-26 12:58:12 +00:00
lillo
8fe70e8212 beos compatibility fixes: exit_thread now issues a signal; wait_for_thread returns B_INTERRUPTED if target thread gets killed
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-26 01:11:15 +00:00
beveloper
d7e489f80a modified to provider better R5 compatibility
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-23 13:45:47 +00:00
Axel Dörfler
c321cf4929 Completed, rearranged, and cleaned up OS.h. Moved some typedefs from ktypes.h
to this place. Also removed create_sem_etc() from there, that shouldn't be a public call.
Cleaned up image.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-05 01:19:31 +00:00
Axel Dörfler
085320eab2 Fixed some header issues (mostly int, status_t).
Replaced <types.h> with <sys/types.h> because that's what those headers
were looking for.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:31:05 +00:00
Axel Dörfler
3f6f3d2921 Added Errors.h, since SupportDefs.h can't be included for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-22 15:58:49 +00:00
beveloper
90abd04b34 Change int into status_t, and other changes for better BeOS type compatiblitly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-03 02:19:22 +00:00
lillo
615a79cc3c Implemented send_data/receive_data/has_data thread syscalls
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-19 08:28:39 +00:00
lillo
91363a4278 Converted thread states to BeOS equivalents (excluding THREAD_STATE_FREE_ON_RESCHED, which will probably go away once the slab allocator is in). Converted priorities to BeOS equivalents; we now have 60 priority queues to map the 120 BeOS priority levels (which have a granularity of 2, thanks Axel) plus the idle queue. Fixed PS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-04 20:10:06 +00:00
lillo
854c31f835 finished implementing get_thread_info, get_next_thread_info, get_team_info, get_next_team_info. New ps command behaving like the BeOS one is here, but doesn't work as libroot seems to crash when loaded at process startup... :/
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-04 02:04:37 +00:00
lillo
aded06e0aa Second round of changes. Splitted thread.c into thread.c, team.c and scheduler.c. First kernel-only get_team_info and get_next_team_info implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 23:39:50 +00:00
lillo
3cfbecf1a6 First round of big changes: the term team has replaced proc all over the kernel, the few kern_* syscalls have been renamed to sys_* for consistency, and other small changes. The ps app is temporarily disabled until get_next_team_info is implemented.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 00:41:27 +00:00
David Reid
3088c8d093 Add the prototype for snooze.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-12 20:26:06 +00:00