123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /*
- * @file hv_pm51_driver_I2C.h
- * @brief Header file of I2C driver.
- *
- * @verbatim
- * ==============================================================================
- * ##### How to use #####
- * ==============================================================================
- * (+) Use ()
- *
- * @endverbatim
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2023-03-01
- */
- #ifndef _HV_VOS_MACRO_H
- #define _HV_VOS_MACRO_H
- #include "hv_vos_Types.h"
- #include "hv_vos_Log.h"
- /** @defgroup VOS_MACRO VOS_MACRO
- * VOS type definitions
- * @{
- *
- */
- VOS_EXTERN_C_BEGIN
- /* unified strstr function */
- #define HV_STRSTR(str, substr) strstr(str, substr)
- /* unified strcpy function */
- #define HV_STRCPY(dest, src) strcpy(dest, src)
- /* unified strncpy function */
- #define HV_STRNCPY(dest, src, len) strncpy(dest, src, len)
- /* mark as unused for prevent compiler warning */
- #ifndef HV_UNUSED
- #define HV_UNUSED(var) (void)(var)
- #endif
- /* mask assignment */
- #define HV_MASK_ASSIGN(old, mask, val) (((old) & ~mask) | ((val) & (mask)))
- /* show prompt and wait a key to continue */
- #define HV_WAIT_KEY() do {char ch = 0; HV_LOGA("Press enter key to continue.\n"); Hv_Vos_STDIO_GetChar(&ch); } while (0)
- /* register exiting function */
- #define HV_REGISTER_EXIT(func) atexit(func)
- /* change 32 bits endianess */
- INLINE UINT32 CHANGE_ENDIAN_U32(UINT32 x)
- {
- return ((( x >> 24) & 0x000000FF) | ((x >> 8) & 0x0000FF00) | ((x << 8) & 0x00FF0000) | ((x << 24) & 0xFF000000));
- }
- /* change 16 bits endianess */
- INLINE USHORT16 CHANGE_ENDIAN_U16(USHORT16 x)
- {
- return ((x >> 8) & 0x000000FF) | ((x << 8) & 0x0000FF00);
- }
- /* UCHAR8* to UINT32 using big endian */
- INLINE UINT32 CHANGE_TO_U16_BE(const UCHAR8 *p)
- {
- return ((UINT32)(*p << 8) | (UINT32)(*(p + 1)));
- }
- /* UCHAR8* to UINT32 using little endian */
- INLINE UINT32 CHANGE_TO_U16_LE(const UCHAR8 *p)
- {
- return ((UINT32)(*p) | (UINT32)((*(p + 1)) << 8));
- }
- /* UCHAR8* to UINT32 using big endian */
- INLINE UINT32 CHANGE_TO_U24_BE(const UCHAR8 *p)
- {
- return ((UINT32)(*p << 16) | (UINT32)((*(p + 1)) << 8) | (UINT32)(*(p + 2)));
- }
- /* UCHAR8* to UINT32 using little endian */
- INLINE UINT32 CHANGE_TO_U24_LE(const UCHAR8 *p)
- {
- return ((UINT32)(*p) | (UINT32)((*(p + 1)) << 8)|(UINT32)((*(p + 2)) << 16));
- }
- /* UCHAR8* to UINT32 using big endian */
- INLINE UINT32 CHANGE_TO_U32_BE(const UCHAR8 *p)
- {
- return ((UINT32)(*p << 24) | (UINT32)((*(p + 1)) << 16) | (UINT32)((*(p + 2)) << 8) | (UINT32)((*(p + 3)) << 0));
- }
- /* UCHAR8* to UINT32 using little endian */
- INLINE UINT32 CHANGE_TO_U32_LE(const UCHAR8 *p)
- {
- return ((UINT32)(*p) | (UINT32)((*(p + 1)) << 8) | (UINT32)((*(p + 2)) << 16) | (UINT32)((*(p + 3)) << 24));
- }
- /**
- * @}
- */
- VOS_EXTERN_C_END
- #endif
|