RTEMS CPU Kit with SuperCore  4.11.3
signalmp.h
Go to the documentation of this file.
1 
10 /* COPYRIGHT (c) 1989-2013.
11  * On-Line Applications Research Corporation (OAR).
12  *
13  * The license and distribution terms for this file may be
14  * found in the file LICENSE in this distribution or at
15  * http://www.rtems.org/license/LICENSE.
16  */
17 
18 #ifndef _RTEMS_RTEMS_SIGNALMP_H
19 #define _RTEMS_RTEMS_SIGNALMP_H
20 
21 #ifndef _RTEMS_RTEMS_SIGNALIMPL_H
22 # error "Never use <rtems/rtems/signalmp.h> directly; include <rtems/rtems/signalimpl.h> instead."
23 #endif
24 
25 #include <rtems/score/mpciimpl.h>
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
39 /*{*/
40 
45 typedef enum {
46  SIGNAL_MP_SEND_REQUEST = 0,
47  SIGNAL_MP_SEND_RESPONSE = 1
49 
54 typedef struct {
55  rtems_packet_prefix Prefix;
57  rtems_signal_set signal_in;
59 
60 /*
61  * @brief Signal_MP_Send_process_packet
62  *
63  * This routine performs a remote procedure call so that a
64  * process operation can be performed on another node.
65  *
66  * This routine is not needed since there are no process
67  * packets to be sent by this manager.
68  */
69 
78  Objects_Id task_id,
79  rtems_signal_set signal_in
80 );
81 
90  Thread_Control *the_thread
91 );
92 
100  rtems_packet_prefix *the_packet_prefix
101 );
102 
103 /*
104  * @brief Signal_MP_Send_object_was_deleted
105  *
106  * This routine is invoked indirectly by the thread queue
107  * when a proxy has been removed from the thread queue and
108  * the remote node must be informed of this.
109  *
110  * This routine is not needed since there are no objects
111  * deleted by this manager.
112  */
113 
114 /*
115  * @brief Signal_MP_Send_extract_proxy
116  *
117  * This routine is invoked when a task is deleted and it
118  * has a proxy which must be removed from a thread queue and
119  * the remote node must be informed of this.
120  *
121  * This routine is not needed since there are no objects
122  * deleted by this manager.
123  */
124 
131 
134 #ifdef __cplusplus
135 }
136 #endif
137 
138 #endif
139 /* end of file */
rtems_status_code _Signal_MP_Send_request_packet(Signal_MP_Remote_operations operation, Objects_Id task_id, rtems_signal_set signal_in)
Signal MP Send Request Packet.
Definition: signalmp.c:40
The following data structure defines the packet used to perform remote signal operations.
Definition: signalmp.h:54
void _Signal_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Signal MP Process Packet.
Definition: signalmp.c:111
rtems_status_code
Classic API Status.
Definition: status.h:46
uint32_t rtems_signal_set
The following type defines the control block used to manage each signal set.
Definition: asr.h:46
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
void _Signal_MP_Send_response_packet(Signal_MP_Remote_operations operation, Thread_Control *the_thread)
Signal MP Send Response Packet.
Definition: signalmp.c:79
Signal_MP_Remote_operations
The following enumerated type defines the list of remote signal operations.
Definition: signalmp.h:45
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
Signal_MP_Packet * _Signal_MP_Get_packet(void)
Signal MP Get Packet.
Definition: signalmp.c:161
MPCI Layer Implementation.