1007 lines
44 KiB
C
1007 lines
44 KiB
C
|
|
/**********************************************************************************************************************
|
||
|
|
* COPYRIGHT
|
||
|
|
* -------------------------------------------------------------------------------------------------------------------
|
||
|
|
* \verbatim
|
||
|
|
* Copyright (c) 2024 by Vector Informatik GmbH. All rights reserved.
|
||
|
|
*
|
||
|
|
* This software is copyright protected and proprietary to Vector Informatik GmbH.
|
||
|
|
* Vector Informatik GmbH grants to you only those rights as set out in the license conditions.
|
||
|
|
* All other rights remain with Vector Informatik GmbH.
|
||
|
|
* \endverbatim
|
||
|
|
* -------------------------------------------------------------------------------------------------------------------
|
||
|
|
* FILE DESCRIPTION
|
||
|
|
* -----------------------------------------------------------------------------------------------------------------*/
|
||
|
|
/*! \file VStdLib_Cfg.h
|
||
|
|
* \brief Configuration of the generic Vector Standard Library (VStdLib_GenericAsr)
|
||
|
|
* \details Template file that can be adapted by the user.
|
||
|
|
* This file contains the project specific configuration of the VStdLib. It also provides the possibility
|
||
|
|
* of overwriting the public APIs with project specific optimized implementations.
|
||
|
|
*
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
#if !defined (VSTDLIB_CFG_H)
|
||
|
|
# define VSTDLIB_CFG_H
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Additional include files
|
||
|
|
*
|
||
|
|
* If necessary include additional files below (e.g. if VSTDLIB_USE_LIBRARY_FUNCTIONS is defined to STD_ON).
|
||
|
|
*/
|
||
|
|
/* # include ... */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* General configuration
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON the memory initialization, memory copy and memory comparison APIs are mapped to external functions
|
||
|
|
* (e.g. compiler libraries or other implementations that are optimized for the target platform).
|
||
|
|
* As the generic VStdLib implementation provides optimized routines only for 32bit platforms, this is recommended when
|
||
|
|
* using MCUs with other architectures.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external memory functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic memory functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION
|
||
|
|
*
|
||
|
|
* If set to STD_ON the memory copy with endianness swap API is mapped to an external function
|
||
|
|
* (e.g. compiler libraries or other implementations that are optimized for the target platform).
|
||
|
|
* As the generic VStdLib implementation provides optimized routines only for 32bit platforms, this is recommended when
|
||
|
|
* using MCUs with other architectures.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external memory copy with endianness swap function - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic memory copy with endianness swap function provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION
|
||
|
|
*
|
||
|
|
* If set to STD_ON, the memory check API is mapped to an external function (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
* As the generic VStdLib implementation provides optimized routines only for 32bit platforms, this is recommended when
|
||
|
|
* using MCUs with other architectures.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external memory check function - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic memory check function provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_RUNTIME_OPTIMIZATION
|
||
|
|
*
|
||
|
|
* If set to STD_ON optimized routines are used to increase the performance of the memory initialization, memory copy
|
||
|
|
* and memory comparison APIs.
|
||
|
|
* The setting of this define is only relevant if VSTDLIB_USE_LIBRARY_FUNCTIONS == STD_OFF or
|
||
|
|
* VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION == STD_OFF.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use optimized routines for memory operations (runtime efficient, but increases code size)
|
||
|
|
* STD_OFF - Use simple routines for memory operations (code efficient, but significantly increases runtime)
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_ON
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_RUNTIME_OPTIMIZATION STD_ON
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_JUMPTABLES
|
||
|
|
*
|
||
|
|
* If set to STD_ON jump tables are used to increase the performance of the memory initialization and memory copy APIs.
|
||
|
|
* The setting of this define is only relevant if VSTDLIB_RUNTIME_OPTIMIZATION == STD_ON and
|
||
|
|
* VSTDLIB_USE_LIBRARY_FUNCTIONS == STD_OFF or
|
||
|
|
* VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION == STD_OFF.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use jump tables for memory operations (runtime efficient in general, but may depend on compiler)
|
||
|
|
* STD_OFF - Use loops for memory operations (code efficient, also use this if the compiler generates no efficient
|
||
|
|
* code for the jump tables)
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_ON
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_JUMPTABLES STD_ON
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_DEV_ERROR_DETECT
|
||
|
|
*
|
||
|
|
* If set to STD_ON the development error detection is enabled. In this case the pointer arguments of all global
|
||
|
|
* module functions are checked. If any NULL_PTR is passed, these functions return without performing any action.
|
||
|
|
* Please note that this setting has no influence on MICROSAR SafeBSW.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Check function arguments
|
||
|
|
* STD_OFF - Disable development error detection
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_DEV_ERROR_DETECT STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_DEV_ERROR_REPORT
|
||
|
|
*
|
||
|
|
* If set to STD_ON the development error reporting is enabled. In this case Det_ReportError() is called if any
|
||
|
|
* development error is detected.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Enable calls of Det_ReportError() - requires VSTDLIB_DEV_ERROR_DETECT also to be defined to STD_ON
|
||
|
|
* STD_OFF - Disable development error reporting
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_DEV_ERROR_REPORT STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_VERSION_INFO_API
|
||
|
|
*
|
||
|
|
* If set to STD_ON the API VStdLib_GetVersionInfo() is provided.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Provide the version info API
|
||
|
|
* STD_OFF - Do not provide the version info API
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_VERSION_INFO_API STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_DUMMY_STATEMENT
|
||
|
|
*
|
||
|
|
* Expression that is used for dummy statements to avoid compile warnings about unused identifiers.
|
||
|
|
*
|
||
|
|
* Example values:
|
||
|
|
* (void)(v)
|
||
|
|
* (v)=(v)
|
||
|
|
* or leave the definition empty to disable the usage of dummy statements
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* (void)(v)
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_DUMMY_STATEMENT(v) (void)(v) /* PRQA S 3453 */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 8-bit bit search APIs are mapped to external functions (e.g. compiler libraries or
|
||
|
|
* other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit search functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 8-bit bit search functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 16-bit bit search APIs are mapped to external functions (e.g. compiler libraries or
|
||
|
|
* other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit search functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 16-bit bit search functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 32-bit bit search APIs are mapped to external functions (e.g. compiler libraries or
|
||
|
|
* other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit search functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 32-bit bit search functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 64-bit bit search APIs are mapped to external functions (e.g. compiler libraries or
|
||
|
|
* other implementations that are optimized for the target platform).
|
||
|
|
* The setting of this define is only allowed if PLATFORM_SUPPORT_SINT64_UINT64 is defined.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit search functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 64-bit bit search functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 16-bit deserialization and serialization APIs are mapped to external functions
|
||
|
|
* (e.g. compiler libraries or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external (de-)serialization functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 16-bit (de-)serialization functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 32-bit deserialization and serialization APIs are mapped to external functions
|
||
|
|
* (e.g. compiler libraries or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external (de-)serialization functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 32-bit (de-)serialization functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 64-bit deserialization and serialization APIs are mapped to external functions
|
||
|
|
* (e.g. compiler libraries or other implementations that are optimized for the target platform).
|
||
|
|
* The setting of this define is only allowed if PLATFORM_SUPPORT_SINT64_UINT64 is defined.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external (de-)serialization functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 64-bit (de-)serialization functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 16-bit endianness swap APIs are mapped to external functions (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external endianness swap functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 16-bit endianness swap functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 32-bit endianness swap APIs are mapped to external functions (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external endianness swap functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 32-bit endianness swap functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all 64-bit endianness swap APIs are mapped to external functions (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
* The setting of this define is only allowed if PLATFORM_SUPPORT_SINT64_UINT64 is defined.
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external endianness swap functions - requires additional configuration, see below.
|
||
|
|
* STD_OFF - Use generic 64-bit endianness swap functions provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all bit copy sawtooth APIs are mapped to external functions (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit copy functions with sawtooth bit numbering
|
||
|
|
* STD_OFF - Use generic bit copy functions with sawtooth bit numbering provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**
|
||
|
|
* VSTDLIB_USE_BITCPYMONOTONE_LIBRARY_FUNCTIONS
|
||
|
|
*
|
||
|
|
* If set to STD_ON all bit copy monotone APIs are mapped to external functions (e.g. compiler libraries
|
||
|
|
* or other implementations that are optimized for the target platform).
|
||
|
|
*
|
||
|
|
* Values:
|
||
|
|
* STD_ON - Use external bit copy functions with monotone bit numbering
|
||
|
|
* STD_OFF - Use generic bit copy functions with monotone bit numbering provided by VStdLib
|
||
|
|
*
|
||
|
|
* Default:
|
||
|
|
* STD_OFF
|
||
|
|
*/
|
||
|
|
# define VSTDLIB_USE_BITCPYMONOTONE_LIBRARY_FUNCTIONS STD_OFF
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Memory library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the memory initialization, memory
|
||
|
|
* copy and memory comparison APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* NOTE:
|
||
|
|
* - If the external functionality is not able to handle more than 65535 bytes it is necessary to define
|
||
|
|
* VSTDLIB_SUPPORT_LARGE_DATA to STD_OFF.
|
||
|
|
* - The specified functions must behave synchronously.
|
||
|
|
* - It has to be ensured that the specified memory initialization and memory copy functions are able to copy from
|
||
|
|
* and to all memory locations independently of the pointer length.
|
||
|
|
*/
|
||
|
|
# error "Verify the setting for VSTDLIB_SUPPORT_LARGE_DATA and fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
# define VSTDLIB_SUPPORT_LARGE_DATA STD_ON
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Set nCnt bytes to zero at pDst (any alignment) */
|
||
|
|
# define VStdLib_MemClr(pDst, nCnt) memset((pDst), 0, (nCnt))
|
||
|
|
|
||
|
|
/* Set nCnt bytes to the character nPattern at pDst (any alignment) */
|
||
|
|
# define VStdLib_MemSet(pDst, nPattern, nCnt) memset((pDst), (nPattern), (nCnt))
|
||
|
|
|
||
|
|
/* Copy nCnt bytes from pSrc to pDst (any alignment) */
|
||
|
|
# define VStdLib_MemCpy(pDst, pSrc, nCnt) memcpy((pDst), (pSrc), (nCnt))
|
||
|
|
|
||
|
|
/* Copy nCnt 16bit blocks from pSrc to pDst (both pointers 16-bit aligned) */
|
||
|
|
# define VStdLib_MemCpy16(pDst, pSrc, nCnt) memcpy((pDst), (pSrc), ((nCnt)<<1))
|
||
|
|
|
||
|
|
/* Copy nCnt 32bit blocks from pSrc to pDst (both pointers 32-bit aligned) */
|
||
|
|
# define VStdLib_MemCpy32(pDst, pSrc, nCnt) memcpy((pDst), (pSrc), ((nCnt)<<2))
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Compares the two buffers for the specified number of bytes and returns whether they are equal or not.
|
||
|
|
*
|
||
|
|
* The memory comparison API has to return the datatype sint8 with the following values
|
||
|
|
* < 0, if buffer1 contains a smaller value than buffer2.
|
||
|
|
* = 0, if buffer1 and buffer2 are equal for the number of compared bytes.
|
||
|
|
* > 0, if buffer1 contains a greater value than buffer2.
|
||
|
|
*
|
||
|
|
* Attention: The shown example is only possible, if memcmp() returns values which are in the range of datatype sint8!
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# define VStdLib_MemCmp(pBuf1, pBuf2, nCnt) ((sint8)memcmp((pBuf1), (pBuf2), (nCnt)))
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION == STD_ON)
|
||
|
|
/**
|
||
|
|
* Memory copy with endianness swap API library function.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION is set to STD_ON it is necessary to specify the
|
||
|
|
* memory copy with endianness swap API by overwriting the definition below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* NOTE:
|
||
|
|
* - If the external functionality is not able to handle more than 65535 bytes it is necessary to define
|
||
|
|
* VSTDLIB_SUPPORT_LARGE_DATA to STD_OFF.
|
||
|
|
* - The specified function must behave synchronously.
|
||
|
|
* - It has to be ensured that the specified function is able to copy from and to all memory locations independently
|
||
|
|
* of the pointer length.
|
||
|
|
*/
|
||
|
|
# error "Verify the setting for VSTDLIB_SUPPORT_LARGE_DATA and fill the macro in this section with the correct value!"
|
||
|
|
|
||
|
|
# if !defined (VSTDLIB_SUPPORT_LARGE_DATA)
|
||
|
|
# define VSTDLIB_SUPPORT_LARGE_DATA STD_ON
|
||
|
|
# endif
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Copies nCnt bytes from pSrc (any alignment) to pDst (integer type alignment) with swapped endianness according to
|
||
|
|
* the integer type intType.
|
||
|
|
*
|
||
|
|
* Possible values for parameter inType are:
|
||
|
|
* - 1 for integer type uint8/sint8
|
||
|
|
* - 2 for integer type uint16/sint16
|
||
|
|
* - 4 for integer type uint32/sint32
|
||
|
|
* - 8 for integer type uint64/sint64
|
||
|
|
*/
|
||
|
|
# define VStdLib_MemCpySwapEndian(pDst, pSrc, nCnt, intType)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_MEM_CPY_ENDIAN_CONVERSION_LIBRARY_FUNCTION == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION == STD_ON)
|
||
|
|
/**
|
||
|
|
* Memory check library function.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION is set to STD_ON it is necessary to define the memory check function by overwriting the definition below.
|
||
|
|
* The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* NOTE:
|
||
|
|
* - If the external functionality is not able to handle more than 65535 bytes it is necessary to define
|
||
|
|
* VSTDLIB_SUPPORT_LARGE_DATA to STD_OFF.
|
||
|
|
* - The specified function must behave synchronously.
|
||
|
|
*/
|
||
|
|
# error "Verify the setting for VSTDLIB_SUPPORT_LARGE_DATA and fill the macro in this section with the correct value!"
|
||
|
|
|
||
|
|
# if !defined (VSTDLIB_SUPPORT_LARGE_DATA)
|
||
|
|
# define VSTDLIB_SUPPORT_LARGE_DATA STD_ON
|
||
|
|
# endif
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Compares nCnt bytes of memory starting at pBuf to the specified 8-bit nPattern. If the content at pBuf is equal to the nPattern, E_OK is returned.
|
||
|
|
Otherwise, the errorCode passed as argument is returned. */
|
||
|
|
# define VStdLib_MemCheck(pBuf, nPattern, nCnt, errorCode)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_MEM_CHECK_LIBRARY_FUNCTION == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Bit search library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify 8-bit bit search APIs by
|
||
|
|
* overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* The 8-bit search APIs to get the highest/lowest bit position of a set/unset bit have to use the return value
|
||
|
|
* VSTDLIB_BITPOS_NA, if the value contains no set/unset bit.
|
||
|
|
*
|
||
|
|
* The 8-bit search APIs to get the bit count of leading/trailing ones/zeros have to use the return value
|
||
|
|
* VSTDLIB_BITCNT_NA, if the value contains no unset/set bit.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Returns the highest bit position of a set bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosOne8(value)
|
||
|
|
|
||
|
|
/* Returns the highest bit position of an unset bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosZero8(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of a set bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosOne8(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of an unset bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosZero8(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits preceding the highest unset bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingOnes8(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits preceding the highest set bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingZeros8(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits following the lowest unset bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingOnes8(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits following the lowest set bit in the specified 8-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingZeros8(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_8BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Bit search library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify 16-bit bit search APIs by
|
||
|
|
* overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* The 16-bit search APIs to get the highest/lowest bit position of a set/unset bit have to use the return value
|
||
|
|
* VSTDLIB_BITPOS_NA, if the value contains no set/unset bit.
|
||
|
|
*
|
||
|
|
* The 16-bit search APIs to get the bit count of leading/trailing ones/zeros have to use the return value
|
||
|
|
* VSTDLIB_BITCNT_NA, if the value contains no unset/set bit.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Returns the highest bit position of a set bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosOne16(value)
|
||
|
|
|
||
|
|
/* Returns the highest bit position of an unset bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosZero16(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of a set bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosOne16(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of an unset bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosZero16(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits preceding the highest unset bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingOnes16(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits preceding the highest set bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingZeros16(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits following the lowest unset bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingOnes16(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits following the lowest set bit in the specified 16-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingZeros16(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_16BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Bit search library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify 32-bit bit search APIs by
|
||
|
|
* overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* The 32-bit search APIs to get the highest/lowest bit position of a set/unset bit have to use the return value
|
||
|
|
* VSTDLIB_BITPOS_NA, if the value contains no set/unset bit.
|
||
|
|
*
|
||
|
|
* The 32-bit search APIs to get the bit count of leading/trailing ones/zeros have to use the return value
|
||
|
|
* VSTDLIB_BITCNT_NA, if the value contains no unset/set bit.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Returns the highest bit position of a set bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosOne32(value)
|
||
|
|
|
||
|
|
/* Returns the highest bit position of an unset bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosZero32(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of a set bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosOne32(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of an unset bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosZero32(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits preceding the highest unset bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingOnes32(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits preceding the highest set bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingZeros32(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits following the lowest unset bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingOnes32(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits following the lowest set bit in the specified 32-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingZeros32(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_32BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if ((defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON))
|
||
|
|
/**
|
||
|
|
* Bit search library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify 64-bit bit search APIs by
|
||
|
|
* overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
* The 64-bit search APIs to get the highest/lowest bit position of a set/unset bit have to use the return value
|
||
|
|
* VSTDLIB_BITPOS_NA, if the value contains no set/unset bit.
|
||
|
|
*
|
||
|
|
* The 64-bit search APIs to get the bit count of leading/trailing ones/zeros have to use the return value
|
||
|
|
* VSTDLIB_BITCNT_NA, if the value contains no unset/set bit.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Returns the highest bit position of a set bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosOne64(value)
|
||
|
|
|
||
|
|
/* Returns the highest bit position of an unset bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetHighestBitPosZero64(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of a set bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosOne64(value)
|
||
|
|
|
||
|
|
/* Returns the lowest bit position of an unset bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetLowestBitPosZero64(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits preceding the highest unset bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingOnes64(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits preceding the highest set bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetCountLeadingZeros64(value)
|
||
|
|
|
||
|
|
/* Returns the count of set bits following the lowest unset bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingOnes64(value)
|
||
|
|
|
||
|
|
/* Returns the count of unset bits following the lowest set bit in the specified 64-bit value */
|
||
|
|
# define VStdLib_GetCountTrailingZeros64(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* (defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_SEARCH_LIBRARY_FUNCTIONS == STD_ON) */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* (De-)serialization library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 16-bit
|
||
|
|
* deserialization and serialization APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 16-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertUint16ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 16-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertUint16ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 16-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertSint16ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 16-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertSint16ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 16-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint16BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 16-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint16LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 16-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint16BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 16-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint16LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_16BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* (De-)serialization library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 32-bit
|
||
|
|
* deserialization and serialization APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 32-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertUint32ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 32-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertUint32ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 32-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertSint32ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 32-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertSint32ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 32-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint32BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 32-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint32LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 32-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint32BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 32-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint32LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_32BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if ((defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON))
|
||
|
|
/**
|
||
|
|
* (De-)serialization library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 64-bit
|
||
|
|
* deserialization and serialization APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 64-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertUint64ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 64-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertUint64ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 64-bit value to an unsigned 8-bit array according to big endian */
|
||
|
|
# define VStdLib_ConvertSint64ToUint8ArrayBigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified signed 64-bit value to an unsigned 8-bit array according to little endian */
|
||
|
|
# define VStdLib_ConvertSint64ToUint8ArrayLittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 64-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint64BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an unsigned 64-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToUint64LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 64-bit value according to big endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint64BigEndian(src, dst)
|
||
|
|
|
||
|
|
/* Converts the specified unsigned 8-bit array to an signed 64-bit value according to little endian */
|
||
|
|
# define VStdLib_ConvertUint8ArrayToSint64LittleEndian(src, dst)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* (defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_DE_SERIALIZATION_LIBRARY_FUNCTIONS == STD_ON) */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Endianness swap library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 16-bit
|
||
|
|
* endianness swap APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified unsigned 16-bit value */
|
||
|
|
# define VStdLib_SwapEndianUint16(value)
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified signed 16-bit value */
|
||
|
|
# define VStdLib_SwapEndianSint16(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_16BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Endianness swap library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 32-bit
|
||
|
|
* endianness swap APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified unsigned 32-bit value */
|
||
|
|
# define VStdLib_SwapEndianUint32(value)
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified signed 32-bit value */
|
||
|
|
# define VStdLib_SwapEndianSint32(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* VSTDLIB_USE_32BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if ((defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON))
|
||
|
|
/**
|
||
|
|
* Endianness swap library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the 64-bit
|
||
|
|
* endianness swap APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified unsigned 64-bit value */
|
||
|
|
# define VStdLib_SwapEndianUint64(value)
|
||
|
|
|
||
|
|
/* Swaps the endianness of the specified signed 64-bit value */
|
||
|
|
# define VStdLib_SwapEndianSint64(value)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* (defined PLATFORM_SUPPORT_SINT64_UINT64) && (VSTDLIB_USE_64BIT_ENDIAN_CONVERSION_LIBRARY_FUNCTIONS == STD_ON) */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Bitcopy sawtooth library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the Bitcopy
|
||
|
|
* sawtooth APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with big data endianness
|
||
|
|
* Bit numbering of source and destination is sawtooth */
|
||
|
|
# define VStdLib_BitCpySawBigToBigEndian(pDst, nDstBitOffsetSaw, pSrc, nSrcBitOffsetSaw, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with swapped data endianness (big to little)
|
||
|
|
* Bit numbering of source and destination is sawtooth */
|
||
|
|
# define VStdLib_BitCpySawBigToLittleEndian(pDst, nDstBitOffsetSaw, pSrc, nSrcBitOffsetSaw, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with swapped data endianness (little to big)
|
||
|
|
* Bit numbering of source and destination is sawtooth */
|
||
|
|
# define VStdLib_BitCpySawLittleToBigEndian(pDst, nDstBitOffsetSaw, pSrc, nSrcBitOffsetSaw, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with little data endianness
|
||
|
|
* Bit numbering of source and destination is sawtooth */
|
||
|
|
# define VStdLib_BitCpySawLittleToLittleEndian(pDst, nDstBitOffsetSaw, pSrc, nSrcBitOffsetSaw, nCnt)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* (VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS == STD_ON) */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Additional configuration if VSTDLIB_USE_BITCPYMONOTONE_LIBRARY_FUNCTIONS == STD_ON
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if (VSTDLIB_USE_BITCPYMONOTONE_LIBRARY_FUNCTIONS == STD_ON)
|
||
|
|
/**
|
||
|
|
* Bitcopy sawtooth library functions.
|
||
|
|
*
|
||
|
|
* If VSTDLIB_USE_BITCPYSAWTOOTH_LIBRARY_FUNCTIONS is set to STD_ON it is necessary to specify the Bitcopy
|
||
|
|
* sawtooth APIs by overwriting the definitions below. The error directive has to be removed.
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
# error "Fill the macros in this section with correct values!"
|
||
|
|
|
||
|
|
/* PRQA S 3453 FUNCTION_LIKE_MACRO */ /* MD_MSR_FctLikeMacro */
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with big data endianness
|
||
|
|
* Bit numbering of source and destination is monotone */
|
||
|
|
# define VStdLib_BitCpyMonBigToBigEndian(pDst, nDstBitOffsetMon, pSrc, nSrcBitOffsetMon, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with swapped data endianness (big to little)
|
||
|
|
* Bit numbering of source and destination is monotone */
|
||
|
|
# define VStdLib_BitCpyMonBigToLittleEndian(pDst, nDstBitOffsetMon, pSrc, nSrcBitOffsetMon, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with swapped data endianness (little to big)
|
||
|
|
* Bit numbering of source and destination is monotone */
|
||
|
|
# define VStdLib_BitCpyMonLittleToBigEndian(pDst, nDstBitOffsetMon, pSrc, nSrcBitOffsetMon, nCnt)
|
||
|
|
|
||
|
|
/* Copy nCnt bits from pSrc to pDst (any offset) with little data endianness
|
||
|
|
* Bit numbering of source and destination is monotone */
|
||
|
|
# define VStdLib_BitCpyMonLittleToLittleEndian(pDst, nDstBitOffsetMon, pSrc, nSrcBitOffsetMon, nCnt)
|
||
|
|
|
||
|
|
/* PRQA L:FUNCTION_LIKE_MACRO */
|
||
|
|
|
||
|
|
# endif /* (VSTDLIB_USE_BITCPYMONOTONE_LIBRARY_FUNCTIONS == STD_ON) */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Compatibility for legacy Vector modules
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# if defined(VSTD_ENABLE_INTCTRL_HANDLING) || defined(VSTD_ENABLE_DEFAULT_INTCTRL) || \
|
||
|
|
defined(VSTD_ENABLE_OSEK_INTCTRL) || defined(VSTD_ENABLE_APPL_INTCTRL)
|
||
|
|
/**
|
||
|
|
* Compatibility for legacy Vector modules.
|
||
|
|
*
|
||
|
|
* Legacy Vector modules that are used in a MICROSAR stack might rely on interrupt handling functionalities that are
|
||
|
|
* no longer supported by VStdLib. Map relevant calls to functionalities that are provided by the MICROSAR stack or
|
||
|
|
* application and remove the error directive. VStdSuspendAllInterrupts() and VStdResumeAllInterrupts() can be mapped
|
||
|
|
* to OS services or an exclusive area that is provided by the BSW scheduler for example.
|
||
|
|
*/
|
||
|
|
# error "VStdLib_GenericAsr does not support interrupt control handling, provide a mapping in this section!"
|
||
|
|
|
||
|
|
# endif
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* Do not modify anything below
|
||
|
|
*********************************************************************************************************************/
|
||
|
|
|
||
|
|
# define VSTDLIB_CFG_MAJOR_VERSION (3u)
|
||
|
|
# define VSTDLIB_CFG_MINOR_VERSION (4u)
|
||
|
|
|
||
|
|
#endif /* VSTDLIB_CFG_H */
|
||
|
|
|
||
|
|
/**********************************************************************************************************************
|
||
|
|
* END OF FILE: VStdLib_Cfg.h
|
||
|
|
*********************************************************************************************************************/
|