History log of /haiku/headers/os/kernel/OS.h
Revision Date Author Comments
# 8a0c9d52 10-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

OS: Rename B_USER_CLONEABLE_AREA to B_CLONEABLE_AREA.

It now lives in OS.h. The idea is that this will now be
accessible to userland applications, so userland memory
is protected from access by other processes, just as
kernel memory is.

No functional change (the constants are still the same,
though I've changed some to use shifts to make clear
which bits are allocated are which are unused.)


# 69712d5c 18-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

OS.h: Reorder includes alphabetically.


# f1fafe31 12-Apr-2019 Augustin Cavalier <waddlesplash@gmail.com>

kernel/OS.h: Include sys/types.h instead of pthread.h.

This avoids polluting the namespace significantly. Also adjust
all files which depended on this behavior to include pthread.h
directly.


# 5ffbe7d7 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change all references to "__INTEL__" to "__i386__".

They are functionally identical, but the former is a BeOS/Haiku-specfic
macro that we include in the compiler specs, and the latter is defined
by GCC.


# 7d8eb4d7 16-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

time: Address review comments.

* Use ENOSYS not B_DONT_DO_THAT (thanks korli)
* Use unsigned long not uint64 (thanks axeld)


# 9a50e01e 15-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

set_real_time_clock: Change parameter from uint32 to uint64.

This should have been done along with the time_t change, but I forgot
to check this then.

Technically this breaks ABI against BeOS, but:
1. BeOS used an int32, so we'd already slightly broken ABI here
2. Only one thing at HaikuArchives (VMwareAddons) and one recipe at HaikuPorts
(samba) uses this function at all.

If it turns out some critical BeOS app uses this, then I guess we can enclose
GCC2 guards around it, but since I can't find any evidence of that, I'm
pushing it without them for now.


# 97dfeb96 27-Mar-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Make some headers C89 safe again

- Allows to use FindDirectory.h in C89 sourcecode (no C++ style comments
allowed)


# 14919567 19-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel: Add more architecture code post-scheduler

* Fix incorrect cpu vendor name mapping
* Add additional CPU architectures
* Add additional CPU vendors
* Rework PowerPC arch_system_info passing
PVR back for cpu model


# 32d1afe0 19-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

Remove B_CPU_x86_VENDOR_MASK


# 7c28f773 14-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

system: Improve AMD CPU detection

* Several CPUID's were thrown into the Athlon 64
catch all. Add Sempron 64 and correct CPUIDs
solves #9553
* Add better AMD A-Series detection


# 586d22c9 11-Jan-2014 François Revol <revol@free.fr>

Fix function prototype to be valid C


# 81e04d7b 03-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Remove cpu_info::load

This field forces kernel to track each CPU load all the time. It is not
a problem with the current scheduler on a multicore systems, but on
single core machnies or with any other future scheduler this field may
become just an unnecessary burden. It isn't difficult for an application
to compute CPU load by itself when it needs it.


# f8da8f34 01-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

ARM: Be aware of ARMEL and ARMEL

* My BeagleBone gcc defines __ARMEL__ but not
__ARM__ which breaks the native tool builds
* As ARM was originally Little Endian, we assume
__ARM__ means as such.
* Look for Big Endian ARM and define the needed big
endian preprocessors


# d02aaee1 15-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, libroot: Add more memory info in system_info

system_info now contains all information previously available only
through __get_system_info_etc(B_MEMORY_INFO, ...).


# 1bc7045f 15-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, libroot: Introduce new API for obtaining system info


# bcfdf881 06-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

apps, kernel: Remove B_MAX_CPU_COUNT


# 5d0a1da8 14-May-2013 Pawel Dziepak <pdziepak@quarnos.org>

libroot: make all areas executable for old binaries

* If at least one image is either B_HAIKU_ABI_GCC_2_ANCIENT or
B_HAIKU_ABI_GCC_2_BEOS almost all areas are marked as executable.
* B_EXECUTE_AREA and B_STACK_AREA are made public. The former is enforced since
the introduction of DEP and apps need it to correctly set area protection.
The latter is currently needed only to recognize stack areas and fix their
protection in compatibility mode, but may also be useful if an app wants
to use sigaltstack from POSIX API.


# bf65fc1d 09-Apr-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: remove B_RANDOMIZED_IMAGE_ADDRESS address specification

This address specification is actually not needed since PIC images can be
located anywhere. Only their size is restriced but that is the compiler and
linker concern. Thanks to Alex Smith for pointing that out.


# 65ed4fa9 03-Apr-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_IMAGE_ADDRESS address specification

On some 64 bit architectures program and library images have to be mapped in
the lower 2 GB of the address space (due to instruction pointer relative
addressing). Address specification B_RANDOMIZED_IMAGE_ADDRESS ensures that
created area satisfies that requirement.


# b3e4c677 26-Feb-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_ANY_ADDRESS address specification

