Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Extra arithmetic and bit manipulation functions. More...
Unsigned integer addition with overflow detection. | |
These functions compute | |
static bool | u16_add_overflow (uint16_t a, uint16_t b, uint16_t *result) |
Add two unsigned 16-bit integers. | |
static bool | u32_add_overflow (uint32_t a, uint32_t b, uint32_t *result) |
Add two unsigned 32-bit integers. | |
static bool | u64_add_overflow (uint64_t a, uint64_t b, uint64_t *result) |
Add two unsigned 64-bit integers. | |
static bool | size_add_overflow (size_t a, size_t b, size_t *result) |
Add two size_t integers. | |
Unsigned integer multiplication with overflow detection. | |
These functions compute | |
static bool | u16_mul_overflow (uint16_t a, uint16_t b, uint16_t *result) |
Multiply two unsigned 16-bit integers. | |
static bool | u32_mul_overflow (uint32_t a, uint32_t b, uint32_t *result) |
Multiply two unsigned 32-bit integers. | |
static bool | u64_mul_overflow (uint64_t a, uint64_t b, uint64_t *result) |
Multiply two unsigned 64-bit integers. | |
static bool | size_mul_overflow (size_t a, size_t b, size_t *result) |
Multiply two size_t integers. | |
Count leading zeros. | |
Count the number of leading zero bits in the bitwise representation of When | |
static int | u32_count_leading_zeros (uint32_t x) |
Count the number of leading zero bits in a 32-bit integer. | |
static int | u64_count_leading_zeros (uint64_t x) |
Count the number of leading zero bits in a 64-bit integer. | |
Count trailing zeros. | |
Count the number of trailing zero bits in the bitwise representation of When | |
static int | u32_count_trailing_zeros (uint32_t x) |
Count the number of trailing zero bits in a 32-bit integer. | |
static int | u64_count_trailing_zeros (uint64_t x) |
Count the number of trailing zero bits in a 64-bit integer. | |
Extra arithmetic and bit manipulation functions.
Portable wrapper functions for a number of arithmetic and bit-counting functions that are often provided by compiler builtins. If the compiler does not have an appropriate builtin, a portable C implementation is used instead.
#include <include/zephyr/sys/math_extras.h>
Add two size_t integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
#include <include/zephyr/sys/math_extras.h>
Multiply two size_t integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
#include <include/zephyr/sys/math_extras.h>
Add two unsigned 16-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
#include <include/zephyr/sys/math_extras.h>
Multiply two unsigned 16-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
#include <include/zephyr/sys/math_extras.h>
Add two unsigned 32-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
|
static |
#include <include/zephyr/sys/math_extras.h>
Count the number of leading zero bits in a 32-bit integer.
x | Integer to count leading zeros in. |
x
.
|
static |
#include <include/zephyr/sys/math_extras.h>
Count the number of trailing zero bits in a 32-bit integer.
x | Integer to count trailing zeros in. |
x
. #include <include/zephyr/sys/math_extras.h>
Multiply two unsigned 32-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
#include <include/zephyr/sys/math_extras.h>
Add two unsigned 64-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |
|
static |
#include <include/zephyr/sys/math_extras.h>
Count the number of leading zero bits in a 64-bit integer.
x | Integer to count leading zeros in. |
x
.
|
static |
#include <include/zephyr/sys/math_extras.h>
Count the number of trailing zero bits in a 64-bit integer.
x | Integer to count trailing zeros in. |
x
. #include <include/zephyr/sys/math_extras.h>
Multiply two unsigned 64-bit integers.
a | First operand. |
b | Second operand. |
result | Pointer to the result. |