* fhandler_console.cc (fhandler_console::open_shared_console): Semi-revert to

using fixed location for console stuff.
* shared.cc (offsets): Ditto.  Comment.
* shared_info (shared_locations): Re-add SH_SHARED_CONSOLE.
This commit is contained in:
Christopher Faylor 2011-06-07 20:55:10 +00:00
parent 772832a85b
commit 0791c40b20
4 changed files with 20 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2011-06-07 Christopher Faylor <me.cygwin2011@cgf.cx>
* fhandler_console.cc (fhandler_console::open_shared_console):
Semi-revert to using fixed location for console stuff.
* shared.cc (offsets): Ditto. Comment.
* shared_info (shared_locations): Re-add SH_SHARED_CONSOLE.
2011-06-05 Christopher Faylor <me.cygwin2011@cgf.cx> 2011-06-05 Christopher Faylor <me.cygwin2011@cgf.cx>
* fhandler_disk_file.cc (fhandler_disk_file::pread): Reset windows file * fhandler_disk_file.cc (fhandler_disk_file::pread): Reset windows file

View File

@ -83,10 +83,10 @@ fhandler_console::open_shared_console (HWND hw, HANDLE& h, bool& create)
wchar_t namebuf[(sizeof "XXXXXXXXXXXXXXXXXX-consNNNNNNNNNN")]; wchar_t namebuf[(sizeof "XXXXXXXXXXXXXXXXXX-consNNNNNNNNNN")];
__small_swprintf (namebuf, L"%S-cons%p", &installation_key, hw); __small_swprintf (namebuf, L"%S-cons%p", &installation_key, hw);
shared_locations m = create ? SH_JUSTCREATE: SH_JUSTOPEN; shared_locations m = create ? SH_SHARED_CONSOLE : SH_JUSTOPEN;
console_state *res = (console_state *) console_state *res = (console_state *)
open_shared (namebuf, 0, h, sizeof (*shared_console_info), &m); open_shared (namebuf, 0, h, sizeof (*shared_console_info), &m);
create = m == SH_JUSTCREATE; create = m != SH_JUSTOPEN;
return res; return res;
} }
class console_unit class console_unit

View File

@ -206,18 +206,22 @@ shared_name (WCHAR *ret_buf, const WCHAR *str, int num)
/* The order in offsets is so that the constant blocks shared_info /* The order in offsets is so that the constant blocks shared_info
and user_info are right below the cygwin DLL, then the pinfo block and user_info are right below the cygwin DLL, then the pinfo block
which changes with each process. */ which changes with each process. Below that is the console_state,
an optional block which only exists when running in a Windows console
window. Therefore, if we are not running in a console, we have 64K
more of contiguous memory below the Cygwin DLL. */
static ptrdiff_t offsets[] = static ptrdiff_t offsets[] =
{ {
- pround (sizeof (shared_info)), - pround (sizeof (shared_info)), /* SH_CYGWIN_SHARED */
- pround (sizeof (shared_info)) - pround (sizeof (shared_info)) /* SH_USER_SHARED */
- pround (sizeof (user_info)), - pround (sizeof (user_info)),
- pround (sizeof (shared_info)) - pround (sizeof (shared_info)) /* SH_MYSELF */
- pround (sizeof (user_info)) - pround (sizeof (user_info))
- pround (sizeof (_pinfo)), - pround (sizeof (_pinfo)),
- pround (sizeof (shared_info)) - pround (sizeof (shared_info)) /* SH_SHARED_CONSOLE */
- pround (sizeof (user_info)) - pround (sizeof (user_info))
- pround (sizeof (_pinfo)), - pround (sizeof (_pinfo))
- pround (sizeof (fhandler_console::console_state)),
0 0
}; };

View File

@ -65,6 +65,7 @@ enum shared_locations
SH_CYGWIN_SHARED, SH_CYGWIN_SHARED,
SH_USER_SHARED, SH_USER_SHARED,
SH_MYSELF, SH_MYSELF,
SH_SHARED_CONSOLE,
SH_TOTAL_SIZE, SH_TOTAL_SIZE,
SH_JUSTCREATE, SH_JUSTCREATE,
SH_JUSTOPEN SH_JUSTOPEN