summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: shared memory supportGedare Bloom2017-01-132-2/+4
| | | | | | | | | 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.
* configure: Remove HAVE_STRUCT__THREAD_QUEUE_QUEUESebastian Huber2017-01-136-24/+0
|
* score: Add _Thread_Set_name()Sebastian Huber2017-01-134-0/+35
| | | | | | Add configuration option CONFIGURE_MAXIMUM_THREAD_NAME_SIZE. Update #2858.
* score: Add and use _Thread_Get_name()Sebastian Huber2017-01-133-1/+45
| | | | Update #2858.
* score: Add Thread_queue_Queue::nameSebastian Huber2017-01-137-21/+46
| | | | Update #2858.
* score: Add and use _Objects_Name_to_string()Sebastian Huber2017-01-132-27/+79
| | | | Update #2858.
* score: Remove unused _States_Is_*()Sebastian Huber2017-01-121-153/+0
|
* score: Replace STATES_DELAYINGSebastian Huber2017-01-121-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.
* Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill2017-01-118-75/+49
|
* score: Improve SMP lock debug supportSebastian Huber2017-01-114-7/+18
| | | | | The CPU index starts with zero. Increment it by one, to allow global SMP locks to reside in the BSS section.
* score: Optimize thread state valuesSebastian Huber2017-01-111-48/+73
|
* score: Add STATES_THREAD_QUEUE_WITH_IDENTIFIERSebastian Huber2017-01-1113-33/+26
| | | | | Add thread state bit to identify thread queues that are embedded in an object with identifier.
* score: Delete STATES_WAITING_FOR_BUFFERSebastian Huber2017-01-111-19/+1
|
* score: Format thread state definesSebastian Huber2017-01-111-27/+27
| | | | Specify all 32-bits in a thread state define.
* score: Relax <sys/lock.h> static assertionsSebastian Huber2016-12-235-9/+9
| | | | Only require that the Newlib defined structure is big enough.
* score: Prevent thread_dispatch_disable_level < 0.Christian Mauderer2016-12-121-0/+2
|
* Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* score: Introduce _Internal_error()Sebastian Huber2016-12-1214-36/+35
|
* Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Rename is_internal to always_set_to_falseSebastian Huber2016-12-121-3/+3
| | | | Update #2825.
* score: Remove fatal is internal indicatorSebastian Huber2016-12-0922-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.
* score: Simplify linker set APISebastian Huber2016-12-061-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.
* score: Fix ARM and PowerPC context initializationSebastian Huber2016-12-022-0/+5
| | | | Update #2751.
* score: Initialize thread queue context earlySebastian Huber2016-12-025-9/+8
| | | | | | | | Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire().
* score: Fix debug thread queue context initSebastian Huber2016-12-022-2/+4
| | | | | On ARM Thumb we may have function addresses ending with 0x7f, if we are lucky.
* sparc: Optimize _ISR_Handler()Sebastian Huber2016-11-281-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.
* score: Fix thread queue context initializationSebastian Huber2016-11-285-5/+12
| | | | | Initialize the thread queue context with invalid data in debug configurations to catch missing set up steps.
* arm: Fix _CPU_ISR_Is_enabled() for ARMv7-MSebastian Huber2016-11-241-1/+1
| | | | Update #2811.
* score: Optimize _Thread_queue_Enqueue()Sebastian Huber2016-11-2416-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.
* score: Fix interrupt profilingSebastian Huber2016-11-242-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.
* score: Explicitly define the fatal source numbersSebastian Huber2016-11-231-11/+11
| | | | Update #2825.
* score: Uncomment unused internal error codesSebastian Huber2016-11-231-33/+37
| | | | Update #2825.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-238-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.
* score: Add RTEMS_ALIAS()Sebastian Huber2016-11-231-0/+10
|
* score: Rename _Thread_queue_Enqueue_critical()Sebastian Huber2016-11-2317-65/+27
| | | | | Delete unused _Thread_queue_Enqueue() and rename _Thread_queue_Enqueue_critical() to _Thread_queue_Enqueue().
* score: Add thread queue enqueue calloutSebastian Huber2016-11-2318-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.
* score: Robust thread dispatchSebastian Huber2016-11-2320-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.
* score: Delete obsolete scheduler debug aidSebastian Huber2016-11-234-67/+0
|
* arm: Fix _ARMV4_Exception_interruptSebastian Huber2016-11-231-1/+1
| | | | | | | Use the right register to determine if a thread dispatch is allowed and necessary. Update #2751.
* score: Force Per_CPU_Control::executing alignmentSebastian Huber2016-11-231-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.
* arm: Fix Thumb-1 targetsSebastian Huber2016-11-212-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.
* score: Group Per_CPU_Control members by alignmentSebastian Huber2016-11-211-19/+19
| | | | Close #2820.
* sparc64: Fix _CPU_ISR_Is_enabled()Sebastian Huber2016-11-211-1/+1
| | | | Update #2820.
* nios2: Fix _CPU_ISR_Is_enabled()Sebastian Huber2016-11-211-4/+4
| | | | Close #2818.
* arm: Fix ARM_CONTEXT_CONTROL_ISR_DISPATCH_DISABLESebastian Huber2016-11-211-2/+4
| | | | Close #2816.
* bfin: ASM compatibility for <rtems/score/cpu.h>Sebastian Huber2016-11-211-2/+2
| | | | Close #2817.