diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2004-07-24 13:41:34 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2004-07-24 13:41:34 +0400 |
commit | 65c5aa77fbd14e8571ffcefb731748954bc2f4df (patch) | |
tree | 1b00e362d620e645a61f54541a4154ee6233ff2a /winsup/cygwin/uname.cc | |
parent | 61e6420f325111a3b596a324c6adddfebd7d53d1 (diff) |
* autoload.cc (GetNativeSystemInfo): Add.
(IsWow64Process): Add.
* init.cc (respawn_wow64_process): New function.
(dll_entry): If process has been started from a 64 bit
process, call respawn_wow64_process.
* uname.cc (uname): On 64 bit systems, use GetNativeSystemInfo.
Show actual CPU type.
Diffstat (limited to 'winsup/cygwin/uname.cc')
-rw-r--r-- | winsup/cygwin/uname.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/winsup/cygwin/uname.cc b/winsup/cygwin/uname.cc index 277440937..65708f018 100644 --- a/winsup/cygwin/uname.cc +++ b/winsup/cygwin/uname.cc @@ -29,7 +29,11 @@ uname (struct utsname *name) memset (name, 0, sizeof (*name)); __small_sprintf (name->sysname, "CYGWIN_%s", wincap.osname ()); - GetSystemInfo (&sysinfo); + BOOL is_64bit_machine = FALSE; + if (IsWow64Process (hMainProc, &is_64bit_machine) && is_64bit_machine) + GetNativeSystemInfo (&sysinfo); + else + GetSystemInfo (&sysinfo); /* Computer name */ cygwin_gethostname (name->nodename, sizeof (name->nodename) - 1); @@ -74,6 +78,14 @@ uname (struct utsname *name) } __small_sprintf (name->machine, "i%d86", ptype); break; + case PROCESSOR_ARCHITECTURE_IA64: + strcpy (name->machine, "ia64"); + break; + case PROCESSOR_ARCHITECTURE_AMD64: + strcpy (name->machine, "amd64"); + break; + case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: + strcpy (name->machine, "ia32-win64"); case PROCESSOR_ARCHITECTURE_ALPHA: strcpy (name->machine, "alpha"); break; |