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 cefd1df924 Publishing docs: ef611627a5cc5100c7c62d00985f1c6cd85d3e9a
(web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
cefd1df924 is described below
commit cefd1df924323bac69f07fe125a61341df1bb050
Author: Swatantra Yadav <[email protected]>
AuthorDate: Fri Oct 23 01:46:28 2026 +0000
Publishing docs: ef611627a5cc5100c7c62d00985f1c6cd85d3e9a (web:
b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
.../applications/examples/elf/index.rst.txt | 37 +++------
.../applications/examples/module/index.rst.txt | 36 +++------
.../examples/posix_spawn/index.rst.txt | 37 +++------
.../applications/examples/sotest/index.rst.txt | 36 +++------
.../concurrency/fork_vfork_migration.rst.txt | 9 ++-
.../os/drivers/character/analog/pot/index.rst.txt | 7 ++
.../latest/_sources/os/filesystem/v9fs.rst.txt | 26 ++++++
.../latest/_sources/os/libs/libbuiltin.rst.txt | 9 +++
.../arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt | 22 ++++++
.../arm64/qemu/boards/qemu-armv8a/index.rst.txt | 5 ++
.../reference/user/03_task_control.rst.txt | 6 ++
.../_sources/reference/user/07_signals.rst.txt | 5 +-
.../docs/latest/_sources/standards/posix.rst.txt | 18 +++--
.../latest/applications/examples/elf/index.html | 31 ++------
.../latest/applications/examples/module/index.html | 30 ++-----
.../applications/examples/posix_spawn/index.html | 33 ++------
.../latest/applications/examples/sotest/index.html | 30 ++-----
.../guides/concurrency/fork_vfork_migration.html | 9 ++-
.../latest/guides/porting/port_bootsequence.html | 8 +-
.../porting/port_relatedkernelconfigrations.html | 8 +-
.../latest/guides/programs/fully_linked_elf.html | 2 +-
.../guides/programs/partially_linked_elf.html | 2 +-
content/docs/latest/objects.inv | Bin 257473 -> 257506 bytes
.../os/drivers/character/analog/pot/index.html | 10 +++
content/docs/latest/os/filesystem/index.html | 1 +
content/docs/latest/os/filesystem/v9fs.html | 26 ++++++
content/docs/latest/os/libs/libbuiltin.html | 8 ++
.../boards/pimoroni-pico-plus-2-w/index.html | 2 +-
.../arm/rtl8730e/boards/rtl8730e_evb/index.html | 22 ++++++
.../arm/stm32c5/boards/nucleo-c562re/index.html | 60 +++++++++-----
.../arm64/fvp-v8r/boards/fvp-armv8r/index.html | 88 +++++++++++----------
.../arm64/qemu/boards/qemu-armv8a/index.html | 4 +
.../latest/reference/user/03_task_control.html | 5 ++
content/docs/latest/reference/user/07_signals.html | 5 +-
content/docs/latest/searchindex.js | 2 +-
content/docs/latest/standards/posix.html | 18 +++--
36 files changed, 351 insertions(+), 306 deletions(-)
diff --git
a/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
b/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
index 1988fd5a8b..65707789bd 100644
--- a/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/elf/index.rst.txt
@@ -27,41 +27,26 @@ Configuration options:
**Notes**:
-1. ``CFLAGS`` should be provided in ``CELFFLAGS``. RAM and FLASH memory
regions may
- require long allcs. For ARM, this might be::
-
- CELFFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in ``CXXELFFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
- definition, ``LDELFFLAGS``, to generate a relocatable ELF object. With GNU
LD,
- this should include ``-r`` and ``-e main`` (or ``_main`` on some
platforms).::
-
- LDELFFLAGS = -r -e main
-
- If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. ELF size: The ELF files in this example are, be default, quite large because
+1. The arch ``Toolchain.defs`` sets ``CELFFLAGS``, ``CXXELFFLAGS`` and
+ ``LDELFFLAGS``. For example, on ARM they contain ``-mlong-calls``, the entry
+ point ``_start`` and the linker script ``libs/libc/elf/gnu-elf.ld``. A board
+ ``scripts/Make.defs`` can add an option with ``+=``, for example
+ ``LDELFFLAGS += -melf32lriscv``. Do not set these variables again with
+ ``=``: the board then loses the options that the arch adds for the
+ configuration, for example ``crt0.o`` and the PIC and FDPIC options.
+
+2. ELF size: The ELF files in this example are, be default, quite large because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
un-necessary information from the ELF files.
-4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+3. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
That is because the Cygwin GCC does not generate ELF file but rather some
Windows-native binary format.
If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that be build the ELF executables for the ROMFS file system.
-5. Linker scripts. You might also want to use a linker scripts to combine
- sections better. An example linker script is at
- ``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
- your particular linker output to position additional sections correctly. The
- GNU LD ``LDELFFLAGS`` then might be::
-
- LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-
-6. When generating the ``romfs.img`` for external filesystem the image
(``romfs.img``)
+4. When generating the ``romfs.img`` for external filesystem the image
(``romfs.img``)
needs to be manually copied to the start of the configured
``CONFIG_EXAMPLES_ELF_DEVPATH``
using ``openocd`` or your preferred programmer.
diff --git
a/content/docs/latest/_sources/applications/examples/module/index.rst.txt
b/content/docs/latest/_sources/applications/examples/module/index.rst.txt
index e75a3e8658..04115a12a8 100644
--- a/content/docs/latest/_sources/applications/examples/module/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/module/index.rst.txt
@@ -20,43 +20,27 @@ configuration options:
**Notes**:
-1. ``CFLAGS`` should be provided in ``CMODULEFLAGS``. RAM and FLASH memory
regions
- may require long allcs. For ARM, this might be::
-
- CMODULEFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in ``CXXMODULEFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
- definition, LDMODULEFLAGS, to generate a relocatable ELF object. With GNU
LD,
- this should include ``-r`` and ``-e <entry point>``.::
-
- LDMODULEFLAGS = -r -e module_initialize
-
- If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be build as part
of the
+1. The arch ``Toolchain.defs`` sets ``CMODULEFLAGS`` and ``LDMODULEFLAGS``. For
+ example, on ARM they contain ``-mlong-calls``, ``-r`` and the linker script
+ ``libs/libc/elf/gnu-elf.ld``. A board ``scripts/Make.defs`` can add an
option
+ with ``+=``, for example ``LDMODULEFLAGS += -melf32lriscv``. Do not set
these
+ variables again with ``=``: the board then loses the options that the arch
+ adds for the configuration, for example the FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be build as part
of the
nuttx toolchain. Or can built from the ``genromfs`` sources that can be
found
in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
PATH variable must include the path to the ``genromfs`` executable.
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
un-necessary information from the ELF files.
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
That is because the Cygwin GCC does not generate ELF file but rather some
Windows-native binary format.
If you really want to do this, you can create a NuttX x86 ``buildroot``
toolchain and use that be build the ELF executables for the ROMFS file
system.
-
-6. Linker scripts. You might also want to use a linker scripts to combine
- sections better. An example linker script is at
- ``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
- particular linker output to position additional sections correctly. The GNU
- LD ``LDMODULEFLAGS`` then might be::
-
- LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
diff --git
a/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
b/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
index f9872edcdb..e4f83cb3c7 100644
---
a/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
+++
b/content/docs/latest/_sources/applications/examples/posix_spawn/index.rst.txt
@@ -32,42 +32,27 @@ Test-specific configuration options:
**Notes**:
-1. ``CFLAGS`` should be provided in ``CELFFLAGS``. RAM and FLASH memory
regions may
- require long allcs. For ARM, this might be::
-
- CELFFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in ``CXXELFFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
- definition, ``LDELFFLAGS``, to generate a relocatable ELF object. With GNU
LD,
- this should include ``-r`` and ``-e main`` (or ``_main`` on some
platforms).::
-
- LDELFFLAGS = -r -e main
-
- If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be build as part
of the
+1. The arch ``Toolchain.defs`` sets ``CELFFLAGS``, ``CXXELFFLAGS`` and
+ ``LDELFFLAGS``. For example, on ARM they contain ``-mlong-calls``, the entry
+ point ``_start`` and the linker script ``libs/libc/elf/gnu-elf.ld``. A board
+ ``scripts/Make.defs`` can add an option with ``+=``, for example
+ ``LDELFFLAGS += -melf32lriscv``. Do not set these variables again with
+ ``=``: the board then loses the options that the arch adds for the
+ configuration, for example ``crt0.o`` and the PIC and FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be build as part
of the
nuttx toolchain. Or can built from the ``genromfs`` sources that can be
found
in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
``PATH`` variable must include the path to the ``genromfs`` executable.
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
un-necessary information from the ELF files.
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
That is because the Cygwin GCC does not generate ELF file but rather some
Windows-native binary format.
If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that be build the ELF executables for the ROMFS file system.
-
-6. Linker scripts. You might also want to use a linker scripts to combine
- sections better. An example linker script is at
- ``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
- your particular linker output to position additional sections correctly. The
- GNU LD ``LDELFFLAGS`` then might be::
-
- LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
diff --git
a/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
b/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
index 1049591d7a..980f98541d 100644
--- a/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
+++ b/content/docs/latest/_sources/applications/examples/sotest/index.rst.txt
@@ -19,42 +19,26 @@ system. At run time, the shared library is installed and
exercised. Requires
**Notes**:
-1. ``CFLAGS`` should be provided in ``CMODULEFLAGS``. RAM and FLASH memory
regions
- may require long allcs. For ARM, this might be::
-
- CMODULEFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in ``CXXMODULEFLAGS``.
-
-2. Your top-level ``nuttx/Make.defs`` file must also include an appropriate
- definition, ``LDMODULEFLAGS``, to generate a relocatable ELF object. With
GNU
- LD, this should include ``-r`` and ``-e <entry point>``.::
-
- LDMODULEFLAGS = -r -e module_initialize
-
- If you use GCC to link, you make also need to include ``-nostdlib``.
-
-3. This example also requires ``genromfs``. ``genromfs`` can be built as part
of the
+1. The arch ``Toolchain.defs`` sets ``CMODULEFLAGS`` and ``LDMODULEFLAGS``. For
+ example, on ARM they contain ``-mlong-calls``, ``-r`` and the linker script
+ ``libs/libc/elf/gnu-elf.ld``. A board ``scripts/Make.defs`` can add an
option
+ with ``+=``, for example ``LDMODULEFLAGS += -melf32lriscv``. Do not set
these
+ variables again with ``=``: the board then loses the options that the arch
+ adds for the configuration, for example the FDPIC options.
+
+2. This example also requires ``genromfs``. ``genromfs`` can be built as part
of the
nuttx toolchain. Or can built from the ``genromfs`` sources that can be
found
in the NuttX tools repository (``genromfs-0.5.2.tar.gz``). In any event, the
``PATH`` variable must include the path to the ``genromfs`` executable.
-4. ELF size: The ELF files in this example are, be default, quite large because
+3. ELF size: The ELF files in this example are, be default, quite large because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the ``objcopy --strip-unneeded`` command to remove
un-necessary information from the ELF files.
-5. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
+4. Simulator. You cannot use this example with the NuttX simulator on Cygwin.
That is because the Cygwin GCC does not generate ELF file but rather some
Windows-native binary format.
If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that to build the ELF executables for the ROMFS file system.
-
-6. Linker scripts. You might also want to use a linker script to combine
- sections better. An example linker script is at
- ``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
- particular linker output to position additional sections correctly. The GNU
- LD ``LDMODULEFLAGS`` then might be::
-
- LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
diff --git
a/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
b/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
index b87af5d988..f6461b4a55 100644
---
a/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
+++
b/content/docs/latest/_sources/guides/concurrency/fork_vfork_migration.rst.txt
@@ -234,10 +234,11 @@ Note also on ``waitpid()`` after ``vfork()``
The ``vfork()`` parent is now resumed when the child's TCB is torn down, so by
the time it runs the child is completely gone. Where the child called
``exec()`` this makes no difference -- ``exec_swap()`` has already given the
-loaded program the child's pid, and that program is still running, so
-``waitpid()`` behaves normally. Where the child called ``_exit()``,
-``waitpid()`` can only return its status if ``CONFIG_SCHED_CHILD_STATUS`` is
-enabled; otherwise it returns ``ECHILD``, because NuttX does not retain the
+loaded program the child's pid, so ``waitpid()`` behaves normally. Where the
+child called ``_exit()``, or the loaded program exits before the parent calls
+``waitpid()``, ``waitpid()`` can only return its status if
+``CONFIG_SCHED_CHILD_STATUS`` is enabled (the default in a kernel build);
+otherwise it returns ``ECHILD``, because NuttX does not retain the
status of a task that no longer exists. That is a pre-existing property of
that configuration, not a change: the previous implementation blocked in a
libc ``waitpid(WNOWAIT)`` and an application's own ``waitpid()`` afterwards hit
diff --git
a/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
b/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
index 829626ef17..06def3e332 100644
--- a/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/character/analog/pot/index.rst.txt
@@ -60,4 +60,11 @@ Chip Bus Notes
MCP445X I2C Quad wiper, 257 taps. Terminal control via the
``ANIOC_MCP445X_*`` ioctls, see
``include/nuttx/analog/mcp445x.h``.
+MCP45XX I2C MCP4541, MCP4561, MCP4641 and MCP4661: 7/8-bit
+ (129/257 taps), one or two wipers, with a nonvolatile
+ wiper register. ``POTIOC_STORE_WIPER`` and
+ ``POTIOC_RECALL_WIPER`` use slot 0, the register that
+ is loaded at power-up. A store returns ``-EROFS`` when
+ the EEPROM is write protected or the wiper is locked.
+ Tested on the MCP4561 only.
========== ===== ====================================================
diff --git a/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
b/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
index cd9962a2da..5e56eeb427 100644
--- a/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
+++ b/content/docs/latest/_sources/os/filesystem/v9fs.rst.txt
@@ -26,6 +26,29 @@ last component of the path. ``rm`` of a link removes the
link, not its
target. A link with an absolute target is not followed and fails with
``ENOTSUP``, because the target is a path on the server.
+Owner and Group
+===============
+
+With ``CONFIG_SCHED_USER_IDENTITY``, V9FS attaches to the server once for
+each effective user ID that uses the mount. A new file, directory or
+symbolic link gets the effective user ID and the effective group ID of the
+caller. ``chown()`` and ``fchown()`` send ``Tsetattr``, and ``stat()``
+shows the owner and the group that the server returns.
+
+The server decides what it does with the owner. In QEMU, the
+``security_model`` option of ``-fsdev`` or ``-virtfs`` selects it:
+
+ - ``mapped-xattr``: QEMU keeps the owner, the group and the mode of a
+ file in extended attributes of the host file (``user.virtfs.uid``,
+ ``user.virtfs.gid``, ``user.virtfs.mode``). Use this model when
+ NuttX needs the owner and the group of its files.
+ - ``mapped-file``: the same, in hidden ``.virtfs_metadata`` files.
+ - ``passthrough``: QEMU changes the owner of the host file. QEMU must
+ run as root, else the creation of a file fails with ``EPERM``.
+ - ``none``: QEMU ignores the owner of a new file. ``stat()`` shows the
+ owner of the host file, and ``chown()`` fails with ``EPERM`` unless
+ QEMU runs as root.
+
V9FS Mount Command
==================
@@ -54,6 +77,9 @@ Similarly, we need to bring the corresponding parameters in
qemu
-fsdev local,security_model=none,id=fsdev1,path=<share-path> \
-device virtio-9p-device,id=fs1,fsdev=fsdev1,mount_tag=<mount_tag>
+Use ``security_model=mapped-xattr`` to keep the owner and the group of the
+files (see `Owner and Group`_).
+
For how to start virtio-9p in QEMU, please refer to the document:
- https://wiki.qemu.org/Documentation/9psetup
diff --git a/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
b/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
index 256e2dfdc5..0b46e574eb 100644
--- a/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
+++ b/content/docs/latest/_sources/os/libs/libbuiltin.rst.txt
@@ -44,6 +44,15 @@ to the one module you care about. Data is written under
``CONFIG_COVERAGE_GCOV_DUMP_REBOOT`` dumps it on reboot. From a shell it is
``gcov dump -d <path>``.
+A loadable module of a flat or protected build (an ELF program or a shared
+library) can use the coverage of ``CONFIG_COVERAGE_ALL`` with
+``CONFIG_COVERAGE_MINI`` and GCC. The system symbol table exports the
+coverage functions to the module, and the loader removes the data of the
+module when it unloads the module. The unload does not dump this data: dump
+it while the module is loaded, with ``gcov -d <path>`` or with a call to
+``__gcov_dump()`` in the module. The other runtimes do not export their
+coverage functions, so build a module for them without the coverage options.
+
Profiling
=========
diff --git
a/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
index 11306b5148..dd05e6cb15 100644
---
a/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.rst.txt
@@ -47,6 +47,8 @@ Supported in this NuttX port:
* General-purpose timers exposed as ``/dev/timerN`` character devices, with
microsecond timeouts and a periodic expiration callback
* On-chip watchdog exposed as a ``/dev/watchdog0`` character device
+* 12-bit ADC exposed as a ``/dev/adc0`` character device, sampled in polling
+ mode through the SDK fwlib register layer
* littlefs persistent storage mounted at ``/data`` (a dedicated SPI NOR flash
partition), backing the Wi-Fi key-value store
* Wi-Fi station and SoftAP through the ``wapi`` tool
@@ -190,6 +192,26 @@ opens the device, sets a timeout, and pings it::
nsh> wdog # run the watchdog example on /dev/watchdog0
+adc
+---
+
+Minimal NSH with the ADC driver and the ``adc`` example (``examples/adc``)
+enabled (no Wi-Fi). The board registers one converter at ``/dev/adc0`` (see
+``boards/arm/rtl8730e/rtl8730e_evb/src/rtl8730e_adc.c``) listing CH2-CH5,
+which each ``ANIOC_TRIGGER`` samples in list order. The chip has ten
+channels; CH0-CH5 are external and bound to the fixed pads PA0-PA5 (the
+pin-mux table names them ``TOUCHn_ADCn``), while the rest are internal and
+have no pad. PA0 and PA1 are not bonded out on the RTL8730EAM/EAH packages,
+so the table leaves CH0 and CH1 out. The pads reach the converter through
+the cap-touch function (``PINMUX_FUNCTION_CAPTOUCH``, function 18), shared
+with the cap-touch controller and, on PA2-PA5, the DMIC, so those functions
+cannot be used on the same pad. PA3/PA4 are also I2C1 pads and PA4/PA5 are
+UART1 or PWM pads: a config that registers one of those too must drop the
+clashing channel from the table. The input range is 0 to 3.3 V with 12-bit
+samples, reported as raw codes. Exercise it with the example::
+
+ nsh> adc -n 1 # sample CH2-CH5 once on /dev/adc0
+
Wi-Fi
=====
diff --git
a/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
b/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
index 8da7d5f60d..5bb87b8b0f 100644
---
a/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm64/qemu/boards/qemu-armv8a/index.rst.txt
@@ -227,6 +227,11 @@ Running with QEMU:
mnt/
proc/
+With ``security_model=none``, ``stat()`` shows the owner of the host file.
+To keep the owner, the group and the mode that NuttX gives to its files, use
+``security_model=mapped-xattr``. QEMU then keeps them in extended
+attributes of the host files. See :doc:`/os/filesystem/v9fs`.
+
--------------------------------------
Single Core with MTE Expansion (GICv3)
--------------------------------------
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 3b2c524174..56aec5eee1 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
@@ -82,6 +82,12 @@ there are three important configuration options that can
change that.
successful obtain the child task's exit status whether it is called
before the child task exits or not.
+ This option is on by default in a kernel build
+ (``CONFIG_BUILD_KERNEL``). There, programs start other programs with
+ ``posix_spawn()``, ``vfork()`` and ``exec()``, and POSIX requires
+ that a parent can get the exit status of a child that exited before
+ the parent waits for it.
+
- ``CONFIG_PREALLOC_CHILDSTATUS``. To prevent runaway child status
allocations and to improve allocation performance, child task exit
status structures are pre-allocated when the system boots. This
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 718362a337..236a4e4997 100644
--- a/content/docs/latest/_sources/reference/user/07_signals.rst.txt
+++ b/content/docs/latest/_sources/reference/user/07_signals.rst.txt
@@ -386,7 +386,9 @@ provided by NuttX:
If the effect of the set argument is to unblock a pending signal, then
no wait is performed.
- The original signal mask is restored when sigsuspend() returns.
+ The original signal mask is restored when sigsuspend() returns. The
+ handlers of the signals that ``set`` unblocks run first, with ``set``
+ still installed, also when sigsuspend() is a system call.
Waiting for an empty signal set stops a task without freeing any
resources (a very bad idea).
@@ -398,7 +400,6 @@ provided by NuttX:
**POSIX Compatibility:** Comparable to the POSIX interface of the same
name. Differences from the POSIX specification include:
- - POSIX does not indicate that the original signal mask is restored.
- POSIX states that sigsuspend() "suspends the task until delivery of a
signal whose action is either to execute a signal-catching function
or to terminate the task." Only delivery of the signal is required in
diff --git a/content/docs/latest/_sources/standards/posix.rst.txt
b/content/docs/latest/_sources/standards/posix.rst.txt
index 4e3d3ac034..6d010beb7a 100644
--- a/content/docs/latest/_sources/standards/posix.rst.txt
+++ b/content/docs/latest/_sources/standards/posix.rst.txt
@@ -193,9 +193,10 @@ POSIX.1 Option Requirements
| `_POSIX_THREAD_PROCESS_SHARED`_ | 201712L | |
+---------------------------------+-------------+---------------------------+
-.. [#fn9] NuttX provides dummy implementations for ``_POSIX_MEMORY_PROTECTION``
- which is sufficient for devices without MMU, but doesn't meet the
- requirement for devices with MMU.
+.. [#fn9] ``mprotect()`` changes the page permissions only with
+ ``CONFIG_ARCH_ADDRENV`` on arm64 and RISC-V. On other targets it
+ checks the arguments and changes nothing, which is sufficient for
+ devices without MMU.
POSIX PSE54 - Multipurpose
--------------------------
@@ -2923,11 +2924,16 @@ _POSIX_MEMORY_PROTECTION
+--------------------------------+----------------+
| API | Support |
+================================+================+
-| :c:func:`mprotect` | Dummy [#fn17]_ |
+| :c:func:`mprotect` | Yes [#fn17]_ |
+--------------------------------+----------------+
-.. [#fn17] The function returns a success value but doesn't implement
- the required functionality.
+.. [#fn17] All builds return ``EINVAL`` when ``addr`` is not a multiple of
+ ``sysconf(_SC_PAGESIZE)`` or ``prot`` has an unknown bit. With
+ ``CONFIG_ARCH_ADDRENV`` on arm64 and RISC-V the function changes
+ the page permissions, and returns ``ENOMEM`` when a page of the
+ range is not mapped. Other configurations return a success value
+ for a valid request and change nothing: without an MMU the
+ permissions cannot be enforced.
_POSIX_PRIORITIZED_IO
---------------------
diff --git a/content/docs/latest/applications/examples/elf/index.html
b/content/docs/latest/applications/examples/elf/index.html
index aab6d6da51..a4d59ed9f8 100644
--- a/content/docs/latest/applications/examples/elf/index.html
+++ b/content/docs/latest/applications/examples/elf/index.html
@@ -434,21 +434,13 @@ be tested. Default: <code class="docutils literal
notranslate"><span class="pre"
</ul>
<p><strong>Notes</strong>:</p>
<ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span
class="pre">CFLAGS</span></code> should be provided in <code class="docutils
literal notranslate"><span class="pre">CELFFLAGS</span></code>. RAM and FLASH
memory regions may
-require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>CELFFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils
literal notranslate"><span class="pre">CXXELFFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code>, to generate a relocatable ELF object.
With GNU LD,
-this should include <code class="docutils literal notranslate"><span
class="pre">-r</span></code> and <code class="docutils literal
notranslate"><span class="pre">-e</span> <span class="pre">main</span></code>
(or <code class="docutils literal notranslate"><span
class="pre">_main</span></code> on some platforms).:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal
notranslate"><span class="pre">CELFFLAGS</span></code>, <code class="docutils
literal notranslate"><span class="pre">CXXELFFLAGS</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code>. For example, on ARM they contain <code
class="docutils literal notranslate"><span
class="pre">-mlong-calls</span></code>, the entry
+point <code class="docutils literal notranslate"><span
class="pre">_start</span></code> and the linker script <code class="docutils
literal notranslate"><span class="pre">libs/libc/elf/gnu-elf.ld</span></code>.
A board
+<code class="docutils literal notranslate"><span
class="pre">scripts/Make.defs</span></code> can add an option with <code
class="docutils literal notranslate"><span class="pre">+=</span></code>, for
example
+<code class="docutils literal notranslate"><span class="pre">LDELFFLAGS</span>
<span class="pre">+=</span> <span class="pre">-melf32lriscv</span></code>. Do
not set these variables again with
+<code class="docutils literal notranslate"><span class="pre">=</span></code>:
the board then loses the options that the arch adds for the
+configuration, for example <code class="docutils literal notranslate"><span
class="pre">crt0.o</span></code> and the PIC and FDPIC options.</p></li>
<li><p>ELF size: The ELF files in this example are, be default, quite large
because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the <code class="docutils literal notranslate"><span
class="pre">objcopy</span> <span class="pre">--strip-unneeded</span></code>
command to remove
@@ -459,15 +451,6 @@ Windows-native binary format.</p>
<p>If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that be build the ELF executables for the ROMFS file system.</p>
</li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span
class="pre">nuttx/binfmt/elf/gnu-elf.ld</span></code>. That example might have
to be tuned for
-your particular linker output to position additional sections correctly. The
-GNU LD <code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
<li><p>When generating the <code class="docutils literal notranslate"><span
class="pre">romfs.img</span></code> for external filesystem the image (<code
class="docutils literal notranslate"><span class="pre">romfs.img</span></code>)
needs to be manually copied to the start of the configured <code
class="docutils literal notranslate"><span
class="pre">CONFIG_EXAMPLES_ELF_DEVPATH</span></code>
using <code class="docutils literal notranslate"><span
class="pre">openocd</span></code> or your preferred programmer.</p></li>
diff --git a/content/docs/latest/applications/examples/module/index.html
b/content/docs/latest/applications/examples/module/index.html
index 8c04c33ae2..b94613a2a8 100644
--- a/content/docs/latest/applications/examples/module/index.html
+++ b/content/docs/latest/applications/examples/module/index.html
@@ -428,21 +428,12 @@ be tested. Default: <code class="docutils literal
notranslate"><span class="pre"
</ul>
<p><strong>Notes</strong>:</p>
<ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span
class="pre">CFLAGS</span></code> should be provided in <code class="docutils
literal notranslate"><span class="pre">CMODULEFLAGS</span></code>. RAM and
FLASH memory regions
-may require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>CMODULEFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils
literal notranslate"><span class="pre">CXXMODULEFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, LDMODULEFLAGS, to generate a relocatable ELF object. With GNU LD,
-this should include <code class="docutils literal notranslate"><span
class="pre">-r</span></code> and <code class="docutils literal
notranslate"><span class="pre">-e</span> <span class="pre"><entry</span>
<span class="pre">point></span></code>.:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal
notranslate"><span class="pre">CMODULEFLAGS</span></code> and <code
class="docutils literal notranslate"><span
class="pre">LDMODULEFLAGS</span></code>. For
+example, on ARM they contain <code class="docutils literal notranslate"><span
class="pre">-mlong-calls</span></code>, <code class="docutils literal
notranslate"><span class="pre">-r</span></code> and the linker script
+<code class="docutils literal notranslate"><span
class="pre">libs/libc/elf/gnu-elf.ld</span></code>. A board <code
class="docutils literal notranslate"><span
class="pre">scripts/Make.defs</span></code> can add an option
+with <code class="docutils literal notranslate"><span
class="pre">+=</span></code>, for example <code class="docutils literal
notranslate"><span class="pre">LDMODULEFLAGS</span> <span class="pre">+=</span>
<span class="pre">-melf32lriscv</span></code>. Do not set these
+variables again with <code class="docutils literal notranslate"><span
class="pre">=</span></code>: the board then loses the options that the arch
+adds for the configuration, for example the FDPIC options.</p></li>
<li><p>This example also requires <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils
literal notranslate"><span class="pre">genromfs</span></code> can be build as
part of the
nuttx toolchain. Or can built from the <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code> sources that can be found
in the NuttX tools repository (<code class="docutils literal
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any
event, the
@@ -458,15 +449,6 @@ Windows-native binary format.</p>
toolchain and use that be build the ELF executables for the ROMFS file
system.</p>
</li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span
class="pre">nuttx/libc/elf/gnu-elf.ld</span></code>. That example might have to
be tuned for your
-particular linker output to position additional sections correctly. The GNU
-LD <code class="docutils literal notranslate"><span
class="pre">LDMODULEFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-T$(TOPDIR)/libc/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
</ol>
</section>
diff --git a/content/docs/latest/applications/examples/posix_spawn/index.html
b/content/docs/latest/applications/examples/posix_spawn/index.html
index 1446059220..a560b123f9 100644
--- a/content/docs/latest/applications/examples/posix_spawn/index.html
+++ b/content/docs/latest/applications/examples/posix_spawn/index.html
@@ -439,23 +439,13 @@ executables to be tested. Default: <code class="docutils
literal notranslate"><s
</ul>
<p><strong>Notes</strong>:</p>
<ol class="arabic">
-<li><dl>
-<dt><code class="docutils literal notranslate"><span
class="pre">CFLAGS</span></code> should be provided in <code class="docutils
literal notranslate"><span class="pre">CELFFLAGS</span></code>. RAM and FLASH
memory regions may</dt><dd><p>require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>CELFFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils
literal notranslate"><span class="pre">CXXELFFLAGS</span></code>.</p>
-</dd>
-</dl>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code>, to generate a relocatable ELF object.
With GNU LD,
-this should include <code class="docutils literal notranslate"><span
class="pre">-r</span></code> and <code class="docutils literal
notranslate"><span class="pre">-e</span> <span class="pre">main</span></code>
(or <code class="docutils literal notranslate"><span
class="pre">_main</span></code> on some platforms).:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal
notranslate"><span class="pre">CELFFLAGS</span></code>, <code class="docutils
literal notranslate"><span class="pre">CXXELFFLAGS</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code>. For example, on ARM they contain <code
class="docutils literal notranslate"><span
class="pre">-mlong-calls</span></code>, the entry
+point <code class="docutils literal notranslate"><span
class="pre">_start</span></code> and the linker script <code class="docutils
literal notranslate"><span class="pre">libs/libc/elf/gnu-elf.ld</span></code>.
A board
+<code class="docutils literal notranslate"><span
class="pre">scripts/Make.defs</span></code> can add an option with <code
class="docutils literal notranslate"><span class="pre">+=</span></code>, for
example
+<code class="docutils literal notranslate"><span class="pre">LDELFFLAGS</span>
<span class="pre">+=</span> <span class="pre">-melf32lriscv</span></code>. Do
not set these variables again with
+<code class="docutils literal notranslate"><span class="pre">=</span></code>:
the board then loses the options that the arch adds for the
+configuration, for example <code class="docutils literal notranslate"><span
class="pre">crt0.o</span></code> and the PIC and FDPIC options.</p></li>
<li><p>This example also requires <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils
literal notranslate"><span class="pre">genromfs</span></code> can be build as
part of the
nuttx toolchain. Or can built from the <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code> sources that can be found
in the NuttX tools repository (<code class="docutils literal
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any
event, the
@@ -470,15 +460,6 @@ Windows-native binary format.</p>
<p>If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that be build the ELF executables for the ROMFS file system.</p>
</li>
-<li><p>Linker scripts. You might also want to use a linker scripts to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span
class="pre">nuttx/binfmt/elf/gnu-elf.ld</span></code>. That example might have
to be tuned for
-your particular linker output to position additional sections correctly. The
-GNU LD <code class="docutils literal notranslate"><span
class="pre">LDELFFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDELFFLAGS = -r -e main
-T$(TOPDIR)/binfmt/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
</ol>
</section>
diff --git a/content/docs/latest/applications/examples/sotest/index.html
b/content/docs/latest/applications/examples/sotest/index.html
index 5da1485558..f84423d421 100644
--- a/content/docs/latest/applications/examples/sotest/index.html
+++ b/content/docs/latest/applications/examples/sotest/index.html
@@ -427,21 +427,12 @@ be tested. Default: <code class="docutils literal
notranslate"><span class="pre"
</ul>
<p><strong>Notes</strong>:</p>
<ol class="arabic">
-<li><p><code class="docutils literal notranslate"><span
class="pre">CFLAGS</span></code> should be provided in <code class="docutils
literal notranslate"><span class="pre">CMODULEFLAGS</span></code>. RAM and
FLASH memory regions
-may require long allcs. For ARM, this might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>CMODULEFLAGS = $(CFLAGS) -mlong-calls
-</pre></div>
-</div>
-<p>Similarly for C++ flags which must be provided in <code class="docutils
literal notranslate"><span class="pre">CXXMODULEFLAGS</span></code>.</p>
-</li>
-<li><p>Your top-level <code class="docutils literal notranslate"><span
class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
-definition, <code class="docutils literal notranslate"><span
class="pre">LDMODULEFLAGS</span></code>, to generate a relocatable ELF object.
With GNU
-LD, this should include <code class="docutils literal notranslate"><span
class="pre">-r</span></code> and <code class="docutils literal
notranslate"><span class="pre">-e</span> <span class="pre"><entry</span>
<span class="pre">point></span></code>.:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-</pre></div>
-</div>
-<p>If you use GCC to link, you make also need to include <code class="docutils
literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
-</li>
+<li><p>The arch <code class="docutils literal notranslate"><span
class="pre">Toolchain.defs</span></code> sets <code class="docutils literal
notranslate"><span class="pre">CMODULEFLAGS</span></code> and <code
class="docutils literal notranslate"><span
class="pre">LDMODULEFLAGS</span></code>. For
+example, on ARM they contain <code class="docutils literal notranslate"><span
class="pre">-mlong-calls</span></code>, <code class="docutils literal
notranslate"><span class="pre">-r</span></code> and the linker script
+<code class="docutils literal notranslate"><span
class="pre">libs/libc/elf/gnu-elf.ld</span></code>. A board <code
class="docutils literal notranslate"><span
class="pre">scripts/Make.defs</span></code> can add an option
+with <code class="docutils literal notranslate"><span
class="pre">+=</span></code>, for example <code class="docutils literal
notranslate"><span class="pre">LDMODULEFLAGS</span> <span class="pre">+=</span>
<span class="pre">-melf32lriscv</span></code>. Do not set these
+variables again with <code class="docutils literal notranslate"><span
class="pre">=</span></code>: the board then loses the options that the arch
+adds for the configuration, for example the FDPIC options.</p></li>
<li><p>This example also requires <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code>. <code class="docutils
literal notranslate"><span class="pre">genromfs</span></code> can be built as
part of the
nuttx toolchain. Or can built from the <code class="docutils literal
notranslate"><span class="pre">genromfs</span></code> sources that can be found
in the NuttX tools repository (<code class="docutils literal
notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any
event, the
@@ -456,15 +447,6 @@ Windows-native binary format.</p>
<p>If you really want to do this, you can create a NuttX x86 buildroot
toolchain
and use that to build the ELF executables for the ROMFS file system.</p>
</li>
-<li><p>Linker scripts. You might also want to use a linker script to combine
-sections better. An example linker script is at
-<code class="docutils literal notranslate"><span
class="pre">nuttx/libc/elf/gnu-elf.ld</span></code>. That example might have to
be tuned for your
-particular linker output to position additional sections correctly. The GNU
-LD <code class="docutils literal notranslate"><span
class="pre">LDMODULEFLAGS</span></code> then might be:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
-T$(TOPDIR)/libc/elf/gnu-elf.ld
-</pre></div>
-</div>
-</li>
</ol>
</section>
diff --git a/content/docs/latest/guides/concurrency/fork_vfork_migration.html
b/content/docs/latest/guides/concurrency/fork_vfork_migration.html
index a26e59d646..ac3e97e90e 100644
--- a/content/docs/latest/guides/concurrency/fork_vfork_migration.html
+++ b/content/docs/latest/guides/concurrency/fork_vfork_migration.html
@@ -474,10 +474,11 @@ kernel build) select it today.</p>
<p>The <code class="docutils literal notranslate"><span
class="pre">vfork()</span></code> parent is now resumed when the child’s TCB is
torn down, so by
the time it runs the child is completely gone. Where the child called
<code class="docutils literal notranslate"><span
class="pre">exec()</span></code> this makes no difference – <code
class="docutils literal notranslate"><span
class="pre">exec_swap()</span></code> has already given the
-loaded program the child’s pid, and that program is still running, so
-<code class="docutils literal notranslate"><span
class="pre">waitpid()</span></code> behaves normally. Where the child called
<code class="docutils literal notranslate"><span
class="pre">_exit()</span></code>,
-<code class="docutils literal notranslate"><span
class="pre">waitpid()</span></code> can only return its status if <code
class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_CHILD_STATUS</span></code> is
-enabled; otherwise it returns <code class="docutils literal notranslate"><span
class="pre">ECHILD</span></code>, because NuttX does not retain the
+loaded program the child’s pid, so <code class="docutils literal
notranslate"><span class="pre">waitpid()</span></code> behaves normally. Where
the
+child called <code class="docutils literal notranslate"><span
class="pre">_exit()</span></code>, or the loaded program exits before the
parent calls
+<code class="docutils literal notranslate"><span
class="pre">waitpid()</span></code>, <code class="docutils literal
notranslate"><span class="pre">waitpid()</span></code> can only return its
status if
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_CHILD_STATUS</span></code> is enabled (the default in
a kernel build);
+otherwise it returns <code class="docutils literal notranslate"><span
class="pre">ECHILD</span></code>, because NuttX does not retain the
status of a task that no longer exists. That is a pre-existing property of
that configuration, not a change: the previous implementation blocked in a
libc <code class="docutils literal notranslate"><span
class="pre">waitpid(WNOWAIT)</span></code> and an application’s own <code
class="docutils literal notranslate"><span class="pre">waitpid()</span></code>
afterwards hit
diff --git a/content/docs/latest/guides/porting/port_bootsequence.html
b/content/docs/latest/guides/porting/port_bootsequence.html
index 543c1e7c12..e64a702065 100644
--- a/content/docs/latest/guides/porting/port_bootsequence.html
+++ b/content/docs/latest/guides/porting/port_bootsequence.html
@@ -151,13 +151,7 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
-<li class="toctree-l3 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
-</ul>
-</li>
+<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
<li class="toctree-l2"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git
a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
index d718a3e872..107389719a 100644
--- a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
+++ b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
@@ -151,13 +151,7 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
-<li class="toctree-l3"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
-<li class="toctree-l3 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
-</ul>
-</li>
+<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
<li class="toctree-l2"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html
b/content/docs/latest/guides/programs/fully_linked_elf.html
index e3cd493e6a..57739bffdf 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="067e4e4e-7b94-4858-8389-4246981d846a"
name="067e4e4e-7b94-4858-8389-4246981d846a" type="checkbox"><label
class="sphinx_collapse__label" for="067e4e4e-7b94-4858-8389-4246981d846a"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="7b2cda72-3f8d-4fb8-93f9-847206cc98e1"
name="7b2cda72-3f8d-4fb8-93f9-847206cc98e1" type="checkbox"><label
class="sphinx_collapse__label" for="7b2cda72-3f8d-4fb8-93f9-847206cc98e1"><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 58cbdd815b..3b587e4dea 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="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe"
name="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe" type="checkbox"><label
class="sphinx_collapse__label" for="2afd7bab-57f5-4e7c-984f-46f9f0b4acfe"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="acdd359f-e631-4bf9-b1e7-4ef29187d7ee"
name="acdd359f-e631-4bf9-b1e7-4ef29187d7ee" type="checkbox"><label
class="sphinx_collapse__label" for="acdd359f-e631-4bf9-b1e7-4ef29187d7ee"><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 f7ea0e8baf..72ec31e7f0 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/analog/pot/index.html
b/content/docs/latest/os/drivers/character/analog/pot/index.html
index 9e0271bf63..9ecdd86256 100644
--- a/content/docs/latest/os/drivers/character/analog/pot/index.html
+++ b/content/docs/latest/os/drivers/character/analog/pot/index.html
@@ -295,6 +295,16 @@ them through chip-specific ioctl commands forwarded via
<code class="docutils li
<code class="docutils literal notranslate"><span
class="pre">ANIOC_MCP445X_*</span></code> ioctls, see
<code class="docutils literal notranslate"><span
class="pre">include/nuttx/analog/mcp445x.h</span></code>.</p></td>
</tr>
+<tr class="row-odd"><td><p>MCP45XX</p></td>
+<td><p>I2C</p></td>
+<td><p>MCP4541, MCP4561, MCP4641 and MCP4661: 7/8-bit
+(129/257 taps), one or two wipers, with a nonvolatile
+wiper register. <code class="docutils literal notranslate"><span
class="pre">POTIOC_STORE_WIPER</span></code> and
+<code class="docutils literal notranslate"><span
class="pre">POTIOC_RECALL_WIPER</span></code> use slot 0, the register that
+is loaded at power-up. A store returns <code class="docutils literal
notranslate"><span class="pre">-EROFS</span></code> when
+the EEPROM is write protected or the wiper is locked.
+Tested on the MCP4561 only.</p></td>
+</tr>
</tbody>
</table>
</section>
diff --git a/content/docs/latest/os/filesystem/index.html
b/content/docs/latest/os/filesystem/index.html
index 09730ce14d..ca45cd29ce 100644
--- a/content/docs/latest/os/filesystem/index.html
+++ b/content/docs/latest/os/filesystem/index.html
@@ -1150,6 +1150,7 @@ array in <code class="docutils literal notranslate"><span
class="pre">fs/mount/f
<li class="toctree-l1"><a class="reference internal"
href="v9fs.html">V9FS</a></li>
<li class="toctree-l1"><a class="reference internal"
href="v9fs.html#adding-v9fs-to-the-nuttx-configuration">Adding V9FS to the
NuttX Configuration</a></li>
<li class="toctree-l1"><a class="reference internal"
href="v9fs.html#symbolic-links">Symbolic Links</a></li>
+<li class="toctree-l1"><a class="reference internal"
href="v9fs.html#owner-and-group">Owner and Group</a></li>
<li class="toctree-l1"><a class="reference internal"
href="v9fs.html#v9fs-mount-command">V9FS Mount Command</a></li>
</ul>
</div>
diff --git a/content/docs/latest/os/filesystem/v9fs.html
b/content/docs/latest/os/filesystem/v9fs.html
index b476e68c17..b956e84b27 100644
--- a/content/docs/latest/os/filesystem/v9fs.html
+++ b/content/docs/latest/os/filesystem/v9fs.html
@@ -222,6 +222,30 @@ last component of the path. <code class="docutils literal
notranslate"><span cla
target. A link with an absolute target is not followed and fails with
<code class="docutils literal notranslate"><span
class="pre">ENOTSUP</span></code>, because the target is a path on the
server.</p>
</section>
+<section id="owner-and-group">
+<h1>Owner and Group<a class="headerlink" href="#owner-and-group"
title="Permalink to this heading"></a></h1>
+<p>With <code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_USER_IDENTITY</span></code>, V9FS attaches to the
server once for
+each effective user ID that uses the mount. A new file, directory or
+symbolic link gets the effective user ID and the effective group ID of the
+caller. <code class="docutils literal notranslate"><span
class="pre">chown()</span></code> and <code class="docutils literal
notranslate"><span class="pre">fchown()</span></code> send <code
class="docutils literal notranslate"><span class="pre">Tsetattr</span></code>,
and <code class="docutils literal notranslate"><span
class="pre">stat()</span></code>
+shows the owner and the group that the server returns.</p>
+<p>The server decides what it does with the owner. In QEMU, the
+<code class="docutils literal notranslate"><span
class="pre">security_model</span></code> option of <code class="docutils
literal notranslate"><span class="pre">-fsdev</span></code> or <code
class="docutils literal notranslate"><span class="pre">-virtfs</span></code>
selects it:</p>
+<blockquote>
+<div><ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">mapped-xattr</span></code>: QEMU keeps the owner, the group and the
mode of a
+file in extended attributes of the host file (<code class="docutils literal
notranslate"><span class="pre">user.virtfs.uid</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">user.virtfs.gid</span></code>, <code class="docutils literal
notranslate"><span class="pre">user.virtfs.mode</span></code>). Use this model
when
+NuttX needs the owner and the group of its files.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">mapped-file</span></code>: the same, in hidden <code
class="docutils literal notranslate"><span
class="pre">.virtfs_metadata</span></code> files.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">passthrough</span></code>: QEMU changes the owner of the host file.
QEMU must
+run as root, else the creation of a file fails with <code class="docutils
literal notranslate"><span class="pre">EPERM</span></code>.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">none</span></code>: QEMU ignores the owner of a new file. <code
class="docutils literal notranslate"><span class="pre">stat()</span></code>
shows the
+owner of the host file, and <code class="docutils literal notranslate"><span
class="pre">chown()</span></code> fails with <code class="docutils literal
notranslate"><span class="pre">EPERM</span></code> unless
+QEMU runs as root.</p></li>
+</ul>
+</div></blockquote>
+</section>
<section id="v9fs-mount-command">
<h1>V9FS Mount Command<a class="headerlink" href="#v9fs-mount-command"
title="Permalink to this heading"></a></h1>
<p>In V9FS, we have some special parameters</p>
@@ -246,6 +270,8 @@ passing. Here are some examples:</p>
<span class="go">-device
virtio-9p-device,id=fs1,fsdev=fsdev1,mount_tag=<mount_tag></span>
</pre></div>
</div>
+<p>Use <code class="docutils literal notranslate"><span
class="pre">security_model=mapped-xattr</span></code> to keep the owner and the
group of the
+files (see <a class="reference internal" href="#owner-and-group">Owner and
Group</a>).</p>
<p>For how to start virtio-9p in QEMU, please refer to the document:</p>
<blockquote>
<div><ul class="simple">
diff --git a/content/docs/latest/os/libs/libbuiltin.html
b/content/docs/latest/os/libs/libbuiltin.html
index 25e7cbb702..fb9810efaa 100644
--- a/content/docs/latest/os/libs/libbuiltin.html
+++ b/content/docs/latest/os/libs/libbuiltin.html
@@ -241,6 +241,14 @@ to the one module you care about. Data is written under
<code class="docutils literal notranslate"><span
class="pre">CONFIG_COVERAGE_DEFAULT_PREFIX</span></code>, <code class="docutils
literal notranslate"><span class="pre">/data</span></code> by default, and
<code class="docutils literal notranslate"><span
class="pre">CONFIG_COVERAGE_GCOV_DUMP_REBOOT</span></code> dumps it on reboot.
From a shell it is
<code class="docutils literal notranslate"><span class="pre">gcov</span> <span
class="pre">dump</span> <span class="pre">-d</span> <span
class="pre"><path></span></code>.</p>
+<p>A loadable module of a flat or protected build (an ELF program or a shared
+library) can use the coverage of <code class="docutils literal
notranslate"><span class="pre">CONFIG_COVERAGE_ALL</span></code> with
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_COVERAGE_MINI</span></code> and GCC. The system symbol
table exports the
+coverage functions to the module, and the loader removes the data of the
+module when it unloads the module. The unload does not dump this data: dump
+it while the module is loaded, with <code class="docutils literal
notranslate"><span class="pre">gcov</span> <span class="pre">-d</span> <span
class="pre"><path></span></code> or with a call to
+<code class="docutils literal notranslate"><span
class="pre">__gcov_dump()</span></code> in the module. The other runtimes do
not export their
+coverage functions, so build a module for them without the coverage
options.</p>
</section>
<section id="profiling">
<h2>Profiling<a class="headerlink" href="#profiling" title="Permalink to this
heading"></a></h2>
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 56cee78a5e..3e9f042e53 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/rtl8730e/boards/rtl8730e_evb/index.html
b/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
index 0a529d23a1..e81f3fa332 100644
--- a/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
+++ b/content/docs/latest/platforms/arm/rtl8730e/boards/rtl8730e_evb/index.html
@@ -292,6 +292,8 @@ the SDK fwlib timer layer</p></li>
<li><p>General-purpose timers exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/timerN</span></code> character devices, with
microsecond timeouts and a periodic expiration callback</p></li>
<li><p>On-chip watchdog exposed as a <code class="docutils literal
notranslate"><span class="pre">/dev/watchdog0</span></code> character
device</p></li>
+<li><p>12-bit ADC exposed as a <code class="docutils literal
notranslate"><span class="pre">/dev/adc0</span></code> character device,
sampled in polling
+mode through the SDK fwlib register layer</p></li>
<li><p>littlefs persistent storage mounted at <code class="docutils literal
notranslate"><span class="pre">/data</span></code> (a dedicated SPI NOR flash
partition), backing the Wi-Fi key-value store</p></li>
<li><p>Wi-Fi station and SoftAP through the <code class="docutils literal
notranslate"><span class="pre">wapi</span></code> tool</p></li>
@@ -429,6 +431,26 @@ opens the device, sets a timeout, and pings it:</p>
</pre></div>
</div>
</section>
+<section id="adc">
+<h3>adc<a class="headerlink" href="#adc" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the ADC driver and the <code class="docutils literal
notranslate"><span class="pre">adc</span></code> example (<code class="docutils
literal notranslate"><span class="pre">examples/adc</span></code>)
+enabled (no Wi-Fi). The board registers one converter at <code class="docutils
literal notranslate"><span class="pre">/dev/adc0</span></code> (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8730e/rtl8730e_evb/src/rtl8730e_adc.c</span></code>)
listing CH2-CH5,
+which each <code class="docutils literal notranslate"><span
class="pre">ANIOC_TRIGGER</span></code> samples in list order. The chip has ten
+channels; CH0-CH5 are external and bound to the fixed pads PA0-PA5 (the
+pin-mux table names them <code class="docutils literal notranslate"><span
class="pre">TOUCHn_ADCn</span></code>), while the rest are internal and
+have no pad. PA0 and PA1 are not bonded out on the RTL8730EAM/EAH packages,
+so the table leaves CH0 and CH1 out. The pads reach the converter through
+the cap-touch function (<code class="docutils literal notranslate"><span
class="pre">PINMUX_FUNCTION_CAPTOUCH</span></code>, function 18), shared
+with the cap-touch controller and, on PA2-PA5, the DMIC, so those functions
+cannot be used on the same pad. PA3/PA4 are also I2C1 pads and PA4/PA5 are
+UART1 or PWM pads: a config that registers one of those too must drop the
+clashing channel from the table. The input range is 0 to 3.3 V with 12-bit
+samples, reported as raw codes. Exercise it with the example:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> adc -n 1 # sample CH2-CH5 once
on /dev/adc0
+</pre></div>
+</div>
+</section>
</section>
<section id="wi-fi">
<h2>Wi-Fi<a class="headerlink" href="#wi-fi" title="Permalink to this
heading"></a></h2>
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 9675e5526b..7ba1bdefbb 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,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"><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>
</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/arm64/fvp-v8r/boards/fvp-armv8r/index.html
b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
index 16a9a4c7e6..b9d62e1b4d 100644
--- a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
+++ b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
@@ -160,52 +160,56 @@
<li class="toctree-l2"><a class="reference internal"
href="../../../../z80/index.html">Z80</a></li>
<li class="toctree-l2 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html">Tags</a><ul class="current">
<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 current"><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 current"><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"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-aifoundry.html">vendor:aifoundry (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-allwinner.html">vendor:allwinner (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-amd.html">vendor:amd (1)</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/vendor-arm.html">vendor:arm (5)</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/fvp-v8r-aarch32/boards/fvp-armv8r-aarch32/index.html">ARM
Armv8-R AEM FVP</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an500/index.html">MPS2 AN500
Board</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an521/index.html">MPS2 AN521
Board</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps3-an547/index.html">MPS3 AN547
Board</a></li>
+<li class="toctree-l5 current"><a class="current reference internal"
href="#">FVP ARMv8-r</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-artery.html">vendor:artery (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-bouffalolab.html">vendor:bouffalolab
(2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-broadcom.html">vendor:broadcom (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-canaan.html">vendor:canaan (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-espressif.html">vendor:espressif (35)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-eswin.html">vendor:eswin (3)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-example.html">vendor:example (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-gigadevice.html">vendor:gigadevice
(7)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-holtek.html">vendor:holtek (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-hpmicro.html">vendor:hpmicro (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-infineon.html">vendor:infineon (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ingenic.html">vendor:ingenic (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-maxim.html">vendor:maxim (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-microchip.html">vendor:microchip (46)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-moxa.html">vendor:moxa (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nations.html">vendor:nations (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nordic.html">vendor:nordic (17)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nuvoton.html">vendor:nuvoton (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nxp.html">vendor:nxp (58)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-onsemi.html">vendor:onsemi (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-phyplus.html">vendor:phyplus (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-quicklogic.html">vendor:quicklogic
(1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-raspberry-pi.html">vendor:raspberry-pi
(18)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-realtek.html">vendor:realtek (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-renesas.html">vendor:renesas (7)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-rockchip.html">vendor:rockchip (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sifive.html">vendor:sifive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-silabs.html">vendor:silabs (3)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sony.html">vendor:sony (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sophgo.html">vendor:sophgo (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-st.html">vendor:st (114)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-starfive.html">vendor:starfive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-thead.html">vendor:thead (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ti.html">vendor:ti (10)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-zilog.html">vendor:zilog (9)</a></li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
b/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
index f565212c73..c38f62f57f 100644
--- a/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
+++ b/content/docs/latest/platforms/arm64/qemu/boards/qemu-armv8a/index.html
@@ -436,6 +436,10 @@ are supported simultaneously in the netnsh
configuration</p>
<span class="go"> proc/</span>
</pre></div>
</div>
+<p>With <code class="docutils literal notranslate"><span
class="pre">security_model=none</span></code>, <code class="docutils literal
notranslate"><span class="pre">stat()</span></code> shows the owner of the host
file.
+To keep the owner, the group and the mode that NuttX gives to its files, use
+<code class="docutils literal notranslate"><span
class="pre">security_model=mapped-xattr</span></code>. QEMU then keeps them in
extended
+attributes of the host files. See <a class="reference internal"
href="../../../../../os/filesystem/v9fs.html"><span
class="doc">V9FS</span></a>.</p>
</section>
<section id="single-core-with-mte-expansion-gicv3">
<h4>Single Core with MTE Expansion (GICv3)<a class="headerlink"
href="#single-core-with-mte-expansion-gicv3" title="Permalink to this
heading"></a></h4>
diff --git a/content/docs/latest/reference/user/03_task_control.html
b/content/docs/latest/reference/user/03_task_control.html
index c176c99e6b..58197495b3 100644
--- a/content/docs/latest/reference/user/03_task_control.html
+++ b/content/docs/latest/reference/user/03_task_control.html
@@ -293,6 +293,11 @@ is in place.</p>
child task is retained after the child exits and the wait will
successful obtain the child task’s exit status whether it is called
before the child task exits or not.</p>
+<p>This option is on by default in a kernel build
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_BUILD_KERNEL</span></code>). There, programs start other
programs with
+<code class="docutils literal notranslate"><span
class="pre">posix_spawn()</span></code>, <code class="docutils literal
notranslate"><span class="pre">vfork()</span></code> and <code class="docutils
literal notranslate"><span class="pre">exec()</span></code>, and POSIX requires
+that a parent can get the exit status of a child that exited before
+the parent waits for it.</p>
</li>
<li><p><code class="docutils literal notranslate"><span
class="pre">CONFIG_PREALLOC_CHILDSTATUS</span></code>. To prevent runaway child
status
allocations and to improve allocation performance, child task exit
diff --git a/content/docs/latest/reference/user/07_signals.html
b/content/docs/latest/reference/user/07_signals.html
index e03c3f4d29..482314b67e 100644
--- a/content/docs/latest/reference/user/07_signals.html
+++ b/content/docs/latest/reference/user/07_signals.html
@@ -761,7 +761,9 @@ the set of signals pointed to by the argument set and then
suspends the
task until delivery of a signal to the task.</p>
<p>If the effect of the set argument is to unblock a pending signal, then
no wait is performed.</p>
-<p>The original signal mask is restored when sigsuspend() returns.</p>
+<p>The original signal mask is restored when sigsuspend() returns. The
+handlers of the signals that <code class="docutils literal notranslate"><span
class="pre">set</span></code> unblocks run first, with <code class="docutils
literal notranslate"><span class="pre">set</span></code>
+still installed, also when sigsuspend() is a system call.</p>
<p>Waiting for an empty signal set stops a task without freeing any
resources (a very bad idea).</p>
<dl class="field-list simple">
@@ -777,7 +779,6 @@ resources (a very bad idea).</p>
<p><strong>POSIX Compatibility:</strong> Comparable to the POSIX interface of
the same
name. Differences from the POSIX specification include:</p>
<ul class="simple">
-<li><p>POSIX does not indicate that the original signal mask is
restored.</p></li>
<li><p>POSIX states that sigsuspend() “suspends the task until delivery of a
signal whose action is either to execute a signal-catching function
or to terminate the task.” Only delivery of the signal is required in
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index 4785f677d9..033a07026f 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
diff --git a/content/docs/latest/standards/posix.html
b/content/docs/latest/standards/posix.html
index 1ab3e31080..8c87d64008 100644
--- a/content/docs/latest/standards/posix.html
+++ b/content/docs/latest/standards/posix.html
@@ -668,9 +668,10 @@ Merged into <code class="docutils literal
notranslate"><span class="pre">POSIX_D
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="fn9" role="note">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink"
href="#id13">9</a><span class="fn-bracket">]</span></span>
-<p>NuttX provides dummy implementations for <code class="docutils literal
notranslate"><span class="pre">_POSIX_MEMORY_PROTECTION</span></code>
-which is sufficient for devices without MMU, but doesn’t meet the
-requirement for devices with MMU.</p>
+<p><code class="docutils literal notranslate"><span
class="pre">mprotect()</span></code> changes the page permissions only with
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_ARCH_ADDRENV</span></code> on arm64 and RISC-V. On other
targets it
+checks the arguments and changes nothing, which is sufficient for
+devices without MMU.</p>
</aside>
</aside>
</section>
@@ -4513,15 +4514,20 @@ the required functionality.</p>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="xref c c-func docutils literal
notranslate"><span class="pre">mprotect()</span></code></p></td>
-<td><p>Dummy <a class="footnote-reference brackets" href="#fn17" id="id23"
role="doc-noteref"><span class="fn-bracket">[</span>17<span
class="fn-bracket">]</span></a></p></td>
+<td><p>Yes <a class="footnote-reference brackets" href="#fn17" id="id23"
role="doc-noteref"><span class="fn-bracket">[</span>17<span
class="fn-bracket">]</span></a></p></td>
</tr>
</tbody>
</table>
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="fn17" role="note">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink"
href="#id23">17</a><span class="fn-bracket">]</span></span>
-<p>The function returns a success value but doesn’t implement
-the required functionality.</p>
+<p>All builds return <code class="docutils literal notranslate"><span
class="pre">EINVAL</span></code> when <code class="docutils literal
notranslate"><span class="pre">addr</span></code> is not a multiple of
+<code class="docutils literal notranslate"><span
class="pre">sysconf(_SC_PAGESIZE)</span></code> or <code class="docutils
literal notranslate"><span class="pre">prot</span></code> has an unknown bit.
With
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_ARCH_ADDRENV</span></code> on arm64 and RISC-V the function
changes
+the page permissions, and returns <code class="docutils literal
notranslate"><span class="pre">ENOMEM</span></code> when a page of the
+range is not mapped. Other configurations return a success value
+for a valid request and change nothing: without an MMU the
+permissions cannot be enforced.</p>
</aside>
</aside>
</section>