* fhandler.cc (fhandler_base::open): Always add GENERIC_READ access

when opening raw disk devices.
        * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise
        access.
        * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device
        binary.
        (fhandler_dev_raw::raw_write): Don't drop read buffer content when
        writing after read.
This commit is contained in:
Corinna Vinschen
2001-02-05 16:10:06 +00:00
parent cada03f92f
commit ae9b22c69b
4 changed files with 101 additions and 6 deletions

View File

@ -135,8 +135,10 @@ fhandler_dev_raw::open (const char *path, int flags, mode_t)
set_name (path, real_path.get_win32 ());
/* Always open a raw device existing */
ret = fhandler_base::open (path, flags & ~(O_CREAT | O_TRUNC));
/* Always open a raw device existing and binary. */
flags &= ~(O_CREAT | O_TRUNC);
flags |= O_BINARY;
ret = fhandler_base::open (path, flags);
if (ret)
{
if (devbufsiz > 1L)
@ -334,7 +336,10 @@ fhandler_dev_raw::raw_write (const void *ptr, size_t len)
}
if (!is_writing)
devbufstart = devbufend = 0;
{
devbufend = devbufstart;
devbufstart = 0;
}
is_writing = 1;
if (devbuf)