summaryrefslogtreecommitdiffstats
path: root/c-user/config/mpci.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-09 08:56:56 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-12 10:21:51 +0100
commit088a1f856f6e740700bb6f2d3b2ab5ecc205e5ea (patch)
treea413eac4df5fa34ca6bb3d4d17473ea7a2a74aea /c-user/config/mpci.rst
parentc-user: Move "Device Driver Configuration" (diff)
downloadrtems-docs-088a1f856f6e740700bb6f2d3b2ab5ecc205e5ea.tar.bz2
c-user: Move "Multiprocessing Configuration"
Update #3836.
Diffstat (limited to 'c-user/config/mpci.rst')
-rw-r--r--c-user/config/mpci.rst184
1 files changed, 184 insertions, 0 deletions
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst
new file mode 100644
index 0000000..4adffe3
--- /dev/null
+++ b/c-user/config/mpci.rst
@@ -0,0 +1,184 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+
+Multiprocessing Configuration
+=============================
+
+This section defines the multiprocessing related system configuration
+parameters supported by ``<rtems/confdefs.h>``. They are only used if RTEMS
+was built with the ``--enable-multiprocessing`` build configuration option.
+The multiprocessing (MPCI) support must not be confused with the SMP support.
+
+Additionally, this class of Configuration Constants are only applicable if
+``CONFIGURE_MP_APPLICATION`` is defined.
+
+.. index:: CONFIGURE_MP_APPLICATION
+
+.. _CONFIGURE_MP_APPLICATION:
+
+CONFIGURE_MP_APPLICATION
+------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_APPLICATION``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ This configuration parameter must be defined to indicate that the
+ application intends to be part of a multiprocessing
+ configuration. Additional configuration parameters are assumed to be
+ provided.
+
+NOTES:
+ This has no impact unless RTEMS was built with the
+ ``--enable-multiprocessing`` build configuration option.
+
+.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+
+.. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:
+
+CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+-----------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is 32.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
+ concurrently active global objects in a multiprocessor system.
+
+NOTES:
+ This value corresponds to the total number of objects which can be created
+ with the ``RTEMS_GLOBAL`` attribute.
+
+.. index:: CONFIGURE_MP_MAXIMUM_NODES
+
+.. _CONFIGURE_MP_MAXIMUM_NODES:
+
+CONFIGURE_MP_MAXIMUM_NODES
+--------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_MAXIMUM_NODES``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is 2.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_MAXIMUM_NODES`` is the maximum number of nodes in a
+ multiprocessor system.
+
+NOTES:
+ None.
+
+.. index:: CONFIGURE_MP_MAXIMUM_PROXIES
+
+.. _CONFIGURE_MP_MAXIMUM_PROXIES:
+
+CONFIGURE_MP_MAXIMUM_PROXIES
+----------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_MAXIMUM_PROXIES``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Undefined or positive.
+
+DEFAULT VALUE:
+ The default value is 32.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_MAXIMUM_PROXIES`` is the maximum number of concurrently
+ active thread/task proxies on this node in a multiprocessor system.
+
+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.
+
+.. COMMENT: XXX - add xref to proxy discussion in MP chapter
+
+.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER
+
+.. _CONFIGURE_MP_MPCI_TABLE_POINTER:
+
+CONFIGURE_MP_MPCI_TABLE_POINTER
+-------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_MPCI_TABLE_POINTER``
+
+DATA TYPE:
+ pointer to ``rtems_mpci_table``
+
+RANGE:
+ undefined or valid pointer
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_MPCI_TABLE_POINTER`` is the pointer to the MPCI
+ Configuration Table. The default value of this field is``&MPCI_table``.
+
+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.
+
+.. index:: CONFIGURE_MP_NODE_NUMBER
+
+.. _CONFIGURE_MP_NODE_NUMBER:
+
+CONFIGURE_MP_NODE_NUMBER
+------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_NODE_NUMBER``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is ``NODE_NUMBER``, which is assumed to be set by the
+ compilation environment.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
+ multiprocessor system.
+
+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.