Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2013-10-26 17:23:54 +0400
committerCorinna Vinschen <corinna@vinschen.de>2013-10-26 17:23:54 +0400
commitc8ae71316f119398eb796542872abebff9b79a96 (patch)
treee6d97774cfc4f8146dfae98bffcecd8c49e452e5 /winsup/cygwin/fhandler_dsp.cc
parent2e178c6909d93b1160fe12ee594d0038ef9af847 (diff)
* devices.in (dev_storage): Map /dev/dsp to \Device\Null.
* devices.cc: Regenerate. * fhandler_dsp.cc (fhandler_dev_dsp::open): Call fhandler_base::open. (fhandler_dev_dsp::close): Call fhandler_base::close. (fhandler_dev_dsp::fixup_after_fork): Call fhandler_base::fixup_after_fork. * fhandler_raw.cc (fhandler_dev_raw::fixup_after_fork): Call fhandler_base::fixup_after_fork.
Diffstat (limited to 'winsup/cygwin/fhandler_dsp.cc')
-rw-r--r--winsup/cygwin/fhandler_dsp.cc21
1 files changed, 9 insertions, 12 deletions
diff --git a/winsup/cygwin/fhandler_dsp.cc b/winsup/cygwin/fhandler_dsp.cc
index f6ec303f2..80b014219 100644
--- a/winsup/cygwin/fhandler_dsp.cc
+++ b/winsup/cygwin/fhandler_dsp.cc
@@ -1006,7 +1006,7 @@ fhandler_dev_dsp::fhandler_dev_dsp ():
int
fhandler_dev_dsp::open (int flags, mode_t mode)
{
- int err = 0;
+ int ret = 0, err = 0;
UINT num_in = 0, num_out = 0;
set_flags ((flags & ~O_TEXT) | O_BINARY);
// Work out initial sample format & frequency, /dev/dsp defaults
@@ -1032,18 +1032,14 @@ fhandler_dev_dsp::open (int flags, mode_t mode)
err = EINVAL;
}
- if (!err)
- {
- set_open_status ();
- need_fork_fixup (true);
- nohandle (true);
- }
- else
+ if (err)
set_errno (err);
+ else
+ ret = fhandler_base::open (flags, mode);
- debug_printf ("ACCMODE=%y audio_in=%d audio_out=%d, err=%d",
- flags & O_ACCMODE, num_in, num_out, err);
- return !err;
+ debug_printf ("ACCMODE=%y audio_in=%d audio_out=%d, err=%d, ret=%d",
+ flags & O_ACCMODE, num_in, num_out, err, ret);
+ return ret;
}
#define IS_WRITE() ((get_flags() & O_ACCMODE) != O_RDONLY)
@@ -1159,7 +1155,7 @@ fhandler_dev_dsp::close ()
debug_printf ("audio_in=%p audio_out=%p", audio_in_, audio_out_);
close_audio_in ();
close_audio_out (exit_state != ES_NOT_EXITING);
- return 0;
+ return fhandler_base::close ();
}
int
@@ -1371,6 +1367,7 @@ fhandler_dev_dsp::fixup_after_fork (HANDLE parent)
debug_printf ("audio_in=%p audio_out=%p",
audio_in_, audio_out_);
+ fhandler_base::fixup_after_fork (parent);
if (audio_in_)
audio_in_->fork_fixup (parent);
if (audio_out_)