/* * Common data types for use by the MobiCore Kernel API Driver * * <-- Copyright Giesecke & Devrient GmbH 2009 - 2012 --> * * 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. */ #ifndef _MC_KAPI_COMMON_H #define _MC_KAPI_COMMON_H #include "connection.h" #include "mcinq.h" void mcapi_insert_connection(struct connection *connection); void mcapi_remove_connection(uint32_t seq); unsigned int mcapi_unique_id(void); #define MC_DAEMON_PID 0xFFFFFFFF #define MC_DRV_MOD_DEVNODE_FULLPATH "/dev/mobicore" /* dummy function helper macro */ #define DUMMY_FUNCTION() do {} while (0) /* Found in main.c */ extern struct device *mc_kapi; #define MCDRV_ERROR(dev, txt, ...) \ dev_err(dev, "%s() ### ERROR: " txt, __func__, ##__VA_ARGS__) #if defined(DEBUG) /* #define DEBUG_VERBOSE */ #if defined(DEBUG_VERBOSE) #define MCDRV_DBG_VERBOSE MCDRV_DBG #else #define MCDRV_DBG_VERBOSE(...) DUMMY_FUNCTION() #endif #define MCDRV_DBG(dev, txt, ...) \ dev_info(dev, "%s(): " txt, __func__, ##__VA_ARGS__) #define MCDRV_DBG_WARN(dev, txt, ...) \ dev_warn(dev, "%s() WARNING: " txt, __func__, ##__VA_ARGS__) #define MCDRV_DBG_ERROR(dev, txt, ...) \ dev_err(dev, "%s() ### ERROR: " txt, __func__, ##__VA_ARGS__) #define MCDRV_ASSERT(cond) \ do { \ if (unlikely(!(cond))) { \ panic("mc_kernelapi Assertion failed: %s:%d\n", \ __FILE__, __LINE__); \ } \ } while (0) #elif defined(NDEBUG) #define MCDRV_DBG_VERBOSE(...) DUMMY_FUNCTION() #define MCDRV_DBG(...) DUMMY_FUNCTION() #define MCDRV_DBG_WARN(...) DUMMY_FUNCTION() #define MCDRV_DBG_ERROR(...) DUMMY_FUNCTION() #define MCDRV_ASSERT(...) DUMMY_FUNCTION() #else #error "Define DEBUG or NDEBUG" #endif /* [not] defined(DEBUG_MCMODULE) */ #define assert(expr) MCDRV_ASSERT(expr) #endif /* _MC_KAPI_COMMON_H */