RTEMS CPU Kit with SuperCore  4.11.3
eventmp.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_EVENTMP_H
22 #define _RTEMS_RTEMS_EVENTMP_H
23 
24 #ifndef _RTEMS_RTEMS_EVENTIMPL_H
25 # error "Never use <rtems/rtems/eventmp.h> directly; include <rtems/rtems/eventimpl.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  EVENT_MP_SEND_REQUEST = 0,
50  EVENT_MP_SEND_RESPONSE = 1
52 
57 typedef struct {
58  rtems_packet_prefix Prefix;
60  rtems_event_set event_in;
62 
63 /*
64  * @brief Event_MP_Send_process_packet
65  *
66  * This routine performs a remote procedure call so that a
67  * process operation can be performed on another node.
68  *
69  * @note This routine is not needed since there are no process
70  * packets to be sent by this manager.
71  */
72 
81  Objects_Id event_id,
82  rtems_event_set event_in
83 );
84 
93  Thread_Control *the_thread
94 );
95 
103  rtems_packet_prefix *the_packet_prefix
104 );
105 
106 /*
107  * @brief Event_MP_Send_object_was_deleted
108  *
109  * This routine is invoked indirectly by the thread queue
110  * when a proxy has been removed from the thread queue and
111  * the remote node must be informed of this.
112  *
113  * This routine is not needed since there are no objects
114  * deleted by this manager.
115  */
116 
117 /*
118  * @brief Event_MP_Send_extract_proxy
119  *
120  * This routine is invoked when a task is deleted and it
121  * has a proxy which must be removed from a thread queue and
122  * the remote node must be informed of this.
123  *
124  * This routine is not needed since there are no objects
125  * deleted by this manager.
126  */
127 
134 
135 #ifdef __cplusplus
136 }
137 #endif
138 
141 #endif
142 /* end of file */
void _Event_MP_Send_response_packet(Event_MP_Remote_operations operation, Thread_Control *the_thread)
Event MP Send Packet Response.
Definition: eventmp.c:79
Event_MP_Packet * _Event_MP_Get_packet(void)
Event MP Get Packet.
Definition: eventmp.c:162
rtems_status_code
Classic API Status.
Definition: status.h:46
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
uint32_t rtems_event_set
Integer type to hold an event set of up to 32 events represented as a bit field.
Definition: event.h:51
rtems_status_code _Event_MP_Send_request_packet(Event_MP_Remote_operations operation, Objects_Id event_id, rtems_event_set event_in)
Event MP Send Packet Request.
Definition: eventmp.c:38
void _Event_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Event MP Packet Process.
Definition: eventmp.c:111
The following data structure defines the packet used to perform remote event operations.
Definition: eventmp.h:57
Event_MP_Remote_operations
The following enumerated type defines the list of remote event operations.
Definition: eventmp.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.