This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 629052719d Publishing docs: 6b9b216ff303e6ad644b69ffd579c70af1cd2c1f
(web: f00550751a61b12a64aa21e37c37970b114408b4)
629052719d is described below
commit 629052719d14964b4b422c9f7e68d15a6df94d1b
Author: Xiang Xiao <[email protected]>
AuthorDate: Thu Nov 5 00:09:09 2026 +0000
Publishing docs: 6b9b216ff303e6ad644b69ffd579c70af1cd2c1f (web:
f00550751a61b12a64aa21e37c37970b114408b4)
---
.../applications/mlearning/cmsis-nn/index.rst.txt | 2 +-
.../mlearning/tflite-micro/index.rst.txt | 2 +-
.../latest/_sources/applications/nsh/nsh.rst.txt | 2 +
.../applications/system/flatbuffers/index.rst.txt | 2 +-
.../guides/chip-specific/stm32_nucleo.rst.txt | 23 ++++++++
.../guides/chip-specific/stm32_ports.rst.txt | 24 +++++++++
.../os/drivers/character/leds/ws2812.rst.txt | 13 -----
.../_sources/os/drivers/special/syslog.rst.txt | 38 +++++++++++++
.../_sources/os/filesystem/file_permission.rst.txt | 28 ++++++----
content/docs/latest/_sources/os/memory/iob.rst.txt | 26 +++++++++
.../latest/_sources/os/scheduling/wqueue.rst.txt | 24 +++++++++
.../arm/stm32u0/boards/nucleo-u083rc/index.rst.txt | 2 +-
.../platforms/sim/sim/boards/sim/index.rst.txt | 60 +++++++++++++++++++++
.../reference/user/03_task_control.rst.txt | 5 +-
.../_sources/reference/user/07_signals.rst.txt | 10 +++-
.../_sources/reference/user/11_network.rst.txt | 4 +-
.../applications/mlearning/cmsis-nn/index.html | 2 +-
.../applications/mlearning/tflite-micro/index.html | 2 +-
content/docs/latest/applications/nsh/nsh.html | 4 ++
.../applications/system/flatbuffers/index.html | 2 +-
content/docs/latest/genindex.html | 20 +++++--
.../latest/guides/chip-specific/stm32_nucleo.html | 38 ++++++++++++-
.../latest/guides/chip-specific/stm32_ports.html | 25 +++++++++
.../latest/guides/programs/fully_linked_elf.html | 2 +-
.../guides/programs/partially_linked_elf.html | 2 +-
content/docs/latest/objects.inv | Bin 261859 -> 262031 bytes
.../latest/os/drivers/character/leds/index.html | 1 -
.../latest/os/drivers/character/leds/ws2812.html | 10 ----
content/docs/latest/os/drivers/special/index.html | 1 +
content/docs/latest/os/drivers/special/syslog.html | 33 ++++++++++++
.../docs/latest/os/filesystem/file_permission.html | 27 ++++++----
content/docs/latest/os/memory/iob.html | 26 +++++++++
content/docs/latest/os/scheduling/wqueue.html | 35 ++++++++++++
.../boards/pimoroni-pico-plus-2-w/index.html | 2 +-
.../arm/stm32c0/boards/nucleo-c071rb/index.html | 60 ++++++++++++++-------
.../arm/stm32c5/boards/nucleo-c562re/index.html | 60 +++++++--------------
.../arm/stm32f0/boards/nucleo-f072rb/index.html | 60 +++++++--------------
.../stm32f0/boards/stm32f051-discovery/index.html | 60 +++++++--------------
.../stm32f0/boards/stm32f072-discovery/index.html | 60 +++++++--------------
.../arm/stm32u0/boards/nucleo-u083rc/index.html | 2 +-
.../arm64/zynq-mpsoc/boards/zcu111/index.html | 60 ++++++++++++++-------
.../latest/platforms/sim/sim/boards/sim/index.html | 48 +++++++++++++++++
.../latest/reference/user/03_task_control.html | 5 +-
content/docs/latest/reference/user/07_signals.html | 12 +++--
content/docs/latest/reference/user/11_network.html | 4 +-
content/docs/latest/searchindex.js | 2 +-
46 files changed, 658 insertions(+), 272 deletions(-)
diff --git
a/content/docs/latest/_sources/applications/mlearning/cmsis-nn/index.rst.txt
b/content/docs/latest/_sources/applications/mlearning/cmsis-nn/index.rst.txt
index e5bd176c70..6987215be0 100644
--- a/content/docs/latest/_sources/applications/mlearning/cmsis-nn/index.rst.txt
+++ b/content/docs/latest/_sources/applications/mlearning/cmsis-nn/index.rst.txt
@@ -11,7 +11,7 @@ tree (DSP plus NN) for NNABLA.
Enable with ``CONFIG_MLEARNING_CMSIS_NN``. The Makefile and CMake build
download a pinned CMSIS-NN commit
-(``72e1ebf623ab1660a3e14e4e36fdcddce46f1991``) and compile:
+(``18bb0fd4ecea4b17a5a3c444c8d3a8cf28b1e68f``) and compile:
- Activation functions
- Basic math
diff --git
a/content/docs/latest/_sources/applications/mlearning/tflite-micro/index.rst.txt
b/content/docs/latest/_sources/applications/mlearning/tflite-micro/index.rst.txt
index 037131f2f0..6f2d25e498 100644
---
a/content/docs/latest/_sources/applications/mlearning/tflite-micro/index.rst.txt
+++
b/content/docs/latest/_sources/applications/mlearning/tflite-micro/index.rst.txt
@@ -7,7 +7,7 @@ running ``.tflite`` models on memory-constrained targets. NuttX
integrates
it from ``apps/mlearning/tflite-micro``.
The build downloads a pinned TFLM snapshot
-(``cfa4c91d1b36c37c7c104b9c664615e59f1abfe3``, 24 February 2024) from
+(``fd2a85dfb3bedac81920e8667565b1044c6b6a43``, 4 November 2026) from
https://github.com/tensorflow/tflite-micro and applies NuttX patches that
add INT8-only operator registrations and an ``extern "C"`` entry point for
the hello-world example.
diff --git a/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
b/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
index 1fb8a40000..501c34a04b 100644
--- a/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
+++ b/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
@@ -242,6 +242,8 @@ Built-In Variables
``$?`` The exit status of the last simple command. |br|
On backgrounded commands, this variable holds only |br|
the result of spawning the background command.
+``$!`` The PID of the last command started in the |br|
+ background.
====== ====================================================
Current Working Directory
diff --git
a/content/docs/latest/_sources/applications/system/flatbuffers/index.rst.txt
b/content/docs/latest/_sources/applications/system/flatbuffers/index.rst.txt
index a7ad75b037..ee9762e58a 100644
--- a/content/docs/latest/_sources/applications/system/flatbuffers/index.rst.txt
+++ b/content/docs/latest/_sources/applications/system/flatbuffers/index.rst.txt
@@ -3,7 +3,7 @@
=============================
``apps/system/flatbuffers`` vendors Google `FlatBuffers
-<https://github.com/google/flatbuffers>`_ ``v23.5.26`` and applies
+<https://github.com/google/flatbuffers>`_ ``v25.9.23`` and applies
``flatbuffers.patch``. TensorFlow Lite Micro uses the headers to read
``.tflite`` model schemas.
diff --git
a/content/docs/latest/_sources/guides/chip-specific/stm32_nucleo.rst.txt
b/content/docs/latest/_sources/guides/chip-specific/stm32_nucleo.rst.txt
index 635ca332b5..f5a04b9220 100644
--- a/content/docs/latest/_sources/guides/chip-specific/stm32_nucleo.rst.txt
+++ b/content/docs/latest/_sources/guides/chip-specific/stm32_nucleo.rst.txt
@@ -62,8 +62,31 @@ I2C ``CONFIG_I2C_DRIVER`` ``/dev/i2cN``
for every enabled
The file systems are not mounted when ``CONFIG_DISABLE_MOUNTPOINT`` is
set. The IWDG uses ``STM32_LSI_FREQUENCY`` from the board ``board.h``.
+Timers
+------
+
+Timer and oneshot devices are registered from one option per instance,
+N being the TIM or LPTIM instance number:
+
+============================================ ===================
+Option Device
+============================================ ===================
+``CONFIG_BOARD_STM32_COMMON_TIMn_TIMER`` ``/dev/timerN``
+``CONFIG_BOARD_STM32_COMMON_TIMn_ONESHOT`` ``/dev/oneshotN``
+``CONFIG_BOARD_STM32_COMMON_LPTIMn_TIMER`` ``/dev/lptimerN``
+``CONFIG_BOARD_STM32_COMMON_LPTIMn_ONESHOT`` ``/dev/lponeshotN``
+============================================ ===================
+
+The options need ``CONFIG_TIMER`` or ``CONFIG_ONESHOT`` (a TIM oneshot
+also ``CONFIG_STM32_ONESHOT``) and the ``CONFIG_STM32_TIMn`` or
+``CONFIG_STM32_LPTIMn`` instance. An instance is either a timer or a
+oneshot. A TIM oneshot counts in microseconds. An LPTIM counts on its
+kernel clock, ``STM32_LPTIMn_CLKIN`` in the board ``board.h``.
+
Rules for boards:
- Do not repeat any of the features above in the board directory.
- Board-independent initialization is added to
``stm32_common_initialize()``, not to individual boards.
+- ``board.h`` defines ``STM32_LPTIMn_CLKIN`` for every LPTIM instance of
+ the chip.
diff --git
a/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
b/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
index 21f88a369d..8399b74b52 100644
--- a/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
+++ b/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
@@ -1120,6 +1120,30 @@ size macros must use ``STM32_`` prefix (not
``STM32F7_``, ``STM32H5_``, etc.).
**Per-family hardware register definitions** (in
``arch/arm/src/<family>/hardware/``)
must use ``STM32_XXX_`` (not ``STM32L4_XXX_``, ``STM32WB4_XXX_``, etc.).
+Board clock configuration convention
+------------------------------------
+
+The board ``board.h`` configures the clock tree and the family RCC code
+writes what the board defines. All families use the same interface:
+
+* Register field values, built from the field macros of the family RCC
+ header: ``STM32_PLLCFG_*`` for the PLLs and ``STM32_RCC_<REG>_<FIELD>`` for
+ the other fields, for example::
+
+ #define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(4)
+ #define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd2
+
+* Clock frequencies matching those fields: ``STM32_SYSCLK_FREQUENCY``,
+ ``STM32_HCLK_FREQUENCY``, ``STM32_PCLKn_FREQUENCY`` and the other
+ ``STM32_<clock>_FREQUENCY`` macros, as constants or expressions of other
+ frequencies.
+* Peripheral input clocks: ``STM32_TIMn_CLKIN`` and ``STM32_LPTIMn_CLKIN``
+ (see above), one for every instance of the chip.
+
+The board does not pass numeric divisors for the RCC code to convert into
+register fields. The RCC code keeps reserved register bits at their reset
+value.
+
Next steps
==========
diff --git
a/content/docs/latest/_sources/os/drivers/character/leds/ws2812.rst.txt
b/content/docs/latest/_sources/os/drivers/character/leds/ws2812.rst.txt
index 806d84dcd1..eba2d7f5f2 100644
--- a/content/docs/latest/_sources/os/drivers/character/leds/ws2812.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/character/leds/ws2812.rst.txt
@@ -38,19 +38,6 @@ Upper half configuration resides in :menuselection:`Device
Drivers --> LED suppo
Some of the configuration options are described here - mostly for the purpose
of helping
with implementation of lower half drivers and board code.
-WS2812 driver variant
----------------------
-
-Allows user to choose between old-style SPI driver and driver split into upper
and
-lower-half. The old style SPI driver could only drive the LEDs using a SPI
interface,
-the new style can use any hardware supported by the lower half (including SPI,
-despite the naming.)
-
-When implementing lower half driver for new architecture, make the appropriate
-Kconfig option depend on :menuselection:`WS2812_NON_SPI_DRIVER`
-
-The old-style driver and its associated options are not described in this
document.
-
Number of ws2812s connected
---------------------------
diff --git a/content/docs/latest/_sources/os/drivers/special/syslog.rst.txt
b/content/docs/latest/_sources/os/drivers/special/syslog.rst.txt
index 0532c9f235..2e4897822f 100644
--- a/content/docs/latest/_sources/os/drivers/special/syslog.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/special/syslog.rst.txt
@@ -275,6 +275,42 @@ In nsh, you can view/set the syslog channel status through
the setlogmask comman
- ``setlogmask <enable/disable> <channel>``. Enable or disable the
specified channel.
+SYSLOG Channel Priorities
+-------------------------
+
+With ``CONFIG_SYSLOG_DROPMASK``, each channel can drop the messages of
+some priorities. The field ``sc_dropmask`` of ``struct syslog_channel_s``
+is an OR of ``LOG_MASK()`` values: the channel does not write the
+messages of these priorities. Zero (the value of a channel that does not
+set the field) means that the channel writes the messages of all
+priorities.
+
+``setlogmask()`` selects the messages for all channels. ``sc_dropmask``
+selects them for one channel. For example, the console can show only
+the urgent messages while the RAMLOG keeps all of them.
+
+``CONFIG_SYSLOG_CONSOLE_LEVEL`` sets ``sc_dropmask`` of the console
+channels (``CONFIG_SYSLOG_DEFAULT`` and ``CONFIG_SYSLOG_CONSOLE``).
+These channels write only the messages of this priority and of the more
+urgent priorities: 0 is ``LOG_EMERG``, 3 is ``LOG_ERR``, 7 is
+``LOG_DEBUG``. With 7 (the default), the console writes all messages.
+The assertion and crash reports use ``LOG_ALERT`` and ``LOG_EMERG``, so
+a value of 1 or more keeps them on the console.
+
+Output that does not come from ``syslog()`` has no priority, and all
+channels write it. This output is:
+
+- ``syslog_write()`` (for example a write to ``/dev/log`` with
+ ``CONFIG_SYSLOG_CHARDEV``, or the console output with
+ ``CONFIG_CONSOLE_SYSLOG``).
+
+- The output that the interrupt buffer (``CONFIG_SYSLOG_INTBUFFER``)
+ saved. With the interrupt buffer, the messages from interrupt
+ handlers lose their priority.
+
+Kernel code that writes the text of a message with ``syslog_write()``
+can call ``syslog_write_priority()`` instead, to give its priority.
+
Interrupt Level SYSLOG Output
-----------------------------
@@ -680,6 +716,8 @@ Core Channel Settings
- ``CONFIG_SYSLOG_MAX_CHANNELS``: Set the maximum number of syslog channels
(default: 1 in the architecture, configurable per platform).
- ``CONFIG_SYSLOG_DEFAULT``: Enable the **default channel** (maps to UART
output).
- ``CONFIG_SYSLOG_CRLF``: (Shared) Applies line ending conversion to all
channel output.
+- ``CONFIG_SYSLOG_DROPMASK``: Each channel can drop messages by priority
(default: n). See `SYSLOG Channel Priorities`_.
+- ``CONFIG_SYSLOG_CONSOLE_LEVEL``: The lowest message priority that the
console channels write (default: 7, all messages). See `SYSLOG Channel
Priorities`_.
Individual Channel & Destination Options
----------------------------------------
diff --git a/content/docs/latest/_sources/os/filesystem/file_permission.rst.txt
b/content/docs/latest/_sources/os/filesystem/file_permission.rst.txt
index 93375a67ff..01923b7e6b 100644
--- a/content/docs/latest/_sources/os/filesystem/file_permission.rst.txt
+++ b/content/docs/latest/_sources/os/filesystem/file_permission.rst.txt
@@ -37,13 +37,17 @@ Helpers
when ``CONFIG_FS_PERMISSION`` is disabled.
``inode_checkpathperm``
- Require ``X_OK`` on every ancestor of an inode, and on the inode itself
- when it is a pseudo directory or a mountpoint (directory search /
+ Require ``X_OK`` on every ancestor of an inode (directory search /
traverse). If ``amode`` is non-zero, also require that access on the
inode. Takes the inode tree read lock unless ``INODE_CHECK_LOCKED`` is
set (caller already holds ``inode_lock`` / ``inode_rlock``). Empty
macro returning ``0`` when ``CONFIG_FS_PERMISSION`` is disabled.
+``INODE_PATH_AMODE``
+ The ``amode`` for the inode that ``inode_find`` returns: ``X_OK`` on a
+ mountpoint when the path goes into the volume, and nothing on the last
+ path component.
+
``inode_checkopenperm``
Validate that the inode supports the requested open access, then apply
mode checks for non-mountpoint inodes.
@@ -78,15 +82,20 @@ Applying the mount directory's mode bits as file open modes
would require
read/write on the mount directory merely to open a file beneath it.
Traverse is separate: callers use ``inode_checkpathperm`` so parent
-directories and the mountpoint itself still require ``X_OK``.
+directories, and the mountpoint for a path that goes into the volume, still
+require ``X_OK``. As POSIX specifies, the last path component needs no search
+permission: a directory with no execute bit can still be found with ``stat()``
+and changed with ``chmod()``. ``chdir()`` is different: it needs search
+permission on the directory itself.
Typical order after a successful ``inode_find``:
-1. ``inode_checkpathperm(inode, 0, 0)`` — search permission on the path
- prefix (and on the mountpoint when entering a volume). Call sites that
- already hold the tree lock pass ``INODE_CHECK_LOCKED``; mount and
- pseudoFS create/remove may pass a non-zero ``amode`` (for example
- ``W_OK``) to combine traverse and target checks in one call.
+1. ``inode_checkpathperm(inode, INODE_PATH_AMODE(&desc), 0)`` — search
+ permission on the path prefix (and on the mountpoint when entering a
+ volume). Call sites that already hold the tree lock pass
+ ``INODE_CHECK_LOCKED``; mount and pseudoFS create/remove pass
+ ``W_OK | X_OK`` on the directory to combine traverse and target checks in
+ one call.
2. Operation-specific checks — ``inode_checkopenperm``, or the
filesystem's own methods for paths inside a mount.
@@ -115,7 +124,8 @@ Where the checks run
``inode_rlock`` unless the caller already holds the tree lock
(``INODE_CHECK_LOCKED``).
* Inside ``inode_reserve`` / ``inode_remove`` for pseudoFS create and remove
- (ancestor ``X_OK`` and parent ``W_OK`` in one call, under ``inode_lock``).
+ (ancestor and parent ``X_OK`` and parent ``W_OK`` in one call, under
+ ``inode_lock``).
Who enforces what
-----------------
diff --git a/content/docs/latest/_sources/os/memory/iob.rst.txt
b/content/docs/latest/_sources/os/memory/iob.rst.txt
index 54c7f266db..e238ea157e 100644
--- a/content/docs/latest/_sources/os/memory/iob.rst.txt
+++ b/content/docs/latest/_sources/os/memory/iob.rst.txt
@@ -167,8 +167,11 @@ Public Function Prototypes
- :c:func:`iob_free_queue_qentry()`
- :c:func:`iob_get_queue_size()`
- :c:func:`iob_copyin()`
+ - :c:func:`iob_copyin_iov()`
- :c:func:`iob_trycopyin()`
+ - :c:func:`iob_trycopyin_iov()`
- :c:func:`iob_copyout()`
+ - :c:func:`iob_copyout_iov()`
- :c:func:`iob_clone()`
- :c:func:`iob_clone_partial()`
- :c:func:`iob_concat()`
@@ -255,6 +258,14 @@ Public Function Prototypes
the I/O buffer chain, starting at ``offset``, extending the chain
as necessary.
+.. c:function:: int iob_copyin_iov(FAR struct iob_s *iob, \
+ FAR const struct iovec *iov, unsigned int iovlen, \
+ int offset, bool throttled);
+
+ Copy data from an ``iov`` array of user buffers into the I/O
+ buffer chain, starting at ``offset``, extending the chain as
+ necessary.
+
.. c:function:: int iob_trycopyin(FAR struct iob_s *iob, FAR const uint8_t
*src, \
unsigned int len, unsigned int offset, bool throttled);
@@ -262,6 +273,14 @@ Public Function Prototypes
the I/O buffer chain, starting at ``offset``, extending the chain
as necessary BUT without waiting if buffers are not available.
+.. c:function:: int iob_trycopyin_iov(FAR struct iob_s *iob, \
+ FAR const struct iovec *iov, unsigned int iovlen, \
+ int offset, bool throttled);
+
+ Copy data from an ``iov`` array of user buffers into the I/O
+ buffer chain, starting at ``offset``, extending the chain as
+ necessary BUT without waiting if buffers are not available.
+
.. c:function:: int iob_copyout(FAR uint8_t *dest, FAR const struct iob_s
*iob, \
unsigned int len, unsigned int offset);
@@ -269,6 +288,13 @@ Public Function Prototypes
buffer starting at ``offset`` in the I/O buffer, returning that
actual number of bytes copied out.
+.. c:function:: int iob_copyout_iov(FAR const struct iovec *iov, unsigned int
iovlen, \
+ FAR const struct iob_s *iob, unsigned int len, \
+ int offset);
+
+ Copy data ``len`` bytes of data from the I/O buffer chain
+ starting at ``offset`` into the user ``iov`` array of buffers.
+
.. c:function:: int iob_clone(FAR struct iob_s *iob1, FAR struct iob_s *iob2, \
bool throttled, bool block);
diff --git a/content/docs/latest/_sources/os/scheduling/wqueue.rst.txt
b/content/docs/latest/_sources/os/scheduling/wqueue.rst.txt
index c5277a3d61..cb390d6365 100644
--- a/content/docs/latest/_sources/os/scheduling/wqueue.rst.txt
+++ b/content/docs/latest/_sources/os/scheduling/wqueue.rst.txt
@@ -275,6 +275,20 @@ Work Queue Interfaces
:return: Zero on success, ``-EINVAL`` for an invalid or predefined
queue, or ``-EDEADLK`` when called by one of the queue's workers.
+.. c:function:: bool work_queue_in_queue(FAR struct kwork_wqueue_s *wqueue)
+
+ Report whether the caller runs on one of the queue's worker threads.
+ Kernel only.
+
+ :return: ``true`` if the caller is a worker of ``wqueue``.
+
+.. c:function:: void work_queue_dispatch(FAR struct kwork_wqueue_s *wqueue)
+
+ Run the expired work of ``wqueue`` on the calling thread. A callback
+ that waits for a result produced by another work item of the same
+ queue uses this to let that item run. Does nothing when the caller is
+ not one of the queue's workers. Kernel only.
+
.. c:function:: int work_queue_wq(FAR struct kwork_wqueue_s *wqueue, \
FAR struct work_s *work, worker_t worker, FAR void *arg, \
clock_t delay)
@@ -339,6 +353,16 @@ Work Queue Interfaces
:return: The worker priority on success or a negated errno on failure.
+.. c:function:: int work_queue_setpriority_wq( \
+ FAR struct kwork_wqueue_s *wqueue, int priority)
+
+ Set the scheduling priority of every worker of a custom queue.
+ ``work_queue_setpriority(qid, priority)`` does the same for ``HPWORK``
+ or ``LPWORK``. Kernel only.
+
+ :return: Zero on success or ``-EINVAL`` for an invalid queue or
+ priority.
+
.. c:function:: int work_signal(int qid)
Signal the worker thread to process the work
diff --git
a/content/docs/latest/_sources/platforms/arm/stm32u0/boards/nucleo-u083rc/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/stm32u0/boards/nucleo-u083rc/index.rst.txt
index acaff4e47f..339f09b873 100644
---
a/content/docs/latest/_sources/platforms/arm/stm32u0/boards/nucleo-u083rc/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/stm32u0/boards/nucleo-u083rc/index.rst.txt
@@ -49,7 +49,7 @@ Enabled features:
- Quadrature encoder on TIM3 (PA6/PA7, D12/D11)
-- Timer driver on TIM6 (/dev/timer0)
+- Timer driver on TIM6 (/dev/timer6)
- IWDG and WWDG watchdogs
diff --git
a/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
b/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
index 94a2583796..b2e3cfb35b 100644
--- a/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
@@ -1163,6 +1163,66 @@ Of course, this configuration can only be used in
environments that support X11!
-CONFIG_EXAMPLES_NXTERM=n
+CONFIG_EXAMPLES_NXTERM=y
+nxcamera
+--------
+
+This configuration tests the V4L2 drivers. The sim camera driver
+(``CONFIG_SIM_CAMERA``) opens the V4L2 capture devices of the host and
+registers each one as ``/dev/videoN`` in the simulator, and ``nxcamera``
+streams frames from such a device to the framebuffer or to a file.
+
+**Capture**
+
+A host without a camera can use the ``v4l2loopback`` module, fed with a test
+pattern by FFmpeg:
+
+.. code:: console
+
+ $ sudo modprobe v4l2loopback
+ $ ffmpeg -re -f lavfi -i testsrc=size=640x480:rate=30 \
+ -pix_fmt yuv420p -f v4l2 /dev/video0
+
+To write ten frames to a file on the host, enable ``CONFIG_FS_HOSTFS`` and
+``CONFIG_SIM_HOSTFS`` and run:
+
+.. code:: console
+
+ nsh> mount -t hostfs -o fs=/tmp /host
+ nsh> nxcamera
+ nxcamera> input /dev/video0
+ nxcamera> output /host/frames.yuv 10
+ nxcamera> stream 640 480 30 YU12
+ nxcamera> q
+
+``frames.yuv`` then holds ten 640x480 YUV 4:2:0 frames.
+
+**Memory-to-memory decoding**
+
+The sim decoder (``CONFIG_SIM_VIDEO_DECODER``) is a V4L2 memory-to-memory
+device, ``/dev/video1`` by default, that decodes H.264 with OpenH264. On top of
+this configuration it needs:
+
+* ``CONFIG_VIDEOUTILS_OPENH264`` and ``CONFIG_SIM_VIDEO_DECODER``
+* ``CONFIG_HAVE_CXX`` and ``CONFIG_HAVE_CXXINITIALIZE``, for the C++ runtime
+ OpenH264 uses (the default minimal C++ library is enough)
+* ``CONFIG_SYSTEM_NXCODEC``, ``CONFIG_FS_HOSTFS`` and ``CONFIG_SIM_HOSTFS``
+* ``CONFIG_NSH_MAXARGUMENTS=16``, for the ``nxcodec`` command line
+
+Create a stream on the host:
+
+.. code:: console
+
+ $ ffmpeg -f lavfi -i testsrc=size=320x240:rate=30 -t 2 -c:v libx264 \
+ -profile:v baseline -pix_fmt yuv420p -f h264 /tmp/t.h264
+
+and decode it in the simulator to YUV 4:2:0 frames:
+
+.. code:: console
+
+ nsh> mount -t hostfs -o fs=/tmp /host
+ nsh> cd /host
+ nsh> nxcodec -d /dev/video1 -s 320x240 -f H264 -i t.h264 -f YU12 -o o.yuv
+
nxdoom
------
diff --git
a/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
b/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
index b133e3f68e..fb8dd1a620 100644
--- a/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
+++ b/content/docs/latest/_sources/reference/user/03_task_control.rst.txt
@@ -422,8 +422,9 @@ Functions
.. note:: ``CONFIG_LIBC_MAX_EXITFUNS`` must be larger than 0 to build
``atexit()``, ``on_exit()`` and ``at_quick_exit()``. A C++ ELF
- program (built with ``-fno-use-cxa-atexit``) with a static object in
- a function calls ``atexit()`` too.
+ program (built with ``-fno-use-cxa-atexit``) with a static object
+ calls ``atexit()`` too, so the default is 1 when both ``CONFIG_ELF``
+ and ``CONFIG_HAVE_CXX`` are enabled.
The number of functions is limited only by memory: the first
``CONFIG_LIBC_MAX_EXITFUNS`` entries are in the task information, the
diff --git a/content/docs/latest/_sources/reference/user/07_signals.rst.txt
b/content/docs/latest/_sources/reference/user/07_signals.rst.txt
index d8f396a09d..ae0cadaaec 100644
--- a/content/docs/latest/_sources/reference/user/07_signals.rst.txt
+++ b/content/docs/latest/_sources/reference/user/07_signals.rst.txt
@@ -118,6 +118,9 @@ multi-threaded task group:
- If a task group receives a signal and more than one thread is waiting
on that signal, then one and only one indeterminate thread out of
that waiting group will receive the signal.
+- If the action of the signal is the default action *Abnormal
+ Termination*, all threads of the task group end at once, also the
+ threads that block the signal.
You can mask out that signal using ''sigprocmask()'' (or
''pthread_sigmask()''). That signal will then be effectively disabled
@@ -248,6 +251,9 @@ provided by NuttX:
in the location pointed to by the argument oact. If the argument act is
NULL, signal handling is unchanged by this function call; thus, the call
can be used to inquire about the current handling of a given signal.
+ With ``CONFIG_SIG_DEFAULT``, oact reports ``SIG_DFL`` for a signal at its
+ default action, also when the default action is to ignore the signal
+ (``SIGCHLD``, for example).
When a signal is caught by a signal-catching function installed by the
sigaction() function, a new signal mask is calculated and installed for
@@ -273,8 +279,8 @@ provided by NuttX:
**POSIX Compatibility:** Comparable to the POSIX interface of the same
name. Differences from the POSIX implementation include:
- - There are no default actions so the special value ``SIG_DFL`` is
- treated like ``SIG_IGN``.
+ - Without ``CONFIG_SIG_DEFAULT``, there are no default actions so the
+ special value ``SIG_DFL`` is treated like ``SIG_IGN``.
- All ``sa_flags`` in struct sigaction of act input are ignored (all
treated like ``SA_SIGINFO``). The one exception is if
``CONFIG_SCHED_CHILD_STATUS`` is defined; then ``SA_NOCLDWAIT`` is
diff --git a/content/docs/latest/_sources/reference/user/11_network.rst.txt
b/content/docs/latest/_sources/reference/user/11_network.rst.txt
index 88033b4b83..fc74c5fd7a 100644
--- a/content/docs/latest/_sources/reference/user/11_network.rst.txt
+++ b/content/docs/latest/_sources/reference/user/11_network.rst.txt
@@ -305,8 +305,8 @@ the following paragraphs.
- ``EOPNOTSUPP``. Some bit in the flags argument is inappropriate for
the socket type.
- ``EPIPE``. The local end has been shut down on a connection oriented
- socket. In this case the process will also receive a SIGPIPE unless
- MSG_NOSIGNAL is set.
+ socket, or the peer closed the connection. In this case the process
+ will also receive a SIGPIPE unless MSG_NOSIGNAL is set.
.. c:function:: ssize_t recv(int sockfd, void *buf, size_t len, int flags);
diff --git a/content/docs/latest/applications/mlearning/cmsis-nn/index.html
b/content/docs/latest/applications/mlearning/cmsis-nn/index.html
index 23ada8d346..b03f8c1ea2 100644
--- a/content/docs/latest/applications/mlearning/cmsis-nn/index.html
+++ b/content/docs/latest/applications/mlearning/cmsis-nn/index.html
@@ -214,7 +214,7 @@ TensorFlow Lite Micro uses when <code class="docutils
literal notranslate"><span
tree (DSP plus NN) for NNABLA.</p>
<p>Enable with <code class="docutils literal notranslate"><span
class="pre">CONFIG_MLEARNING_CMSIS_NN</span></code>. The Makefile and CMake
build
download a pinned CMSIS-NN commit
-(<code class="docutils literal notranslate"><span
class="pre">72e1ebf623ab1660a3e14e4e36fdcddce46f1991</span></code>) and
compile:</p>
+(<code class="docutils literal notranslate"><span
class="pre">18bb0fd4ecea4b17a5a3c444c8d3a8cf28b1e68f</span></code>) and
compile:</p>
<ul class="simple">
<li><p>Activation functions</p></li>
<li><p>Basic math</p></li>
diff --git a/content/docs/latest/applications/mlearning/tflite-micro/index.html
b/content/docs/latest/applications/mlearning/tflite-micro/index.html
index cf94108686..1ba59806e8 100644
--- a/content/docs/latest/applications/mlearning/tflite-micro/index.html
+++ b/content/docs/latest/applications/mlearning/tflite-micro/index.html
@@ -223,7 +223,7 @@
running <code class="docutils literal notranslate"><span
class="pre">.tflite</span></code> models on memory-constrained targets. NuttX
integrates
it from <code class="docutils literal notranslate"><span
class="pre">apps/mlearning/tflite-micro</span></code>.</p>
<p>The build downloads a pinned TFLM snapshot
-(<code class="docutils literal notranslate"><span
class="pre">cfa4c91d1b36c37c7c104b9c664615e59f1abfe3</span></code>, 24 February
2024) from
+(<code class="docutils literal notranslate"><span
class="pre">fd2a85dfb3bedac81920e8667565b1044c6b6a43</span></code>, 4 November
2026) from
<a class="reference external"
href="https://github.com/tensorflow/tflite-micro">https://github.com/tensorflow/tflite-micro</a>
and applies NuttX patches that
add INT8-only operator registrations and an <code class="docutils literal
notranslate"><span class="pre">extern</span> <span
class="pre">"C"</span></code> entry point for
the hello-world example.</p>
diff --git a/content/docs/latest/applications/nsh/nsh.html
b/content/docs/latest/applications/nsh/nsh.html
index c0d76b722e..9816f74aa2 100644
--- a/content/docs/latest/applications/nsh/nsh.html
+++ b/content/docs/latest/applications/nsh/nsh.html
@@ -482,6 +482,10 @@ with the next command immediately following the <code
class="docutils literal no
On backgrounded commands, this variable holds only <br/>
the result of spawning the background command.</p></td>
</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">$!</span></code></p></td>
+<td><p>The PID of the last command started in the <br/>
+background.</p></td>
+</tr>
</tbody>
</table>
</section>
diff --git a/content/docs/latest/applications/system/flatbuffers/index.html
b/content/docs/latest/applications/system/flatbuffers/index.html
index aede3d1f80..3321c10433 100644
--- a/content/docs/latest/applications/system/flatbuffers/index.html
+++ b/content/docs/latest/applications/system/flatbuffers/index.html
@@ -292,7 +292,7 @@
<section id="flatbuffers-flatbuffers">
<h1><code class="docutils literal notranslate"><span
class="pre">flatbuffers</span></code> FlatBuffers<a class="headerlink"
href="#flatbuffers-flatbuffers" title="Permalink to this heading"></a></h1>
-<p><code class="docutils literal notranslate"><span
class="pre">apps/system/flatbuffers</span></code> vendors Google <a
class="reference external"
href="https://github.com/google/flatbuffers">FlatBuffers</a> <code
class="docutils literal notranslate"><span class="pre">v23.5.26</span></code>
and applies
+<p><code class="docutils literal notranslate"><span
class="pre">apps/system/flatbuffers</span></code> vendors Google <a
class="reference external"
href="https://github.com/google/flatbuffers">FlatBuffers</a> <code
class="docutils literal notranslate"><span class="pre">v25.9.23</span></code>
and applies
<code class="docutils literal notranslate"><span
class="pre">flatbuffers.patch</span></code>. TensorFlow Lite Micro uses the
headers to read
<code class="docutils literal notranslate"><span
class="pre">.tflite</span></code> model schemas.</p>
<p>Enable <code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSTEM_FLATBUFFERS</span></code>. Include path:
diff --git a/content/docs/latest/genindex.html
b/content/docs/latest/genindex.html
index 77ade2f8da..d3a012242d 100644
--- a/content/docs/latest/genindex.html
+++ b/content/docs/latest/genindex.html
@@ -676,8 +676,12 @@
<li><a href="os/memory/iob.html#c.iob_contig">iob_contig (C function)</a>
</li>
<li><a href="os/memory/iob.html#c.iob_copyin">iob_copyin (C function)</a>
+</li>
+ <li><a href="os/memory/iob.html#c.iob_copyin_iov">iob_copyin_iov (C
function)</a>
</li>
<li><a href="os/memory/iob.html#c.iob_copyout">iob_copyout (C
function)</a>
+</li>
+ <li><a href="os/memory/iob.html#c.iob_copyout_iov">iob_copyout_iov (C
function)</a>
</li>
<li><a href="os/memory/iob.html#c.iob_count">iob_count (C function)</a>
</li>
@@ -690,11 +694,11 @@
<li><a href="os/memory/iob.html#c.iob_free_queue">iob_free_queue (C
function)</a>
</li>
<li><a
href="os/memory/iob.html#c.iob_free_queue_qentry">iob_free_queue_qentry (C
function)</a>
-</li>
- <li><a href="os/memory/iob.html#c.iob_get_queue_size">iob_get_queue_size
(C function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="os/memory/iob.html#c.iob_get_queue_size">iob_get_queue_size
(C function)</a>
+</li>
<li><a href="os/memory/iob.html#c.iob_initialize">iob_initialize (C
function)</a>
</li>
<li><a href="os/memory/iob.html#c.iob_pack">iob_pack (C function)</a>
@@ -714,6 +718,8 @@
<li><a href="os/memory/iob.html#c.iob_tryalloc">iob_tryalloc (C
function)</a>
</li>
<li><a href="os/memory/iob.html#c.iob_trycopyin">iob_trycopyin (C
function)</a>
+</li>
+ <li><a href="os/memory/iob.html#c.iob_trycopyin_iov">iob_trycopyin_iov
(C function)</a>
</li>
<li><a href="glossary.html#term-IOCTL"><strong>IOCTL</strong></a>
</li>
@@ -2284,12 +2290,12 @@
</li>
<li><a
href="os/drivers/character/timers/watchdog.html#c.WDIOC_START">WDIOC_START (C
macro)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a
href="os/drivers/character/timers/watchdog.html#c.WDIOC_STOP">WDIOC_STOP (C
macro)</a>
</li>
<li><a href="glossary.html#term-WDT"><strong>WDT</strong></a>
</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="glossary.html#term-WLAN"><strong>WLAN</strong></a>
</li>
<li><a href="os/scheduling/wqueue.html#c.work_available">work_available
(C function)</a>
@@ -2303,12 +2309,18 @@
<li><a href="os/scheduling/wqueue.html#c.work_queue">work_queue (C
function)</a>
</li>
<li><a
href="os/scheduling/wqueue.html#c.work_queue_create">work_queue_create (C
function)</a>
+</li>
+ <li><a
href="os/scheduling/wqueue.html#c.work_queue_dispatch">work_queue_dispatch (C
function)</a>
</li>
<li><a
href="os/scheduling/wqueue.html#c.work_queue_free">work_queue_free (C
function)</a>
+</li>
+ <li><a
href="os/scheduling/wqueue.html#c.work_queue_in_queue">work_queue_in_queue (C
function)</a>
</li>
<li><a
href="os/scheduling/wqueue.html#c.work_queue_next_wq">work_queue_next_wq (C
function)</a>
</li>
<li><a
href="os/scheduling/wqueue.html#c.work_queue_priority_wq">work_queue_priority_wq
(C function)</a>
+</li>
+ <li><a
href="os/scheduling/wqueue.html#c.work_queue_setpriority_wq">work_queue_setpriority_wq
(C function)</a>
</li>
<li><a href="os/scheduling/wqueue.html#c.work_queue_wq">work_queue_wq (C
function)</a>
</li>
diff --git a/content/docs/latest/guides/chip-specific/stm32_nucleo.html
b/content/docs/latest/guides/chip-specific/stm32_nucleo.html
index 51bd459303..f224789b62 100644
--- a/content/docs/latest/guides/chip-specific/stm32_nucleo.html
+++ b/content/docs/latest/guides/chip-specific/stm32_nucleo.html
@@ -199,7 +199,10 @@
<li class="toctree-l2"><a class="reference internal"
href="smaller_vector_tables.html">Smaller Vector Tables</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">STM32 Nucleo standard</a><ul>
<li class="toctree-l3"><a class="reference internal"
href="#serial-console">Serial console</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="#common-board-initialization">Common board initialization</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="#common-board-initialization">Common board initialization</a><ul>
+<li class="toctree-l4"><a class="reference internal"
href="#timers">Timers</a></li>
+</ul>
+</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="stm32_ports.html">STM32 ports</a></li>
@@ -320,13 +323,46 @@ instances</p></td>
</table>
<p>The file systems are not mounted when <code class="docutils literal
notranslate"><span class="pre">CONFIG_DISABLE_MOUNTPOINT</span></code> is
set. The IWDG uses <code class="docutils literal notranslate"><span
class="pre">STM32_LSI_FREQUENCY</span></code> from the board <code
class="docutils literal notranslate"><span
class="pre">board.h</span></code>.</p>
+<section id="timers">
+<h3>Timers<a class="headerlink" href="#timers" title="Permalink to this
heading"></a></h3>
+<p>Timer and oneshot devices are registered from one option per instance,
+N being the TIM or LPTIM instance number:</p>
+<table class="docutils align-default">
+<thead>
+<tr class="row-odd"><th class="head"><p>Option</p></th>
+<th class="head"><p>Device</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_BOARD_STM32_COMMON_TIMn_TIMER</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">/dev/timerN</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_BOARD_STM32_COMMON_TIMn_ONESHOT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">/dev/oneshotN</span></code></p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_BOARD_STM32_COMMON_LPTIMn_TIMER</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">/dev/lptimerN</span></code></p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_BOARD_STM32_COMMON_LPTIMn_ONESHOT</span></code></p></td>
+<td><p><code class="docutils literal notranslate"><span
class="pre">/dev/lponeshotN</span></code></p></td>
+</tr>
+</tbody>
+</table>
+<p>The options need <code class="docutils literal notranslate"><span
class="pre">CONFIG_TIMER</span></code> or <code class="docutils literal
notranslate"><span class="pre">CONFIG_ONESHOT</span></code> (a TIM oneshot
+also <code class="docutils literal notranslate"><span
class="pre">CONFIG_STM32_ONESHOT</span></code>) and the <code class="docutils
literal notranslate"><span class="pre">CONFIG_STM32_TIMn</span></code> or
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_STM32_LPTIMn</span></code> instance. An instance is either a
timer or a
+oneshot. A TIM oneshot counts in microseconds. An LPTIM counts on its
+kernel clock, <code class="docutils literal notranslate"><span
class="pre">STM32_LPTIMn_CLKIN</span></code> in the board <code class="docutils
literal notranslate"><span class="pre">board.h</span></code>.</p>
<p>Rules for boards:</p>
<ul class="simple">
<li><p>Do not repeat any of the features above in the board directory.</p></li>
<li><p>Board-independent initialization is added to
<code class="docutils literal notranslate"><span
class="pre">stm32_common_initialize()</span></code>, not to individual
boards.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">board.h</span></code> defines <code class="docutils literal
notranslate"><span class="pre">STM32_LPTIMn_CLKIN</span></code> for every LPTIM
instance of
+the chip.</p></li>
</ul>
</section>
+</section>
</section>
diff --git a/content/docs/latest/guides/chip-specific/stm32_ports.html
b/content/docs/latest/guides/chip-specific/stm32_ports.html
index c47fb6ffeb..165f5f84cf 100644
--- a/content/docs/latest/guides/chip-specific/stm32_ports.html
+++ b/content/docs/latest/guides/chip-specific/stm32_ports.html
@@ -240,6 +240,7 @@
<li class="toctree-l3"><a class="reference internal"
href="#source-naming-rules">Source naming rules</a><ul>
<li class="toctree-l4"><a class="reference internal"
href="#ip-core-naming-convention">IP-core naming convention</a></li>
<li class="toctree-l4"><a class="reference internal"
href="#hardware-definition-naming-convention">Hardware definition naming
convention</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#board-clock-configuration-convention">Board clock configuration
convention</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#next-steps">Next
steps</a><ul>
@@ -3329,6 +3330,30 @@ size macros must use <code class="docutils literal
notranslate"><span class="pre
<p><strong>Per-family hardware register definitions</strong> (in <code
class="docutils literal notranslate"><span
class="pre">arch/arm/src/<family>/hardware/</span></code>)
must use <code class="docutils literal notranslate"><span
class="pre">STM32_XXX_</span></code> (not <code class="docutils literal
notranslate"><span class="pre">STM32L4_XXX_</span></code>, <code
class="docutils literal notranslate"><span
class="pre">STM32WB4_XXX_</span></code>, etc.).</p>
</section>
+<section id="board-clock-configuration-convention">
+<h3>Board clock configuration convention<a class="headerlink"
href="#board-clock-configuration-convention" title="Permalink to this
heading"></a></h3>
+<p>The board <code class="docutils literal notranslate"><span
class="pre">board.h</span></code> configures the clock tree and the family RCC
code
+writes what the board defines. All families use the same interface:</p>
+<ul>
+<li><p>Register field values, built from the field macros of the family RCC
+header: <code class="docutils literal notranslate"><span
class="pre">STM32_PLLCFG_*</span></code> for the PLLs and <code class="docutils
literal notranslate"><span
class="pre">STM32_RCC_<REG>_<FIELD></span></code> for
+the other fields, for example:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>#define STM32_PLLCFG_PLLM
RCC_PLLCFG_PLLM(4)
+#define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd2
+</pre></div>
+</div>
+</li>
+<li><p>Clock frequencies matching those fields: <code class="docutils literal
notranslate"><span class="pre">STM32_SYSCLK_FREQUENCY</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">STM32_HCLK_FREQUENCY</span></code>, <code class="docutils literal
notranslate"><span class="pre">STM32_PCLKn_FREQUENCY</span></code> and the other
+<code class="docutils literal notranslate"><span
class="pre">STM32_<clock>_FREQUENCY</span></code> macros, as constants or
expressions of other
+frequencies.</p></li>
+<li><p>Peripheral input clocks: <code class="docutils literal
notranslate"><span class="pre">STM32_TIMn_CLKIN</span></code> and <code
class="docutils literal notranslate"><span
class="pre">STM32_LPTIMn_CLKIN</span></code>
+(see above), one for every instance of the chip.</p></li>
+</ul>
+<p>The board does not pass numeric divisors for the RCC code to convert into
+register fields. The RCC code keeps reserved register bits at their reset
+value.</p>
+</section>
</section>
<section id="next-steps">
<h2>Next steps<a class="headerlink" href="#next-steps" title="Permalink to
this heading"></a></h2>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html
b/content/docs/latest/guides/programs/fully_linked_elf.html
index 04a1490cdc..0c2df8d07a 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -488,7 +488,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="18974697-65d6-4587-90a3-b6f6016d094b"
name="18974697-65d6-4587-90a3-b6f6016d094b" type="checkbox"><label
class="sphinx_collapse__label" for="18974697-65d6-4587-90a3-b6f6016d094b"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="4751e901-0789-4964-913e-b695ba06ff31"
name="4751e901-0789-4964-913e-b695ba06ff31" type="checkbox"><label
class="sphinx_collapse__label" for="4751e901-0789-4964-913e-b695ba06ff31"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html
b/content/docs/latest/guides/programs/partially_linked_elf.html
index e7a998ecb1..4dbe26ed82 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -514,7 +514,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="d61d31d6-e9f2-4b59-b21c-8320569a1d87"
name="d61d31d6-e9f2-4b59-b21c-8320569a1d87" type="checkbox"><label
class="sphinx_collapse__label" for="d61d31d6-e9f2-4b59-b21c-8320569a1d87"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="ed36ffce-0ec5-487e-9522-a04361ba3136"
name="ed36ffce-0ec5-487e-9522-a04361ba3136" type="checkbox"><label
class="sphinx_collapse__label" for="ed36ffce-0ec5-487e-9522-a04361ba3136"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index 4d6bcce4dd..cd9679311c 100644
Binary files a/content/docs/latest/objects.inv and
b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/os/drivers/character/leds/index.html
b/content/docs/latest/os/drivers/character/leds/index.html
index 3e2375ccd4..11c1b47b02 100644
--- a/content/docs/latest/os/drivers/character/leds/index.html
+++ b/content/docs/latest/os/drivers/character/leds/index.html
@@ -336,7 +336,6 @@ that only <code class="docutils literal notranslate"><span
class="pre">LED_INIRQ
<li class="toctree-l1"><a class="reference internal"
href="userled.html">USERLED Drivers</a></li>
<li class="toctree-l1"><a class="reference internal" href="ws2812.html">ws2812
Drivers</a><ul>
<li class="toctree-l2"><a class="reference internal"
href="ws2812.html#configuration">Configuration</a><ul>
-<li class="toctree-l3"><a class="reference internal"
href="ws2812.html#ws2812-driver-variant">WS2812 driver variant</a></li>
<li class="toctree-l3"><a class="reference internal"
href="ws2812.html#number-of-ws2812s-connected">Number of ws2812s
connected</a></li>
<li class="toctree-l3"><a class="reference internal"
href="ws2812.html#ws2812s-have-white-led">ws2812s have white LED</a></li>
<li class="toctree-l3"><a class="reference internal"
href="ws2812.html#add-byte-order-transformation-functions">Add byte order
transformation functions</a></li>
diff --git a/content/docs/latest/os/drivers/character/leds/ws2812.html
b/content/docs/latest/os/drivers/character/leds/ws2812.html
index 27b22d9972..793e9d4c9b 100644
--- a/content/docs/latest/os/drivers/character/leds/ws2812.html
+++ b/content/docs/latest/os/drivers/character/leds/ws2812.html
@@ -240,16 +240,6 @@ the specific <code class="docutils literal
notranslate"><span class="pre"><ch
<p>Upper half configuration resides in <span class="menuselection">Device
Drivers ‣ LED support ‣ WS2812 LED driver</span> .
Some of the configuration options are described here - mostly for the purpose
of helping
with implementation of lower half drivers and board code.</p>
-<section id="ws2812-driver-variant">
-<h3>WS2812 driver variant<a class="headerlink" href="#ws2812-driver-variant"
title="Permalink to this heading"></a></h3>
-<p>Allows user to choose between old-style SPI driver and driver split into
upper and
-lower-half. The old style SPI driver could only drive the LEDs using a SPI
interface,
-the new style can use any hardware supported by the lower half (including SPI,
-despite the naming.)</p>
-<p>When implementing lower half driver for new architecture, make the
appropriate
-Kconfig option depend on <span
class="menuselection">WS2812_NON_SPI_DRIVER</span></p>
-<p>The old-style driver and its associated options are not described in this
document.</p>
-</section>
<section id="number-of-ws2812s-connected">
<h3>Number of ws2812s connected<a class="headerlink"
href="#number-of-ws2812s-connected" title="Permalink to this heading"></a></h3>
<p>These LEDs are designed to be chained and this configuration option allows
the user
diff --git a/content/docs/latest/os/drivers/special/index.html
b/content/docs/latest/os/drivers/special/index.html
index 6e8e7f63f6..ad33e82e5a 100644
--- a/content/docs/latest/os/drivers/special/index.html
+++ b/content/docs/latest/os/drivers/special/index.html
@@ -735,6 +735,7 @@ and thus expose them to applications.</p>
<li class="toctree-l3"><a class="reference internal"
href="syslog.html#syslog-channel-interfaces">SYSLOG Channel Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal"
href="syslog.html#syslog-channel-initialization">SYSLOG Channel
Initialization</a></li>
<li class="toctree-l3"><a class="reference internal"
href="syslog.html#syslog-channel-filtering">SYSLOG Channel Filtering</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="syslog.html#syslog-channel-priorities">SYSLOG Channel Priorities</a></li>
<li class="toctree-l3"><a class="reference internal"
href="syslog.html#interrupt-level-syslog-output">Interrupt Level SYSLOG
Output</a></li>
</ul>
</li>
diff --git a/content/docs/latest/os/drivers/special/syslog.html
b/content/docs/latest/os/drivers/special/syslog.html
index 0966a8bcd3..416c0752ed 100644
--- a/content/docs/latest/os/drivers/special/syslog.html
+++ b/content/docs/latest/os/drivers/special/syslog.html
@@ -409,6 +409,37 @@ with either the SYSLOGIOC_GETCHANNELS or
SYSLOGIOC_SETFILTER.</p>
specified channel.</p></li>
</ul>
</section>
+<section id="syslog-channel-priorities">
+<h3>SYSLOG Channel Priorities<a class="headerlink"
href="#syslog-channel-priorities" title="Permalink to this heading"></a></h3>
+<p>With <code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_DROPMASK</span></code>, each channel can drop the
messages of
+some priorities. The field <code class="docutils literal notranslate"><span
class="pre">sc_dropmask</span></code> of <code class="docutils literal
notranslate"><span class="pre">struct</span> <span
class="pre">syslog_channel_s</span></code>
+is an OR of <code class="docutils literal notranslate"><span
class="pre">LOG_MASK()</span></code> values: the channel does not write the
+messages of these priorities. Zero (the value of a channel that does not
+set the field) means that the channel writes the messages of all
+priorities.</p>
+<p><code class="docutils literal notranslate"><span
class="pre">setlogmask()</span></code> selects the messages for all channels.
<code class="docutils literal notranslate"><span
class="pre">sc_dropmask</span></code>
+selects them for one channel. For example, the console can show only
+the urgent messages while the RAMLOG keeps all of them.</p>
+<p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_CONSOLE_LEVEL</span></code> sets <code
class="docutils literal notranslate"><span
class="pre">sc_dropmask</span></code> of the console
+channels (<code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_DEFAULT</span></code> and <code class="docutils
literal notranslate"><span class="pre">CONFIG_SYSLOG_CONSOLE</span></code>).
+These channels write only the messages of this priority and of the more
+urgent priorities: 0 is <code class="docutils literal notranslate"><span
class="pre">LOG_EMERG</span></code>, 3 is <code class="docutils literal
notranslate"><span class="pre">LOG_ERR</span></code>, 7 is
+<code class="docutils literal notranslate"><span
class="pre">LOG_DEBUG</span></code>. With 7 (the default), the console writes
all messages.
+The assertion and crash reports use <code class="docutils literal
notranslate"><span class="pre">LOG_ALERT</span></code> and <code
class="docutils literal notranslate"><span class="pre">LOG_EMERG</span></code>,
so
+a value of 1 or more keeps them on the console.</p>
+<p>Output that does not come from <code class="docutils literal
notranslate"><span class="pre">syslog()</span></code> has no priority, and all
+channels write it. This output is:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">syslog_write()</span></code> (for example a write to <code
class="docutils literal notranslate"><span class="pre">/dev/log</span></code>
with
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_CHARDEV</span></code>, or the console output with
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_CONSOLE_SYSLOG</span></code>).</p></li>
+<li><p>The output that the interrupt buffer (<code class="docutils literal
notranslate"><span class="pre">CONFIG_SYSLOG_INTBUFFER</span></code>)
+saved. With the interrupt buffer, the messages from interrupt
+handlers lose their priority.</p></li>
+</ul>
+<p>Kernel code that writes the text of a message with <code class="docutils
literal notranslate"><span class="pre">syslog_write()</span></code>
+can call <code class="docutils literal notranslate"><span
class="pre">syslog_write_priority()</span></code> instead, to give its
priority.</p>
+</section>
<section id="interrupt-level-syslog-output">
<h3>Interrupt Level SYSLOG Output<a class="headerlink"
href="#interrupt-level-syslog-output" title="Permalink to this
heading"></a></h3>
<p>As a general statement, SYSLOG output only supports <em>normal</em>
@@ -797,6 +828,8 @@ fixed at compile time.</p>
<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_MAX_CHANNELS</span></code>: Set the maximum number of
syslog channels (default: 1 in the architecture, configurable per
platform).</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_DEFAULT</span></code>: Enable the <strong>default
channel</strong> (maps to UART output).</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_CRLF</span></code>: (Shared) Applies line ending
conversion to all channel output.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_DROPMASK</span></code>: Each channel can drop
messages by priority (default: n). See <a class="reference internal"
href="#syslog-channel-priorities">SYSLOG Channel Priorities</a>.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSLOG_CONSOLE_LEVEL</span></code>: The lowest message
priority that the console channels write (default: 7, all messages). See <a
class="reference internal" href="#syslog-channel-priorities">SYSLOG Channel
Priorities</a>.</p></li>
</ul>
</section>
<section id="individual-channel-destination-options">
diff --git a/content/docs/latest/os/filesystem/file_permission.html
b/content/docs/latest/os/filesystem/file_permission.html
index a674205af0..40cc7c3a39 100644
--- a/content/docs/latest/os/filesystem/file_permission.html
+++ b/content/docs/latest/os/filesystem/file_permission.html
@@ -235,13 +235,16 @@ and no mode-based checks are performed.</p>
<code class="docutils literal notranslate"><span
class="pre">i_owner</span></code> / <code class="docutils literal
notranslate"><span class="pre">i_group</span></code> / <code class="docutils
literal notranslate"><span class="pre">i_mode</span></code>. Empty macro
returning <code class="docutils literal notranslate"><span
class="pre">0</span></code>
when <code class="docutils literal notranslate"><span
class="pre">CONFIG_FS_PERMISSION</span></code> is disabled.</p>
</dd>
-<dt><code class="docutils literal notranslate"><span
class="pre">inode_checkpathperm</span></code></dt><dd><p>Require <code
class="docutils literal notranslate"><span class="pre">X_OK</span></code> on
every ancestor of an inode, and on the inode itself
-when it is a pseudo directory or a mountpoint (directory search /
+<dt><code class="docutils literal notranslate"><span
class="pre">inode_checkpathperm</span></code></dt><dd><p>Require <code
class="docutils literal notranslate"><span class="pre">X_OK</span></code> on
every ancestor of an inode (directory search /
traverse). If <code class="docutils literal notranslate"><span
class="pre">amode</span></code> is non-zero, also require that access on the
inode. Takes the inode tree read lock unless <code class="docutils literal
notranslate"><span class="pre">INODE_CHECK_LOCKED</span></code> is
set (caller already holds <code class="docutils literal notranslate"><span
class="pre">inode_lock</span></code> / <code class="docutils literal
notranslate"><span class="pre">inode_rlock</span></code>). Empty
macro returning <code class="docutils literal notranslate"><span
class="pre">0</span></code> when <code class="docutils literal
notranslate"><span class="pre">CONFIG_FS_PERMISSION</span></code> is
disabled.</p>
</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">INODE_PATH_AMODE</span></code></dt><dd><p>The <code class="docutils
literal notranslate"><span class="pre">amode</span></code> for the inode that
<code class="docutils literal notranslate"><span
class="pre">inode_find</span></code> returns: <code class="docutils literal
notranslate"><span class="pre">X_OK</span></code> on a
+mountpoint when the path goes into the volume, and nothing on the last
+path component.</p>
+</dd>
<dt><code class="docutils literal notranslate"><span
class="pre">inode_checkopenperm</span></code></dt><dd><p>Validate that the
inode supports the requested open access, then apply
mode checks for non-mountpoint inodes.</p>
</dd>
@@ -273,14 +276,19 @@ the VFS does not invoke it for mount-crossing).</p>
Applying the mount directory’s mode bits as file open modes would require
read/write on the mount directory merely to open a file beneath it.</p>
<p>Traverse is separate: callers use <code class="docutils literal
notranslate"><span class="pre">inode_checkpathperm</span></code> so parent
-directories and the mountpoint itself still require <code class="docutils
literal notranslate"><span class="pre">X_OK</span></code>.</p>
+directories, and the mountpoint for a path that goes into the volume, still
+require <code class="docutils literal notranslate"><span
class="pre">X_OK</span></code>. As POSIX specifies, the last path component
needs no search
+permission: a directory with no execute bit can still be found with <code
class="docutils literal notranslate"><span class="pre">stat()</span></code>
+and changed with <code class="docutils literal notranslate"><span
class="pre">chmod()</span></code>. <code class="docutils literal
notranslate"><span class="pre">chdir()</span></code> is different: it needs
search
+permission on the directory itself.</p>
<p>Typical order after a successful <code class="docutils literal
notranslate"><span class="pre">inode_find</span></code>:</p>
<ol class="arabic simple">
-<li><p><code class="docutils literal notranslate"><span
class="pre">inode_checkpathperm(inode,</span> <span class="pre">0,</span> <span
class="pre">0)</span></code> — search permission on the path
-prefix (and on the mountpoint when entering a volume). Call sites that
-already hold the tree lock pass <code class="docutils literal
notranslate"><span class="pre">INODE_CHECK_LOCKED</span></code>; mount and
-pseudoFS create/remove may pass a non-zero <code class="docutils literal
notranslate"><span class="pre">amode</span></code> (for example
-<code class="docutils literal notranslate"><span
class="pre">W_OK</span></code>) to combine traverse and target checks in one
call.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">inode_checkpathperm(inode,</span> <span
class="pre">INODE_PATH_AMODE(&desc),</span> <span
class="pre">0)</span></code> — search
+permission on the path prefix (and on the mountpoint when entering a
+volume). Call sites that already hold the tree lock pass
+<code class="docutils literal notranslate"><span
class="pre">INODE_CHECK_LOCKED</span></code>; mount and pseudoFS create/remove
pass
+<code class="docutils literal notranslate"><span class="pre">W_OK</span> <span
class="pre">|</span> <span class="pre">X_OK</span></code> on the directory to
combine traverse and target checks in
+one call.</p></li>
<li><p>Operation-specific checks — <code class="docutils literal
notranslate"><span class="pre">inode_checkopenperm</span></code>, or the
filesystem’s own methods for paths inside a mount.</p></li>
</ol>
@@ -307,7 +315,8 @@ statfs, readlink, mount, and umount. <code class="docutils
literal notranslate"
<code class="docutils literal notranslate"><span
class="pre">inode_rlock</span></code> unless the caller already holds the tree
lock
(<code class="docutils literal notranslate"><span
class="pre">INODE_CHECK_LOCKED</span></code>).</p></li>
<li><p>Inside <code class="docutils literal notranslate"><span
class="pre">inode_reserve</span></code> / <code class="docutils literal
notranslate"><span class="pre">inode_remove</span></code> for pseudoFS create
and remove
-(ancestor <code class="docutils literal notranslate"><span
class="pre">X_OK</span></code> and parent <code class="docutils literal
notranslate"><span class="pre">W_OK</span></code> in one call, under <code
class="docutils literal notranslate"><span
class="pre">inode_lock</span></code>).</p></li>
+(ancestor and parent <code class="docutils literal notranslate"><span
class="pre">X_OK</span></code> and parent <code class="docutils literal
notranslate"><span class="pre">W_OK</span></code> in one call, under
+<code class="docutils literal notranslate"><span
class="pre">inode_lock</span></code>).</p></li>
</ul>
</section>
<section id="who-enforces-what">
diff --git a/content/docs/latest/os/memory/iob.html
b/content/docs/latest/os/memory/iob.html
index 4486f70676..356250b1eb 100644
--- a/content/docs/latest/os/memory/iob.html
+++ b/content/docs/latest/os/memory/iob.html
@@ -370,8 +370,11 @@ module.</p>
<li><p><a class="reference internal" href="#c.iob_free_queue_qentry"
title="iob_free_queue_qentry"><code class="xref c c-func docutils literal
notranslate"><span
class="pre">iob_free_queue_qentry()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_get_queue_size"
title="iob_get_queue_size"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_get_queue_size()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_copyin"
title="iob_copyin"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_copyin()</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.iob_copyin_iov"
title="iob_copyin_iov"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_copyin_iov()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_trycopyin"
title="iob_trycopyin"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_trycopyin()</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.iob_trycopyin_iov"
title="iob_trycopyin_iov"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_trycopyin_iov()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_copyout"
title="iob_copyout"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_copyout()</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.iob_copyout_iov"
title="iob_copyout_iov"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_copyout_iov()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_clone"
title="iob_clone"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_clone()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_clone_partial"
title="iob_clone_partial"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_clone_partial()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.iob_concat"
title="iob_concat"><code class="xref c c-func docutils literal
notranslate"><span class="pre">iob_concat()</span></code></a></p></li>
@@ -489,6 +492,14 @@ the I/O buffer chain, starting at <code class="docutils
literal notranslate"><sp
as necessary.</p>
</dd></dl>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.iob_copyin_iov">
+<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_copyin_iov</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">iob_s</span></span><span class="w">
</span><span class="p"><span class="pre">*</span></span><span class="n"><span
class [...]
+<dd><p>Copy data from an <code class="docutils literal notranslate"><span
class="pre">iov</span></code> array of user buffers into the I/O
+buffer chain, starting at <code class="docutils literal notranslate"><span
class="pre">offset</span></code>, extending the chain as
+necessary.</p>
+</dd></dl>
+
<dl class="c function">
<dt class="sig sig-object c" id="c.iob_trycopyin">
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_trycopyin</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">iob_s</span></span><span class="w">
</span><span class="p"><span class="pre">*</span></span><span class="n"><span
class= [...]
@@ -497,6 +508,14 @@ the I/O buffer chain, starting at <code class="docutils
literal notranslate"><sp
as necessary BUT without waiting if buffers are not available.</p>
</dd></dl>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.iob_trycopyin_iov">
+<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_trycopyin_iov</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">iob_s</span></span><span class="w">
</span><span class="p"><span class="pre">*</span></span><span class="n"><span
cl [...]
+<dd><p>Copy data from an <code class="docutils literal notranslate"><span
class="pre">iov</span></code> array of user buffers into the I/O
+buffer chain, starting at <code class="docutils literal notranslate"><span
class="pre">offset</span></code>, extending the chain as
+necessary BUT without waiting if buffers are not available.</p>
+</dd></dl>
+
<dl class="c function">
<dt class="sig sig-object c" id="c.iob_copyout">
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_copyout</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="n"><span class="pre">uint8_t</span></span><span class="w">
</span><span class="p"><span class="pre">*</span></span><span class="n"><span
class="pre">dest</span></span>, <span class="pre">FAR</span><span class="w">
</span> [...]
@@ -505,6 +524,13 @@ buffer starting at <code class="docutils literal
notranslate"><span class="pre">
actual number of bytes copied out.</p>
</dd></dl>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.iob_copyout_iov">
+<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_copyout_iov</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">const</span></span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">iovec</span></span><span class="w">
</spa [...]
+<dd><p>Copy data <code class="docutils literal notranslate"><span
class="pre">len</span></code> bytes of data from the I/O buffer chain
+starting at <code class="docutils literal notranslate"><span
class="pre">offset</span></code> into the user <code class="docutils literal
notranslate"><span class="pre">iov</span></code> array of buffers.</p>
+</dd></dl>
+
<dl class="c function">
<dt class="sig sig-object c" id="c.iob_clone">
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">iob_clone</span></span></span><span class="sig-paren">(</span><span
class="pre">FAR</span><span class="w"> </span><span class="k"><span
class="pre">struct</span></span><span class="w"> </span><span class="n"><span
class="pre">iob_s</span></span><span class="w"> </span><span class="p"><span
class="pre">*</span></span><span class="n"><span class="pre [...]
diff --git a/content/docs/latest/os/scheduling/wqueue.html
b/content/docs/latest/os/scheduling/wqueue.html
index 5ca1ac6679..1477293ba9 100644
--- a/content/docs/latest/os/scheduling/wqueue.html
+++ b/content/docs/latest/os/scheduling/wqueue.html
@@ -483,6 +483,27 @@ queue, or <code class="docutils literal notranslate"><span
class="pre">-EDEADLK<
</dl>
</dd></dl>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.work_queue_in_queue">
+<span class="kt"><span class="pre">bool</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">work_queue_in_queue</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">kwork_wqueue_s</span></span><span
class="w"> </span><span class="p"><span class="pre">*</span></span><span class=
[...]
+<dd><p>Report whether the caller runs on one of the queue’s worker threads.
+Kernel only.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p><code class="docutils literal notranslate"><span
class="pre">true</span></code> if the caller is a worker of <code
class="docutils literal notranslate"><span class="pre">wqueue</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c function">
+<dt class="sig sig-object c" id="c.work_queue_dispatch">
+<span class="kt"><span class="pre">void</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">work_queue_dispatch</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">kwork_wqueue_s</span></span><span
class="w"> </span><span class="p"><span class="pre">*</span></span><span class=
[...]
+<dd><p>Run the expired work of <code class="docutils literal
notranslate"><span class="pre">wqueue</span></code> on the calling thread. A
callback
+that waits for a result produced by another work item of the same
+queue uses this to let that item run. Does nothing when the caller is
+not one of the queue’s workers. Kernel only.</p>
+</dd></dl>
+
<dl class="c function">
<dt class="sig sig-object c" id="c.work_queue_wq">
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">work_queue_wq</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">kwork_wqueue_s</span></span><span
class="w"> </span><span class="p"><span class="pre">*</span></span><span
class="n"><sp [...]
@@ -572,6 +593,20 @@ is excluded from the wait to avoid self-deadlock.</p>
</dl>
</dd></dl>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.work_queue_setpriority_wq">
+<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">work_queue_setpriority_wq</span></span></span><span
class="sig-paren">(</span><span class="pre">FAR</span><span class="w">
</span><span class="k"><span class="pre">struct</span></span><span class="w">
</span><span class="n"><span class="pre">kwork_wqueue_s</span></span><span
class="w"> </span><span class="p"><span class="pre">*</span></span><span c [...]
+<dd><p>Set the scheduling priority of every worker of a custom queue.
+<code class="docutils literal notranslate"><span
class="pre">work_queue_setpriority(qid,</span> <span
class="pre">priority)</span></code> does the same for <code class="docutils
literal notranslate"><span class="pre">HPWORK</span></code>
+or <code class="docutils literal notranslate"><span
class="pre">LPWORK</span></code>. Kernel only.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>Zero on success or <code class="docutils literal
notranslate"><span class="pre">-EINVAL</span></code> for an invalid queue or
+priority.</p>
+</dd>
+</dl>
+</dd></dl>
+
<dl class="c function">
<dt class="sig sig-object c" id="c.work_signal">
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">work_signal</span></span></span><span
class="sig-paren">(</span><span class="kt"><span
class="pre">int</span></span><span class="w"> </span><span class="n"><span
class="pre">qid</span></span><span class="sig-paren">)</span><a
class="headerlink" href="#c.work_signal" title="Permalink to this
definition"></a><br /></dt>
diff --git
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
index 63b6b9af65..f3b9198b0c 100644
---
a/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
+++
b/content/docs/latest/platforms/arm/rp23xx/boards/pimoroni-pico-plus-2-w/index.html
@@ -177,7 +177,7 @@
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
diff --git
a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
index 5fd76993ea..00df653238 100644
--- a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
+++ b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
index 7ba1bdefbb..9675e5526b 100644
--- a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
+++ b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
index 95a178556b..f63e781116 100644
--- a/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
+++ b/content/docs/latest/platforms/arm/stm32f0/boards/nucleo-f072rb/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
index fae71de45b..67698fd326 100644
---
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
+++
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
index 911de787c1..d5be2e9026 100644
---
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
+++
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f072-discovery/index.html
@@ -162,48 +162,28 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32u0/boards/nucleo-u083rc/index.html
b/content/docs/latest/platforms/arm/stm32u0/boards/nucleo-u083rc/index.html
index c951052c8f..7b94b59aa5 100644
--- a/content/docs/latest/platforms/arm/stm32u0/boards/nucleo-u083rc/index.html
+++ b/content/docs/latest/platforms/arm/stm32u0/boards/nucleo-u083rc/index.html
@@ -260,7 +260,7 @@ supported by the OS.</p>
<li><p>ADC with DMA enabled using A0-A3 pins</p></li>
<li><p>PWM on TIM1 CH1 (PA8, D7)</p></li>
<li><p>Quadrature encoder on TIM3 (PA6/PA7, D12/D11)</p></li>
-<li><p>Timer driver on TIM6 (/dev/timer0)</p></li>
+<li><p>Timer driver on TIM6 (/dev/timer6)</p></li>
<li><p>IWDG and WWDG watchdogs</p></li>
<li><p>button with software debouncing enabled (no RC filter on the
board)</p></li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
b/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
index 217f57789a..ddbdeb68a6 100644
--- a/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
+++ b/content/docs/latest/platforms/arm64/zynq-mpsoc/boards/zcu111/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
index 4bf54d5bfd..22d1108225 100644
--- a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
+++ b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
@@ -1249,6 +1249,54 @@ definitions to the defconfig file:</p>
</div>
</div>
</section>
+<section id="nxcamera">
+<h2>nxcamera<a class="headerlink" href="#nxcamera" title="Permalink to this
heading"></a></h2>
+<p>This configuration tests the V4L2 drivers. The sim camera driver
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_CAMERA</span></code>) opens the V4L2 capture devices of
the host and
+registers each one as <code class="docutils literal notranslate"><span
class="pre">/dev/videoN</span></code> in the simulator, and <code
class="docutils literal notranslate"><span class="pre">nxcamera</span></code>
+streams frames from such a device to the framebuffer or to a file.</p>
+<p><strong>Capture</strong></p>
+<p>A host without a camera can use the <code class="docutils literal
notranslate"><span class="pre">v4l2loopback</span></code> module, fed with a
test
+pattern by FFmpeg:</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="gp">$ </span>sudo<span
class="w"> </span>modprobe<span class="w"> </span>v4l2loopback
+<span class="gp">$ </span>ffmpeg<span class="w"> </span>-re<span class="w">
</span>-f<span class="w"> </span>lavfi<span class="w"> </span>-i<span
class="w"> </span><span class="nv">testsrc</span><span class="o">=</span><span
class="nv">size</span><span class="o">=</span>640x480:rate<span
class="o">=</span><span class="m">30</span><span class="w"> </span><span
class="se">\</span>
+<span class="w"> </span>-pix_fmt<span class="w"> </span>yuv420p<span
class="w"> </span>-f<span class="w"> </span>v4l2<span class="w">
</span>/dev/video0
+</pre></div>
+</div>
+<p>To write ten frames to a file on the host, enable <code class="docutils
literal notranslate"><span class="pre">CONFIG_FS_HOSTFS</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_HOSTFS</span></code> and run:</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">nsh> mount -t hostfs -o
fs=/tmp /host</span>
+<span class="go">nsh> nxcamera</span>
+<span class="go">nxcamera> input /dev/video0</span>
+<span class="go">nxcamera> output /host/frames.yuv 10</span>
+<span class="go">nxcamera> stream 640 480 30 YU12</span>
+<span class="go">nxcamera> q</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span
class="pre">frames.yuv</span></code> then holds ten 640x480 YUV 4:2:0
frames.</p>
+<p><strong>Memory-to-memory decoding</strong></p>
+<p>The sim decoder (<code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_VIDEO_DECODER</span></code>) is a V4L2 memory-to-memory
+device, <code class="docutils literal notranslate"><span
class="pre">/dev/video1</span></code> by default, that decodes H.264 with
OpenH264. On top of
+this configuration it needs:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_VIDEOUTILS_OPENH264</span></code> and <code class="docutils
literal notranslate"><span
class="pre">CONFIG_SIM_VIDEO_DECODER</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_HAVE_CXX</span></code> and <code class="docutils literal
notranslate"><span class="pre">CONFIG_HAVE_CXXINITIALIZE</span></code>, for the
C++ runtime
+OpenH264 uses (the default minimal C++ library is enough)</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_SYSTEM_NXCODEC</span></code>, <code class="docutils literal
notranslate"><span class="pre">CONFIG_FS_HOSTFS</span></code> and <code
class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_HOSTFS</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_NSH_MAXARGUMENTS=16</span></code>, for the <code
class="docutils literal notranslate"><span class="pre">nxcodec</span></code>
command line</p></li>
+</ul>
+<p>Create a stream on the host:</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="gp">$ </span>ffmpeg<span
class="w"> </span>-f<span class="w"> </span>lavfi<span class="w">
</span>-i<span class="w"> </span><span class="nv">testsrc</span><span
class="o">=</span><span class="nv">size</span><span
class="o">=</span>320x240:rate<span class="o">=</span><span
class="m">30</span><span class="w"> </span>-t<span class="w"> </span><span
class="m">2</span><span class="w"> </span>-c:v< [...]
+<span class="w"> </span>-profile:v<span class="w"> </span>baseline<span
class="w"> </span>-pix_fmt<span class="w"> </span>yuv420p<span class="w">
</span>-f<span class="w"> </span>h264<span class="w"> </span>/tmp/t.h264
+</pre></div>
+</div>
+<p>and decode it in the simulator to YUV 4:2:0 frames:</p>
+<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="go">nsh> mount -t hostfs -o
fs=/tmp /host</span>
+<span class="go">nsh> cd /host</span>
+<span class="go">nsh> nxcodec -d /dev/video1 -s 320x240 -f H264 -i t.h264
-f YU12 -o o.yuv</span>
+</pre></div>
+</div>
+</section>
<section id="nxdoom">
<h2>nxdoom<a class="headerlink" href="#nxdoom" title="Permalink to this
heading"></a></h2>
<p>Play <a class="reference internal"
href="../../../../../applications/games/nxdoom/index.html"><span
class="doc">NXDoom</span></a> on the Simulator using X11
diff --git a/content/docs/latest/reference/user/03_task_control.html
b/content/docs/latest/reference/user/03_task_control.html
index 238dee5e52..49bbd1b29d 100644
--- a/content/docs/latest/reference/user/03_task_control.html
+++ b/content/docs/latest/reference/user/03_task_control.html
@@ -661,8 +661,9 @@ the program’s <code class="docutils literal
notranslate"><span class="pre">mai
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span
class="pre">CONFIG_LIBC_MAX_EXITFUNS</span></code> must be larger than 0 to
build
<code class="docutils literal notranslate"><span
class="pre">atexit()</span></code>, <code class="docutils literal
notranslate"><span class="pre">on_exit()</span></code> and <code
class="docutils literal notranslate"><span
class="pre">at_quick_exit()</span></code>. A C++ ELF
-program (built with <code class="docutils literal notranslate"><span
class="pre">-fno-use-cxa-atexit</span></code>) with a static object in
-a function calls <code class="docutils literal notranslate"><span
class="pre">atexit()</span></code> too.</p>
+program (built with <code class="docutils literal notranslate"><span
class="pre">-fno-use-cxa-atexit</span></code>) with a static object
+calls <code class="docutils literal notranslate"><span
class="pre">atexit()</span></code> too, so the default is 1 when both <code
class="docutils literal notranslate"><span class="pre">CONFIG_ELF</span></code>
+and <code class="docutils literal notranslate"><span
class="pre">CONFIG_HAVE_CXX</span></code> are enabled.</p>
</div>
<p>The number of functions is limited only by memory: the first
<code class="docutils literal notranslate"><span
class="pre">CONFIG_LIBC_MAX_EXITFUNS</span></code> entries are in the task
information, the
diff --git a/content/docs/latest/reference/user/07_signals.html
b/content/docs/latest/reference/user/07_signals.html
index da7734bb9c..e30e119aac 100644
--- a/content/docs/latest/reference/user/07_signals.html
+++ b/content/docs/latest/reference/user/07_signals.html
@@ -408,6 +408,9 @@ receive the signal.</p></li>
<li><p>If a task group receives a signal and more than one thread is waiting
on that signal, then one and only one indeterminate thread out of
that waiting group will receive the signal.</p></li>
+<li><p>If the action of the signal is the default action <em>Abnormal
+Termination</em>, all threads of the task group end at once, also the
+threads that block the signal.</p></li>
</ul>
<p>You can mask out that signal using ‘’sigprocmask()’’ (or
‘’pthread_sigmask()’’). That signal will then be effectively disabled
@@ -573,7 +576,10 @@ action to be associated with the specified signal. If the
argument oact
is not NULL, the action previously associated with the signal is stored
in the location pointed to by the argument oact. If the argument act is
NULL, signal handling is unchanged by this function call; thus, the call
-can be used to inquire about the current handling of a given signal.</p>
+can be used to inquire about the current handling of a given signal.
+With <code class="docutils literal notranslate"><span
class="pre">CONFIG_SIG_DEFAULT</span></code>, oact reports <code
class="docutils literal notranslate"><span class="pre">SIG_DFL</span></code>
for a signal at its
+default action, also when the default action is to ignore the signal
+(<code class="docutils literal notranslate"><span
class="pre">SIGCHLD</span></code>, for example).</p>
<p>When a signal is caught by a signal-catching function installed by the
sigaction() function, a new signal mask is calculated and installed for
the duration of the signal-catching function. This mask is formed by
@@ -602,8 +608,8 @@ sigaction().</p>
name. Differences from the POSIX implementation include:</p>
<blockquote>
<div><ul class="simple">
-<li><p>There are no default actions so the special value <code class="docutils
literal notranslate"><span class="pre">SIG_DFL</span></code> is
-treated like <code class="docutils literal notranslate"><span
class="pre">SIG_IGN</span></code>.</p></li>
+<li><p>Without <code class="docutils literal notranslate"><span
class="pre">CONFIG_SIG_DEFAULT</span></code>, there are no default actions so
the
+special value <code class="docutils literal notranslate"><span
class="pre">SIG_DFL</span></code> is treated like <code class="docutils literal
notranslate"><span class="pre">SIG_IGN</span></code>.</p></li>
<li><p>All <code class="docutils literal notranslate"><span
class="pre">sa_flags</span></code> in struct sigaction of act input are ignored
(all
treated like <code class="docutils literal notranslate"><span
class="pre">SA_SIGINFO</span></code>). The one exception is if
<code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_CHILD_STATUS</span></code> is defined; then <code
class="docutils literal notranslate"><span
class="pre">SA_NOCLDWAIT</span></code> is
diff --git a/content/docs/latest/reference/user/11_network.html
b/content/docs/latest/reference/user/11_network.html
index 41df24a7b5..45d75a8f31 100644
--- a/content/docs/latest/reference/user/11_network.html
+++ b/content/docs/latest/reference/user/11_network.html
@@ -508,8 +508,8 @@ given.</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">EOPNOTSUPP</span></code>. Some bit in the flags argument is
inappropriate for
the socket type.</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">EPIPE</span></code>. The local end has been shut down on a
connection oriented
-socket. In this case the process will also receive a SIGPIPE unless
-MSG_NOSIGNAL is set.</p></li>
+socket, or the peer closed the connection. In this case the process
+will also receive a SIGPIPE unless MSG_NOSIGNAL is set.</p></li>
</ul>
</dd></dl>
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index 7bc89143df..324af30cee 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file