1 /** @file 2 The assistant function declaration for IpSecConfig application. 3 4 Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> 5 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php. 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _HELPER_H_ 17 #define _HELPER_H_ 18 19 #define FORMAT_NUMBER 0x1 20 #define FORMAT_STRING 0x2 21 22 /** 23 Helper function called to change input parameter in string format to number. 24 25 @param[in] FlagStr The pointer to the flag string. 26 @param[in] Maximum most value number. 27 @param[in, out] ValuePtr The pointer to the input parameter in string format. 28 @param[in] ByteCount The valid byte count 29 @param[in] Map The pointer to the STR2INT table. 30 @param[in] ParamPackage The pointer to the ParamPackage list. 31 @param[in] FormatMask The bit mask. 32 BIT 0 set indicates the value of flag might be number. 33 BIT 1 set indicates the value of flag might be a string that needs to be looked up. 34 35 @retval EFI_SUCCESS The operation completed successfully. 36 @retval EFI_NOT_FOUND The input parameter can't be found. 37 @retval EFI_INVALID_PARAMETER The input parameter is an invalid input. 38 **/ 39 EFI_STATUS 40 GetNumber ( 41 IN CHAR16 *FlagStr, 42 IN UINT64 Maximum, 43 IN OUT VOID *ValuePtr, 44 IN UINTN ByteCount, 45 IN STR2INT *Map, 46 IN LIST_ENTRY *ParamPackage, 47 IN UINT32 FormatMask 48 ); 49 50 /** 51 Helper function called to convert a string containing an (Ipv4) Internet Protocol dotted address 52 into a proper address for the EFI_IP_ADDRESS structure. 53 54 @param[in] Ptr The pointer to the string containing an (Ipv4) Internet Protocol dotted address. 55 @param[out] Ip The pointer to the Ip address structure to contain the result. 56 57 @retval EFI_SUCCESS The operation completed successfully. 58 @retval EFI_INVALID_PARAMETER Invalid parameter. 59 **/ 60 EFI_STATUS 61 EfiInetAddr2 ( 62 IN CHAR16 *Ptr, 63 OUT EFI_IP_ADDRESS *Ip 64 ); 65 66 /** 67 Helper function called to calculate the prefix length associated with the string 68 containing an Ipv4 or Ipv6 Internet Protocol address. 69 70 @param[in] Ptr The pointer to the string containing an Ipv4 or Ipv6 Internet Protocol address. 71 @param[out] Addr The pointer to the EFI_IP_ADDRESS_INFO structure to contain the result. 72 73 @retval EFI_SUCCESS The operation completed successfully. 74 @retval EFI_INVALID_PARAMETER Invalid parameter. 75 @retval Others Other mistake case. 76 **/ 77 EFI_STATUS 78 EfiInetAddrRange ( 79 IN CHAR16 *Ptr, 80 OUT EFI_IP_ADDRESS_INFO *Addr 81 ); 82 83 /** 84 Helper function called to calculate the port range associated with the string. 85 86 @param[in] Ptr The pointer to the string containing a port and range. 87 @param[out] Port The pointer to the Port to contain the result. 88 @param[out] PortRange The pointer to the PortRange to contain the result. 89 90 @retval EFI_SUCCESS The operation completed successfully. 91 @retval EFI_INVALID_PARAMETER Invalid parameter. 92 @retval Others Other mistake case. 93 **/ 94 EFI_STATUS 95 EfiInetPortRange ( 96 IN CHAR16 *Ptr, 97 OUT UINT16 *Port, 98 OUT UINT16 *PortRange 99 ); 100 101 /** 102 Helper function called to transfer a string to an unsigned integer. 103 104 @param[in] Str The pointer to the string. 105 @param[out] Status The operation status. 106 107 @return The integer value of a converted str. 108 **/ 109 UINT64 110 StrToUInteger ( 111 IN CONST CHAR16 *Str, 112 OUT EFI_STATUS *Status 113 ); 114 115 /** 116 Helper function called to transfer a string to an unsigned integer according to the map table. 117 118 @param[in] Str The pointer to the string. 119 @param[in] Map The pointer to the map table. 120 121 @return The integer value of converted str. If not found, then return -1. 122 **/ 123 UINT32 124 MapStringToInteger ( 125 IN CONST CHAR16 *Str, 126 IN STR2INT *Map 127 ); 128 129 /** 130 Helper function called to transfer an unsigned integer to a string according to the map table. 131 132 @param[in] Integer The pointer to the string. 133 @param[in] Map The pointer to the map table. 134 135 @return The converted str. If not found, then return NULL. 136 **/ 137 CHAR16 * 138 MapIntegerToString ( 139 IN UINT32 Integer, 140 IN STR2INT *Map 141 ); 142 143 #endif 144