source: rtems/c/src/exec/rtems/headers/eventmp.h @ eb5a7e07

4.104.114.84.95
Last change on this file since eb5a7e07 was 5e9b32b, checked in by Joel Sherrill <joel.sherrill@…>, on 09/26/95 at 19:27:15

posix support initially added

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*  eventmp.h
2 *
3 *  This include file contains all the constants and structures associated
4 *  with the Multiprocessing Support in the Event Manager.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_EVENT_MP_h
18#define __RTEMS_EVENT_MP_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <rtems/rtems/event.h>
25#include <rtems/score/mppkt.h>
26#include <rtems/score/object.h>
27#include <rtems/score/thread.h>
28#include <rtems/score/watchdog.h>
29
30/*
31 *  The following enumerated type defines the list of
32 *  remote event operations.
33 */
34
35typedef enum {
36  EVENT_MP_SEND_REQUEST  =  0,
37  EVENT_MP_SEND_RESPONSE =  1
38}   Event_MP_Remote_operations;
39
40/*
41 *  The following data structure defines the packet used to perform
42 *  remote event operations.
43 */
44
45typedef struct {
46  rtems_packet_prefix         Prefix;
47  Event_MP_Remote_operations  operation;
48  rtems_event_set             event_in;
49}   Event_MP_Packet;
50
51/*
52 *  _Event_MP_Send_process_packet
53 *
54 *  DESCRIPTION:
55 *
56 *  This routine performs a remote procedure call so that a
57 *  process operation can be performed on another node.
58 *
59 *  This routine is not needed since there are no process
60 *  packets to be sent by this manager.
61 */
62
63/*
64 *  _Event_MP_Send_request_packet
65 *
66 *  DESCRIPTION:
67 *
68 *  This routine performs a remote procedure call so that a
69 *  directive operation can be initiated on another node.
70 */
71
72rtems_status_code _Event_MP_Send_request_packet (
73  Event_MP_Remote_operations operation,
74  Objects_Id                 event_id,
75  rtems_event_set         event_in
76);
77
78/*
79 *  _Event_MP_Send_response_packet
80 *
81 *  DESCRIPTION:
82 *
83 *  This routine performs a remote procedure call so that a
84 *  directive can be performed on another node.
85 */
86
87void _Event_MP_Send_response_packet (
88  Event_MP_Remote_operations  operation,
89  Thread_Control             *the_thread
90);
91
92/*
93 *
94 *  _Event_MP_Process_packet
95 *
96 *  DESCRIPTION:
97 *
98 *  This routine performs the actions specific to this package for
99 *  the request from another node.
100 */
101
102void _Event_MP_Process_packet (
103  rtems_packet_prefix *the_packet_prefix
104);
105
106/*
107 *  _Event_MP_Send_object_was_deleted
108 *
109 *  DESCRIPTION:
110 *
111 *  This routine is invoked indirectly by the thread queue
112 *  when a proxy has been removed from the thread queue and
113 *  the remote node must be informed of this.
114 *
115 *  This routine is not needed since there are no objects
116 *  deleted by this manager.
117 */
118
119/*
120 *  _Event_MP_Send_extract_proxy
121 *
122 *  DESCRIPTION:
123 *
124 *  This routine is invoked when a task is deleted and it
125 *  has a proxy which must be removed from a thread queue and
126 *  the remote node must be informed of this.
127 *
128 *  This routine is not needed since there are no objects
129 *  deleted by this manager.
130 */
131
132/*
133 *  _Event_MP_Get_packet
134 *
135 *  DESCRIPTION:
136 *
137 *  This function is used to obtain a event mp packet.
138 */
139
140Event_MP_Packet *_Event_MP_Get_packet ( void );
141
142#ifdef __cplusplus
143}
144#endif
145
146#endif
147/* end of file */
Note: See TracBrowser for help on using the repository browser.