On Nov 27 11:22, Jeremy Drake via Cygwin-patches wrote:
> From: Jeremy Drake <cyg...@jdrake.com>
> 
> This was already used in the FAST_CWD check, and could be used in a
> couple other places.
> 
> I found the "emulated"/process value returned from the function largely
> useless, so I did not cache it.  It is useless because, as the docs say,
> it is set to IMAGE_FILE_MACHINE_UNKNOWN (0) if the process is not
> running under WOW64, but Microsoft also doesn't consider x64-on-ARM64 to
> be WOW64, so it is set to 0 regardless if the process is ARM64 or x64.
> You can tell the difference via
> GetProcessInformation(ProcessMachineTypeInfo), but for the current
> process even that's overkill: what we really want to know is the
> IMAGE_FILE_MACHINE_* constant for the Cygwin dll itself, which is
> conveniently located in memory already, so cache that in wincap also for
> easy comparisons.
> 
> Signed-off-by: Jeremy Drake <cyg...@jdrake.com>
> ---
> v2: rename current_module_machine to cygwin_machine, adjust comment and
> remove ifdefs from fallback case when IsWow64Process2 fails.
> 
> v3: cache cygwin_mach as member in wincapc, rename extern IMAGE_DOS_HEADER
> to __image_base__ to avoid __asm__
> 
>  winsup/cygwin/local_includes/wincap.h |  4 ++++
>  winsup/cygwin/path.cc                 |  6 ++----
>  winsup/cygwin/wincap.cc               | 19 +++++++++++++++++++
>  3 files changed, 25 insertions(+), 4 deletions(-)

Pushed.


Thanks,
Corinna

Reply via email to