summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/rtems/tasks.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-07-25rtems: Improve task entry wordingSebastian Huber1-3/+3
2023-07-20rtems: Fix typoSebastian Huber1-1/+1
Update #4772.
2023-07-20rtems: Update references to rtems_task_wake_afterKinsey Moore1-8/+13
rtems_task_wake_after takes a parameter in terms of a count of clock ticks and not a measure in a subunit of seconds. This updates documentation to reflect that. This also makes obvious the caveat about the first tick wait not being a whole tick and points the user at a replacement for better accuracy. Updates #4772
2023-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2023-05-19rtems: Reference types in construct directivesSebastian Huber1-1/+2
2023-02-14doxygen: Harmonize header file referencesSebastian Huber1-3/+3
2023-02-14doxygen: Use @anchor for appl config optionsSebastian Huber1-24/+25
The application configuration options are documented in "cpukit/doxygen/appl-config.h". Since the application configuration option defines are also present in multiple test program sources, the "#OPTION" references cannot be mapped to a unique definition. Add an anchor for each option and reference it to avoid the issues with the multiple definitions. Update #3994.
2022-09-05Add items to Doxygen groupsSebastian Huber1-17/+19
2022-07-28score: Use priority inheritance for thread joinSebastian Huber1-7/+21
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.
2022-03-29rtems: Clarify scheduler of created taskSebastian Huber1-3/+3
2021-12-02rtems: Move scheduler directives to own headerSebastian Huber1-479/+1
Move all rtems_scheduler_* directives to the new header file <rtems/rtems/scheduler.h>. Add a Scheduler Manager API and implementation group.
2021-11-23rtems: Fix rtems_scheduler_remove_processor()Sebastian Huber1-3/+6
Return an error status for the following error condition in rtems_scheduler_remove_processor(): While an attempt is made to remove a processor from a scheduler, while the processor is the only processor owned by the scheduler, if a thread exists which uses the scheduler as a helping scheduler, then the processor shall not be removed. The reason is that ask for help requests and withdraw node requests are processed asynchronously in any order. An ask for help request carried out on a scheduler without a processor is undefined behaviour. Update error status description. Update #4544.
2021-11-18rtems: Use RTEMS_WHO_AM_I for rtems_task_ident()Sebastian Huber1-1/+2
2021-09-15rtems: Add header files to Doxygen groupsSebastian Huber1-0/+2
2021-07-15rtems: Fix Doxygen commentSebastian Huber1-2/+2
2021-06-17rtems: Fix rtems_task_set_affinity() docsSebastian Huber1-1/+1
2021-06-15Use a common phrase for pointer parametersSebastian Huber1-58/+56
Mention the type of the pointer in the parameter description. Use the more general term "object" instead of "variable". Update #3993.
2021-05-27rtems: Document new rtems_task_delete() errorSebastian Huber1-0/+3
Update #4414.
2021-05-12rtems: Constify rtems_task_wake_when()Sebastian Huber1-1/+1
Add a parameter to _TOD_Validate() to disable the validation of the ticks member. There are two reasons for this change. Firstly, in rtems_task_wake_when() was a double check for time_buffer == NULL (one in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the ticks member is ignored by rtems_task_wake_when(). This was done with a write of zero to the ticks member and thus a modification of the user-provided structure. Now the structure is no longer modified. Using a mask parameter is quite efficient. You just have to load an immediate value and there are no additional branches in _TOD_Validate(). Close #4406.
2021-05-12rtems: Document rtems_task_set_scheduler() errorsSebastian Huber1-3/+20
2021-05-12rtems: Clarify rtems_task_get_priority() docSebastian Huber1-2/+2
2021-05-07rtems: rtems_scheduler_get_processor_set() docsSebastian Huber1-1/+1
Document changed error status. Update #4401.
2021-05-07rtems_scheduler_ident_by_processor_set() docsSebastian Huber1-0/+2
Document new error status.
2021-04-28rtems: Generate <rtems/rtems/tasks.h>Sebastian Huber1-633/+1982
Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
2021-03-04rtems: Fix RTEMS_TASK_STORAGE_ALIGNMENTSebastian Huber1-1/+1
Make sure we meet the stack alignment requirement for user-provided thread storage areas.
2020-10-10rtems: Improve RTEMS_NO_RETURN attributeSebastian Huber1-1/+1
Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
2020-09-18rtems: From <rtems.h> to <rtems/rtems/tasks.h>Sebastian Huber1-0/+29
Move task related declarations and definitions to <rtems/rtems/tasks.h>. The goal is to make <rtems.h> an include only header file.
2020-09-17rtems: Fix typoSebastian Huber1-1/+1
Update #3959.
2020-09-17rtems: Add rtems_task_construct()Sebastian Huber1-0/+184
In contrast to rtems_task_create() this function constructs a task with a user-provided task storage area. The new directive uses a configuration structure instead of individual parameters. Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a task storage area based on the task attributes and the size dedicated to the task stack and thread-local storage. This macro may allow future extensions without breaking the API. Add application configuration option CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE to adjust RTEMS Workspace size estimate. Update #3959.
2020-09-17CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber1-0/+9
Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
2020-07-14rtems: Remove rtems_get_processor_count()Sebastian Huber1-15/+0
This function was deprecated in RTEMS 5.1. Close #3990.
2020-07-14rtems: Remove rtems_get_current_processor()Sebastian Huber1-15/+0
This function was deprecated in RTEMS 5.1. Close #3989.
2020-03-04rtems: rtems_scheduler_get_processor_maximum()Sebastian Huber1-2/+3
In uniprocessor configurations, use compile-time constants for rtems_scheduler_get_processor_maximum() and rtems_scheduler_get_processor(). This helps compilers and static analyzers to deduce that some loop bodies are only executed once and some conditional statements have a fixed outcome (may improve code generation and reduce false positives). In SMP configurations, directly provide the internal implementation for performance reasons.
2020-03-03rtems: Add rtems_scheduler_map_priority_from_posix()Sebastian Huber1-0/+18
Update #3881.
2020-03-03rtems: Add rtems_scheduler_map_priority_to_posix()Sebastian Huber1-0/+18
Update #3881.
2019-04-09rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber1-0/+33
Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
2019-04-09rtems: Add rtems_scheduler_get_processor()Sebastian Huber1-0/+34
Add rtems_scheduler_get_processor() as a replacement for rtems_get_current_processor(). The rtems_get_current_processor() is a bit orphaned. Adopt it by the Scheduler Manager. This is in line with the glibc sched_getcpu() function. Deprecate rtems_get_current_processor(). Update #3731.
2019-04-02doxygen: Restructured cpukit/include/rtems/rtemsAndreas Dachsberger1-1/+1
Update #3706.
2018-12-07rtems: Add rtems_scheduler_get_maximum_priority()Sebastian Huber1-0/+15
Update #3636.
2018-12-06rtems: Fix rtems_task_restart() argument typeSebastian Huber1-3/+3
Close #3637.
2018-11-12rtems: Avoid include of <rtems/score/scheduler.h>Sebastian Huber1-5/+6
Update #3598.
2018-11-12rtems: Avoid include of <rtems/score/thread.h>Sebastian Huber1-3/+4
Update #3598.
2018-11-12rtems: Move internal structures to tasksdata.hSebastian Huber1-59/+3
Update #3598.
2018-11-12rtems: Move internal structures to eventdata.hSebastian Huber1-2/+2
Update #3598.
2018-11-12rtems: Move internal structures to asrdata.hSebastian Huber1-1/+1
Update #3598.
2018-10-01rtems: Add rtems_task_exit()Sebastian Huber1-0/+2
Update #3533.
2018-01-25Remove make preinstallChris Johns1-0/+0
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.
2017-07-11rtems: Add rtems_scheduler_ident_by_processor_setSebastian Huber1-0/+25
Update #3070.
2017-07-11rtems: Add rtems_scheduler_ident_by_processor()Sebastian Huber1-0/+17
Update #3069.
2017-02-01rtems: Fix RTEMS_MAXIMUM_PRIORITY defineSebastian Huber1-1/+1
Cast the internal PRIORITY_MAXIMUM to the right type for a Classic API task priority to avoid integer conversion warnings.