summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/mount.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2009-07-23 11:46:06 +0000
committerCorinna Vinschen <corinna@vinschen.de>2009-07-23 11:46:06 +0000
commita6131454a5de1af75b06d5dc473ffe4af850b46e (patch)
tree0a8df31a28d35a5126f453cffe4642005b3d3ffe /winsup/cygwin/mount.h
parent8b1e0815abf421c0d78f569e2601c5041e728900 (diff)
downloadcygnal-a6131454a5de1af75b06d5dc473ffe4af850b46e.tar.gz
cygnal-a6131454a5de1af75b06d5dc473ffe4af850b46e.tar.bz2
cygnal-a6131454a5de1af75b06d5dc473ffe4af850b46e.zip
* mount.h (fs_info::fsn): New member.
(fs_info::clear): Clear fsn. (fs_info::fsname): New read accessor for fsn. * mount.cc (fs_info::update): Fill in fsn member with lowercased filesystem name if filesystem is not well-known. Fall back to "unknown" if filesystem name is missing. (fillout_mntent): Print filesystem name retrieved in fs_info::update rather than static string "unknown".
Diffstat (limited to 'winsup/cygwin/mount.h')
-rw-r--r--winsup/cygwin/mount.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/mount.h b/winsup/cygwin/mount.h
index c169ca33b..8876bbe13 100644
--- a/winsup/cygwin/mount.h
+++ b/winsup/cygwin/mount.h
@@ -43,10 +43,16 @@ class fs_info
};
} status;
ULONG sernum;
+ char fsn[80];
unsigned long got_fs () { return status.fs_flags; }
public:
- void clear () { memset (&status, 0 , sizeof status); sernum = 0UL; }
+ void clear ()
+ {
+ memset (&status, 0 , sizeof status);
+ sernum = 0UL;
+ fsn[0] = '\0';
+ }
fs_info () { clear (); }
IMPLEMENT_STATUS_FLAG (ULONG, flags)
@@ -71,6 +77,7 @@ class fs_info
int has_buggy_open () const {return is_sunwnfs ();}
int has_buggy_fileid_dirinfo () const {return is_unixfs ();}
+ const char *fsname () const { return fsn[0] ? fsn : "unknown"; }
bool update (PUNICODE_STRING, HANDLE) __attribute__ ((regparm (3)));
};