From 337661bb8c981400d3a0c93d0d49a65f2e4eed8c Mon Sep 17 00:00:00 2001 From: gdong1 Date: Mon, 1 Feb 2010 06:13:04 +0000 Subject: [PATCH] Add BdsLibUserIdentify API in GenericBdsLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9897 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Include/Library/GenericBdsLib.h | 16 ++++++++++ .../Library/GenericBdsLib/BdsMisc.c | 31 +++++++++++++++++++ .../Library/GenericBdsLib/GenericBdsLib.inf | 1 + 3 files changed, 48 insertions(+) diff --git a/IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h b/IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h index a9b89316bf..8a0311597a 100644 --- a/IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h +++ b/IntelFrameworkModulePkg/Include/Library/GenericBdsLib.h @@ -18,6 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #ifndef _GENERIC_BDS_LIB_H_ #define _GENERIC_BDS_LIB_H_ +#include extern EFI_HANDLE mBdsImageHandle; /// @@ -952,6 +953,21 @@ BdsLibSaveMemoryTypeInformation ( VOID ); +/** + Identify a user and, if authenticated, returns the current user profile handle. + + @param[out] User Point to user profile handle. + + @retval EFI_SUCCESS User is successfully identified, or user identification + is not supported. + @retval EFI_ACCESS_DENIED User is not successfully identified + +**/ +EFI_STATUS +EFIAPI +BdsLibUserIdentify ( + OUT EFI_USER_PROFILE_HANDLE *User + ); /** This function checks if a Fv file device path is valid, according to a file GUID. If it is invalid, diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c index 66b9d2bb2d..6636b73f74 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c @@ -1235,3 +1235,34 @@ BdsLibSaveMemoryTypeInformation ( } +/** + Identify a user and, if authenticated, returns the current user profile handle. + + @param[out] User Point to user profile handle. + + @retval EFI_SUCCESS User is successfully identified, or user identification + is not supported. + @retval EFI_ACCESS_DENIED User is not successfully identified + +**/ +EFI_STATUS +EFIAPI +BdsLibUserIdentify ( + OUT EFI_USER_PROFILE_HANDLE *User + ) +{ + EFI_STATUS Status; + EFI_USER_MANAGER_PROTOCOL *Manager; + + Status = gBS->LocateProtocol ( + &gEfiUserManagerProtocolGuid, + NULL, + (VOID **) &Manager + ); + if (EFI_ERROR (Status)) { + return EFI_SUCCESS; + } + + return Manager->Identify (Manager, User); +} + diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf index 3b81f80b76..dcb0295a43 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf @@ -113,6 +113,7 @@ gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES + gEfiUserManagerProtocolGuid # PROTOCOL CONSUMES [FeaturePcd] gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport -- 2.39.2