* [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev @ 2017-04-19 2:42 Ruiyu Ni 2017-04-19 2:53 ` Zeng, Star 0 siblings, 1 reply; 3+ messages in thread From: Ruiyu Ni @ 2017-04-19 2:42 UTC (permalink / raw) To: edk2-devel; +Cc: Star Zeng When TerminalDxe Start() is called multiple times, the old logic unconditionally appended the terminal device path candidates to *Dev (ConInDev/ConOutDev/ErrOutDev), resulting the volatile storage is full. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> --- .../Universal/Console/TerminalDxe/Terminal.c | 67 +++++++++++++++++++--- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c index 5d55969..60de2d4 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c @@ -994,6 +994,49 @@ TerminalDriverBindingStop ( } /** + Compare a device path data structure to that of all the nodes of a + second device path instance. + + @param Multi A pointer to a multi-instance device path data structure. + @param Single A pointer to a single-instance device path data structure. + + @retval TRUE If the Single is contained within Multi. + @retval FALSE The Single is not match within Multi. + +**/ +BOOLEAN +MatchDevicePaths ( + IN EFI_DEVICE_PATH_PROTOCOL *Multi, + IN EFI_DEVICE_PATH_PROTOCOL *Single + ) +{ + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + EFI_DEVICE_PATH_PROTOCOL *DevicePathInst; + UINTN Size; + + DevicePath = Multi; + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); + // + // Search for the match of 'Single' in 'Multi' + // + while (DevicePathInst != NULL) { + // + // If the single device path is found in multiple device paths, + // return success + // + if (CompareMem (Single, DevicePathInst, Size) == 0) { + FreePool (DevicePathInst); + return TRUE; + } + + FreePool (DevicePathInst); + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); + } + + return FALSE; +} + +/** Update terminal device path in Console Device Environment Variables. @param VariableName The Console Device Environment Variable. @@ -1018,8 +1061,12 @@ TerminalUpdateConsoleDevVariable ( // // Get global variable and its size according to the name given. // - GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL); - if (Variable == NULL) { + Status = GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL); + if (Status == EFI_NOT_FOUND) { + Status = EFI_SUCCESS; + Variable = NULL; + } + if (EFI_ERROR (Status)) { return; } @@ -1028,17 +1075,21 @@ TerminalUpdateConsoleDevVariable ( // for (TerminalType = 0; TerminalType < ARRAY_SIZE (mTerminalType); TerminalType++) { SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath); - NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); - ASSERT (NewVariable != NULL); - if (Variable != NULL) { - FreePool (Variable); - } if (TempDevicePath != NULL) { + if (!MatchDevicePaths (Variable, TempDevicePath)) { + NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); + if (NewVariable != NULL) { + if (Variable != NULL) { + FreePool (Variable); + } + Variable = NewVariable; + } + } + FreePool (TempDevicePath); } - Variable = NewVariable; } VariableSize = GetDevicePathSize (Variable); -- 2.9.0.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev 2017-04-19 2:42 [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev Ruiyu Ni @ 2017-04-19 2:53 ` Zeng, Star 2017-04-19 5:13 ` Ni, Ruiyu 0 siblings, 1 reply; 3+ messages in thread From: Zeng, Star @ 2017-04-19 2:53 UTC (permalink / raw) To: Ni, Ruiyu, edk2-devel@lists.01.org; +Cc: Zeng, Star Reviewed-by: Star Zeng <star.zeng@intel.com> BTW: May the MatchDevicePaths could be proposed to DevicePathLib? :) ---- MatchDevicePaths Matches (5 in 1 files) ---- ConsoleOption.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib):MatchDevicePaths ( ConsoleOption.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib): if (MatchDevicePaths (OutDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib): if (MatchDevicePaths (InpDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib): if (MatchDevicePaths (ErrDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUiLib): NewConsoleContext->IsActive = MatchDevicePaths ( ---- BmMatchDevicePaths Matches (4 in 4 files) ---- BmBoot.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib): if (BmMatchDevicePaths (*CachedDevicePath, DevicePath)) { BmConsole.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib): if (!BmMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) { BmMisc.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib):BmMatchDevicePaths ( InternalBm.h (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib):BmMatchDevicePaths ( ---- BdsLibMatchDevicePaths Matches (11 in 8 files) ---- BdsBoot.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib): if (BdsLibMatchDevicePaths (CachedDevicePath, BlockIoDevicePath)) { BdsBoot.c (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModulePkg\Library\GenericBdsLib): if (BdsLibMatchDevicePaths (CachedDevicePath, BlockIoDevicePath)) { BdsConsole.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib): if (!BdsLibMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) { BdsConsole.c (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModulePkg\Library\GenericBdsLib): if (!BdsLibMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) { BdsMisc.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib):BdsLibMatchDevicePaths ( BdsMisc.c (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModulePkg\Library\GenericBdsLib):BdsLibMatchDevicePaths ( ConsoleOption.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootMaint): if (BdsLibMatchDevicePaths (OutDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootMaint): if (BdsLibMatchDevicePaths (InpDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootMaint): if (BdsLibMatchDevicePaths (ErrDevicePath, NewDevicePath)) { ConsoleOption.c (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootMaint): NewConsoleContext->IsActive = BdsLibMatchDevicePaths ( GenericBdsLib.h (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Include\Library):BdsLibMatchDevicePaths ( ---- ConPlatformMatchDevicePaths Matches (4 in 2 files) ---- ConPlatform.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe):ConPlatformMatchDevicePaths ( ConPlatform.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe): Status = ConPlatformMatchDevicePaths ( ConPlatform.c (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe): Status = ConPlatformMatchDevicePaths ( ConPlatform.h (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe):ConPlatformMatchDevicePaths ( Thanks, Star -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ruiyu Ni Sent: Wednesday, April 19, 2017 10:43 AM To: edk2-devel@lists.01.org Cc: Zeng, Star <star.zeng@intel.com> Subject: [edk2] [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev When TerminalDxe Start() is called multiple times, the old logic unconditionally appended the terminal device path candidates to *Dev (ConInDev/ConOutDev/ErrOutDev), resulting the volatile storage is full. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> --- .../Universal/Console/TerminalDxe/Terminal.c | 67 +++++++++++++++++++--- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c index 5d55969..60de2d4 100644 --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c @@ -994,6 +994,49 @@ TerminalDriverBindingStop ( } /** + Compare a device path data structure to that of all the nodes of a + second device path instance. + + @param Multi A pointer to a multi-instance device path data structure. + @param Single A pointer to a single-instance device path data structure. + + @retval TRUE If the Single is contained within Multi. + @retval FALSE The Single is not match within Multi. + +**/ +BOOLEAN +MatchDevicePaths ( + IN EFI_DEVICE_PATH_PROTOCOL *Multi, + IN EFI_DEVICE_PATH_PROTOCOL *Single + ) +{ + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + EFI_DEVICE_PATH_PROTOCOL *DevicePathInst; + UINTN Size; + + DevicePath = Multi; + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); // + // Search for the match of 'Single' in 'Multi' + // + while (DevicePathInst != NULL) { + // + // If the single device path is found in multiple device paths, + // return success + // + if (CompareMem (Single, DevicePathInst, Size) == 0) { + FreePool (DevicePathInst); + return TRUE; + } + + FreePool (DevicePathInst); + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); } + + return FALSE; +} + +/** Update terminal device path in Console Device Environment Variables. @param VariableName The Console Device Environment Variable. @@ -1018,8 +1061,12 @@ TerminalUpdateConsoleDevVariable ( // // Get global variable and its size according to the name given. // - GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL); - if (Variable == NULL) { + Status = GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, + NULL); if (Status == EFI_NOT_FOUND) { + Status = EFI_SUCCESS; + Variable = NULL; + } + if (EFI_ERROR (Status)) { return; } @@ -1028,17 +1075,21 @@ TerminalUpdateConsoleDevVariable ( // for (TerminalType = 0; TerminalType < ARRAY_SIZE (mTerminalType); TerminalType++) { SetTerminalDevicePath (TerminalType, ParentDevicePath, &TempDevicePath); - NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); - ASSERT (NewVariable != NULL); - if (Variable != NULL) { - FreePool (Variable); - } if (TempDevicePath != NULL) { + if (!MatchDevicePaths (Variable, TempDevicePath)) { + NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); + if (NewVariable != NULL) { + if (Variable != NULL) { + FreePool (Variable); + } + Variable = NewVariable; + } + } + FreePool (TempDevicePath); } - Variable = NewVariable; } VariableSize = GetDevicePathSize (Variable); -- 2.9.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev 2017-04-19 2:53 ` Zeng, Star @ 2017-04-19 5:13 ` Ni, Ruiyu 0 siblings, 0 replies; 3+ messages in thread From: Ni, Ruiyu @ 2017-04-19 5:13 UTC (permalink / raw) To: Zeng, Star, Kinney, Michael D; +Cc: edk2-devel@lists.01.org Good idea😊 Mike, What's your opinion? Thanks/Ray > -----Original Message----- > From: Zeng, Star > Sent: Wednesday, April 19, 2017 10:54 AM > To: Ni, Ruiyu <ruiyu.ni@intel.com>; edk2-devel@lists.01.org > Cc: Zeng, Star <star.zeng@intel.com> > Subject: RE: [edk2] [PATCH] MdeModulePkg/TerminalDxe: Avoid always > append device path to *Dev > > Reviewed-by: Star Zeng <star.zeng@intel.com> > > BTW: May the MatchDevicePaths could be proposed to DevicePathLib? :) > > ---- MatchDevicePaths Matches (5 in 1 files) ---- ConsoleOption.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUi > Lib):MatchDevicePaths ( > ConsoleOption.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUi > Lib): if (MatchDevicePaths (OutDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUi > Lib): if (MatchDevicePaths (InpDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUi > Lib): if (MatchDevicePaths (ErrDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\BootMaintenanceManagerUi > Lib): NewConsoleContext->IsActive = MatchDevicePaths ( > ---- BmMatchDevicePaths Matches (4 in 4 files) ---- BmBoot.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib): if > (BmMatchDevicePaths (*CachedDevicePath, DevicePath)) { > BmConsole.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib): if > (!BmMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) { > BmMisc.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib):BmMa > tchDevicePaths ( InternalBm.h > (F:\GIT\edk2Git\edk2\MdeModulePkg\Library\UefiBootManagerLib):BmMa > tchDevicePaths ( > ---- BdsLibMatchDevicePaths Matches (11 in 8 files) ---- > BdsBoot.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib): > if (BdsLibMatchDevicePaths (CachedDevicePath, BlockIoDevicePath)) { > BdsBoot.c > (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModule > Pkg\Library\GenericBdsLib): if (BdsLibMatchDevicePaths > (CachedDevicePath, BlockIoDevicePath)) { > BdsConsole.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib): > if (!BdsLibMatchDevicePaths (NewDevicePath, CustomizedConDevicePath)) { > BdsConsole.c > (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModule > Pkg\Library\GenericBdsLib): if (!BdsLibMatchDevicePaths (NewDevicePath, > CustomizedConDevicePath)) { > BdsMisc.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Library\GenericBdsLib):B > dsLibMatchDevicePaths ( BdsMisc.c > (F:\GIT\edk2Git\edk2\Vlv2TbltDevicePkg\Override\IntelFrameworkModule > Pkg\Library\GenericBdsLib):BdsLibMatchDevicePaths ( > ConsoleOption.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootM > aint): if (BdsLibMatchDevicePaths (OutDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootM > aint): if (BdsLibMatchDevicePaths (InpDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootM > aint): if (BdsLibMatchDevicePaths (ErrDevicePath, NewDevicePath)) { > ConsoleOption.c > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Universal\BdsDxe\BootM > aint): NewConsoleContext->IsActive = BdsLibMatchDevicePaths ( > GenericBdsLib.h > (F:\GIT\edk2Git\edk2\IntelFrameworkModulePkg\Include\Library):BdsLibM > atchDevicePaths ( > ---- ConPlatformMatchDevicePaths Matches (4 in 2 files) ---- ConPlatform.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe) > :ConPlatformMatchDevicePaths ( > ConPlatform.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe): > Status = ConPlatformMatchDevicePaths ( > ConPlatform.c > (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe): > Status = ConPlatformMatchDevicePaths ( > ConPlatform.h > (F:\GIT\edk2Git\edk2\MdeModulePkg\Universal\Console\ConPlatformDxe) > :ConPlatformMatchDevicePaths ( > > > Thanks, > Star > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Ruiyu Ni > Sent: Wednesday, April 19, 2017 10:43 AM > To: edk2-devel@lists.01.org > Cc: Zeng, Star <star.zeng@intel.com> > Subject: [edk2] [PATCH] MdeModulePkg/TerminalDxe: Avoid always append > device path to *Dev > > When TerminalDxe Start() is called multiple times, the old logic > unconditionally appended the terminal device path candidates to *Dev > (ConInDev/ConOutDev/ErrOutDev), resulting the volatile storage is full. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> > Cc: Star Zeng <star.zeng@intel.com> > --- > .../Universal/Console/TerminalDxe/Terminal.c | 67 > +++++++++++++++++++--- > 1 file changed, 59 insertions(+), 8 deletions(-) > > diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c > b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c > index 5d55969..60de2d4 100644 > --- a/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c > +++ b/MdeModulePkg/Universal/Console/TerminalDxe/Terminal.c > @@ -994,6 +994,49 @@ TerminalDriverBindingStop ( } > > /** > + Compare a device path data structure to that of all the nodes of a > + second device path instance. > + > + @param Multi A pointer to a multi-instance device path data structure. > + @param Single A pointer to a single-instance device path data > structure. > + > + @retval TRUE If the Single is contained within Multi. > + @retval FALSE The Single is not match within Multi. > + > +**/ > +BOOLEAN > +MatchDevicePaths ( > + IN EFI_DEVICE_PATH_PROTOCOL *Multi, > + IN EFI_DEVICE_PATH_PROTOCOL *Single > + ) > +{ > + EFI_DEVICE_PATH_PROTOCOL *DevicePath; > + EFI_DEVICE_PATH_PROTOCOL *DevicePathInst; > + UINTN Size; > + > + DevicePath = Multi; > + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); // > + // Search for the match of 'Single' in 'Multi' > + // > + while (DevicePathInst != NULL) { > + // > + // If the single device path is found in multiple device paths, > + // return success > + // > + if (CompareMem (Single, DevicePathInst, Size) == 0) { > + FreePool (DevicePathInst); > + return TRUE; > + } > + > + FreePool (DevicePathInst); > + DevicePathInst = GetNextDevicePathInstance (&DevicePath, &Size); } > + > + return FALSE; > +} > + > +/** > Update terminal device path in Console Device Environment Variables. > > @param VariableName The Console Device Environment Variable. > @@ -1018,8 +1061,12 @@ TerminalUpdateConsoleDevVariable ( > // > // Get global variable and its size according to the name given. > // > - GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, NULL); > - if (Variable == NULL) { > + Status = GetEfiGlobalVariable2 (VariableName, (VOID**)&Variable, > + NULL); if (Status == EFI_NOT_FOUND) { > + Status = EFI_SUCCESS; > + Variable = NULL; > + } > + if (EFI_ERROR (Status)) { > return; > } > > @@ -1028,17 +1075,21 @@ TerminalUpdateConsoleDevVariable ( > // > for (TerminalType = 0; TerminalType < ARRAY_SIZE (mTerminalType); > TerminalType++) { > SetTerminalDevicePath (TerminalType, ParentDevicePath, > &TempDevicePath); > - NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); > - ASSERT (NewVariable != NULL); > - if (Variable != NULL) { > - FreePool (Variable); > - } > > if (TempDevicePath != NULL) { > + if (!MatchDevicePaths (Variable, TempDevicePath)) { > + NewVariable = AppendDevicePathInstance (Variable, TempDevicePath); > + if (NewVariable != NULL) { > + if (Variable != NULL) { > + FreePool (Variable); > + } > + Variable = NewVariable; > + } > + } > + > FreePool (TempDevicePath); > } > > - Variable = NewVariable; > } > > VariableSize = GetDevicePathSize (Variable); > -- > 2.9.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-04-19 5:13 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-04-19 2:42 [PATCH] MdeModulePkg/TerminalDxe: Avoid always append device path to *Dev Ruiyu Ni 2017-04-19 2:53 ` Zeng, Star 2017-04-19 5:13 ` Ni, Ruiyu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox