RTEMS  5.0.0
mpciimpl.h
Go to the documentation of this file.
1 
9 /*
10  * COPYRIGHT (c) 1989-2009.
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_SCORE_MPCIIMPL_H
19 #define _RTEMS_SCORE_MPCIIMPL_H
20 
21 #include <rtems/score/mpci.h>
22 #include <rtems/score/status.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
40 #define MPCI_DEFAULT_TIMEOUT 0xFFFFFFFF
41 
47 
52 typedef enum {
53  MPCI_PACKETS_SYSTEM_VERIFY = 0
55 
60 typedef struct {
68  uint32_t maximum_nodes;
74 
80 
86 
95 
102 
113  MP_packet_Classes the_class,
114  MPCI_Packet_processor the_packet_processor
115 
116 );
117 
127 
136 void _MPCI_Return_packet (
137  MP_packet_Prefix *the_packet
138 );
139 
150  uint32_t destination,
151  MP_packet_Prefix *the_packet
152 );
153 
169 Status_Control _MPCI_Send_request_packet(
170  uint32_t destination,
171  MP_packet_Prefix *the_packet,
172  States_Control extra_state
173 );
174 
185  uint32_t destination,
186  MP_packet_Prefix *the_packet
187 );
188 
198 
212  MP_packet_Prefix *the_packet
213 );
214 
224 );
225 
231 void _MPCI_Announce ( void );
232 
243 );
244 
272  MP_packet_Prefix *the_packet_prefix
273 );
274 
303 
313  MP_packet_Classes the_packet_class
314 )
315 {
316  return ( the_packet_class <= MP_PACKET_CLASSES_LAST );
317 }
318 
321 #ifdef __cplusplus
322 }
323 #endif
324 
325 #endif
326 /* end of include file */
Definition: mppkt.h:80
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
void(* MPCI_Packet_processor)(MP_packet_Prefix *)
Definition: mpciimpl.h:46
Thread_Control * _MPCI_Receive_server_tcb
Pointer to MP thread control block.
Definition: mpci.c:64
MP_packet_Classes
Definition: mppkt.h:51
MPCI_Internal_packet * _MPCI_Internal_packets_Get_packet(void)
Obtain an internal thread.
Definition: mpci.c:479
MPCI_Control * _MPCI_table
Definition: mpci.c:62
uint32_t maximum_global_objects
Definition: mpciimpl.h:72
Definition: threadq.h:547
MPCI_Packet_processor _MPCI_Packet_processors[MP_PACKET_CLASSES_LAST+1]
Definition: mpci.c:66
uint32_t maximum_nodes
Definition: mpciimpl.h:68
MP_packet_Prefix * _MPCI_Receive_packet(void)
Receive a packet.
Definition: mpci.c:292
Definition: thread.h:728
Definition: mpci.h:108
void _MPCI_Return_packet(MP_packet_Prefix *the_packet)
Deallocate a packet.
Definition: mpci.c:202
void _MPCI_Receive_server(Thread_Entry_numeric_type ignored)
Receive and process all packets.
Definition: mpci.c:329
MP_packet_Prefix * _MPCI_Get_packet(void)
Definition: mpci.c:183
#define MP_PACKET_CLASSES_LAST
Definition: mppkt.h:70
MPCI_Internal_Remote_operations operation
Definition: mpciimpl.h:64
void _MPCI_Send_process_packet(uint32_t destination, MP_packet_Prefix *the_packet)
Send a process packet.
Definition: mpci.c:209
Definition: mpciimpl.h:60
MPCI Layer API.
void _MPCI_Internal_packets_Send_process_packet(MPCI_Internal_Remote_operations operation)
Perform a process on another node.
Definition: mpci.c:392
MP_packet_Prefix Prefix
Definition: mpciimpl.h:62
uint32_t States_Control
Definition: states.h:41
RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_valid_packet_class(MP_packet_Classes the_packet_class)
Definition: mpciimpl.h:312
Thread_Control * _MPCI_Process_response(MP_packet_Prefix *the_packet)
Pass a packet to the thread.
Definition: mpci.c:301
CPU_Uint32ptr Thread_Entry_numeric_type
Type of the numeric argument of a thread entry function with at least one numeric argument...
Definition: thread.h:102
MPCI_Internal_Remote_operations
Definition: mpciimpl.h:52
void _MPCI_Send_response_packet(uint32_t destination, MP_packet_Prefix *the_packet)
Send a response packet.
Definition: mpci.c:282
void _MPCI_Announce(void)
Announce the availability of a packet.
Definition: mpci.c:379
Status_Control _MPCI_Send_request_packet(uint32_t destination, MP_packet_Prefix *the_packet, States_Control extra_state)
Send a request packet.
Definition: mpci.c:232
Thread_queue_Control _MPCI_Remote_blocked_threads
Definition: mpci.c:59
void _MPCI_Register_packet_processor(MP_packet_Classes the_class, MPCI_Packet_processor the_packet_processor)
Definition: mpci.c:174
void _MPCI_Internal_packets_Process_packet(MP_packet_Prefix *the_packet_prefix)
Perform requested action from another node.
Definition: mpci.c:433