source: rtems/cpukit/rtems/include/rtems/rtems/eventmp.h @ e38a92b

5
Last change on this file since e38a92b was e38a92b, checked in by Sebastian Huber <sebastian.huber@…>, on 05/02/16 at 04:30:49

mpci: Make _*_MP_Get_packet() static

  • Property mode set to 100644
File size: 2.9 KB
Line 
1/**
2 * @file rtems/rtems/eventmp.h
3 *
4 * @defgroup ClassicEventMP Event MP Support
5 *
6 * @ingroup ClassicRTEMS
7 * @brief Event Manager MP Support
8 *
9 * This include file contains all the constants and structures associated
10 * with the Multiprocessing Support in the Event Manager.
11 */
12
13/* COPYRIGHT (c) 1989-2013.
14 * On-Line Applications Research Corporation (OAR).
15 *
16 * The license and distribution terms for this file may be
17 * found in the file LICENSE in this distribution or at
18 * http://www.rtems.org/license/LICENSE.
19 */
20
21#ifndef _RTEMS_RTEMS_EVENTMP_H
22#define _RTEMS_RTEMS_EVENTMP_H
23
24#ifndef _RTEMS_RTEMS_EVENTIMPL_H
25# error "Never use <rtems/rtems/eventmp.h> directly; include <rtems/rtems/eventimpl.h> instead."
26#endif
27
28#include <rtems/score/mpciimpl.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/**
35 *  @defgroup ClassicEventMP Event MP Support
36 *
37 *  @ingroup ClassicMP
38 *
39 *  This encapsulates functionality related to the transparent multiprocessing
40 *  support within the Classic API Event Manager.
41 */
42/**@{*/
43
44/**
45 *  The following enumerated type defines the list of
46 *  remote event operations.
47 */
48typedef enum {
49  EVENT_MP_SEND_REQUEST  =  0,
50  EVENT_MP_SEND_RESPONSE =  1
51}   Event_MP_Remote_operations;
52
53/**
54 *  The following data structure defines the packet used to perform
55 *  remote event operations.
56 */
57typedef struct {
58  rtems_packet_prefix         Prefix;
59  Event_MP_Remote_operations  operation;
60  rtems_event_set             event_in;
61}   Event_MP_Packet;
62
63/*
64 *  @brief Event_MP_Send_process_packet
65 *
66 *  This routine performs a remote procedure call so that a
67 *  process operation can be performed on another node.
68 *
69 *  @note This routine is not needed since there are no process
70 *  packets to be sent by this manager.
71 */
72
73/**
74 *  @brief Event MP Send Packet Request
75 *
76 *  This routine performs a remote procedure call so that a
77 *  directive operation can be initiated on another node.
78 */
79rtems_status_code _Event_MP_Send_request_packet (
80  Event_MP_Remote_operations operation,
81  Objects_Id                 event_id,
82  rtems_event_set         event_in
83);
84
85/**
86 *  @brief Event MP Packet Process
87 *
88 *  This routine performs the actions specific to this package for
89 *  the request from another node.
90 */
91void _Event_MP_Process_packet (
92  rtems_packet_prefix *the_packet_prefix
93);
94
95/*
96 *  @brief Event_MP_Send_object_was_deleted
97 *
98 *  This routine is invoked indirectly by the thread queue
99 *  when a proxy has been removed from the thread queue and
100 *  the remote node must be informed of this.
101 *
102 *  This routine is not needed since there are no objects
103 *  deleted by this manager.
104 */
105
106/*
107 *  @brief Event_MP_Send_extract_proxy
108 *
109 *  This routine is invoked when a task is deleted and it
110 *  has a proxy which must be removed from a thread queue and
111 *  the remote node must be informed of this.
112 *
113 *  This routine is not needed since there are no objects
114 *  deleted by this manager.
115 */
116
117#ifdef __cplusplus
118}
119#endif
120
121/**@}*/
122
123#endif
124/* end of file */
Note: See TracBrowser for help on using the repository browser.