summaryrefslogtreecommitdiffstats
path: root/c-user
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-09 08:48:01 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-12 10:16:34 +0100
commit16b0d3f177a610a44289ab74208268928654e17a (patch)
treedcf32762af83ef7b3796c94b9f5812e78e9f3928 /c-user
parentc-user: Move "Classic API Initialization Task Configuration" (diff)
downloadrtems-docs-16b0d3f177a610a44289ab74208268928654e17a.tar.bz2
c-user: Move "POSIX API Configuration"
Update #3836.
Diffstat (limited to 'c-user')
-rw-r--r--c-user/config/index.rst250
-rw-r--r--c-user/config/posix-api.rst252
2 files changed, 253 insertions, 249 deletions
diff --git a/c-user/config/index.rst b/c-user/config/index.rst
index 46aa17b..22597d0 100644
--- a/c-user/config/index.rst
+++ b/c-user/config/index.rst
@@ -15,255 +15,7 @@ Configuring a System
general
classic-api
classic-init-task
-
-POSIX API Configuration
-=======================
-
-The parameters in this section are used to configure resources for the POSIX
-API supported by RTEMS. Most POSIX API objects are available by default since
-RTEMS 5.1. The queued signals and timers are only available if RTEMS was built
-with the ``--enable-posix`` build configuration option.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
-
-.. _CONFIGURE_MAXIMUM_POSIX_KEYS:
-
-CONFIGURE_MAXIMUM_POSIX_KEYS
-----------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_KEYS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
- that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
-
-.. _CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS:
-
-CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
----------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is
- :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS <CONFIGURE_MAXIMUM_POSIX_KEYS>` *
- :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>` +
- :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
- value pairs used by POSIX API Keys that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode.
-
- A key value pair is created by :c:func:`pthread_setspecific` if the value
- is not :c:macro:`NULL`, otherwise it is deleted.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
-
-.. _CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES:
-
-CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
---------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
- API Message Queues that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode. You have
- to account for the memory used to store the messages of each message queue,
- see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
-
-.. _CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS:
-
-CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
---------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
- API Queued Signals that can be concurrently active.
-
-NOTES:
- Unlimited objects are not available for queued signals.
-
- Queued signals are only available if RTEMS was built with the
- ``--enable-posix`` build configuration option.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
-
-.. _CONFIGURE_MAXIMUM_POSIX_SEMAPHORES:
-
-CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
-----------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
- Named Semaphores that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode.
-
- Named semaphores are created with ``sem_open()``. Semaphores initialized
- with ``sem_init()`` are not affected by this configuration option since the
- storage space for these semaphores is user-provided.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
-
-.. _CONFIGURE_MAXIMUM_POSIX_TIMERS:
-
-CONFIGURE_MAXIMUM_POSIX_TIMERS
-------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
- Timers that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode.
-
- Timers are only available if RTEMS was built with the
- ``--enable-posix`` build configuration option.
-
-.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
-
-.. _CONFIGURE_MAXIMUM_POSIX_THREADS:
-
-CONFIGURE_MAXIMUM_POSIX_THREADS
--------------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_POSIX_THREADS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Zero or positive.
-
-DEFAULT VALUE:
- The default value is 0.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
- Threads that can be concurrently active.
-
-NOTES:
- This object class can be configured in unlimited allocation mode.
-
- This calculations for the required memory in the RTEMS Workspace for
- threads assume that each thread has a minimum stack size and has floating
- point support enabled. The configuration parameter
- ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
- requirements *ABOVE* the minimum size required. See :ref:`Reserve
- Task/Thread Stack Memory Above Minimum` for more information about
- ``CONFIGURE_EXTRA_TASK_STACKS``.
-
- The maximum number of Classic API Tasks is specified by
- :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
-
- All POSIX threads have floating point enabled.
-
-.. index:: CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
-.. index:: minimum POSIX thread stack size
-
-.. _CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE:
-
-CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
------------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
-
-DATA TYPE:
- Unsigned integer (``size_t``).
-
-RANGE:
- Positive.
-
-DEFAULT VALUE:
- The default value is two times the value of
- :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
-
-DESCRIPTION:
- This configuration parameter defines the minimum stack size in bytes for
- every POSIX thread in the system.
-
-NOTES:
- None.
+ posix-api
POSIX Initialization Thread Configuration
=========================================
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst
new file mode 100644
index 0000000..da5c0ba
--- /dev/null
+++ b/c-user/config/posix-api.rst
@@ -0,0 +1,252 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+
+POSIX API Configuration
+=======================
+
+The parameters in this section are used to configure resources for the POSIX
+API supported by RTEMS. Most POSIX API objects are available by default since
+RTEMS 5.1. The queued signals and timers are only available if RTEMS was built
+with the ``--enable-posix`` build configuration option.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_KEYS
+
+.. _CONFIGURE_MAXIMUM_POSIX_KEYS:
+
+CONFIGURE_MAXIMUM_POSIX_KEYS
+----------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_KEYS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
+ that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
+
+.. _CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS:
+
+CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
+---------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is
+ :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS <CONFIGURE_MAXIMUM_POSIX_KEYS>` *
+ :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>` +
+ :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
+ value pairs used by POSIX API Keys that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode.
+
+ A key value pair is created by :c:func:`pthread_setspecific` if the value
+ is not :c:macro:`NULL`, otherwise it is deleted.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+
+.. _CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES:
+
+CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
+--------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
+ API Message Queues that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode. You have
+ to account for the memory used to store the messages of each message queue,
+ see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+
+.. _CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS:
+
+CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+--------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
+ API Queued Signals that can be concurrently active.
+
+NOTES:
+ Unlimited objects are not available for queued signals.
+
+ Queued signals are only available if RTEMS was built with the
+ ``--enable-posix`` build configuration option.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+
+.. _CONFIGURE_MAXIMUM_POSIX_SEMAPHORES:
+
+CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+----------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
+ Named Semaphores that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode.
+
+ Named semaphores are created with ``sem_open()``. Semaphores initialized
+ with ``sem_init()`` are not affected by this configuration option since the
+ storage space for these semaphores is user-provided.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_TIMERS
+
+.. _CONFIGURE_MAXIMUM_POSIX_TIMERS:
+
+CONFIGURE_MAXIMUM_POSIX_TIMERS
+------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
+ Timers that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode.
+
+ Timers are only available if RTEMS was built with the
+ ``--enable-posix`` build configuration option.
+
+.. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
+
+.. _CONFIGURE_MAXIMUM_POSIX_THREADS:
+
+CONFIGURE_MAXIMUM_POSIX_THREADS
+-------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MAXIMUM_POSIX_THREADS``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Zero or positive.
+
+DEFAULT VALUE:
+ The default value is 0.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
+ Threads that can be concurrently active.
+
+NOTES:
+ This object class can be configured in unlimited allocation mode.
+
+ This calculations for the required memory in the RTEMS Workspace for
+ threads assume that each thread has a minimum stack size and has floating
+ point support enabled. The configuration parameter
+ ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
+ requirements *ABOVE* the minimum size required. See :ref:`Reserve
+ Task/Thread Stack Memory Above Minimum` for more information about
+ ``CONFIGURE_EXTRA_TASK_STACKS``.
+
+ The maximum number of Classic API Tasks is specified by
+ :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
+
+ All POSIX threads have floating point enabled.
+
+.. index:: CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
+.. index:: minimum POSIX thread stack size
+
+.. _CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE:
+
+CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
+-----------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
+
+DATA TYPE:
+ Unsigned integer (``size_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is two times the value of
+ :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
+
+DESCRIPTION:
+ This configuration parameter defines the minimum stack size in bytes for
+ every POSIX thread in the system.
+
+NOTES:
+ None.