blob: 3ca369f4b8f0a1e03c4a4fa0844773376fd89b4d [file] [log] [blame]
/*
* Copyright (C) 2018 Synaptics Incorporated. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND
* SYNAPTICS EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE, AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY
* INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL SYNAPTICS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR
* CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE
* OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED AND
* BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF
* COMPETENT JURISDICTION DOES NOT PERMIT THE DISCLAIMER OF DIRECT
* DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS' TOTAL CUMULATIVE LIABILITY
* TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S. DOLLARS.
*/
#ifndef _DIAG_COMMON_
#define _DIAG_COMMON_
#include "lgpl_printf.h"
#include "string.h"
#include "diag_cpu.h"
#define VELOCE 0
#define FPGA 1
#define ASIC 2
#undef PLATFORM
#define PLATFORM ASIC // default platform
#if PLATFORM == VELOCE
#define A_F_V(a, f, v) (v)
#elif PLATFORM == FPGA
#define A_F_V(a, f, v) (f)
#else // ASIC
#define A_F_V(a, f, v) (a)
#endif
#ifndef NULL
#define NULL 0
#endif
enum PRINT_LEVEL
{
PRN_NONE=0,
PRN_ERR,
PRN_RES,
PRN_INFO,
PRN_DBG,
PRN_BUF,
};
#define PRN_BUFFERED (1<<5)
#define dbg_printf(lvl, format, args...) \
do { \
if((lvl) > PRN_RES){ \
} \
else \
lgpl_printf(format, ## args); \
}while(0)
#define DIAG_ASSERT(cond) {if (!(cond)) { \
dbg_printf(PRN_RES, "Assert fail, condition:%s, file:%s, line:%d\n", #cond, __FILE__, __LINE__); \
while(1); \
}}
#ifndef ALIGN
#define ALIGN(n, align) (((n)+((align) - 1)) & (~((align) - 1)))
#endif
/*
* Macro to remove unused variable warning for function args not used for
* specific platform.
*/
#define UNUSED(var) do { (void)(var); } while(0)
#endif /*_DIAG_COMMON_*/