Randomized equivalent of B_ANY_ADDRESS. When a free space is found (as in
B_ANY_ADDRESS) the base adress is then randomized using _RandomizeAddress
pretty much like it is done in B_RANDOMIZED_BASE_ADDRESS.


# f9bab525 25-Feb-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_BASE_ADDRESS address specification

B_RAND_BASE_ADDRESS is basically B_BASE_ADDRESS with non-deterministic created
area's base address.

Initial start address is randomized and then the algorithm looks for a large
enough free space in the interval [randomized start, end]. If it fails then
the search is repeated in the interval [original start, randomized start]. In
case it also fails the algorithm falls back to B_ANY_ADDRESS
(B_RANDOMIZED_ANY_ADDRESS when it is implemented) just like B_BASE_ADDRESS does.

Randomization range is limited by kMaxRandomize and kMaxInitialRandomize.


# 190423a6 20-Mar-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

cpu_type: Add model 2 AMD FX CPU


# 9a5503d0 01-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Different uname machine type for x86_64.

* Added B_64_BIT_PC_PLATFORM platform type.
* Return "x86_64" as the machine type for that platform in uname.


# 6e2f6d1a 29-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Changed cookie type for get_next_area_info() to ssize_t.

The cookie is used to store the base address of the area that was just
visited. On 64-bit systems, int32 is not sufficient. Therefore, changed
to ssize_t which retains compatibility on x86 while expanding to a
sufficient size on x86_64.


# 78d482e3 05-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Style fixes.


# 4304bb98 04-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added arch_cpu.cpp to the x86_64 build.

* Some things are currently ifndef'd out completely for x86_64 because
they aren't implemented, there's a few other ifdef's to handle x86_64
differences but most of the code works unchanged.
* Renamed some i386_* functions to x86_*.
* Added a temporary method for setting the current thread on x86_64
(a global variable, not SMP safe). This will be changed to be done
via the GS segment but I've not implemented that yet.


# 548b1a49 04-Jun-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

cpuid: Rework AMD CPUID numbers

* If family is 0xF, we grab extended family and model
like Intel does
* Idenfify AMD cpu's more correctly


# 1c2d7d3a 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# f1eeb323 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 24df6592 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 95300274 02-Jan-2011 Ryan Leavengood <leavengood@gmail.com>

Apply patch from augiedoggie for #6258 which adds Athlon Phenom II's to the CPU
identification list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 308ca58d 03-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* deprecated set_timezone(), as we no longer support (and need) timezone files

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fb2d737 23-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced B_32_BIT_MEMORY by B_32_BIT_FULL_LOCK and B_32_BIT_CONTIGUOUS, so
the constraint can be expressed more precisely. ATM B_32_BIT_FULL_LOCK is
implemented as B_32_BIT_CONTIGUOUS when B_HAIKU_PHYSICAL_BITS > 32, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be87d0a0 21-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added area creation "lock" constant B_32_BIT_MEMORY for physically
contiguous memory < 4 GB.
* vm_create_anonymous_area(): Implemented support for B_LOMEM and
B_32_BIT_MEMORY.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37200 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a2b528e 19-Jun-2010 Wim van der Meer <wpjvandermeer@gmail.com>

Report ignored memory pages seperately, thanks to bonefish for the patch review. Closes ticket #6178

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fbfe93a 28-Mar-2010 Siarzhuk Zharski <zharik@gmx.li>

- CPU identification for 'Core i5 CPU M 430 @ 2.27' added. Reported by Evgeny Abdraimov.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 408a0aa2 10-Feb-2010 Siarzhuk Zharski <zharik@gmx.li>

Identification for "Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz" added.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35450 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34a48c70 07-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added type nanotime_t (an int64 storing a nanoseconds value) and function
system_time_nsecs(), returning the system time in nanoseconds. The function
is only really implemented for x86. For the other architectures
system_time() * 1000 is returned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c7b2520 07-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added get_pthread_thread_id() function returning the Haiku thread_id of a
pthread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33927 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e628f41c 13-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33586 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2e0606e 06-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by "v" to distinguish between different processors with the same CPU-ID.
Slightly enhanced coding style by myself. Should fix ticket #3541. Thanks a
bunch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adc602a4 30-Sep-2009 imker <imker@nowhere.fake>

