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