diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-10-26 17:23:54 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-10-26 17:23:54 +0400 |
commit | c8ae71316f119398eb796542872abebff9b79a96 (patch) | |
tree | e6d97774cfc4f8146dfae98bffcecd8c49e452e5 /winsup/cygwin/fhandler_dsp.cc | |
parent | 2e178c6909d93b1160fe12ee594d0038ef9af847 (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.cc | 21 |
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_) |