aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/fhandler_raw.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-09-30 21:43:40 +0000
committerCorinna Vinschen <corinna@vinschen.de>2003-09-30 21:43:40 +0000
commita4b25e31cae7d5af653f3fee3d0e605f6d550598 (patch)
tree828b9be3e3a7b6bdf204a054bb3170194695654d /winsup/cygwin/fhandler_raw.cc
parent7f7eda07801f6723d8b42202703ac0ca3e941458 (diff)
downloadnewlib-a4b25e31cae7d5af653f3fee3d0e605f6d550598.zip
newlib-a4b25e31cae7d5af653f3fee3d0e605f6d550598.tar.gz
newlib-a4b25e31cae7d5af653f3fee3d0e605f6d550598.tar.bz2
* fhandler.h (class fhandler_dev_raw): Add method fstat.
* fhandler_raw.cc (fhandler_dev_raw::fstat): New method. Add missing ChangeLog for previous patch.
Diffstat (limited to 'winsup/cygwin/fhandler_raw.cc')
-rw-r--r--winsup/cygwin/fhandler_raw.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc
index 38ef837..ba74d7e 100644
--- a/winsup/cygwin/fhandler_raw.cc
+++ b/winsup/cygwin/fhandler_raw.cc
@@ -129,6 +129,31 @@ fhandler_dev_raw::~fhandler_dev_raw (void)
clear ();
}
+int __stdcall
+fhandler_dev_raw::fstat (struct __stat64 *buf)
+{
+ debug_printf ("here");
+
+ switch (get_device ())
+ {
+ case FH_TAPE:
+ case FH_NTAPE:
+ buf->st_mode = S_IFCHR | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+ break;
+ default:
+ buf->st_mode = S_IFBLK | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
+ break;
+ }
+
+ buf->st_uid = geteuid32 ();
+ buf->st_gid = getegid32 ();
+ buf->st_nlink = 1;
+ buf->st_blksize = S_BLKSIZE;
+ time_as_timestruc_t (&buf->st_ctim);
+ buf->st_atim = buf->st_mtim = buf->st_ctim;
+ return 0;
+}
+
int
fhandler_dev_raw::open (int flags, mode_t)
{