From 9522166db1d2a8c551652d7f17ab3ff692cc4d19 Mon Sep 17 00:00:00 2001 From: Takashi Yano Date: Thu, 19 Jan 2023 22:02:47 +0900 Subject: [PATCH] Cygwin: dsp: Fix a problem that fcntl() does not take effect. Previously, fhandler_dev_dsp (OSS) has a problem that fcntl() does not take effect at all. This patch fixes the issue. Signed-off-by: Takashi Yano Reviewed-by: Corinna Vinschen --- winsup/cygwin/fhandler/dsp.cc | 12 ++++++++++++ winsup/cygwin/local_includes/fhandler.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/winsup/cygwin/fhandler/dsp.cc b/winsup/cygwin/fhandler/dsp.cc index c37bedea5..8798cf876 100644 --- a/winsup/cygwin/fhandler/dsp.cc +++ b/winsup/cygwin/fhandler/dsp.cc @@ -1038,6 +1038,12 @@ fhandler_dev_dsp::ioctl (unsigned int cmd, void *buf) return base ()->_ioctl (cmd, buf); } +int +fhandler_dev_dsp::fcntl (int cmd, intptr_t arg) +{ + return base ()->_fcntl (cmd, arg); +} + void fhandler_dev_dsp::fixup_after_fork (HANDLE parent) { @@ -1417,6 +1423,12 @@ fhandler_dev_dsp::_ioctl (unsigned int cmd, void *buf) } } +int +fhandler_dev_dsp::_fcntl (int cmd, intptr_t arg) +{ + return fhandler_base::fcntl(cmd, arg); +} + void fhandler_dev_dsp::_fixup_after_fork (HANDLE parent) { // called from new child process diff --git a/winsup/cygwin/local_includes/fhandler.h b/winsup/cygwin/local_includes/fhandler.h index 8406dff64..113e40293 100644 --- a/winsup/cygwin/local_includes/fhandler.h +++ b/winsup/cygwin/local_includes/fhandler.h @@ -2770,6 +2770,7 @@ class fhandler_dev_dsp: public fhandler_base ssize_t write (const void *, size_t); void read (void *, size_t&); int ioctl (unsigned int, void *); + int fcntl (int cmd, intptr_t); int close (); void fixup_after_fork (HANDLE); void fixup_after_exec (); @@ -2778,6 +2779,7 @@ class fhandler_dev_dsp: public fhandler_base ssize_t _write (const void *, size_t); void _read (void *, size_t&); int _ioctl (unsigned int, void *); + int _fcntl (int cmd, intptr_t); void _fixup_after_fork (HANDLE); void _fixup_after_exec ();