RTEMS CPU Kit with SuperCore  4.11.3
taskmp.h
Go to the documentation of this file.
1 
13 /* COPYRIGHT (c) 1989-2013.
14  * On-Line Applications Research Corporation (OAR).
15  *
16  * The license and distribution terms for this file may be
17  * found in the file LICENSE in this distribution or at
18  * http://www.rtems.org/license/LICENSE.
19  */
20 
21 #ifndef _RTEMS_RTEMS_TASKMP_H
22 #define _RTEMS_RTEMS_TASKMP_H
23 
24 #ifndef _RTEMS_RTEMS_TASKSIMPL_H
25 # error "Never use <rtems/rtems/taskmp.h> directly; include <rtems/rtems/tasksimpl.h> instead."
26 #endif
27 
28 #include <rtems/score/mpciimpl.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
48 typedef enum {
49  RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0,
50  RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1,
51  RTEMS_TASKS_MP_SUSPEND_REQUEST = 2,
52  RTEMS_TASKS_MP_SUSPEND_RESPONSE = 3,
53  RTEMS_TASKS_MP_RESUME_REQUEST = 4,
54  RTEMS_TASKS_MP_RESUME_RESPONSE = 5,
55  RTEMS_TASKS_MP_SET_PRIORITY_REQUEST = 6,
56  RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE = 7,
57  RTEMS_TASKS_MP_GET_NOTE_REQUEST = 8,
58  RTEMS_TASKS_MP_GET_NOTE_RESPONSE = 9,
59  RTEMS_TASKS_MP_SET_NOTE_REQUEST = 10,
60  RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11
62 
67 typedef struct {
68  rtems_packet_prefix Prefix;
70  rtems_name name;
71  rtems_task_priority the_priority;
72  uint32_t notepad;
73  uint32_t note;
75 
86  Objects_Id task_id,
87  rtems_name name
88 );
89 
98  Objects_Id task_id,
99  rtems_task_priority the_priority,
100  uint32_t notepad,
101  uint32_t note
102 );
103 
112  Thread_Control *the_thread
113 );
114 
122  rtems_packet_prefix *the_packet_prefix
123 );
124 
136 /*
137  * _RTEMS_tasks_MP_Send_extract_proxy
138  *
139  * This routine is invoked when a task is deleted and it
140  * has a proxy which must be removed from a thread queue and
141  * the remote node must be informed of this.
142  *
143  * This routine is not needed since there are no objects
144  * deleted by this manager.
145  *
146  */
147 
154 
155 #ifdef __cplusplus
156 }
157 #endif
158 
161 #endif
162 /* end of file */
RTEMS_tasks_MP_Packet * _RTEMS_tasks_MP_Get_packet(void)
_RTEMS_tasks_MP_Send_object_was_deleted
Definition: taskmp.c:334
Priority_Control rtems_task_priority
Define the type for an RTEMS API task priority.
Definition: tasks.h:79
rtems_status_code
Classic API Status.
Definition: status.h:46
uint32_t rtems_name
Classic API object name type.
Definition: types.h:74
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
void _RTEMS_tasks_MP_Send_response_packet(RTEMS_tasks_MP_Remote_operations operation, Thread_Control *the_thread)
_RTEMS_tasks_MP_Send_response_packet
Definition: taskmp.c:138
rtems_status_code _RTEMS_tasks_MP_Send_request_packet(RTEMS_tasks_MP_Remote_operations operation, Objects_Id task_id, rtems_task_priority the_priority, uint32_t notepad, uint32_t note)
_RTEMS_tasks_MP_Send_request_packet
Definition: taskmp.c:80
The following data structure defines the packet used to perform remote task operations.
Definition: taskmp.h:67
void _RTEMS_tasks_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
_RTEMS_tasks_MP_Process_packet
Definition: taskmp.c:186
void _RTEMS_tasks_MP_Send_process_packet(RTEMS_tasks_MP_Remote_operations operation, Objects_Id task_id, rtems_name name)
RTEMS Tasks MP Send Process Packet.
Definition: taskmp.c:37
RTEMS_tasks_MP_Remote_operations
The following enumerated type defines the list of remote task operations.
Definition: taskmp.h:48
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
MPCI Layer Implementation.