18 #ifndef _RTEMS_RTEMS_TASKS_H 19 #define _RTEMS_RTEMS_TASKS_H 44 #define RTEMS_SELF OBJECTS_ID_OF_SELF 50 #define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT 63 #define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY 69 #define RTEMS_MINIMUM_PRIORITY 1 83 #define RTEMS_MAXIMUM_PRIORITY _RTEMS_Maximum_priority() 89 #define RTEMS_CURRENT_PRIORITY 0 441 const cpu_set_t *cpuset
583 const cpu_set_t *cpuset,
604 #define rtems_scheduler_get_processor() _SMP_Get_current_processor() 637 #define rtems_scheduler_get_processor_maximum() _SMP_Get_processor_maximum() bool(* rtems_task_visitor)(rtems_tcb *tcb, void *arg)
Task visitor.
Definition: tasks.h:507
uint32_t rtems_attribute
Definition: attr.h:41
rtems_status_code rtems_task_wake_after(rtems_interval ticks)
RTEMS Task Wake After.
Definition: taskwakeafter.c:25
rtems_status_code rtems_task_set_affinity(rtems_id id, size_t cpusetsize, const cpu_set_t *cpuset)
Sets the processor affinity set of a task.
Definition: tasksetaffinity.c:26
size_t stack_size
Definition: tasks.h:125
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
rtems_status_code rtems_task_get_scheduler(rtems_id task_id, rtems_id *scheduler_id)
Gets the scheduler of a task.
Definition: taskgetscheduler.c:22
rtems_status_code rtems_scheduler_ident(rtems_name name, rtems_id *id)
Identifies a scheduler by its name.
Definition: schedulerident.c:22
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
void rtems_task
Definition: tasks.h:101
RTEMS_DEPRECATED RTEMS_INLINE_ROUTINE uint32_t rtems_get_processor_count(void)
Returns the processor maximum supported by the system.
Definition: tasks.h:649
rtems_name name
Definition: tasks.h:123
rtems_status_code rtems_task_wake_when(rtems_time_of_day *time_buffer)
RTEMS Task Wake When.
Definition: taskwakewhen.c:27
#define RTEMS_NO_RETURN
Definition: basedefs.h:102
rtems_status_code rtems_task_ident(rtems_name name, uint32_t node, rtems_id *id)
RTEMS Task Name to Id.
Definition: taskident.c:29
rtems_task_argument argument
Definition: tasks.h:135
rtems_status_code rtems_scheduler_map_priority_from_posix(rtems_id scheduler_id, int posix_priority, rtems_task_priority *priority)
Map a POSIX thread priority to the corresponding task priority.
Definition: schedulermapfromposix.c:43
rtems_status_code rtems_scheduler_get_processor_set(rtems_id scheduler_id, size_t cpusetsize, cpu_set_t *cpuset)
Gets the set of processors owned by the specified scheduler instance.
Definition: schedulergetprocessorset.c:22
rtems_attribute attribute_set
Definition: tasks.h:129
rtems_status_code rtems_task_mode(rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set)
RTEMS Task Mode.
Definition: taskmode.c:30
rtems_status_code rtems_task_get_affinity(rtems_id id, size_t cpusetsize, cpu_set_t *cpuset)
Gets the processor affinity set of a task.
Definition: taskgetaffinity.c:26
SuperCore SMP Support API.
rtems_status_code rtems_scheduler_ident_by_processor_set(size_t cpusetsize, const cpu_set_t *cpuset, rtems_id *id)
Identifies a scheduler by a processor set.
Definition: scheduleridentbyprocessorset.c:23
#define rtems_scheduler_get_processor_maximum()
Returns the processor maximum supported by the system.
Definition: tasks.h:637
rtems_status_code rtems_task_create(rtems_name name, rtems_task_priority initial_priority, size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, rtems_id *id)
RTEMS Task Create.
Definition: taskcreate.c:36
Data structure to manage and manipulate calendar time.
Definition: types.h:141
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_task_priority initial_priority
Definition: tasks.h:127
void rtems_task_iterate(rtems_task_visitor visitor, void *arg)
Iterates over all tasks in the system.
Definition: taskiterate.c:23
rtems_task_entry entry_point
Definition: tasks.h:131
rtems_status_code rtems_task_delete(rtems_id id)
RTEMS Delete Task.
Definition: taskdelete.c:24
rtems_status_code rtems_scheduler_add_processor(rtems_id scheduler_id, uint32_t cpu_index)
Adds a processor to the set of processors owned by the specified scheduler instance.
Definition: scheduleraddprocessor.c:24
#define rtems_scheduler_get_processor()
Returns the index of the current processor.
Definition: tasks.h:604
rtems_status_code rtems_task_start(rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument)
RTEMS Start Task.
Definition: taskstart.c:25
rtems_status_code rtems_task_set_scheduler(rtems_id task_id, rtems_id scheduler_id, rtems_task_priority priority)
Sets the scheduler instance of a task.
Definition: tasksetscheduler.c:23
rtems_status_code rtems_task_is_suspended(rtems_id id)
rtems_task_is_suspended
Definition: taskissuspended.c:25
rtems_id rtems_task_self(void)
RTEMS Get Self Task Id.
Definition: taskself.c:23
rtems_status_code rtems_task_set_priority(rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority)
RTEMS Set Task Priority.
Definition: tasksetpriority.c:61
RTEMS_DEPRECATED RTEMS_INLINE_ROUTINE uint32_t rtems_get_current_processor(void)
Returns the index of the current processor.
Definition: tasks.h:616
rtems_status_code rtems_scheduler_map_priority_to_posix(rtems_id scheduler_id, rtems_task_priority priority, int *posix_priority)
Map a task priority to the corresponding POSIX thread priority.
Definition: schedulermaptoposix.c:43
rtems_task(* rtems_task_entry)(rtems_task_argument)
Definition: tasks.h:111
CPU_Uint32ptr rtems_task_argument
Definition: tasks.h:106
uintptr_t CPU_Uint32ptr
Definition: cpu.h:662
rtems_mode mode_set
Definition: tasks.h:133
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
rtems_status_code rtems_scheduler_ident_by_processor(uint32_t cpu_index, rtems_id *id)
Identifies a scheduler by a processor index.
Definition: scheduleridentbyprocessor.c:23
rtems_status_code rtems_task_get_priority(rtems_id task_id, rtems_id scheduler_id, rtems_task_priority *priority)
Gets the current priority of the specified task with respect to the specified scheduler instance.
Definition: taskgetpriority.c:23
rtems_status_code rtems_task_restart(rtems_id id, rtems_task_argument argument)
RTEMS Task Restart.
Definition: taskrestart.c:24
uint32_t rtems_mode
Definition: modes.h:41
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
rtems_status_code rtems_scheduler_remove_processor(rtems_id scheduler_id, uint32_t cpu_index)
Removes a processor from set of processors owned by the specified scheduler instance.
Definition: schedulerremoveprocessor.c:64
rtems_status_code rtems_task_suspend(rtems_id id)
RTEMS Suspend Task.
Definition: tasksuspend.c:24
rtems_status_code rtems_scheduler_get_maximum_priority(rtems_id scheduler_id, rtems_task_priority *priority)
Gets the maximum task priority of the specified scheduler instance.
Definition: schedulergetmaxprio.c:35
rtems_status_code rtems_task_resume(rtems_id id)
RTEMS Resume Task.
Definition: taskresume.c:24
uint32_t rtems_task_priority
Definition: tasks.h:55