192 lines
6.4 KiB
C
192 lines
6.4 KiB
C
/* uniklog.h
|
|
*
|
|
* Copyright (C) 2010 - 2013 UNISYS CORPORATION
|
|
* 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 as published by
|
|
* the Free Software Foundation; either version 2 of the License, or (at
|
|
* your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
|
* NON INFRINGEMENT. See the GNU General Public License for more
|
|
* details.
|
|
*/
|
|
|
|
/* This module contains macros to aid developers in logging messages.
|
|
*
|
|
* This module is affected by the DEBUG compiletime option.
|
|
*
|
|
*/
|
|
#ifndef __UNIKLOG_H__
|
|
#define __UNIKLOG_H__
|
|
|
|
#include <linux/printk.h>
|
|
|
|
/*
|
|
* # DBGINF
|
|
*
|
|
* \brief Log debug informational message - log a LOG_INFO message only
|
|
* if DEBUG compiletime option enabled
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the
|
|
* format string.
|
|
* \return nothing
|
|
*
|
|
* Log a message at the LOG_INFO level, but only if DEBUG is enabled. If
|
|
* DEBUG is disabled, this expands to a no-op.
|
|
*/
|
|
|
|
/*
|
|
* # DBGVER
|
|
*
|
|
* \brief Log debug verbose message - log a LOG_DEBUG message only if
|
|
* DEBUG compiletime option enabled
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the
|
|
* format string.
|
|
* \return nothing
|
|
*
|
|
* Log a message at the LOG_DEBUG level, but only if DEBUG is enabled. If
|
|
* DEBUG is disabled, this expands to a no-op. Note also that LOG_DEBUG
|
|
* messages can be enabled/disabled at runtime as well.
|
|
*/
|
|
#define DBGINFDEV(devname, fmt, args...) do { } while (0)
|
|
#define DBGVERDEV(devname, fmt, args...) do { } while (0)
|
|
#define DBGINF(fmt, args...) do { } while (0)
|
|
#define DBGVER(fmt, args...) do { } while (0)
|
|
|
|
/*
|
|
* # LOGINF
|
|
*
|
|
* \brief Log informational message - logs a message at the LOG_INFO level
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the
|
|
* format string.
|
|
* \return nothing
|
|
*
|
|
* Logs the specified message at the LOG_INFO level.
|
|
*/
|
|
|
|
#define LOGINF(fmt, args...) pr_info(fmt, ## args)
|
|
#define LOGINFDEV(devname, fmt, args...) \
|
|
pr_info("%s " fmt, devname, ## args)
|
|
#define LOGINFDEVX(devno, fmt, args...) \
|
|
pr_info("dev%d " fmt, devno, ## args)
|
|
#define LOGINFNAME(vnic, fmt, args...) \
|
|
do { \
|
|
if (vnic != NULL) { \
|
|
pr_info("%s " fmt, vnic->name, ## args); \
|
|
} else { \
|
|
pr_info(fmt, ## args); \
|
|
} \
|
|
} while (0)
|
|
|
|
/*
|
|
* # LOGVER
|
|
*
|
|
* \brief Log verbose message - logs a message at the LOG_DEBUG level,
|
|
* which can be disabled at runtime
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the format
|
|
* \param string.
|
|
* \return nothing
|
|
*
|
|
* Logs the specified message at the LOG_DEBUG level. Note also that
|
|
* LOG_DEBUG messages can be enabled/disabled at runtime as well.
|
|
*/
|
|
#define LOGVER(fmt, args...) pr_debug(fmt, ## args)
|
|
#define LOGVERDEV(devname, fmt, args...) \
|
|
pr_debug("%s " fmt, devname, ## args)
|
|
#define LOGVERNAME(vnic, fmt, args...) \
|
|
do { \
|
|
if (vnic != NULL) { \
|
|
pr_debug("%s " fmt, vnic->name, ## args); \
|
|
} else { \
|
|
pr_debug(fmt, ## args); \
|
|
} \
|
|
} while (0)
|
|
|
|
/*
|
|
* # LOGERR
|
|
*
|
|
* \brief Log error message - logs a message at the LOG_ERR level,
|
|
* including source line number information
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the format
|
|
* \param string.
|
|
* \return nothing
|
|
*
|
|
* Logs the specified error message at the LOG_ERR level. It will also
|
|
* include the file, line number, and function name of where the error
|
|
* originated in the log message.
|
|
*/
|
|
#define LOGERR(fmt, args...) pr_err(fmt, ## args)
|
|
#define LOGERRDEV(devname, fmt, args...) \
|
|
pr_err("%s " fmt, devname, ## args)
|
|
#define LOGERRDEVX(devno, fmt, args...) \
|
|
pr_err("dev%d " fmt, devno, ## args)
|
|
#define LOGERRNAME(vnic, fmt, args...) \
|
|
do { \
|
|
if (vnic != NULL) { \
|
|
pr_err("%s " fmt, vnic->name, ## args); \
|
|
} else { \
|
|
pr_err(fmt, ## args); \
|
|
} \
|
|
} while (0)
|
|
#define LOGORDUMPERR(seqfile, fmt, args...) do { \
|
|
if (seqfile) { \
|
|
seq_printf(seqfile, fmt, ## args); \
|
|
} else { \
|
|
LOGERR(fmt, ## args); \
|
|
} \
|
|
} while (0)
|
|
|
|
/*
|
|
* # LOGWRN
|
|
*
|
|
* \brief Log warning message - Logs a message at the LOG_WARNING level,
|
|
* including source line number information
|
|
*
|
|
* \param devname the device name of the device reporting this message, or
|
|
* NULL if this message is NOT device-related.
|
|
* \param fmt printf()-style format string containing the message to log.
|
|
* \param args Optional arguments to be formatted and inserted into the format
|
|
* \param string.
|
|
* \return nothing
|
|
*
|
|
* Logs the specified error message at the LOG_WARNING level. It will also
|
|
* include the file, line number, and function name of where the error
|
|
* originated in the log message.
|
|
*/
|
|
#define LOGWRN(fmt, args...) pr_warn(fmt, ## args)
|
|
#define LOGWRNDEV(devname, fmt, args...) \
|
|
pr_warn("%s " fmt, devname, ## args)
|
|
#define LOGWRNNAME(vnic, fmt, args...) \
|
|
do { \
|
|
if (vnic != NULL) { \
|
|
pr_warn("%s " fmt, vnic->name, ## args); \
|
|
} else { \
|
|
pr_warn(fmt, ## args); \
|
|
} \
|
|
} while (0)
|
|
|
|
#endif /* __UNIKLOG_H__ */
|