summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score/threaddispatch.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Fix maybe uninitialized warningZhongjie Zhu2023-02-071-3/+4
| | | | | | | | | | | | | | | | | | | There are different cases for _ISR_lock_ISR_disable() and _ISR_lock_ISR_enable() in the case RTEMS_SMP is defined or RTEMS_PROFILING is defined, so remove the related code. ../../../cpukit/include/rtems/score/threaddispatch.h: In function '_Thread_Dispatch_disable': ../../../cpukit/include/rtems/score/threaddispatch.h:231:14: warning: 'lock_context' may be used uninitialized [-Wmaybe-uninitialized] 231 | cpu_self = _Thread_Dispatch_disable_critical( &lock_context ); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../cpukit/include/rtems/score/threaddispatch.h:210:32: note: by argument 1 of type 'const ISR_lock_Context *' to '_Thread_Dispatch_disable_critical' declared here 210 | static inline Per_CPU_Control *_Thread_Dispatch_disable_critical( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../cpukit/include/rtems/score/threaddispatch.h:225:21: note: 'lock_context' declared here 225 | ISR_lock_Context lock_context; | ^~~~~~~~~~~~ Update #4662.
* Do not use RTEMS_INLINE_ROUTINESebastian Huber2022-09-191-8/+8
| | | | | | | Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
* cpukit/include/rtems/score/[s-z]*.h: Change license to BSD-2Joel Sherrill2022-02-281-3/+22
| | | | Updates #3053.
* score: Add _Thread_Dispatch_direct_no_return()Sebastian Huber2021-05-021-0/+11
| | | | | | | | | | The __builtin_unreachable() cannot be used with current GCC versions to tell the compiler that a function does not return to the caller, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151 Add a no return variant of _Thread_Dispatch_direct() to avoid generation of dead code.
* score: Canonicalize Doxygen @file commentsSebastian Huber2020-12-021-1/+2
| | | | | | Use common phrases for the file brief descriptions. Update #3706.
* doxygen: score: adjust doc in threaddispatch.h to doxygen guidelinesAndreas Dachsberger2019-05-131-10/+14
| | | | Update #3706.
* doxygen: Rename Score* groups in RTEMSScore*Sebastian Huber2019-04-041-1/+1
| | | | Update #3706
* score: Do not inline _Thread_Dispatch_enable()Sebastian Huber2018-08-231-27/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is slighly too complex for inlining with two if statements. The caller already needs a stack frame due to the potential call to _Thread_Do_dispatch(). In _Thread_Dispatch_enable() the call to _Thread_Do_dispatch() can be optimized to a tail call. A text size comparision (text size after patch - text size before patch) / text size before patch on sparc/erc32 with SMP enabled showed these results: Minimum -0.000697892 (fsdosfsname01.exe) Median -0.00745021 (psxtimes01.exe) Maximum -0.0233032 (spscheduler01.exe) A text size comparision text size after patch - text size before patch on sparc/erc32 with SMP enabled showed these results: Minimum -3312 (ada_sp09.exe) Median -1024 (tm15.exe) Maximum -592 (spglobalcon01.exe)
* score: Fix ISR enable in _Thread_Dispatch_enable()Sebastian Huber2018-08-201-2/+1
| | | | | | | This bug had probably no effect since the interrupt enable is idempotent on all CPU ports. Close #3496.
* Remove make preinstallChris Johns2018-01-251-0/+281
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.