diff --git a/repos/os/include/vfs/vfs_handle.h b/repos/os/include/vfs/vfs_handle.h index e7820901f4..941cdee645 100644 --- a/repos/os/include/vfs/vfs_handle.h +++ b/repos/os/include/vfs/vfs_handle.h @@ -58,6 +58,8 @@ class Vfs::Vfs_handle int status_flags() const { return _status_flags; } + void status_flags(int flags) { _status_flags = flags; } + /** * Return seek offset in bytes */ diff --git a/repos/ports/src/noux/vfs_io_channel.h b/repos/ports/src/noux/vfs_io_channel.h index 2926a0f2c3..efd5de7c6d 100644 --- a/repos/ports/src/noux/vfs_io_channel.h +++ b/repos/ports/src/noux/vfs_io_channel.h @@ -109,6 +109,10 @@ namespace Noux { sysio->fcntl_out.result = _fh->status_flags(); return true; + case Sysio::FCNTL_CMD_SET_FILE_STATUS_FLAGS: + _fh->status_flags(sysio->fcntl_in.long_arg); + return true; + default: PWRN("invalid fcntl command %d", sysio->fcntl_in.cmd);