diff options
author | Christopher Faylor <me@cgf.cx> | 2009-06-08 03:53:40 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2009-06-08 03:53:40 +0000 |
commit | 71f53a2f6254e4f47891cd58ab562220547d01a2 (patch) | |
tree | 871e046c427914f0adc28b6d42e02a8caebc3243 /winsup/cygwin/cygheap.h | |
parent | 1866410bb88b2d2733185e2a9aaaf48bd5134dd1 (diff) | |
download | newlib-71f53a2f6254e4f47891cd58ab562220547d01a2.zip newlib-71f53a2f6254e4f47891cd58ab562220547d01a2.tar.gz newlib-71f53a2f6254e4f47891cd58ab562220547d01a2.tar.bz2 |
* cygheap.h (mini_cygheap): New struct.
(init_cygheap): Inherit locale field via mini_cygheap.
* cygheap.cc (cygheap_at_start): Define new variable.
(cygheap): Initialize as cygheap_at_start so that locale information is always
available.
(cygheap_init): Initialize cygheap iff it is set to cygheap_at_start.
* shared_info.h (memory_init): Accommodate argument change.
* memory.cc (memory_init): Accept an argument indicating whether cygheap should
be initialized or not.
* dcrt0.cc (child_info_fork::handle_fork): Pass false to memory_init().
(child_info_spawn::handle_spawn): Ditto.
(dll_crt0_0): Pass true to memory_init when not forking or execing.
* cygheap.h (cygheap_types::HEAP_2_DLL): New enum.
* dll_init.h (dll): Remove unused namelen field.
(dll_list::load_after_fork): Accommodate change in arguments.
* dll_init.cc (dll_list::alloc): Allocate dll information in the cygwin heap.
(dll_list::detach): Free dll information from the cygwin heap.
(dll_list::load_after_fork): Use dll information in the cygwin heap directly
rather than querying parent.
* fork.cc (frok::first_dll): Delete.
(frok::child): Don't report on first_dll. Don't pass it to load_on_fork.
(frok::parent): Don't set first_dll.
(fork): Ditto.
Diffstat (limited to 'winsup/cygwin/cygheap.h')
-rw-r--r-- | winsup/cygwin/cygheap.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h index 2c878f0..d58f176 100644 --- a/winsup/cygwin/cygheap.h +++ b/winsup/cygwin/cygheap.h @@ -31,6 +31,7 @@ enum cygheap_types HEAP_1_EXEC, HEAP_1_MAX = 100, HEAP_2_STR, + HEAP_2_DLL, HEAP_MMAP = 200 }; @@ -282,13 +283,17 @@ struct hook_chain struct hook_chain *next; }; -struct init_cygheap +struct mini_cygheap +{ + cygheap_locale locale; +}; + +struct init_cygheap: public mini_cygheap { _cmalloc_entry *chain; char *buckets[32]; cygheap_root root; cygheap_user user; - cygheap_locale locale; user_heap_info user_heap; mode_t umask; HANDLE console_h; |