RTEMS  5.1
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 
103 /*
104  * @brief Partition_MP_Send_object_was_deleted
105  *
106  * This routine is invoked indirectly by the thread queue
107  * when a proxy has been removed from the thread queue and
108  * the remote node must be informed of this.
109  *
110  * This routine is not needed by the Partition since a partition
111  * cannot be deleted when buffers are in use.
112  */
113 
114 #ifdef __cplusplus
115 }
116 #endif
117 
120 #endif
121 /* 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
rtems_status_code _Partition_MP_Return_buffer(rtems_id id, void *buffer)
Issues a remote rtems_partition_return_buffer() request.
Definition: partmp.c:156
rtems_status_code
Classic API Status.
Definition: status.h:43
Partition_MP_Remote_operations
Definition: partmp.h:45
uint32_t Objects_Id
Definition: object.h:80
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
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:57
rtems_status_code _Partition_MP_Get_buffer(rtems_id id, void **buffer)
Issues a remote rtems_partition_get_buffer() request.
Definition: partmp.c:143
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
MPCI Layer Implementation.
bool _Objects_MP_Is_remote(Objects_Id id, const Objects_Information *information)
Checks if the object identifier is in the global object identifier cache of the specified object info...
Definition: objectmp.c:338