f806c5829b
* pre-commit: Update and enable clang-format check There is newer version from clang-format so use that. We do not yet want 18 as that is little bit too new. * Format some thing by hand which clang-format "breaks" Clang-format will format some things little bit off in some cases. Format some things by hand so we get cleaner end result. * Run clang-format with ``` pre-commit run --all-files clang-format ``` We have already in previously checked places where clang-format does not make good format and ignored those (hopefully most of the things). --------- Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
50 lines
1.1 KiB
C
50 lines
1.1 KiB
C
/**
|
|
* @file
|
|
* @author Steve Karg <skarg@users.sourceforge.net>
|
|
* @date 2012
|
|
* @brief Bitwise helper macros
|
|
* @copyright SPDX-License-Identifier: MIT
|
|
*/
|
|
#ifndef BACNET_SYS_BITS_H
|
|
#define BACNET_SYS_BITS_H
|
|
|
|
/********************************************************************
|
|
* Bit Masks
|
|
*********************************************************************/
|
|
#ifndef BIT
|
|
#define BIT(x) (1 << (x))
|
|
#endif
|
|
#ifndef _BV
|
|
#define _BV(x) (1 << (x))
|
|
#endif
|
|
|
|
/* a=register, b=bit number to act upon 0-n */
|
|
#ifndef BIT_SET
|
|
#define BIT_SET(a, b) ((a) |= (1 << (b)))
|
|
#endif
|
|
#ifndef BIT_CLEAR
|
|
#define BIT_CLEAR(a, b) ((a) &= ~(1 << (b)))
|
|
#endif
|
|
#ifndef BIT_FLIP
|
|
#define BIT_FLIP(a, b) ((a) ^= (1 << (b)))
|
|
#endif
|
|
#ifndef BIT_CHECK
|
|
#define BIT_CHECK(a, b) ((a) & (1 << (b)))
|
|
#endif
|
|
|
|
/* x=target variable, y=mask */
|
|
#ifndef BITMASK_SET
|
|
#define BITMASK_SET(x, y) ((x) |= (y))
|
|
#endif
|
|
#ifndef BITMASK_CLEAR
|
|
#define BITMASK_CLEAR(x, y) ((x) &= (~(y)))
|
|
#endif
|
|
#ifndef BITMASK_FLIP
|
|
#define BITMASK_FLIP(x, y) ((x) ^= (y))
|
|
#endif
|
|
#ifndef BITMASK_CHECK
|
|
#define BITMASK_CHECK(x, y) (((x) & (y)) == (y))
|
|
#endif
|
|
|
|
#endif
|