From 8d817b0f9ed20cfa5e9482074999c2973a2a9543 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 5 Oct 2001 04:21:41 +0000 Subject: Add second path_conv * argument to fstat()s throughout. * fhandler.h: Change read and fstat to regparm/stdcall throughout. (fhandler_base::fstat): Just declare. Don't define. (fhandler_disk_file::fstat_helper): Declare. * fhandler.cc (fhandler_base::fstat): Move here from fhandler.h, adapt from former stat_dev(). (fhandler_disk_file::fstat): Move most of the disk-file-specific logic from stat_worker to here. Use fstat_helper to derive final fstat output. (fhandler_disk_file::fstat_helper): New method, renamed from former fstat method. (num_entries): Moved here from syscalls.cc. * fhandler_mem.cc (fhandler_dev_mem::fstat): Use base class to initialize most stuff. Invert has_physical_mem_access test for establishing permissions. * fhandler_raw.cc (fhandler_dev_raw::fstat): Eliminate unneed test and memory clearing. Use base class to initialize most stuff. * syscalls.cc (stat_dev): Eliminate. (stat_worker): Simply call fstat method to generate fstat output. Move all device specific code to appropriate fstats. * dir.cc (opendir): Pass correct arg to stat_worker to allow following symlinks. --- winsup/cygwin/fhandler_raw.cc | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'winsup/cygwin/fhandler_raw.cc') diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc index 53d59060a..f487ddd3b 100644 --- a/winsup/cygwin/fhandler_raw.cc +++ b/winsup/cygwin/fhandler_raw.cc @@ -156,22 +156,10 @@ fhandler_dev_raw::close (void) } int -fhandler_dev_raw::fstat (struct stat *buf) +fhandler_dev_raw::fstat (struct stat *buf, path_conv *pc) { - if (!buf) - { - set_errno (EINVAL); - return -1; - } - - memset (buf, 0, sizeof *buf); - buf->st_mode = S_IFCHR | - S_IRUSR | S_IWUSR | - S_IRGRP | S_IWGRP | - S_IROTH | S_IWOTH; - buf->st_nlink = 1; + this->fhandler_base::fstat (buf, pc); buf->st_blksize = devbuf ? devbufsiz : 1; - buf->st_dev = buf->st_rdev = get_device () << 8 | (unit & 0xff); return 0; } -- cgit v1.2.3