Copyright (c) 2017, Microsoft Corporation\r
\r
All rights reserved.\r
- Redistribution and use in source and binary forms, with or without\r
- modification, are permitted provided that the following conditions are met:\r
- 1. Redistributions of source code must retain the above copyright notice,\r
- this list of conditions and the following disclaimer.\r
- 2. Redistributions in binary form must reproduce the above copyright notice,\r
- this list of conditions and the following disclaimer in the documentation\r
- and/or other materials provided with the distribution.\r
-\r
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r
- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include <Base.h>\r
#include <Library/SafeIntLib.h>\r
-\r
+#include <Library/BaseLib.h>\r
\r
//\r
// Magnitude of MIN_INT64 as expressed by a UINT64 number.\r
//\r
-#define MIN_INT64_MAGNITUDE (((UINT64)(- (MIN_INT64 + 1))) + 1)\r
+#define MIN_INT64_MAGNITUDE (((UINT64)(- (MIN_INT64 + 1))) + 1)\r
\r
//\r
// Conversion functions\r
\r
if (Operand >= 0) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINTN)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINTN_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT8) && (Operand <= MAX_INT8)) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_INT8)) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT8)) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINTN)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINTN_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT8) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT16) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT8) && (Operand <= MAX_INT8)) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_INT8)) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT8)) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT16) && (Operand <= MAX_INT16)) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT16)) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT8) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT16) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT16) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT32) {\r
*Result = (INT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT8) && (Operand <= MAX_INT8)) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_INT8)) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT8)) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT16) && (Operand <= MAX_INT16)) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT16)) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINTN)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINTN_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT8) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT16) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT16) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT32) {\r
*Result = (INT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INTN) {\r
*Result = (INTN)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INTN_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT8) && (Operand <= MAX_INT8)) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_INT8)) {\r
*Result = (CHAR8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT8)) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT16) && (Operand <= MAX_INT16)) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT16)) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= MIN_INT32) && (Operand <= MAX_INT32)) {\r
*Result = (INT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Operand >= 0) && (Operand <= MAX_UINT32)) {\r
*Result = (UINT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand >= 0) {\r
*Result = (UINT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT8) {\r
*Result = (INT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = CHAR8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT8) {\r
*Result = (UINT8)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT16) {\r
*Result = (INT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT16) {\r
*Result = (UINT16)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT32) {\r
*Result = (INT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_UINT32) {\r
*Result = (UINT32)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INTN) {\r
*Result = (INTN)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INTN_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Operand <= MAX_INT64) {\r
*Result = (INT64)Operand;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = INT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (((UINT8)(Augend + Addend)) >= Augend) {\r
*Result = (UINT8)(Augend + Addend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (((UINT16)(Augend + Addend)) >= Augend) {\r
*Result = (UINT16)(Augend + Addend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Augend + Addend) >= Augend) {\r
*Result = (Augend + Addend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if ((Augend + Addend) >= Augend) {\r
*Result = (Augend + Addend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Minuend >= Subtrahend) {\r
*Result = (UINT8)(Minuend - Subtrahend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT8_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Minuend >= Subtrahend) {\r
*Result = (UINT16)(Minuend - Subtrahend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT16_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Minuend >= Subtrahend) {\r
*Result = (Minuend - Subtrahend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT32_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
\r
if (Minuend >= Subtrahend) {\r
*Result = (Minuend - Subtrahend);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
*Result = UINT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
}\r
\r
return Status;\r
{\r
UINT64 IntermediateResult;\r
\r
- IntermediateResult = ((UINT64) Multiplicand) *((UINT64) Multiplier);\r
+ IntermediateResult = ((UINT64)Multiplicand) *((UINT64)Multiplier);\r
\r
return SafeUint64ToUint32 (IntermediateResult, Result);\r
}\r
return RETURN_INVALID_PARAMETER;\r
}\r
\r
- ProductAD = 0;\r
- ProductBC = 0;\r
- ProductBD = 0;\r
+ ProductAD = 0;\r
+ ProductBC = 0;\r
+ ProductBD = 0;\r
UnsignedResult = 0;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
\r
//\r
// 64x64 into 128 is like 32.32 x 32.32.\r
// b * c must be less than 2^32 or there would be bits in the high 64-bits\r
// then there must be no overflow of the resulting values summed up.\r
//\r
- DwordA = (UINT32)(Multiplicand >> 32);\r
- DwordC = (UINT32)(Multiplier >> 32);\r
+ DwordA = (UINT32)RShiftU64 (Multiplicand, 32);\r
+ DwordC = (UINT32)RShiftU64 (Multiplier, 32);\r
\r
//\r
// common case -- if high dwords are both zero, no chance for overflow\r
DwordD = (UINT32)Multiplier;\r
\r
*Result = (((UINT64)DwordB) *(UINT64)DwordD);\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
} else {\r
//\r
// a * c must be 0 or there would be bits set in the high 64-bits\r
//\r
if ((DwordA == 0) ||\r
- (DwordC == 0)) {\r
+ (DwordC == 0))\r
+ {\r
DwordD = (UINT32)Multiplier;\r
\r
//\r
// a * d must be less than 2^32 or there would be bits set in the high 64-bits\r
//\r
- ProductAD = (((UINT64)DwordA) *(UINT64)DwordD);\r
+ ProductAD = MultU64x64 ((UINT64)DwordA, (UINT64)DwordD);\r
if ((ProductAD & 0xffffffff00000000) == 0) {\r
DwordB = (UINT32)Multiplicand;\r
\r
//\r
// b * c must be less than 2^32 or there would be bits set in the high 64-bits\r
//\r
- ProductBC = (((UINT64)DwordB) *(UINT64)DwordC);\r
+ ProductBC = MultU64x64 ((UINT64)DwordB, (UINT64)DwordC);\r
if ((ProductBC & 0xffffffff00000000) == 0) {\r
//\r
// now sum them all up checking for overflow.\r
// shifting is safe because we already checked for overflow above\r
//\r
- if (!RETURN_ERROR (SafeUint64Add (ProductBC << 32, ProductAD << 32, &UnsignedResult))) {\r
+ if (!RETURN_ERROR (SafeUint64Add (LShiftU64 (ProductBC, 32), LShiftU64 (ProductAD, 32), &UnsignedResult))) {\r
//\r
// b * d\r
//\r
- ProductBD = (((UINT64)DwordB) *(UINT64)DwordD);\r
+ ProductBD = MultU64x64 ((UINT64)DwordB, (UINT64)DwordD);\r
\r
if (!RETURN_ERROR (SafeUint64Add (UnsignedResult, ProductBD, &UnsignedResult))) {\r
*Result = UnsignedResult;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
}\r
}\r
}\r
if (RETURN_ERROR (Status)) {\r
*Result = UINT64_ERROR;\r
}\r
+\r
return Status;\r
}\r
\r
\r
Augend32 = (INT32)Augend;\r
Addend32 = (INT32)Addend;\r
- if (Augend32 < 0 || Augend32 > MAX_INT8) {\r
+ if ((Augend32 < 0) || (Augend32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
- if (Addend32 < 0 || Addend32 > MAX_INT8) {\r
+\r
+ if ((Addend32 < 0) || (Addend32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
// 0 >= (MIN_INT64 - Addend) > MIN_INT64\r
//\r
if (((Addend > 0) && (Augend > (MAX_INT64 - Addend))) ||\r
- ((Addend < 0) && (Augend < (MIN_INT64 - Addend)))) {\r
+ ((Addend < 0) && (Augend < (MIN_INT64 - Addend))))\r
+ {\r
*Result = INT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
} else {\r
*Result = Augend + Addend;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
}\r
\r
return Status;\r
\r
Minuend32 = (INT32)Minuend;\r
Subtrahend32 = (INT32)Subtrahend;\r
- if (Minuend32 < 0 || Minuend32 > MAX_INT8) {\r
+ if ((Minuend32 < 0) || (Minuend32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
- if (Subtrahend32 < 0 || Subtrahend32 > MAX_INT8) {\r
+\r
+ if ((Subtrahend32 < 0) || (Subtrahend32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
// -1 = (MAX_INT64 + MIN_INT64) <= (MAX_INT64 + Subtrahend) < MAX_INT64\r
//\r
if (((Subtrahend > 0) && (Minuend < (MIN_INT64 + Subtrahend))) ||\r
- ((Subtrahend < 0) && (Minuend > (MAX_INT64 + Subtrahend)))) {\r
+ ((Subtrahend < 0) && (Minuend > (MAX_INT64 + Subtrahend))))\r
+ {\r
*Result = INT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
} else {\r
*Result = Minuend - Subtrahend;\r
- Status = RETURN_SUCCESS;\r
+ Status = RETURN_SUCCESS;\r
}\r
\r
return Status;\r
\r
Multiplicand32 = (INT32)Multiplicand;\r
Multiplier32 = (INT32)Multiplier;\r
- if (Multiplicand32 < 0 || Multiplicand32 > MAX_INT8) {\r
+ if ((Multiplicand32 < 0) || (Multiplicand32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
- if (Multiplier32 < 0 || Multiplier32 > MAX_INT8) {\r
+\r
+ if ((Multiplier32 < 0) || (Multiplier32 > MAX_INT8)) {\r
*Result = CHAR8_ERROR;\r
return RETURN_BUFFER_TOO_SMALL;\r
}\r
OUT INT32 *Result\r
)\r
{\r
- return SafeInt64ToInt32 (((INT64)Multiplicand) *((INT64)Multiplier), Result);\r
+ return SafeInt64ToInt32 (MultS64x64 (Multiplicand, Multiplier), Result);\r
}\r
\r
/**\r
//\r
// Avoid negating the most negative number.\r
//\r
- UnsignedMultiplicand = ((UINT64)(- (Multiplicand + 1))) + 1;\r
+ UnsignedMultiplicand = ((UINT64)(-(Multiplicand + 1))) + 1;\r
} else {\r
UnsignedMultiplicand = (UINT64)Multiplicand;\r
}\r
//\r
// Avoid negating the most negative number.\r
//\r
- UnsignedMultiplier = ((UINT64)(- (Multiplier + 1))) + 1;\r
+ UnsignedMultiplier = ((UINT64)(-(Multiplier + 1))) + 1;\r
} else {\r
UnsignedMultiplier = (UINT64)Multiplier;\r
}\r
if ((Multiplicand < 0) != (Multiplier < 0)) {\r
if (UnsignedResult > MIN_INT64_MAGNITUDE) {\r
*Result = INT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
} else if (UnsignedResult == MIN_INT64_MAGNITUDE) {\r
*Result = MIN_INT64;\r
} else {\r
- *Result = - ((INT64)UnsignedResult);\r
+ *Result = -((INT64)UnsignedResult);\r
}\r
} else {\r
if (UnsignedResult > MAX_INT64) {\r
*Result = INT64_ERROR;\r
- Status = RETURN_BUFFER_TOO_SMALL;\r
+ Status = RETURN_BUFFER_TOO_SMALL;\r
} else {\r
*Result = (INT64)UnsignedResult;\r
}\r
} else {\r
*Result = INT64_ERROR;\r
}\r
+\r
return Status;\r
}\r
-\r