RTEMS: cpukit/include/rtems/rtems/partmp.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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
28extern "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
53} Partition_MP_Remote_operations;
54
59 typedef struct {
60 rtems_packet_prefix Prefix;
61 Partition_MP_Remote_operations operation;
62 rtems_name name;
63 void *buffer;
64 Objects_Id proxy_id;
65} Partition_MP_Packet;
66
67 RTEMS_INLINE_ROUTINE bool _Partition_MP_Is_remote( Objects_Id id )
68{
69 return _Objects_MP_Is_remote( id, &_Partition_Information );
70}
71
80void _Partition_MP_Send_process_packet (
81 Partition_MP_Remote_operations operation,
82 Objects_Id partition_id,
83 rtems_name name,
84 Objects_Id proxy_id
85);
86
90 rtems_status_code _Partition_MP_Get_buffer(
91 rtems_id id,
92 void **buffer
93);
94
98 rtems_status_code _Partition_MP_Return_buffer(
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 */
_Partition_Information
Objects_Information _Partition_Information
The Classic Partition objects information.
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_name
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
rtems_id
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
RTEMS_INLINE_ROUTINE
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
_Objects_MP_Is_remote
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
Objects_Id
uint32_t Objects_Id
Definition: object.h:80
mpciimpl.h
MPCI Layer Implementation.
_Partition_MP_Return_buffer
rtems_status_code _Partition_MP_Return_buffer(rtems_id id, void *buffer)
Issues a remote rtems_partition_return_buffer() request.
Definition: partmp.c:156
Partition_MP_Remote_operations
Partition_MP_Remote_operations
Definition: partmp.h:45
_Partition_MP_Get_buffer
rtems_status_code _Partition_MP_Get_buffer(rtems_id id, void **buffer)
Issues a remote rtems_partition_get_buffer() request.
Definition: partmp.c:143
_Partition_MP_Send_process_packet
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
Partition_MP_Packet
Definition: partmp.h:59