summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALLSebastian Huber2022-10-141-1/+2
| | | | | | | Ensure that the IDLE storage allocator did allocate a suffiently large area. Update #3835. Update #4524.
* config: Add CONFIGURE_IDLE_TASK_STORAGE_SIZESebastian Huber2022-10-143-11/+57
| | | | | | | | | | | | By default, allocate the IDLE task storage areas from the RTEMS Workspace. This avoids having to estimate the thread-local storage size in the default configuration. Add the application configuration option CONFIGURE_IDLE_TASK_STORAGE_SIZE to request a static allocation of the task storage area for IDLE tasks. Update #3835. Update #4524.
* score: INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILEDSebastian Huber2022-10-141-0/+1
| | | | | | Add the INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED fatal error in case the creation of an idle thread fails. This may happen due to a failing create extension provided by the application.
* score: Simplify castsSebastian Huber2022-10-141-8/+4
|
* score: Add CPU_THREAD_LOCAL_STORAGE_VARIANTSebastian Huber2022-10-141-119/+85
| | | | Update #3835.
* score: Move Thread_Control::Registers memberSebastian Huber2022-10-141-2/+9
| | | | | | | | | Place this member placed directly after the end of the common block so that the structure offsets are as small as possible. This helps on instruction set architectures with a very limited range for intermediate values. For example, see the __aeabi_read_tp() implementation for ARM Thumb-1. Update #3835.
* config: Changeable size for IDLE stack allocatorSebastian Huber2022-10-141-5/+12
| | | | | | | | Allow the IDLE stack allocator to change the stack size. This can be used by applications with a very dynamic thread-local storage size to adjust the thread storage area of the IDLE tasks dynamically. Update #4524.
* score: Simplify Chain_Node definitionSebastian Huber2022-09-231-16/+6
| | | | Fix documentation.
* Do not use RTEMS_INLINE_ROUTINESebastian Huber2022-09-1944-548/+548
| | | | | | | Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
* score: Remove _CPU_Counter_difference()Sebastian Huber2022-09-092-6/+3
| | | | | | | All CPU ports used the same _CPU_Counter_difference() implementation. Remove this CPU port interface and mandate a monotonically increasing CPU counter. Close #3456.
* score: Improve formattingSebastian Huber2022-09-081-4/+10
|
* score: Regenerate <rtems/score/basedefs.h>Sebastian Huber2022-09-051-2/+2
| | | | Two interface specification items moved.
* Add items to Doxygen groupsSebastian Huber2022-09-051-0/+6
|
* Fix pedanic warnings without a storage increaseSebastian Huber2022-08-311-1/+1
| | | | | | Use RTEMS_ZERO_LENGTH_ARRAY for flexible array member. Update #4662.
* score: Do not expose <limits.h> to <rtems.h>Sebastian Huber2022-08-301-3/+1
| | | | | | | | The <rtems.h> header file should not unnecessarily include standard C header files. The <string.h> and <limits.h> header includes were removed in 2017. Update #4662.
* score: Fix formatSebastian Huber2022-08-291-1/+1
| | | | Update #4706.
* score: Fix formatSebastian Huber2022-08-292-3/+3
| | | | Update #4706.
* cpukit/include: Fix including in C++Chris Johns2022-08-222-3/+3
| | | | UPdates #4706
* cpukit/include: Fixes for C++Chris Johns2022-08-222-3/+3
| | | | Updates #4706
* schedulerpriority.h: Fix gcc 12 warningRyan Long2022-08-191-1/+1
| | | | | | Changed the size of the array to 1 to get rid of the warning. Updates #4662
* percpu.h: Add pragma for gcc 12 warningRyan Long2022-08-191-0/+8
| | | | Updates #4662
* interr.h: Fix gcc 12 warningRyan Long2022-08-191-1/+3
| | | | | | | The warning that this fixes states that "ISO C restricts enumerator values to range of 'int'." Updates #4662
* score: Allow linker garbage collectionSebastian Huber2022-07-282-3/+3
| | | | | | | Place the object control blocks in dedicated sections to allow a linker garbage collection. Update #4678.
* score: Use PTHREAD_CANCELED for _Thread_Cancel()Sebastian Huber2022-07-281-4/+1
| | | | | | | | | | The rtems_task_delete() directive is basically just a combined pthread_cancel() and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The exit value returned by pthread_join() of threads cancelled by rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value instead of NULL which could be a normal exit value. Close #4680.
* score: Use priority inheritance for thread joinSebastian Huber2022-07-281-24/+57
| | | | | | | | | | | | | | | | | | | | | Threads may join the thread termination of another thread using the pthread_join() or rtems_task_delete() directives. The thread cancel operation used a special case priority boosting mechanism implemented by _Thread_Raise_real_priority(). The problem was that this approach * is not transitive, * does not account for priority adjustments of the calling task while waiting for the join, * does not support clustered scheduling, and * does not detect deadlocks. All these problems are fixed by using a priority inheritance thread queue for the join operation. Close #4679.
* score: Fix objects local table initializationSebastian Huber2022-07-272-4/+2
| | | | | | | | The objects local table must be statically zero-initialized so that _Objects_Get() and _Objects_Get_no_protection() return NULL if no object is associated with the identifier. Update #4678.
* score: Remove PRIORITY_PSEUDO_ISR thread prioritySebastian Huber2022-07-266-122/+242
| | | | | | | | | | | | | | | The uniprocessor schedulers had some special case logic for the PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR were allowed to preempt a not preemptible task. If other higher priority task are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible task, then the other tasks run before the not preemptible task. This made the RTEMS_NO_PREEMPT mode ineffective. Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the uniprocessor schedulers. Move the uniprocessor-specific scheduler support to the new header file <rtems/score/scheduleruniimpl.h>. Close #2365.
* Support _REENT_THREAD_LOCAL Newlib configurationMatt Joyce2022-07-211-0/+4
| | | | | | | | | In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the struct _reent is not defined (there is only a forward declaration in <sys/reent.h>). Instead, the usual members of struct _reent are available as dedicatd thread-local storage objects. Update #4560.
* score: Fix unlimited objects supportSebastian Huber2022-07-181-4/+25
| | | | | | | | Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static Objects_Information initialization") introduced an off-by-one error in the maintenance of inactive objects. Close #4677.
* score: Extend memory dirty/zero actionsSebastian Huber2022-07-151-1/+13
| | | | | | Dirty or zero also the part of the .noinit section used by RTEMS. Close #4678.
* score: Place object controls into .noinit sectionsSebastian Huber2022-07-152-5/+11
| | | | | | | | | | | | Place the statically allocated object control blocks, local tables, and thread queue heads into the dedicated .noinit intput sections. The output section is not zero initialized. Placing these elements into the .noinit section reduces the system initialization time by decreasing the .bss section size. It may improve the cache efficiency since the mostly read local tables are placed in a contiguous memory area. Update #4678.
* score: Conditional _Thread_Priority_replace()Sebastian Huber2022-07-071-0/+2
| | | | This function is only used in SMP configurations.
* gcov: Add functions to dump the gcov informationSebastian Huber2022-07-041-0/+87
| | | | Update #4670.
* score: Account for <sys/bitset.h> API changesSebastian Huber2022-06-231-17/+73
| | | | Update #4667.
* score: Remove unused _Processor_mask_Nand()Sebastian Huber2022-06-231-16/+0
| | | | Update #4667.
* score: Make SMP only code explicitSebastian Huber2022-06-231-28/+5
| | | | | | | Conditional expressions with inline functions are not optimized away if optimization is disabled. Avoid such expressions to prevent dead branches. It helps also during code review to immediately see if a loop is used or not.
* timecounter.h: Add _Timecounter_Discipline()Gabriel Moyano2022-05-231-0/+17
| | | | Update #2349.
* score: Rename tc_getfrequency()Gabriel Moyano2022-05-231-0/+8
| | | | | | Rename tc_getfrequency() to _Timecounter_Get_frequency(). Update #2349.
* score: Add SMP priority affinity scheduler yieldTian Ye2022-05-121-1/+7
|
* heap: Fix heap statistics with protection enabledSebastian Huber2022-04-281-9/+1
| | | | Close #4644.
* smp: Add fatal errorSebastian Huber2022-03-241-1/+2
| | | | | | | Add SMP-specifc SMP_FATAL_MULTITASKING_START_ON_NOT_ONLINE_PROCESSOR fatal error. This fatal error helps to diagnose a broken SMP startup sequence. Without this error a context switch using the NULL pointer for the thread control block happens which may be difficult to debug.
* score: Add _IO_Relax()Sebastian Huber2022-03-241-0/+8
| | | | | | | This function may be used to burn a couple of processor cycles with minimum impact on the system bus. It may be used in busy wait loops. Since it is a global function, it is possible to wrap it in device driver test code.
* cpukit/: Scripted embedded brains header file clean upJoel Sherrill2022-03-1024-144/+0
| | | | Updates #4625.
* cpukit/include/rtems/score/[s-z]*.h: Change license to BSD-2Joel Sherrill2022-02-2853-159/+1166
| | | | Updates #3053.
* cpukit/include/rtems/score/[a-r]*.h: Change license to BSD-2Joel Sherrill2022-02-2850-150/+1100
| | | | Updates #3053.
* kern_ntptime.c: Port to RTEMSSebastian Huber2022-02-211-0/+9
| | | | | | Remove previous adjtime() implementation. Update #2348.
* Remove obsolete rtems_gxx_*() implementationSebastian Huber2022-01-271-2/+2
| | | | | | | | | | | GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib <sys/lock.h> for the RTEMS thread model. Remove the obsolete implementation. Close #3143.
* Avoid ISR_LOCK_MEMBER() since it confuses DoxygenSebastian Huber2021-12-094-5/+11
| | | | | If RTEMS_SMP is not defined, then Doxygen adds the comments intended for conditional the lock member to the next member.
* score: Fix _Workspace_Initialize_for_one_area()Sebastian Huber2021-12-071-14/+20
| | | | | | | In _Workspace_Initialize_for_one_area(), properly check if there is enough free memory available for the configured workspace size. The bug was introduced by commit 3d0620b607ff6459fec9d30efc1e0589bbd010f9.
* score: Fix atomic stores for C++Sebastian Huber2021-12-071-3/+3
| | | | Close #4566.