RTEMS Logo

RTEMS 4.10.2 On-Line Library


Configuring a System Multiprocessor Communications Interface Table

PREV UP NEXT Bookshelf RTEMS C User's Guide

23.11: Multiprocessor Communications Interface Table

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 C structure:

typedef struct {
  uint32_t                        default_timeout; /* in ticks */
  uint32_t                        maximum_packet_size;
  rtems_mpci_initialization_entry initialization;
  rtems_mpci_get_packet_entry     get_packet;
  rtems_mpci_return_packet_entry  return_packet;
  rtems_mpci_send_entry           send_packet;
  rtems_mpci_receive_entry        receive_packet;
} rtems_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.


PREV UP NEXT Bookshelf RTEMS C User's Guide

Copyright © 1988-2008 OAR Corporation