summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2013-10-24 17:51:41 +0000
committerCorinna Vinschen <corinna@vinschen.de>2013-10-24 17:51:41 +0000
commit8ef76ab6f9320b859ef7c6934bdc96762205b264 (patch)
tree211187de7db368d626c6475cff84f87e69f15ec4
parent4ae84b225105921c1ceef22ff541b06ba7558c11 (diff)
downloadcygnal-8ef76ab6f9320b859ef7c6934bdc96762205b264.tar.gz
cygnal-8ef76ab6f9320b859ef7c6934bdc96762205b264.tar.bz2
cygnal-8ef76ab6f9320b859ef7c6934bdc96762205b264.zip
* fhandler.h (fhandler_dev_zero::lseek): Convert to inline method.
(class fhandler_dev_random): Drop dummy_offset. (fhandler_dev_random::lseek): Convert to inline method. (fhandler_dev_dsp::lseek): Ditto. * fhandler_dsp.cc (fhandler_dev_dsp::lseek): Drop here. * fhandler_random.cc (fhandler_dev_random::open): Drop setting dummy_offset. (fhandler_dev_random::lseek): Drop here. * fhandler_tape.cc (fhandler_dev_tape::lseek): Make no-op, but keep old code for reference. * fhandler_zero.cc (fhandler_dev_zero::lseek): Drop here.
-rw-r--r--winsup/cygwin/ChangeLog14
-rw-r--r--winsup/cygwin/fhandler.h7
-rw-r--r--winsup/cygwin/fhandler_dsp.cc8
-rw-r--r--winsup/cygwin/fhandler_random.cc29
-rw-r--r--winsup/cygwin/fhandler_tape.cc6
-rw-r--r--winsup/cygwin/fhandler_zero.cc6
6 files changed, 24 insertions, 46 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e6f255ff4..8ae3e44c2 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,17 @@
+2013-10-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_dev_zero::lseek): Convert to inline method.
+ (class fhandler_dev_random): Drop dummy_offset.
+ (fhandler_dev_random::lseek): Convert to inline method.
+ (fhandler_dev_dsp::lseek): Ditto.
+ * fhandler_dsp.cc (fhandler_dev_dsp::lseek): Drop here.
+ * fhandler_random.cc (fhandler_dev_random::open): Drop setting
+ dummy_offset.
+ (fhandler_dev_random::lseek): Drop here.
+ * fhandler_tape.cc (fhandler_dev_tape::lseek): Make no-op, but keep
+ old code for reference.
+ * fhandler_zero.cc (fhandler_dev_zero::lseek): Drop here.
+
2013-10-24 Christopher Faylor <me.cygwin2013@cgf.cx>
* external.cc (fillout_pinfo): If start_time is 0, wait a while before
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 0895bf88c..840a96125 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -1621,7 +1621,7 @@ class fhandler_dev_zero: public fhandler_base
fhandler_dev_zero ();
ssize_t __stdcall write (const void *ptr, size_t len);
void __reg3 read (void *ptr, size_t& len);
- off_t lseek (off_t offset, int whence);
+ off_t lseek (off_t, int) { return 0; }
virtual HANDLE mmap (caddr_t *addr, size_t len, int prot,
int flags, off_t off);
@@ -1653,7 +1653,6 @@ class fhandler_dev_random: public fhandler_base
{
protected:
uint32_t pseudo;
- off_t dummy_offset;
bool crypt_gen_random (void *ptr, size_t len);
int pseudo_write (const void *ptr, size_t len);
@@ -1663,7 +1662,7 @@ class fhandler_dev_random: public fhandler_base
int open (int flags, mode_t mode = 0);
ssize_t __stdcall write (const void *ptr, size_t len);
void __reg3 read (void *ptr, size_t& len);
- off_t lseek (off_t offset, int whence);
+ off_t lseek (off_t, int) { return 0; }
int close ();
fhandler_dev_random () : fhandler_base () {}
@@ -1780,7 +1779,7 @@ class fhandler_dev_dsp: public fhandler_base
ssize_t __stdcall write (const void *ptr, size_t len);
void __reg3 read (void *ptr, size_t& len);
int ioctl (unsigned int cmd, void *);
- off_t lseek (off_t, int);
+ off_t lseek (off_t, int) { return 0; }
int close ();
void fixup_after_fork (HANDLE parent);
void fixup_after_exec ();
diff --git a/winsup/cygwin/fhandler_dsp.cc b/winsup/cygwin/fhandler_dsp.cc
index 72256b056..f6ec303f2 100644
--- a/winsup/cygwin/fhandler_dsp.cc
+++ b/winsup/cygwin/fhandler_dsp.cc
@@ -1,6 +1,6 @@
/* fhandler_dev_dsp: code to emulate OSS sound model /dev/dsp
- Copyright 2001, 2002, 2003, 2004, 2008, 2011, 2012 Red Hat, Inc
+ Copyright 2001, 2002, 2003, 2004, 2008, 2011, 2012, 2013 Red Hat, Inc
Written by Andy Younger (andy@snoogie.demon.co.uk)
Extended by Gerd Spalink (Gerd.Spalink@t-online.de)
@@ -1131,12 +1131,6 @@ fhandler_dev_dsp::read (void *ptr, size_t& len)
audio_in_->read ((char *)ptr, (int&)len);
}
-off_t
-fhandler_dev_dsp::lseek (off_t offset, int whence)
-{
- return 0;
-}
-
void
fhandler_dev_dsp::close_audio_in ()
{
diff --git a/winsup/cygwin/fhandler_random.cc b/winsup/cygwin/fhandler_random.cc
index 092c6f887..85624c038 100644
--- a/winsup/cygwin/fhandler_random.cc
+++ b/winsup/cygwin/fhandler_random.cc
@@ -34,7 +34,6 @@ fhandler_dev_random::open (int flags, mode_t)
set_flags ((flags & ~O_TEXT) | O_BINARY);
nohandle (true);
set_open_status ();
- dummy_offset = 0;
return 1;
}
@@ -151,34 +150,6 @@ fhandler_dev_random::read (void *ptr, size_t& len)
len = pseudo_read (ptr, len);
}
-off_t
-fhandler_dev_random::lseek (off_t off, int whence)
-{
- /* As on Linux, fake being able to set an offset. The fact that neither
- reading nor writing changes the dummy offset is also the same as on
- Linux (tested with kernel 2.6.23). */
- off_t new_off;
-
- switch (whence)
- {
- case SEEK_SET:
- new_off = off;
- break;
- case SEEK_CUR:
- new_off = dummy_offset + off;
- break;
- default:
- set_errno (EINVAL);
- return (off_t) -1;
- }
- if (new_off < 0)
- {
- set_errno (EINVAL);
- return (off_t) -1;
- }
- return dummy_offset = new_off;
-}
-
int
fhandler_dev_random::close ()
{
diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc
index eb35f6599..91d5b12aa 100644
--- a/winsup/cygwin/fhandler_tape.cc
+++ b/winsup/cygwin/fhandler_tape.cc
@@ -1368,6 +1368,11 @@ fhandler_dev_tape::raw_write (const void *ptr, size_t len)
off_t
fhandler_dev_tape::lseek (off_t offset, int whence)
{
+#if 1
+ /* On Linux lseek on tapes is a no-op. For now, let's keep the old code
+ intact but commented out, should incompatibilities arise. */
+ return 0;
+#else
struct mtop op;
struct mtpos pos;
DWORD block_size;
@@ -1426,6 +1431,7 @@ fhandler_dev_tape::lseek (off_t offset, int whence)
out:
return unlock (ret);
+#endif
}
int __reg2
diff --git a/winsup/cygwin/fhandler_zero.cc b/winsup/cygwin/fhandler_zero.cc
index 03319a7dd..6e89683f9 100644
--- a/winsup/cygwin/fhandler_zero.cc
+++ b/winsup/cygwin/fhandler_zero.cc
@@ -37,9 +37,3 @@ fhandler_dev_zero::read (void *ptr, size_t& len)
{
memset (ptr, 0, len);
}
-
-off_t
-fhandler_dev_zero::lseek (off_t, int)
-{
- return 0;
-}