Model string for Core i7 920 @2.66 added.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7af3465e 02-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Made set_timezone() argument const - it's not supposed to mess with it.
* Renamed time.c to time.cpp.
* set_timezone() now uses localtime_r() instead of localtime(), and will also
no longer fail in case there was no timezone symlink before.
* Cleaned up OS.h header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7d1aa19 25-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added system_info::abi field. It contains the system's ABI version, which
might be different from that of the caller (on hybrid builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30858 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa8a3a17 03-May-2009 Jonas Sundström <jonas@kirilla.com>

Staking out some mipsel ground.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30619 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33941551 10-Apr-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

(Joerg Meyer) - Add Via processors IDs(Esther/Isaiah)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0c9d3e7 03-Apr-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Path by Joerg Meyer
- Add identification for Efficeon CPUs



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29885 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1f3108a 10-Nov-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Scott:
Make sure the comments are C style in headers that are included by POSIX
headers.

Thanks! Should fix #2870.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c1e463c 05-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed B_{MIN|MAX}_PRIORITY from OS.h - they were never really intended
as public defines. They are now called THREAD_{MIN|MAX}_SET_PRIORITY to
better reflect what they are for. Minimum priority is now 1, ie. you no
longer can set another thread to the idle priority. This fixes part of
ticket #2959.
* set_thread_priority() will no longer allow to change the priority of the
idle thread to something else. This fixes the rest of ticket #2959.
* Automatic whitespace cleanup in OS.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0b788ce 07-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fixed Atom id. Thanks katisu!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc08d5dc 04-Sep-2008 Jérôme Duval <korli@users.berlios.de>

added B_CPU_INTEL_ATOM, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a76e1d 26-Jul-2008 Jérôme Duval <korli@users.berlios.de>

added amd phenom cpu type, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26642 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4092833 21-Jun-2008 François Revol <revol@free.fr>

Set max cpu count to 1 for ARM. Anyone knows a real SMP platform using it ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d3680aa 10-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added timeout constant B_ABSOLUTE_REAL_TIME_TIMEOUT which specifies a
timeout relative to the Epoch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25434 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7727e08e 17-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added experimental public API get_port_message_info_etc(). It is similar
to port_buffer_size_etc(), but returns the info through a structure,
which also identifies the sender (uid, gid, team ID) of the message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 044f45b2 15-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Another patch by Hervé W.
- Updated code so Processor IDs for older processor do not have to be
modified.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 801fe71d 13-Apr-2008 Jérôme Duval <korli@users.berlios.de>

added amd geode lx cpu type, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c383d98 13-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

Applied patch by Hervé W.

- Updated Intel processor IDs.
- Only take extended family/model into account on Intel processors.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24958 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e11596a 29-Mar-2008 Jérôme Duval <korli@users.berlios.de>

added athlon 64 model 3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41f8d416 25-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

Applied patch by Rene Gollent:
* Add a cached_pages field to the system_info structure, and change the
meaning of the used_pages field to not include cached pages.
* Provide the needed info using the new calls vm_get_available_memory(),
and vm_page_num_available_pages().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a66a9b8 21-Mar-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Added support in system info for extended cpu family and model.
- Take extended family and model into account when generating the cpu
type and revision.
- Added Intel Core 2 Extreme to the cpu list.

Please review.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24509 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a54c125e 21-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added experimental ktrace_[v]printf() functions to libroot. Their output
is recorded in a kernel trace entry (if tracing is enabled).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b3123cf 30-Oct-2007 François Revol <revol@free.fr>

Add the Amiga and Atari platforms (sorry to force a rebuild :p).
Mac is there already (TODO: rename some stuff from apple to mac).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae8bc15a 23-Oct-2007 François Revol <revol@free.fr>

Some more of m68k. Added errors where ports should add stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 636bfc08 02-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of
vfs_select.h, respectively moved most of it into the new kernel
private header wait_for_objects.h.
* Added new experimental API functions wait_for_objects[_etc](). They
work pretty much like poll(), but also for semaphores, ports, and
threads.
* Removed the "ref" parameter from notify_select_events() and the
select_sync_pool functions as well as from fd_ops::fd_[de]select(). It
is no longer needed. The FS interface select() hook still has it,
though -- the VFS will always pass 0.
* de]select_fd() take a select_info* instead of a select_sync* + ref
pair, now. Added respective functions for semaphores, ports, and
threads.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c97a8d1 14-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Use -I instead of -isystem for system header directories when building
with gcc 4. Fixed resulting build errors (gcc is more lenient for
headers in -isystem directories).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e8adb7d 24-Aug-2006 Jérôme Duval <korli@users.berlios.de>

added core and core 2 ids


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18603 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2c5594f 29-May-2006 Axel Dörfler <axeld@pinc-software.de>

B_SYSTEM_TEAM is now 1 under Haiku which refers to the real kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17645 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 716a16ce 03-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 348c7214 16-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Improved processor identification for some VIA C3 models.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 9235adf7 30-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 1c016e0e 26-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 794df3bf 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

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


# 183dee22 12-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 5258e67d 17-Apr-2005 Jérôme Duval <korli@users.berlios.de>

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


# 576c52f8 28-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 34e92cad 17-Mar-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 17e41f52 25-Feb-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 06f5fe61 25-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 6e9582ba 25-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 57b6c3bc 15-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# c05649eb 28-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed a typo reported by John Drinkwater.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc93cc3f 30-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# d76bee07 26-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 40bfa3f7 26-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 83b629e1 01-Nov-2004 Jérôme Duval <korli@users.berlios.de>

