/***************************************************************************//**
* @file
* @brief NVM3 utility functions
*******************************************************************************
* # License
* Copyright 2018 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
*
* The licensor of this software is Silicon Laboratories Inc.
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
#ifndef NVM3_UTILS_H
#define NVM3_UTILS_H
#include
#ifdef __cplusplus
extern "C" {
#endif
/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
/***************************************************************************//**
* @brief
* This function calculates the Berger Code of the supplied input variable.
* The Berger Code is calculated by looking at the binary value of the variable
* and counting the number of binary zeros.
*
* @param[in, out] pResult
* A pointer to a variable that will accumulate the berger code for
* the input variable specified in the next two variables.
*
* @param[in] pInput
* A pointer to the variable that contains data that is used.
*
* @param[in] numberOfBits
* The number of bits in the input variable used in the calculation.
* The calculation is starting from the least significant bit in the input
* variable.
******************************************************************************/
void nvm3_utilsComputeBergerCode(uint8_t *pResult, void *pInput, uint8_t numberOfBits);
/// @endcond
#ifdef __cplusplus
}
#endif
#endif /* NVM3_UTILS_H */