History log of /haiku/src/system/kernel/arch/arm/arch_thread.cpp
Revision Date Author Comments
# 191eff41 14-May-2023 David Karoly <karolyd577@gmail.com>

kernel/arm: remove unused function arch_check_syscall_restart

Change-Id: I5cb8643937cf1dccfce21dbb1478b0468e99a7e8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6439
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# 6c58b765 09-May-2023 David Karoly <karolyd577@gmail.com>

kernel/arm: use inline functions for accessing coproc registers

Change-Id: I626ef5722f4ae043de9e8b0c37dbde97ac0513be
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6422
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# d86a240a 29-Mar-2023 Augustin Cavalier <waddlesplash@gmail.com>

kernel/thread: Refactor thread-local-storage initialization and updating.

* TLS slots are not in any way architecture-specific; we do not even
have a mechanism by which they could be made so at present.
Thus, the initialization of them can be moved to common code, and
out of the per-architecture implementations.

* When dealing with a fork()ed thread, it will already have a TLS array
with values set in it. Therefore, do not overwrite the whole array,
but instead only update the specific values which have changed on fork.
This fixes at least part of #17896.


# 60b19d7e 17-Mar-2023 David Karoly <karolyd577@gmail.com>

kernel/arm: implement signals, fork, restart syscall

Change-Id: I24219b83d90710ef719190183ba6f069f82dae61
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6198
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 67406e51 03-Sep-2022 David Karoly <karolyd577@gmail.com>

kernel/arm: save FPU registers on context switch

Change-Id: Icb62688338d3a3083f8f6d1874cae3218ba042e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5614
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# c0a76012 01-Sep-2022 David Karoly <karolyd577@gmail.com>

kernel/arm: store current thread pointer in TPIDRPRW register

Use the Privileged Only Thread ID Register aka TPIDRPRW to store
the current thread pointer.

The Privileged Only Thread ID Register is only accessible
in privileged modes, and is read/write.

see: ARMv7 Architecture Reference Manual,
section B3.12.46 CP15 c13 Software Thread ID registers

Change-Id: I5273bee8a80b78cdc547b2f6c96632d120eb3d55
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5608
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 764c0853 11-Jul-2022 David Karoly <karolyd577@gmail.com>

kernel/arm/thread: convert TRACE to new syntax

Change-Id: Iaf2876b92c130196a671f274e5fc36f6cccf1d0e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5445
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 6804f6c7 28-Feb-2022 David Karoly <karolyd577@gmail.com>

kernel/arm: implement entering userspace

Change-Id: Icf3945db979a8f4444856fc7157649f48b297c29
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5037
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 883858e6 24-Feb-2022 David Karoly <karolyd577@gmail.com>

implement TLS for arm

Use the User Read-only Thread ID Register aka TPIDRURO to store
TLS pointer.

The User Read-only Thread ID Register is read-only in User mode,
and read/write in privileged modes.

see: ARMv7 Architecture Reference Manual,
section B3.12.46 CP15 c13 Software Thread ID registers

Change-Id: I7bff2fd66f41d7bf1a8a247151bcd02b32733c1b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4994
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# b22c6f6f 19-Feb-2022 David Karoly <karolyd577@gmail.com>

kernel/arch/arm: swap TTBR on thread context switch

Change-Id: Ie85742d077866c10ba57b46848d5acaef932615e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4982
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# cc65466f 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: Make KDL more useful on ARM

This adds the -mapcs-frame compiler flag for ARM to have "stable"
stack frames, adds support to the kernel for dumping stack crawls,
and initial support for iframes. There' much more functionality
to unlock in KDL, but this makes debugging already a lot more
comfortable.....


# ff163585 06-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM/threads: Disable debug output

Tracing was accidently switched on by a previous commit.


# 4fc1dadd 04-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: add context switch implementation


# 258d4ef9 26-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel arm: Quick style cleanup; No functional change


# 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


# 8bbaee61 13-Mar-2011 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Fix ARM kernel compilation

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


# 4535495d 10-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged the signals branch into trunk, with these changes:
* The team and thread kernel structures have been renamed to Team and Thread
respectively and moved into the new BKernel namespace.
* Several (kernel add-on) sources have been converted from C to C++ since
private kernel headers are included that are no longer C compatible.

Changes after merging:
* Fixed gcc 2 build (warnings mainly in the scary firewire bus manager).


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


# 924a3e5f 09-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused <arch>_switch_stack_and_call() and
arch_thread_switch_kstack_and_call().


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


# e50cf876 02-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved the VM headers into subdirectory vm/.
* Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace.


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


# c9f536d7 17-Oct-2009 François Revol <revol@free.fr>

Fix ARM build, thx Axel :P


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


# cc65466f0de34d946d9311517f4e7781b7294ef8 17-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: kernel: Make KDL more useful on ARM

This adds the -mapcs-frame compiler flag for ARM to have "stable"
stack frames, adds support to the kernel for dumping stack crawls,
and initial support for iframes. There' much more functionality
to unlock in KDL, but this makes debugging already a lot more
comfortable.....


# ff163585ecf0e47c4b411129fdc13572db53cd9d 06-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM/threads: Disable debug output

Tracing was accidently switched on by a previous commit.


# 4fc1dadd583e79fcc8e3c40d28726b9c20f478c8 04-Nov-2012 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: add context switch implementation


# 258d4ef93d3f51cef60b05d1c5ae418108b55782 26-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kernel arm: Quick style cleanup; No functional change


# 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


# 8bbaee6124dc0ff2f0b7cfdccb8bb361f7cffc64 13-Mar-2011 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Fix ARM kernel compilation

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


# 4535495d80c86e19e2610e7444a4fcefe3e0f8e6 10-Jan-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged the signals branch into trunk, with these changes:
* The team and thread kernel structures have been renamed to Team and Thread
respectively and moved into the new BKernel namespace.
* Several (kernel add-on) sources have been converted from C to C++ since
private kernel headers are included that are no longer C compatible.

Changes after merging:
* Fixed gcc 2 build (warnings mainly in the scary firewire bus manager).


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


# 924a3e5f9b7a6db6fbe14378ba920c6b943f78e9 09-Jan-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed unused <arch>_switch_stack_and_call() and
arch_thread_switch_kstack_and_call().


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


# e50cf8765be50a7454c9488db38b638cf90805af 02-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved the VM headers into subdirectory vm/.
* Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace.


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


# c9f536d7b116747c0a5b3b8d753ec0c3e28e2f2c 17-Oct-2009 François Revol <revol@free.fr>

Fix ARM build, thx Axel :P


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