Added Pentium M cpu type


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9703 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9b87f23 19-Oct-2004 Jérôme Duval <korli@users.berlios.de>

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


# 9de96900 13-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 76b72b95 13-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 9fdf5bbb 04-Jul-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 3f403c72 29-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 06e37d1e 10-May-2004 Axel Dörfler <axeld@pinc-software.de>

Fix missing identation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f3a136e 02-Mar-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 7ba272b8 22-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# afa70266 24-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

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


# c6f77f6c 18-Jun-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

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


# 3c905585 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 7aae8aac 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 9a7fc048 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 09b1f9dd 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 9360e22d 25-Apr-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

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


# f6004308 29-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

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


# c69aed7a 27-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

Removed some garbage.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2585 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a03a60a 08-Dec-2002 François Revol <revol@free.fr>

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


# 1be91d16 25-Oct-2002 beveloper <beveloper@nowhere.fake>

added thread_entry for backward compatibility


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8fe70e82 25-Oct-2002 lillo <lillo@nowhere.fake>

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


# d7e489f8 23-Oct-2002 beveloper <beveloper@nowhere.fake>

modified to provider better R5 compatibility


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1615 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c321cf49 04-Oct-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 085320ea 22-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 3f6f3d29 22-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 90abd04b 02-Sep-2002 beveloper <beveloper@nowhere.fake>

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


# 615a79cc 19-Aug-2002 lillo <lillo@nowhere.fake>

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


# 91363a42 04-Aug-2002 lillo <lillo@nowhere.fake>

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


# 854c31f8 03-Aug-2002 lillo <lillo@nowhere.fake>

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


# aded06e0 03-Aug-2002 lillo <lillo@nowhere.fake>

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


# 3cfbecf1 02-Aug-2002 lillo <lillo@nowhere.fake>

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


# 3088c8d0 12-Jul-2002 David Reid <dreid@nowhere.fake>

Add the prototype for snooze.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db73233c 10-Jul-2002 David Reid <dreid@nowhere.fake>

Couple of small additions and a lot more doxygen stuff.

Web updated to reflect this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@56 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 14919567d15b4d07049c6f1ba3a5d18cb27bc8dd 19-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel: Add more architecture code post-scheduler

* Fix incorrect cpu vendor name mapping
* Add additional CPU architectures
* Add additional CPU vendors
* Rework PowerPC arch_system_info passing
PVR back for cpu model


# 32d1afe024eb5ed280219b24eb609b060debf29c 19-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

Remove B_CPU_x86_VENDOR_MASK


# 7c28f7733231247e8b55e2e52f80d445deb8589c 14-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

system: Improve AMD CPU detection

* Several CPUID's were thrown into the Athlon 64
catch all. Add Sempron 64 and correct CPUIDs
solves #9553
* Add better AMD A-Series detection


# 586d22c9baa3dc52df5dada8bdc2b9070b760efa 11-Jan-2014 François Revol <revol@free.fr>

Fix function prototype to be valid C


# 81e04d7b9734081a6c3190b9b8bdab304dc0fe3e 03-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

kernel: Remove cpu_info::load

This field forces kernel to track each CPU load all the time. It is not
a problem with the current scheduler on a multicore systems, but on
single core machnies or with any other future scheduler this field may
become just an unnecessary burden. It isn't difficult for an application
to compute CPU load by itself when it needs it.


# f8da8f3477d3c18142e59d17d05a545982faa5a8 01-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

ARM: Be aware of ARMEL and ARMEL

* My BeagleBone gcc defines __ARMEL__ but not
__ARM__ which breaks the native tool builds
* As ARM was originally Little Endian, we assume
__ARM__ means as such.
* Look for Big Endian ARM and define the needed big
endian preprocessors


# d02aaee17e007631fcfa91a012ec7b6386927012 15-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, libroot: Add more memory info in system_info

system_info now contains all information previously available only
through __get_system_info_etc(B_MEMORY_INFO, ...).


# 1bc7045fdfb85e6151d01c73669be19627c4783b 15-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, libroot: Introduce new API for obtaining system info


# bcfdf88186a46a982b684c89dc76b4f6c3d53bf4 06-Dec-2013 Pawel Dziepak <pdziepak@quarnos.org>

apps, kernel: Remove B_MAX_CPU_COUNT


# 5d0a1da8bf914d4a26bba97ba40cbb36bf99ce52 14-May-2013 Pawel Dziepak <pdziepak@quarnos.org>

libroot: make all areas executable for old binaries

