RTEMS Logo

RTEMS 4.8.0 On-Line Library


Multiprocessing Manager Multiprocessor Communications Interface Layer

PREV UP NEXT Bookshelf RTEMS C User's Guide

24.3: Multiprocessor Communications Interface Layer

  • Multiprocessing Manager INITIALIZATION
  • Multiprocessing Manager GET_PACKET
  • Multiprocessing Manager RETURN_PACKET
  • Multiprocessing Manager RECEIVE_PACKET
  • Multiprocessing Manager SEND_PACKET
  • Multiprocessing Manager Supporting Heterogeneous Environments
  • The Multiprocessor Communications Interface Layer (MPCI) is a set of user-provided procedures which enable the nodes in a multiprocessor system to communicate with one another. These routines are invoked by RTEMS at various times in the preparation and processing of remote requests. Interrupts are enabled when an MPCI procedure is invoked. It is assumed that if the execution mode and/or interrupt level are altered by the MPCI layer, that they will be restored prior to returning to RTEMS.

    The MPCI layer is responsible for managing a pool of buffers called packets and for sending these packets between system nodes. Packet buffers contain the messages sent between the nodes. Typically, the MPCI layer will encapsulate the packet within an envelope which contains the information needed by the MPCI layer. The number of packets available is dependent on the MPCI layer implementation.

    The entry points to the routines in the user's MPCI layer should be placed in the Multiprocessor Communications Interface Table. The user must provide entry points for each of the following table entries in a multiprocessor system:

    A packet is sent by RTEMS in each of the following situations:

    If the target hardware supports it, the arrival of a packet at a node may generate an interrupt. Otherwise, the real-time clock ISR can check for the arrival of a packet. In any case, the rtems_multiprocessing_announce directive must be called to announce the arrival of a packet. After exiting the ISR, control will be passed to the Multiprocessing Server to process the packet. The Multiprocessing Server will call the get_packet entry to obtain a packet buffer and the receive_entry entry to copy the message into the buffer obtained.


    PREV UP NEXT Bookshelf RTEMS C User's Guide

    Copyright © 1988-2007OAR Corporation