This table defines the set of callouts that must be provided by
an Multiprocessor Communications Interface implementation.
When using the rtems/confdefs.h mechanism for configuring
an RTEMS application, the name of this table is assumed
to be MPCI_table unless the application sets
the CONFIGURE_MP_MPCI_TABLE_POINTER when configuring a
multiprocessing system.
The format of this table is defined in
the following Ada record:
type MPCI_Table is
record
Default_Timeout : RTEMS.Unsigned32; -- in ticks
Maximum_Packet_Size : RTEMS.Unsigned32;
Initialization : RTEMS.MPCI_Initialization_Entry;
Get_Packet : RTEMS.MPCI_Get_Packet_Entry;
Return_Packet : RTEMS.MPCI_Return_Packet_Entry;
Send : RTEMS.MPCI_Send_Entry;
Receive : RTEMS.MPCI_Receive_Entry;
end record;
type MPCI_Table_Pointer is access all MPCI_Table;
default_timeout
is the default maximum length of time a task should block waiting for
a response to a directive which results in communication with a remote node.
The maximum length of time is a function the user supplied
multiprocessor communications layer and the media used. This
timeout only applies to directives which would not block if the
operation were performed locally.
maximum_packet_size
is the size in bytes of the longest packet which the MPCI layer is capable
of sending. This value should represent the total number of bytes available
for a RTEMS interprocessor messages.
initialization
is the address of the entry point for the initialization procedure of the
user supplied multiprocessor communications layer.
get_packet
is the address of the entry point for the procedure called by RTEMS to
obtain a packet from the user supplied multiprocessor communications layer.
return_packet
is the address of the entry point for the procedure called by RTEMS to
return a packet to the user supplied multiprocessor communications layer.
send
is the address of the entry point for the procedure called by RTEMS to
send an envelope to another node. This procedure is part of the user
supplied multiprocessor communications layer.
receive
is the address of the entry point for the
procedure called by RTEMS to retrieve an envelope containing a
message from another node. This procedure is part of the user
supplied multiprocessor communications layer.
More information regarding the required functionality of these
entry points is provided in the Multiprocessor chapter.