* 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:
Christopher Faylor
2002-10-15 07:03:45 +00:00
parent 54030e2146
commit fdb28b5e5f
9 changed files with 96 additions and 43 deletions

View File

@@ -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);