* If at least one image is either B_HAIKU_ABI_GCC_2_ANCIENT or
B_HAIKU_ABI_GCC_2_BEOS almost all areas are marked as executable.
* B_EXECUTE_AREA and B_STACK_AREA are made public. The former is enforced since
the introduction of DEP and apps need it to correctly set area protection.
The latter is currently needed only to recognize stack areas and fix their
protection in compatibility mode, but may also be useful if an app wants
to use sigaltstack from POSIX API.


# bf65fc1dfe8daefa37b83d5551a85ec8fd65a8d5 09-Apr-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: remove B_RANDOMIZED_IMAGE_ADDRESS address specification

This address specification is actually not needed since PIC images can be
located anywhere. Only their size is restriced but that is the compiler and
linker concern. Thanks to Alex Smith for pointing that out.


# 65ed4fa908cce8864aee0905014bb802857d601d 03-Apr-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_IMAGE_ADDRESS address specification

On some 64 bit architectures program and library images have to be mapped in
the lower 2 GB of the address space (due to instruction pointer relative
addressing). Address specification B_RANDOMIZED_IMAGE_ADDRESS ensures that
created area satisfies that requirement.


# b3e4c67739c7cc1e70dce20110fdeaea44155e1a 26-Feb-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_ANY_ADDRESS address specification

Randomized equivalent of B_ANY_ADDRESS. When a free space is found (as in
B_ANY_ADDRESS) the base adress is then randomized using _RandomizeAddress
pretty much like it is done in B_RANDOMIZED_BASE_ADDRESS.


# f9bab525f6dc0e5ed6a164ebd9b3a9dde9c6ba6f 25-Feb-2013 Pawel Dziepak <pdziepak@quarnos.org>

vm: implement B_RANDOMIZED_BASE_ADDRESS address specification

B_RAND_BASE_ADDRESS is basically B_BASE_ADDRESS with non-deterministic created
area's base address.

Initial start address is randomized and then the algorithm looks for a large
enough free space in the interval [randomized start, end]. If it fails then
the search is repeated in the interval [original start, randomized start]. In
case it also fails the algorithm falls back to B_ANY_ADDRESS
(B_RANDOMIZED_ANY_ADDRESS when it is implemented) just like B_BASE_ADDRESS does.

Randomization range is limited by kMaxRandomize and kMaxInitialRandomize.


# 190423a65660a7b4a3ad92c0a97a5fcfe2278d83 20-Mar-2013 Alexander von Gluck IV <kallisti5@unixzen.com>

cpu_type: Add model 2 AMD FX CPU


# 9a5503d01c41c7afc680c30256fba28700fc8b60 01-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Different uname machine type for x86_64.

* Added B_64_BIT_PC_PLATFORM platform type.
* Return "x86_64" as the machine type for that platform in uname.


# 6e2f6d1ace7490a200dcff70c52acf2af59c5bc3 29-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Changed cookie type for get_next_area_info() to ssize_t.

The cookie is used to store the base address of the area that was just
visited. On 64-bit systems, int32 is not sufficient. Therefore, changed
to ssize_t which retains compatibility on x86 while expanding to a
sufficient size on x86_64.


# 78d482e3b8a7b67ed37a7479fddeb735897f282d 05-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Style fixes.


# 4304bb9894335fe5e5bd667a1f27dc7605c2e5b9 04-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Added arch_cpu.cpp to the x86_64 build.

* Some things are currently ifndef'd out completely for x86_64 because
they aren't implemented, there's a few other ifdef's to handle x86_64
differences but most of the code works unchanged.
* Renamed some i386_* functions to x86_*.
* Added a temporary method for setting the current thread on x86_64
(a global variable, not SMP safe). This will be changed to be done
via the GS segment but I've not implemented that yet.


# 548b1a49889120dd46ef01d133a44b69d7659218 04-Jun-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

cpuid: Rework AMD CPUID numbers

* If family is 0xF, we grab extended family and model
like Intel does
* Idenfify AMD cpu's more correctly


# 1c2d7d3a86c79828aff76b35b2dd4085c72bfb2f 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# f1eeb32334a0d50d9f558095c85d99ff4316e219 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed x86_64 handling by the build system.

* Map build variables HOST_CPU and HOST_ARCH to x86_64, if it they are
* x86 and
64 bit and define the __x86_64__ C macro instead of __INTEL__ in that
case.
* <OS.h>: Also handle __x86_64__.


# 24df65921befcd0ad0c5c7866118f922da61cb96 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9530027447a2f479521a7ffe7beb9bb53fa011ce 02-Jan-2011 Ryan Leavengood <leavengood@gmail.com>

