Skip to content

Commit

Permalink
MdeModulePkg: Use PcdSet##S to replace PcdSet##
Browse files Browse the repository at this point in the history
PcdSet## has no error status returned, then the caller has no idea about whether the set operation is successful or not.
PcdSet##S were added to return error status and PcdSet## APIs were put in ifndef DISABLE_NEW_DEPRECATED_INTERFACES condition.
To adopt PcdSet##S and further code development with DISABLE_NEW_DEPRECATED_INTERFACES defined, we need to Replace PcdSet## usage with PcdSet##S.

Normally, DynamicDefault PCD set is expected to be success, but DynamicHii PCD set failure is a legal case.
So for DynamicDefault, we add assert when set failure. For DynamicHii, we add logic to handle it.

Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18603 6f19259b-4bc3-4df7-8a09-765794883524
  • Loading branch information
ydong10 authored and ydong10 committed Oct 15, 2015
1 parent 1e69581 commit 377680a
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 19 deletions.
19 changes: 12 additions & 7 deletions MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.c
Original file line number Diff line number Diff line change
Expand Up @@ -775,8 +775,10 @@ BdsSetConsoleMode (
//
// Update text mode PCD.
//
PcdSet32 (PcdConOutColumn, mSetupTextModeColumn);
PcdSet32 (PcdConOutRow, mSetupTextModeRow);
Status = PcdSet32S (PcdConOutColumn, mSetupTextModeColumn);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutRow, mSetupTextModeRow);
ASSERT_EFI_ERROR (Status);
FreePool (Info);
return EFI_SUCCESS;
}
Expand Down Expand Up @@ -817,11 +819,14 @@ BdsSetConsoleMode (
// Set PCD to Inform GraphicsConsole to change video resolution.
// Set PCD to Inform Consplitter to change text mode.
//
PcdSet32 (PcdVideoHorizontalResolution, NewHorizontalResolution);
PcdSet32 (PcdVideoVerticalResolution, NewVerticalResolution);
PcdSet32 (PcdConOutColumn, NewColumns);
PcdSet32 (PcdConOutRow, NewRows);

Status = PcdSet32S (PcdVideoHorizontalResolution, NewHorizontalResolution);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdVideoVerticalResolution, NewVerticalResolution);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutColumn, NewColumns);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutRow, NewRows);
ASSERT_EFI_ERROR (Status);

//
// Video mode is changed, so restart graphics console driver and higher level driver.
Expand Down
8 changes: 5 additions & 3 deletions MdeModulePkg/Application/UiApp/BootMaint/Variable.c
Original file line number Diff line number Diff line change
Expand Up @@ -1064,9 +1064,11 @@ Var_UpdateConMode (

Status = gST->ConOut->QueryMode (gST->ConOut, Mode, &(ModeInfo.Column), &(ModeInfo.Row));
if (!EFI_ERROR(Status)) {
PcdSet32 (PcdSetupConOutColumn, (UINT32) ModeInfo.Column);
PcdSet32 (PcdSetupConOutRow, (UINT32) ModeInfo.Row);
Status = PcdSet32S (PcdSetupConOutColumn, (UINT32) ModeInfo.Column);
if (!EFI_ERROR (Status)) {
Status = PcdSet32S (PcdSetupConOutRow, (UINT32) ModeInfo.Row);
}
}

return EFI_SUCCESS;
return Status;
}
18 changes: 12 additions & 6 deletions MdeModulePkg/Application/UiApp/FrontPage.c
Original file line number Diff line number Diff line change
Expand Up @@ -989,8 +989,10 @@ BdsSetConsoleMode (
//
// Update text mode PCD.
//
PcdSet32 (PcdConOutColumn, mSetupTextModeColumn);
PcdSet32 (PcdConOutRow, mSetupTextModeRow);
Status = PcdSet32S (PcdConOutColumn, mSetupTextModeColumn);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutRow, mSetupTextModeRow);
ASSERT_EFI_ERROR (Status);
FreePool (Info);
return EFI_SUCCESS;
}
Expand Down Expand Up @@ -1031,10 +1033,14 @@ BdsSetConsoleMode (
// Set PCD to Inform GraphicsConsole to change video resolution.
// Set PCD to Inform Consplitter to change text mode.
//
PcdSet32 (PcdVideoHorizontalResolution, NewHorizontalResolution);
PcdSet32 (PcdVideoVerticalResolution, NewVerticalResolution);
PcdSet32 (PcdConOutColumn, NewColumns);
PcdSet32 (PcdConOutRow, NewRows);
Status = PcdSet32S (PcdVideoHorizontalResolution, NewHorizontalResolution);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdVideoVerticalResolution, NewVerticalResolution);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutColumn, NewColumns);
ASSERT_EFI_ERROR (Status);
Status = PcdSet32S (PcdConOutRow, NewRows);
ASSERT_EFI_ERROR (Status);


//
Expand Down
8 changes: 5 additions & 3 deletions MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
never removed. Such design ensures sytem function well during none console
device situation.
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
Expand Down Expand Up @@ -2946,8 +2946,10 @@ ConsplitterSetConsoleOutMode (
Status = TextOut->SetMode (TextOut, BaseMode);
ASSERT(!EFI_ERROR(Status));

PcdSet32 (PcdConOutColumn, 80);
PcdSet32 (PcdConOutRow, 25);
Status = PcdSet32S (PcdConOutColumn, 80);
ASSERT(!EFI_ERROR(Status));
Status = PcdSet32S (PcdConOutRow, 25);
ASSERT(!EFI_ERROR(Status));
}

return ;
Expand Down

0 comments on commit 377680a

Please sign in to comment.