source: rtems/cpukit/rtems/include/rtems/rtems/msgmp.h @ 067a96a

4.104.114.95
Last change on this file since 067a96a was 067a96a, checked in by Joel Sherrill <joel.sherrill@…>, on 04/18/08 at 15:02:20

2008-04-18 Joel Sherrill <joel.sherrill@…>

  • rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/asr.inl, rtems/inline/rtems/rtems/attr.inl, rtems/inline/rtems/rtems/barrier.inl, rtems/inline/rtems/rtems/dpmem.inl, rtems/inline/rtems/rtems/event.inl, rtems/inline/rtems/rtems/eventset.inl, rtems/inline/rtems/rtems/message.inl, rtems/inline/rtems/rtems/modes.inl, rtems/inline/rtems/rtems/options.inl, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/ratemon.inl, rtems/inline/rtems/rtems/region.inl, rtems/inline/rtems/rtems/sem.inl, rtems/inline/rtems/rtems/status.inl, rtems/inline/rtems/rtems/support.inl, rtems/inline/rtems/rtems/tasks.inl, rtems/inline/rtems/rtems/timer.inl: Initial conversion of Classic API header files to Doxygen.
  • rtems/Doxyfile: New file.
  • Property mode set to 100644
File size: 4.7 KB
Line 
1/**
2 * @file rtems/rtems/msgmp.h
3 *
4 *  This include file contains all the constants and structures associated
5 *  with the Multiprocessing Support in the Message Manager.
6 */
7
8/*  COPYRIGHT (c) 1989-1999.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.com/license/LICENSE.
14 *
15 *  $Id$
16 */
17
18#ifndef _RTEMS_RTEMS_MSGMP_H
19#define _RTEMS_RTEMS_MSGMP_H
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#include <rtems/rtems/message.h>
26#include <rtems/score/mppkt.h>
27#include <rtems/score/object.h>
28#include <rtems/rtems/options.h>
29#include <rtems/score/thread.h>
30#include <rtems/score/watchdog.h>
31
32/**
33 *  @defgroup ClassicMsgMP Classic API Message Queue MP Support
34 *
35 *  This encapsulates functionality which XXX
36 */
37/**{*/
38
39/**
40 *  The following enumerated type defines the list of
41 *  remote message queue operations.
42 */
43typedef enum {
44  MESSAGE_QUEUE_MP_ANNOUNCE_CREATE             =  0,
45  MESSAGE_QUEUE_MP_ANNOUNCE_DELETE             =  1,
46  MESSAGE_QUEUE_MP_EXTRACT_PROXY               =  2,
47  MESSAGE_QUEUE_MP_RECEIVE_REQUEST             =  3,
48  MESSAGE_QUEUE_MP_RECEIVE_RESPONSE            =  4,
49  MESSAGE_QUEUE_MP_SEND_REQUEST                =  5,
50  MESSAGE_QUEUE_MP_SEND_RESPONSE               =  6,
51  MESSAGE_QUEUE_MP_URGENT_REQUEST              =  7,
52  MESSAGE_QUEUE_MP_URGENT_RESPONSE             =  8,
53  MESSAGE_QUEUE_MP_BROADCAST_REQUEST           =  9,
54  MESSAGE_QUEUE_MP_BROADCAST_RESPONSE          = 10,
55  MESSAGE_QUEUE_MP_FLUSH_REQUEST               = 11,
56  MESSAGE_QUEUE_MP_FLUSH_RESPONSE              = 12,
57  MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST  = 13,
58  MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE = 14
59}   Message_queue_MP_Remote_operations;
60
61/**
62 *  The following data structure defines the packet used to perform
63 *  remote message queue operations.
64 */
65typedef struct {
66  rtems_packet_prefix                Prefix;
67  Message_queue_MP_Remote_operations operation;
68  rtems_name                         name;
69  rtems_option                       option_set;
70  Objects_Id                         proxy_id;
71  uint32_t                           count;
72  size_t                             size;
73  uint32_t                           pad0;
74  CORE_message_queue_Buffer          Buffer;
75}   Message_queue_MP_Packet;
76
77/**
78 *  @brief _Message_queue_MP_Send_process_packet
79 *
80 *  This routine performs a remote procedure call so that a
81 *  process operation can be performed on another node.
82 */
83void _Message_queue_MP_Send_process_packet (
84  Message_queue_MP_Remote_operations operation,
85  Objects_Id                         message_queue_id,
86  rtems_name                         name,
87  Objects_Id                         proxy_id
88);
89
90/**
91 *  @brief _Message_queue_MP_Send_request_packet
92 *
93 *  This routine performs a remote procedure call so that a
94 *  directive operation can be initiated on another node.
95 */
96rtems_status_code _Message_queue_MP_Send_request_packet (
97  Message_queue_MP_Remote_operations  operation,
98  Objects_Id                          message_queue_id,
99  void                               *buffer,
100  size_t                             *size_p,
101  rtems_option                        option_set,
102  Watchdog_Interval                   timeout
103);
104
105/**
106 *  @brief _Message_queue_MP_Send_response_packet
107 *
108 *  This routine performs a remote procedure call so that a
109 *  directive can be performed on another node.
110 */
111void _Message_queue_MP_Send_response_packet (
112  Message_queue_MP_Remote_operations  operation,
113  Objects_Id                          message_queue_id,
114  Thread_Control                     *the_thread
115);
116
117/**
118 *
119 @brief *  _Message_queue_MP_Process_packet
120 *
121 *  This routine performs the actions specific to this package for
122 *  the request from another node.
123 */
124void _Message_queue_MP_Process_packet (
125  rtems_packet_prefix *the_packet_prefix
126);
127
128/**
129 *  @brief _Message_queue_MP_Send_object_was_deleted
130 *
131 *  This routine is invoked indirectly by the thread queue
132 *  when a proxy has been removed from the thread queue and
133 *  the remote node must be informed of this.
134 */
135void _Message_queue_MP_Send_object_was_deleted (
136  Thread_Control *the_proxy
137);
138
139/**
140 *  @brief _Message_queue_MP_Send_extract_proxy
141 *
142 *  This routine is invoked when a task is deleted and it
143 *  has a proxy which must be removed from a thread queue and
144 *  the remote node must be informed of this.
145 */
146void _Message_queue_MP_Send_extract_proxy (
147  void           *argument
148);
149
150/**
151 *  @brief _Message_queue_MP_Get_packet
152 *
153 *  This function is used to obtain a message queue mp packet.
154 */
155Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void );
156
157#ifdef __cplusplus
158}
159#endif
160
161/**@}*/
162
163#endif
164/* end of file */
Note: See TracBrowser for help on using the repository browser.