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)

Reply via email to