From 4aac3933b3792e4e3d99233784285c9e80cc2313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Tue, 21 Aug 2012 15:10:13 +0200 Subject: [PATCH] Noux: add FIONBIO handling support to libc_noux --- ports/include/noux_session/sysio.h | 3 ++- ports/src/lib/libc_noux/plugin.cc | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ports/include/noux_session/sysio.h b/ports/include/noux_session/sysio.h index 5729ebd73f..f3cf19b8b0 100644 --- a/ports/include/noux_session/sysio.h +++ b/ports/include/noux_session/sysio.h @@ -92,9 +92,10 @@ namespace Noux { */ struct Ioctl_in { - enum Opcode { OP_UNDEFINED, OP_TIOCGWINSZ }; + enum Opcode { OP_UNDEFINED, OP_TIOCGWINSZ, OP_FIONBIO }; Opcode request; + int argp; }; /** diff --git a/ports/src/lib/libc_noux/plugin.cc b/ports/src/lib/libc_noux/plugin.cc index 01b9edfb5d..8caad5b2f2 100644 --- a/ports/src/lib/libc_noux/plugin.cc +++ b/ports/src/lib/libc_noux/plugin.cc @@ -861,9 +861,18 @@ namespace { break; + case FIONBIO: + { + if (verbose) + PDBG("FIONBIO - *argp=%d", *argp); + + sysio()->ioctl_in.request = Noux::Sysio::Ioctl_in::OP_FIONBIO; + sysio()->ioctl_in.argp = argp ? *(int*)argp : 0; + } + default: - PWRN("unsupported ioctl (request=0x%x", request); + PWRN("unsupported ioctl (request=0x%x)", request); break; } @@ -892,6 +901,9 @@ namespace { return 0; } + case FIONBIO: + return 0; + default: return -1; }