RTEMS CPU Kit with SuperCore  4.11.3
partmp.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_PARTMP_H
19 #define _RTEMS_RTEMS_PARTMP_H
20 
21 #ifndef _RTEMS_RTEMS_PARTIMPL_H
22 # error "Never use <rtems/rtems/partmp.h> directly; include <rtems/rtems/partimpl.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  PARTITION_MP_ANNOUNCE_CREATE = 0,
47  PARTITION_MP_ANNOUNCE_DELETE = 1,
48  PARTITION_MP_EXTRACT_PROXY = 2,
49  PARTITION_MP_GET_BUFFER_REQUEST = 3,
50  PARTITION_MP_GET_BUFFER_RESPONSE = 4,
51  PARTITION_MP_RETURN_BUFFER_REQUEST = 5,
52  PARTITION_MP_RETURN_BUFFER_RESPONSE = 6
54 
59 typedef struct {
60  rtems_packet_prefix Prefix;
62  rtems_name name;
63  void *buffer;
64  Objects_Id proxy_id;
66 
77  Objects_Id partition_id,
78  rtems_name name,
79  Objects_Id proxy_id
80 );
81 
90  Objects_Id partition_id,
91  void *buffer
92 );
93 
102  Objects_Id partition_id,
103  Thread_Control *the_thread
104 );
105 
114  rtems_packet_prefix *the_packet_prefix
115 );
116 
117 /*
118  * @brief Partition_MP_Send_object_was_deleted
119  *
120  * This routine is invoked indirectly by the thread queue
121  * when a proxy has been removed from the thread queue and
122  * the remote node must be informed of this.
123  *
124  * This routine is not needed by the Partition since a partition
125  * cannot be deleted when buffers are in use.
126  */
127 
136  void *argument
137 );
138 
145 
146 #ifdef __cplusplus
147 }
148 #endif
149 
152 #endif
153 /* end of file */
The following data structure defines the packet used to perform remote partition operations.
Definition: partmp.h:59
rtems_status_code _Partition_MP_Send_request_packet(Partition_MP_Remote_operations operation, Objects_Id partition_id, void *buffer)
Partition_MP_Send_request_packet.
Definition: partmp.c:82
void _Partition_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Partition_MP_Process_packet.
Definition: partmp.c:177
rtems_status_code
Classic API Status.
Definition: status.h:46
void _Partition_MP_Send_extract_proxy(void *argument)
Partition_MP_Send_extract_proxy.
Definition: partmp.c:278
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 _Partition_MP_Send_response_packet(Partition_MP_Remote_operations operation, Objects_Id partition_id, Thread_Control *the_thread)
Partition_MP_Send_response_packet.
Definition: partmp.c:133
Partition_MP_Packet * _Partition_MP_Get_packet(void)
Partition_MP_Get_packet.
Definition: partmp.c:298
Partition_MP_Remote_operations
The following enumerated type defines the list of remote partition operations.
Definition: partmp.h:45
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
void _Partition_MP_Send_process_packet(Partition_MP_Remote_operations operation, Objects_Id partition_id, rtems_name name, Objects_Id proxy_id)
Partition_MP_Send_process_packet.
Definition: partmp.c:36
MPCI Layer Implementation.