TianoCore EDK2 master
Loading...
Searching...
No Matches
SafeIntLib.c File Reference
#include <Base.h>
#include <Library/SafeIntLib.h>
#include <Library/BaseLib.h>

Go to the source code of this file.

Macros

#define MIN_INT64_MAGNITUDE   (((UINT64)(- (MIN_INT64 + 1))) + 1)
 

Functions

RETURN_STATUS EFIAPI SafeInt8ToUint8 (IN INT8 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt8ToChar8 (IN INT8 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt8ToUint16 (IN INT8 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt8ToUint32 (IN INT8 Operand, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt8ToUintn (IN INT8 Operand, OUT UINTN *Result)
 
RETURN_STATUS EFIAPI SafeInt8ToUint64 (IN INT8 Operand, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint8ToInt8 (IN UINT8 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint8ToChar8 (IN UINT8 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToInt8 (IN INT16 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToChar8 (IN INT16 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToUint8 (IN INT16 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToUint16 (IN INT16 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToUint32 (IN INT16 Operand, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToUintn (IN INT16 Operand, OUT UINTN *Result)
 
RETURN_STATUS EFIAPI SafeInt16ToUint64 (IN INT16 Operand, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint16ToInt8 (IN UINT16 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16ToChar8 (IN UINT16 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16ToUint8 (IN UINT16 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16ToInt16 (IN UINT16 Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToInt8 (IN INT32 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToChar8 (IN INT32 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToUint8 (IN INT32 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToInt16 (IN INT32 Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToUint16 (IN INT32 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToUint32 (IN INT32 Operand, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt32ToUint64 (IN INT32 Operand, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToInt8 (IN UINT32 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToChar8 (IN UINT32 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToUint8 (IN UINT32 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToInt16 (IN UINT32 Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToUint16 (IN UINT32 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint32ToInt32 (IN UINT32 Operand, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToInt8 (IN INTN Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToChar8 (IN INTN Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToUint8 (IN INTN Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToInt16 (IN INTN Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToUint16 (IN INTN Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeIntnToUintn (IN INTN Operand, OUT UINTN *Result)
 
RETURN_STATUS EFIAPI SafeIntnToUint64 (IN INTN Operand, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToInt8 (IN UINTN Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToChar8 (IN UINTN Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToUint8 (IN UINTN Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToInt16 (IN UINTN Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToUint16 (IN UINTN Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToInt32 (IN UINTN Operand, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeUintnToIntn (IN UINTN Operand, OUT INTN *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToInt8 (IN INT64 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToChar8 (IN INT64 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToUint8 (IN INT64 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToInt16 (IN INT64 Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToUint16 (IN INT64 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToInt32 (IN INT64 Operand, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToUint32 (IN INT64 Operand, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt64ToUint64 (IN INT64 Operand, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToInt8 (IN UINT64 Operand, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToChar8 (IN UINT64 Operand, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToUint8 (IN UINT64 Operand, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToInt16 (IN UINT64 Operand, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToUint16 (IN UINT64 Operand, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToInt32 (IN UINT64 Operand, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToUint32 (IN UINT64 Operand, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToIntn (IN UINT64 Operand, OUT INTN *Result)
 
RETURN_STATUS EFIAPI SafeUint64ToInt64 (IN UINT64 Operand, OUT INT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint8Add (IN UINT8 Augend, IN UINT8 Addend, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16Add (IN UINT16 Augend, IN UINT16 Addend, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint32Add (IN UINT32 Augend, IN UINT32 Addend, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeUint64Add (IN UINT64 Augend, IN UINT64 Addend, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint8Sub (IN UINT8 Minuend, IN UINT8 Subtrahend, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16Sub (IN UINT16 Minuend, IN UINT16 Subtrahend, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint32Sub (IN UINT32 Minuend, IN UINT32 Subtrahend, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeUint64Sub (IN UINT64 Minuend, IN UINT64 Subtrahend, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeUint8Mult (IN UINT8 Multiplicand, IN UINT8 Multiplier, OUT UINT8 *Result)
 
RETURN_STATUS EFIAPI SafeUint16Mult (IN UINT16 Multiplicand, IN UINT16 Multiplier, OUT UINT16 *Result)
 
RETURN_STATUS EFIAPI SafeUint32Mult (IN UINT32 Multiplicand, IN UINT32 Multiplier, OUT UINT32 *Result)
 
RETURN_STATUS EFIAPI SafeUint64Mult (IN UINT64 Multiplicand, IN UINT64 Multiplier, OUT UINT64 *Result)
 
RETURN_STATUS EFIAPI SafeInt8Add (IN INT8 Augend, IN INT8 Addend, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeChar8Add (IN CHAR8 Augend, IN CHAR8 Addend, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16Add (IN INT16 Augend, IN INT16 Addend, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32Add (IN INT32 Augend, IN INT32 Addend, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt64Add (IN INT64 Augend, IN INT64 Addend, OUT INT64 *Result)
 
RETURN_STATUS EFIAPI SafeInt8Sub (IN INT8 Minuend, IN INT8 Subtrahend, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeChar8Sub (IN CHAR8 Minuend, IN CHAR8 Subtrahend, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16Sub (IN INT16 Minuend, IN INT16 Subtrahend, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32Sub (IN INT32 Minuend, IN INT32 Subtrahend, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt64Sub (IN INT64 Minuend, IN INT64 Subtrahend, OUT INT64 *Result)
 
RETURN_STATUS EFIAPI SafeInt8Mult (IN INT8 Multiplicand, IN INT8 Multiplier, OUT INT8 *Result)
 
RETURN_STATUS EFIAPI SafeChar8Mult (IN CHAR8 Multiplicand, IN CHAR8 Multiplier, OUT CHAR8 *Result)
 
RETURN_STATUS EFIAPI SafeInt16Mult (IN INT16 Multiplicand, IN INT16 Multiplier, OUT INT16 *Result)
 
RETURN_STATUS EFIAPI SafeInt32Mult (IN INT32 Multiplicand, IN INT32 Multiplier, OUT INT32 *Result)
 
RETURN_STATUS EFIAPI SafeInt64Mult (IN INT64 Multiplicand, IN INT64 Multiplier, OUT INT64 *Result)
 

Detailed Description

This library provides helper functions to prevent integer overflow during type conversion, addition, subtraction, and multiplication.

Copyright (c) 2017, Microsoft Corporation

All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file SafeIntLib.c.

Macro Definition Documentation

◆ MIN_INT64_MAGNITUDE

#define MIN_INT64_MAGNITUDE   (((UINT64)(- (MIN_INT64 + 1))) + 1)

Definition at line 19 of file SafeIntLib.c.

Function Documentation

◆ SafeChar8Add()

RETURN_STATUS EFIAPI SafeChar8Add ( IN CHAR8  Augend,
IN CHAR8  Addend,
OUT CHAR8 *  Result 
)

CHAR8 Addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3498 of file SafeIntLib.c.

◆ SafeChar8Mult()

RETURN_STATUS EFIAPI SafeChar8Mult ( IN CHAR8  Multiplicand,
IN CHAR8  Multiplier,
OUT CHAR8 *  Result 
)

CHAR8 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3979 of file SafeIntLib.c.

◆ SafeChar8Sub()

RETURN_STATUS EFIAPI SafeChar8Sub ( IN CHAR8  Minuend,
IN CHAR8  Subtrahend,
OUT CHAR8 *  Result 
)

CHAR8 Subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3742 of file SafeIntLib.c.

◆ SafeInt16Add()

RETURN_STATUS EFIAPI SafeInt16Add ( IN INT16  Augend,
IN INT16  Addend,
OUT INT16 *  Result 
)

INT16 Addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3549 of file SafeIntLib.c.

◆ SafeInt16Mult()

RETURN_STATUS EFIAPI SafeInt16Mult ( IN INT16  Multiplicand,
IN INT16  Multiplier,
OUT INT16 *  Result 
)

INT16 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 4030 of file SafeIntLib.c.

◆ SafeInt16Sub()

RETURN_STATUS EFIAPI SafeInt16Sub ( IN INT16  Minuend,
IN INT16  Subtrahend,
OUT INT16 *  Result 
)

INT16 Subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3793 of file SafeIntLib.c.

◆ SafeInt16ToChar8()

RETURN_STATUS EFIAPI SafeInt16ToChar8 ( IN INT16  Operand,
OUT CHAR8 *  Result 
)

INT16 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 454 of file SafeIntLib.c.

◆ SafeInt16ToInt8()

RETURN_STATUS EFIAPI SafeInt16ToInt8 ( IN INT16  Operand,
OUT INT8 *  Result 
)

INT16 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 410 of file SafeIntLib.c.

◆ SafeInt16ToUint16()

RETURN_STATUS EFIAPI SafeInt16ToUint16 ( IN INT16  Operand,
OUT UINT16 *  Result 
)

INT16 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 542 of file SafeIntLib.c.

◆ SafeInt16ToUint32()

RETURN_STATUS EFIAPI SafeInt16ToUint32 ( IN INT16  Operand,
OUT UINT32 *  Result 
)

INT16 -> UINT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 586 of file SafeIntLib.c.

◆ SafeInt16ToUint64()

RETURN_STATUS EFIAPI SafeInt16ToUint64 ( IN INT16  Operand,
OUT UINT64 *  Result 
)

INT16 -> UINT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 674 of file SafeIntLib.c.

◆ SafeInt16ToUint8()

RETURN_STATUS EFIAPI SafeInt16ToUint8 ( IN INT16  Operand,
OUT UINT8 *  Result 
)

INT16 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 498 of file SafeIntLib.c.

◆ SafeInt16ToUintn()

RETURN_STATUS EFIAPI SafeInt16ToUintn ( IN INT16  Operand,
OUT UINTN Result 
)

INT16 -> UINTN conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINTN_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 630 of file SafeIntLib.c.

◆ SafeInt32Add()

RETURN_STATUS EFIAPI SafeInt32Add ( IN INT32  Augend,
IN INT32  Addend,
OUT INT32 *  Result 
)

INT32 Addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3581 of file SafeIntLib.c.

◆ SafeInt32Mult()

RETURN_STATUS EFIAPI SafeInt32Mult ( IN INT32  Multiplicand,
IN INT32  Multiplier,
OUT INT32 *  Result 
)

INT32 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 4062 of file SafeIntLib.c.

◆ SafeInt32Sub()

RETURN_STATUS EFIAPI SafeInt32Sub ( IN INT32  Minuend,
IN INT32  Subtrahend,
OUT INT32 *  Result 
)

INT32 Subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3825 of file SafeIntLib.c.

◆ SafeInt32ToChar8()

RETURN_STATUS EFIAPI SafeInt32ToChar8 ( IN INT32  Operand,
OUT CHAR8 *  Result 
)

INT32 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 938 of file SafeIntLib.c.

◆ SafeInt32ToInt16()

RETURN_STATUS EFIAPI SafeInt32ToInt16 ( IN INT32  Operand,
OUT INT16 *  Result 
)

INT32 -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1026 of file SafeIntLib.c.

◆ SafeInt32ToInt8()

RETURN_STATUS EFIAPI SafeInt32ToInt8 ( IN INT32  Operand,
OUT INT8 *  Result 
)

INT32 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 894 of file SafeIntLib.c.

◆ SafeInt32ToUint16()

RETURN_STATUS EFIAPI SafeInt32ToUint16 ( IN INT32  Operand,
OUT UINT16 *  Result 
)

INT32 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1070 of file SafeIntLib.c.

◆ SafeInt32ToUint32()

RETURN_STATUS EFIAPI SafeInt32ToUint32 ( IN INT32  Operand,
OUT UINT32 *  Result 
)

INT32 -> UINT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1114 of file SafeIntLib.c.

◆ SafeInt32ToUint64()

RETURN_STATUS EFIAPI SafeInt32ToUint64 ( IN INT32  Operand,
OUT UINT64 *  Result 
)

INT32 -> UINT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1158 of file SafeIntLib.c.

◆ SafeInt32ToUint8()

RETURN_STATUS EFIAPI SafeInt32ToUint8 ( IN INT32  Operand,
OUT UINT8 *  Result 
)

INT32 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 982 of file SafeIntLib.c.

◆ SafeInt64Add()

RETURN_STATUS EFIAPI SafeInt64Add ( IN INT64  Augend,
IN INT64  Addend,
OUT INT64 *  Result 
)

INT64 Addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3613 of file SafeIntLib.c.

◆ SafeInt64Mult()

RETURN_STATUS EFIAPI SafeInt64Mult ( IN INT64  Multiplicand,
IN INT64  Multiplier,
OUT INT64 *  Result 
)

INT64 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 4094 of file SafeIntLib.c.

◆ SafeInt64Sub()

RETURN_STATUS EFIAPI SafeInt64Sub ( IN INT64  Minuend,
IN INT64  Subtrahend,
OUT INT64 *  Result 
)

INT64 Subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3857 of file SafeIntLib.c.

◆ SafeInt64ToChar8()

RETURN_STATUS EFIAPI SafeInt64ToChar8 ( IN INT64  Operand,
OUT CHAR8 *  Result 
)

INT64 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2126 of file SafeIntLib.c.

◆ SafeInt64ToInt16()

RETURN_STATUS EFIAPI SafeInt64ToInt16 ( IN INT64  Operand,
OUT INT16 *  Result 
)

INT64 -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2214 of file SafeIntLib.c.

◆ SafeInt64ToInt32()

RETURN_STATUS EFIAPI SafeInt64ToInt32 ( IN INT64  Operand,
OUT INT32 *  Result 
)

INT64 -> INT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2302 of file SafeIntLib.c.

◆ SafeInt64ToInt8()

RETURN_STATUS EFIAPI SafeInt64ToInt8 ( IN INT64  Operand,
OUT INT8 *  Result 
)

INT64 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2082 of file SafeIntLib.c.

◆ SafeInt64ToUint16()

RETURN_STATUS EFIAPI SafeInt64ToUint16 ( IN INT64  Operand,
OUT UINT16 *  Result 
)

INT64 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2258 of file SafeIntLib.c.

◆ SafeInt64ToUint32()

RETURN_STATUS EFIAPI SafeInt64ToUint32 ( IN INT64  Operand,
OUT UINT32 *  Result 
)

INT64 -> UINT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2346 of file SafeIntLib.c.

◆ SafeInt64ToUint64()

RETURN_STATUS EFIAPI SafeInt64ToUint64 ( IN INT64  Operand,
OUT UINT64 *  Result 
)

INT64 -> UINT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2390 of file SafeIntLib.c.

◆ SafeInt64ToUint8()

RETURN_STATUS EFIAPI SafeInt64ToUint8 ( IN INT64  Operand,
OUT UINT8 *  Result 
)

INT64 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2170 of file SafeIntLib.c.

◆ SafeInt8Add()

RETURN_STATUS EFIAPI SafeInt8Add ( IN INT8  Augend,
IN INT8  Addend,
OUT INT8 *  Result 
)

INT8 Addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3466 of file SafeIntLib.c.

◆ SafeInt8Mult()

RETURN_STATUS EFIAPI SafeInt8Mult ( IN INT8  Multiplicand,
IN INT8  Multiplier,
OUT INT8 *  Result 
)

INT8 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3947 of file SafeIntLib.c.

◆ SafeInt8Sub()

RETURN_STATUS EFIAPI SafeInt8Sub ( IN INT8  Minuend,
IN INT8  Subtrahend,
OUT INT8 *  Result 
)

INT8 Subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3710 of file SafeIntLib.c.

◆ SafeInt8ToChar8()

RETURN_STATUS EFIAPI SafeInt8ToChar8 ( IN INT8  Operand,
OUT CHAR8 *  Result 
)

INT8 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 102 of file SafeIntLib.c.

◆ SafeInt8ToUint16()

RETURN_STATUS EFIAPI SafeInt8ToUint16 ( IN INT8  Operand,
OUT UINT16 *  Result 
)

INT8 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 146 of file SafeIntLib.c.

◆ SafeInt8ToUint32()

RETURN_STATUS EFIAPI SafeInt8ToUint32 ( IN INT8  Operand,
OUT UINT32 *  Result 
)

INT8 -> UINT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 190 of file SafeIntLib.c.

◆ SafeInt8ToUint64()

RETURN_STATUS EFIAPI SafeInt8ToUint64 ( IN INT8  Operand,
OUT UINT64 *  Result 
)

INT8 -> UINT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 278 of file SafeIntLib.c.

◆ SafeInt8ToUint8()

RETURN_STATUS EFIAPI SafeInt8ToUint8 ( IN INT8  Operand,
OUT UINT8 *  Result 
)

INT8 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 58 of file SafeIntLib.c.

◆ SafeInt8ToUintn()

RETURN_STATUS EFIAPI SafeInt8ToUintn ( IN INT8  Operand,
OUT UINTN Result 
)

INT8 -> UINTN conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINTN_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 234 of file SafeIntLib.c.

◆ SafeIntnToChar8()

RETURN_STATUS EFIAPI SafeIntnToChar8 ( IN INTN  Operand,
OUT CHAR8 *  Result 
)

INTN -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1510 of file SafeIntLib.c.

◆ SafeIntnToInt16()

RETURN_STATUS EFIAPI SafeIntnToInt16 ( IN INTN  Operand,
OUT INT16 *  Result 
)

INTN -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1598 of file SafeIntLib.c.

◆ SafeIntnToInt8()

RETURN_STATUS EFIAPI SafeIntnToInt8 ( IN INTN  Operand,
OUT INT8 *  Result 
)

INTN -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1466 of file SafeIntLib.c.

◆ SafeIntnToUint16()

RETURN_STATUS EFIAPI SafeIntnToUint16 ( IN INTN  Operand,
OUT UINT16 *  Result 
)

INTN -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1642 of file SafeIntLib.c.

◆ SafeIntnToUint64()

RETURN_STATUS EFIAPI SafeIntnToUint64 ( IN INTN  Operand,
OUT UINT64 *  Result 
)

INTN -> UINT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1730 of file SafeIntLib.c.

◆ SafeIntnToUint8()

RETURN_STATUS EFIAPI SafeIntnToUint8 ( IN INTN  Operand,
OUT UINT8 *  Result 
)

INTN -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1554 of file SafeIntLib.c.

◆ SafeIntnToUintn()

RETURN_STATUS EFIAPI SafeIntnToUintn ( IN INTN  Operand,
OUT UINTN Result 
)

INTN -> UINTN conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINTN_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1686 of file SafeIntLib.c.

◆ SafeUint16Add()

RETURN_STATUS EFIAPI SafeUint16Add ( IN UINT16  Augend,
IN UINT16  Addend,
OUT UINT16 *  Result 
)

UINT16 addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2881 of file SafeIntLib.c.

◆ SafeUint16Mult()

RETURN_STATUS EFIAPI SafeUint16Mult ( IN UINT16  Multiplicand,
IN UINT16  Multiplier,
OUT UINT16 *  Result 
)

UINT16 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3247 of file SafeIntLib.c.

◆ SafeUint16Sub()

RETURN_STATUS EFIAPI SafeUint16Sub ( IN UINT16  Minuend,
IN UINT16  Subtrahend,
OUT UINT16 *  Result 
)

UINT16 subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3069 of file SafeIntLib.c.

◆ SafeUint16ToChar8()

RETURN_STATUS EFIAPI SafeUint16ToChar8 ( IN UINT16  Operand,
OUT CHAR8 *  Result 
)

UINT16 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 762 of file SafeIntLib.c.

◆ SafeUint16ToInt16()

RETURN_STATUS EFIAPI SafeUint16ToInt16 ( IN UINT16  Operand,
OUT INT16 *  Result 
)

UINT16 -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 850 of file SafeIntLib.c.

◆ SafeUint16ToInt8()

RETURN_STATUS EFIAPI SafeUint16ToInt8 ( IN UINT16  Operand,
OUT INT8 *  Result 
)

UINT16 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 718 of file SafeIntLib.c.

◆ SafeUint16ToUint8()

RETURN_STATUS EFIAPI SafeUint16ToUint8 ( IN UINT16  Operand,
OUT UINT8 *  Result 
)

UINT16 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 806 of file SafeIntLib.c.

◆ SafeUint32Add()

RETURN_STATUS EFIAPI SafeUint32Add ( IN UINT32  Augend,
IN UINT32  Addend,
OUT UINT32 *  Result 
)

UINT32 addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2927 of file SafeIntLib.c.

◆ SafeUint32Mult()

RETURN_STATUS EFIAPI SafeUint32Mult ( IN UINT32  Multiplicand,
IN UINT32  Multiplier,
OUT UINT32 *  Result 
)

UINT32 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3283 of file SafeIntLib.c.

◆ SafeUint32Sub()

RETURN_STATUS EFIAPI SafeUint32Sub ( IN UINT32  Minuend,
IN UINT32  Subtrahend,
OUT UINT32 *  Result 
)

UINT32 subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3115 of file SafeIntLib.c.

◆ SafeUint32ToChar8()

RETURN_STATUS EFIAPI SafeUint32ToChar8 ( IN UINT32  Operand,
OUT CHAR8 *  Result 
)

UINT32 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1246 of file SafeIntLib.c.

◆ SafeUint32ToInt16()

RETURN_STATUS EFIAPI SafeUint32ToInt16 ( IN UINT32  Operand,
OUT INT16 *  Result 
)

UINT32 -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1334 of file SafeIntLib.c.

◆ SafeUint32ToInt32()

RETURN_STATUS EFIAPI SafeUint32ToInt32 ( IN UINT32  Operand,
OUT INT32 *  Result 
)

UINT32 -> INT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1422 of file SafeIntLib.c.

◆ SafeUint32ToInt8()

RETURN_STATUS EFIAPI SafeUint32ToInt8 ( IN UINT32  Operand,
OUT INT8 *  Result 
)

UINT32 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1202 of file SafeIntLib.c.

◆ SafeUint32ToUint16()

RETURN_STATUS EFIAPI SafeUint32ToUint16 ( IN UINT32  Operand,
OUT UINT16 *  Result 
)

UINT32 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1378 of file SafeIntLib.c.

◆ SafeUint32ToUint8()

RETURN_STATUS EFIAPI SafeUint32ToUint8 ( IN UINT32  Operand,
OUT UINT8 *  Result 
)

UINT32 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1290 of file SafeIntLib.c.

◆ SafeUint64Add()

RETURN_STATUS EFIAPI SafeUint64Add ( IN UINT64  Augend,
IN UINT64  Addend,
OUT UINT64 *  Result 
)

UINT64 addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2973 of file SafeIntLib.c.

◆ SafeUint64Mult()

RETURN_STATUS EFIAPI SafeUint64Mult ( IN UINT64  Multiplicand,
IN UINT64  Multiplier,
OUT UINT64 *  Result 
)

UINT64 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3319 of file SafeIntLib.c.

◆ SafeUint64Sub()

RETURN_STATUS EFIAPI SafeUint64Sub ( IN UINT64  Minuend,
IN UINT64  Subtrahend,
OUT UINT64 *  Result 
)

UINT64 subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3161 of file SafeIntLib.c.

◆ SafeUint64ToChar8()

RETURN_STATUS EFIAPI SafeUint64ToChar8 ( IN UINT64  Operand,
OUT CHAR8 *  Result 
)

UINT64 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2478 of file SafeIntLib.c.

◆ SafeUint64ToInt16()

RETURN_STATUS EFIAPI SafeUint64ToInt16 ( IN UINT64  Operand,
OUT INT16 *  Result 
)

UINT64 -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2566 of file SafeIntLib.c.

◆ SafeUint64ToInt32()

RETURN_STATUS EFIAPI SafeUint64ToInt32 ( IN UINT64  Operand,
OUT INT32 *  Result 
)

UINT64 -> INT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2654 of file SafeIntLib.c.

◆ SafeUint64ToInt64()

RETURN_STATUS EFIAPI SafeUint64ToInt64 ( IN UINT64  Operand,
OUT INT64 *  Result 
)

UINT64 -> INT64 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT64_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2786 of file SafeIntLib.c.

◆ SafeUint64ToInt8()

RETURN_STATUS EFIAPI SafeUint64ToInt8 ( IN UINT64  Operand,
OUT INT8 *  Result 
)

UINT64 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2434 of file SafeIntLib.c.

◆ SafeUint64ToIntn()

RETURN_STATUS EFIAPI SafeUint64ToIntn ( IN UINT64  Operand,
OUT INTN Result 
)

UINT64 -> INTN conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INTN_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2742 of file SafeIntLib.c.

◆ SafeUint64ToUint16()

RETURN_STATUS EFIAPI SafeUint64ToUint16 ( IN UINT64  Operand,
OUT UINT16 *  Result 
)

UINT64 -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2610 of file SafeIntLib.c.

◆ SafeUint64ToUint32()

RETURN_STATUS EFIAPI SafeUint64ToUint32 ( IN UINT64  Operand,
OUT UINT32 *  Result 
)

UINT64 -> UINT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2698 of file SafeIntLib.c.

◆ SafeUint64ToUint8()

RETURN_STATUS EFIAPI SafeUint64ToUint8 ( IN UINT64  Operand,
OUT UINT8 *  Result 
)

UINT64 -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2522 of file SafeIntLib.c.

◆ SafeUint8Add()

RETURN_STATUS EFIAPI SafeUint8Add ( IN UINT8  Augend,
IN UINT8  Addend,
OUT UINT8 *  Result 
)

UINT8 addition

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]AugendA number to which addend will be added
[in]AddendA number to be added to another
[out]ResultPointer to the result of addition
Return values
RETURN_SUCCESSSuccessful addition
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2835 of file SafeIntLib.c.

◆ SafeUint8Mult()

RETURN_STATUS EFIAPI SafeUint8Mult ( IN UINT8  Multiplicand,
IN UINT8  Multiplier,
OUT UINT8 *  Result 
)

UINT8 multiplication

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MultiplicandA number that is to be multiplied by another
[in]MultiplierA number by which the multiplicand is to be multiplied
[out]ResultPointer to the result of multiplication
Return values
RETURN_SUCCESSSuccessful multiplication
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3211 of file SafeIntLib.c.

◆ SafeUint8Sub()

RETURN_STATUS EFIAPI SafeUint8Sub ( IN UINT8  Minuend,
IN UINT8  Subtrahend,
OUT UINT8 *  Result 
)

UINT8 subtraction

Performs the requested operation using the input parameters into a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the requested operation results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]MinuendA number from which another is to be subtracted.
[in]SubtrahendA number to be subtracted from another
[out]ResultPointer to the result of subtraction
Return values
RETURN_SUCCESSSuccessful subtraction
RETURN_BUFFER_TOO_SMALLUnderflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 3023 of file SafeIntLib.c.

◆ SafeUint8ToChar8()

RETURN_STATUS EFIAPI SafeUint8ToChar8 ( IN UINT8  Operand,
OUT CHAR8 *  Result 
)

UINT8 -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 366 of file SafeIntLib.c.

◆ SafeUint8ToInt8()

RETURN_STATUS EFIAPI SafeUint8ToInt8 ( IN UINT8  Operand,
OUT INT8 *  Result 
)

UINT8 -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 322 of file SafeIntLib.c.

◆ SafeUintnToChar8()

RETURN_STATUS EFIAPI SafeUintnToChar8 ( IN UINTN  Operand,
OUT CHAR8 *  Result 
)

UINTN -> CHAR8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to CHAR8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1818 of file SafeIntLib.c.

◆ SafeUintnToInt16()

RETURN_STATUS EFIAPI SafeUintnToInt16 ( IN UINTN  Operand,
OUT INT16 *  Result 
)

UINTN -> INT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1906 of file SafeIntLib.c.

◆ SafeUintnToInt32()

RETURN_STATUS EFIAPI SafeUintnToInt32 ( IN UINTN  Operand,
OUT INT32 *  Result 
)

UINTN -> INT32 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT32_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1994 of file SafeIntLib.c.

◆ SafeUintnToInt8()

RETURN_STATUS EFIAPI SafeUintnToInt8 ( IN UINTN  Operand,
OUT INT8 *  Result 
)

UINTN -> INT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1774 of file SafeIntLib.c.

◆ SafeUintnToIntn()

RETURN_STATUS EFIAPI SafeUintnToIntn ( IN UINTN  Operand,
OUT INTN Result 
)

UINTN -> INTN conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to INTN_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 2038 of file SafeIntLib.c.

◆ SafeUintnToUint16()

RETURN_STATUS EFIAPI SafeUintnToUint16 ( IN UINTN  Operand,
OUT UINT16 *  Result 
)

UINTN -> UINT16 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT16_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1950 of file SafeIntLib.c.

◆ SafeUintnToUint8()

RETURN_STATUS EFIAPI SafeUintnToUint8 ( IN UINTN  Operand,
OUT UINT8 *  Result 
)

UINTN -> UINT8 conversion

Converts the value specified by Operand to a value specified by Result type and stores the converted value into the caller allocated output buffer specified by Result. The caller must pass in a Result buffer that is at least as large as the Result type.

If Result is NULL, RETURN_INVALID_PARAMETER is returned.

If the conversion results in an overflow or an underflow condition, then Result is set to UINT8_ERROR and RETURN_BUFFER_TOO_SMALL is returned.

Parameters
[in]OperandOperand to be converted to new type
[out]ResultPointer to the result of conversion
Return values
RETURN_SUCCESSSuccessful conversion
RETURN_BUFFER_TOO_SMALLOverflow
RETURN_INVALID_PARAMETERResult is NULL

Definition at line 1862 of file SafeIntLib.c.