This is an automated email from the ASF dual-hosted git repository.
jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 6bd674b4e44 fs/hostfs: Return ENOTTY for unsupported ioctl
6bd674b4e44 is described below
commit 6bd674b4e4464ff212f796f8b543cb209ef86656
Author: Lingao Meng <[email protected]>
AuthorDate: Wed Jul 22 12:16:51 2026 +0800
fs/hostfs: Return ENOTTY for unsupported ioctl
host_ioctl() reports unsupported ioctl requests from hostfs backends. Use
-ENOTTY for that case instead of -ENOSYS so callers can distinguish an
unsupported ioctl request from a missing host operation.
Keep the other host operation stubs returning -ENOSYS; this change is
limited
to ioctl semantics. Update the ARM, ARM64, RISC-V, Xtensa and Windows sim
hostfs stubs to match that behavior.
Testing:
Host: Ubuntu 22.04 x86_64
- git diff --check
- make distclean
- ./tools/configure.sh -l -a ../nuttx-apps sim:nsh
- make -j16
- printf 'help\npoweroff\n' | timeout 20s ./nuttx
- make distclean
- ./tools/configure.sh -a ../nuttx-apps sabre-6quad:knsh
- make -j16
Assisted-by: Claude:Claude-Fable-5
Signed-off-by: Lingao Meng <[email protected]>
---
arch/arm/src/common/arm_hostfs.c | 4 +++-
arch/arm64/src/common/arm64_hostfs.c | 4 +++-
arch/risc-v/src/common/riscv_hostfs.c | 4 +++-
arch/sim/src/sim/win/sim_hostfs.c | 4 +++-
arch/xtensa/src/common/xtensa_hostfs.c | 4 +++-
5 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/arch/arm/src/common/arm_hostfs.c b/arch/arm/src/common/arm_hostfs.c
index fbfd9a52485..8c47a46138c 100644
--- a/arch/arm/src/common/arm_hostfs.c
+++ b/arch/arm/src/common/arm_hostfs.c
@@ -232,7 +232,9 @@ off_t host_lseek(int fd, off_t pos, off_t offset, int
whence)
int host_ioctl(int fd, int request, unsigned long arg)
{
- return -ENOSYS;
+ /* Unsupported ioctl requests use ENOTTY so VFS can apply fallbacks. */
+
+ return -ENOTTY;
}
void host_sync(int fd)
diff --git a/arch/arm64/src/common/arm64_hostfs.c
b/arch/arm64/src/common/arm64_hostfs.c
index ddd064ed07d..ff4419292c5 100644
--- a/arch/arm64/src/common/arm64_hostfs.c
+++ b/arch/arm64/src/common/arm64_hostfs.c
@@ -232,7 +232,9 @@ off_t host_lseek(int fd, off_t pos, off_t offset, int
whence)
int host_ioctl(int fd, int request, unsigned long arg)
{
- return -ENOSYS;
+ /* Unsupported ioctl requests use ENOTTY so VFS can apply fallbacks. */
+
+ return -ENOTTY;
}
void host_sync(int fd)
diff --git a/arch/risc-v/src/common/riscv_hostfs.c
b/arch/risc-v/src/common/riscv_hostfs.c
index c077044054e..8a87c74afdf 100644
--- a/arch/risc-v/src/common/riscv_hostfs.c
+++ b/arch/risc-v/src/common/riscv_hostfs.c
@@ -232,7 +232,9 @@ off_t host_lseek(int fd, off_t pos, off_t offset, int
whence)
int host_ioctl(int fd, int request, unsigned long arg)
{
- return -ENOSYS;
+ /* Unsupported ioctl requests use ENOTTY so VFS can apply fallbacks. */
+
+ return -ENOTTY;
}
void host_sync(int fd)
diff --git a/arch/sim/src/sim/win/sim_hostfs.c
b/arch/sim/src/sim/win/sim_hostfs.c
index 5cd0ad1ddf5..65f3208f085 100644
--- a/arch/sim/src/sim/win/sim_hostfs.c
+++ b/arch/sim/src/sim/win/sim_hostfs.c
@@ -224,7 +224,9 @@ nuttx_off_t host_lseek(int fd, nuttx_off_t pos, nuttx_off_t
offset,
int host_ioctl(int fd, int request, unsigned long arg)
{
- return -ENOSYS;
+ /* Unsupported ioctl requests use ENOTTY so VFS can apply fallbacks. */
+
+ return -ENOTTY;
}
/****************************************************************************
diff --git a/arch/xtensa/src/common/xtensa_hostfs.c
b/arch/xtensa/src/common/xtensa_hostfs.c
index 74b711cf2eb..d803bce9083 100644
--- a/arch/xtensa/src/common/xtensa_hostfs.c
+++ b/arch/xtensa/src/common/xtensa_hostfs.c
@@ -140,7 +140,9 @@ off_t host_lseek(int fd, off_t pos, off_t offset, int
whence)
int host_ioctl(int fd, int request, unsigned long arg)
{
- return -ENOSYS;
+ /* Unsupported ioctl requests use ENOTTY so VFS can apply fallbacks. */
+
+ return -ENOTTY;
}
void host_sync(int fd)