RTEMS CPU Kit with SuperCore  4.11.3
regionmp.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_REGIONMP_H
22 #define _RTEMS_RTEMS_REGIONMP_H
23 
24 #ifndef _RTEMS_RTEMS_REGIONIMPL_H
25 # error "Never use <rtems/rtems/regionmp.h> directly; include <rtems/rtems/regionimpl.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  REGION_MP_ANNOUNCE_CREATE = 0,
50  REGION_MP_ANNOUNCE_DELETE = 1,
51  REGION_MP_EXTRACT_PROXY = 2,
52  REGION_MP_GET_SEGMENT_REQUEST = 3,
53  REGION_MP_GET_SEGMENT_RESPONSE = 4,
54  REGION_MP_RETURN_SEGMENT_REQUEST = 5,
55  REGION_MP_RETURN_SEGMENT_RESPONSE = 6
57 
62 typedef struct {
63  rtems_packet_prefix Prefix;
65  rtems_name name;
66  rtems_option option_set;
67  uint32_t size;
68  Objects_Id proxy_id;
69  void *segment;
71 
80  Objects_Id region_id,
81  rtems_name name,
82  Objects_Id proxy_id
83 );
84 
93  Objects_Id region_id,
94  void *segment,
95  intptr_t size,
96  rtems_option option_set,
97  rtems_interval timeout
98 );
99 
107  Region_MP_Remote_operations operation,
108  Objects_Id region_id,
109  Thread_Control *the_thread
110 );
111 
119  rtems_packet_prefix *the_packet_prefix
120 );
121 
122 /*
123  * @brief _Region_MP_Send_object_was_deleted
124  *
125  * This routine is invoked indirectly by the thread queue
126  * when a proxy has been removed from the thread queue and
127  * the remote node must be informed of this.
128  *
129  * This routine is not needed by the Region since a region
130  * cannot be deleted when segments are in use.
131  */
132 
141  void *argument
142 );
143 
150 
151 #ifdef __cplusplus
152 }
153 #endif
154 
157 #endif
158 /* end of file */
void _Region_MP_Send_extract_proxy(void *argument)
Region MP Send Extract Proxy.
Definition: regionmp.c:262
The following data structure defines the packet used to perform remote region operations.
Definition: regionmp.h:62
void _Region_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Region MP Process Packet.
Definition: regionmp.c:163
void _Region_MP_Send_process_packet(Region_MP_Remote_operations operation, Objects_Id region_id, rtems_name name, Objects_Id proxy_id)
Region MP Send Process Packet.
Definition: regionmp.c:32
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
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
rtems_status_code _Region_MP_Send_request_packet(Region_MP_Remote_operations operation, Objects_Id region_id, void *segment, intptr_t size, rtems_option option_set, rtems_interval timeout)
Region MP Send Request Packet.
Definition: regionmp.c:73
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
void _Region_MP_Send_response_packet(Region_MP_Remote_operations operation, Objects_Id region_id, Thread_Control *the_thread)
Region MP Send Response Packet.
Definition: regionmp.c:125
Region_MP_Packet * _Region_MP_Get_packet(void)
RegionMP Get Packet.
Definition: regionmp.c:276
Region_MP_Remote_operations
The following enumerated type defines the list of remote region operations.
Definition: regionmp.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.