summaryrefslogtreecommitdiffstats
path: root/cpukit/score (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-01-13score: Add and use _Objects_Name_to_string()Sebastian Huber2-27/+79
Update #2858.
2017-01-12score: Remove unused _States_Is_*()Sebastian Huber1-153/+0
2017-01-12score: Replace STATES_DELAYINGSebastian Huber1-37/+6
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.
2017-01-11Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill8-75/+49
2017-01-11score: Improve SMP lock debug supportSebastian Huber4-7/+18
The CPU index starts with zero. Increment it by one, to allow global SMP locks to reside in the BSS section.
2017-01-11score: Optimize thread state valuesSebastian Huber1-48/+73
2017-01-11score: Add STATES_THREAD_QUEUE_WITH_IDENTIFIERSebastian Huber13-33/+26
Add thread state bit to identify thread queues that are embedded in an object with identifier.
2017-01-11score: Delete STATES_WAITING_FOR_BUFFERSebastian Huber1-19/+1
2017-01-11score: Format thread state definesSebastian Huber1-27/+27
Specify all 32-bits in a thread state define.
2016-12-23score: Relax <sys/lock.h> static assertionsSebastian Huber5-9/+9
Only require that the Newlib defined structure is big enough.
2016-12-12score: Prevent thread_dispatch_disable_level < 0.Christian Mauderer1-0/+2
2016-12-12Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12score: Introduce _Internal_error()Sebastian Huber14-36/+35
2016-12-12Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Rename is_internal to always_set_to_falseSebastian Huber1-3/+3
Update #2825.
2016-12-09score: Remove fatal is internal indicatorSebastian Huber22-101/+29
The fatal is internal indicator is redundant since the fatal source and error code uniquely identify a fatal error. Keep the fatal user extension is internal parameter for backward compatibility and set it to false always. Update #2825.
2016-12-06score: Simplify linker set APISebastian Huber1-25/+38
Resurrect RTEMS_LINKER_SET_BEGIN() and RTEMS_LINKER_SET_END(). Add new macros RTEMS_LINKER_SET_ITEM_COUNT(), RTEMS_LINKER_SET_IS_EMPTY(), and RTEMS_LINKER_SET_FOREACH(). Remove confusing RTEMS_LINKER_SET_ASSIGN_BEGIN() and RTEMS_LINKER_SET_ASSIGN_END(). Fix RTEMS_LINKER_SET_SIZE() to return the size in characters as specified by the documentation. Update #2408. Update #2790.
2016-12-02score: Fix ARM and PowerPC context initializationSebastian Huber2-0/+5
Update #2751.
2016-12-02score: Initialize thread queue context earlySebastian Huber5-9/+8
Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire().
2016-12-02score: Fix debug thread queue context initSebastian Huber2-2/+4
On ARM Thumb we may have function addresses ending with 0x7f, if we are lucky.
2016-11-28sparc: Optimize _ISR_Handler()Sebastian Huber1-0/+3
Use _Thread_Do_dispatch() instead of _Thread_Dispatch(). Restore the PSR[EF] state of the interrupted context via new system call syscall_irqdis_fp in case floating-point support is enabled.
2016-11-28score: Fix thread queue context initializationSebastian Huber5-5/+12
Initialize the thread queue context with invalid data in debug configurations to catch missing set up steps.
2016-11-24arm: Fix _CPU_ISR_Is_enabled() for ARMv7-MSebastian Huber1-1/+1
Update #2811.
2016-11-24score: Optimize _Thread_queue_Enqueue()Sebastian Huber16-24/+101
Move thread state for _Thread_queue_Enqueue() to the thread queue context. This reduces the parameter count of _Thread_queue_Enqueue() from five to four (ARM for example has only four function parameter registers). Since the thread state is used after several function calls inside _Thread_queue_Enqueue() this parameter was saved on the stack previously.
2016-11-24score: Fix interrupt profilingSebastian Huber2-5/+20
Callers of _Thread_Do_dispatch() must have a valid Per_CPU_Control::Stats::thread_dispatch_disabled_instant. Call _Profiling_Outer_most_interrupt_entry_and_exit() with the interrupt stack to not exceed Per_CPU_Control::Interrupt_frame. Update #2751.
2016-11-23score: Explicitly define the fatal source numbersSebastian Huber1-11/+11
Update #2825.
2016-11-23score: Uncomment unused internal error codesSebastian Huber1-33/+37
Update #2825.
2016-11-23posix: Add self-contained pthread spinlockSebastian Huber8-379/+1
Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. The self-contained pthread_spinlock_t object is defined by Newlib in <sys/_pthreadtypes.h>. typedef struct { struct _Ticket_lock_Control _lock; __uint32_t _interrupt_state; } pthread_spinlock_t; This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c There is only limited support for profiling on SMP configurations. Delete CORE spinlock implementation. Update #2674.
2016-11-23score: Add RTEMS_ALIAS()Sebastian Huber1-0/+10
2016-11-23score: Rename _Thread_queue_Enqueue_critical()Sebastian Huber17-65/+27
Delete unused _Thread_queue_Enqueue() and rename _Thread_queue_Enqueue_critical() to _Thread_queue_Enqueue().
2016-11-23score: Add thread queue enqueue calloutSebastian Huber18-148/+236
Replace the expected thread dispatch disable level with a thread queue enqueue callout. This enables the use of _Thread_Dispatch_direct() in the thread queue enqueue procedure. This avoids impossible exection paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
2016-11-23score: Robust thread dispatchSebastian Huber20-2/+82
On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour. The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context. Update #2811.
2016-11-23score: Delete obsolete scheduler debug aidSebastian Huber4-67/+0
2016-11-23arm: Fix _ARMV4_Exception_interruptSebastian Huber1-1/+1
Use the right register to determine if a thread dispatch is allowed and necessary. Update #2751.
2016-11-23score: Force Per_CPU_Control::executing alignmentSebastian Huber1-0/+7
This fixes the CPU ports with relaxed alignment restrictions, e.g. type alignment is less than the type size. Close #2822. Close #2823.
2016-11-21arm: Fix Thumb-1 targetsSebastian Huber2-10/+40
We cannot use the MRS or MSR instructions in Thumb-1 mode. Stay in ARM mode for the Thumb-1 targets during interrupt low-level processing. Update #2751.
2016-11-21score: Group Per_CPU_Control members by alignmentSebastian Huber1-19/+19
Close #2820.
2016-11-21sparc64: Fix _CPU_ISR_Is_enabled()Sebastian Huber1-1/+1
Update #2820.
2016-11-21nios2: Fix _CPU_ISR_Is_enabled()Sebastian Huber1-4/+4
Close #2818.
2016-11-21arm: Fix ARM_CONTEXT_CONTROL_ISR_DISPATCH_DISABLESebastian Huber1-2/+4
Close #2816.
2016-11-21bfin: ASM compatibility for <rtems/score/cpu.h>Sebastian Huber1-2/+2
Close #2817.
2016-11-18score: Optimize self-contained objectsSebastian Huber4-41/+62
Avoid use of the stack for the hot paths.
2016-11-18score: Constify _MRSP_Get_owner()Sebastian Huber1-1/+3
2016-11-18score: Add _ISR_Is_enabled()Sebastian Huber19-2/+124
In contrast to _ISR_Get_level() the _ISR_Is_enabled() function evaluates a level parameter and returns a boolean value. Update #2811.
2016-11-18score: Restrict task interrupt level to 0 on SMPSebastian Huber1-2/+8
Update #2811.
2016-11-18powerpc: Use Per_CPU_Control::isr_dispatch_disableSebastian Huber2-2/+5
Update #2751.