c-pal/interfaces/devdoc/arithmetic_requirements.md

840 B

arithmetic

Overview

The arithmetic module provides a platform/compiler-independent API for arithemtic operations on 128 bit numbers.

-umul64x64: multiplies two uint64_t.

Exposed API

typedef struct PAL_UINT128_TAG
{
    uint64_t high;
    uint64_t low;
}PAL_UINT128;

#include "umock_c/umock_c_prod.h"
#ifdef __cplusplus
extern "C"
{
#endif

    MOCKABLE_FUNCTION(, PAL_UINT128, umul64x64, uint64_t, left, uint64_t, right);

#ifdef __cplusplus
}
#endif

umul64x64

MOCKABLE_FUNCTION(, PAL_UINT128, umul64x64, uint64_t, left, uint64_t, right);

umul64x64 multiplies left with right and outputs a PAL_UINT128 that contains the high and low parts of the resulting 128 bit value.

SRS_ARITHMETIC_02_001: [ umul64x64 shall mutiply left and right and returna PAL_UINT128 as result. ]