source: rtems/cpukit/include/rtems/rtems/partmp.h @ 6b5f22dc

Last change on this file since 6b5f22dc was 6b5f22dc, checked in by Sebastian Huber <sebastian.huber@…>, on 11/26/20 at 10:45:47

rtems: Canonicalize Doxygen @file comments

Use common phrases for the file brief descriptions.

Update #3706.

  • Property mode set to 100644
File size: 3.0 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup RTEMSImplClassicPartitionMP
5 *
6 * @brief This header file provides the implementation interfaces of the
7 *   @ref RTEMSImplClassicPartitionMP.
8 */
9
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
31/**
32 * @defgroup RTEMSImplClassicPartitionMP \
33 *   Partition Manager Multiprocessing (MP) Support
34 *
35 * @ingroup RTEMSImplClassicPartition
36 *
37 * @brief This group contains the implementation to support the Partition Manager
38 *   in multiprocessing (MP) configurations.
39 *
40 * @{
41 */
42
43/**
44 *  The following enumerated type defines the list of
45 *  remote partition operations.
46 */
47typedef enum {
48  PARTITION_MP_ANNOUNCE_CREATE        =  0,
49  PARTITION_MP_ANNOUNCE_DELETE        =  1,
50  PARTITION_MP_EXTRACT_PROXY          =  2,
51  PARTITION_MP_GET_BUFFER_REQUEST     =  3,
52  PARTITION_MP_GET_BUFFER_RESPONSE    =  4,
53  PARTITION_MP_RETURN_BUFFER_REQUEST  =  5,
54  PARTITION_MP_RETURN_BUFFER_RESPONSE =  6
55}   Partition_MP_Remote_operations;
56
57/**
58 *  The following data structure defines the packet used to perform
59 *  remote partition operations.
60 */
61typedef struct {
62  rtems_packet_prefix             Prefix;
63  Partition_MP_Remote_operations  operation;
64  rtems_name                      name;
65  void                           *buffer;
66  Objects_Id                      proxy_id;
67}   Partition_MP_Packet;
68
69RTEMS_INLINE_ROUTINE bool _Partition_MP_Is_remote( Objects_Id id )
70{
71  return _Objects_MP_Is_remote( id, &_Partition_Information );
72}
73
74/**
75 *  @brief Partition_MP_Send_process_packet
76 *
77 *  Multiprocessing Support for the Partition Manager
78 *
79 *  This routine performs a remote procedure call so that a
80 *  process operation can be performed on another node.
81 */
82void _Partition_MP_Send_process_packet (
83  Partition_MP_Remote_operations operation,
84  Objects_Id                     partition_id,
85  rtems_name                     name,
86  Objects_Id                     proxy_id
87);
88
89/**
90 * @brief Issues a remote rtems_partition_get_buffer() request.
91 */
92rtems_status_code _Partition_MP_Get_buffer(
93  rtems_id   id,
94  void     **buffer
95);
96
97/**
98 * @brief Issues a remote rtems_partition_return_buffer() request.
99 */
100rtems_status_code _Partition_MP_Return_buffer(
101  rtems_id  id,
102  void     *buffer
103);
104
105/*
106 *  @brief Partition_MP_Send_object_was_deleted
107 *
108 *  This routine is invoked indirectly by the thread queue
109 *  when a proxy has been removed from the thread queue and
110 *  the remote node must be informed of this.
111 *
112 *  This routine is not needed by the Partition since a partition
113 *  cannot be deleted when buffers are in use.
114 */
115
116#ifdef __cplusplus
117}
118#endif
119
120/**@}*/
121
122#endif
123/* end of file */
Note: See TracBrowser for help on using the repository browser.