| /* |
| * 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_*/ |