This is an automated email from the ASF dual-hosted git repository.

github-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 122106c36 Publishing web: be40bd59e126a7ffe6ebacfb1b7682fcd8e89704 
docs: bc4041db608e9a04fd811dd74bcc67d8bded0d25
122106c36 is described below

commit 122106c36568ca26da09645d4ca47247d8d31a72
Author: Alan Carvalho de Assis <acas...@gmail.com>
AuthorDate: Mon Jun 23 00:33:40 2025 +0000

    Publishing web: be40bd59e126a7ffe6ebacfb1b7682fcd8e89704 docs: 
bc4041db608e9a04fd811dd74bcc67d8bded0d25
---
 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.2.0/index.html                     |   2 +-
 .../xtensa/esp32/boards/esp32-audio-kit/index.html |   2 +-
 .../xtensa/esp32/boards/esp32-devkitc/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 +-
 .../_sources/components/libs/libc/index.rst.txt    |   1 +
 .../_sources/components/libs/libc/stream.rst.txt   | 181 +++++++++++
 .../risc-v/qemu-rv/boards/rv-virt/index.rst.txt    |  33 ++
 .../docs/latest/components/libs/libc/index.html    |   8 +-
 .../libs/libc/{index.html => stream.html}          | 335 ++++++++++++---------
 .../docs/latest/components/libs/libc/zoneinfo.html |   6 +-
 content/docs/latest/guides/fully_linked_elf.html   |   2 +-
 .../docs/latest/guides/partially_linked_elf.html   |   2 +-
 content/docs/latest/index.html                     |   2 +-
 content/docs/latest/objects.inv                    | Bin 156301 -> 156373 bytes
 .../risc-v/qemu-rv/boards/rv-virt/index.html       |  29 ++
 content/docs/latest/searchindex.js                 |   2 +-
 content/feed.xml                                   |   4 +-
 45 files changed, 481 insertions(+), 188 deletions(-)

diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index 1db25331f..7dd9ba2fd 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: 22 June 25 at 00:16</p>
+<p>Last Updated: 23 June 25 at 00:16</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 997255fed..190732d4a 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -243,7 +243,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: 22 June 25 at 00:17</p>
+<p>Last Updated: 23 June 25 at 00:16</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 18d9bb806..f7de75e44 100644
--- a/content/docs/10.1.0/index.html
+++ b/content/docs/10.1.0/index.html
@@ -243,7 +243,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: 22 June 25 at 00:17</p>
+<p>Last Updated: 23 June 25 at 00:17</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 b2bc29d98..80b170f5f 100644
--- a/content/docs/10.2.0/index.html
+++ b/content/docs/10.2.0/index.html
@@ -244,7 +244,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: 22 June 25 at 00:17</p>
+<p>Last Updated: 23 June 25 at 00:17</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 fa8910b2f..80b170f5f 100644
--- a/content/docs/10.3.0/index.html
+++ b/content/docs/10.3.0/index.html
@@ -244,7 +244,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: 22 June 25 at 00:18</p>
+<p>Last Updated: 23 June 25 at 00:17</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 fa8910b2f..b98c45eec 100644
--- a/content/docs/11.0.0/index.html
+++ b/content/docs/11.0.0/index.html
@@ -244,7 +244,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: 22 June 25 at 00:18</p>
+<p>Last Updated: 23 June 25 at 00:18</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 18bb86951..97db8a2e6 100644
--- a/content/docs/12.0.0/index.html
+++ b/content/docs/12.0.0/index.html
@@ -169,7 +169,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: 22 June 25 at 00:18</p>
+<p>Last Updated: 23 June 25 at 00:18</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 cb1695d05..8a68d1404 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 1e01d7f1b..697ba3d8d 100644
--- a/content/docs/12.1.0/index.html
+++ b/content/docs/12.1.0/index.html
@@ -169,7 +169,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: 22 June 25 at 00:19</p>
+<p>Last Updated: 23 June 25 at 00:18</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 c508d42d2..b797d33f9 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.2.0/index.html b/content/docs/12.2.0/index.html
index 98e020e2b..75bc61085 100644
--- a/content/docs/12.2.0/index.html
+++ b/content/docs/12.2.0/index.html
@@ -170,7 +170,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: 22 June 25 at 00:19</p>
+<p>Last Updated: 23 June 25 at 00:19</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/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html 
b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html
index b3745b07a..66bb2633b 100644
--- 
a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html
+++ 
b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-audio-kit/index.html
@@ -351,7 +351,7 @@ Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/)
 <p>Look for your PC IP address and test playing the prepared audio on your
 browser:</p>
 <figure class="align-center">
-<img alt="../../../../../_images/esp32-audio-config-file.png" 
src="../../../../../_images/esp32-audio-config-file.png" />
+<img alt="../../../../../_images/esp32-audio-config-file1.png" 
src="../../../../../_images/esp32-audio-config-file1.png" />
 </figure>
 <p>After successfully built and flashed, connect the board to the Wi-Fi 
network:</p>
 <div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>$ nsh&gt; wapi psk wlan0 mypasswd 3
diff --git 
a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html 
b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html
index d210b17ce..3d5dcfced 100644
--- a/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html
+++ b/content/docs/12.2.0/platforms/xtensa/esp32/boards/esp32-devkitc/index.html
@@ -448,7 +448,7 @@ Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/)
 <p>Look for your PC IP address and test playing the prepared audio on your
 browser:</p>
 <figure class="align-center">
-<img alt="../../../../../_images/esp32-audio-config-file1.png" 
src="../../../../../_images/esp32-audio-config-file1.png" />
+<img alt="../../../../../_images/esp32-audio-config-file.png" 
src="../../../../../_images/esp32-audio-config-file.png" />
 </figure>
 <p>After successfully built and flashed, connect the board to the Wi-Fi 
network:</p>
 <div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>nsh&gt; wapi psk wlan0 mypasswd 3
