RTEMS CPU Kit with SuperCore  4.11.3
barriermp.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_BARRIERMP_H
19 #define _RTEMS_RTEMS_BARRIERMP_H
20 
21 #include <rtems/score/mpciimpl.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
41 typedef enum {
42  BARRIER_MP_ANNOUNCE_CREATE = 0,
43  BARRIER_MP_ANNOUNCE_DELETE = 1,
44  BARRIER_MP_EXTRACT_PROXY = 2,
45  BARRIER_MP_WAIT_REQUEST = 3,
46  BARRIER_MP_WAIT_RESPONSE = 4,
47  BARRIER_MP_RELEASE_REQUEST = 5,
48  BARRIER_MP_RELEASE_RESPONSE = 6
50 
55 typedef struct {
56  rtems_packet_prefix Prefix;
58  rtems_name name;
59  rtems_option option_set;
60  Objects_Id proxy_id;
62 
71  Objects_Id barrier_id,
72  rtems_name name,
73  Objects_Id proxy_id
74 );
75 
84  Objects_Id barrier_id,
85  rtems_interval timeout
86 );
87 
97  Objects_Id barrier_id,
98  Thread_Control *the_thread
99 );
100 
108  rtems_packet_prefix *the_packet_prefix
109 );
110 
119  Thread_Control *the_proxy
120 );
121 
130  void *argument
131 );
132 
139 
142 #ifdef __cplusplus
143 }
144 #endif
145 
146 #endif
147 /* end of file */
void _Barrier_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
_Barrier_MP_Process_packet
void _Barrier_MP_Send_process_packet(Barrier_MP_Remote_operations operation, Objects_Id barrier_id, rtems_name name, Objects_Id proxy_id)
_Barrier_MP_Send_process_packet
Barrier_MP_Packet * _Barrier_MP_Get_packet(void)
_Barrier_MP_Get_packet
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
rtems_status_code
Classic API Status.
Definition: status.h:46
Barrier_MP_Remote_operations
The following enumerated type defines the list of remote barrier operations.
Definition: barriermp.h:41
void _Barrier_MP_Send_response_packet(Barrier_MP_Remote_operations operation, Objects_Id barrier_id, Thread_Control *the_thread)
_Barrier_MP_Send_response_packet
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
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
The following data structure defines the packet used to perform remote barrier operations.
Definition: barriermp.h:55
rtems_status_code _Barrier_MP_Send_request_packet(Barrier_MP_Remote_operations operation, Objects_Id barrier_id, rtems_interval timeout)
_Barrier_MP_Send_request_packet
void _Barrier_MP_Send_extract_proxy(void *argument)
_Barrier_MP_Send_extract_proxy
void _Barrier_MP_Send_object_was_deleted(Thread_Control *the_proxy)
_Barrier_MP_Send_object_was_deleted
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
MPCI Layer Implementation.