| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Close #2132.
|
|
|
|
| |
Update #3082.
|
|
|
|
| |
This fixes some "variably modified" warnings and a clang compile error.
|
|
|
|
|
|
| |
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT.
Update #3077.
|
|
|
|
| |
Update #3077.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Close #3071.
|
|
|
|
|
|
|
| |
Ensure that the thread processor affinity fits the new scheduler
instance.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
| |
This allows scheduler implementations to easily access
scheduler-specific data.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
The set of online processors must be a subset of the thread processor
affinity for the schedulers without arbitrary processor affinity support
to avoid problems in case of processor addition and removal.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
| |
Replace the simple processor count with the processor set owned by the
scheduler instance.
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Update #3059.
|
|
|
|
|
|
|
|
| |
Implement the Processor_mask via <sys/bitset.h>. Provide
_Processor_mask_To_uint32_t() to enable its use in device specific
routines, e.g. interrupt affinity register in an interrupt controller.
Update #3059.
|
|
|
|
| |
Update #3056.
|
|
|
|
| |
Update #3056.
|
|
|
|
|
|
|
| |
In SMP configurations, add a red-black tree node to Scheduler_Node to
enable an EDF scheduler implementation.
Update #3056.
|
|
|
|
|
|
| |
This task variable is superfluous since we use thread-local storage now.
Update #2289.
|
|
|
|
| |
Update #2468.
|
|
|
|
|
|
|
|
| |
The original CPU_COPY() support of Newlib <sys/cpuset.h> had the
parameters in the wrong order. This is fixed in Newlib since
2017-05-22.
Update #3023.
|
| |
|
|
|
|
|
|
|
|
|
| |
Check that no ask help request is registered during unblock and yield
scheduler operations. There is no need to ask for help if a scheduled
thread yields, since this is already covered by the pre-emption
detection.
Update #2556.
|
| |
|
|
|
|
|
| |
Move _Thread_Scheduler_ask_for_help(), rename it to
_Thread_Ask_for_help() and make it static.
|
|
|
|
|
|
|
|
|
|
|
| |
Only register ask for help requests in the scheduler unblock and yield
operations. The actual ask for help operation is carried out during
_Thread_Do_dispatch() on a processor related to the thread. This yields
a better separation of scheduler instances. A thread of one scheduler
instance should not be forced to carry out too much work for threads on
other scheduler instances.
Update #2556.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the special thread queue name _Thread_queue_Object_name to mark
thread queues embedded in an object with identifier. Using the special
thread state STATES_THREAD_QUEUE_WITH_IDENTIFIER is not reliable for
this purpose since the thread wait information and thread state are
protected by different SMP locks in separate critical sections. Remove
STATES_THREAD_QUEUE_WITH_IDENTIFIER.
Add and use _Thread_queue_Object_initialize().
Update #2858.
|
| |
|
|
|
|
| |
Close #2890.
|
|
|
|
| |
Update #1747.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Use forward and reverse order for initial and dynamic extensions. This
is the behaviour documented in the C Users Guide. Change thread
terminate order to backward to be in line with the thread delete order.
Change fatal error order to forward to ensure that initial extensions
are called first due the peculiar execution context of fatal error
extensions, see _Terminate() documentation.
Update #2692.
|
|
|
|
|
|
|
|
|
|
| |
Since the FP area pointer is passed by reference in
_CPU_Context_Initialize_fp() the optional FP area adjustment via
_CPU_Context_Fp_start() is superfluous. It is also wrong with respect
to memory management, e.g. pointer passed to _Workspace_Free() may be
not the one returned by _Workspace_Allocate().
Close #1400.
|
|
|
|
|
|
|
|
|
| |
Add POSIX shared memory manager (Shm). Includes a hook-based
approach for the backing memory storage that defaults to the
Workspace, and a test is provided using the heap. A test is
also provided for the basic use of mmap'ing a shared memory
object. This test currently fails at the mmap stage due to
no support for mmap.
|
|
|
|
|
|
| |
Add configuration option CONFIGURE_MAXIMUM_THREAD_NAME_SIZE.
Update #2858.
|
|
|
|
| |
Update #2858.
|
|
|
|
| |
Update #2858.
|
|
|
|
| |
Update #2858.
|
| |
|
|
|
|
|
|
|
|
| |
Replace STATES_DELAYING with STATES_WAITING_FOR_TIME.
There is no need for separate timeout thread states. The
Thread_Control::Timer::header and Watchdog_Control::cpu members can be
used to figure out the kind of timeout.
|
| |
|
|
|
|
|
| |
The CPU index starts with zero. Increment it by one, to allow global
SMP locks to reside in the BSS section.
|
| |
|
|
|
|
|
| |
Add thread state bit to identify thread queues that are embedded in an
object with identifier.
|
| |
|
|
|
|
| |
Specify all 32-bits in a thread state define.
|