[PATCH] c-user: Generate region manager documentation
Gedare Bloom
gedare at rtems.org
Wed Apr 28 04:04:28 UTC 2021
On Tue, Apr 27, 2021 at 12:03 PM Sebastian Huber
<sebastian.huber at embedded-brains.de> wrote:
>
> The documentation is a consolidation of the comments in Doxygen markup
> and the documentation sources in Sphinx markup. The documentation was
> transfered to interface specification items. The documentation source
> files were generated from the items by a script.
>
> Update #3993.
> ---
> Here is the updated document for review:
>
> https://ftp.rtems.org/pub/rtems/people/sebh/c-user.pdf
>
> c-user/region/directives.rst | 1269 ++++++++++++++++++++------------
> c-user/region/introduction.rst | 58 +-
> 2 files changed, 857 insertions(+), 470 deletions(-)
>
> diff --git a/c-user/region/directives.rst b/c-user/region/directives.rst
> index be994f6..3ec06cd 100644
> --- a/c-user/region/directives.rst
> +++ b/c-user/region/directives.rst
> @@ -1,561 +1,914 @@
> .. SPDX-License-Identifier: CC-BY-SA-4.0
>
> +.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
> .. Copyright (C) 1988, 2008 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
> +
> +.. _RegionManagerDirectives:
> +
> Directives
> ==========
>
> -This section details the region manager's directives. A subsection is
> -dedicated to each of this manager's directives and describes the calling
> -sequence, related constants, usage, and status codes.
> +This section details the directives of the Region Manager. A subsection is
> +dedicated to each of this manager's directives and lists the calling sequence,
> +parameters, description, return values, and notes of the directive.
> +
> +.. Generated from spec:/rtems/region/if/create
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_create()
> .. index:: create a region
>
> -.. _rtems_region_create:
> +.. _InterfaceRtemsRegionCreate:
>
> -REGION_CREATE - Create a region
> --------------------------------
> +rtems_region_create()
> +---------------------
> +
> +Creates a region.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_create(
> + rtems_name name,
> + void *starting_address,
> + uintptr_t length,
> + uintptr_t page_size,
> + rtems_attribute attribute_set,
> + rtems_id *id
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``name``
> + This parameter is the object name of the region.
> +
> +``starting_address``
> + This parameter is the starting address of the memory area managed by the
> + region.
> +
> +``length``
> + This parameter is the length in bytes of the memory area managed by the
> + region.
> +
> +``page_size``
> + This parameter is the alignment of the starting address and length of each
> + allocated segment of the region.
> +
> +``attribute_set``
> + This parameter is the attribute set of the region.
> +
> +``id``
> + This parameter is the pointer to an object identifier variable. When the
> + directive call is successful, the identifier of the created region will be
> + stored in this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive creates a region which resides on the local node. The region
> +has the user-defined object name specified in ``name``. The assigned object
> +identifier is returned in ``id``. This identifier is used to access the region
> +with other region related directives.
> +
> +The region manages the **contiguous memory area** which starts at
> +``starting_address`` and is ``length`` bytes long. The memory area shall be
> +large enough to contain some internal region administration data.
> +
> +The **starting address** and **length of segments** allocated from the region
> +will be an integral multiple of ``page_size``. The specified page size will be
> +aligned to an implementation-dependent minimum alignment if necessary.
> +
> +The **attribute set** specified in ``attribute_set`` is built through a
> +*bitwise or* of the attribute constants described below. Not all combinations
> +of attributes are allowed. Some attributes are mutually exclusive. If
> +mutually exclusive attributes are combined, the behaviour is undefined.
> +Attributes not mentioned below are not evaluated by this directive and have no
> +effect. Default attributes can be selected by using the
> +:c:macro:`RTEMS_DEFAULT_ATTRIBUTES` constant.
> +
> +The **task wait queue discipline** is selected by the mutually exclusive
> +:c:macro:`RTEMS_FIFO` and :c:macro:`RTEMS_PRIORITY` attributes. The discipline
> +defines the order in which tasks wait for allocatable segments on a currently
> +empty region.
> +
> +* The **FIFO discipline** is the default and can be emphasized through use of
> + the :c:macro:`RTEMS_FIFO` attribute.
> +
> +* The **priority discipline** is selected by the :c:macro:`RTEMS_PRIORITY`
> + attribute.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_NAME`
> + The ``name`` parameter was invalid.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``id`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``starting_address`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_TOO_MANY`
> + There was no inactive object available to create a region. The number of
> + regions available to the application is configured through the
> + :ref:`CONFIGURE_MAXIMUM_REGIONS` application configuration option.
> +
> +:c:macro:`RTEMS_INVALID_SIZE`
> + The ``page_size`` parameter was invalid.
> +
> +:c:macro:`RTEMS_INVALID_SIZE`
> + The memory area specified in ``starting_address`` and ``length`` was too
> + small.
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> -
> - rtems_status_code rtems_region_create(
> - rtems_name name,
> - void *starting_address,
> - uintptr_t length,
> - uintptr_t page_size,
> - rtems_attribute attribute_set,
> - rtems_id *id
> - );
> -
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_SUCCESSFUL``
> - - region created successfully
> - * - ``RTEMS_INVALID_NAME``
> - - invalid region name
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``id`` is NULL
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``starting_address`` is NULL
> - * - ``RTEMS_TOO_MANY``
> - - too many regions created
> - * - ``RTEMS_INVALID_SIZE``
> - - invalid page size
> - * - ``RTEMS_INVALID_SIZE``
> - - the memory area defined by the starting address and the length
> - parameters is too small
> -
> -DESCRIPTION:
> - This directive creates a region from a contiguous memory area
> - which starts at starting_address and is length bytes long. The memory area
> - must be large enough to contain some internal region administration data.
> - Segments allocated from the region will be a multiple of page_size bytes in
> - length. The specified page size will be aligned to an
> - architecture-specific minimum alignment if necessary.
> -
> - The assigned region id is returned in id. This region id is used as an
> - argument to other region related directives to access the region.
> -
> - For control and maintenance of the region, RTEMS allocates and initializes
> - an RNCB from the RNCB free pool. Thus memory from the region is not used
> - to store the RNCB. However, some overhead within the region is required by
> - RTEMS each time a segment is constructed in the region.
> -
> - Specifying ``RTEMS_PRIORITY`` in attribute_set causes tasks waiting for a
> - segment to be serviced according to task priority. Specifying
> - ``RTEMS_FIFO`` in attribute_set or selecting ``RTEMS_DEFAULT_ATTRIBUTES``
> - will cause waiting tasks to be serviced in First In-First Out order.
> -
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> -
> - The following region attribute constants are defined by RTEMS:
> -
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_FIFO``
> - - tasks wait by FIFO (default)
> - * - ``RTEMS_PRIORITY``
> - - tasks wait by priority
> +.. rubric:: NOTES:
> +
> +For control and maintenance of the region, RTEMS allocates a :term:`RNCB` from
> +the local RNCB free pool and initializes it.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +* The number of regions available to the application is configured through the
> + :ref:`CONFIGURE_MAXIMUM_REGIONS` application configuration option.
> +
> +* Where the object class corresponding to the directive is configured to use
> + unlimited objects, the directive may allocate memory from the RTEMS
> + Workspace.
> +
> +.. Generated from spec:/rtems/region/if/ident
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
> +
> +.. index:: rtems_region_ident()
> +
> +.. _InterfaceRtemsRegionIdent:
> +
> +rtems_region_ident()
> +--------------------
> +
> +Identifies a region by the object name.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
>
> -.. index:: get ID of a region
> -.. index:: obtain ID of a region
> -.. index:: rtems_region_ident
> + rtems_status_code rtems_region_ident( rtems_name name, rtems_id *id );
>
> -.. _rtems_region_ident:
> +.. rubric:: PARAMETERS:
>
> -REGION_IDENT - Get ID of a region
> ----------------------------------
> +``name``
> + This parameter is the object name to look up.
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> +``id``
> + This parameter is the pointer to an object identifier variable. When the
> + directive call is successful, the object identifier of an object with the
> + specified name will be stored in this variable.
>
> - rtems_status_code rtems_region_ident(
> - rtems_name name,
> - rtems_id *id
> - );
> +.. rubric:: DESCRIPTION:
>
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> +This directive obtains a region identifier associated with the region name
> +specified in ``name``.
>
> - * - ``RTEMS_SUCCESSFUL``
> - - region identified successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``id`` is NULL
> - * - ``RTEMS_INVALID_NAME``
> - - region name not found
> +.. rubric:: RETURN VALUES:
>
> -DESCRIPTION:
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
>
> - This directive obtains the region id associated with the region name to be
> - acquired. If the region name is not unique, then the region id will match
> - one of the regions with that name. However, this region id is not
> - guaranteed to correspond to the desired region. The region id is used to
> - access this region in other region manager directives.
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``id`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
>
> -NOTES:
> - This directive will not cause the running task to be preempted.
> +:c:macro:`RTEMS_INVALID_NAME`
> + The ``name`` parameter was 0.
> +
> +:c:macro:`RTEMS_INVALID_NAME`
> + There was no object with the specified name on the local node.
> +
> +.. rubric:: NOTES:
> +
> +If the region name is not unique, then the region identifier will match the
> +first region with that name in the search order. However, this region
> +identifier is not guaranteed to correspond to the desired region.
> +
> +The objects are searched from lowest to the highest index. Only the local node
> +is searched.
> +
> +The region identifier is used with other region related directives to access
> +the region.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within any runtime context.
> +
> +* The directive will not cause the calling task to be preempted.
> +
> +.. Generated from spec:/rtems/region/if/delete
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_delete()
> .. index:: delete a region
> -.. index:: rtems_region_delete
>
> -.. _rtems_region_delete:
> +.. _InterfaceRtemsRegionDelete:
>
> -REGION_DELETE - Delete a region
> --------------------------------
> +rtems_region_delete()
> +---------------------
> +
> +Deletes the region.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_delete( rtems_id id );
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> +.. rubric:: PARAMETERS:
>
> - rtems_status_code rtems_region_delete(
> - rtems_id id
> - );
> +``id``
> + This parameter is the region identifier.
>
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> +.. rubric:: DESCRIPTION:
>
> - * - ``RTEMS_SUCCESSFUL``
> - - region deleted successfully
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_RESOURCE_IN_USE``
> - - segments still in use
> +This directive deletes the region specified by ``id``.
>
> -DESCRIPTION:
> - This directive deletes the region specified by id. The region cannot be
> - deleted if any of its segments are still allocated. The RNCB for the
> - deleted region is reclaimed by RTEMS.
> +.. rubric:: RETURN VALUES:
>
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
>
> - The calling task does not have to be the task that created the region. Any
> - local task that knows the region id can delete the region.
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_RESOURCE_IN_USE`
> + There were segments of the region still in use.
> +
> +.. rubric:: NOTES:
> +
> +The region cannot be deleted if any of its segments are still allocated.
> +
> +The :term:`RNCB` for the deleted region is reclaimed by RTEMS.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +* The calling task does not have to be the task that created the object. Any
> + local task that knows the object identifier can delete the object.
> +
> +* Where the object class corresponding to the directive is configured to use
> + unlimited objects, the directive may free memory to the RTEMS Workspace.
> +
> +.. Generated from spec:/rtems/region/if/extend
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_extend()
> .. index:: add memory to a region
> .. index:: region, add memory
> -.. index:: rtems_region_extend
> -
> -.. _rtems_region_extend:
> -
> -REGION_EXTEND - Add memory to a region
> ---------------------------------------
> -
> -CALLING SEQUENCE:
> - .. code-block:: c
> -
> - rtems_status_code rtems_region_extend(
> - rtems_id id,
> - void *starting_address,
> - uintptr_t length
> - );
> -
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_SUCCESSFUL``
> - - region extended successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``starting_address`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_INVALID_ADDRESS``
> - - invalid address of area to add
> -
> -DESCRIPTION:
> - This directive adds the memory area which starts at
> - :c:data:`starting_address` for :c:data:`length` bytes to the region
> - specified by :c:data:`id`.
> -
> - There are no alignment requirements for the memory area. The memory area
> - must be big enough to contain some maintenance blocks. It must not overlap
> - parts of the current heap memory areas. Disconnected memory areas added to
> - the heap will lead to used blocks which cover the gaps. Extending with an
> - inappropriate memory area will corrupt the heap resulting in undefined
> - behaviour.
> -
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> -
> - The calling task does not have to be the task that created the region. Any
> - local task that knows the region identifier can extend the region.
> +
> +.. _InterfaceRtemsRegionExtend:
> +
> +rtems_region_extend()
> +---------------------
> +
> +Extends the region.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_extend(
> + rtems_id id,
> + void *starting_address,
> + uintptr_t length
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``starting_address``
> + This parameter is the starting address of the memory area to extend the
> + region.
> +
> +``length``
> + This parameter is the length in bytes of the memory area to extend the
> + region.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive adds the memory area which starts at ``starting_address`` for
> +``length`` bytes to the region specified by ``id``.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``starting_address`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The memory area specified by ``starting_address`` and ``length`` was
> + insufficient to extend the heap.
> +
> +.. rubric:: NOTES:
> +
> +There are no alignment requirements for the memory area. The memory area must
> +be big enough to contain some maintenance blocks. It must not overlap parts of
> +the current heap memory areas. Disconnected memory areas added to the heap
> +will lead to used blocks which cover the gaps. Extending with an inappropriate
> +memory area will corrupt the heap resulting in undefined behaviour.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +.. Generated from spec:/rtems/region/if/get-segment
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_get_segment()
> .. index:: get segment from region
> -.. index:: rtems_region_get_segment
> -
> -.. _rtems_region_get_segment:
> -
> -REGION_GET_SEGMENT - Get segment from a region
> -----------------------------------------------
> -
> -CALLING SEQUENCE:
> - .. code-block:: c
> -
> - rtems_status_code rtems_region_get_segment(
> - rtems_id id,
> - uintptr_t size,
> - rtems_option option_set,
> - rtems_interval timeout,
> - void **segment
> - );
> -
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_SUCCESSFUL``
> - - segment obtained successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``segment`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_INVALID_SIZE``
> - - request is for zero bytes or exceeds the size of maximum segment which is
> - possible for this region
> - * - ``RTEMS_UNSATISFIED``
> - - segment of requested size not available
> - * - ``RTEMS_TIMEOUT``
> - - timed out waiting for segment
> - * - ``RTEMS_OBJECT_WAS_DELETED``
> - - region deleted while waiting
> -
> -DESCRIPTION:
> - This directive obtains a variable size segment from the region specified by
> - ``id``. The address of the allocated segment is returned in segment. The
> - ``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options parameter
> - are used to specify whether the calling tasks wish to wait for a segment to
> - become available or return immediately if no segment is available. For
> - either option, if a sufficiently sized segment is available, then the
> - segment is successfully acquired by returning immediately with the
> - ``RTEMS_SUCCESSFUL`` status code.
> -
> - If the calling task chooses to return immediately and a segment large
> - enough is not available, then an error code indicating this fact is
> - returned. If the calling task chooses to wait for the segment and a
> - segment large enough is not available, then the calling task is placed on
> - the region's segment wait queue and blocked. If the region was created
> - with the ``RTEMS_PRIORITY`` option, then the calling task is inserted into
> - the wait queue according to its priority. However, if the region was
> - created with the ``RTEMS_FIFO`` option, then the calling task is placed at
> - the rear of the wait queue.
> -
> - The timeout parameter specifies the maximum interval that a task is willing
> - to wait to obtain a segment. If timeout is set to ``RTEMS_NO_TIMEOUT``,
> - then the calling task will wait forever.
> -
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> -
> - The actual length of the allocated segment may be larger than the requested
> - size because a segment size is always a multiple of the region's page size.
> -
> - The following segment acquisition option constants are defined by RTEMS:
> -
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_WAIT``
> - - task will wait for segment (default)
> - * - ``RTEMS_NO_WAIT``
> - - task should not wait
> -
> - A clock tick is required to support the timeout functionality of this
> - directive.
> +
> +.. _InterfaceRtemsRegionGetSegment:
> +
> +rtems_region_get_segment()
> +--------------------------
> +
> +Gets a segment from the region.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_get_segment(
> + rtems_id id,
> + uintptr_t size,
> + rtems_option option_set,
> + rtems_interval timeout,
> + void **segment
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``size``
> + This parameter is the size in bytes of the segment to allocate.
> +
> +``option_set``
> + This parameter is the option set.
> +
> +``timeout``
> + This parameter is the timeout in :term:`clock ticks <clock tick>` if the
> + :c:macro:`RTEMS_WAIT` option is set. Use :c:macro:`RTEMS_NO_TIMEOUT` to
> + wait potentially forever.
> +
> +``segment``
> + This parameter is the pointer to a void pointer variable. When the
> + directive call is successful, the begin address of the allocated segment
> + will be stored in this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive gets a segment from the region specified by ``id``.
> +
> +The **option set** specified in ``option_set`` is built through a *bitwise or*
> +of the option constants described below. Not all combinations of options are
> +allowed. Some options are mutually exclusive. If mutually exclusive options
> +are combined, the behaviour is undefined. Options not mentioned below are not
> +evaluated by this directive and have no effect. Default options can be selected
> +by using the :c:macro:`RTEMS_DEFAULT_OPTIONS` constant.
> +
> +The calling task can **wait** or **try to get** a segment from the region
> +according to the mutually exclusive :c:macro:`RTEMS_WAIT` and
> +:c:macro:`RTEMS_NO_WAIT` options.
> +
> +* **Waiting to get** a segment from the region is the default and can be
> + emphasized through the use of the :c:macro:`RTEMS_WAIT` option. The
> + ``timeout`` parameter defines how long the calling task is willing to wait.
> + Use :c:macro:`RTEMS_NO_TIMEOUT` to wait potentially forever, otherwise set a
> + timeout interval in clock ticks.
> +
> +* **Trying to get** a segment from the region is selected by the
> + :c:macro:`RTEMS_NO_WAIT` option. If this option is defined, then the
> + ``timeout`` parameter is ignored. When a segment from the region cannot be
> + immediately allocated, then the :c:macro:`RTEMS_UNSATISFIED` status is
> + returned.
> +
> +With either :c:macro:`RTEMS_WAIT` or :c:macro:`RTEMS_NO_WAIT` if there is a
> +segment of the requested size is available, then it is returned in ``segment``
> +and this directive returns immediately with the :c:macro:`RTEMS_SUCCESSFUL`
> +status code.
> +
> +If the calling task chooses to return immediately and the region has no segment
> +of the requested size available, then the directive returns immediately with
> +the :c:macro:`RTEMS_UNSATISFIED` status code. If the calling task chooses to
> +wait for a segment, then the calling task is placed on the region wait queue
> +and blocked. If the region was created with the :c:macro:`RTEMS_PRIORITY`
> +option specified, then the calling task is inserted into the wait queue
> +according to its priority. But, if the region was created with the
> +:c:macro:`RTEMS_FIFO` option specified, then the calling task is placed at the
> +rear of the wait queue.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``segment`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_SIZE`
> + The ``size`` parameter was zero.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_INVALID_SIZE`
> + The ``size`` parameter exceeded the maximum segment size which is possible
> + for the region.
> +
> +:c:macro:`RTEMS_UNSATISFIED`
> + The region had no segment of the requested size immediately available.
> +
> +:c:macro:`RTEMS_TIMEOUT`
> + The timeout happened while the calling task was waiting to get a segment
> + from the region.
> +
> +.. rubric:: NOTES:
> +
> +The actual length of the allocated segment may be larger than the requested
> +size because a segment size is always a multiple of the region's page size.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +* When the request cannot be immediately satisfied and the
> + :c:macro:`RTEMS_WAIT` option is set, the calling task blocks at some point
> + during the directive call.
> +
> +* The timeout functionality of the directive requires a :term:`clock tick`.
> +
> +.. Generated from spec:/rtems/region/if/return-segment
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_return_segment()
> .. index:: return segment to region
> -.. index:: rtems_region_return_segment
>
> -.. _rtems_region_return_segment:
> +.. _InterfaceRtemsRegionReturnSegment:
>
> -REGION_RETURN_SEGMENT - Return segment to a region
> ---------------------------------------------------
> +rtems_region_return_segment()
> +-----------------------------
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> +Returns the segment to the region.
>
> - rtems_status_code rtems_region_return_segment(
> - rtems_id id,
> - void *segment
> - );
> +.. rubric:: CALLING SEQUENCE:
>
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> +.. code-block:: c
>
> - * - ``RTEMS_SUCCESSFUL``
> - - segment returned successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``segment`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_INVALID_ADDRESS``
> - - segment address not in region
> + rtems_status_code rtems_region_return_segment( rtems_id id, void *segment );
>
> -DESCRIPTION:
> - This directive returns the segment specified by segment to the region
> - specified by id. The returned segment is merged with its neighbors to form
> - the largest possible segment. The first task on the wait queue is examined
> - to determine if its segment request can now be satisfied. If so, it is
> - given a segment and unblocked. This process is repeated until the first
> - task's segment request cannot be satisfied.
> +.. rubric:: PARAMETERS:
>
> -NOTES:
> - This directive will cause the calling task to be preempted if one or more
> - local tasks are waiting for a segment and the following conditions exist:
> +``id``
> + This parameter is the region identifier.
>
> - - a waiting task has a higher priority than the calling task
> +``segment``
> + This parameter is the begin address of the segment to return.
>
> - - the size of the segment required by the waiting task is less than or
> - equal to the size of the segment returned.
> +.. rubric:: DESCRIPTION:
>
> -.. raw:: latex
> +This directive returns the segment specified by ``segment`` to the region
> +specified by ``id``. The returned segment is merged with its neighbors to form
> +the largest possible segment. The first task on the wait queue is examined to
> +determine if its segment request can now be satisfied. If so, it is given a
> +segment and unblocked. This process is repeated until the first task's segment
> +request cannot be satisfied.
>
> - \clearpage
> +.. rubric:: RETURN VALUES:
>
> -.. index:: get size of segment
> -.. index:: rtems_region_get_segment_size
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The segment was not within the region.
> +
> +.. rubric:: NOTES:
> +
> +This directive will cause the calling task to be preempted if one or more local
> +tasks are waiting for a segment and the following conditions exist:
> +
> +* A waiting task has a higher priority than the calling task.
>
> -.. _rtems_region_get_segment_size:
> +* The size of the segment required by the waiting task is less than or equal to
> + the size of the segment returned.
>
> -REGION_GET_SEGMENT_SIZE - Obtain size of a segment
> ---------------------------------------------------
> +.. rubric:: CONSTRAINTS:
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> +The following constraints apply to this directive:
>
> - rtems_status_code rtems_region_get_segment_size(
> - rtems_id id,
> - void *segment,
> - uintptr_t *size
> - );
> +* The directive may be called from within device driver initialization context.
>
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> +* The directive may be called from within task context.
>
> - * - ``RTEMS_SUCCESSFUL``
> - - segment obtained successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``segment`` is NULL
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``size`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_INVALID_ADDRESS``
> - - segment address not in region
> +* The directive may unblock a task. This may cause the calling task to be
> + preempted.
>
> -DESCRIPTION:
> - This directive obtains the size in bytes of the specified segment.
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
>
> -NOTES:
> - The actual length of the allocated segment may be larger than the requested
> - size because a segment size is always a multiple of the region's page size.
> +.. Generated from spec:/rtems/region/if/resize-segment
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_resize_segment()
> .. index:: resize segment
> -.. index:: rtems_region_resize_segment
> -
> -.. _rtems_region_resize_segment:
> -
> -REGION_RESIZE_SEGMENT - Change size of a segment
> -------------------------------------------------
> -
> -CALLING SEQUENCE:
> - .. code-block:: c
> -
> - rtems_status_code rtems_region_resize_segment(
> - rtems_id id,
> - void *segment,
> - uintptr_t new_size,
> - uintptr_t *old_size
> - );
> -
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_SUCCESSFUL``
> - - segment obtained successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``segment`` is NULL
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``old_size`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> - * - ``RTEMS_INVALID_ADDRESS``
> - - segment address not in region
> - * - ``RTEMS_UNSATISFIED``
> - - unable to make segment larger
> -
> -DESCRIPTION:
> - This directive is used to increase or decrease the size of a segment. When
> - increasing the size of a segment, it is possible that there is not memory
> - available contiguous to the segment. In this case, the request is
> - unsatisfied.
> -
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> -
> - If an attempt to increase the size of a segment fails, then the application
> - may want to allocate a new segment of the desired size, copy the contents
> - of the original segment to the new, larger segment and then return the
> - original segment.
> +
> +.. _InterfaceRtemsRegionResizeSegment:
> +
> +rtems_region_resize_segment()
> +-----------------------------
> +
> +Changes the size of the segment.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_resize_segment(
> + rtems_id id,
> + void *segment,
> + uintptr_t size,
> + uintptr_t *old_size
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``segment``
> + This parameter is the begin address of the segment to resize.
> +
> +``size``
> + This parameter is the requested new size of the segment.
> +
> +``old_size``
> + This parameter is the pointer to an `uintptr_t
> + <https://en.cppreference.com/w/c/types/integer>`_ variable. When the
> + directive call is successful, the old size of the segment will be stored in
> + this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +null This directive is used to increase or decrease the size of the ``segment``
stray 'null'
> +of the region specified by ``id``. When increasing the size of a segment, it
> +is possible that there is no memory available contiguous to the segment. In
> +this case, the request is unsatisfied.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``old_size`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The segment was not within the region.
> +
> +:c:macro:`RTEMS_UNSATISFIED`
> + The region was unable to resize the segment.
> +
> +.. rubric:: NOTES:
> +
> +If an attempt to increase the size of a segment fails, then the application may
> +want to allocate a new segment of the desired size, copy the contents of the
> +original segment to the new, larger segment and then return the original
> +segment.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +.. Generated from spec:/rtems/region/if/get-information
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_get_information()
> .. index:: obtain region information
> -.. index:: rtems_region_get_information
>
> -.. _rtems_region_get_information:
> +.. _InterfaceRtemsRegionGetInformation:
> +
> +rtems_region_get_information()
> +------------------------------
> +
> +Gets the region information.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_get_information(
> + rtems_id id,
> + Heap_Information_block *the_info
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``the_info``
> + This parameter is the pointer to a Heap_Information_block variable. When
> + the directive call is successful, the information of the region will be
> + stored in this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive is used to obtain information about the used and free memory in
> +the region specified by ``id``. This is a snapshot at the time of the call. The
> +information will be returned in the structure pointed to by ``the_info``.
>
> -REGION_GET_INFORMATION - Get region information
> ------------------------------------------------
> +.. rubric:: RETURN VALUES:
>
> -CALLING SEQUENCE:
> - .. code-block:: c
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
>
> - rtems_status_code rtems_region_get_information(
> - rtems_id id,
> - Heap_Information_block *the_info
> - );
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``the_info`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
>
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
>
> - * - ``RTEMS_SUCCESSFUL``
> - - information obtained successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``the_info`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> +.. rubric:: NOTES:
>
> -DESCRIPTION:
> - This directive is used to obtain information about the used and free memory
> - in the region specified by ``id``. This is a snapshot at the time
> - of the call. The information will be returned in the structure pointed to
> - by ``the_info``.
> +This is primarily intended as a mechanism to obtain a diagnostic information.
> +This method forms am O(n) scan of the free and an O(n) scan of the used blocks
> +in the region to calculate the information provided. Given that the execution
> +time is driven by the number of used and free blocks, it can take a
> +non-deterministic time to execute.
>
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> +To get only the free information of the region use
> +:ref:`InterfaceRtemsRegionGetFreeInformation`.
>
> - This is primarily intended as a mechanism to obtain a diagnostic information.
> - This method forms am O(n) scan of the free and an O(n) scan of the
> - used blocks in the region to calculate the information provided. Given that
> - the execution time is driven by the number of used and free blocks, it can
> - take a non-deterministic time to execute.
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +.. Generated from spec:/rtems/region/if/get-free-information
>
> .. raw:: latex
>
> - \clearpage
> + \clearpage
>
> +.. index:: rtems_region_get_free_information()
> .. index:: obtain region information on free blocks
> -.. index:: rtems_region_get_free_information
> -
> -.. _rtems_region_get_free_information:
> -
> -REGION_GET_FREE_INFORMATION - Get region free information
> ----------------------------------------------------------
> -
> -CALLING SEQUENCE:
> - .. code-block:: c
> -
> - rtems_status_code rtems_region_get_free_information(
> - rtems_id id,
> - Heap_Information_block *the_info
> - );
> -
> -DIRECTIVE STATUS CODES:
> - .. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_SUCCESSFUL``
> - - information obtained successfully
> - * - ``RTEMS_INVALID_ADDRESS``
> - - ``the_info`` is NULL
> - * - ``RTEMS_INVALID_ID``
> - - invalid region id
> -
> -DESCRIPTION:
> - This directive is used to obtain information about the free memory
> - in the region specified by ``id``. This is a snapshot at the time
> - of the call. The information will be returned in the structure pointed to
> - by ``the_info``.
> -
> -NOTES:
> - This directive will obtain the allocator mutex and may cause the calling
> - task to be preempted.
> -
> - This uses the same structure to return information as the
> - ``rtems_region_get_information`` directive but does not fill in the
> - used information.
> -
> - This is primarily intended as a mechanism to obtain a diagnostic information.
> - This method forms am O(n) scan of the free in the region to calculate
> - the information provided. Given that the execution time is driven by
> - the number of used and free blocks, it can take a non-deterministic
> - time to execute. Typically, there are many used blocks and a much smaller
> - number of used blocks making a call to this directive less expensive than
> - a call to ``rtems_region_get_information``.
> +
> +.. _InterfaceRtemsRegionGetFreeInformation:
> +
> +rtems_region_get_free_information()
> +-----------------------------------
> +
> +Gets the region free information.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_get_free_information(
> + rtems_id id,
> + Heap_Information_block *the_info
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``the_info``
> + This parameter is the pointer to a Heap_Information_block variable. When
> + the directive call is successful, the free information of the region will
> + be stored in this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive is used to obtain information about the free memory in the
> +region specified by ``id``. This is a snapshot at the time of the call. The
> +information will be returned in the structure pointed to by ``the_info``.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``the_info`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +.. rubric:: NOTES:
> +
> +null This directive uses the same structure to return information as the
ditto
rest looks fine, check in with the null's fixed.
> +:ref:`InterfaceRtemsRegionGetInformation` directive but does not fill in the
> +used information. This is primarily intended as a mechanism to obtain a
> +diagnostic information. This method forms am O(n) scan of the free in the
> +region to calculate the information provided. Given that the execution time is
> +driven by the number of used and free blocks, it can take a non-deterministic
> +time to execute. Typically, there are many used blocks and a much smaller
> +number of used blocks making a call to this directive less expensive than a
> +call to :ref:`InterfaceRtemsRegionGetInformation`.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> +
> +.. Generated from spec:/rtems/region/if/get-segment-size
> +
> +.. raw:: latex
> +
> + \clearpage
> +
> +.. index:: rtems_region_get_segment_size()
> +.. index:: get size of segment
> +
> +.. _InterfaceRtemsRegionGetSegmentSize:
> +
> +rtems_region_get_segment_size()
> +-------------------------------
> +
> +Gets the size of the region segment.
> +
> +.. rubric:: CALLING SEQUENCE:
> +
> +.. code-block:: c
> +
> + rtems_status_code rtems_region_get_segment_size(
> + rtems_id id,
> + void *segment,
> + uintptr_t *size
> + );
> +
> +.. rubric:: PARAMETERS:
> +
> +``id``
> + This parameter is the region identifier.
> +
> +``segment``
> + This parameter is the begin address of the segment.
> +
> +``size``
> + This parameter is the pointer to a `uintptr_t
> + <https://en.cppreference.com/w/c/types/integer>`_ variable. When the
> + directive call is successful, the size of the segment in bytes will be
> + stored in this variable.
> +
> +.. rubric:: DESCRIPTION:
> +
> +This directive obtains the size in bytes of the segment specified by
> +``segment`` of the region specified by ``id`` in ``size``.
> +
> +.. rubric:: RETURN VALUES:
> +
> +:c:macro:`RTEMS_SUCCESSFUL`
> + The requested operation was successful.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``segment`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The ``size`` parameter was `NULL
> + <https://en.cppreference.com/w/c/types/NULL>`_.
> +
> +:c:macro:`RTEMS_INVALID_ID`
> + There was no region associated with the identifier specified by ``id``.
> +
> +:c:macro:`RTEMS_INVALID_ADDRESS`
> + The segment was not within the region.
> +
> +.. rubric:: NOTES:
> +
> +The actual length of the allocated segment may be larger than the requested
> +size because a segment size is always a multiple of the region's page size.
> +
> +.. rubric:: CONSTRAINTS:
> +
> +The following constraints apply to this directive:
> +
> +* The directive may be called from within device driver initialization context.
> +
> +* The directive may be called from within task context.
> +
> +* The directive may obtain and release the object allocator mutex. This may
> + cause the calling task to be preempted.
> diff --git a/c-user/region/introduction.rst b/c-user/region/introduction.rst
> index 418e397..8075a84 100644
> --- a/c-user/region/introduction.rst
> +++ b/c-user/region/introduction.rst
> @@ -1,29 +1,63 @@
> .. SPDX-License-Identifier: CC-BY-SA-4.0
>
> +.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
> .. Copyright (C) 1988, 2008 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:/rtems/region/if/group
> +
> +.. _RegionManagerIntroduction:
> +
> Introduction
> ============
>
> -The region manager provides facilities to dynamically allocate memory in
> -variable sized units. The directives provided by the region manager are:
> +.. The following list was generated from:
> +.. spec:/rtems/region/if/create
> +.. spec:/rtems/region/if/ident
> +.. spec:/rtems/region/if/delete
> +.. spec:/rtems/region/if/extend
> +.. spec:/rtems/region/if/get-segment
> +.. spec:/rtems/region/if/return-segment
> +.. spec:/rtems/region/if/resize-segment
> +.. spec:/rtems/region/if/get-information
> +.. spec:/rtems/region/if/get-free-information
> +.. spec:/rtems/region/if/get-segment-size
> +
> +The Region Manager provides facilities to dynamically allocate memory in
> +variable sized units. The directives provided by the Region Manager are:
>
> -- :ref:`rtems_region_create`
> +* :ref:`InterfaceRtemsRegionCreate` - Creates a region.
>
> -- :ref:`rtems_region_ident`
> +* :ref:`InterfaceRtemsRegionIdent` - Identifies a region by the object name.
>
> -- :ref:`rtems_region_delete`
> +* :ref:`InterfaceRtemsRegionDelete` - Deletes the region.
>
> -- :ref:`rtems_region_extend`
> +* :ref:`InterfaceRtemsRegionExtend` - Extends the region.
>
> -- :ref:`rtems_region_get_segment`
> +* :ref:`InterfaceRtemsRegionGetSegment` - Gets a segment from the region.
>
> -- :ref:`rtems_region_return_segment`
> +* :ref:`InterfaceRtemsRegionReturnSegment` - Returns the segment to the region.
>
> -- :ref:`rtems_region_get_segment_size`
> +* :ref:`InterfaceRtemsRegionResizeSegment` - Changes the size of the segment.
>
> -- :ref:`rtems_region_resize_segment`
> +* :ref:`InterfaceRtemsRegionGetInformation` - Gets the region information.
>
> -- :ref:`rtems_region_get_information`
> +* :ref:`InterfaceRtemsRegionGetFreeInformation` - Gets the region free
> + information.
>
> -- :ref:`rtems_region_get_free_information`
> +* :ref:`InterfaceRtemsRegionGetSegmentSize` - Gets the size of the region
> + segment.
> --
> 2.26.2
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list