diff --git a/content/docs/12.2.0/searchindex.js 
b/content/docs/12.2.0/searchindex.js
index 1c17536e0..b3d49ae7c 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 98e020e2b..75bc61085 100644
--- a/content/docs/12.2.1/index.html
+++ b/content/docs/12.2.1/index.html
@@ -170,7 +170,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: 22 June 25 at 00:19</p>
+<p>Last Updated: 23 June 25 at 00:19</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 4808b28b8..3fb00286f 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 f680500f1..c87ff548f 100644
--- a/content/docs/12.3.0/index.html
+++ b/content/docs/12.3.0/index.html
@@ -170,7 +170,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: 22 June 25 at 00:20</p>
+<p>Last Updated: 23 June 25 at 00:19</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 28f669647..5141260f7 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 320493bdc..5d6bc3fe3 100644
--- a/content/docs/12.4.0/index.html
+++ b/content/docs/12.4.0/index.html
@@ -177,7 +177,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: 22 June 25 at 00:20</p>
+<p>Last Updated: 23 June 25 at 00:20</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 59837e79f..b886a369d 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 8b304eb34..e81bf0e44 100644
--- a/content/docs/12.5.0/index.html
+++ b/content/docs/12.5.0/index.html
@@ -177,7 +177,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: 22 June 25 at 00:22</p>
+<p>Last Updated: 23 June 25 at 00:21</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 a9078a861..db1c10c50 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 c1f4e202d..8e1bd4c06 100644
--- a/content/docs/12.5.1/index.html
+++ b/content/docs/12.5.1/index.html
@@ -177,7 +177,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: 22 June 25 at 00:23</p>
+<p>Last Updated: 23 June 25 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.5.1/searchindex.js 
b/content/docs/12.5.1/searchindex.js
index 0bc8c9927..c09b2163b 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 bf67e6495..3a098d0c8 100644
--- a/content/docs/12.6.0/index.html
+++ b/content/docs/12.6.0/index.html
@@ -178,7 +178,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: 22 June 25 at 00:24</p>
+<p>Last Updated: 23 June 25 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.6.0/searchindex.js 
b/content/docs/12.6.0/searchindex.js
index 689fd37dd..541622e49 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 0c5ec12de..37a430f52 100644
--- a/content/docs/12.7.0/index.html
+++ b/content/docs/12.7.0/index.html
@@ -177,7 +177,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: 22 June 25 at 00:26</p>
+<p>Last Updated: 23 June 25 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.7.0/searchindex.js 
b/content/docs/12.7.0/searchindex.js
index 5d41eaba0..bcd9c9cb5 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 4e520f89e..0e6b81b40 100644
--- a/content/docs/12.8.0/index.html
+++ b/content/docs/12.8.0/index.html
@@ -177,7 +177,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: 22 June 25 at 00:28</p>
+<p>Last Updated: 23 June 25 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.8.0/searchindex.js 
b/content/docs/12.8.0/searchindex.js
index 308e2dda2..ce18ae704 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 d5eea3222..3fc0d66f0 100644
--- a/content/docs/12.9.0/index.html
+++ b/content/docs/12.9.0/index.html
@@ -177,7 +177,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: 22 June 25 at 00:29</p>
+<p>Last Updated: 23 June 25 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.9.0/searchindex.js 
b/content/docs/12.9.0/searchindex.js
index 545a2bfa8..8e68fdf41 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/latest/_sources/components/libs/libc/index.rst.txt 
b/content/docs/latest/_sources/components/libs/libc/index.rst.txt
index fac61e12b..0394d43df 100644
--- a/content/docs/latest/_sources/components/libs/libc/index.rst.txt
+++ b/content/docs/latest/_sources/components/libs/libc/index.rst.txt
@@ -153,4 +153,5 @@ Implementation Details
    :maxdepth: 1
    :caption: Contents:
    
+   stream.rst
    zoneinfo.rst
