summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/taskconstruct.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* rtems: Check for NULL config in task constructSebastian Huber2021-04-231-0/+4
| | | | | | | Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_task_construct(). Update #3959.
* score: Replace Objects_Name_or_id_lookup_errorsSebastian Huber2021-04-071-0/+4
| | | | | Replace Objects_Name_or_id_lookup_errors with new Status_Control codes. Get rid of the _Status_Object_name_errors_to_status lookup table.
* score: Fix internal error status numberSebastian Huber2021-04-071-0/+22
| | | | | | The value of STATUS_CLASSIC_INTERNAL_ERROR must be equal to RTEMS_INTERNAL_ERROR. Add static assertions to ensure that the status codes match.
* score: Fix thread initializationSebastian Huber2021-02-261-16/+7
| | | | | | | | Close the thread object if a thread create extension fails. Also call the delete extension to avoid resource leaks in early extensions if a late extension fails. Close #4270.
* score: Remove _Objects_Open()Sebastian Huber2021-02-241-1/+1
| | | | | Use the type safe _Objects_Open_u32() instead. Return the object identifier to enforce a common usage pattern.
* score: Add _Thread_Get_objects_information()Sebastian Huber2021-02-011-0/+8
| | | | | | | | | | | | | | | | | | | | | We do not need all the checks if we have a valid indentifier to a thread class object. Using the new _Thread_Get_objects_information() instead of the inline function _Thread_Get_objects_information_by_id() avoids dead code since the identifier in a thread control is always valid and the return NULL path in _Thread_Get_objects_information_by_id() would be dead code. The _Thread_Get_objects_information_by_id() should be an inline function since it is used by _Thread_Get() and thus performance critical. Static analyzers which cannot derive that the identifier in a thread control is always valid, may find a potential NULL pointer access (or otherwise find dead code). The identifier in an object control is always valid, see _Objects_Initialize_information() and _Objects_Extend_information(). Move _RTEMS_tasks_Free() to the only source file which calls this function.
* rtems: Canonicalize Doxygen @file commentsSebastian Huber2020-12-021-2/+3
| | | | | | Use common phrases for the file brief descriptions. Update #3706.
* Remove *_Is_null() inline functionsSebastian Huber2020-10-141-1/+1
| | | | Simply compare the values against NULL.
* rtems: Canonicalize name and id checksSebastian Huber2020-10-011-4/+6
| | | | | | Check the name followed by the id check in all create directives. Compare pointers against NULL. Fix formatting.
* rtems: Add rtems_task_construct()Sebastian Huber2020-09-171-0/+300
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.