mirror of
https://git.rtems.org/rtems-docs/
synced 2025-07-04 14:14:06 +08:00
region_manager.rst: Add docs for region get info and get free info
closes #3751.
This commit is contained in:
parent
01be51383f
commit
43e0d78453
@ -29,6 +29,10 @@ variable sized units. The directives provided by the region manager are:
|
|||||||
|
|
||||||
- rtems_region_resize_segment_ - Change size of a segment
|
- rtems_region_resize_segment_ - Change size of a segment
|
||||||
|
|
||||||
|
- rtems_region_get_information_ - Get region information
|
||||||
|
|
||||||
|
- rtems_region_get_free_information_ - Get region free information
|
||||||
|
|
||||||
Background
|
Background
|
||||||
==========
|
==========
|
||||||
|
|
||||||
@ -668,3 +672,103 @@ NOTES:
|
|||||||
may want to allocate a new segment of the desired size, copy the contents
|
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
|
of the original segment to the new, larger segment and then return the
|
||||||
original segment.
|
original segment.
|
||||||
|
|
||||||
|
.. raw:: latex
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
|
||||||
|
.. index:: obtain region information
|
||||||
|
.. index:: rtems_region_get_information
|
||||||
|
|
||||||
|
.. _rtems_region_get_information:
|
||||||
|
|
||||||
|
REGION_GET_INFORMATION - Get region information
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
CALLING SEQUENCE:
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
rtems_status_code rtems_region_get_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 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``.
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
This directive will obtain the allocator mutex and may cause the calling
|
||||||
|
task to be preempted.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
.. raw:: latex
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
|
||||||
|
.. 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``.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user