diff --git a/content/docs/latest/_sources/components/libs/libc/stream.rst.txt 
b/content/docs/latest/_sources/components/libs/libc/stream.rst.txt
new file mode 100644
index 000000000..fbb446060
--- /dev/null
+++ b/content/docs/latest/_sources/components/libs/libc/stream.rst.txt
@@ -0,0 +1,181 @@
+lib_bsprintf
+============
+
+This function is mainly used to output the contents of the input
+structure. Supports standard formats for printf and scanf. For detailed
+parameters, see: 1. https://en.cppreference.com/w/c/io/fprintf 2.
+https://en.cppreference.com/w/c/io/fscanf
+
+-  **special**:
+
+   1. Float use %hf, “%f” or “%lf” is double, “%Lf” is long double.
+   2. The char array is specified with %.xs. for example: “char t[30]”
+      is specified with “%.30s”, char a [20] - " %.20s "
+   3. “%u” is unsigned int.
+   4. “%d” is int.
+   5. When using %f to format a double data type, the double is
+      truncated to 6 decimal places by default.
+   6. It is recommended that the “char[]” array be placed at the end of
+      the structure to prevent parameter configuration errors such as
+      “%.20s” from causing problems in parsing the entire buffer.
+
+-  **demo**
+
+   1. **struct**:
+
+   ::
+
+      begin_packed_struct
+      struct test
+      {
+        uint8_t a;
+        uint16_t b;
+        uint32_t c;
+        int8_t d;
+        int16_t e;
+        int32_t f;
+        float g;
+        double h;
+        char i[32];
+        uint64_t j;
+        int64_t k;
+        char l;
+        unsigned char m;
+        short int n;
+        unsigned short int o;
+        int p;
+        unsigned int q;
+        long r;
+        unsigned long s;
+        long long t;
+        unsigned long long u;
+        size_t v;
+        long double w;
+      }end_packed_struct;
+
+   1. **format string**:
+
+   ::
+
+      const char* sg = "           uint8_t:[%hhu]\n" \
+                       "          uint16_t:[%hu]\n" \
+                       "          uint32_t:[%u]\n" \
+                       "            int8_t:[%hhd]\n" \
+                       "           int16_t:[%hd]\n" \
+                       "           int32_t:[%d]\n" \
+                       "             float:[%hf]\n" \
+                       "            double:[%f]\n" \
+                       "            char[]:[%.32s]\n" \
+                       "          uint64_t:[%lu]\n" \
+                       "           int64_t:[%ld]\n" \
+                       "              char:[%hhd]\n" \
+                       "     unsigned char:[%hhu]\n" \
+                       "         short int:[%hd]\n" \
+                       "unsigned short int:[%hu]\n" \
+                       "               int:[%d]\n" \
+                       "      unsigned int:[%u]\n" \
+                       "              long:[%ld]\n" \
+                       "     unsigned long:[%lu]\n" \
+                       "         long long:[%lld]\n" \
+                       "unsigned long long:[%llu]\n" \
+                       "            size_t:[%uz]\n" \
+                       "       long double:[%Lf]\n";
+
+   1. **use**:
+
+   -  output to terminal:
+
+   ::
+
+      #ifdef CONFIG_FILE_STREAM
+       struct lib_stdoutstream_s stdoutstream;
+
+       lib_stdoutstream(&stdoutstream, stdout);
+
+       flockfile(stdout);
+       lib_bsprintf(&stdoutstream.common, sv, &test_v);
+       lib_bsprintf(&stdoutstream.common, sg, &test_g);
+       funlockfile(stdout);
+      #else
+       struct lib_rawoutstream_s rawoutstream;
+       struct lib_bufferedoutstream_s outstream;
+
+       lib_rawoutstream(&rawoutstream, STDOUT_FILENO);
+       lib_bufferedoutstream(&outstream, &rawoutstream.common);
+
+       lib_bsprintf(&outstream.common, sv, &test_v);
+       lib_bsprintf(&outstream.common, sg, &test_g);
+
+       lib_stream_flush(&outstream.common);
+      #endif
+
+lib_bscanf
+==========
+
+This function adds a formatted standard scanf string to the
+structure(lib_bscanf). 1. https://zh.cppreference.com/w/c/io/fscanf
+
+-  **special**:
+
+   1. Please use %lf for double precision, “%hf” or “%f” for float, long
+      double (“%Lf”) is not supported.
+   2. Please use %hhd or %hhu for a single char or unsigned char.
+   3. Use %hd or %hu for short int or unsigned short int.
+   4. When using %s or %c, please specify the length of the char array,
+      such as %32s, %32c.
+   5. %s will check the string for spaces. When there are spaces in the
+      string, it will be truncated. If you want to use string with
+      spaces, please use %{length}c, but make sure that the length of
+      the string can fill the array, otherwise an error will occur.
+   6. %[] collection and %n are not supported.
+
+-  **demo**
+
+   1. **struct**: Same as above
+   2. **format string**:
+
+   ::
+
+      #define TOSTR(str)   #str
+      #define TONNAME(name) TOSTR(name)
+
+      #define v_uint8_t    97
+      #define v_uint16_t   19299
+      #define v_uint32_t   22155
+
+      ......
+
+      #define v_l_double   -9299.9299929912122464755474
+
+      char bflag[] = 
"%hhu%hu%u%hhd%hd%d%f%lf%32s%llu%lld%hhd%hhu%hd%hu%d%u%ld%lu%lld%llu%zu%ld";
+
+      char binput[] = TONNAME(v_uint8_t) \
+                     " " TONNAME(v_uint16_t) \
+                     " " TONNAME(v_uint32_t) \
+                     " " TONNAME(v_int8_t) \
+                     " " TONNAME(v_int16_t) \
+                     " " TONNAME(v_int32_t) \
+                     " " TONNAME(v_float) \
+                     " " TONNAME(v_double) \
+                     " " TONNAME(v_char_arr) \
+                     " " TONNAME(v_uint64_t) \
+                     " " TONNAME(v_int64_t) \
+                     " " TONNAME(v_char) \
+                     " " TONNAME(v_u_char) \
+                     " " TONNAME(v_s_int) \
+                     " " TONNAME(v_u_s_int) \
+                     " " TONNAME(v_int) \
+                     " " TONNAME(v_u_int) \
+                     " " TONNAME(v_long) \
+                     " " TONNAME(v_u_long) \
+                     " " TONNAME(v_l_l) \
+                     " " TONNAME(v_u_l_l) \
+                     " " TONNAME(v_size_t) \
+                     " " TONNAME(v_l_double);
+
+   3. **use**:
+
+   ::
+
+      struct test vg;
+      ret = lib_bscanf(binput, bflag, &vg);
diff --git 
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
 
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
index 7329f198a..6cdbe6ae4 100644
--- 
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
+++ 
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
@@ -371,6 +371,39 @@ nsh64
 
 Identical to the `nsh`_ configuration, but for 64-bit RISC-V.
 
+nsbi
+----
+
+This is similar to the `knsh`, but using NuttX's native (minimalistic)
+SBI. It uses `hostfs` and QEMU in semi-hosting mode to load the
+user-space applications. This is intended for 32-bit RISC-V.
+
+To build it, use the following command::
+
+    $ make V=1 -j$(nproc)
+    $ make export V=1 -j$(nproc)
+    $ pushd ../apps
+    $ ./tools/mkimport.sh -z -x ../nuttx/nuttx-export-*.tar.gz
+    $ make import V=1 -j$(nproc)
+    $ popd
+
+Run it with QEMU using the default command for 32-bit RISC-V without
+the ``-bios none`` option. Please note that it still runs in S-mode,
+but bypasses QEMU's OpenSBI.
+
+In `nsh`, applications can be run directly::
+
+    nsh> hello
+
+nsbi64
+------
+
+Identical to the `nsbi`_ configuration, but for 64-bit RISC-V.
+
+Run it with QEMU using the default command for 64-bit RISC-V without
+the ``-bios none`` option. Please note that it still runs in S-mode,
+but bypasses QEMU's OpenSBI.
+
 smp
 ---
 
