* fhandler.h (class fhandler_dev_raw): Remove is_writing flag.
Remove declaration of writebuf. (class fhandler_dev_floppy): Remove declaration of close. * fhandler_floppy.cc (fhandler_dev_floppy::close): Delete. (fhandler_dev_floppy::lseek): Remove calls to writebuf. Set eom_detected to false after successful seek. * fhandler_raw.cc (fhandler_dev_raw::writebuf): Delete. (fhandler_dev_raw::raw_read): Remove calls to writebuf. (fhandler_dev_raw::raw_write): Always invalidate buffer.
This commit is contained in:
@ -40,8 +40,7 @@ fhandler_dev_raw::is_eof (int)
|
||||
}
|
||||
|
||||
|
||||
/* Wrapper functions to allow fhandler_dev_tape to detect and care for
|
||||
media changes and bus resets. */
|
||||
/* Wrapper functions to simplify error handling. */
|
||||
|
||||
BOOL
|
||||
fhandler_dev_raw::write_file (const void *buf, DWORD to_write,
|
||||
@ -70,28 +69,6 @@ fhandler_dev_raw::read_file (void *buf, DWORD to_read, DWORD *read, int *err)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_dev_raw::writebuf (void)
|
||||
{
|
||||
DWORD written;
|
||||
int ret = 0;
|
||||
|
||||
if (is_writing () && devbuf && devbufend)
|
||||
{
|
||||
DWORD to_write;
|
||||
int ret = 0;
|
||||
|
||||
memset (devbuf + devbufend, 0, devbufsiz - devbufend);
|
||||
to_write = ((devbufend - 1) / 512 + 1) * 512;
|
||||
if (!write_file (devbuf, to_write, &written, &ret)
|
||||
&& is_eom (ret))
|
||||
eom_detected (true);
|
||||
devbufstart = devbufend = 0;
|
||||
}
|
||||
is_writing (false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
fhandler_dev_raw::fhandler_dev_raw ()
|
||||
: fhandler_base (), status ()
|
||||
{
|
||||
@ -172,17 +149,6 @@ fhandler_dev_raw::raw_read (void *ptr, size_t& ulen)
|
||||
char *tgt;
|
||||
char *p = (char *) ptr;
|
||||
|
||||
/* In mode O_RDWR the buffer has to be written to device first */
|
||||
ret = writebuf ();
|
||||
if (ret)
|
||||
{
|
||||
if (is_eom (ret))
|
||||
set_errno (ENOSPC);
|
||||
else
|
||||
__seterrno ();
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Checking a previous end of file */
|
||||
if (eof_detected () && !lastblk_to_read ())
|
||||
{
|
||||
@ -320,9 +286,8 @@ fhandler_dev_raw::raw_write (const void *ptr, size_t len)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!is_writing ())
|
||||
devbufstart = devbufend = 0;
|
||||
is_writing (true);
|
||||
/* Invalidate buffer. */
|
||||
devbufstart = devbufend = 0;
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user