mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
docs: pr_*() kerneldocs and basic printk docs
Add kerneldocs comments to the pr_*() macros in printk.h. Add a new rst node in the core-api manual describing the basic usage of printk and the related macro aliases. Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com> Link: https://lore.kernel.org/r/20200403093617.18003-1-ricardo.canuelo@collabora.com Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
4951d27b09
commit
90c165f0de
4 changed files with 218 additions and 12 deletions
|
@ -279,39 +279,116 @@ static inline void printk_safe_flush_on_panic(void)
|
|||
|
||||
extern int kptr_restrict;
|
||||
|
||||
/**
|
||||
* pr_fmt - used by the pr_*() macros to generate the printk format string
|
||||
* @fmt: format string passed from a pr_*() macro
|
||||
*
|
||||
* This macro can be used to generate a unified format string for pr_*()
|
||||
* macros. A common use is to prefix all pr_*() messages in a file with a common
|
||||
* string. For example, defining this at the top of a source file:
|
||||
*
|
||||
* #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
*
|
||||
* would prefix all pr_info, pr_emerg... messages in the file with the module
|
||||
* name.
|
||||
*/
|
||||
#ifndef pr_fmt
|
||||
#define pr_fmt(fmt) fmt
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These can be used to print at the various log levels.
|
||||
* All of these will print unconditionally, although note that pr_debug()
|
||||
* and other debug macros are compiled out unless either DEBUG is defined
|
||||
* or CONFIG_DYNAMIC_DEBUG is set.
|
||||
/**
|
||||
* pr_emerg - Print an emergency-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_EMERG loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_emerg(fmt, ...) \
|
||||
printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_alert - Print an alert-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_ALERT loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_alert(fmt, ...) \
|
||||
printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_crit - Print a critical-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_CRIT loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_crit(fmt, ...) \
|
||||
printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_err - Print an error-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_ERR loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_err(fmt, ...) \
|
||||
printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_warn - Print a warning-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_WARNING loglevel. It uses pr_fmt()
|
||||
* to generate the format string.
|
||||
*/
|
||||
#define pr_warn(fmt, ...) \
|
||||
printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_notice - Print a notice-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_NOTICE loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_notice(fmt, ...) \
|
||||
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/**
|
||||
* pr_info - Print an info-level message
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_INFO loglevel. It uses pr_fmt() to
|
||||
* generate the format string.
|
||||
*/
|
||||
#define pr_info(fmt, ...) \
|
||||
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
||||
/*
|
||||
* Like KERN_CONT, pr_cont() should only be used when continuing
|
||||
* a line with no newline ('\n') enclosed. Otherwise it defaults
|
||||
* back to KERN_DEFAULT.
|
||||
|
||||
/**
|
||||
* pr_cont - Continues a previous log message in the same line.
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_CONT loglevel. It should only be
|
||||
* used when continuing a log message with no newline ('\n') enclosed. Otherwise
|
||||
* it defaults back to KERN_DEFAULT loglevel.
|
||||
*/
|
||||
#define pr_cont(fmt, ...) \
|
||||
printk(KERN_CONT fmt, ##__VA_ARGS__)
|
||||
|
||||
/* pr_devel() should produce zero code unless DEBUG is defined */
|
||||
/**
|
||||
* pr_devel - Print a debug-level message conditionally
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to a printk with KERN_DEBUG loglevel if DEBUG is
|
||||
* defined. Otherwise it does nothing.
|
||||
*
|
||||
* It uses pr_fmt() to generate the format string.
|
||||
*/
|
||||
#ifdef DEBUG
|
||||
#define pr_devel(fmt, ...) \
|
||||
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
||||
|
@ -325,8 +402,19 @@ extern int kptr_restrict;
|
|||
#if defined(CONFIG_DYNAMIC_DEBUG)
|
||||
#include <linux/dynamic_debug.h>
|
||||
|
||||
/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
|
||||
#define pr_debug(fmt, ...) \
|
||||
/**
|
||||
* pr_debug - Print a debug-level message conditionally
|
||||
* @fmt: format string
|
||||
* @...: arguments for the format string
|
||||
*
|
||||
* This macro expands to dynamic_pr_debug() if CONFIG_DYNAMIC_DEBUG is
|
||||
* set. Otherwise, if DEBUG is defined, it's equivalent to a printk with
|
||||
* KERN_DEBUG loglevel. If DEBUG is not defined it does nothing.
|
||||
*
|
||||
* It uses pr_fmt() to generate the format string (dynamic_pr_debug() uses
|
||||
* pr_fmt() internally).
|
||||
*/
|
||||
#define pr_debug(fmt, ...) \
|
||||
dynamic_pr_debug(fmt, ##__VA_ARGS__)
|
||||
#elif defined(DEBUG)
|
||||
#define pr_debug(fmt, ...) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue