summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* powerpc: Add FSL_EIS_EPRSebastian Huber2018-01-221-0/+1
| | | | Update #3085.
* sparc: Move <libcpu/byteorder.h>Sebastian Huber2018-01-023-0/+78
| | | | | Update #3254. Update #3260.
* epiphany: Remove superfluous includesSebastian Huber2017-12-141-4/+0
| | | | Update #3254.
* arm: Move <libcpu/arm-cp15.h> to cpukitSebastian Huber2017-12-133-0/+2272
| | | | Update #3254.
* libio: Use API mutexSebastian Huber2017-12-061-1/+1
|
* score: Use self-contained API mutexSebastian Huber2017-12-0421-221/+116
| | | | | | | | | | Use a self-contained recursive mutex for API_Mutex_Control. The API mutexes are protected against asynchronous thread cancellation. Add dedicated mutexes for libatomic and TOD. Close #2629. Close #2630.
* riscv/rtems/score/cpu.h: Use RTEMS_NO_RETURN not deprecated ↵Joel Sherrill2017-11-291-3/+2
| | | | RTEMS_COMPILER_NO_RETURN_ATTRIBUTE
* powerpc: Remove _BSP_Fatal_error()Sebastian Huber2017-11-221-13/+12
| | | | | | | BSPs can use the bsp_fatal_extension() to provide BSP-specific fatal error handling. There is no need for a _BSP_Fatal_error(). Close #3246.
* powerpc: Replace BSP_panic() with rtems_panic()Sebastian Huber2017-11-221-2/+0
| | | | | | | | Due to a new rtems_panic() implementation, it is possible to replace the PowerPC-specific BSP_panic() with rtems_panic(). Remove BSP_panic() implementations. Close #3245.
* sapi: New implementation of rtems_panic()Sebastian Huber2017-11-221-0/+7
| | | | | | | | | | | | The previous rtems_panic() implementation was quite heavy weight. It depended on _exit() which calls the global destructors. It used fprintf(stderr, ...) for output which depends on an initialized console device and the complex fprintf(). Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic() and output via vprintk(). Update #3244.
* INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULLSebastian Huber2017-11-221-1/+1
| | | | | | Delete superfluous INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL. Update #3243.
* score: Simplify global constructionSebastian Huber2017-11-224-77/+56
| | | | Update #3243.
* score: Optimize scheduler priority updatesSebastian Huber2017-11-2026-864/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thread priority changes may append or prepend the thread to its priority group on the scheduler ready queue. Previously, a separate priority value and a prepend-it flag in the scheduler node were used to propagate a priority change to the scheduler. Now, use an append-it bit in the priority control and reduce the plain priority value to 63 bits. This change leads to a significant code size reduction (about 25%) of the SMP schedulers. The negligible increase of the standard priority scheduler is due to some additional shift operations (SCHEDULER_PRIORITY_MAP() and SCHEDULER_PRIORITY_UNMAP()). Before: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 464 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 328 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 24112 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 37204 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 42236 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o After: text filename 136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o 272 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o 24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o 108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o 292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o 264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o text filename 280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o 488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o 208 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o 164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o 332 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o 200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o text filename 18860 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 28520 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o text filename 32664 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
* bsps/powerpc: Fix PPC_EXC_CONFIG_USE_FIXED_HANDLERSebastian Huber2017-11-201-2/+2
| | | | | | For the SPE support we must store the upper half of r3 as well. Update #3085.
* cpukit: Add _arc4random_getentropy_fail.Christian Mauderer2017-11-171-1/+2
| | | | | | | Add a default implementation of _arc4random_getentropy_fail with an internal error. Update #3239.
* score: Adjust _Scheduler_EDF_SMP_Insert_ready()Sebastian Huber2017-11-172-7/+5
| | | | | Use only one parameter to compute the next generation. Use index 0 for LIFO ordering, and index 1 for FIFO ordering.
* score: Fix priority ceiling updatesSebastian Huber2017-11-162-1/+8
| | | | | | | | | | | | We must not clear the priority updates in _Thread_queue_Extract_locked() since this function is used by the priority ceiling surrender operations after the ceiling priority handover from the previous owner to the new owner. This is especially important in SMP configurations. Move the _Thread_queue_Context_clear_priority_updates() invocation to the callers. Close #3237.
* score: Fix _Thread_queue_Flush_critical()Sebastian Huber2017-11-161-4/+14
| | | | | | | | | The thread queue extract operations performed by the _Thread_queue_Flush_critical() may result in a priority change of the thread queue owner. Carry out the scheduler priority update operation. This is especially important in SMP configurations. Close #3236.
* score: Change _Timecounter_Time_uptime to int32_tSebastian Huber2017-11-092-2/+4
| | | | | | | Move basic timecounter API shared with BSD network stack to <machine/_timecounter.h>. Update #3185.
* posix: Change created_with_explicit_schedulerSebastian Huber2017-11-091-0/+6
| | | | | | | | Remove POSIX_API_Control::created_with_explicit_scheduler. Add Thread_Control::was_created_with_inherited_scheduler. This fixes also pthread_getattr_np() for Classic tasks. Update #2514.
* score: Use Processor_mask instead of cpu_set_tSebastian Huber2017-11-062-13/+7
|
* score: _Chain_Insert_ordered_unprotected()Sebastian Huber2017-11-068-65/+137
| | | | | | Change the chain order relation to use a directly specified left hand side value. This is similar to _RBTree_Insert_inline() and helps the compiler to better optimize the code.
* score: Remove superfluous includeSebastian Huber2017-11-061-3/+0
| | | | Update #3059.
* score: Add _IO_Printf() and _IO_Vprintf()Sebastian Huber2017-11-065-0/+449
| | | | | | | | | | | | | | The previous vprintk() implementation had a questionable licence header, lacks support for the 'z' and 'j' format specifiers, is not robust against invalid format specifiers, uses a global variable for output. Replace it with a stripped down version of the FreeBSD kernel kvprintf() function. The new implementation allows a low overhead rtems_snprintf() if necessary. Update #3199. Close #3216.
* posix: Use far future for very long timeoutsSebastian Huber2017-11-021-0/+30
| | | | Close #3205.
* cpukit: RISC-V - make riscv32 code work for riscv64 - v2Hesham Almatary2017-11-0119-48/+69
| | | | | | | | | * Use #ifdefs for 32/64 bit code * Use unsigned long which is 32-bit on riscv32 and 64-bit on riscv64 (register size) * Move the code to a new shared riscv folder to be shared between riscv32 and riscv64 * Rename RTEMS_CPU extracted from command line to shared riscv target s/riscv*/riscv Update #3109
* score: Fix non-SMP buildSebastian Huber2017-10-291-1/+1
|
* riscv32: Add missing preinstall.amSebastian Huber2017-10-281-0/+57
| | | | Update #3109.
* score: Fix _Scheduler_Set_affinity()Sebastian Huber2017-10-282-5/+11
|
* score: Simplify SMP get lowest scheduledSebastian Huber2017-10-283-28/+18
| | | | | | There is no need to pass in the order relation since the scheduled threads reside on an already ordered chain. The caller will decide what to do with the lowest scheduled thread.
* cpukit: Add basic riscv32 architecture port v3Hesham Almatary2017-10-2817-0/+3446
| | | | | | | Limitations: * NO FPU support [TODO] Update #3109
* Add riscv32 to autotools files v3Hesham Almatary2017-10-281-0/+1
|
* score: Delete _Scheduler_Thread_set_priority()Sebastian Huber2017-10-261-12/+0
|
* score: Move thread queue timeout handlingSebastian Huber2017-10-2422-313/+342
| | | | | Update #3117. Update #3182.
* score: Rename function threadq support functionSebastian Huber2017-10-2413-17/+17
| | | | | | | | | Rename _Thread_queue_Context_set_do_nothing_enqueue_callout() into _Thread_queue_Context_set_enqueue_do_nothing_extra(). More _Thread_queue_Context_set_enqueue_*() functions will follow. Update #3117. Update #3182.
* score: Add _Thread_Continue()Sebastian Huber2017-10-242-10/+33
| | | | | Update #3117. Update #3182.
* score: _Watchdog_Per_CPU_lazy_insert_monotonic()Sebastian Huber2017-10-241-0/+25
| | | | | Update #3117. Update #3182.
* score: Add _Watchdog_Monotonic_from_timespec()Sebastian Huber2017-10-241-0/+16
| | | | | Update #3117. Update #3182.
* score: Add _Watchdog_Nanoseconds_per_tickSebastian Huber2017-10-241-0/+8
| | | | | | | Move it from the configuration to a separate variable. Update #3117. Update #3182.
* score: _Watchdog_Is_far_future_monotonic_timespecSebastian Huber2017-10-242-0/+16
| | | | | Update #3117. Update #3182.
* score: Add _Watchdog_Is_valid_interval_timespec()Sebastian Huber2017-10-241-0/+7
| | | | | Update #3117. Update #3182.
* score: _Watchdog_Is_far_future_realtime_timespec()Sebastian Huber2017-10-241-9/+32
| | | | | Update #3117. Update #3182.
* score: Rename _Watchdog_Ticks_from_*()Sebastian Huber2017-10-243-5/+5
| | | | | | | | | | Rename _Watchdog_Ticks_from_*() to _Watchdog_Realtime_from_*(). This highlights that these routines are used for the CLOCK_REALTIME watchdogs (in contrast to CLOCK_MONOTONIC). Update #3117. Update #3182.
* score: Add _Watchdog_Ticks_per_secondSebastian Huber2017-10-241-0/+8
| | | | | | | | This value is frequently used. Avoid the function call overhead and the integer division at run-time. Update #3117. Update #3182.
* score: Add _Thread_Add_timeout_ticks()Sebastian Huber2017-10-242-8/+6
| | | | | | | | Replace _Thread_Timer_insert_monotonic() with _Thread_Add_timeout_ticks(). Update #3117. Update #3182.
* score: Fix warningSebastian Huber2017-10-211-1/+1
|
* score: Rename _Watchdog_Per_CPU_insert_monotonic()Sebastian Huber2017-10-172-2/+2
| | | | | | | | Rename _Watchdog_Per_CPU_insert_monotonic() in _Watchdog_Per_CPU_insert_ticks(). Update #3117. Update #3182.
* score: Rename watchdog variantsSebastian Huber2017-10-176-31/+35
| | | | | | | | | | | Rename PER_CPU_WATCHDOG_RELATIVE in PER_CPU_WATCHDOG_MONOTONIC to highlight the corresponding POSIX CLOCK_MONOTONIC. Rename PER_CPU_WATCHDOG_ABSOLUTE in PER_CPU_WATCHDOG_REALTIME to highlight the corresponding POSIX CLOCK_REALTIME. Update #3117. Update #3182.
* score: Remove unused function declarationSebastian Huber2017-10-121-15/+0
|
* timecounter: Update FreeBSD identifiersSebastian Huber2017-10-125-5/+5
| | | | Update #3175.