Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Pete Batard <pete@akeo.ie>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Jiewen.yao@intel.com
UINTN\r
EFIAPI\r
Xtoi (\r
UINTN\r
EFIAPI\r
Xtoi (\r
);\r
\r
UINT64\r
EFIAPI\r
LXtoi (\r
);\r
\r
UINT64\r
EFIAPI\r
LXtoi (\r
);\r
\r
UINTN\r
EFIAPI\r
Atoi (\r
);\r
\r
UINTN\r
EFIAPI\r
Atoi (\r
);\r
\r
UINTN\r
EFIAPI\r
AsciiXtoi (\r
);\r
\r
UINTN\r
EFIAPI\r
AsciiXtoi (\r
);\r
\r
UINTN\r
EFIAPI\r
AsciiAtoi (\r
);\r
\r
UINTN\r
EFIAPI\r
AsciiAtoi (\r
\r
Convert hex string to uint.\r
\r
\r
Convert hex string to uint.\r
\r
- @param str - The string\r
+ @param Str - The string\r
\r
**/\r
UINTN\r
EFIAPI\r
Xtoi (\r
\r
**/\r
UINTN\r
EFIAPI\r
Xtoi (\r
- UINTN u;\r
- CHAR16 c;\r
- UINTN m;\r
+ UINTN RetVal;\r
+ CHAR16 TempChar;\r
+ UINTN MaxVal;\r
- ASSERT (str != NULL);\r
+ ASSERT (Str != NULL);\r
+ MaxVal = (UINTN) -1 >> 4;\r
//\r
// skip preceeding white space\r
//\r
//\r
// skip preceeding white space\r
//\r
- while (*str && *str == ' ') {\r
- str += 1;\r
+ while (*Str && *Str == ' ') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding zeros\r
//\r
}\r
//\r
// skip preceeding zeros\r
//\r
- while (*str && *str == '0') {\r
- str += 1;\r
+ while (*Str && *Str == '0') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding white space\r
//\r
}\r
//\r
// skip preceeding white space\r
//\r
- if (*str && (*str == 'x' || *str == 'X')) {\r
- str += 1;\r
+ if (*Str && (*Str == 'x' || *Str == 'X')) {\r
+ Str += 1;\r
}\r
//\r
// convert hex digits\r
//\r
}\r
//\r
// convert hex digits\r
//\r
- u = 0;\r
- c = *(str++);\r
- while (c) {\r
- if (c >= 'a' && c <= 'f') {\r
- c -= 'a' - 'A';\r
+ RetVal = 0;\r
+ TempChar = *(Str++);\r
+ while (TempChar) {\r
+ if (TempChar >= 'a' && TempChar <= 'f') {\r
+ TempChar -= 'a' - 'A';\r
- if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) {\r
- if (u > m) {\r
+ if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {\r
+ if (RetVal > MaxVal) {\r
return (UINTN) -1;\r
}\r
\r
return (UINTN) -1;\r
}\r
\r
- u = (u << 4) | (c - (c >= 'A' ? 'A' - 10 : '0'));\r
+ RetVal = (RetVal << 4) | (TempChar - (TempChar >= 'A' ? 'A' - 10 : '0'));\r
} else {\r
break;\r
}\r
\r
} else {\r
break;\r
}\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
- @param str - The string\r
+ @param Str - The string\r
\r
**/\r
\r
UINT64\r
EFIAPI\r
LXtoi (\r
\r
**/\r
\r
UINT64\r
EFIAPI\r
LXtoi (\r
- UINT64 u;\r
- CHAR16 c;\r
- UINT64 m;\r
+ UINT64 RetVal;\r
+ CHAR16 TempChar;\r
+ UINT64 MaxVal;\r
- ASSERT (str != NULL);\r
+ ASSERT (Str != NULL);\r
- m = RShiftU64 ((UINT64) -1, 4);\r
+ MaxVal = RShiftU64 ((UINT64) -1, 4);\r
//\r
// skip preceeding white space\r
//\r
//\r
// skip preceeding white space\r
//\r
- while (*str && *str == ' ') {\r
- str += 1;\r
+ while (*Str && *Str == ' ') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding zeros\r
//\r
}\r
//\r
// skip preceeding zeros\r
//\r
- while (*str && *str == '0') {\r
- str += 1;\r
+ while (*Str && *Str == '0') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding white space\r
//\r
}\r
//\r
// skip preceeding white space\r
//\r
- if (*str && (*str == 'x' || *str == 'X')) {\r
- str += 1;\r
+ if (*Str && (*Str == 'x' || *Str == 'X')) {\r
+ Str += 1;\r
}\r
//\r
// convert hex digits\r
//\r
}\r
//\r
// convert hex digits\r
//\r
- u = 0;\r
- c = *(str++);\r
- while (c) {\r
- if (c >= 'a' && c <= 'f') {\r
- c -= 'a' - 'A';\r
+ RetVal = 0;\r
+ TempChar = *(Str++);\r
+ while (TempChar) {\r
+ if (TempChar >= 'a' && TempChar <= 'f') {\r
+ TempChar -= 'a' - 'A';\r
- if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) {\r
- if (u > m) {\r
+ if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {\r
+ if (RetVal > MaxVal) {\r
return (UINT64) -1;\r
}\r
\r
return (UINT64) -1;\r
}\r
\r
- u = LShiftU64 (u, 4);\r
- u = u + (c - (c >= 'A' ? 'A' - 10 : '0'));\r
+ RetVal = LShiftU64 (RetVal, 4);\r
+ RetVal = RetVal + (TempChar - (TempChar >= 'A' ? 'A' - 10 : '0'));\r
} else {\r
break;\r
}\r
\r
} else {\r
break;\r
}\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
- @param str - The string\r
+ @param Str - The string\r
\r
**/\r
UINTN\r
EFIAPI\r
Atoi (\r
\r
**/\r
UINTN\r
EFIAPI\r
Atoi (\r
- UINTN u;\r
- CHAR16 c;\r
- UINTN m;\r
- UINTN n;\r
+ UINTN RetVal;\r
+ CHAR16 TempChar;\r
+ UINTN MaxVal;\r
+ UINTN ResteVal;\r
- ASSERT (str != NULL);\r
+ ASSERT (Str != NULL);\r
- m = (UINTN) -1 / 10;\r
- n = (UINTN) -1 % 10;\r
+ MaxVal = (UINTN) -1 / 10;\r
+ ResteVal = (UINTN) -1 % 10;\r
//\r
// skip preceeding white space\r
//\r
//\r
// skip preceeding white space\r
//\r
- while (*str && *str == ' ') {\r
- str += 1;\r
+ while (*Str && *Str == ' ') {\r
+ Str += 1;\r
}\r
//\r
// convert digits\r
//\r
}\r
//\r
// convert digits\r
//\r
- u = 0;\r
- c = *(str++);\r
- while (c) {\r
- if (c >= '0' && c <= '9') {\r
- if (u > m || (u == m && c - '0' > (INTN) n)) {\r
+ RetVal = 0;\r
+ TempChar = *(Str++);\r
+ while (TempChar) {\r
+ if (TempChar >= '0' && TempChar <= '9') {\r
+ if (RetVal > MaxVal || (RetVal == MaxVal && TempChar - '0' > (INTN) ResteVal)) {\r
return (UINTN) -1;\r
}\r
\r
return (UINTN) -1;\r
}\r
\r
- u = (u * 10) + c - '0';\r
+ RetVal = (RetVal * 10) + TempChar - '0';\r
} else {\r
break;\r
}\r
\r
} else {\r
break;\r
}\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
- @param str - The string\r
+ @param Str - The string\r
\r
**/\r
UINTN\r
EFIAPI\r
AsciiXtoi (\r
\r
**/\r
UINTN\r
EFIAPI\r
AsciiXtoi (\r
- UINTN u;\r
- CHAR8 c;\r
- UINTN m;\r
+ UINTN RetVal;\r
+ CHAR8 TempChar;\r
+ UINTN MaxVal;\r
- ASSERT (str != NULL);\r
+ ASSERT (Str != NULL);\r
+ MaxVal = (UINTN) -1 >> 4;\r
//\r
// skip preceeding white space\r
//\r
//\r
// skip preceeding white space\r
//\r
- while (*str && *str == ' ') {\r
- str += 1;\r
+ while (*Str && *Str == ' ') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding zeros\r
//\r
}\r
//\r
// skip preceeding zeros\r
//\r
- while (*str && *str == '0') {\r
- str += 1;\r
+ while (*Str && *Str == '0') {\r
+ Str += 1;\r
}\r
//\r
// skip preceeding white space\r
//\r
}\r
//\r
// skip preceeding white space\r
//\r
- if (*str && (*str == 'x' || *str == 'X')) {\r
- str += 1;\r
+ if (*Str && (*Str == 'x' || *Str == 'X')) {\r
+ Str += 1;\r
}\r
//\r
// convert hex digits\r
//\r
}\r
//\r
// convert hex digits\r
//\r
- u = 0;\r
- c = *(str++);\r
- while (c) {\r
- if (c >= 'a' && c <= 'f') {\r
- c -= 'a' - 'A';\r
+ RetVal = 0;\r
+ TempChar = *(Str++);\r
+ while (TempChar) {\r
+ if (TempChar >= 'a' && TempChar <= 'f') {\r
+ TempChar -= 'a' - 'A';\r
- if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) {\r
- if (u > m) {\r
+ if ((TempChar >= '0' && TempChar <= '9') || (TempChar >= 'A' && TempChar <= 'F')) {\r
+ if (RetVal > MaxVal) {\r
return (UINTN) -1;\r
}\r
\r
return (UINTN) -1;\r
}\r
\r
- u = (u << 4) | (c - (c >= 'A' ? 'A' - 10 : '0'));\r
+ RetVal = (RetVal << 4) | (TempChar - (TempChar >= 'A' ? 'A' - 10 : '0'));\r
} else {\r
break;\r
}\r
\r
} else {\r
break;\r
}\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
}\r
\r
/**\r
\r
Convert hex string to uint.\r
\r
- @param str - The string\r
+ @param Str - The string\r
\r
**/\r
UINTN\r
EFIAPI\r
AsciiAtoi (\r
\r
**/\r
UINTN\r
EFIAPI\r
AsciiAtoi (\r
- UINTN u;\r
- CHAR8 c;\r
- UINTN m;\r
- UINTN n;\r
+ UINTN RetVal;\r
+ CHAR8 TempChar;\r
+ UINTN MaxVal;\r
+ UINTN ResteVal;\r
- ASSERT (str != NULL);\r
+ ASSERT (Str != NULL);\r
- m = (UINTN) -1 / 10;\r
- n = (UINTN) -1 % 10;\r
+ MaxVal = (UINTN) -1 / 10;\r
+ ResteVal = (UINTN) -1 % 10;\r
//\r
// skip preceeding white space\r
//\r
//\r
// skip preceeding white space\r
//\r
- while (*str && *str == ' ') {\r
- str += 1;\r
+ while (*Str && *Str == ' ') {\r
+ Str += 1;\r
}\r
//\r
// convert digits\r
//\r
}\r
//\r
// convert digits\r
//\r
- u = 0;\r
- c = *(str++);\r
- while (c) {\r
- if (c >= '0' && c <= '9') {\r
- if (u > m || (u == m && c - '0' > (INTN) n)) {\r
+ RetVal = 0;\r
+ TempChar = *(Str++);\r
+ while (TempChar) {\r
+ if (TempChar >= '0' && TempChar <= '9') {\r
+ if (RetVal > MaxVal || (RetVal == MaxVal && TempChar - '0' > (INTN) ResteVal)) {\r
return (UINTN) -1;\r
}\r
\r
return (UINTN) -1;\r
}\r
\r
- u = (u * 10) + c - '0';\r
+ RetVal = (RetVal * 10) + TempChar - '0';\r
} else {\r
break;\r
}\r
\r
} else {\r
break;\r
}\r
\r