18 #ifndef _RTEMS_SCORE_MPCIIMPL_H 19 #define _RTEMS_SCORE_MPCIIMPL_H 39 #define MPCI_DEFAULT_TIMEOUT 0xFFFFFFFF 52 MPCI_PACKETS_SYSTEM_VERIFY = 0
111 uint32_t timeout_status
176 uint32_t destination,
197 uint32_t destination,
200 uint32_t timeout_code
213 uint32_t destination,
The following record contains the prefix for every packet passed between nodes in an MP system...
Definition: mppkt.h:80
Thread _MPCI_Receive_server(uint32_t ignored)
Receive and process all packets.
Definition: mpci.c:278
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
void(* MPCI_Packet_processor)(MP_packet_Prefix *)
The following defines the type for packet processing routines invoked by the MPCI Receive server...
Definition: mpciimpl.h:45
void _MPCI_Initialization(void)
Initialize the MPCI driver.
Definition: mpci.c:131
MP_packet_Classes
The following enumerated type defines the packet classes.
Definition: mppkt.h:51
MPCI_Internal_packet * _MPCI_Internal_packets_Get_packet(void)
_MPCI_Internal_packets_Send_object_was_deleted
Definition: mpci.c:430
void _MPCI_Create_server(void)
Create the MPCI server thread.
Definition: mpci.c:89
uint32_t maximum_global_objects
This field is the maximum number of concurrently existent globally offered objects.
Definition: mpciimpl.h:71
This is the structure used to manage sets of tasks which are blocked waiting to acquire a resource...
Definition: threadq.h:171
void _MPCI_Handler_initialization(uint32_t timeout_status)
Initialize the MPCI handler.
Definition: mpci.c:41
SCORE_EXTERN MPCI_Packet_processor _MPCI_Packet_processors[MP_PACKET_CLASSES_LAST+1]
The following table contains the process packet routines provided by each object that supports MP ope...
Definition: mpciimpl.h:100
uint32_t maximum_nodes
This is the maximum number of nodes in the system.
Definition: mpciimpl.h:67
MP_packet_Prefix * _MPCI_Receive_packet(void)
Receive a packet.
Definition: mpci.c:239
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
This type defines the Multiprocessor Communications Interface (MPCI) Table.
Definition: mpci.h:108
void _MPCI_Return_packet(MP_packet_Prefix *the_packet)
Deallocate a packet.
Definition: mpci.c:168
MP_packet_Prefix * _MPCI_Get_packet(void)
This function obtains a packet by invoking the user provided MPCI get packet callout.
Definition: mpci.c:145
#define MP_PACKET_CLASSES_LAST
This constant defines the last entry in the MP_packet_Classes enumeration.
Definition: mppkt.h:70
uint32_t _MPCI_Send_request_packet(uint32_t destination, MP_packet_Prefix *the_packet, States_Control extra_state, uint32_t timeout_code)
Send a request packet.
Definition: mpci.c:187
MPCI_Internal_Remote_operations operation
This value specifies the operation.
Definition: mpciimpl.h:63
void _MPCI_Send_process_packet(uint32_t destination, MP_packet_Prefix *the_packet)
Send a process packet.
Definition: mpci.c:175
The following data structure defines the packet used to perform remote event operations.
Definition: mpciimpl.h:59
void _MPCI_Internal_packets_Send_process_packet(MPCI_Internal_Remote_operations operation)
Perform a process on another node.
Definition: mpci.c:339
MP_packet_Prefix Prefix
This field is the general header for all packets.
Definition: mpciimpl.h:61
SCORE_EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads
The following thread queue is used to maintain a list of tasks which currently have outstanding remot...
Definition: mpciimpl.h:78
uint32_t States_Control
The following type defines the control block used to manage a thread's state.
Definition: states.h:41
RTEMS_INLINE_ROUTINE bool _Mp_packet_Is_valid_packet_class(MP_packet_Classes the_packet_class)
This function returns true if the the_packet_class is valid, and false otherwise. ...
Definition: mpciimpl.h:340
Thread_Control * _MPCI_Process_response(MP_packet_Prefix *the_packet)
Pass a packet to the thread.
Definition: mpci.c:248
MPCI_Internal_Remote_operations
The following enumerated type defines the list of internal MP operations.
Definition: mpciimpl.h:51
void _MPCI_Send_response_packet(uint32_t destination, MP_packet_Prefix *the_packet)
Send a response packet.
Definition: mpci.c:229
void _MPCI_Announce(void)
Announce the availability of a packet.
Definition: mpci.c:331
void * Thread
The following defines the "return type" of a thread.
Definition: thread.h:99
#define SCORE_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:81
SCORE_EXTERN Thread_Control * _MPCI_Receive_server_tcb
Pointer to MP thread control block.
Definition: mpciimpl.h:93
void _MPCI_Register_packet_processor(MP_packet_Classes the_class, MPCI_Packet_processor the_packet_processor)
This routine registers the MPCI packet processor for the designated object class. ...
Definition: mpci.c:136
SCORE_EXTERN MPCI_Control * _MPCI_table
The following define the internal pointers to the user's configuration information.
Definition: mpciimpl.h:84
void _MPCI_Internal_packets_Process_packet(MP_packet_Prefix *the_packet_prefix)
_MPCI_Internal_packets_Send_request_packet
Definition: mpci.c:380