[PATCH] Cygwin: dsp: Fix a problem that fcntl() does not take effect.

Takashi Yano takashi.yano@nifty.ne.jp
Thu Jan 19 13:10:05 GMT 2023


Previously, fhandler_dev_dsp (OSS) has a problem that fcntl() does
not take effect at all. This patch fixes the issue.

Sighed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
---
 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 bc02eae66..5fe979538 100644
--- a/winsup/cygwin/local_includes/fhandler.h
+++ b/winsup/cygwin/local_includes/fhandler.h
@@ -2766,6 +2766,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 ();
@@ -2774,6 +2775,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 ();
 
-- 
2.39.0



More information about the Cygwin-patches mailing list