summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* dev: Add NXP SC16IS752 serial device driverAlexander Krutwig2016-12-166-0/+875
| | | | Update #2841.
* termios: Add TERMIOS_IRQ_SERVER_DRIVENAlexander Krutwig2016-12-162-5/+8
| | | | | | | | | | Add a new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN). This mode is identical to the interrupt driven mode except that a mutex is used for device level locking. The intended use case for this mode are device drivers that use the interrupt server, e.g. SPI or I2C connected devices. Update #2839.
* termios: Use mutex for task driven modeSebastian Huber2016-12-162-7/+97
| | | | | | | | | | Termios has a task driven mode (TERMIOS_TASK_DRIVEN). This mode aims to avoid long sections with disabled interrupts. This is only partly implemented since the device level state is still protected by disabled interrupts. Use a mutex to protect the device level state in task driven mode to fix this issue. Update #2838.
* libdl: Add C++ exception support to loaded modules.Chris Johns2016-12-1428-230/+1057
| | | | | | This has been tested on SPARC, i386, PowerPC and ARM. Closes #2767.
* score: Prevent thread_dispatch_disable_level < 0.Christian Mauderer2016-12-121-0/+2
|
* libblock: Fix for RTEMS_DEBUGSebastian Huber2016-12-121-0/+1
|
* Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber2016-12-123-3/+5
| | | | Update #2825.
* Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber2016-12-123-3/+5
| | | | Update #2825.
* libio: Ensure proper std file descriptorsSebastian Huber2016-12-121-9/+8
|
* Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber2016-12-123-4/+7
| | | | Update #2825.
* INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber2016-12-123-3/+5
| | | | Update #2825.
* score: Introduce _Internal_error()Sebastian Huber2016-12-1218-55/+42
|
* Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber2016-12-123-4/+10
| | | | Update #2825.
* Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber2016-12-123-4/+10
| | | | Update #2825.
* Rename is_internal to always_set_to_falseSebastian Huber2016-12-124-7/+7
| | | | Update #2825.
* score: Remove fatal is internal indicatorSebastian Huber2016-12-0932-165/+47
| | | | | | | | | 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-062-33/+41
| | | | | | | | | | | | | | | | | 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.
* rtems: Use _Thread_Dispatch_direct()Sebastian Huber2016-12-022-2/+2
| | | | Update #2797.
* rtems: Fix rtems_scheduler_add_processor()Sebastian Huber2016-12-021-4/+1
| | | | | | Fix thread dispatch profiling of rtems_scheduler_add_processor(). Update #2797.
* score: Initialize thread queue context earlySebastian Huber2016-12-0214-15/+23
| | | | | | | | Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire().
* posix: Fix typoSebastian Huber2016-12-021-1/+1
|
* 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.
* posix: Fix fall back spinlock implementationSebastian Huber2016-12-022-10/+7
| | | | Update #2674.
* libdebugger: Build for ARM's without a CP15.Chris Johns2016-12-021-40/+114
|
* cpukit: Add libdebugger, a remote debugger agent for GDB.Chris Johns2016-11-2922-0/+6337
|
* 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-289-9/+17
| | | | | Initialize the thread queue context with invalid data in debug configurations to catch missing set up steps.
* libblock: Fix for RTEMS_DEBUGSebastian Huber2016-11-241-0/+2
|
* arm: Fix _CPU_ISR_Is_enabled() for ARMv7-MSebastian Huber2016-11-241-1/+1
| | | | Update #2811.
* score: Optimize _Thread_queue_Enqueue()Sebastian Huber2016-11-2420-28/+117
| | | | | | | | | 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.
* posix: Fix typoSebastian Huber2016-11-231-1/+1
| | | | Update #2674.
* score: Explicitly define the fatal source numbersSebastian Huber2016-11-231-11/+11
| | | | Update #2825.
* score: Uncomment unused internal error codesSebastian Huber2016-11-232-36/+40
| | | | Update #2825.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-2324-723/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2321-69/+31
| | | | | Delete unused _Thread_queue_Enqueue() and rename _Thread_queue_Enqueue_critical() to _Thread_queue_Enqueue().
* score: Add thread queue enqueue calloutSebastian Huber2016-11-2327-225/+350
| | | | | | | 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-2321-3/+84
| | | | | | | | | | | | 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.
* score: Optimize self-contained objectsSebastian Huber2016-11-184-41/+62
| | | | Avoid use of the stack for the hot paths.