* 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.
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user