summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/path.h')
-rw-r--r--winsup/cygwin/path.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index 3f8025af0..9143b415b 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -110,11 +110,6 @@ int __stdcall check_null_empty_path (const char *name);
const char * __stdcall find_exec (const char *name, path_conv& buf, const char *winenv = "PATH=",
int null_if_notfound = 0, const char **known_suffix = NULL);
-void __stdcall cwd_init ();
-char * __stdcall cwd_posix (char *);
-char * __stdcall cwd_win32 (char *);
-DWORD __stdcall cwd_hash ();
-void __stdcall cwd_fixup_after_exec (char *, char *, DWORD);
/* Common macros for checking for invalid path names */
@@ -127,3 +122,24 @@ void __stdcall cwd_fixup_after_exec (char *, char *, DWORD);
})
#define isdrive(s) (isalpha (*(s)) && (s)[1] == ':')
+
+/* cwd cache stuff. */
+
+class muto;
+
+struct cwdstuff
+{
+ char *posix;
+ char *win32;
+ DWORD hash;
+ muto *lock;
+ char *get (char *buf, int need_posix = 1, int with_chroot = 0, unsigned ulen = MAX_PATH);
+ DWORD get_hash ();
+ void init ();
+ void fixup_after_exec (char *win32, char *posix, DWORD hash);
+ bool get_initial ();
+ void copy (char * &posix_cwd, char * &win32_cwd, DWORD hash_cwd);
+ void set (char *win32_cwd);
+};
+
+extern cwdstuff cygcwd;