source: rtems/c/src/exec/rtems/include/rtems/rtems/signalmp.h @ da6375b

4.104.114.84.95
Last change on this file since da6375b was da6375b, checked in by Joel Sherrill <joel.sherrill@…>, on 08/22/95 at 16:03:46

fix broken RCS Ids -- $ accidentally lost merging changes earlier

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*  signalmp.h
2 *
3 *  This include file contains all the constants and structures associated
4 *  with the Multiprocessing Support in the Signal 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_SIGNAL_MP_h
18#define __RTEMS_SIGNAL_MP_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <rtems/asr.h>
25#include <rtems/mppkt.h>
26#include <rtems/object.h>
27#include <rtems/thread.h>
28#include <rtems/watchdog.h>
29
30/*
31 *  The following enumerated type defines the list of
32 *  remote signal operations.
33 */
34
35typedef enum {
36  SIGNAL_MP_SEND_REQUEST  = 0,
37  SIGNAL_MP_SEND_RESPONSE = 1
38}   Signal_MP_Remote_operations;
39
40/*
41 *  The following data structure defines the packet used to perform
42 *  remote signal operations.
43 */
44
45typedef struct {
46  rtems_packet_prefix            Prefix;
47  Signal_MP_Remote_operations operation;
48  rtems_signal_set      signal_in;
49}   Signal_MP_Packet;
50
51/*
52 *  _Signal_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 *  _Signal_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 _Signal_MP_Send_request_packet (
73  Signal_MP_Remote_operations operation,
74  Objects_Id                  task_id,
75  rtems_signal_set      signal_in
76);
77
78/*
79 *  _Signal_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 _Signal_MP_Send_response_packet (
88  Signal_MP_Remote_operations  operation,
89  Thread_Control              *the_thread
90);
91
92/*
93 *
94 *  _Signal_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 _Signal_MP_Process_packet (
103  rtems_packet_prefix *the_packet_prefix
104);
105
106/*
107 *  _Signal_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 *  _Signal_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 *  _Signal_MP_Get_packet
134 *
135 *  DESCRIPTION:
136 *
137 *  This function is used to obtain a signal mp packet.
138 */
139
140Signal_MP_Packet *_Signal_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.