Apply patch from augiedoggie for #6258 which adds Athlon Phenom II's to the CPU
identification list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40087 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 308ca58d67e89a8af1eb1e47964a6924b65c111a 03-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* deprecated set_timezone(), as we no longer support (and need) timezone files

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fb2d73772382ea2ccfb62e912f9bfb9c39ac26d 23-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced B_32_BIT_MEMORY by B_32_BIT_FULL_LOCK and B_32_BIT_CONTIGUOUS, so
the constraint can be expressed more precisely. ATM B_32_BIT_FULL_LOCK is
implemented as B_32_BIT_CONTIGUOUS when B_HAIKU_PHYSICAL_BITS > 32, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be87d0a03e67ba3a186b1b86f0169b611c9d0ef2 21-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added area creation "lock" constant B_32_BIT_MEMORY for physically
contiguous memory < 4 GB.
* vm_create_anonymous_area(): Implemented support for B_LOMEM and
B_32_BIT_MEMORY.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37200 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a2b528e735ed1cba2c8e8604f13265fa563017c 19-Jun-2010 Wim van der Meer <wpjvandermeer@gmail.com>

Report ignored memory pages seperately, thanks to bonefish for the patch review. Closes ticket #6178

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37175 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fbfe93a98a6c9aa8ee6234c0709fe9ddda13165 28-Mar-2010 Siarzhuk Zharski <zharik@gmx.li>

- CPU identification for 'Core i5 CPU M 430 @ 2.27' added. Reported by Evgeny Abdraimov.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35987 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 408a0aa2f1686c44795c35761c25c054d24aedcd 10-Feb-2010 Siarzhuk Zharski <zharik@gmx.li>

Identification for "Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz" added.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35450 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34a48c70efb9ce4fd54db2ef76d95e9c2ff9ec2e 07-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added type nanotime_t (an int64 storing a nanoseconds value) and function
system_time_nsecs(), returning the system time in nanoseconds. The function
is only really implemented for x86. For the other architectures
system_time() * 1000 is returned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34543 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c7b2520c22fd7dfd4c77b25ee73e1db294fef16 07-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added get_pthread_thread_id() function returning the Haiku thread_id of a
pthread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33927 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e628f41c49fb9788f6753888fd9421696d448e05 13-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33586 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2e0606edcc88e087c7511f5943eea77fb99383a 06-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Patch by "v" to distinguish between different processors with the same CPU-ID.
Slightly enhanced coding style by myself. Should fix ticket #3541. Thanks a
bunch!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# adc602a44b2ecc08eed2a4cdbbb40992940ff445 30-Sep-2009 imker <imker@nowhere.fake>

