/** @file The assistant function declaration for IpSecConfig application. Copyright (c) 2009 - 2010, 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 _HELPER_H_ #define _HELPER_H_ #define FORMAT_NUMBER 0x1 #define FORMAT_STRING 0x2 /** Helper function called to change input parameter in string format to number. @param[in] FlagStr The pointer to the flag string. @param[in] Maximum most value number. @param[in, out] ValuePtr The pointer to the input parameter in string format. @param[in] ByteCount The valid byte count @param[in] Map The pointer to the STR2INT table. @param[in] ParamPackage The pointer to the ParamPackage list. @param[in] FormatMask The bit mask. BIT 0 set indicates the value of flag might be number. BIT 1 set indicates the value of flag might be a string that needs to be looked up. @retval EFI_SUCCESS The operation completed successfully. @retval EFI_NOT_FOUND The input parameter can't be found. @retval EFI_INVALID_PARAMETER The input parameter is an invalid input. **/ EFI_STATUS GetNumber ( IN CHAR16 *FlagStr, IN UINT64 Maximum, IN OUT VOID *ValuePtr, IN UINTN ByteCount, IN STR2INT *Map, IN LIST_ENTRY *ParamPackage, IN UINT32 FormatMask ); /** Helper function called to convert a string containing an (Ipv4) Internet Protocol dotted address into a proper address for the EFI_IP_ADDRESS structure. @param[in] Ptr The pointer to the string containing an (Ipv4) Internet Protocol dotted address. @param[out] Ip The pointer to the Ip address structure to contain the result. @retval EFI_SUCCESS The operation completed successfully. @retval EFI_INVALID_PARAMETER Invalid parameter. **/ EFI_STATUS EfiInetAddr2 ( IN CHAR16 *Ptr, OUT EFI_IP_ADDRESS *Ip ); /** Helper function called to calculate the prefix length associated with the string containing an Ipv4 or Ipv6 Internet Protocol address. @param[in] Ptr The pointer to the string containing an Ipv4 or Ipv6 Internet Protocol address. @param[out] Addr The pointer to the EFI_IP_ADDRESS_INFO structure to contain the result. @retval EFI_SUCCESS The operation completed successfully. @retval EFI_INVALID_PARAMETER Invalid parameter. @retval Others Other mistake case. **/ EFI_STATUS EfiInetAddrRange ( IN CHAR16 *Ptr, OUT EFI_IP_ADDRESS_INFO *Addr ); /** Helper function called to calculate the port range associated with the string. @param[in] Ptr The pointer to the string containing a port and range. @param[out] Port The pointer to the Port to contain the result. @param[out] PortRange The pointer to the PortRange to contain the result. @retval EFI_SUCCESS The operation completed successfully. @retval EFI_INVALID_PARAMETER Invalid parameter. @retval Others Other mistake case. **/ EFI_STATUS EfiInetPortRange ( IN CHAR16 *Ptr, OUT UINT16 *Port, OUT UINT16 *PortRange ); /** Helper function called to transfer a string to an unsigned integer. @param[in] Str The pointer to the string. @param[out] Status The operation status. @return The integer value of a converted str. **/ UINT64 StrToUInteger ( IN CONST CHAR16 *Str, OUT EFI_STATUS *Status ); /** Helper function called to transfer a string to an unsigned integer according to the map table. @param[in] Str The pointer to the string. @param[in] Map The pointer to the map table. @return The integer value of converted str. If not found, then return -1. **/ UINT32 MapStringToInteger ( IN CONST CHAR16 *Str, IN STR2INT *Map ); /** Helper function called to transfer an unsigned integer to a string according to the map table. @param[in] Integer The pointer to the string. @param[in] Map The pointer to the map table. @return The converted str. If not found, then return NULL. **/ CHAR16 * MapIntegerToString ( IN UINT32 Integer, IN STR2INT *Map ); #endif