MdeModulePkg: Add BootManagerMenuApp.

BootManagerMenuApp only provides a very simple UI showing all the boot options
recorded by "BootOrder" and user can select any of them to boot.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17329 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ruiyu Ni 2015-05-06 04:49:30 +00:00 committed by niruiyu
parent f4cd24da28
commit a382952f82
5 changed files with 1162 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,60 @@
/** @file
FrontPage routines to handle the callbacks and browser calls
Copyright (c) 2004 - 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
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _BOOT_MANAGER_MENU_H_
#define _BOOT_MANAGER_MENU_H_
#include <Uefi.h>
#include <Guid/MdeModuleHii.h>
#include <Library/UefiBootManagerLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h>
#include <Library/HiiLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/DebugLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DevicePathLib.h>
#include <Protocol/LoadedImage.h>
#include <Protocol/BootLogo.h>
#define TITLE_TOKEN_COUNT 1
#define HELP_TOKEN_COUNT 3
typedef struct _BOOT_MENU_SCREEN {
UINTN StartCol;
UINTN StartRow;
UINTN Width;
UINTN Height;
} BOOT_MENU_SCREEN;
typedef struct _BOOT_MENU_SCROLL_BAR_CONTROL {
BOOLEAN HasScrollBar;
UINTN ItemCountPerScreen;
UINTN FirstItem;
UINTN LastItem;
} BOOT_MENU_SCROLL_BAR_CONTROL;
typedef struct _BOOT_MENU_POPUP_DATA {
EFI_STRING_ID TitleToken[TITLE_TOKEN_COUNT]; // Title string ID
UINTN ItemCount; // Selectable item count
EFI_STRING_ID *PtrTokens; // All of selectable items string ID
EFI_STRING_ID HelpToken[HELP_TOKEN_COUNT]; // All of help string ID
UINTN SelectItem; // Current select item
BOOT_MENU_SCREEN MenuScreen; // Boot menu screen information
BOOT_MENU_SCROLL_BAR_CONTROL ScrollBarControl; // Boot menu scroll bar inoformation
} BOOT_MENU_POPUP_DATA;
#endif

View File

@ -0,0 +1,60 @@
## @file
# The application to show the Boot Manager Menu.
#
# Copyright (c) 2011 - 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
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = BootManagerMenuApp
FILE_GUID = EEC25BDC-67F2-4D95-B1D5-F81B2039D11D
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 1.0
ENTRY_POINT = BootManagerMenuEntry
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
#
[Sources]
BootManagerMenu.c
BootManagerMenu.h
BootManagerMenuStrings.uni
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
[LibraryClasses]
HiiLib
DebugLib
UefiLib
MemoryAllocationLib
UefiBootServicesTableLib
UefiApplicationEntryPoint
UefiBootManagerLib
[Guids]
[Protocols]
gEfiBootLogoProtocolGuid ## CONSUMES
[Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow ## PRODUCES
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn ## PRODUCES
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## PRODUCES
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution ## PRODUCES
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution ## SOMETIMES_CONSUMES
gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution ## SOMETIMES_CONSUMES

View File

@ -274,6 +274,7 @@
MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
MdeModulePkg/Universal/CapsulePei/CapsulePei.inf
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf