1 /** @file
2 Utility routines used by boot maintenance modules.
3 
4 Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution.  The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #include "BootMaintenanceManager.h"
16 
17 /**
18   Function deletes the variable specified by VarName and VarGuid.
19 
20   @param VarName           A Null-terminated Unicode string that is
21                            the name of the vendor's variable.
22 
23   @param VarGuid           A unique identifier for the vendor.
24 
25   @retval  EFI_SUCCESS           The variable was found and removed
26   @retval  EFI_UNSUPPORTED       The variable store was inaccessible
27   @retval  EFI_NOT_FOUND         The variable was not found
28 
29 **/
30 EFI_STATUS
EfiLibDeleteVariable(IN CHAR16 * VarName,IN EFI_GUID * VarGuid)31 EfiLibDeleteVariable (
32   IN CHAR16   *VarName,
33   IN EFI_GUID *VarGuid
34   )
35 {
36   return gRT->SetVariable (
37                 VarName,
38                 VarGuid,
39                 0,
40                 0,
41                 NULL
42                 );
43 }
44 
45 /**
46   Function is used to determine the number of device path instances
47   that exist in a device path.
48 
49 
50   @param DevicePath      A pointer to a device path data structure.
51 
52   @return This function counts and returns the number of device path instances
53           in DevicePath.
54 
55 **/
56 UINTN
EfiDevicePathInstanceCount(IN EFI_DEVICE_PATH_PROTOCOL * DevicePath)57 EfiDevicePathInstanceCount (
58   IN EFI_DEVICE_PATH_PROTOCOL      *DevicePath
59   )
60 {
61   UINTN Count;
62   UINTN Size;
63 
64   Count = 0;
65   while (GetNextDevicePathInstance (&DevicePath, &Size) != NULL) {
66     Count += 1;
67   }
68 
69   return Count;
70 }
71 
72 /**
73   Get a string from the Data Hub record based on
74   a device path.
75 
76   @param DevPath         The device Path.
77 
78   @return A string located from the Data Hub records based on
79           the device path.
80   @retval NULL  If failed to get the String from Data Hub.
81 
82 **/
83 UINT16 *
EfiLibStrFromDatahub(IN EFI_DEVICE_PATH_PROTOCOL * DevPath)84 EfiLibStrFromDatahub (
85   IN EFI_DEVICE_PATH_PROTOCOL                 *DevPath
86   )
87 {
88   return NULL;
89 }
90