diff --git a/content/docs/latest/components/libs/libc/index.html 
b/content/docs/latest/components/libs/libc/index.html
index de34e2aa0..7b6947165 100644
--- a/content/docs/latest/components/libs/libc/index.html
+++ b/content/docs/latest/components/libs/libc/index.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="libs/libc/zoneinfo" href="zoneinfo.html" />
+    <link rel="next" title="lib_bsprintf" href="stream.html" />
     <link rel="prev" title="NuttX libraries" href="../index.html" /> 
 </head>
 
@@ -145,6 +145,8 @@
 </ul>
 </li>
 <li class="toctree-l4"><a class="reference internal" 
href="#implementation-details">Implementation Details</a><ul>
+<li class="toctree-l5"><a class="reference internal" 
href="stream.html">lib_bsprintf</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="stream.html#lib-bscanf">lib_bscanf</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="zoneinfo.html">libs/libc/zoneinfo</a></li>
 </ul>
 </li>
@@ -345,6 +347,8 @@ not wish to include into the base FLASH image.</p>
 <div class="toctree-wrapper compound">
 <p class="caption" role="heading"><span 
class="caption-text">Contents:</span></p>
 <ul>
+<li class="toctree-l1"><a class="reference internal" 
href="stream.html">lib_bsprintf</a></li>
+<li class="toctree-l1"><a class="reference internal" 
href="stream.html#lib-bscanf">lib_bscanf</a></li>
 <li class="toctree-l1"><a class="reference internal" 
href="zoneinfo.html">libs/libc/zoneinfo</a></li>
 </ul>
 </div>
@@ -356,7 +360,7 @@ not wish to include into the base FLASH image.</p>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" 
aria-label="Footer">
         <a href="../index.html" class="btn btn-neutral float-left" 
title="NuttX libraries" accesskey="p" rel="prev"><span class="fa 
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="zoneinfo.html" class="btn btn-neutral float-right" 
title="libs/libc/zoneinfo" accesskey="n" rel="next">Next <span class="fa 
fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="stream.html" class="btn btn-neutral float-right" 
title="lib_bsprintf" 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/components/libs/libc/index.html 
b/content/docs/latest/components/libs/libc/stream.html
similarity index 54%
copy from content/docs/latest/components/libs/libc/index.html
copy to content/docs/latest/components/libs/libc/stream.html
index de34e2aa0..8138d7ce9 100644
--- a/content/docs/latest/components/libs/libc/index.html
+++ b/content/docs/latest/components/libs/libc/stream.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>libc &mdash; NuttX latest documentation</title>
+  <title>lib_bsprintf &mdash; 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" />
@@ -47,7 +47,7 @@
     <link rel="index" title="Index" href="../../../genindex.html" />
     <link rel="search" title="Search" href="../../../search.html" />
     <link rel="next" title="libs/libc/zoneinfo" href="zoneinfo.html" />
-    <link rel="prev" title="NuttX libraries" href="../index.html" /> 
+    <link rel="prev" title="libc" href="index.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -136,15 +136,13 @@
 <li class="toctree-l2"><a class="reference internal" 
href="../../audio/index.html">Audio Subsystem</a></li>
 <li class="toctree-l2"><a class="reference internal" 
href="../../filesystem/index.html">NuttX File System</a></li>
 <li class="toctree-l2 current"><a class="reference internal" 
href="../index.html">NuttX libraries</a><ul class="current">
-<li class="toctree-l3 current"><a class="current reference internal" 
href="#">libc</a><ul>
-<li class="toctree-l4"><a class="reference internal" 
href="#sub-directories">Sub-Directories</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#library-database">Library Database</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#symtab">symtab</a><ul>
-<li class="toctree-l5"><a class="reference internal" 
href="#symbol-tables-and-build-modes">Symbol Tables and Build Modes</a></li>
-<li class="toctree-l5"><a class="reference internal" 
href="#code-text-size-implications">Code/Text Size Implications</a></li>
-</ul>
-</li>
-<li class="toctree-l4"><a class="reference internal" 
href="#implementation-details">Implementation Details</a><ul>
+<li class="toctree-l3 current"><a class="reference internal" 
href="index.html">libc</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal" 
href="index.html#sub-directories">Sub-Directories</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="index.html#library-database">Library Database</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="index.html#symtab">symtab</a></li>
+<li class="toctree-l4 current"><a class="reference internal" 
href="index.html#implementation-details">Implementation Details</a><ul 
class="current">
+<li class="toctree-l5 current"><a class="current reference internal" 
href="#">lib_bsprintf</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="#lib-bscanf">lib_bscanf</a></li>
 <li class="toctree-l5"><a class="reference internal" 
href="zoneinfo.html">libs/libc/zoneinfo</a></li>
 </ul>
 </li>
@@ -197,9 +195,10 @@
       <li><a href="../../../index.html" class="icon icon-home" 
aria-label="Home"></a></li>
           <li class="breadcrumb-item"><a href="../../index.html">OS 
Components</a></li>
           <li class="breadcrumb-item"><a href="../index.html">NuttX 
libraries</a></li>
-      <li class="breadcrumb-item active">libc</li>
+          <li class="breadcrumb-item"><a href="index.html">libc</a></li>
+      <li class="breadcrumb-item active">lib_bsprintf</li>
       <li class="wy-breadcrumbs-aside">
-              <a 
href="https://github.com/apache/nuttx/blob/master/Documentation/components/libs/libc/index.rst";
 class="fa fa-github"> Edit on GitHub</a>
+              <a 
href="https://github.com/apache/nuttx/blob/master/Documentation/components/libs/libc/stream.rst";
 class="fa fa-github"> Edit on GitHub</a>
       </li>
   </ul>
   <hr/>
@@ -207,155 +206,199 @@
           <div role="main" class="document" itemscope="itemscope" 
itemtype="http://schema.org/Article";>
            <div itemprop="articleBody">
              
