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 c94dae731a Publishing web: f0482e9c189ff02e151b650878e44a5e0108a468
docs: 3bc0b1790890d36304f12b0f196c0bdbd12af3b5
c94dae731a is described below
commit c94dae731adabf7ef2ee7cb68d4f0bb28da35f8e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Thu Aug 13 00:43:31 2026 +0000
Publishing web: f0482e9c189ff02e151b650878e44a5e0108a468 docs:
3bc0b1790890d36304f12b0f196c0bdbd12af3b5
---
content/docs/10.0.0/index.html | 2 +-
content/docs/10.0.1/index.html | 2 +-
content/docs/10.1.0/index.html | 2 +-
content/docs/10.2.0/index.html | 2 +-
content/docs/10.3.0/index.html | 2 +-
content/docs/11.0.0/index.html | 2 +-
content/docs/12.0.0/index.html | 2 +-
content/docs/12.0.0/searchindex.js | 2 +-
content/docs/12.1.0/index.html | 2 +-
content/docs/12.1.0/searchindex.js | 2 +-
content/docs/12.10.0/index.html | 2 +-
content/docs/12.10.0/searchindex.js | 2 +-
content/docs/12.11.0/guides/fully_linked_elf.html | 2 +-
.../docs/12.11.0/guides/partially_linked_elf.html | 2 +-
content/docs/12.11.0/index.html | 2 +-
content/docs/12.11.0/searchindex.js | 2 +-
content/docs/12.12.0/guides/fully_linked_elf.html | 2 +-
.../docs/12.12.0/guides/partially_linked_elf.html | 2 +-
content/docs/12.12.0/index.html | 2 +-
content/docs/12.12.0/searchindex.js | 2 +-
content/docs/12.13.0/guides/fully_linked_elf.html | 2 +-
.../docs/12.13.0/guides/partially_linked_elf.html | 2 +-
content/docs/12.13.0/index.html | 2 +-
.../platforms/arm/goldfish/goldfish_timer.html | 13 +--
content/docs/12.13.0/searchindex.js | 2 +-
content/docs/12.2.0/index.html | 2 +-
content/docs/12.2.0/searchindex.js | 2 +-
content/docs/12.2.1/index.html | 2 +-
content/docs/12.2.1/searchindex.js | 2 +-
content/docs/12.3.0/index.html | 2 +-
content/docs/12.3.0/searchindex.js | 2 +-
content/docs/12.4.0/index.html | 2 +-
content/docs/12.4.0/searchindex.js | 2 +-
content/docs/12.5.0/index.html | 2 +-
content/docs/12.5.0/searchindex.js | 2 +-
content/docs/12.5.1/index.html | 2 +-
content/docs/12.5.1/searchindex.js | 2 +-
content/docs/12.6.0/index.html | 2 +-
content/docs/12.6.0/searchindex.js | 2 +-
content/docs/12.7.0/index.html | 2 +-
content/docs/12.7.0/searchindex.js | 2 +-
content/docs/12.8.0/index.html | 2 +-
content/docs/12.8.0/searchindex.js | 2 +-
content/docs/12.9.0/index.html | 2 +-
content/docs/12.9.0/searchindex.js | 2 +-
content/docs/13.0.0/guides/fully_linked_elf.html | 2 +-
.../docs/13.0.0/guides/partially_linked_elf.html | 2 +-
content/docs/13.0.0/index.html | 2 +-
content/docs/13.0.0/searchindex.js | 2 +-
.../_sources/implementation/user_identity.rst.txt | 62 ++++++++++++--
.../arm/rtl8720f/boards/rtl8720f_evb/index.rst.txt | 58 +++++++++++++
.../arm/rtl8721dx/boards/pke8721daf/index.rst.txt | 16 ++++
.../arm/rtl8721f/boards/rtl8721f_evb/index.rst.txt | 16 ++++
.../risc-v/hpm6000/boards/hpm6360evk/index.rst.txt | 26 +++---
.../latest/_sources/platforms/sim/index.rst.txt | 1 +
.../_sources/platforms/sim/sim_input.rst.txt | 38 +++++++++
content/docs/latest/guides/fully_linked_elf.html | 2 +-
.../docs/latest/guides/partially_linked_elf.html | 2 +-
content/docs/latest/implementation/index.html | 1 +
.../docs/latest/implementation/user_identity.html | 60 ++++++++++++--
content/docs/latest/index.html | 2 +-
content/docs/latest/objects.inv | Bin 223181 -> 223384 bytes
.../arm/rtl8720f/boards/rtl8720f_evb/index.html | 56 +++++++++++++
.../arm/rtl8721dx/boards/pke8721daf/index.html | 16 ++++
.../arm/rtl8721f/boards/rtl8721f_evb/index.html | 16 ++++
content/docs/latest/platforms/index.html | 1 +
.../latest/platforms/risc-v/esp32c6/index.html | 2 +-
.../latest/platforms/risc-v/esp32p4/index.html | 2 +-
.../risc-v/hpm6000/boards/hpm6360evk/index.html | 41 +++++-----
content/docs/latest/platforms/sim/index.html | 10 +++
.../docs/latest/platforms/sim/network_linux.html | 1 +
.../docs/latest/platforms/sim/network_vpnkit.html | 1 +
.../latest/platforms/sim/sim/boards/sim/index.html | 1 +
content/docs/latest/platforms/sim/sim/index.html | 1 +
.../docs/latest/platforms/sim/sim_gpiochip.html | 5 +-
.../sim/{network_vpnkit.html => sim_input.html} | 91 ++++++++++-----------
content/docs/latest/platforms/sparc/index.html | 4 +-
content/docs/latest/searchindex.js | 2 +-
content/feed.xml | 4 +-
79 files changed, 479 insertions(+), 168 deletions(-)
diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index f3aaa40d0a..df63a51dc9 100644
--- a/content/docs/10.0.0/index.html
+++ b/content/docs/10.0.0/index.html
@@ -207,7 +207,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller
environments, the primary governing standards in NuttX are Posix and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:21</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html
index b32334c24d..7fe485a62e 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -253,7 +253,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller
environments, the primary governing standards in NuttX are Posix and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:21</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/10.1.0/index.html b/content/docs/10.1.0/index.html
index 7f8670eb3b..332512cf14 100644
--- a/content/docs/10.1.0/index.html
+++ b/content/docs/10.1.0/index.html
@@ -253,7 +253,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:21</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/10.2.0/index.html b/content/docs/10.2.0/index.html
index 38f46c0fd0..b22496686a 100644
--- a/content/docs/10.2.0/index.html
+++ b/content/docs/10.2.0/index.html
@@ -254,7 +254,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:22</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/10.3.0/index.html b/content/docs/10.3.0/index.html
index 38f46c0fd0..b22496686a 100644
--- a/content/docs/10.3.0/index.html
+++ b/content/docs/10.3.0/index.html
@@ -254,7 +254,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:22</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/11.0.0/index.html b/content/docs/11.0.0/index.html
index 38f46c0fd0..b22496686a 100644
--- a/content/docs/11.0.0/index.html
+++ b/content/docs/11.0.0/index.html
@@ -254,7 +254,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:21</p>
+<p>Last Updated: 13 August 26 at 00:22</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.0.0/index.html b/content/docs/12.0.0/index.html
index bb77f789b2..c755765a47 100644
--- a/content/docs/12.0.0/index.html
+++ b/content/docs/12.0.0/index.html
@@ -179,7 +179,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline"></a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:22</p>
+<p>Last Updated: 13 August 26 at 00:22</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.0.0/searchindex.js
b/content/docs/12.0.0/searchindex.js
index a9781f6c4c..bc17a85740 100644
--- a/content/docs/12.0.0/searchindex.js
+++ b/content/docs/12.0.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character
[...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character
[...]
\ No newline at end of file
diff --git a/content/docs/12.1.0/index.html b/content/docs/12.1.0/index.html
index 27ce29c2f0..9c50a17f8c 100644
--- a/content/docs/12.1.0/index.html
+++ b/content/docs/12.1.0/index.html
@@ -179,7 +179,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this headline"></a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:22</p>
+<p>Last Updated: 13 August 26 at 00:22</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.1.0/searchindex.js
b/content/docs/12.1.0/searchindex.js
index bfd439983d..dff6a893c4 100644
--- a/content/docs/12.1.0/searchindex.js
+++ b/content/docs/12.1.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character
[...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character
[...]
\ No newline at end of file
diff --git a/content/docs/12.10.0/index.html b/content/docs/12.10.0/index.html
index 9d90f7c69c..9bcfcba47f 100644
--- a/content/docs/12.10.0/index.html
+++ b/content/docs/12.10.0/index.html
@@ -191,7 +191,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:33</p>
+<p>Last Updated: 13 August 26 at 00:33</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.10.0/searchindex.js
b/content/docs/12.10.0/searchindex.js
index ff681adde2..78cdef32d5 100644
--- a/content/docs/12.10.0/searchindex.js
+++ b/content/docs/12.10.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3",
"_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example",
"_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52",
"_tags/ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3",
"_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example",
"_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52",
"_tags/ [...]
\ No newline at end of file
diff --git a/content/docs/12.11.0/guides/fully_linked_elf.html
b/content/docs/12.11.0/guides/fully_linked_elf.html
index f2a110a85b..0928fbeb9d 100644
--- a/content/docs/12.11.0/guides/fully_linked_elf.html
+++ b/content/docs/12.11.0/guides/fully_linked_elf.html
@@ -483,7 +483,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="ce8a39e5-4da8-4173-bc14-177b2a7c2d07"
name="ce8a39e5-4da8-4173-bc14-177b2a7c2d07" type="checkbox"><label
class="sphinx_collapse__label" for="ce8a39e5-4da8-4173-bc14-177b2a7c2d07"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="8974cc57-d6ca-4f15-b62a-12eb521cee67"
name="8974cc57-d6ca-4f15-b62a-12eb521cee67" type="checkbox"><label
class="sphinx_collapse__label" for="8974cc57-d6ca-4f15-b62a-12eb521cee67"><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/12.11.0/guides/partially_linked_elf.html
b/content/docs/12.11.0/guides/partially_linked_elf.html
index 722717ba31..7fc4a53de3 100644
--- a/content/docs/12.11.0/guides/partially_linked_elf.html
+++ b/content/docs/12.11.0/guides/partially_linked_elf.html
@@ -509,7 +509,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="646e1ad1-eb76-4d41-ada1-9cdd49d1f97d"
name="646e1ad1-eb76-4d41-ada1-9cdd49d1f97d" type="checkbox"><label
class="sphinx_collapse__label" for="646e1ad1-eb76-4d41-ada1-9cdd49d1f97d"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="ce210389-c1b0-4251-ae04-02411bdec858"
name="ce210389-c1b0-4251-ae04-02411bdec858" type="checkbox"><label
class="sphinx_collapse__label" for="ce210389-c1b0-4251-ae04-02411bdec858"><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/12.11.0/index.html b/content/docs/12.11.0/index.html
index 3ae3c458a1..964c1eb2bb 100644
--- a/content/docs/12.11.0/index.html
+++ b/content/docs/12.11.0/index.html
@@ -193,7 +193,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:34</p>
+<p>Last Updated: 13 August 26 at 00:34</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.11.0/searchindex.js
b/content/docs/12.11.0/searchindex.js
index 0a5bcbb197..e833891909 100644
--- a/content/docs/12.11.0/searchindex.js
+++ b/content/docs/12.11.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3",
"_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example",
"_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95",
"_tags/ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3",
"_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example",
"_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-imx95",
"_tags/ [...]
\ No newline at end of file
diff --git a/content/docs/12.12.0/guides/fully_linked_elf.html
b/content/docs/12.12.0/guides/fully_linked_elf.html
index 1744216fe9..988827a3c4 100644
--- a/content/docs/12.12.0/guides/fully_linked_elf.html
+++ b/content/docs/12.12.0/guides/fully_linked_elf.html
@@ -483,7 +483,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="4c531936-ed42-42ca-9a2a-06fad89729fb"
name="4c531936-ed42-42ca-9a2a-06fad89729fb" type="checkbox"><label
class="sphinx_collapse__label" for="4c531936-ed42-42ca-9a2a-06fad89729fb"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="bbfd6390-f3e2-4ec2-9a77-4afde46884e9"
name="bbfd6390-f3e2-4ec2-9a77-4afde46884e9" type="checkbox"><label
class="sphinx_collapse__label" for="bbfd6390-f3e2-4ec2-9a77-4afde46884e9"><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/12.12.0/guides/partially_linked_elf.html
b/content/docs/12.12.0/guides/partially_linked_elf.html
index b360cce557..598d232bb2 100644
--- a/content/docs/12.12.0/guides/partially_linked_elf.html
+++ b/content/docs/12.12.0/guides/partially_linked_elf.html
@@ -509,7 +509,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="fd5ff9b6-fd39-4df9-82d2-48b617c7937f"
name="fd5ff9b6-fd39-4df9-82d2-48b617c7937f" type="checkbox"><label
class="sphinx_collapse__label" for="fd5ff9b6-fd39-4df9-82d2-48b617c7937f"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="42c1edb6-fd48-42c4-8c48-4d7a9dd90999"
name="42c1edb6-fd48-42c4-8c48-4d7a9dd90999" type="checkbox"><label
class="sphinx_collapse__label" for="42c1edb6-fd48-42c4-8c48-4d7a9dd90999"><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/12.12.0/index.html b/content/docs/12.12.0/index.html
index 3c222a7491..3c34bafe08 100644
--- a/content/docs/12.12.0/index.html
+++ b/content/docs/12.12.0/index.html
@@ -193,7 +193,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:36</p>
+<p>Last Updated: 13 August 26 at 00:36</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.12.0/searchindex.js
b/content/docs/12.12.0/searchindex.js
index a92632f6e7..5376f7a3e3 100644
--- a/content/docs/12.12.0/searchindex.js
+++ b/content/docs/12.12.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega",
"_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/ch
[...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr",
"_tags/arch-example", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega",
"_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s",
"_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/ch
[...]
\ No newline at end of file
diff --git a/content/docs/12.13.0/guides/fully_linked_elf.html
b/content/docs/12.13.0/guides/fully_linked_elf.html
index f8408bd8d9..7457181ade 100644
--- a/content/docs/12.13.0/guides/fully_linked_elf.html
+++ b/content/docs/12.13.0/guides/fully_linked_elf.html
@@ -486,7 +486,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="bfa73217-01e5-4e9d-a734-e0d1d6d1c7ca"
name="bfa73217-01e5-4e9d-a734-e0d1d6d1c7ca" type="checkbox"><label
class="sphinx_collapse__label" for="bfa73217-01e5-4e9d-a734-e0d1d6d1c7ca"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="f8ffeefb-da4a-4ec9-94b7-7d853421ebbc"
name="f8ffeefb-da4a-4ec9-94b7-7d853421ebbc" type="checkbox"><label
class="sphinx_collapse__label" for="f8ffeefb-da4a-4ec9-94b7-7d853421ebbc"><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/12.13.0/guides/partially_linked_elf.html
b/content/docs/12.13.0/guides/partially_linked_elf.html
index d1680e711a..e9ddf9ccad 100644
--- a/content/docs/12.13.0/guides/partially_linked_elf.html
+++ b/content/docs/12.13.0/guides/partially_linked_elf.html
@@ -512,7 +512,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="de79514e-04ef-41dd-ad9e-32d6c7cc4b0c"
name="de79514e-04ef-41dd-ad9e-32d6c7cc4b0c" type="checkbox"><label
class="sphinx_collapse__label" for="de79514e-04ef-41dd-ad9e-32d6c7cc4b0c"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="ccb08475-d6a5-48fa-b423-52aec8f3d1bc"
name="ccb08475-d6a5-48fa-b423-52aec8f3d1bc" type="checkbox"><label
class="sphinx_collapse__label" for="ccb08475-d6a5-48fa-b423-52aec8f3d1bc"><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/12.13.0/index.html b/content/docs/12.13.0/index.html
index ad5d924b1d..f48ecacded 100644
--- a/content/docs/12.13.0/index.html
+++ b/content/docs/12.13.0/index.html
@@ -195,7 +195,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:38</p>
+<p>Last Updated: 13 August 26 at 00:38</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.13.0/platforms/arm/goldfish/goldfish_timer.html
b/content/docs/12.13.0/platforms/arm/goldfish/goldfish_timer.html
index b1acb3f4c1..5c18808314 100644
--- a/content/docs/12.13.0/platforms/arm/goldfish/goldfish_timer.html
+++ b/content/docs/12.13.0/platforms/arm/goldfish/goldfish_timer.html
@@ -158,18 +158,7 @@
<li class="toctree-l4"><a class="reference internal"
href="#timer-interrupt">Timer Interrupt</a></li>
</ul>
</li>
-<li class="toctree-l3 current"><a class="reference internal"
href="index.html">GOLDFISH</a><ul class="current">
-<li class="toctree-l4 current"><a class="current reference internal"
href="#">GOLDFISH TIMER</a><ul>
-<li class="toctree-l5"><a class="reference internal"
href="#introduction">Introduction</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="#timer-registers">Timer Registers</a></li>
-<li class="toctree-l5"><a class="reference internal" href="#timer-read">Timer
Read</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="#timer-set-alarm">Timer Set Alarm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="#timer-interrupt">Timer Interrupt</a></li>
-</ul>
-</li>
-<li class="toctree-l4"><a class="reference internal"
href="index.html#supported-boards">Supported Boards</a></li>
-</ul>
-</li>
+<li class="toctree-l3"><a class="reference internal"
href="index.html">GOLDFISH</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../imx1/index.html">NXP/Freescale i.MX1</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../imx6/index.html">NXP/Freescale i.MX6</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../imx9/index.html">NXP i.MX9</a></li>
diff --git a/content/docs/12.13.0/searchindex.js
b/content/docs/12.13.0/searchindex.js
index 2b2314b28e..23f4009458 100644
--- a/content/docs/12.13.0/searchindex.js
+++ b/content/docs/12.13.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega",
"_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32-c3", "_ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-at32uc3", "_tags/chip-at90usb", "_tags/chip-atmega",
"_tags/chip-atmega128", "_tags/chip-atmega1284p", "_tags/chip-atmega2560",
"_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32-c3", "_ [...]
\ No newline at end of file
diff --git a/content/docs/12.2.0/index.html b/content/docs/12.2.0/index.html
index 4368aa505e..c50e91c2dd 100644
--- a/content/docs/12.2.0/index.html
+++ b/content/docs/12.2.0/index.html
@@ -180,7 +180,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this heading"></a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:22</p>
+<p>Last Updated: 13 August 26 at 00:23</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.2.0/searchindex.js
b/content/docs/12.2.0/searchindex.js
index 50c081b842..2e0268266a 100644
--- a/content/docs/12.2.0/searchindex.js
+++ b/content/docs/12.2.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.2.1/index.html b/content/docs/12.2.1/index.html
index 4368aa505e..c50e91c2dd 100644
--- a/content/docs/12.2.1/index.html
+++ b/content/docs/12.2.1/index.html
@@ -180,7 +180,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this heading"></a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:22</p>
+<p>Last Updated: 13 August 26 at 00:23</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.2.1/searchindex.js
b/content/docs/12.2.1/searchindex.js
index d7d7500b37..332442ec73 100644
--- a/content/docs/12.2.1/searchindex.js
+++ b/content/docs/12.2.1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.3.0/index.html b/content/docs/12.3.0/index.html
index b944cf6795..2742c38cd3 100644
--- a/content/docs/12.3.0/index.html
+++ b/content/docs/12.3.0/index.html
@@ -180,7 +180,7 @@ by following these <a class="reference internal"
href="contributing/documentatio
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation"
title="Permalink to this heading"></a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards
compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller
environments, the primary governing standards in NuttX are POSIX and ANSI
standards. Additional standard APIs from Unix and other common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:23</p>
+<p>Last Updated: 13 August 26 at 00:23</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.3.0/searchindex.js
b/content/docs/12.3.0/searchindex.js
index c1c4dfe1fc..29445327f3 100644
--- a/content/docs/12.3.0/searchindex.js
+++ b/content/docs/12.3.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index",
"applications/nsh/builtin", "applications/nsh/commands",
"applications/nsh/config", "applications/nsh/customizing",
"applications/nsh/index", "applications/nsh/installation",
"applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config",
"applications/nxdiag/index", "applications/wapi/commands",
"applications/wapi/index", "applications/wapi/wireless", "components/binfmt",
"components/drivers/block/index", "components/dr [...]
\ No newline at end of file
diff --git a/content/docs/12.4.0/index.html b/content/docs/12.4.0/index.html
index 93293080c3..60c34bcfb8 100644
--- a/content/docs/12.4.0/index.html
+++ b/content/docs/12.4.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:23</p>
+<p>Last Updated: 13 August 26 at 00:24</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.4.0/searchindex.js
b/content/docs/12.4.0/searchindex.js
index 324f2a9e20..e45ddf6a7c 100644
--- a/content/docs/12.4.0/searchindex.js
+++ b/content/docs/12.4.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.5.0/index.html b/content/docs/12.5.0/index.html
index 1dccacf887..01c5a344e0 100644
--- a/content/docs/12.5.0/index.html
+++ b/content/docs/12.5.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:24</p>
+<p>Last Updated: 13 August 26 at 00:25</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.5.0/searchindex.js
b/content/docs/12.5.0/searchindex.js
index aaf346dc5e..2391c06ee2 100644
--- a/content/docs/12.5.0/searchindex.js
+++ b/content/docs/12.5.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.5.1/index.html b/content/docs/12.5.1/index.html
index 4f4dfb478e..104d17e19b 100644
--- a/content/docs/12.5.1/index.html
+++ b/content/docs/12.5.1/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:26</p>
+<p>Last Updated: 13 August 26 at 00:26</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.5.1/searchindex.js
b/content/docs/12.5.1/searchindex.js
index 4e17a47e92..45aa080add 100644
--- a/content/docs/12.5.1/searchindex.js
+++ b/content/docs/12.5.1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/coremark/index", "applications/benchmarks/index",
"applications/boot/index", "applications/boot/mcuboot/index",
"applications/boot/miniboot/index", "applications/canutils/candump/index",
"applications/canutils/canlib/index", "applications/canutils/cansend/index",
"applications/c [...]
\ No newline at end of file
diff --git a/content/docs/12.6.0/index.html b/content/docs/12.6.0/index.html
index ec69066e74..1cdc19e2c8 100644
--- a/content/docs/12.6.0/index.html
+++ b/content/docs/12.6.0/index.html
@@ -188,7 +188,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:27</p>
+<p>Last Updated: 13 August 26 at 00:27</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.6.0/searchindex.js
b/content/docs/12.6.0/searchindex.js
index 64d6d99ef2..15d8a969f4 100644
--- a/content/docs/12.6.0/searchindex.js
+++ b/content/docs/12.6.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.7.0/index.html b/content/docs/12.7.0/index.html
index 4c8dedac6e..2daef46c45 100644
--- a/content/docs/12.7.0/index.html
+++ b/content/docs/12.7.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:28</p>
+<p>Last Updated: 13 August 26 at 00:29</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.7.0/searchindex.js
b/content/docs/12.7.0/searchindex.js
index d51acf5fba..9390eba963 100644
--- a/content/docs/12.7.0/searchindex.js
+++ b/content/docs/12.7.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.8.0/index.html b/content/docs/12.8.0/index.html
index c272c1cdc0..8dacba2cac 100644
--- a/content/docs/12.8.0/index.html
+++ b/content/docs/12.8.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:30</p>
+<p>Last Updated: 13 August 26 at 00:30</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.8.0/searchindex.js
b/content/docs/12.8.0/searchindex.js
index d1fb11574f..cdb333538a 100644
--- a/content/docs/12.8.0/searchindex.js
+++ b/content/docs/12.8.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/benchmarks/iozone/index",
"applications/bench [...]
\ No newline at end of file
diff --git a/content/docs/12.9.0/index.html b/content/docs/12.9.0/index.html
index 9b210d680b..3e152db78a 100644
--- a/content/docs/12.9.0/index.html
+++ b/content/docs/12.9.0/index.html
@@ -187,7 +187,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:31</p>
+<p>Last Updated: 13 August 26 at 00:31</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/12.9.0/searchindex.js
b/content/docs/12.9.0/searchindex.js
index 8b827f67aa..8e0cf6189d 100644
--- a/content/docs/12.9.0/searchindex.js
+++ b/content/docs/12.9.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/cyclictest/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/b [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index",
"applications/audioutils/index", "applications/audioutils/mml_parser/index",
"applications/audioutils/nxaudio/index",
"applications/benchmarks/cachespeed/index",
"applications/benchmarks/coremark-pro/index",
"applications/benchmarks/coremark/index",
"applications/benchmarks/cyclictest/index",
"applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index",
"applications/benchmarks/index", "applications/b [...]
\ No newline at end of file
diff --git a/content/docs/13.0.0/guides/fully_linked_elf.html
b/content/docs/13.0.0/guides/fully_linked_elf.html
index 59d10e11bb..0ba889f04d 100644
--- a/content/docs/13.0.0/guides/fully_linked_elf.html
+++ b/content/docs/13.0.0/guides/fully_linked_elf.html
@@ -487,7 +487,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="f992eca2-4f8c-4447-9fe0-5f858f454153"
name="f992eca2-4f8c-4447-9fe0-5f858f454153" type="checkbox"><label
class="sphinx_collapse__label" for="f992eca2-4f8c-4447-9fe0-5f858f454153"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="d3e3e690-ab21-418d-ac3e-d9d74ad91005"
name="d3e3e690-ab21-418d-ac3e-d9d74ad91005" type="checkbox"><label
class="sphinx_collapse__label" for="d3e3e690-ab21-418d-ac3e-d9d74ad91005"><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/13.0.0/guides/partially_linked_elf.html
b/content/docs/13.0.0/guides/partially_linked_elf.html
index e5c73f8567..3b34f0e26c 100644
--- a/content/docs/13.0.0/guides/partially_linked_elf.html
+++ b/content/docs/13.0.0/guides/partially_linked_elf.html
@@ -513,7 +513,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="fefad441-b5fc-426e-942d-ef90fd62fa18"
name="fefad441-b5fc-426e-942d-ef90fd62fa18" type="checkbox"><label
class="sphinx_collapse__label" for="fefad441-b5fc-426e-942d-ef90fd62fa18"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="42cf479a-287e-46b8-b506-45867d94c423"
name="42cf479a-287e-46b8-b506-45867d94c423" type="checkbox"><label
class="sphinx_collapse__label" for="42cf479a-287e-46b8-b506-45867d94c423"><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/13.0.0/index.html b/content/docs/13.0.0/index.html
index 512679cb36..701214193a 100644
--- a/content/docs/13.0.0/index.html
+++ b/content/docs/13.0.0/index.html
@@ -195,7 +195,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:40</p>
+<p>Last Updated: 13 August 26 at 00:39</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/13.0.0/searchindex.js
b/content/docs/13.0.0/searchindex.js
index 9ed30d8caf..8dc42500b1 100644
--- a/content/docs/13.0.0/searchindex.js
+++ b/content/docs/13.0.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-am62x", "_tags/chip-am67", "_tags/chip-at32uc3",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128",
"_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags
[...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/chip-a527", "_tags/chip-a64",
"_tags/chip-am62x", "_tags/chip-am67", "_tags/chip-at32uc3",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128",
"_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags
[...]
\ No newline at end of file
diff --git a/content/docs/latest/_sources/implementation/user_identity.rst.txt
b/content/docs/latest/_sources/implementation/user_identity.rst.txt
index a831a1f235..e7fe651069 100644
--- a/content/docs/latest/_sources/implementation/user_identity.rst.txt
+++ b/content/docs/latest/_sources/implementation/user_identity.rst.txt
@@ -18,16 +18,37 @@ The full POSIX three-field credential model is stored in
``struct task_group_s``
* ``tg_euid`` / ``tg_egid`` — effective IDs used for permission checks.
* ``tg_suid`` / ``tg_sgid`` — saved set-IDs that allow a non-root process to
restore a previously held effective ID.
+* ``tg_groups`` / ``tg_ngroups`` — supplementary group IDs (when
+ ``CONFIG_SCHED_NGROUPS`` is greater than zero).
-All six fields are zero-initialized at task creation, so the initial task runs
-as root (UID/GID 0) unless explicitly changed.
+All six primary credential fields are zero-initialized at task creation, so
+the initial task runs as root (UID/GID 0) unless explicitly changed. The
+supplementary list starts empty.
+
+Supplementary Groups
+====================
+
+When ``CONFIG_SCHED_NGROUPS`` is greater than zero:
+
+* ``setgroups()`` replaces the calling task group's supplementary list
+ (requires effective UID 0).
+* ``getgroups()`` returns that list as stored (may be empty after
+ ``setgroups(0, NULL)``). The effective GID is not invented into an
+ empty list; use ``getegid()`` for the effective GID.
+* ``initgroups()`` builds a membership list with ``getgrouplist()`` (from
+ ``/etc/group`` when ``CONFIG_LIBC_GROUP_FILE`` is enabled) and installs it
+ with ``setgroups()``.
+* ``NGROUPS_MAX`` equals ``CONFIG_SCHED_NGROUPS``.
+
+Filesystem DAC (``fs_checkmode()``) grants the group-class mode bits when the
+file's group matches ``tg_egid`` **or** any entry in ``tg_groups``.
Inheritance
===========
When a new task is created, ``group_inherit_identity()`` in
-``sched/group/group_create.c`` copies all six credential fields from the parent
-task group to the child task group.
+``sched/group/group_create.c`` copies all credential fields — including the
+supplementary group list — from the parent task group to the child.
Privilege Transitions
=====================
@@ -56,8 +77,8 @@ When the effective ID is non-zero, the requested value must
equal the real or
the saved ID. Otherwise the function returns ``-1`` with ``errno`` set to
``EPERM``.
-This implements the standard POSIX pattern of temporarily dropping privileges
-with ``seteuid()`` or ``setegid()`` and later restoring them to the saved
value.
+This implements temporary privilege drop with ``seteuid()`` /
+``setegid()`` and later restore from the saved ID.
``setreuid()`` and ``setregid()``
---------------------------------
@@ -77,6 +98,28 @@ set-ID is set to the new effective ID.
These functions return the real, effective, and saved set-IDs for the calling
task group. Any output pointer may be ``NULL`` if that ID is not needed.
+``setresuid()`` and ``setresgid()``
+-----------------------------------
+
+These functions set the real, effective, and saved set-IDs in one call.
+Pass ``(uid_t)-1`` / ``(gid_t)-1`` to leave an ID unchanged. When the
+effective UID is zero, any values may be assigned. When the effective
+UID is non-zero, each new ID must equal the current real, effective, or
+saved ID.
+
+Soft drop (keep saved-root)::
+
+ setresgid(gid, gid, 0);
+ setresuid(uid, uid, 0);
+
+Hard drop (clear saved-root)::
+
+ setresgid(gid, gid, gid);
+ setresuid(uid, uid, uid);
+
+``setresgid()`` requires effective UID zero to assign arbitrary GIDs.
+Change group IDs before dropping the effective UID.
+
Configuration
=============
@@ -84,6 +127,13 @@ Configuration
Enables per-task-group credential tracking. Without this option, stub
root-only versions of all credential interfaces are provided.
+``CONFIG_SCHED_NGROUPS``
+ Maximum supplementary group IDs per task group (default 8). Visible only
+ when ``CONFIG_SCHED_USER_IDENTITY`` is enabled. Becomes ``NGROUPS_MAX``.
+ ``getgrouplist()`` / ``initgroups()`` return failure (they do **not**
+ silently truncate) when membership exceeds this limit; ``initgroups()``
+ also logs a warning. Increase ``CONFIG_SCHED_NGROUPS`` if needed.
+
``CONFIG_FS_PERMISSION``
Enables filesystem ownership and permission enforcement. Requires
``CONFIG_SCHED_USER_IDENTITY`` and ``CONFIG_PSEUDOFS_ATTRIBUTES``.
diff --git
a/content/docs/latest/_sources/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.rst.txt
index aa5351d93f..183664de23 100644
---
a/content/docs/latest/_sources/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.rst.txt
@@ -31,6 +31,12 @@ Supported in this NuttX port:
partition), backing the Wi-Fi key-value store
* Wi-Fi station and SoftAP through the ``wapi`` tool
* DHCP client (STA) and DHCP server (SoftAP)
+* GPIO pins exposed as ``/dev/gpioN`` character devices (input, output and
+ interrupt), driven directly on the SDK fwlib register layer
+* General-purpose UARTs exposed as ``/dev/ttySN`` serial devices, driven
+ directly on the SDK fwlib register layer
+* I2C master buses exposed as ``/dev/i2cN`` character devices, driven directly
+ on the SDK fwlib register layer
Buttons and LEDs
================
@@ -48,6 +54,58 @@ rtl8720f_evb`` first (the make build needs no sourcing).
$ ./tools/configure.sh rtl8720f_evb:<config-name>
+gpio
+----
+
+Minimal NSH with the GPIO driver and the ``gpio`` example enabled (no Wi-Fi).
+The board registers three pins from its pin table (see
+``boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_gpio.c``): an output at
+``/dev/gpio0``, an input at ``/dev/gpio1`` and an interrupt pin at
+``/dev/gpio2``. Edit that table to match a board's wiring. Exercise them with
+the example::
+
+ nsh> gpio -o 1 /dev/gpio0 # drive the output high
+ nsh> gpio /dev/gpio1 # read the input
+ nsh> gpio -w 1 /dev/gpio2 # wait for a falling-edge interrupt
+
+RTL8720F drives all GPIO through a single port A controller, so pins are
+encoded with the ``AMEBA_PA()`` helper from
+``arch/arm/src/common/ameba/ameba_gpio.h`` (pin 0-31), matching the Ameba SDK
+``PinName`` layout.
+
+uart
+----
+
+Minimal NSH with the general-purpose UART driver and the ``serialrx`` /
+``serialblaster`` examples enabled (no Wi-Fi). The LOG-UART owns the console
+and ``/dev/ttyS0``, so the board registers UART0 from its table (see
+``boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_uart.c``) as ``/dev/ttyS1`` at
+115200 8N1. Edit that table -- controller, TX/RX pads and baud -- to match a
+board's wiring. The TX/RX pads use the same ``AMEBA_PA()`` encoding as the
+GPIO table; the driver muxes them to the UART function and pulls RX high
+through the SDK ROM. Exercise the port with the examples (loop TX back to RX,
+or wire it to a host serial adapter)::
+
+ nsh> serialrx /dev/ttyS1 2600 & # start the receiver first
+ nsh> serialblaster /dev/ttyS1 2600 # then loop TX back to RX
+
+The line format can be changed at runtime through ``tcsetattr()`` (the config
+enables ``CONFIG_SERIAL_TERMIOS``). UART2 is not exposed by the driver.
+
+i2c
+---
+
+Minimal NSH with the I2C master driver and the ``i2ctool`` (``system/i2c``)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+``boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_i2c.c``): I2C0 at ``/dev/i2c0``
+on PA22/PA23 and I2C1 at ``/dev/i2c1`` on PA24/PA25. Edit that table --
+controller and SCL/SDA pads -- to match a board's wiring; the pads use the
+same ``AMEBA_PA()`` encoding as the GPIO table and are muxed to the I2C
+function through the SDK ROM. The I2C bus is open-drain, so fit external
+pull-ups on SCL/SDA. Probe a bus with the tool::
+
+ nsh> i2c dev -b 0 0x03 0x77 # scan /dev/i2c0 for devices
+
nsh
---
diff --git
a/content/docs/latest/_sources/platforms/arm/rtl8721dx/boards/pke8721daf/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/rtl8721dx/boards/pke8721daf/index.rst.txt
index 42a13955a4..1bbd3cf5c3 100644
---
a/content/docs/latest/_sources/platforms/arm/rtl8721dx/boards/pke8721daf/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/rtl8721dx/boards/pke8721daf/index.rst.txt
@@ -37,6 +37,8 @@ Supported in this NuttX port:
interrupt), driven directly on the SDK fwlib register layer
* General-purpose UARTs exposed as ``/dev/ttySN`` serial devices, driven
directly on the SDK fwlib register layer
+* I2C master buses exposed as ``/dev/i2cN`` character devices, driven directly
+ on the SDK fwlib register layer
Buttons and LEDs
================
@@ -100,6 +102,20 @@ The line format can be changed at runtime through
``tcsetattr()`` (the config
enables ``CONFIG_SERIAL_TERMIOS``). UART2 is shared with Bluetooth and is not
exposed by the driver.
+i2c
+---
+
+Minimal NSH with the I2C master driver and the ``i2ctool`` (``system/i2c``)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+``boards/arm/rtl8721dx/pke8721daf/src/rtl8721dx_i2c.c``): I2C0 at ``/dev/i2c0``
+on PB20/PB21 and I2C1 at ``/dev/i2c1`` on PB18/PB19. Edit that table --
+controller and SCL/SDA pads -- to match a board's wiring; the pads use the
+same ``AMEBA_PA()`` / ``AMEBA_PB()`` encoding as the GPIO table and are muxed
+to the I2C function through the SDK ROM. The I2C bus is open-drain, so fit
+external pull-ups on SCL/SDA. Probe a bus with the tool::
+
+ nsh> i2c dev -b 0 0x03 0x77 # scan /dev/i2c0 for devices
+
Wi-Fi
=====
diff --git
a/content/docs/latest/_sources/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.rst.txt
index b00cb6c40e..5c8703388c 100644
---
a/content/docs/latest/_sources/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.rst.txt
@@ -36,6 +36,8 @@ Supported in this NuttX port:
interrupt), driven directly on the SDK fwlib register layer
* General-purpose UARTs exposed as ``/dev/ttySN`` serial devices, driven
directly on the SDK fwlib register layer
+* I2C master buses exposed as ``/dev/i2cN`` character devices, driven directly
+ on the SDK fwlib register layer
Buttons and LEDs
================
@@ -91,6 +93,20 @@ The line format can be changed at runtime through
``tcsetattr()`` (the config
enables ``CONFIG_SERIAL_TERMIOS``). UART3 is shared with Bluetooth and is not
exposed by the driver.
+i2c
+---
+
+Minimal NSH with the I2C master driver and the ``i2ctool`` (``system/i2c``)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+``boards/arm/rtl8721f/rtl8721f_evb/src/rtl8721f_i2c.c``): I2C0 at ``/dev/i2c0``
+on PA22/PA23 and I2C1 at ``/dev/i2c1`` on PA24/PA25. Edit that table --
+controller and SCL/SDA pads -- to match a board's wiring; the pads use the
+same ``AMEBA_PA()`` / ``AMEBA_PB()`` encoding as the GPIO table and are muxed
+to the I2C function through the SDK ROM. The I2C bus is open-drain, so fit
+external pull-ups on SCL/SDA. Probe a bus with the tool::
+
+ nsh> i2c dev -b 0 0x03 0x77 # scan /dev/i2c0 for devices
+
nsh
---
diff --git
a/content/docs/latest/_sources/platforms/risc-v/hpm6000/boards/hpm6360evk/index.rst.txt
b/content/docs/latest/_sources/platforms/risc-v/hpm6000/boards/hpm6360evk/index.rst.txt
index 647376c75f..cf9823f5cc 100644
---
a/content/docs/latest/_sources/platforms/risc-v/hpm6000/boards/hpm6360evk/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/risc-v/hpm6000/boards/hpm6360evk/index.rst.txt
@@ -4,13 +4,19 @@ hpm6360evk
1. Download and install toolchain::
- curl
https://github.com/hpmicro/riscv-gnu-toolchain/releases/tag/2022.05.15
+ $wget
https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
-2. Download and install openocd.
+ $tar xf riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
- Download hpmicro sdk_env, openocd in the path: sdk_env/tools/openocd
+ $export PATH=$PATH:/<path to
compiler>/riscv32-unknown-elf-newlib-multilib/bin/
-3. Configure and build NuttX::
+ Make sure HPMicro GNU riscv32 toolchain have been installed and be found in
PATH.
+
+ $riscv32-unknown-elf-gcc -v
+
+ gcc version 11.1.0 (g5964b5cd727)
+
+2. Configure and build NuttX:
mkdir ./nuttxspace
cd ./nuttxspace
@@ -22,18 +28,12 @@ hpm6360evk
make menuconfig
make V=1
-Note: make menuconfig to config toolchain
-
-To switch GNU riscv64 toolchain to GNU riscv32 toolchain, the following option
must be selected::
+3. Download and install openocd::
- System Type --->
- Toolchain Selection --->
- [ ] Generic GNU RV64 toolchain
- [x] Generic GNU RV32 toolchain
+ Download hpmicro sdk_env, openocd in the path: sdk_env/tools/openocd
-Make sure HPMicro GNU riscv32 toolchain have been installed and be found in
PATH.
-4. Debug the nuttx with openocd and run::
+4. Debug the NuttX with openocd::
picocom -b 115200 /dev/ttyACM0
diff --git a/content/docs/latest/_sources/platforms/sim/index.rst.txt
b/content/docs/latest/_sources/platforms/sim/index.rst.txt
index 84adbf17c8..014d567a14 100644
--- a/content/docs/latest/_sources/platforms/sim/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/sim/index.rst.txt
@@ -15,3 +15,4 @@ The following Simulator/Emulators are supported:
network_linux
network_vpnkit
sim_gpiochip
+ sim_input
diff --git a/content/docs/latest/_sources/platforms/sim/sim_input.rst.txt
b/content/docs/latest/_sources/platforms/sim/sim_input.rst.txt
new file mode 100644
index 0000000000..1a288a4994
--- /dev/null
+++ b/content/docs/latest/_sources/platforms/sim/sim_input.rst.txt
@@ -0,0 +1,38 @@
+====================
+Sim Input Interfaces
+====================
+
+Overview
+========
+
+The Sim can emulate buttons, keyboard, touchscreen-mouse based, mouse with 3
buttons and analog-mouse based joystick.
+
+These drivers are particularly useful for graphical applications emulared over
X11.
+
+Buttons
+=======
+
+This driver emulates a button using the user Mouse button. You can enable it
using
+``CONFIG_SIM_BUTTONS``.
+
+Joystick
+========
+
+This driver simulates an Analog Joystick using the user mouse.
+
+Keyboard
+========
+
+There are two types of keyboards: is native one used by default on NuttX SIM,
since it is used to access the NuttShell interface and the
``CONFIG_SIM_KEYBOARD`` used with graphical applications.
+
+Mouse
+=====
+
+The driver emulates a Mouse with 3 buttons support. It can be enabled using the
+symbol: ``CONFIG_SIM_MOUSE``. This driver is useful with used with more
advanced interfaces like Microwindow/Nano-X that require at least left and
right click buttons events.
+
+Touchscreen
+===========
+
+The difference between this driver and the Mouse is because this only
generates a pen-down event when the user click in the interface. It is useful
to use with LVGL graphic interface.
+
diff --git a/content/docs/latest/guides/fully_linked_elf.html
b/content/docs/latest/guides/fully_linked_elf.html
index 6d717e39ca..be13e4fb73 100644
--- a/content/docs/latest/guides/fully_linked_elf.html
+++ b/content/docs/latest/guides/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="785e1de2-93e9-45f7-b8b1-c8edb1aa698e"
name="785e1de2-93e9-45f7-b8b1-c8edb1aa698e" type="checkbox"><label
class="sphinx_collapse__label" for="785e1de2-93e9-45f7-b8b1-c8edb1aa698e"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="e5ec84e4-2edd-46a2-83d8-684e01c62fdf"
name="e5ec84e4-2edd-46a2-83d8-684e01c62fdf" type="checkbox"><label
class="sphinx_collapse__label" for="e5ec84e4-2edd-46a2-83d8-684e01c62fdf"><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/partially_linked_elf.html
b/content/docs/latest/guides/partially_linked_elf.html
index 44a69440c0..7b536b9661 100644
--- a/content/docs/latest/guides/partially_linked_elf.html
+++ b/content/docs/latest/guides/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="9d9a3641-a38d-4d75-829c-750a7d0a44b2"
name="9d9a3641-a38d-4d75-829c-750a7d0a44b2" type="checkbox"><label
class="sphinx_collapse__label" for="9d9a3641-a38d-4d75-829c-750a7d0a44b2"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="c00cdc11-8d38-415d-978e-8f3188018209"
name="c00cdc11-8d38-415d-978e-8f3188018209" type="checkbox"><label
class="sphinx_collapse__label" for="c00cdc11-8d38-415d-978e-8f3188018209"><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/implementation/index.html
b/content/docs/latest/implementation/index.html
index f0e8783a76..26c578093b 100644
--- a/content/docs/latest/implementation/index.html
+++ b/content/docs/latest/implementation/index.html
@@ -500,6 +500,7 @@
</li>
<li class="toctree-l1"><a class="reference internal"
href="user_identity.html">User and Group Identity</a><ul>
<li class="toctree-l2"><a class="reference internal"
href="user_identity.html#credentials">Credentials</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="user_identity.html#supplementary-groups">Supplementary Groups</a></li>
<li class="toctree-l2"><a class="reference internal"
href="user_identity.html#inheritance">Inheritance</a></li>
<li class="toctree-l2"><a class="reference internal"
href="user_identity.html#privilege-transitions">Privilege Transitions</a></li>
<li class="toctree-l2"><a class="reference internal"
href="user_identity.html#configuration">Configuration</a></li>
diff --git a/content/docs/latest/implementation/user_identity.html
b/content/docs/latest/implementation/user_identity.html
index b9e8922656..127028c5f3 100644
--- a/content/docs/latest/implementation/user_identity.html
+++ b/content/docs/latest/implementation/user_identity.html
@@ -176,12 +176,14 @@
<li class="toctree-l2"><a class="reference internal" href="tls.html">TLS:
Thread Local Storage</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">User and Group Identity</a><ul>
<li class="toctree-l3"><a class="reference internal"
href="#credentials">Credentials</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="#supplementary-groups">Supplementary Groups</a></li>
<li class="toctree-l3"><a class="reference internal"
href="#inheritance">Inheritance</a></li>
<li class="toctree-l3"><a class="reference internal"
href="#privilege-transitions">Privilege Transitions</a><ul>
<li class="toctree-l4"><a class="reference internal"
href="#setuid-and-setgid"><code class="docutils literal notranslate"><span
class="pre">setuid()</span></code> and <code class="docutils literal
notranslate"><span class="pre">setgid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal"
href="#seteuid-and-setegid"><code class="docutils literal notranslate"><span
class="pre">seteuid()</span></code> and <code class="docutils literal
notranslate"><span class="pre">setegid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal"
href="#setreuid-and-setregid"><code class="docutils literal notranslate"><span
class="pre">setreuid()</span></code> and <code class="docutils literal
notranslate"><span class="pre">setregid()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal"
href="#getresuid-and-getresgid"><code class="docutils literal
notranslate"><span class="pre">getresuid()</span></code> and <code
class="docutils literal notranslate"><span
class="pre">getresgid()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#setresuid-and-setresgid"><code class="docutils literal
notranslate"><span class="pre">setresuid()</span></code> and <code
class="docutils literal notranslate"><span
class="pre">setresgid()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal"
href="#configuration">Configuration</a></li>
@@ -242,15 +244,35 @@ process credentials. All threads within a task group
share the same credentials
<li><p><code class="docutils literal notranslate"><span
class="pre">tg_euid</span></code> / <code class="docutils literal
notranslate"><span class="pre">tg_egid</span></code> — effective IDs used for
permission checks.</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">tg_suid</span></code> / <code class="docutils literal
notranslate"><span class="pre">tg_sgid</span></code> — saved set-IDs that allow
a non-root process to
restore a previously held effective ID.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">tg_groups</span></code> / <code class="docutils literal
notranslate"><span class="pre">tg_ngroups</span></code> — supplementary group
IDs (when
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_NGROUPS</span></code> is greater than zero).</p></li>
</ul>
-<p>All six fields are zero-initialized at task creation, so the initial task
runs
-as root (UID/GID 0) unless explicitly changed.</p>
+<p>All six primary credential fields are zero-initialized at task creation, so
+the initial task runs as root (UID/GID 0) unless explicitly changed. The
+supplementary list starts empty.</p>
+</section>
+<section id="supplementary-groups">
+<h2>Supplementary Groups<a class="headerlink" href="#supplementary-groups"
title="Permalink to this heading"></a></h2>
+<p>When <code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_NGROUPS</span></code> is greater than zero:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">setgroups()</span></code> replaces the calling task group’s
supplementary list
+(requires effective UID 0).</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">getgroups()</span></code> returns that list as stored (may be empty
after
+<code class="docutils literal notranslate"><span
class="pre">setgroups(0,</span> <span class="pre">NULL)</span></code>). The
effective GID is not invented into an
+empty list; use <code class="docutils literal notranslate"><span
class="pre">getegid()</span></code> for the effective GID.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">initgroups()</span></code> builds a membership list with <code
class="docutils literal notranslate"><span
class="pre">getgrouplist()</span></code> (from
+<code class="docutils literal notranslate"><span
class="pre">/etc/group</span></code> when <code class="docutils literal
notranslate"><span class="pre">CONFIG_LIBC_GROUP_FILE</span></code> is enabled)
and installs it
+with <code class="docutils literal notranslate"><span
class="pre">setgroups()</span></code>.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">NGROUPS_MAX</span></code> equals <code class="docutils literal
notranslate"><span class="pre">CONFIG_SCHED_NGROUPS</span></code>.</p></li>
+</ul>
+<p>Filesystem DAC (<code class="docutils literal notranslate"><span
class="pre">fs_checkmode()</span></code>) grants the group-class mode bits when
the
+file’s group matches <code class="docutils literal notranslate"><span
class="pre">tg_egid</span></code> <strong>or</strong> any entry in <code
class="docutils literal notranslate"><span
class="pre">tg_groups</span></code>.</p>
</section>
<section id="inheritance">
<h2>Inheritance<a class="headerlink" href="#inheritance" title="Permalink to
this heading"></a></h2>
<p>When a new task is created, <code class="docutils literal
notranslate"><span class="pre">group_inherit_identity()</span></code> in
-<code class="docutils literal notranslate"><span
class="pre">sched/group/group_create.c</span></code> copies all six credential
fields from the parent
-task group to the child task group.</p>
+<code class="docutils literal notranslate"><span
class="pre">sched/group/group_create.c</span></code> copies all credential
fields — including the
+supplementary group list — from the parent task group to the child.</p>
</section>
<section id="privilege-transitions">
<h2>Privilege Transitions<a class="headerlink" href="#privilege-transitions"
title="Permalink to this heading"></a></h2>
@@ -275,8 +297,8 @@ ID.</p>
<p>When the effective ID is non-zero, the requested value must equal the real
or
the saved ID. Otherwise the function returns <code class="docutils literal
notranslate"><span class="pre">-1</span></code> with <code class="docutils
literal notranslate"><span class="pre">errno</span></code> set to
<code class="docutils literal notranslate"><span
class="pre">EPERM</span></code>.</p>
-<p>This implements the standard POSIX pattern of temporarily dropping
privileges
-with <code class="docutils literal notranslate"><span
class="pre">seteuid()</span></code> or <code class="docutils literal
notranslate"><span class="pre">setegid()</span></code> and later restoring them
to the saved value.</p>
+<p>This implements temporary privilege drop with <code class="docutils literal
notranslate"><span class="pre">seteuid()</span></code> /
+<code class="docutils literal notranslate"><span
class="pre">setegid()</span></code> and later restore from the saved ID.</p>
</section>
<section id="setreuid-and-setregid">
<h3><code class="docutils literal notranslate"><span
class="pre">setreuid()</span></code> and <code class="docutils literal
notranslate"><span class="pre">setregid()</span></code><a class="headerlink"
href="#setreuid-and-setregid" title="Permalink to this heading"></a></h3>
@@ -294,6 +316,26 @@ set-ID is set to the new effective ID.</p>
<p>These functions return the real, effective, and saved set-IDs for the
calling
task group. Any output pointer may be <code class="docutils literal
notranslate"><span class="pre">NULL</span></code> if that ID is not needed.</p>
</section>
+<section id="setresuid-and-setresgid">
+<h3><code class="docutils literal notranslate"><span
class="pre">setresuid()</span></code> and <code class="docutils literal
notranslate"><span class="pre">setresgid()</span></code><a class="headerlink"
href="#setresuid-and-setresgid" title="Permalink to this heading"></a></h3>
+<p>These functions set the real, effective, and saved set-IDs in one call.
+Pass <code class="docutils literal notranslate"><span
class="pre">(uid_t)-1</span></code> / <code class="docutils literal
notranslate"><span class="pre">(gid_t)-1</span></code> to leave an ID
unchanged. When the
+effective UID is zero, any values may be assigned. When the effective
+UID is non-zero, each new ID must equal the current real, effective, or
+saved ID.</p>
+<p>Soft drop (keep saved-root):</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>setresgid(gid, gid, 0);
+setresuid(uid, uid, 0);
+</pre></div>
+</div>
+<p>Hard drop (clear saved-root):</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>setresgid(gid, gid, gid);
+setresuid(uid, uid, uid);
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span
class="pre">setresgid()</span></code> requires effective UID zero to assign
arbitrary GIDs.
+Change group IDs before dropping the effective UID.</p>
+</section>
</section>
<section id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink
to this heading"></a></h2>
@@ -301,6 +343,12 @@ task group. Any output pointer may be <code
class="docutils literal notranslate"
<dt><code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_USER_IDENTITY</span></code></dt><dd><p>Enables
per-task-group credential tracking. Without this option, stub
root-only versions of all credential interfaces are provided.</p>
</dd>
+<dt><code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_NGROUPS</span></code></dt><dd><p>Maximum supplementary
group IDs per task group (default 8). Visible only
+when <code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_USER_IDENTITY</span></code> is enabled. Becomes <code
class="docutils literal notranslate"><span
class="pre">NGROUPS_MAX</span></code>.
+<code class="docutils literal notranslate"><span
class="pre">getgrouplist()</span></code> / <code class="docutils literal
notranslate"><span class="pre">initgroups()</span></code> return failure (they
do <strong>not</strong>
+silently truncate) when membership exceeds this limit; <code class="docutils
literal notranslate"><span class="pre">initgroups()</span></code>
+also logs a warning. Increase <code class="docutils literal
notranslate"><span class="pre">CONFIG_SCHED_NGROUPS</span></code> if needed.</p>
+</dd>
<dt><code class="docutils literal notranslate"><span
class="pre">CONFIG_FS_PERMISSION</span></code></dt><dd><p>Enables filesystem
ownership and permission enforcement. Requires
<code class="docutils literal notranslate"><span
class="pre">CONFIG_SCHED_USER_IDENTITY</span></code> and <code class="docutils
literal notranslate"><span class="pre">CONFIG_PSEUDOFS_ATTRIBUTES</span></code>.
See <a class="reference internal"
href="file_permission.html#file-permission"><span class="std
std-ref">Filesystem Permission Interface</span></a> for the VFS helpers,
mount-crossing
diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html
index 322be19168..054cdede44 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -195,7 +195,7 @@ standards. Additional standard APIs from Unix and other
common RTOS’s (such as
VxWorks) are adopted for functionality not available under these standards, or
for functionality that is not appropriate for deeply-embedded environments
(such
as fork()).</p>
-<p>Last Updated: 12 August 26 at 00:41</p>
+<p>Last Updated: 13 August 26 at 00:41</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of
Contents</span></p>
<ul class="current">
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index 1aecf8fb32..8e8f72f1b0 100644
Binary files a/content/docs/latest/objects.inv and
b/content/docs/latest/objects.inv differ
diff --git
a/content/docs/latest/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.html
b/content/docs/latest/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.html
index 570b3586da..e6c75439b9 100644
--- a/content/docs/latest/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.html
+++ b/content/docs/latest/platforms/arm/rtl8720f/boards/rtl8720f_evb/index.html
@@ -316,6 +316,12 @@ specifications and the vendor-SDK dependency.</p>
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>
<li><p>DHCP client (STA) and DHCP server (SoftAP)</p></li>
+<li><p>GPIO pins exposed as <code class="docutils literal notranslate"><span
class="pre">/dev/gpioN</span></code> character devices (input, output and
+interrupt), driven directly on the SDK fwlib register layer</p></li>
+<li><p>General-purpose UARTs exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/ttySN</span></code> serial devices, driven
+directly on the SDK fwlib register layer</p></li>
+<li><p>I2C master buses exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/i2cN</span></code> character devices,
driven directly
+on the SDK fwlib register layer</p></li>
</ul>
</section>
<section id="buttons-and-leds">
@@ -329,6 +335,56 @@ partition), backing the Wi-Fi key-value store</p></li>
<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="gp">$
</span>./tools/configure.sh<span class="w">
</span>rtl8720f_evb:<config-name>
</pre></div>
</div>
+<section id="gpio">
+<h3>gpio<a class="headerlink" href="#gpio" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the GPIO driver and the <code class="docutils literal
notranslate"><span class="pre">gpio</span></code> example enabled (no Wi-Fi).
+The board registers three pins from its pin table (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_gpio.c</span></code>):
an output at
+<code class="docutils literal notranslate"><span
class="pre">/dev/gpio0</span></code>, an input at <code class="docutils literal
notranslate"><span class="pre">/dev/gpio1</span></code> and an interrupt pin at
+<code class="docutils literal notranslate"><span
class="pre">/dev/gpio2</span></code>. Edit that table to match a board’s
wiring. Exercise them with
+the example:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> gpio -o 1 /dev/gpio0 # drive
the output high
+nsh> gpio /dev/gpio1 # read the input
+nsh> gpio -w 1 /dev/gpio2 # wait for a falling-edge interrupt
+</pre></div>
+</div>
+<p>RTL8720F drives all GPIO through a single port A controller, so pins are
+encoded with the <code class="docutils literal notranslate"><span
class="pre">AMEBA_PA()</span></code> helper from
+<code class="docutils literal notranslate"><span
class="pre">arch/arm/src/common/ameba/ameba_gpio.h</span></code> (pin 0-31),
matching the Ameba SDK
+<code class="docutils literal notranslate"><span
class="pre">PinName</span></code> layout.</p>
+</section>
+<section id="uart">
+<h3>uart<a class="headerlink" href="#uart" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the general-purpose UART driver and the <code
class="docutils literal notranslate"><span class="pre">serialrx</span></code> /
+<code class="docutils literal notranslate"><span
class="pre">serialblaster</span></code> examples enabled (no Wi-Fi). The
LOG-UART owns the console
+and <code class="docutils literal notranslate"><span
class="pre">/dev/ttyS0</span></code>, so the board registers UART0 from its
table (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_uart.c</span></code>)
as <code class="docutils literal notranslate"><span
class="pre">/dev/ttyS1</span></code> at
+115200 8N1. Edit that table – controller, TX/RX pads and baud – to match a
+board’s wiring. The TX/RX pads use the same <code class="docutils literal
notranslate"><span class="pre">AMEBA_PA()</span></code> encoding as the
+GPIO table; the driver muxes them to the UART function and pulls RX high
+through the SDK ROM. Exercise the port with the examples (loop TX back to RX,
+or wire it to a host serial adapter):</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> serialrx /dev/ttyS1 2600 &
# start the receiver first
+nsh> serialblaster /dev/ttyS1 2600 # then loop TX back to RX
+</pre></div>
+</div>
+<p>The line format can be changed at runtime through <code class="docutils
literal notranslate"><span class="pre">tcsetattr()</span></code> (the config
+enables <code class="docutils literal notranslate"><span
class="pre">CONFIG_SERIAL_TERMIOS</span></code>). UART2 is not exposed by the
driver.</p>
+</section>
+<section id="i2c">
+<h3>i2c<a class="headerlink" href="#i2c" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the I2C master driver and the <code class="docutils
literal notranslate"><span class="pre">i2ctool</span></code> (<code
class="docutils literal notranslate"><span class="pre">system/i2c</span></code>)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8720f/rtl8720f_evb/src/rtl8720f_i2c.c</span></code>):
I2C0 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c0</span></code>
+on PA22/PA23 and I2C1 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c1</span></code> on PA24/PA25. Edit that table –
+controller and SCL/SDA pads – to match a board’s wiring; the pads use the
+same <code class="docutils literal notranslate"><span
class="pre">AMEBA_PA()</span></code> encoding as the GPIO table and are muxed
to the I2C
+function through the SDK ROM. The I2C bus is open-drain, so fit external
+pull-ups on SCL/SDA. Probe a bus with the tool:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> i2c dev -b 0 0x03 0x77 # scan
/dev/i2c0 for devices
+</pre></div>
+</div>
+</section>
<section id="nsh">
<h3>nsh<a class="headerlink" href="#nsh" title="Permalink to this
heading"></a></h3>
<p>Networking-enabled NSH with littlefs at <code class="docutils literal
notranslate"><span class="pre">/data</span></code> and the <code
class="docutils literal notranslate"><span class="pre">wapi</span></code> Wi-Fi
tool.
diff --git
a/content/docs/latest/platforms/arm/rtl8721dx/boards/pke8721daf/index.html
b/content/docs/latest/platforms/arm/rtl8721dx/boards/pke8721daf/index.html
index ffcad02a8b..3b3169ac1e 100644
--- a/content/docs/latest/platforms/arm/rtl8721dx/boards/pke8721daf/index.html
+++ b/content/docs/latest/platforms/arm/rtl8721dx/boards/pke8721daf/index.html
@@ -321,6 +321,8 @@ partition), backing the Wi-Fi key-value store</p></li>
interrupt), driven directly on the SDK fwlib register layer</p></li>
<li><p>General-purpose UARTs exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/ttySN</span></code> serial devices, driven
directly on the SDK fwlib register layer</p></li>
+<li><p>I2C master buses exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/i2cN</span></code> character devices,
driven directly
+on the SDK fwlib register layer</p></li>
</ul>
</section>
<section id="buttons-and-leds">
@@ -377,6 +379,20 @@ nsh> serialrx # receive and dump bytes from
/dev/ttyS1
enables <code class="docutils literal notranslate"><span
class="pre">CONFIG_SERIAL_TERMIOS</span></code>). UART2 is shared with
Bluetooth and is not
exposed by the driver.</p>
</section>
+<section id="i2c">
+<h3>i2c<a class="headerlink" href="#i2c" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the I2C master driver and the <code class="docutils
literal notranslate"><span class="pre">i2ctool</span></code> (<code
class="docutils literal notranslate"><span class="pre">system/i2c</span></code>)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8721dx/pke8721daf/src/rtl8721dx_i2c.c</span></code>):
I2C0 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c0</span></code>
+on PB20/PB21 and I2C1 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c1</span></code> on PB18/PB19. Edit that table –
+controller and SCL/SDA pads – to match a board’s wiring; the pads use the
+same <code class="docutils literal notranslate"><span
class="pre">AMEBA_PA()</span></code> / <code class="docutils literal
notranslate"><span class="pre">AMEBA_PB()</span></code> encoding as the GPIO
table and are muxed
+to the I2C function through the SDK ROM. The I2C bus is open-drain, so fit
+external pull-ups on SCL/SDA. Probe a bus with the tool:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> i2c dev -b 0 0x03 0x77 # scan
/dev/i2c0 for devices
+</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/rtl8721f/boards/rtl8721f_evb/index.html
b/content/docs/latest/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.html
index 9e0285dec9..54fa2e701f 100644
--- a/content/docs/latest/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.html
+++ b/content/docs/latest/platforms/arm/rtl8721f/boards/rtl8721f_evb/index.html
@@ -320,6 +320,8 @@ partition)</p></li>
interrupt), driven directly on the SDK fwlib register layer</p></li>
<li><p>General-purpose UARTs exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/ttySN</span></code> serial devices, driven
directly on the SDK fwlib register layer</p></li>
+<li><p>I2C master buses exposed as <code class="docutils literal
notranslate"><span class="pre">/dev/i2cN</span></code> character devices,
driven directly
+on the SDK fwlib register layer</p></li>
</ul>
</section>
<section id="buttons-and-leds">
@@ -369,6 +371,20 @@ nsh> serialblaster /dev/ttyS1 2600 # then loop TX back
to RX
enables <code class="docutils literal notranslate"><span
class="pre">CONFIG_SERIAL_TERMIOS</span></code>). UART3 is shared with
Bluetooth and is not
exposed by the driver.</p>
</section>
+<section id="i2c">
+<h3>i2c<a class="headerlink" href="#i2c" title="Permalink to this
heading"></a></h3>
+<p>Minimal NSH with the I2C master driver and the <code class="docutils
literal notranslate"><span class="pre">i2ctool</span></code> (<code
class="docutils literal notranslate"><span class="pre">system/i2c</span></code>)
+enabled (no Wi-Fi). The board registers its I2C controllers from a table (see
+<code class="docutils literal notranslate"><span
class="pre">boards/arm/rtl8721f/rtl8721f_evb/src/rtl8721f_i2c.c</span></code>):
I2C0 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c0</span></code>
+on PA22/PA23 and I2C1 at <code class="docutils literal notranslate"><span
class="pre">/dev/i2c1</span></code> on PA24/PA25. Edit that table –
+controller and SCL/SDA pads – to match a board’s wiring; the pads use the
+same <code class="docutils literal notranslate"><span
class="pre">AMEBA_PA()</span></code> / <code class="docutils literal
notranslate"><span class="pre">AMEBA_PB()</span></code> encoding as the GPIO
table and are muxed
+to the I2C function through the SDK ROM. The I2C bus is open-drain, so fit
+external pull-ups on SCL/SDA. Probe a bus with the tool:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> i2c dev -b 0 0x03 0x77 # scan
/dev/i2c0 for devices
+</pre></div>
+</div>
+</section>
<section id="nsh">
<h3>nsh<a class="headerlink" href="#nsh" title="Permalink to this
heading"></a></h3>
<p>Networking-enabled NSH with littlefs at <code class="docutils literal
notranslate"><span class="pre">/data</span></code> and the <code
class="docutils literal notranslate"><span class="pre">wapi</span></code> Wi-Fi
tool.
diff --git a/content/docs/latest/platforms/index.html
b/content/docs/latest/platforms/index.html
index 80d61916fa..dd214bc0e9 100644
--- a/content/docs/latest/platforms/index.html
+++ b/content/docs/latest/platforms/index.html
@@ -918,6 +918,7 @@ series and boards supported in NuttX:</p>
<li class="toctree-l2"><a class="reference internal"
href="sim/network_linux.html">Network Support on Linux</a></li>
<li class="toctree-l2"><a class="reference internal"
href="sim/network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l2"><a class="reference internal"
href="sim/sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim/sim_input.html">Sim Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal"
href="sparc/index.html">SPARC</a><ul>
diff --git a/content/docs/latest/platforms/risc-v/esp32c6/index.html
b/content/docs/latest/platforms/risc-v/esp32c6/index.html
index b114b01218..edf9031489 100644
--- a/content/docs/latest/platforms/risc-v/esp32c6/index.html
+++ b/content/docs/latest/platforms/risc-v/esp32c6/index.html
@@ -1248,7 +1248,7 @@ and it can be set using <code class="docutils literal
notranslate"><span class="
source path of the ULP application, and either the binary (for prebuilt) or
the source files (for internal build).
This file must include either ULP makefile after the variable set process on
<code class="docutils literal notranslate"><span
class="pre">arch/risc-v/src/common/espressif/esp_ulp.mk</span></code>
or <code class="docutils literal notranslate"><span
class="pre">arch/risc-v/src/common/espressif/esp_ulp.cmake</span></code>
integration script depending on build system preference.
-For more information please refer to <a class="reference internal"
href="../../xtensa/esp32s3/index.html#ulp-makefile"><span class="std
std-ref">ulp example Makefile.</span></a> or <a class="reference internal"
href="../esp32p4/index.html#ulp-cmake"><span class="std std-ref">ulp example
CMake.</span></a></p>
+For more information please refer to <a class="reference internal"
href="../../xtensa/esp32s3/index.html#ulp-makefile"><span class="std
std-ref">ulp example Makefile.</span></a> or <a class="reference internal"
href="#ulp-cmake"><span class="std std-ref">ulp example CMake.</span></a></p>
</section>
<section id="makefile-cmake-variables-for-ulp-core-build">
<h3>Makefile/CMake Variables for ULP Core Build:<a class="headerlink"
href="#makefile-cmake-variables-for-ulp-core-build" title="Permalink to this
heading"></a></h3>
diff --git a/content/docs/latest/platforms/risc-v/esp32p4/index.html
b/content/docs/latest/platforms/risc-v/esp32p4/index.html
index 3e09b895f1..c8cd37a36b 100644
--- a/content/docs/latest/platforms/risc-v/esp32p4/index.html
+++ b/content/docs/latest/platforms/risc-v/esp32p4/index.html
@@ -903,7 +903,7 @@ and it can be set using <code class="docutils literal
notranslate"><span class="
source path of the ULP application, and either the binary (for prebuilt) or
the source files (for internal build).
This file must include either ULP makefile after the variable set process on
<code class="docutils literal notranslate"><span
class="pre">arch/risc-v/src/common/espressif/esp_ulp.mk</span></code>
or <code class="docutils literal notranslate"><span
class="pre">arch/risc-v/src/common/espressif/esp_ulp.cmake</span></code>
integration script depending on build system preference.
-For more information please refer to <a class="reference internal"
href="../../xtensa/esp32s3/index.html#ulp-makefile"><span class="std
std-ref">ulp example Makefile.</span></a> or <a class="reference internal"
href="#ulp-cmake"><span class="std std-ref">ulp example CMake.</span></a></p>
+For more information please refer to <a class="reference internal"
href="../../xtensa/esp32s3/index.html#ulp-makefile"><span class="std
std-ref">ulp example Makefile.</span></a> or <a class="reference internal"
href="../esp32c6/index.html#ulp-cmake"><span class="std std-ref">ulp example
CMake.</span></a></p>
</section>
<section id="makefile-cmake-variables-for-ulp-core-build">
<h3>Makefile/CMake Variables for ULP Core Build:<a class="headerlink"
href="#makefile-cmake-variables-for-ulp-core-build" title="Permalink to this
heading"></a></h3>
diff --git
a/content/docs/latest/platforms/risc-v/hpm6000/boards/hpm6360evk/index.html
b/content/docs/latest/platforms/risc-v/hpm6000/boards/hpm6360evk/index.html
index 74250257ba..196d08eeaa 100644
--- a/content/docs/latest/platforms/risc-v/hpm6000/boards/hpm6360evk/index.html
+++ b/content/docs/latest/platforms/risc-v/hpm6000/boards/hpm6360evk/index.html
@@ -233,41 +233,38 @@
<h1>hpm6360evk<a class="headerlink" href="#hpm6360evk" title="Permalink to
this heading"></a></h1>
<ol class="arabic">
<li><p>Download and install toolchain:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>curl
https://github.com/hpmicro/riscv-gnu-toolchain/releases/tag/2022.05.15
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>$wget
https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
+
+$tar xf riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
+
+$export PATH=$PATH:/<path to
compiler>/riscv32-unknown-elf-newlib-multilib/bin/
</pre></div>
</div>
-</li>
-<li><p>Download and install openocd.</p></li>
-</ol>
+<p>Make sure HPMicro GNU riscv32 toolchain have been installed and be found in
PATH.</p>
<blockquote>
-<div><p>Download hpmicro sdk_env, openocd in the path:
sdk_env/tools/openocd</p>
+<div><p>$riscv32-unknown-elf-gcc -v</p>
+<p>gcc version 11.1.0 (g5964b5cd727)</p>
</div></blockquote>
-<ol class="arabic" start="3">
+</li>
<li><p>Configure and build NuttX:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>mkdir ./nuttxspace
+<blockquote>
+<div><p>mkdir ./nuttxspace
cd ./nuttxspace
-git clone https://github.com/apache/nuttx.git nuttx
-git clone https://github.com/apache/nuttx-apps.git apps
+git clone <a class="reference external"
href="https://github.com/apache/nuttx.git">https://github.com/apache/nuttx.git</a>
nuttx
+git clone <a class="reference external"
href="https://github.com/apache/nuttx-apps.git">https://github.com/apache/nuttx-apps.git</a>
apps
cd nuttx
make distclean
./tools/configure.sh hpm6750evk2:nsh
make menuconfig
-make V=1
-</pre></div>
-</div>
+make V=1</p>
+</div></blockquote>
</li>
-</ol>
-<p>Note: make menuconfig to config toolchain</p>
-<p>To switch GNU riscv64 toolchain to GNU riscv32 toolchain, the following
option must be selected:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>System Type --->
- Toolchain Selection --->
- [ ] Generic GNU RV64 toolchain
- [x] Generic GNU RV32 toolchain
+<li><p>Download and install openocd:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>Download hpmicro sdk_env, openocd in the
path: sdk_env/tools/openocd
</pre></div>
</div>
-<p>Make sure HPMicro GNU riscv32 toolchain have been installed and be found in
PATH.</p>
-<ol class="arabic" start="4">
-<li><p>Debug the nuttx with openocd and run:</p>
+</li>
+<li><p>Debug the NuttX with openocd:</p>
<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>picocom -b 115200 /dev/ttyACM0
</pre></div>
</div>
diff --git a/content/docs/latest/platforms/sim/index.html
b/content/docs/latest/platforms/sim/index.html
index 5d03f859f8..b412090a78 100644
--- a/content/docs/latest/platforms/sim/index.html
+++ b/content/docs/latest/platforms/sim/index.html
@@ -152,6 +152,7 @@
<li class="toctree-l3"><a class="reference internal"
href="network_linux.html">Network Support on Linux</a></li>
<li class="toctree-l3"><a class="reference internal"
href="network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l3"><a class="reference internal"
href="sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="sim_input.html">Sim
Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../sparc/index.html">SPARC</a></li>
@@ -253,6 +254,15 @@ The purpose of this port is primarily to support OS
feature development.</p>
<li class="toctree-l2"><a class="reference internal"
href="sim_gpiochip.html#see-also">See Also</a></li>
</ul>
</li>
+<li class="toctree-l1"><a class="reference internal" href="sim_input.html">Sim
Input Interfaces</a><ul>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#overview">Overview</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#buttons">Buttons</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#joystick">Joystick</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#keyboard">Keyboard</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#mouse">Mouse</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="sim_input.html#touchscreen">Touchscreen</a></li>
+</ul>
+</li>
</ul>
</div>
</section>
diff --git a/content/docs/latest/platforms/sim/network_linux.html
b/content/docs/latest/platforms/sim/network_linux.html
index 9c6529ae7e..8967a24af6 100644
--- a/content/docs/latest/platforms/sim/network_linux.html
+++ b/content/docs/latest/platforms/sim/network_linux.html
@@ -162,6 +162,7 @@
</li>
<li class="toctree-l3"><a class="reference internal"
href="network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l3"><a class="reference internal"
href="sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="sim_input.html">Sim
Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../sparc/index.html">SPARC</a></li>
diff --git a/content/docs/latest/platforms/sim/network_vpnkit.html
b/content/docs/latest/platforms/sim/network_vpnkit.html
index a22ca1b4d7..9d8630960d 100644
--- a/content/docs/latest/platforms/sim/network_vpnkit.html
+++ b/content/docs/latest/platforms/sim/network_vpnkit.html
@@ -157,6 +157,7 @@
</ul>
</li>
<li class="toctree-l3"><a class="reference internal"
href="sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l3"><a class="reference internal" href="sim_input.html">Sim
Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../sparc/index.html">SPARC</a></li>
diff --git a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
index 6fd2a51f17..7883a0a286 100644
--- a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
+++ b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
@@ -164,6 +164,7 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../network_linux.html">Network Support on Linux</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host
GPIO)</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="../../../sim_input.html">Sim Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../../../../sparc/index.html">SPARC</a></li>
diff --git a/content/docs/latest/platforms/sim/sim/index.html
b/content/docs/latest/platforms/sim/sim/index.html
index 7cab4f386a..9e510e1602 100644
--- a/content/docs/latest/platforms/sim/sim/index.html
+++ b/content/docs/latest/platforms/sim/sim/index.html
@@ -164,6 +164,7 @@
<li class="toctree-l3"><a class="reference internal"
href="../network_linux.html">Network Support on Linux</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../network_vpnkit.html">Network support with VPNKit</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="../sim_input.html">Sim Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../../sparc/index.html">SPARC</a></li>
diff --git a/content/docs/latest/platforms/sim/sim_gpiochip.html
b/content/docs/latest/platforms/sim/sim_gpiochip.html
index 0a083f7025..a9dbbbf189 100644
--- a/content/docs/latest/platforms/sim/sim_gpiochip.html
+++ b/content/docs/latest/platforms/sim/sim_gpiochip.html
@@ -46,7 +46,7 @@
<script src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
- <link rel="next" title="SPARC" href="../sparc/index.html" />
+ <link rel="next" title="Sim Input Interfaces" href="sim_input.html" />
<link rel="prev" title="Network support with VPNKit"
href="network_vpnkit.html" />
</head>
@@ -177,6 +177,7 @@
<li class="toctree-l4"><a class="reference internal" href="#see-also">See
Also</a></li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal" href="sim_input.html">Sim
Input Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../sparc/index.html">SPARC</a></li>
@@ -524,7 +525,7 @@ implemented using polling rather than true hardware
interrupts.</p></li>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
<a href="network_vpnkit.html" class="btn btn-neutral float-left"
title="Network support with VPNKit" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
- <a href="../sparc/index.html" class="btn btn-neutral float-right"
title="SPARC" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="sim_input.html" class="btn btn-neutral float-right"
title="Sim Input Interfaces" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/platforms/sim/network_vpnkit.html
b/content/docs/latest/platforms/sim/sim_input.html
similarity index 74%
copy from content/docs/latest/platforms/sim/network_vpnkit.html
copy to content/docs/latest/platforms/sim/sim_input.html
index a22ca1b4d7..fbbd2eccc2 100644
--- a/content/docs/latest/platforms/sim/network_vpnkit.html
+++ b/content/docs/latest/platforms/sim/sim_input.html
@@ -25,7 +25,7 @@
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19:
https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Network support with VPNKit — NuttX latest documentation</title>
+ <title>Sim Input Interfaces — NuttX latest documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css"
/>
<link rel="stylesheet" type="text/css"
href="../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css"
href="../../_static/copybutton.css" />
@@ -46,8 +46,8 @@
<script src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
- <link rel="next" title="Sim GPIO Chip Driver (Linux Host GPIO)"
href="sim_gpiochip.html" />
- <link rel="prev" title="Network Support on Linux"
href="network_linux.html" />
+ <link rel="next" title="SPARC" href="../sparc/index.html" />
+ <link rel="prev" title="Sim GPIO Chip Driver (Linux Host GPIO)"
href="sim_gpiochip.html" />
</head>
<body class="wy-body-for-nav">
@@ -150,13 +150,17 @@
<li class="toctree-l2 current"><a class="reference internal"
href="index.html">Simulators</a><ul class="current">
<li class="toctree-l3"><a class="reference internal"
href="sim/index.html">SIM</a></li>
<li class="toctree-l3"><a class="reference internal"
href="network_linux.html">Network Support on Linux</a></li>
-<li class="toctree-l3 current"><a class="current reference internal"
href="#">Network support with VPNKit</a><ul>
-<li class="toctree-l4"><a class="reference internal"
href="#configuration">Configuration</a></li>
-<li class="toctree-l4"><a class="reference internal"
href="#vpnkit-setup">VPNKit setup</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#how-to-run">How to
run</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="network_vpnkit.html">Network support with VPNKit</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
+<li class="toctree-l3 current"><a class="current reference internal"
href="#">Sim Input Interfaces</a><ul>
+<li class="toctree-l4"><a class="reference internal"
href="#overview">Overview</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#buttons">Buttons</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#joystick">Joystick</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#keyboard">Keyboard</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#mouse">Mouse</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#touchscreen">Touchscreen</a></li>
</ul>
</li>
-<li class="toctree-l3"><a class="reference internal"
href="sim_gpiochip.html">Sim GPIO Chip Driver (Linux Host GPIO)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../sparc/index.html">SPARC</a></li>
@@ -199,9 +203,9 @@
<li><a href="../../index.html" class="icon icon-home"
aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html">Supported
Platforms</a></li>
<li class="breadcrumb-item"><a href="index.html">Simulators</a></li>
- <li class="breadcrumb-item active">Network support with VPNKit</li>
+ <li class="breadcrumb-item active">Sim Input Interfaces</li>
<li class="wy-breadcrumbs-aside">
- <a
href="https://github.com/apache/nuttx/blob/master/Documentation/platforms/sim/network_vpnkit.rst"
class="fa fa-github"> Edit on GitHub</a>
+ <a
href="https://github.com/apache/nuttx/blob/master/Documentation/platforms/sim/sim_input.rst"
class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
@@ -209,45 +213,34 @@
<div role="main" class="document" itemscope="itemscope"
itemtype="http://schema.org/Article">
<div itemprop="articleBody">
- <section id="network-support-with-vpnkit">
-<h1>Network support with VPNKit<a class="headerlink"
href="#network-support-with-vpnkit" title="Permalink to this heading"></a></h1>
-<p>The simulation can be configured to use VPNKit to provide network support.
-While this was developed for macOS, it should work on other platforms
-as well.</p>
-<section id="configuration">
-<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink
to this heading"></a></h2>
-<div class="highlight-bash notranslate"><div
class="highlight"><pre><span></span><span
class="nv">CONFIG_SIM_NETDEV</span><span class="o">=</span>y
-CONFIG_SIM_NETDEV_TAP<span class="w"> </span>is<span class="w">
</span>not<span class="w"> </span><span class="nb">set</span>
-<span class="nv">CONFIG_SIM_NETDEV_VPNKIT</span><span class="o">=</span>y
-<span class="nv">CONFIG_SIM_NETDEV_VPNKIT_PATH</span><span
class="o">=</span><span class="s2">"/tmp/vpnkit-nuttx"</span>
-</pre></div>
-</div>
-<p>You can use the <code class="docutils literal notranslate"><span
class="pre">sim:vpnkit</span></code> configuration, which includes the above
-settings.</p>
-<div class="highlight-bash notranslate"><div
class="highlight"><pre><span></span>./tools/configure.sh<span class="w">
</span>sim:vpnkit
-</pre></div>
-</div>
+ <section id="sim-input-interfaces">
+<h1>Sim Input Interfaces<a class="headerlink" href="#sim-input-interfaces"
title="Permalink to this heading"></a></h1>
+<section id="overview">
+<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this
heading"></a></h2>
+<p>The Sim can emulate buttons, keyboard, touchscreen-mouse based, mouse with
3 buttons and analog-mouse based joystick.</p>
+<p>These drivers are particularly useful for graphical applications emulared
over X11.</p>
</section>
-<section id="vpnkit-setup">
-<h2>VPNKit setup<a class="headerlink" href="#vpnkit-setup" title="Permalink to
this heading"></a></h2>
-<p>See <cite>https://github.com/moby/vpnkit</cite> for build instructions.</p>
-<p>If you have Docker Desktop for Mac installed on your machine,
-you can find a vpnkit binary at:</p>
-<div class="highlight-bash notranslate"><div
class="highlight"><pre><span></span>/Applications/Docker.app/Contents/Resources/bin/com.docker.vpnkit
-</pre></div>
-</div>
-<p>A docker image containing a static Linux binary is also available:</p>
-<p><cite>https://hub.docker.com/r/djs55/vpnkit</cite></p>
+<section id="buttons">
+<h2>Buttons<a class="headerlink" href="#buttons" title="Permalink to this
heading"></a></h2>
+<p>This driver emulates a button using the user Mouse button. You can enable
it using
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_BUTTONS</span></code>.</p>
</section>
-<section id="how-to-run">
-<h2>How to run<a class="headerlink" href="#how-to-run" title="Permalink to
this heading"></a></h2>
-<p>You can use it as the following:</p>
-<div class="highlight-bash notranslate"><div
class="highlight"><pre><span></span>%<span class="w"> </span>vpnkit<span
class="w"> </span>--ethernet<span class="w"> </span>/tmp/vpnkit-nuttx<span
class="w"> </span><span class="p">&</span>
-%<span class="w"> </span>./nuttx
-</pre></div>
-</div>
-<p>NuttX’s <code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_NETDEV_VPNKIT_PATH</span></code> should match vpnkit’s
-<code class="docutils literal notranslate"><span
class="pre">--ethernet</span></code> option.</p>
+<section id="joystick">
+<h2>Joystick<a class="headerlink" href="#joystick" title="Permalink to this
heading"></a></h2>
+<p>This driver simulates an Analog Joystick using the user mouse.</p>
+</section>
+<section id="keyboard">
+<h2>Keyboard<a class="headerlink" href="#keyboard" title="Permalink to this
heading"></a></h2>
+<p>There are two types of keyboards: is native one used by default on NuttX
SIM, since it is used to access the NuttShell interface and the <code
class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_KEYBOARD</span></code> used with graphical
applications.</p>
+</section>
+<section id="mouse">
+<h2>Mouse<a class="headerlink" href="#mouse" title="Permalink to this
heading"></a></h2>
+<p>The driver emulates a Mouse with 3 buttons support. It can be enabled using
the
+symbol: <code class="docutils literal notranslate"><span
class="pre">CONFIG_SIM_MOUSE</span></code>. This driver is useful with used
with more advanced interfaces like Microwindow/Nano-X that require at least
left and right click buttons events.</p>
+</section>
+<section id="touchscreen">
+<h2>Touchscreen<a class="headerlink" href="#touchscreen" title="Permalink to
this heading"></a></h2>
+<p>The difference between this driver and the Mouse is because this only
generates a pen-down event when the user click in the interface. It is useful
to use with LVGL graphic interface.</p>
</section>
</section>
@@ -255,8 +248,8 @@ you can find a vpnkit binary at:</p>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
- <a href="network_linux.html" class="btn btn-neutral float-left"
title="Network Support on Linux" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
- <a href="sim_gpiochip.html" class="btn btn-neutral float-right"
title="Sim GPIO Chip Driver (Linux Host GPIO)" accesskey="n" rel="next">Next
<span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="sim_gpiochip.html" class="btn btn-neutral float-left"
title="Sim GPIO Chip Driver (Linux Host GPIO)" accesskey="p" rel="prev"><span
class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="../sparc/index.html" class="btn btn-neutral float-right"
title="SPARC" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/platforms/sparc/index.html
b/content/docs/latest/platforms/sparc/index.html
index e54a21445e..46e57adf78 100644
--- a/content/docs/latest/platforms/sparc/index.html
+++ b/content/docs/latest/platforms/sparc/index.html
@@ -47,7 +47,7 @@
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="BM3803" href="bm3803/index.html" />
- <link rel="prev" title="Sim GPIO Chip Driver (Linux Host GPIO)"
href="../sim/sim_gpiochip.html" />
+ <link rel="prev" title="Sim Input Interfaces" href="../sim/sim_input.html"
/>
</head>
<body class="wy-body-for-nav">
@@ -218,7 +218,7 @@
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
- <a href="../sim/sim_gpiochip.html" class="btn btn-neutral float-left"
title="Sim GPIO Chip Driver (Linux Host GPIO)" accesskey="p" rel="prev"><span
class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+ <a href="../sim/sim_input.html" class="btn btn-neutral float-left"
title="Sim Input Interfaces" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="bm3803/index.html" class="btn btn-neutral float-right"
title="BM3803" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index 445f3cec13..d56e543d39 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/arch-xtensa", "_tags/chip-a527",
"_tags/chip-a64", "_tags/chip-am62x", "_tags/chip-am67", "_tags/chip-at32uc3",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128",
"_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/ [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["_tags/arch-arm", "_tags/arch-arm64",
"_tags/arch-armv8m", "_tags/arch-avr", "_tags/arch-cm33", "_tags/arch-example",
"_tags/arch-mips", "_tags/arch-renesas", "_tags/arch-risc-v",
"_tags/arch-riscv", "_tags/arch-sim", "_tags/arch-xtensa", "_tags/chip-a527",
"_tags/chip-a64", "_tags/chip-am62x", "_tags/chip-am67", "_tags/chip-at32uc3",
"_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega128",
"_tags/chip-atmega1284p", "_tags/chip-atmega2560", "_tags/ [...]
\ No newline at end of file
diff --git a/content/feed.xml b/content/feed.xml
index cb4915bd36..9bb13c8871 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -5,8 +5,8 @@
<description></description>
<link>/</link>
<atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
- <pubDate>Wed, 12 Aug 2026 00:43:27 +0000</pubDate>
- <lastBuildDate>Wed, 12 Aug 2026 00:43:27 +0000</lastBuildDate>
+ <pubDate>Thu, 13 Aug 2026 00:43:05 +0000</pubDate>
+ <lastBuildDate>Thu, 13 Aug 2026 00:43:05 +0000</lastBuildDate>
<generator>Jekyll v4.4.1</generator>
<item>