40 lines
1.8 KiB
C
40 lines
1.8 KiB
C
#ifndef CSR_MACRO_H__
|
|
#define CSR_MACRO_H__
|
|
/*****************************************************************************
|
|
|
|
(c) Cambridge Silicon Radio Limited 2010
|
|
All rights reserved and confidential information of CSR
|
|
|
|
Refer to LICENSE.txt included with this source for details
|
|
on the license terms.
|
|
|
|
*****************************************************************************/
|
|
|
|
#include <linux/types.h>
|
|
|
|
#define FALSE (0)
|
|
#define TRUE (1)
|
|
|
|
/*------------------------------------------------------------------*/
|
|
/* Endian conversion */
|
|
/*------------------------------------------------------------------*/
|
|
#define CSR_GET_UINT16_FROM_LITTLE_ENDIAN(ptr) (((u16) ((u8 *) (ptr))[0]) | ((u16) ((u8 *) (ptr))[1]) << 8)
|
|
#define CSR_GET_UINT32_FROM_LITTLE_ENDIAN(ptr) (((u32) ((u8 *) (ptr))[0]) | ((u32) ((u8 *) (ptr))[1]) << 8 | \
|
|
((u32) ((u8 *) (ptr))[2]) << 16 | ((u32) ((u8 *) (ptr))[3]) << 24)
|
|
#define CSR_COPY_UINT16_TO_LITTLE_ENDIAN(uint, ptr) ((u8 *) (ptr))[0] = ((u8) ((uint) & 0x00FF)); \
|
|
((u8 *) (ptr))[1] = ((u8) ((uint) >> 8))
|
|
#define CSR_COPY_UINT32_TO_LITTLE_ENDIAN(uint, ptr) ((u8 *) (ptr))[0] = ((u8) ((uint) & 0x000000FF)); \
|
|
((u8 *) (ptr))[1] = ((u8) (((uint) >> 8) & 0x000000FF)); \
|
|
((u8 *) (ptr))[2] = ((u8) (((uint) >> 16) & 0x000000FF)); \
|
|
((u8 *) (ptr))[3] = ((u8) (((uint) >> 24) & 0x000000FF))
|
|
|
|
/*------------------------------------------------------------------*/
|
|
/* Misc */
|
|
/*------------------------------------------------------------------*/
|
|
/* Use this macro on unused local variables that cannot be removed (such as
|
|
unused function parameters). This will quell warnings from certain compilers
|
|
and static code analysis tools like Lint and Valgrind. */
|
|
#define CSR_UNUSED(x) ((void) (x))
|
|
|
|
#endif
|