Browse Source

cleanup: include/: move misc/math_extras.h to sys/math_extras.h

move misc/math_extras.h to sys/math_extras.h and
create a shim for backward-compatibility.

No functional changes to the headers.
A warning in the shim can be controlled with CONFIG_COMPAT_INCLUDES.

Related to #16539

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
pull/17120/head
Anas Nashif 6 years ago
parent
commit
6ecadb03ab
  1. 67
      include/misc/math_extras.h
  2. 72
      include/sys/math_extras.h
  3. 2
      kernel/include/syscall_handler.h
  4. 2
      kernel/mempool.c
  5. 2
      kernel/msg_q.c
  6. 2
      kernel/thread.c
  7. 2
      kernel/userspace.c
  8. 2
      lib/libc/minimal/source/stdlib/malloc.c
  9. 2
      subsys/net/lib/sockets/sockets.c
  10. 2
      tests/unit/math_extras/tests.inc

67
include/misc/math_extras.h

@ -1,72 +1,15 @@ @@ -1,72 +1,15 @@
/*
* Copyright (c) 2019 Facebook.
* Copyright (c) 2019 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Extra arithmetic and bitmanipulation functions.
*
* @details This header file provides 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.
*/
#ifndef ZEPHYR_INCLUDE_MISC_MATH_EXTRAS_H_
#define ZEPHYR_INCLUDE_MISC_MATH_EXTRAS_H_
#include <zephyr/types.h>
#include <stdbool.h>
#include <stddef.h>
/**
* @name Unsigned integer addition with overflow detection.
*
* These functions compute `a + b` and store the result in `*result`, returning
* true if the operation overflowed.
*/
/**@{*/
static bool u32_add_overflow(u32_t a, u32_t b, u32_t *result);
static bool u64_add_overflow(u64_t a, u64_t b, u64_t *result);
static bool size_add_overflow(size_t a, size_t b, size_t *result);
/**@}*/
/**
* @name Unsigned integer multiplication with overflow detection.
*
* These functions compute `a * b` and store the result in `*result`, returning
* true if the operation overflowed.
*/
/**@{*/
static bool u32_mul_overflow(u32_t a, u32_t b, u32_t *result);
static bool u64_mul_overflow(u64_t a, u64_t b, u64_t *result);
static bool size_mul_overflow(size_t a, size_t b, size_t *result);
/**@}*/
/**
* @name Count leading zeros.
*
* Count the number of leading zero bits in the bitwise representation of `x`.
* When `x = 0`, this is the size of `x` in bits.
*/
/**@{*/
static int u32_count_leading_zeros(u32_t x);
static int u64_count_leading_zeros(u64_t x);
/**@}*/
/**
* @name Count trailing zeros.
*
* Count the number of trailing zero bits in the bitwise representation of `x`.
* When `x = 0`, this is the size of `x` in bits.
*/
/**@{*/
static int u32_count_trailing_zeros(u32_t x);
static int u64_count_trailing_zeros(u64_t x);
/**@}*/
#ifndef CONFIG_COMPAT_INCLUDES
#warning "This header file has moved, include <sys/math_extras.h> instead."
#endif
#include <misc/math_extras_impl.h>
#include <sys/math_extras.h>
#endif /* ZEPHYR_INCLUDE_MISC_MATH_EXTRAS_H_ */

72
include/sys/math_extras.h

@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
/*
* Copyright (c) 2019 Facebook.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Extra arithmetic and bitmanipulation functions.
*
* @details This header file provides 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.
*/
#ifndef ZEPHYR_INCLUDE_SYS_MATH_EXTRAS_H_
#define ZEPHYR_INCLUDE_SYS_MATH_EXTRAS_H_
#include <zephyr/types.h>
#include <stdbool.h>
#include <stddef.h>
/**
* @name Unsigned integer addition with overflow detection.
*
* These functions compute `a + b` and store the result in `*result`, returning
* true if the operation overflowed.
*/
/**@{*/
static bool u32_add_overflow(u32_t a, u32_t b, u32_t *result);
static bool u64_add_overflow(u64_t a, u64_t b, u64_t *result);
static bool size_add_overflow(size_t a, size_t b, size_t *result);
/**@}*/
/**
* @name Unsigned integer multiplication with overflow detection.
*
* These functions compute `a * b` and store the result in `*result`, returning
* true if the operation overflowed.
*/
/**@{*/
static bool u32_mul_overflow(u32_t a, u32_t b, u32_t *result);
static bool u64_mul_overflow(u64_t a, u64_t b, u64_t *result);
static bool size_mul_overflow(size_t a, size_t b, size_t *result);
/**@}*/
/**
* @name Count leading zeros.
*
* Count the number of leading zero bits in the bitwise representation of `x`.
* When `x = 0`, this is the size of `x` in bits.
*/
/**@{*/
static int u32_count_leading_zeros(u32_t x);
static int u64_count_leading_zeros(u64_t x);
/**@}*/
/**
* @name Count trailing zeros.
*
* Count the number of trailing zero bits in the bitwise representation of `x`.
* When `x = 0`, this is the size of `x` in bits.
*/
/**@{*/
static int u32_count_trailing_zeros(u32_t x);
static int u64_count_trailing_zeros(u64_t x);
/**@}*/
#include <misc/math_extras_impl.h>
#endif /* ZEPHYR_INCLUDE_SYS_MATH_EXTRAS_H_ */

2
kernel/include/syscall_handler.h

@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
#ifndef _ASMLANGUAGE
#include <kernel.h>
#include <misc/printk.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <kernel_internal.h>
#include <stdbool.h>

2
kernel/mempool.c

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
#include <init.h>
#include <string.h>
#include <sys/__assert.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <stdbool.h>
static struct k_spinlock lock;

2
kernel/msg_q.c

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
#include <string.h>
#include <wait_q.h>
#include <sys/dlist.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <init.h>
#include <syscall_handler.h>
#include <kernel_internal.h>

2
kernel/thread.c

@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
#include <spinlock.h>
#include <kernel_structs.h>
#include <misc/printk.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <sys_clock.h>
#include <drivers/timer/system_timer.h>
#include <ksched.h>

2
kernel/userspace.c

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
#include <kernel.h>
#include <string.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <misc/printk.h>
#include <misc/rb.h>
#include <kernel_structs.h>

2
lib/libc/minimal/source/stdlib/malloc.c

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
#include <zephyr.h>
#include <init.h>
#include <errno.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <misc/mempool.h>
#include <string.h>
#include <app_memory/app_memdomain.h>

2
subsys/net/lib/sockets/sockets.c

@ -17,7 +17,7 @@ LOG_MODULE_REGISTER(net_sock, CONFIG_NET_SOCKETS_LOG_LEVEL); @@ -17,7 +17,7 @@ LOG_MODULE_REGISTER(net_sock, CONFIG_NET_SOCKETS_LOG_LEVEL);
#include <net/socket.h>
#include <syscall_handler.h>
#include <sys/fdtable.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include "sockets_internal.h"

2
tests/unit/math_extras/tests.inc

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
*/
#include <ztest.h>
#include <misc/math_extras.h>
#include <sys/math_extras.h>
#include <inttypes.h>
static void VNAME(u32_add)(void)

Loading…
Cancel
Save