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

Takashi Yano tyan0@sourceware.org
Thu Jan 19 13:54:21 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9522166db1d2a8c551652d7f17ab3ff692cc4d19

commit 9522166db1d2a8c551652d7f17ab3ff692cc4d19
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date:   Thu Jan 19 22:02:47 2023 +0900

    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 <takashi.yano@nifty.ne.jp>
    Reviewed-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 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 ();


More information about the Cygwin-cvs mailing list