From 431ba7dd33c6c29bca5b1172c43d522c1fa152cf Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 17 Apr 2001 03:52:08 +0000 Subject: * 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. --- winsup/cygwin/cygheap.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'winsup/cygwin/cygheap.h') 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; -- cgit v1.2.3