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:
Diffstat (limited to 'winsup/cygwin/fhandler_dsp.cc')
-rw-r--r--winsup/cygwin/fhandler_dsp.cc51
1 files changed, 42 insertions, 9 deletions
diff --git a/winsup/cygwin/fhandler_dsp.cc b/winsup/cygwin/fhandler_dsp.cc
index 80b014219..b5eaba7be 100644
--- a/winsup/cygwin/fhandler_dsp.cc
+++ b/winsup/cygwin/fhandler_dsp.cc
@@ -435,6 +435,7 @@ fhandler_dev_dsp::Audio_out::stop (bool immediately)
debug_printf ("%u = waveOutUnprepareHeader(%p)", rc, pHdr);
}
+ no_thread_exit_protect for_now (true);
rc = waveOutClose (dev_);
debug_printf ("%u = waveOutClose()", rc);
@@ -810,6 +811,7 @@ fhandler_dev_dsp::Audio_in::stop ()
debug_printf ("%u = waveInUnprepareHeader(%p)", rc, pHdr);
}
+ no_thread_exit_protect for_now (true);
rc = waveInClose (dev_);
debug_printf ("%u = waveInClose()", rc);
@@ -1003,6 +1005,37 @@ fhandler_dev_dsp::fhandler_dev_dsp ():
dev ().parse (FH_OSS_DSP);
}
+ssize_t __stdcall
+fhandler_dev_dsp::write (const void *ptr, size_t len)
+{
+ return base ()->_write (ptr, len);
+}
+
+void __reg3
+fhandler_dev_dsp::read (void *ptr, size_t& len)
+{
+ return base ()->_read (ptr, len);
+}
+
+int
+fhandler_dev_dsp::ioctl (unsigned int cmd, void *buf)
+{
+ return base ()->_ioctl (cmd, buf);
+}
+
+void
+fhandler_dev_dsp::fixup_after_fork (HANDLE parent)
+{
+ base ()->_fixup_after_fork (parent);
+}
+
+void
+fhandler_dev_dsp::fixup_after_exec ()
+{
+ base ()->_fixup_after_exec ();
+}
+
+
int
fhandler_dev_dsp::open (int flags, mode_t mode)
{
@@ -1046,7 +1079,7 @@ fhandler_dev_dsp::open (int flags, mode_t mode)
#define IS_READ() ((get_flags() & O_ACCMODE) != O_WRONLY)
ssize_t __stdcall
-fhandler_dev_dsp::write (const void *ptr, size_t len)
+fhandler_dev_dsp::_write (const void *ptr, size_t len)
{
debug_printf ("ptr=%p len=%ld", ptr, len);
int len_s = len;
@@ -1092,7 +1125,7 @@ fhandler_dev_dsp::write (const void *ptr, size_t len)
}
void __reg3
-fhandler_dev_dsp::read (void *ptr, size_t& len)
+fhandler_dev_dsp::_read (void *ptr, size_t& len)
{
debug_printf ("ptr=%p len=%ld", ptr, len);
@@ -1127,7 +1160,7 @@ fhandler_dev_dsp::read (void *ptr, size_t& len)
audio_in_->read ((char *)ptr, (int&)len);
}
-void
+void __reg1
fhandler_dev_dsp::close_audio_in ()
{
if (audio_in_)
@@ -1138,7 +1171,7 @@ fhandler_dev_dsp::close_audio_in ()
}
}
-void
+void __reg2
fhandler_dev_dsp::close_audio_out (bool immediately)
{
if (audio_out_)
@@ -1154,12 +1187,12 @@ 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);
+ close_audio_out ();
return fhandler_base::close ();
}
int
-fhandler_dev_dsp::ioctl (unsigned int cmd, void *buf)
+fhandler_dev_dsp::_ioctl (unsigned int cmd, void *buf)
{
debug_printf ("audio_in=%p audio_out=%p", audio_in_, audio_out_);
int *intbuf = (int *) buf;
@@ -1270,7 +1303,7 @@ fhandler_dev_dsp::ioctl (unsigned int cmd, void *buf)
CASE (SNDCTL_DSP_STEREO)
{
int nChannels = *intbuf + 1;
- int res = ioctl (SNDCTL_DSP_CHANNELS, &nChannels);
+ int res = _ioctl (SNDCTL_DSP_CHANNELS, &nChannels);
*intbuf = nChannels - 1;
return res;
}
@@ -1362,7 +1395,7 @@ fhandler_dev_dsp::ioctl (unsigned int cmd, void *buf)
}
void
-fhandler_dev_dsp::fixup_after_fork (HANDLE parent)
+fhandler_dev_dsp::_fixup_after_fork (HANDLE parent)
{ // called from new child process
debug_printf ("audio_in=%p audio_out=%p",
audio_in_, audio_out_);
@@ -1375,7 +1408,7 @@ fhandler_dev_dsp::fixup_after_fork (HANDLE parent)
}
void
-fhandler_dev_dsp::fixup_after_exec ()
+fhandler_dev_dsp::_fixup_after_exec ()
{
debug_printf ("audio_in=%p audio_out=%p, close_on_exec %d",
audio_in_, audio_out_, close_on_exec ());