summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps: Provide <tm27.h> in each BSPSebastian Huber2017-11-273-0/+58
| | | | | | | | | Since the <tm27.h> is highly BSP-dependent and used only by the tm27 test program we must provide this header file for each BSP. Without the preinstall build target each header file must have a unique source header file. Update #3254.
* Move Ada includesSebastian Huber2017-11-2742-0/+5024
| | | | Update #3254.
* 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-226-24/+53
| | | | | | | | | | | | 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-222-8/+2
| | | | | | Delete superfluous INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL. Update #3243.
* score: Simplify global constructionSebastian Huber2017-11-226-119/+64
| | | | Update #3243.
* Fix comments for object lookup error to RTEMS status mapMartin Erik Werner2017-11-211-3/+3
| | | | | | | | | | | | | | | | | | Based on correlation with the enum for object lookup errors in cpukit/score/include/rtems/score/objectimpl.h: typedef enum { OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL, OBJECTS_INVALID_NAME, OBJECTS_INVALID_ADDRESS, OBJECTS_INVALID_ID, OBJECTS_INVALID_NODE } Objects_Name_or_id_lookup_errors; update the comments regarding the object lookup error to status map to match. Signed-off-by: Martin Erik Werner <martin.werner@aacmicrotec.com>
* posix: _POSIX_Threads_Get_sched_param_sporadic()Sebastian Huber2017-11-213-9/+4
| | | | | | Remove api parameter to simplify the calling functions. Update #2514.
* 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-174-3/+27
| | | | | | | 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.
* rtems: rtems_semaphore_flush() with prio inheritSebastian Huber2017-11-161-2/+6
| | | | | | | | | The _Semaphore_Get_operations() must return the proper operations for priority inheritance semaphores. Add a test case for rtems_semaphore_flush() with priority inheritance. Close #3235.
* score: Check thread resource count in timer serverSebastian Huber2017-11-161-1/+7
| | | | | | | The watchdog routines invoked by the timer server may use mutexes for synchronization. Ensure that the resource count of the timer server is zero after each watchdog routine invocation. This helps to detect broken watchdog routines.
* libio: Add assert to rtems_libio_iop_drop()Sebastian Huber2017-11-151-0/+23
| | | | | | | This assert helps to detect an invalid reference counting in RTEMS_DEBUG configurations. Update #3132.
* build: Fix the dependence for the generating the key file.Chris Johns2017-11-141-6/+6
| | | | Update #3217.
* Change RTEMS_API from 5.0 to 5Sebastian Huber2017-11-131-1/+1
| | | | | | | This fixes the legacy Makefile based build system which expects RTEMS_API to be identical to the tool chain version. Update #3220.
* Fix bashism in vc-key.shMartin Erik Werner2017-11-131-2/+2
| | | | | | | Change "==" to "=", since "==" for comparison is not available in POSIX sh. Signed-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
* tests: Use ld to map (wrap) printf, puts and putchar to tester functions.Chris Johns2017-11-114-0/+61
| | | | | | | | | - Remove the macro defines and the need for tmacro.h by remapping the symbols using ld's wrap option. - Remove FLUSH_OUTPUT, it was empty. - Move rtems_test_exit to libmisc/testsupport as a function. Update #3199.
* tests: Use rtems_test_begin and rtems_test_end.Chris Johns2017-11-112-13/+120
| | | | | | Add a tests enum and move all test banner test to the library in libmisc. Update #3199.
* cpukit: Add a Version API.Chris Johns2017-11-106-1/+227
| | | | | | | | Provide functions to get the version string, major, minor and revision numbers and the version control identifer that is a unique tag for the version control system. Update #3199.
* Reject incompatible tool chainsSebastian Huber2017-11-091-0/+3
| | | | Update #3185.
* score: Change _Timecounter_Time_uptime to int32_tSebastian Huber2017-11-096-2/+64
| | | | | | | Move basic timecounter API shared with BSD network stack to <machine/_timecounter.h>. Update #3185.
* Upgrade to 5.0.0Sebastian Huber2017-11-091-2/+2
| | | | | | | Tool name will be "rtems5", e.g. arm-rtems5-gcc. Next release will 5.1.0. Branch version after release will be 5.1.1. Next master will be 6.0.0.
* posix: Change created_with_explicit_schedulerSebastian Huber2017-11-094-8/+11
| | | | | | | | 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.
* posix: Remove POSIX_API_Control::schedpolicySebastian Huber2017-11-098-27/+45
| | | | | | | Use the thread CPU budget algorithm to determine the scheduler policy. This fixes also pthread_getschedparam() for Classic tasks. Update #2514.
* termios: Fix canonical modeSebastian Huber2017-11-071-2/+4
| | | | | | | In canonical mode, input is made available line by line. We must stop the canonical buffer filling upon reception of an end-of-line character. Close #3218.
* 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.
* Add simple console driverSebastian Huber2017-11-064-0/+124
| | | | | Update #3170. Update #3199.
* score: Add _IO_Printf() and _IO_Vprintf()Sebastian Huber2017-11-066-206/+463
| | | | | | | | | | | | | | 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-023-22/+38
| | | | Close #3205.
* cpukit: RISC-V - make riscv32 code work for riscv64 - v2Hesham Almatary2017-11-0121-49/+72
| | | | | | | | | * 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
|
* rtems: Add rtems_print_printer_fprintf_putc()Sebastian Huber2017-10-283-11/+82
| | | | | Update #3170. Update #3199.
* tests: Move rtems_test_printer definitionSebastian Huber2017-10-283-3/+14
| | | | | | | Statically initialize it to use printk(). Update #3170. Update #3199.
* riscv32: Add missing preinstall.amSebastian Huber2017-10-281-0/+57
| | | | Update #3109.
* score: Fix _Scheduler_Set_affinity()Sebastian Huber2017-10-282-5/+11
|
* posix: Fix pthread_create() with user stackSebastian Huber2017-10-281-3/+11
| | | | | | | In case the user provides a stack with address and size, then do not alter the stack size. Close #3211.
* 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
* cpukit: librpc - add riscv* to xdr_float.c v3Hesham Almatary2017-10-281-0/+1
|
* Add riscv32 to autotools files v3Hesham Almatary2017-10-282-0/+2
|
* score: Delete _Scheduler_Thread_set_priority()Sebastian Huber2017-10-261-12/+0
|
* confdefs: CONFIGURE_MICROSECONDS_PER_TICKSebastian Huber2017-10-251-0/+4
| | | | Reject non-positive CONFIGURE_MICROSECONDS_PER_TICK values.
* rtems: rtems_clock_get_ticks_per_second()Sebastian Huber2017-10-252-0/+5
| | | | | | | Add macro implementation for rtems_clock_get_ticks_per_second() for C/C++ to avoid the function call overhead. A rtems_clock_get_ticks_per_second() is still provided for language bindings (e.g. Ada).