Model string for Core i7 920 @2.66 added.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7af3465eb53310c250f3544eadf7acab160237c5 02-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Made set_timezone() argument const - it's not supposed to mess with it.
* Renamed time.c to time.cpp.
* set_timezone() now uses localtime_r() instead of localtime(), and will also
no longer fail in case there was no timezone symlink before.
* Cleaned up OS.h header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31371 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c7d1aa192fe8cfb8963a72faaa9d946743cd2d03 25-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added system_info::abi field. It contains the system's ABI version, which
might be different from that of the caller (on hybrid builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30858 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa8a3a17c61be0127541df7f546efe67ec927b4c 03-May-2009 Jonas Sundström <jonas@kirilla.com>

Staking out some mipsel ground.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30619 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33941551de084a453bdae41afeebd14f551d3998 10-Apr-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

(Joerg Meyer) - Add Via processors IDs(Esther/Isaiah)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0c9d3e745c9457f8c2d85b4216f63d506a5e35b 03-Apr-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Path by Joerg Meyer
- Add identification for Efficeon CPUs



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29885 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1f3108a60a7cebcd595c566b88627c99ba917af 10-Nov-2008 Stephan Aßmus <superstippi@gmx.de>

Patch by Scott:
Make sure the comments are C style in headers that are included by POSIX
headers.

Thanks! Should fix #2870.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c1e463c7e1b9165731cfb86918d2c67b8496b6c 05-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed B_{MIN|MAX}_PRIORITY from OS.h - they were never really intended
as public defines. They are now called THREAD_{MIN|MAX}_SET_PRIORITY to
better reflect what they are for. Minimum priority is now 1, ie. you no
longer can set another thread to the idle priority. This fixes part of
ticket #2959.
* set_thread_priority() will no longer allow to change the priority of the
idle thread to something else. This fixes the rest of ticket #2959.
* Automatic whitespace cleanup in OS.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28521 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0b788ce0c44faf66680c7d76989221e0ba7f59a 07-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fixed Atom id. Thanks katisu!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27363 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dc08d5dc1e7a9652ff83df2b1c4d9245b361d6f8 04-Sep-2008 Jérôme Duval <korli@users.berlios.de>

added B_CPU_INTEL_ATOM, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27326 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a76e1d73dbe2799649390adacdedddaed5ca13 26-Jul-2008 Jérôme Duval <korli@users.berlios.de>

added amd phenom cpu type, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26642 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b409283372857c4cb2164125b1ec02ba78a012e6 21-Jun-2008 François Revol <revol@free.fr>

Set max cpu count to 1 for ARM. Anyone knows a real SMP platform using it ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d3680aaef2029eed55f82ba246bd224bf1f15c1 10-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added timeout constant B_ABSOLUTE_REAL_TIME_TIMEOUT which specifies a
timeout relative to the Epoch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25434 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7727e08e5f055aef8db4f3920ba5a4c8769d1fa8 17-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added experimental public API get_port_message_info_etc(). It is similar
to port_buffer_size_etc(), but returns the info through a structure,
which also identifies the sender (uid, gid, team ID) of the message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25003 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 044f45b2dbbad2cdf463ffb05406fdcc91093121 15-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Another patch by Hervé W.
- Updated code so Processor IDs for older processor do not have to be
modified.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 801fe71d43b571f9c909b8f029d3cb5f620c3517 13-Apr-2008 Jérôme Duval <korli@users.berlios.de>

added amd geode lx cpu type, untested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c383d986769df80f4e772ea42329df28a4dd787 13-Apr-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

Applied patch by Hervé W.

- Updated Intel processor IDs.
- Only take extended family/model into account on Intel processors.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24958 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e11596a27b62f8a4a83e0438160d9db94808ac6 29-Mar-2008 Jérôme Duval <korli@users.berlios.de>

added athlon 64 model 3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41f8d41647c52758df0d91031609d31ca01032ce 25-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

Applied patch by Rene Gollent:
* Add a cached_pages field to the system_info structure, and change the
meaning of the used_pages field to not include cached pages.
* Provide the needed info using the new calls vm_get_available_memory(),
and vm_page_num_available_pages().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a66a9b8e476624da754a94c071f94d436408a7a 21-Mar-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Added support in system info for extended cpu family and model.
- Take extended family and model into account when generating the cpu
type and revision.
- Added Intel Core 2 Extreme to the cpu list.

Please review.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24509 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a54c125e3744602e914808f2c95c360b2e8c9c54 21-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added experimental ktrace_[v]printf() functions to libroot. Their output
is recorded in a kernel trace entry (if tracing is enabled).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b3123cf2fbe290673a751d4ac89033fa2986cd1 30-Oct-2007 François Revol <revol@free.fr>

Add the Amiga and Atari platforms (sorry to force a rebuild :p).
Mac is there already (TODO: rename some stuff from apple to mac).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22770 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ae8bc15af543676a2929d736ee9550ee70af6df5 23-Oct-2007 François Revol <revol@free.fr>

Some more of m68k. Added errors where ports should add stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 636bfc08aeaaa7f1bab813c5aa2e8e666b40ec64 02-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of
vfs_select.h, respectively moved most of it into the new kernel
private header wait_for_objects.h.
* Added new experimental API functions wait_for_objects[_etc](). They
work pretty much like poll(), but also for semaphores, ports, and
threads.
* Removed the "ref" parameter from notify_select_events() and the
select_sync_pool functions as well as from fd_ops::fd_[de]select(). It
is no longer needed. The FS interface select() hook still has it,
though -- the VFS will always pass 0.
* de]select_fd() take a select_info* instead of a select_sync* + ref
pair, now. Added respective functions for semaphores, ports, and
threads.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c97a8d164b49c7e608ac1eb1a9dd4b7496b2dd4 14-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Use -I instead of -isystem for system header directories when building
with gcc 4. Fixed resulting build errors (gcc is more lenient for
headers in -isystem directories).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1e8adb7d892e8082415b3d0d632831896a6b4210 24-Aug-2006 Jérôme Duval <korli@users.berlios.de>

added core and core 2 ids


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18603 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2c5594fd2660d76e22102f1b5e79f6db9e7046e 29-May-2006 Axel Dörfler <axeld@pinc-software.de>

B_SYSTEM_TEAM is now 1 under Haiku which refers to the real kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17645 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 716a16ce61a33dd922238873471fb7d9b58fc0df 03-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 348c7214f5f9fd58c5f346615f3c07314e623aa8 16-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Improved processor identification for some VIA C3 models.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 758b1d0e05fe1042cce6e00d194a147802d4f9be 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 9235adf7946559955ea054a3ce51f7bf76c78be7 30-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 1c016e0e3f37d5d71ed5b1e5b095005dde5355ce 26-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 794df3bf254c03b363a5d196456a429b89a71855 20-Aug-2005 Marcus Overhagen <marcusoverhagen@gmail.com>

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


# 183dee22cb21a6c4cde5423c90c408a078126cb1 12-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 5258e67dff4b6c5272ebb54b4341c09f219d0fce 17-Apr-2005 Jérôme Duval <korli@users.berlios.de>

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


# 576c52f8b14c2831877aa4f82a457842a2250a4f 28-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 34e92cad76487b81bc77a7973f5595eabdc900d4 17-Mar-2005 Axel Dörfler <axeld@pinc-software.de>

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


