Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-04-17 07:52:08 +0400
committerChristopher Faylor <me@cgf.cx>2001-04-17 07:52:08 +0400
commit431ba7dd33c6c29bca5b1172c43d522c1fa152cf (patch)
tree6c35ba68e0ddb119924f6d89549a14f22feed658 /winsup/cygwin/cygheap.h
parent7ade56ca6aed6c0a1a7227934ea31160958306a3 (diff)
* path.h (cwdstuff): Move class.
* cygheap.h (cwdstuff): To here. (init_cygheap): Add cwd field. * child_info.h (cygheap_exec_info): Eliminate cwd stuff. (child_info_spawn): Ditto. * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call. Convert cygcwd reference to cygheap->cwd. * path.cc: Ditto, throughout. (cwdstuff::copy): Eliminate. (cwdstuff::fixup_after_exec): Ditto. * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy. * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
Diffstat (limited to 'winsup/cygwin/cygheap.h')
-rw-r--r--winsup/cygwin/cygheap.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h
index 07d85f52a..b807612a5 100644
--- a/winsup/cygwin/cygheap.h
+++ b/winsup/cygwin/cygheap.h
@@ -97,6 +97,24 @@ public:
}
};
+/* 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 set (const char *win32_cwd, const char *posix_cwd = NULL);
+};
+
struct init_cygheap
{
_cmalloc_entry *chain;
@@ -105,6 +123,7 @@ struct init_cygheap
mode_t umask;
HANDLE shared_h;
HANDLE console_h;
+ cwdstuff cwd;
};
extern init_cygheap *cygheap;