From 5bf538de0cb2b0021d123ff20bb0845d7d0b3f9d Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Mon, 11 May 2015 21:13:12 +0200 Subject: [PATCH] Noux: implement the 'F_GETFL' 'fcntl()' command for pipes Fixes #1513 --- repos/ports/src/noux/pipe_io_channel.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/repos/ports/src/noux/pipe_io_channel.h b/repos/ports/src/noux/pipe_io_channel.h index 95bbfeb45..2d8a080ff 100644 --- a/repos/ports/src/noux/pipe_io_channel.h +++ b/repos/ports/src/noux/pipe_io_channel.h @@ -252,6 +252,19 @@ namespace Noux { return true; } + bool fcntl(Sysio *sysio) override + { + switch (sysio->fcntl_in.cmd) { + + case Sysio::FCNTL_CMD_GET_FILE_STATUS_FLAGS: + sysio->fcntl_out.result = Sysio::OPEN_MODE_WRONLY; + return true; + + default: + return false; + } + } + bool fstat(Sysio *sysio) override { sysio->fstat_out.st.mode = Sysio::STAT_MODE_CHARDEV; @@ -315,6 +328,19 @@ namespace Noux { return true; } + bool fcntl(Sysio *sysio) override + { + switch (sysio->fcntl_in.cmd) { + + case Sysio::FCNTL_CMD_GET_FILE_STATUS_FLAGS: + sysio->fcntl_out.result = Sysio::OPEN_MODE_RDONLY; + return true; + + default: + return false; + } + } + bool fstat(Sysio *sysio) override { sysio->fstat_out.st.mode = Sysio::STAT_MODE_CHARDEV;