# 17e41f525173c8ee4728e17ea499c1bc9c3dafa5 25-Feb-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 06f5fe61a29767c7489e8080d09843e34adb54cf 25-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 6e9582baf1c1e1af46dc1a62aa7ef64a447dc6c1 25-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 57b6c3bcad26fed7e42d2a6a77b34280f2cf5dca 15-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# c05649ebef9ceaebad655844c48c5d6d9fbdf199 28-Dec-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed a typo reported by John Drinkwater.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc93cc3fa78627df377cbf61cd85b4eb53a97ffe 30-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# d76bee070b94a69b92284d68c7ca9ebf6f6ad975 26-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 40bfa3f782467278bc14623d98845f491df2af2b 26-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 83b629e1ade2c2f992766c726063f0efff5f4c53 01-Nov-2004 Jérôme Duval <korli@users.berlios.de>

Added Pentium M cpu type


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9703 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9b87f230b36166fd5a33b267db49f5c8e06da38 19-Oct-2004 Jérôme Duval <korli@users.berlios.de>

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


# 9de969006ba55ceba5e0f4e548ab6a2c4a79a494 13-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 76b72b95e1b8b5c0c6b016e9a15eca6b6c86590b 13-Oct-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 9fdf5bbb13280099c9684f64ac22c1ca620288d2 04-Jul-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 3f403c721c534bdc6af0e376b82f78c56e1dccd3 29-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 06e37d1ea542f774cf88c9857eef786bb1d61af4 10-May-2004 Axel Dörfler <axeld@pinc-software.de>

Fix missing identation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f3a136e472f023c78db1c0e37d967262d844353 02-Mar-2004 Axel Dörfler <axeld@pinc-software.de>

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


# 7ba272b8b3f258d74ca9f3d9b64fbc8fa3e57fce 22-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

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


# afa70266a31d7c7844575c3aaa3d810a1f53734f 24-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

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


# c6f77f6c2cc9131645db5a5555da64ab56d232cc 18-Jun-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

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


# 3c9055852310c377f6542e18b3493824ce11b7fa 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 7aae8aac0e8a5f3cb6c7ed11cb1e7fb2fdc888d1 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 9a7fc0488558676b6e4ab5ee7c0cfa01c846a6ca 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 09b1f9ddbaa7f64dc36bfabf0b287f37f682fdea 13-Jun-2003 shatty <shatty@nowhere.fake>

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


# 9360e22d50efb27b48d8c586acc88f01a5f55990 25-Apr-2003 Philippe Houdoin <philippe.houdoin@gmail.com>

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


# f60043082d8f1474c9c7f78df73b09e70bb1734c 29-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

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


# c69aed7afca857288f9faa1f8ea6adf6d8fe29b2 27-Jan-2003 Axel Dörfler <axeld@pinc-software.de>

Removed some garbage.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2585 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a03a60a174b4ebcc4ab0ba4fdd2830c19e7b2c8 08-Dec-2002 François Revol <revol@free.fr>

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


# 1be91d1603ea24dcfc99b3675c251684510c4383 25-Oct-2002 beveloper <beveloper@nowhere.fake>

added thread_entry for backward compatibility


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1677 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8fe70e8212d0de7e9d252885d37d81fbf1787db4 25-Oct-2002 lillo <lillo@nowhere.fake>

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


# d7e489f80a82a0dc5974df1e780d7a908129bab4 23-Oct-2002 beveloper <beveloper@nowhere.fake>

modified to provider better R5 compatibility


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1615 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c321cf4929d844b706ca63251cf05d1af86844df 04-Oct-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 085320eab292455845b0a56ec6d08c0d04e5693d 22-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 3f6f3d2921974b0d15ccfcfc72884aa048a6ea46 22-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

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


# 90abd04b348716bc5d8bd597fb059e4f5f33fcfb 02-Sep-2002 beveloper <beveloper@nowhere.fake>

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


# 615a79cc3cafb8aa90ad2ee9f722d0a4700a7b59 19-Aug-2002 lillo <lillo@nowhere.fake>

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


# 91363a427880662b06a4ff5e68a0e0c953746ac5 04-Aug-2002 lillo <lillo@nowhere.fake>

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


# 854c31f835e445f5caecc8a9d6342f3677cb48c8 03-Aug-2002 lillo <lillo@nowhere.fake>

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


# aded06e0aa5d39e231d14a33def2bd5f0655bdab 03-Aug-2002 lillo <lillo@nowhere.fake>

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


# 3cfbecf1a6bfb811556eed42284ad75f9568a9fe 02-Aug-2002 lillo <lillo@nowhere.fake>

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


# 3088c8d093e81437894f425288c0c640d8e539e8 12-Jul-2002 David Reid <dreid@nowhere.fake>

Add the prototype for snooze.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# db73233cdc01d8754fd546ad399378ccbe76bf99 10-Jul-2002 David Reid <dreid@nowhere.fake>

Couple of small additions and a lot more doxygen stuff.

Web updated to reflect this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@56 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96