-  <section id="libc">
-<h1>libc<a class="headerlink" href="#libc" title="Permalink to this 
heading"></a></h1>
-<p>This directory contains numerous, small functions typically associated with
-what you would expect to find in a standard C library.  The sub-directories
-in this directory contain standard interface that can be executed by user-
-mode programs.</p>
-<p>Normally, NuttX is built with no protection and all threads running in 
kernel-
-mode.  In that mode, there is no real architectural distinction between
-what is a kernel-mode program and what is a user-mode program; the system is
-more like an multi-threaded program that all runs in kernel-mode.</p>
-<p>But if the <code class="docutils literal notranslate"><span 
class="pre">CONFIG_BUILD_PROTECTED</span></code> option is selected, NuttX will 
be built
-into distinct user-mode and kernel-mode sections.  In that case, most of the
-code in the <code class="docutils literal notranslate"><span 
class="pre">nuttx/</span></code> directory will run in kernel-mode with 
exceptions
-of (1) the user-mode “proxies” found in syscall/proxies, and (2) the
-standard C library functions found in this directory.  In this build mode,
-it is critical to separate the user-mode OS interfaces in this way.</p>
-<p>If <code class="docutils literal notranslate"><span 
class="pre">CONFIG_BUILD_KERNEL</span></code> is selected, then only a NuttX 
kernel will be built
-with no applications.</p>
-<section id="sub-directories">
-<h2>Sub-Directories<a class="headerlink" href="#sub-directories" 
title="Permalink to this heading"></a></h2>
-<p>The files in the <code class="docutils literal notranslate"><span 
class="pre">libs/libc/</span></code> directory are organized (mostly) according
-which file in the <code class="docutils literal notranslate"><span 
class="pre">include/</span></code> directory provides the prototype for library
-functions.  So we have:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>audio     - This part of the audio system: 
nuttx/audio/audio.h
-builtin   - Support for builtin applications.  Used by nuttx/binfmt and NSH.
-dlfcn     - dlfcn.h
-endian    - endian.h
-errno     - errno.h
-hex2bin   - hex2bin.h
-libgen    - libgen.h
-locale    - locale.h
-lzf       - lzf.h
-fixedmath - fixedmath.h
-grp       - grp.h
-inttypes  - inttypes.h
-machine   - Various architecture-specific implementations.
-math      - math.h
-elf    - Part of module and shared library logic: nuttx/lib/elf.h
-net       - Various network-related header files: netinet/ether.h, arpa/inet.h
-pthread   - pthread.h
-pwd       - pwd.h
-queue     - queue.h
-sched     - sched.h
-semaphore - semaphore.h
-stdio     - stdio.h
-stdlib    - stdlib.h
-string    - string.h (and legacy strings.h and non-standard nuttx/b2c.h)
-time      - time.h
-uio       - sys/uio.h
-unistd    - unistd.h
-wchar     - wchar.h
-wctype    - wctype.h
-</pre></div>
-</div>
-<p>Most of these are “standard” header files; some are not: <code 
class="docutils literal notranslate"><span class="pre">hex2bin.h</span></code> 
and
-<code class="docutils literal notranslate"><span 
class="pre">fixemath.h</span></code> are non-standard.</p>
-<p>There is also a <code class="docutils literal notranslate"><span 
class="pre">misc/</span></code> subdirectory that contains various internal 
functions
-and interfaces from header files that are too few to warrant their own sub-
-directory:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>misc      - Nonstandard &quot;glue&quot; 
logic, debug.h, crc32.h, dirent.h
+  <section id="lib-bsprintf">
+<h1>lib_bsprintf<a class="headerlink" href="#lib-bsprintf" title="Permalink to 
this heading"></a></h1>
+<p>This function is mainly used to output the contents of the input
+structure. Supports standard formats for printf and scanf. For detailed
+parameters, see: 1. <a class="reference external" 
href="https://en.cppreference.com/w/c/io/fprintf";>https://en.cppreference.com/w/c/io/fprintf</a>
 2.
+<a class="reference external" 
href="https://en.cppreference.com/w/c/io/fscanf";>https://en.cppreference.com/w/c/io/fscanf</a></p>
+<ul>
+<li><p><strong>special</strong>:</p>
+<ol class="arabic simple">
+<li><p>Float use %hf, “%f” or “%lf” is double, “%Lf” is long double.</p></li>
+<li><p>The char array is specified with %.xs. for example: “char t[30]”
+is specified with “%.30s”, char a [20] - “ %.20s “</p></li>
+<li><p>“%u” is unsigned int.</p></li>
+<li><p>“%d” is int.</p></li>
+<li><p>When using %f to format a double data type, the double is
+truncated to 6 decimal places by default.</p></li>
+<li><p>It is recommended that the “char[]” array be placed at the end of
+the structure to prevent parameter configuration errors such as
+“%.20s” from causing problems in parsing the entire buffer.</p></li>
+</ol>
+</li>
+<li><p><strong>demo</strong></p>
+<ol class="arabic simple">
+<li><p><strong>struct</strong>:</p></li>
+</ol>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>begin_packed_struct
+struct test
+{
+  uint8_t a;
+  uint16_t b;
+  uint32_t c;
+  int8_t d;
+  int16_t e;
+  int32_t f;
+  float g;
+  double h;
+  char i[32];
+  uint64_t j;
+  int64_t k;
+  char l;
+  unsigned char m;
+  short int n;
+  unsigned short int o;
+  int p;
+  unsigned int q;
+  long r;
+  unsigned long s;
+  long long t;
+  unsigned long long u;
+  size_t v;
+  long double w;
+}end_packed_struct;
 </pre></div>
 </div>
