ARM-specific architecture state of a thread. More...
Data Fields | |
| int | block_pipe [2] |
| Pipe used to force thread to stop. | |
| volatile atomic_int | is_suspended |
| State information on if thread is suspended or not (unused) | |
| thrd_t | sched_thread |
| C11 thread identifier of the Linux thread that supports this CMRX thread. | |
| pthread_t | sched_thread_id |
| POSIX thread identifier of the Linux thread that support this CMRX thread. | |
| struct syscall_dispatch_t | syscall |
| Buffer for dispatching system calls to the kernel and return values back to the userspace. | |
ARM-specific architecture state of a thread.
Architecture code-private part of thread record.
Linux port internal architecture state.
This structure holds additional state needed by the ARM Cortex M CPUs to properly store/restore thread state.
As of now the floating point usage information is stored here. This is provided only if FPU is available and activated.
This structure records thread state private to the Linux port. Here blocking primitives for synchronization of threads and system calls are recorded as well as block where information is passed down to the syscall and back from it.
This structure holds the CPU-specific part of thread state. It can be empty if architecture does not need any specific information saved in the CPU state.
| int Arch_State_t::block_pipe[2] |
Pipe used to force thread to stop.
Underlying mechanism is using POSIX threads to host CMRX threads. These can't be stopped from outside, so we use this mechanism to inject synchronization points into threads.
Use thread_suspend_execution() in whatever place you need to suspend thread execution for whatever reason other hardware would do so - e.g. switch into kernel context or interrupt.
@Note Offset [1] is the write (unblock) end, offset [0] is the read (block) end.
| volatile atomic_int Arch_State_t::is_suspended |
State information on if thread is suspended or not (unused)
| thrd_t Arch_State_t::sched_thread |
C11 thread identifier of the Linux thread that supports this CMRX thread.
| pthread_t Arch_State_t::sched_thread_id |
POSIX thread identifier of the Linux thread that support this CMRX thread.
| struct syscall_dispatch_t Arch_State_t::syscall |
Buffer for dispatching system calls to the kernel and return values back to the userspace.