blob: d92e731008394e6c8b20566421b8ba4808859565 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __AMLOG_H
#define __AMLOG_H
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#ifdef AMLOG
#define AMLOG_DEFAULT_LEVEL 0
#define AMLOG_DEFAULT_MASK 0xffffffffUL
#define AMLOG_DEFAULT_LEVEL_DESC "log_level."
#define AMLOG_DEFAULT_MASK_DESC "log_mask."
#define MODULE_AMLOG(def_level, def_mask, desc_level, desc_mask) \
u32 LOG_LEVEL_VAR = def_level; \
module_param(LOG_LEVEL_VAR, uint, 0664); \
MODULE_PARM_DESC(LOG_LEVEL_VAR, desc_level); \
u32 LOG_MASK_VAR = def_mask; \
module_param(LOG_MASK_VAR, uint, 0664); \
MODULE_PARM_DESC(LOG_MASK_VAR, desc_mask)
#ifndef LOG_LEVEL_VAR
#error LOG_LEVEL_VAR undefined.
#endif
#ifndef LOG_MASK_VAR
#error LOG_MASK_VAR undefined.
#endif
extern u32 LOG_LEVEL_VAR, LOG_MASK_VAR;
#define amlog(x...) pr_info(x)
#define amlog_level(level, x...) \
do { \
if ((level) >= LOG_LEVEL_VAR) \
pr_info(x); \
} while (0)
#define amlog_mask(mask, x...) \
do { \
if ((mask) & LOG_MASK_VAR) \
pr_info(x); \
} while (0)
#define amlog_mask_level(mask, level, x...) \
do { \
if (((level) >= LOG_LEVEL_VAR) && ((mask) & LOG_MASK_VAR)) \
pr_info(x); \
} while (0)
#define amlog_if(cond, x...) do {if (cond) pr_info(x); } while {0}
#define amlog_level_if(cond, level, x...) \
do { \
if ((cond) && ((level) >= LOG_LEVEL_VAR)) \
pr_info(x); \
} while (0)
#define amlog_mask_if(cond, mask, x...) \
do { \
if ((cond) && ((mask) & LOG_MASK_VAR)) \
pr_info(x); \
} while (0)
#define amlog_mask_levelif(cond, mask, level, x...) \
do { \
if ((cond) && ((level) >= LOG_LEVEL_VAR) &&\
((mask) & LOG_MASK_VAR)) \
pr_info(x...); \
} while (0)
#else
#define MODULE_AMLOG(def_level, def_mask, desc_level, desc_mask)
#define amlog(x...)
#define amlog_level(level, x...)
#define amlog_mask(mask, x...)
#define amlog_mask_level(mask, level, x...)
#define amlog_if(cond, x...)
#define amlog_level_if(cond, level, x...)
#define amlog_mask_if(cond, mask, x...)
#define amlog_mask_level_if(cond, mask, level, x...)
#endif
#endif /* __AMLOG_H */