-</section>
-<section id="library-database">
-<h2>Library Database<a class="headerlink" href="#library-database" 
title="Permalink to this heading"></a></h2>
-<p>Information about functions available in the NuttX C library information is
-maintained in a database.  That “database” is implemented as a simple comma-
-separated-value file, libc.csv.  Most spreadsheets programs will accept this
-format and can be used to maintain the library database.</p>
-<p>This library database will (eventually) be used to generate symbol library
-symbol table information that can be exported to external applications.</p>
-<p>The format of the CSV file for each line is:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>Field 1: Function name
-Field 2: The header file that contains the function prototype
-Field 3: Condition for compilation
-Field 4: The type of function return value.
-Field 5 - N+5: The type of each of the N formal parameters of the function
+<ol class="arabic simple">
+<li><p><strong>format string</strong>:</p></li>
+</ol>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>const char* sg = &quot;           
uint8_t:[%hhu]\n&quot; \
+                 &quot;          uint16_t:[%hu]\n&quot; \
+                 &quot;          uint32_t:[%u]\n&quot; \
+                 &quot;            int8_t:[%hhd]\n&quot; \
+                 &quot;           int16_t:[%hd]\n&quot; \
+                 &quot;           int32_t:[%d]\n&quot; \
+                 &quot;             float:[%hf]\n&quot; \
+                 &quot;            double:[%f]\n&quot; \
+                 &quot;            char[]:[%.32s]\n&quot; \
+                 &quot;          uint64_t:[%lu]\n&quot; \
+                 &quot;           int64_t:[%ld]\n&quot; \
+                 &quot;              char:[%hhd]\n&quot; \
+                 &quot;     unsigned char:[%hhu]\n&quot; \
+                 &quot;         short int:[%hd]\n&quot; \
+                 &quot;unsigned short int:[%hu]\n&quot; \
+                 &quot;               int:[%d]\n&quot; \
+                 &quot;      unsigned int:[%u]\n&quot; \
+                 &quot;              long:[%ld]\n&quot; \
+                 &quot;     unsigned long:[%lu]\n&quot; \
+                 &quot;         long long:[%lld]\n&quot; \
+                 &quot;unsigned long long:[%llu]\n&quot; \
+                 &quot;            size_t:[%uz]\n&quot; \
+                 &quot;       long double:[%Lf]\n&quot;;
 </pre></div>
 </div>
-<p>Each type field has a format as follows:</p>
-<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>type name:
-      For all simpler types
-formal type | actual type:
-      For array types where the form of the formal (eg. int param[2])
-      differs from the type of actual passed parameter (eg. int*).  This
-      is necessary because you cannot do simple casts to array types.
-formal type | union member actual type | union member fieldname:
-      A similar situation exists for unions.  For example, the formal
-      parameter type union sigval -- You cannot cast a uintptr_t to
-      a union sigval, but you can cast to the type of one of the union
-      member types when passing the actual parameter.  Similarly, we
-      cannot cast a union sigval to a uinptr_t either.  Rather, we need
-      to cast a specific union member fieldname to uintptr_t.
+<ol class="arabic simple">
+<li><p><strong>use</strong>:</p></li>
+</ol>
+<ul class="simple">
+<li><p>output to terminal:</p></li>
+</ul>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>#ifdef CONFIG_FILE_STREAM
+ struct lib_stdoutstream_s stdoutstream;
+
+ lib_stdoutstream(&amp;stdoutstream, stdout);
+
+ flockfile(stdout);
+ lib_bsprintf(&amp;stdoutstream.common, sv, &amp;test_v);
+ lib_bsprintf(&amp;stdoutstream.common, sg, &amp;test_g);
+ funlockfile(stdout);
+#else
+ struct lib_rawoutstream_s rawoutstream;
+ struct lib_bufferedoutstream_s outstream;
+
+ lib_rawoutstream(&amp;rawoutstream, STDOUT_FILENO);
+ lib_bufferedoutstream(&amp;outstream, &amp;rawoutstream.common);
+
+ lib_bsprintf(&amp;outstream.common, sv, &amp;test_v);
+ lib_bsprintf(&amp;outstream.common, sg, &amp;test_g);
+
+ lib_stream_flush(&amp;outstream.common);
+#endif
 </pre></div>
 </div>
-<p>NOTE: The tool mksymtab can be used to generate a symbol table from this CSV
-file.  See <code class="docutils literal notranslate"><span 
class="pre">Documentation/components/tools</span></code> for further details 
about the use of mksymtab.</p>
+</li>
+</ul>
 </section>
-<section id="symtab">
-<h2>symtab<a class="headerlink" href="#symtab" title="Permalink to this 
heading"></a></h2>
-<section id="symbol-tables-and-build-modes">
-<h3>Symbol Tables and Build Modes<a class="headerlink" 
href="#symbol-tables-and-build-modes" title="Permalink to this 
heading"></a></h3>
-<p>This directory provide support for a symbol table which provides all/most of
-system and C library services/functions to the application and NSH.</p>
-<p>Symbol tables have differing usefulness in different NuttX build modes:</p>
+<section id="lib-bscanf">
+<h1>lib_bscanf<a class="headerlink" href="#lib-bscanf" title="Permalink to 
this heading"></a></h1>
+<p>This function adds a formatted standard scanf string to the
+structure(lib_bscanf). 1. <a class="reference external" 
href="https://zh.cppreference.com/w/c/io/fscanf";>https://zh.cppreference.com/w/c/io/fscanf</a></p>
+<ul>
+<li><p><strong>special</strong>:</p>
 <ol class="arabic simple">
