diff options
Diffstat (limited to 'c-user/config/mpci.rst')
-rw-r--r-- | c-user/config/mpci.rst | 402 |
1 files changed, 260 insertions, 142 deletions
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst index 854600b..ab9d568 100644 --- a/c-user/config/mpci.rst +++ b/c-user/config/mpci.rst @@ -1,82 +1,130 @@ .. SPDX-License-Identifier: CC-BY-SA-4.0 -.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) -.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) +.. Copyright (C) 2020, 2021 embedded brains GmbH & Co. KG +.. Copyright (C) 1988, 2022 On-Line Applications Research Corporation (OAR) + +.. This file is part of the RTEMS quality process and was automatically +.. generated. If you find something that needs to be fixed or +.. worded better please post a report or patch to an RTEMS mailing list +.. or raise a bug report: +.. +.. https://www.rtems.org/bugs.html +.. +.. For information on updating and regenerating please refer to the How-To +.. section in the Software Requirements Engineering chapter of the +.. RTEMS Software Engineering manual. The manual is provided as a part of +.. a release. For development sources please refer to the online +.. documentation at: +.. +.. https://docs.rtems.org + +.. Generated from spec:/acfg/if/group-mpci Multiprocessing Configuration ============================= -This section describes multiprocessing related configuration options. The -options are only used if RTEMS was built with the ``--enable-multiprocessing`` -build configuration option. Additionally, this class of configuration options -are only applicable if the configuration option :ref:`CONFIGURE_MP_APPLICATION` -is defined. The multiprocessing (MPCI) support must not be confused with the -SMP support. +This section describes multiprocessing related configuration options. +The options are only used if RTEMS was built when the multiprocessing +build configuration option is enabled. The multiprocessing configuration +is distinct from the SMP configuration. Additionally, this class of +configuration options are only applicable if the configuration option +:ref:`CONFIGURE_MP_APPLICATION` is defined. The multiprocessing (MPCI) +support must not be confused with the SMP support. -.. index:: CONFIGURE_MP_APPLICATION +.. Generated from spec:/acfg/if/mp-extra-server-stack -.. _CONFIGURE_MP_APPLICATION: +.. raw:: latex -CONFIGURE_MP_APPLICATION ------------------------- + \clearpage -CONSTANT: - ``CONFIGURE_MP_APPLICATION`` +.. index:: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK -OPTION TYPE: - This configuration option is a boolean feature define. +.. _CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK: -DEFAULT CONFIGURATION: - If this configuration option is undefined, then the multiprocessing services - are not initialized. +CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK +----------------------------------------- -DESCRIPTION: - This configuration option is defined to indicate that the application intends - to be part of a multiprocessing configuration. Additional configuration - options are assumed to be provided. +.. rubric:: CONSTANT: -NOTES: - This configuration option shall be undefined if the multiprocessing support - is not enabled (e.g. RTEMS was built without the ``--enable-multiprocessing`` - build configuration option). Otherwise a compile time error in the - configuration file will occur. +``CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK`` -.. index:: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK +.. rubric:: OPTION TYPE: -.. _CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK: +This configuration option is an integer define. -CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK ------------------------------------------ +.. rubric:: DEFAULT VALUE: + +The default value is 0. + +.. rubric:: DESCRIPTION: -CONSTANT: - ``CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK`` +The value of this configuration option defines the number of bytes the +applications wishes to add to the MPCI task stack on top of +:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`. -OPTION TYPE: - This configuration option is an integer define. +.. rubric:: NOTES: -DEFAULT VALUE: - The default value is 0. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -VALUE CONSTRAINTS: - The value of this configuration option shall satisfy all of the following - constraints: +.. rubric:: CONSTRAINTS: - * It shall be greater than or equal to 0. +The following constraints apply to this configuration option: - * It shall be less than or equal to ``UINT32_MAX``. +* The value of the configuration option shall be greater than or equal to zero. - * It shall be small enough so that the - MPCI receive server stack area calculation carried out by - ``<rtems/confdefs.h>`` does not overflow an integer of type ``size_t``. +* The value of the configuration option shall be less than or equal to + `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_. -DESCRIPTION: - The value of this configuration option defines the number of bytes the - applications wishes to add to the MPCI task stack on top of - :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`. +* The value of the configuration option shall be small enough so that the MPCI + receive server stack area calculation carried out by ``<rtems/confdefs.h>`` + does not overflow an integer of type `size_t + <https://en.cppreference.com/w/c/types/size_t>`_. -NOTES: - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +.. Generated from spec:/acfg/if/mp-appl + +.. raw:: latex + + \clearpage + +.. index:: CONFIGURE_MP_APPLICATION + +.. _CONFIGURE_MP_APPLICATION: + +CONFIGURE_MP_APPLICATION +------------------------ + +.. rubric:: CONSTANT: + +``CONFIGURE_MP_APPLICATION`` + +.. rubric:: OPTION TYPE: + +This configuration option is a boolean feature define. + +.. rubric:: DEFAULT CONFIGURATION: + +If this configuration option is undefined, then the multiprocessing services +are not initialized. + +.. rubric:: DESCRIPTION: + +This configuration option is defined to indicate that the application intends +to be part of a multiprocessing configuration. Additional configuration +options are assumed to be provided. + +.. rubric:: NOTES: + +This configuration option shall be undefined if the multiprocessing support +is not enabled (e.g. RTEMS was built without the multiprocessing build +configuration option enabled). Otherwise a compile time error in the +configuration file will occur. + +.. Generated from spec:/acfg/if/mp-max-global-objects + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS @@ -85,29 +133,45 @@ NOTES: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS ----------------------------------- -CONSTANT: - ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` +.. rubric:: CONSTANT: + +``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` + +.. rubric:: OPTION TYPE: + +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +The default value is 32. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the maximum number of +concurrently active global objects in a multiprocessor system. -OPTION TYPE: - This configuration option is an integer define. +.. rubric:: NOTES: -DEFAULT VALUE: - The default value is 32. +This value corresponds to the total number of objects which can be created +with the :c:macro:`RTEMS_GLOBAL` attribute. -VALUE CONSTRAINTS: - The value of this configuration option shall be greater than or equal to 0 - and less than or equal to ``UINT32_MAX``. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -DESCRIPTION: - The value of this configuration option defines the maximum number of - concurrently active global objects in a multiprocessor system. +.. rubric:: CONSTRAINTS: -NOTES: - This value corresponds to the total number of objects which can be created - with the ``RTEMS_GLOBAL`` attribute. +The following constraints apply to this configuration option: - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +* The value of the configuration option shall be greater than or equal to zero. + +* The value of the configuration option shall be less than or equal to + `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_. + +.. Generated from spec:/acfg/if/mp-max-nodes + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MP_MAXIMUM_NODES @@ -116,26 +180,42 @@ NOTES: CONFIGURE_MP_MAXIMUM_NODES -------------------------- -CONSTANT: - ``CONFIGURE_MP_MAXIMUM_NODES`` +.. rubric:: CONSTANT: + +``CONFIGURE_MP_MAXIMUM_NODES`` + +.. rubric:: OPTION TYPE: + +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +The default value is 2. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the maximum number of nodes in +a multiprocessor system. -OPTION TYPE: - This configuration option is an integer define. +.. rubric:: NOTES: -DEFAULT VALUE: - The default value is 2. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -VALUE CONSTRAINTS: - The value of this configuration option shall be greater than or equal to 0 - and less than or equal to ``UINT32_MAX``. +.. rubric:: CONSTRAINTS: -DESCRIPTION: - The value of this configuration option defines the maximum number of nodes in - a multiprocessor system. +The following constraints apply to this configuration option: -NOTES: - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +* The value of the configuration option shall be greater than or equal to zero. + +* The value of the configuration option shall be less than or equal to + `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_. + +.. Generated from spec:/acfg/if/mp-max-proxies + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MP_MAXIMUM_PROXIES @@ -144,32 +224,48 @@ NOTES: CONFIGURE_MP_MAXIMUM_PROXIES ---------------------------- -CONSTANT: - ``CONFIGURE_MP_MAXIMUM_PROXIES`` +.. rubric:: CONSTANT: + +``CONFIGURE_MP_MAXIMUM_PROXIES`` + +.. rubric:: OPTION TYPE: + +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +The default value is 32. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the maximum number of +concurrently active thread/task proxies on this node in a multiprocessor +system. -OPTION TYPE: - This configuration option is an integer define. +.. rubric:: NOTES: -DEFAULT VALUE: - The default value is 32. +Since a proxy is used to represent a remote task/thread which is blocking +on this node. This configuration parameter reflects the maximum number of +remote tasks/threads which can be blocked on objects on this node, see +:ref:`MPCIProxies`. -VALUE CONSTRAINTS: - The value of this configuration option shall be greater than or equal to 0 - and less than or equal to ``UINT32_MAX``. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -DESCRIPTION: - The value of this configuration option defines the maximum number of - concurrently active thread/task proxies on this node in a multiprocessor - system. +.. rubric:: CONSTRAINTS: -NOTES: - Since a proxy is used to represent a remote task/thread which is blocking - on this node. This configuration parameter reflects the maximum number of - remote tasks/threads which can be blocked on objects on this node, see - :ref:`MPCIProxies`. +The following constraints apply to this configuration option: - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +* The value of the configuration option shall be greater than or equal to zero. + +* The value of the configuration option shall be less than or equal to + `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_. + +.. Generated from spec:/acfg/if/mp-mpci-table-pointer + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MP_MPCI_TABLE_POINTER @@ -178,30 +274,42 @@ NOTES: CONFIGURE_MP_MPCI_TABLE_POINTER ------------------------------- -CONSTANT: - ``CONFIGURE_MP_MPCI_TABLE_POINTER`` +.. rubric:: CONSTANT: + +``CONFIGURE_MP_MPCI_TABLE_POINTER`` + +.. rubric:: OPTION TYPE: + +This configuration option is an initializer define. + +.. rubric:: DEFAULT VALUE: + +The default value is ``&MPCI_table``. + +.. rubric:: DESCRIPTION: + +The value of this configuration option initializes the MPCI Configuration +Table. -OPTION TYPE: - This configuration option is an initializer define. +.. rubric:: NOTES: -DEFAULT VALUE: - The default value is ``&MPCI_table``. +RTEMS provides a Shared Memory MPCI Device Driver which can be used on any +Multiprocessor System assuming the BSP provides the proper set of +supporting methods. -VALUE CONSTRAINTS: - The value of this configuration option shall be a pointer to - :c:type:`rtems_mpci_table`. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -DESCRIPTION: - The value of this configuration option initializes the MPCI Configuration - Table. +.. rubric:: CONSTRAINTS: -NOTES: - RTEMS provides a Shared Memory MPCI Device Driver which can be used on any - Multiprocessor System assuming the BSP provides the proper set of - supporting methods. +The value of the configuration option shall be a pointer to +:c:type:`rtems_mpci_table`. - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +.. Generated from spec:/acfg/if/mp-node-number + +.. raw:: latex + + \clearpage .. index:: CONFIGURE_MP_NODE_NUMBER @@ -210,28 +318,38 @@ NOTES: CONFIGURE_MP_NODE_NUMBER ------------------------ -CONSTANT: - ``CONFIGURE_MP_NODE_NUMBER`` +.. rubric:: CONSTANT: + +``CONFIGURE_MP_NODE_NUMBER`` + +.. rubric:: OPTION TYPE: + +This configuration option is an integer define. + +.. rubric:: DEFAULT VALUE: + +The default value is ``NODE_NUMBER``. + +.. rubric:: DESCRIPTION: + +The value of this configuration option defines the node number of this node +in a multiprocessor system. + +.. rubric:: NOTES: -OPTION TYPE: - This configuration option is an integer define. +In the RTEMS Multiprocessing Test Suite, the node number is derived from +the Makefile variable ``NODE_NUMBER``. The same code is compiled with the +``NODE_NUMBER`` set to different values. The test programs behave +differently based upon their node number. -DEFAULT VALUE: - The default value is ``NODE_NUMBER``. +This configuration option is only evaluated if +:ref:`CONFIGURE_MP_APPLICATION` is defined. -VALUE CONSTRAINTS: - The value of this configuration option shall be greater than or equal to 0 - and less than or equal to ``UINT32_MAX``. +.. rubric:: CONSTRAINTS: -DESCRIPTION: - The value of this configuration option defines the node number of this node - in a multiprocessor system. +The following constraints apply to this configuration option: -NOTES: - In the RTEMS Multiprocessing Test Suite, the node number is derived from - the Makefile variable ``NODE_NUMBER``. The same code is compiled with the - ``NODE_NUMBER`` set to different values. The test programs behave - differently based upon their node number. +* The value of the configuration option shall be greater than or equal to zero. - This configuration option is only evaluated if - :ref:`CONFIGURE_MP_APPLICATION` is defined. +* The value of the configuration option shall be less than or equal to + `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_. |