53 #ifndef _RTEMS_RTEMS_TASKS_H 54 #define _RTEMS_RTEMS_TASKS_H 59 #include <sys/cpuset.h> 202 void ( *storage_free )(
void * );
248 #define RTEMS_CURRENT_PRIORITY 0 329 #define rtems_scheduler_get_processor() _SMP_Get_current_processor() 350 #define rtems_scheduler_get_processor_maximum() _SMP_Get_processor_maximum() 470 const cpu_set_t *cpuset,
576 #define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE 0 955 #define RTEMS_MAXIMUM_PRIORITY _RTEMS_Maximum_priority() 964 #define RTEMS_MINIMUM_PRIORITY 1 973 #define RTEMS_MINIMUM_STACK_SIZE STACK_MINIMUM_SIZE 1001 #define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY 1046 #define RTEMS_SELF OBJECTS_ID_OF_SELF 1064 const cpu_set_t *cpuset
1135 #define RTEMS_TASK_STORAGE_ALIGNMENT CPU_HEAP_ALIGNMENT 1153 #if CPU_ALL_TASKS_ARE_FP == TRUE 1154 #define RTEMS_TASK_STORAGE_SIZE( _size, _attributes ) \ 1155 ( ( _size ) + CONTEXT_FP_SIZE ) 1157 #define RTEMS_TASK_STORAGE_SIZE( _size, _attributes ) \ 1159 ( ( ( _attributes ) & RTEMS_FLOATING_POINT ) != 0 ? \ 1160 CONTEXT_FP_SIZE : 0 ) ) 1203 #define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT rtems_status_code rtems_scheduler_ident_by_processor_set(size_t cpusetsize, const cpu_set_t *cpuset, rtems_id *id)
Identifies a scheduler instance by a processor set.
rtems_status_code rtems_task_get_priority(rtems_id task_id, rtems_id scheduler_id, rtems_task_priority *priority)
%
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 scheduler instance.
This header file defines types provided by the Classic API.
rtems_status_code rtems_task_is_suspended(rtems_id id)
%
Information About Each Thread's Context.
rtems_mode initial_modes
This member defines the initial modes of the task.
This header file defines the task modes of the Task Manager API.
rtems_status_code rtems_scheduler_map_priority_from_posix(rtems_id scheduler_id, int posix_priority, rtems_task_priority *priority)
Maps a POSIX thread priority to the corresponding Classic API task priority.
rtems_status_code rtems_task_get_affinity(rtems_id id, size_t cpusetsize, cpu_set_t *cpuset)
%
uint32_t rtems_name
This type is used to represent a Classic API object name.
rtems_status_code rtems_task_set_affinity(rtems_id id, size_t cpusetsize, const cpu_set_t *cpuset)
%
rtems_status_code rtems_task_ident(rtems_name name, uint32_t node, rtems_id *id)
Identifies a task object by the specified object name.
Constants and Structures Associated with the Object Handler.
rtems_name name
This member defines the name of the task.
rtems_task_argument argument
%
rtems_status_code rtems_task_delete(rtems_id id)
%
rtems_status_code rtems_scheduler_ident_by_processor(uint32_t cpu_index, rtems_id *id)
Identifies a scheduler instance by a processor index.
This structure defines the configuration of a task constructed by rtems_task_construct().
rtems_attribute attribute_set
%
rtems_status_code rtems_task_start(rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument)
%
rtems_id rtems_task_self(void)
%
This header file defines the status codes and support functions of the Classic API.
rtems_status_code rtems_task_wake_when(rtems_time_of_day *time_buffer)
%
CPU_Uint32ptr rtems_task_argument
This type is used to represent task argument values.
SuperCore SMP Support API.
uint32_t rtems_task_priority
%
rtems_status_code rtems_task_resume(rtems_id id)
%
bool(* rtems_task_visitor)(rtems_tcb *, void *)
%
void rtems_task_iterate(rtems_task_visitor visitor, void *arg)
%
rtems_status_code rtems_scheduler_add_processor(rtems_id scheduler_id, uint32_t cpu_index)
Adds the processor to the set of processors owned by the scheduler instance.
This type is used to represent the calendar time in the Classic API.
rtems_status_code rtems_scheduler_ident(rtems_name name, rtems_id *id)
Identifies a scheduler instance by its name.
rtems_status_code rtems_scheduler_map_priority_to_posix(rtems_id scheduler_id, rtems_task_priority priority, int *posix_priority)
Maps a Classic API task priority to the corresponding POSIX thread priority.
#define RTEMS_NO_RETURN
Tells the compiler in a function declaration that this function does not return.
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
rtems_status_code rtems_task_suspend(rtems_id id)
%
This header file defines attributes provided by the Classic API.
rtems_task_priority initial_priority
%
rtems_task_entry entry_point
%
rtems_status_code rtems_task_set_priority(rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority)
%
rtems_task(* rtems_task_entry)(rtems_task_argument)
This type defines the entry point of an RTEMS task.
rtems_status_code rtems_scheduler_get_maximum_priority(rtems_id scheduler_id, rtems_task_priority *priority)
Gets the maximum task priority of the scheduler instance.
rtems_task_priority initial_priority
This member defines the initial priority of the task.
rtems_status_code rtems_task_wake_after(rtems_interval ticks)
%
SPARC CPU Department Source.
uint32_t rtems_attribute
This type is used to represent Classic API attributes.
rtems_task_priority _RTEMS_Maximum_priority(void)
Returns the maximum priority of the scheduler with index zero.
uint32_t rtems_mode
This type is used to represent a task mode set.
rtems_status_code rtems_task_get_scheduler(rtems_id task_id, rtems_id *scheduler_id)
%
Watchdog_Interval rtems_interval
This type is used to represent clock tick intervals.
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)
Creates a task object.
Objects_Id rtems_id
Values of this type identify an RTEMS object.
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 scheduler instance.
rtems_status_code rtems_task_restart(rtems_id id, rtems_task_argument argument)
%
Constants for the watchdog ticks.
This header file provides basic definitions used by the API and the implementation.
rtems_status_code rtems_task_construct(const rtems_task_config *config, rtems_id *id)
Constructs a task from the specified the task configuration.
rtems_status_code rtems_task_set_scheduler(rtems_id task_id, rtems_id scheduler_id, rtems_task_priority priority)
%
rtems_attribute attributes
This member defines the attributes of the task.
Information About the Thread Stack Handler.
RTEMS_NO_RETURN void rtems_task_exit(void)
%
size_t maximum_thread_local_storage_size
This member defines the maximum thread-local storage size supported by the task storage area...
size_t storage_size
This member defines size of the task storage area in bytes.
void * storage_area
This member shall point to the task storage area begin.
rtems_status_code rtems_task_mode(rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set)
%