* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
(child_info_fork::mount_table): Remove. (child_info_fork::myself_addr): Remove. * fork.cc (fork_child): Don't set either of the above. * dcrt0.cc (dll_crt0_1): Call memory_init as early as possible. * fhandler_console.cc (console_state): Move to shared_info.h. (fhandler_console::get_tty_stuff): Reflect open_shared arg change. * pinfo.cc (myself_addr): Remove definition. (pinfo::init): Get myself address from open_shared. * pinfo.h (myself_addr): Remove declaration. * shared.cc (open_shared): Rework so that known shared memory locations are protected. Take shared memory type as fifth argument. (memory_init): Reflect open_shared arg change. * shared_info.h (shared_locations): New enum. (console_state): Move here. (open_shared): Reflect open_shared arg change in declaration.
This commit is contained in:
@@ -161,6 +161,14 @@ extern shared_info *cygwin_shared;
|
||||
extern mount_info *mount_table;
|
||||
extern HANDLE cygwin_mount_h;
|
||||
|
||||
enum shared_locations
|
||||
{
|
||||
SH_CYGWIN_SHARED,
|
||||
SH_MOUNT_TABLE,
|
||||
SH_SHARED_CONSOLE,
|
||||
SH_MYSELF,
|
||||
SH_TOTAL_SIZE
|
||||
};
|
||||
void __stdcall memory_init ();
|
||||
|
||||
#define shared_align_past(p) \
|
||||
@@ -169,8 +177,14 @@ void __stdcall memory_init ();
|
||||
system_info.dwAllocationGranularity)))
|
||||
|
||||
#define cygwin_shared_address ((void *) 0xa000000)
|
||||
#define mount_table_address shared_align_past (cygwin_shared)
|
||||
#define cygheap_address shared_align_past ((mount_info *) shared_align_past (cygwin_shared))
|
||||
|
||||
#ifdef FHDEVN
|
||||
struct console_state
|
||||
{
|
||||
tty_min tty_min_state;
|
||||
dev_console dev_state;
|
||||
};
|
||||
#endif
|
||||
|
||||
char *__stdcall shared_name (const char *, int);
|
||||
void *__stdcall open_shared (const char *name, int n, HANDLE &shared_h, DWORD size, void *addr);
|
||||
void *__stdcall open_shared (const char *name, int n, HANDLE &shared_h, DWORD size, shared_locations);
|
||||
|
Reference in New Issue
Block a user