RTEMS  5.0.0
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 
67 RTEMS_INLINE_ROUTINE bool _Partition_MP_Is_remote( Objects_Id id )
68 {
70 }
71 
82  Objects_Id partition_id,
83  rtems_name name,
84  Objects_Id proxy_id
85 );
86 
91  rtems_id id,
92  void **buffer
93 );
94 
99  rtems_id id,
100  void *buffer
101 );
102 
111  rtems_packet_prefix *the_packet_prefix
112 );
113 
114 /*
115  * @brief Partition_MP_Send_object_was_deleted
116  *
117  * This routine is invoked indirectly by the thread queue
118  * when a proxy has been removed from the thread queue and
119  * the remote node must be informed of this.
120  *
121  * This routine is not needed by the Partition since a partition
122  * cannot be deleted when buffers are in use.
123  */
124 
125 #ifdef __cplusplus
126 }
127 #endif
128 
131 #endif
132 /* end of file */
Objects_Information _Partition_Information
The Classic Partition objects information.
Definition: partmp.h:59
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
void _Partition_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Partition_MP_Process_packet.
Definition: partmp.c:215
rtems_status_code _Partition_MP_Return_buffer(rtems_id id, void *buffer)
Issues a remote rtems_partition_return_buffer() request.
Definition: partmp.c:154
rtems_status_code
Classic API Status.
Definition: status.h:43
bool _Objects_MP_Is_remote(Objects_Id id, const Objects_Information *information)
Returns true, if the object identifier is in the global object identifier cache of the specified obje...
Definition: objectmp.c:341
Partition_MP_Remote_operations
Definition: partmp.h:45
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
uint32_t Objects_Id
Definition: object.h:75
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:55
rtems_status_code _Partition_MP_Get_buffer(rtems_id id, void **buffer)
Issues a remote rtems_partition_get_buffer() request.
Definition: partmp.c:141
MPCI Layer Implementation.