-<li><p>In the FLAT build (<code class="docutils literal notranslate"><span 
class="pre">CONFIG_BUILD_FLAT</span></code>), symbol tables are used to bind
-addresses in loaded ELF or NxFLAT modules to base code that usually
-resides in FLASH memory.  Both OS interfaces and user/application
-libraries are made available to the loaded module via symbol tables.</p></li>
-<li><p>Symbol tables may be of value in a protected build
-(<code class="docutils literal notranslate"><span 
class="pre">CONFIG_BUILD_PROTECTED</span></code>) where the newly started user 
task must
-share resources with other user code (but should use system calls to
-interact with the OS).</p></li>
-<li><p>But in the kernel build mode (<code class="docutils literal 
notranslate"><span class="pre">CONFIG_MODULES</span></code>), only fully linked
-executables loadable via <code class="docutils literal notranslate"><span 
class="pre">execl()</span></code>, <code class="docutils literal 
notranslate"><span class="pre">execv()</span></code>, or <code class="docutils 
literal notranslate"><span class="pre">posix_spawan()</span></code>
-can be used.
-There is no use for a symbol table with the kernel build since all
-memory resources are separate; nothing is share-able with the newly
-started process.</p></li>
+<li><p>Please use %lf for double precision, “%hf” or “%f” for float, long
+double (“%Lf”) is not supported.</p></li>
+<li><p>Please use %hhd or %hhu for a single char or unsigned char.</p></li>
+<li><p>Use %hd or %hu for short int or unsigned short int.</p></li>
+<li><p>When using %s or %c, please specify the length of the char array,
+such as %32s, %32c.</p></li>
+<li><p>%s will check the string for spaces. When there are spaces in the
+string, it will be truncated. If you want to use string with
+spaces, please use %{length}c, but make sure that the length of
+the string can fill the array, otherwise an error will occur.</p></li>
+<li><p>%[] collection and %n are not supported.</p></li>
 </ol>
-</section>
-<section id="code-text-size-implications">
-<h3>Code/Text Size Implications<a class="headerlink" 
href="#code-text-size-implications" title="Permalink to this heading"></a></h3>
-<p>The option can have substantial effect on system image size, mainly
-code/text.  That is because the instructions to generate symtab.inc
-above will cause EVERY interface in the NuttX RTOS and the C library to be
-included into build.  Add to that the size of a huge symbol table.</p>
-<p>In order to reduce the code/text size, you may want to manually prune the
-auto-generated symtab.inc file to remove all interfaces that you do
-not wish to include into the base FLASH image.</p>
-</section>
-</section>
-<section id="implementation-details">
-<h2>Implementation Details<a class="headerlink" href="#implementation-details" 
title="Permalink to this heading"></a></h2>
-<div class="toctree-wrapper compound">
-<p class="caption" role="heading"><span 
class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1"><a class="reference internal" 
href="zoneinfo.html">libs/libc/zoneinfo</a></li>
-</ul>
+</li>
+<li><p><strong>demo</strong></p>
+<ol class="arabic simple">
+<li><p><strong>struct</strong>: Same as above</p></li>
+<li><p><strong>format string</strong>:</p></li>
+</ol>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>#define TOSTR(str)   #str
+#define TONNAME(name) TOSTR(name)
+
+#define v_uint8_t    97
+#define v_uint16_t   19299
+#define v_uint32_t   22155
+
+......
+
+#define v_l_double   -9299.9299929912122464755474
+
+char bflag[] = 
&quot;%hhu%hu%u%hhd%hd%d%f%lf%32s%llu%lld%hhd%hhu%hd%hu%d%u%ld%lu%lld%llu%zu%ld&quot;;
+
+char binput[] = TONNAME(v_uint8_t) \
+               &quot; &quot; TONNAME(v_uint16_t) \
+               &quot; &quot; TONNAME(v_uint32_t) \
+               &quot; &quot; TONNAME(v_int8_t) \
+               &quot; &quot; TONNAME(v_int16_t) \
+               &quot; &quot; TONNAME(v_int32_t) \
+               &quot; &quot; TONNAME(v_float) \
+               &quot; &quot; TONNAME(v_double) \
+               &quot; &quot; TONNAME(v_char_arr) \
+               &quot; &quot; TONNAME(v_uint64_t) \
+               &quot; &quot; TONNAME(v_int64_t) \
+               &quot; &quot; TONNAME(v_char) \
+               &quot; &quot; TONNAME(v_u_char) \
+               &quot; &quot; TONNAME(v_s_int) \
+               &quot; &quot; TONNAME(v_u_s_int) \
+               &quot; &quot; TONNAME(v_int) \
+               &quot; &quot; TONNAME(v_u_int) \
+               &quot; &quot; TONNAME(v_long) \
+               &quot; &quot; TONNAME(v_u_long) \
+               &quot; &quot; TONNAME(v_l_l) \
+               &quot; &quot; TONNAME(v_u_l_l) \
+               &quot; &quot; TONNAME(v_size_t) \
+               &quot; &quot; TONNAME(v_l_double);
+</pre></div>
 </div>
-</section>
+<ol class="arabic simple" start="3">
+<li><p><strong>use</strong>:</p></li>
+</ol>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>struct test vg;
+ret = lib_bscanf(binput, bflag, &amp;vg);
+</pre></div>
+</div>
+</li>
+</ul>
 </section>
 
 
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" 
aria-label="Footer">
-        <a href="../index.html" class="btn btn-neutral float-left" 
title="NuttX libraries" accesskey="p" rel="prev"><span class="fa 
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="index.html" class="btn btn-neutral float-left" title="libc" 
accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" 
aria-hidden="true"></span> Previous</a>
         <a href="zoneinfo.html" class="btn btn-neutral float-right" 
title="libs/libc/zoneinfo" accesskey="n" rel="next">Next <span class="fa 
fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/content/docs/latest/components/libs/libc/zoneinfo.html 
b/content/docs/latest/components/libs/libc/zoneinfo.html
index adc57ed62..c70d0c384 100644
--- a/content/docs/latest/components/libs/libc/zoneinfo.html
+++ b/content/docs/latest/components/libs/libc/zoneinfo.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="libdsp" href="../libdsp.html" />
-    <link rel="prev" title="libc" href="index.html" /> 
+    <link rel="prev" title="lib_bsprintf" href="stream.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -141,6 +141,8 @@
 <li class="toctree-l4"><a class="reference internal" 
href="index.html#library-database">Library Database</a></li>
 <li class="toctree-l4"><a class="reference internal" 
href="index.html#symtab">symtab</a></li>
 <li class="toctree-l4 current"><a class="reference internal" 
href="index.html#implementation-details">Implementation Details</a><ul 
class="current">
+<li class="toctree-l5"><a class="reference internal" 
href="stream.html">lib_bsprintf</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="stream.html#lib-bscanf">lib_bscanf</a></li>
 <li class="toctree-l5 current"><a class="current reference internal" 
href="#">libs/libc/zoneinfo</a></li>
 </ul>
 </li>
@@ -383,7 +385,7 @@ but printing GMT time?</p>
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" 
aria-label="Footer">
-        <a href="index.html" class="btn btn-neutral float-left" title="libc" 
accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" 
aria-hidden="true"></span> Previous</a>
+        <a href="stream.html" class="btn btn-neutral float-left" 
title="lib_bsprintf" accesskey="p" rel="prev"><span class="fa 
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="../libdsp.html" class="btn btn-neutral float-right" 
title="libdsp" accesskey="n" rel="next">Next <span class="fa 
fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
diff --git a/content/docs/latest/guides/fully_linked_elf.html 
b/content/docs/latest/guides/fully_linked_elf.html
index 09a40d817..6506a4495 100644
--- a/content/docs/latest/guides/fully_linked_elf.html
+++ b/content/docs/latest/guides/fully_linked_elf.html
@@ -472,7 +472,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="a571955c-0f52-484c-a4f9-8c7d305a5557" 
name="a571955c-0f52-484c-a4f9-8c7d305a5557" type="checkbox"><label 
class="sphinx_collapse__label" for="a571955c-0f52-484c-a4f9-8c7d305a5557"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" 
id="d2b705bc-057a-4ba6-a3af-b3f6f6a4c174" 
name="d2b705bc-057a-4ba6-a3af-b3f6f6a4c174" type="checkbox"><label 
class="sphinx_collapse__label" for="d2b705bc-057a-4ba6-a3af-b3f6f6a4c174"><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 0a0ac4106..02792281e 100644
--- a/content/docs/latest/guides/partially_linked_elf.html
+++ b/content/docs/latest/guides/partially_linked_elf.html
@@ -498,7 +498,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="0f6d5072-5ecc-4cb1-bd71-bd1ad4917c89" 
name="0f6d5072-5ecc-4cb1-bd71-bd1ad4917c89" type="checkbox"><label 
class="sphinx_collapse__label" for="0f6d5072-5ecc-4cb1-bd71-bd1ad4917c89"><i 
class="sphinx_collapse__icon"></i>Show content:</label><div 
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" 
id="1b466f8b-228c-4531-a100-dcfe23449e09" 
name="1b466f8b-228c-4531-a100-dcfe23449e09" type="checkbox"><label 
class="sphinx_collapse__label" for="1b466f8b-228c-4531-a100-dcfe23449e09"><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/index.html b/content/docs/latest/index.html
index e22ad1966..4196ffd3c 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -183,7 +183,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: 22 June 25 at 00:31</p>
+<p>Last Updated: 23 June 25 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/latest/objects.inv b/content/docs/latest/objects.inv
index ac65a186e..2c0d4f72e 100644
Binary files a/content/docs/latest/objects.inv and 
b/content/docs/latest/objects.inv differ
diff --git 
a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html 
b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
index b5990ef9f..ddfea7395 100644
--- a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
+++ b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
@@ -562,6 +562,35 @@ please refer to the <a class="reference internal" 
href="../../../../../applicati
 <h3>nsh64<a class="headerlink" href="#nsh64" title="Permalink to this 
heading"></a></h3>
 <p>Identical to the <a class="reference internal" href="#nsh">nsh</a> 
configuration, but for 64-bit RISC-V.</p>
 </section>
+<section id="nsbi">
+<h3>nsbi<a class="headerlink" href="#nsbi" title="Permalink to this 
heading"></a></h3>
+<p>This is similar to the <cite>knsh</cite>, but using NuttX’s native 
(minimalistic)
+SBI. It uses <cite>hostfs</cite> and QEMU in semi-hosting mode to load the
+user-space applications. This is intended for 32-bit RISC-V.</p>
+<p>To build it, use the following command:</p>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>$ make V=1 -j$(nproc)
+$ make export V=1 -j$(nproc)
+$ pushd ../apps
+$ ./tools/mkimport.sh -z -x ../nuttx/nuttx-export-*.tar.gz
+$ make import V=1 -j$(nproc)
+$ popd
+</pre></div>
+</div>
+<p>Run it with QEMU using the default command for 32-bit RISC-V without
+the <code class="docutils literal notranslate"><span class="pre">-bios</span> 
<span class="pre">none</span></code> option. Please note that it still runs in 
S-mode,
+but bypasses QEMU’s OpenSBI.</p>
+<p>In <cite>nsh</cite>, applications can be run directly:</p>
+<div class="highlight-none notranslate"><div 
class="highlight"><pre><span></span>nsh&gt; hello
+</pre></div>
+</div>
+</section>
+<section id="nsbi64">
+<h3>nsbi64<a class="headerlink" href="#nsbi64" title="Permalink to this 
heading"></a></h3>
+<p>Identical to the <a class="reference internal" href="#nsbi">nsbi</a> 
configuration, but for 64-bit RISC-V.</p>
+<p>Run it with QEMU using the default command for 64-bit RISC-V without
+the <code class="docutils literal notranslate"><span class="pre">-bios</span> 
<span class="pre">none</span></code> option. Please note that it still runs in 
S-mode,
+but bypasses QEMU’s OpenSBI.</p>
+</section>
 <section id="smp">
 <h3>smp<a class="headerlink" href="#smp" title="Permalink to this 
heading"></a></h3>
 <p>Similar to the <a class="reference internal" href="#nsh">nsh</a> 
configuration, but with SMP support.
diff --git a/content/docs/latest/searchindex.js 
b/content/docs/latest/searchindex.js
index aa46be376..5b717b128 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/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/feed.xml b/content/feed.xml
index 2c1cd2105..b8389067d 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>Sun, 22 Jun 2025 00:33:22 +0000</pubDate>
-    <lastBuildDate>Sun, 22 Jun 2025 00:33:22 +0000</lastBuildDate>
+    <pubDate>Mon, 23 Jun 2025 00:33:24 +0000</pubDate>
+    <lastBuildDate>Mon, 23 Jun 2025 00:33:24 +0000</lastBuildDate>
     <generator>Jekyll v4.3.2</generator>
     
       <item>

Reply via email to