* [PATCH v2] Emulator/Win: Fix build failure using VS2015x86 or old WinSDK
@ 2018-09-07 5:48 Ruiyu Ni
2018-09-10 1:19 ` Wu, Hao A
0 siblings, 1 reply; 2+ messages in thread
From: Ruiyu Ni @ 2018-09-07 5:48 UTC (permalink / raw)
To: edk2-devel; +Cc: Michael D Kinney, Hao A Wu
When build with WinSDK <= Win10 TH2, the terminal over CMD.exe
doesn't work. Because Win10 later than TH2 starts to support VT
terminal.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
---
EmulatorPkg/Win/Host/WinHost.c | 2 +-
EmulatorPkg/Win/Host/WinThunk.c | 23 ++++++++++++++++-------
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c
index 9b98d5330f..65e8960eff 100644
--- a/EmulatorPkg/Win/Host/WinHost.c
+++ b/EmulatorPkg/Win/Host/WinHost.c
@@ -673,7 +673,7 @@ Returns:
// Transfer control to the SEC Core
//
SwitchStack (
- (SWITCH_STACK_ENTRY_POINT)SecCoreEntryPoint,
+ (SWITCH_STACK_ENTRY_POINT)(UINTN)SecCoreEntryPoint,
SecCoreData,
GetThunkPpiList (),
TopOfStack
diff --git a/EmulatorPkg/Win/Host/WinThunk.c b/EmulatorPkg/Win/Host/WinThunk.c
index 306fe75ecd..6007db73b5 100644
--- a/EmulatorPkg/Win/Host/WinThunk.c
+++ b/EmulatorPkg/Win/Host/WinThunk.c
@@ -71,15 +71,23 @@ SecConfigStdIn (
//
// Disable buffer (line input), echo, mouse, window
//
- Success = SetConsoleMode (
- GetStdHandle (STD_INPUT_HANDLE),
- Mode | ENABLE_VIRTUAL_TERMINAL_INPUT & ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT)
- );
- }
- if (Success) {
+ Mode &= ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
+
+#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION > NTDDI_WIN10_TH2)
//
- // Enable terminal mode
+ // Enable virtual terminal input for Win10 above TH2
//
+ Mode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
+#endif
+
+ Success = SetConsoleMode (GetStdHandle (STD_INPUT_HANDLE), Mode);
+ }
+
+#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) && (NTDDI_VERSION > NTDDI_WIN10_TH2)
+ //
+ // Enable terminal mode for Win10 above TH2
+ //
+ if (Success) {
Success = GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE), &Mode);
if (Success) {
Success = SetConsoleMode (
@@ -88,6 +96,7 @@ SecConfigStdIn (
);
}
}
+#endif
return Success ? EFI_SUCCESS : EFI_DEVICE_ERROR;
}
--
2.16.1.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] Emulator/Win: Fix build failure using VS2015x86 or old WinSDK
2018-09-07 5:48 [PATCH v2] Emulator/Win: Fix build failure using VS2015x86 or old WinSDK Ruiyu Ni
@ 2018-09-10 1:19 ` Wu, Hao A
0 siblings, 0 replies; 2+ messages in thread
From: Wu, Hao A @ 2018-09-10 1:19 UTC (permalink / raw)
To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Kinney, Michael D
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Best Regards,
Hao Wu
> -----Original Message-----
> From: Ni, Ruiyu
> Sent: Friday, September 07, 2018 1:48 PM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D; Wu, Hao A
> Subject: [PATCH v2] Emulator/Win: Fix build failure using VS2015x86 or old
> WinSDK
>
> When build with WinSDK <= Win10 TH2, the terminal over CMD.exe
> doesn't work. Because Win10 later than TH2 starts to support VT
> terminal.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Hao A Wu <hao.a.wu@intel.com>
> ---
> EmulatorPkg/Win/Host/WinHost.c | 2 +-
> EmulatorPkg/Win/Host/WinThunk.c | 23 ++++++++++++++++-------
> 2 files changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/EmulatorPkg/Win/Host/WinHost.c
> b/EmulatorPkg/Win/Host/WinHost.c
> index 9b98d5330f..65e8960eff 100644
> --- a/EmulatorPkg/Win/Host/WinHost.c
> +++ b/EmulatorPkg/Win/Host/WinHost.c
> @@ -673,7 +673,7 @@ Returns:
> // Transfer control to the SEC Core
> //
> SwitchStack (
> - (SWITCH_STACK_ENTRY_POINT)SecCoreEntryPoint,
> + (SWITCH_STACK_ENTRY_POINT)(UINTN)SecCoreEntryPoint,
> SecCoreData,
> GetThunkPpiList (),
> TopOfStack
> diff --git a/EmulatorPkg/Win/Host/WinThunk.c
> b/EmulatorPkg/Win/Host/WinThunk.c
> index 306fe75ecd..6007db73b5 100644
> --- a/EmulatorPkg/Win/Host/WinThunk.c
> +++ b/EmulatorPkg/Win/Host/WinThunk.c
> @@ -71,15 +71,23 @@ SecConfigStdIn (
> //
> // Disable buffer (line input), echo, mouse, window
> //
> - Success = SetConsoleMode (
> - GetStdHandle (STD_INPUT_HANDLE),
> - Mode | ENABLE_VIRTUAL_TERMINAL_INPUT &
> ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT | ENABLE_MOUSE_INPUT |
> ENABLE_WINDOW_INPUT)
> - );
> - }
> - if (Success) {
> + Mode &= ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT |
> ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT);
> +
> +#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) &&
> (NTDDI_VERSION > NTDDI_WIN10_TH2)
> //
> - // Enable terminal mode
> + // Enable virtual terminal input for Win10 above TH2
> //
> + Mode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
> +#endif
> +
> + Success = SetConsoleMode (GetStdHandle (STD_INPUT_HANDLE), Mode);
> + }
> +
> +#if defined(NTDDI_VERSION) && defined (NTDDI_WIN10_TH2) &&
> (NTDDI_VERSION > NTDDI_WIN10_TH2)
> + //
> + // Enable terminal mode for Win10 above TH2
> + //
> + if (Success) {
> Success = GetConsoleMode (GetStdHandle (STD_OUTPUT_HANDLE),
> &Mode);
> if (Success) {
> Success = SetConsoleMode (
> @@ -88,6 +96,7 @@ SecConfigStdIn (
> );
> }
> }
> +#endif
> return Success ? EFI_SUCCESS : EFI_DEVICE_ERROR;
> }
>
> --
> 2.16.1.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-09-10 1:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-07 5:48 [PATCH v2] Emulator/Win: Fix build failure using VS2015x86 or old WinSDK Ruiyu Ni
2018-09-10 1:19 ` Wu, Hao A
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox