#include <linux/log2.h>
#include <linux/typecheck.h>
#include <linux/ratelimit.h>
- #include <linux/dynamic_printk.h>
+ #include <linux/dynamic_debug.h>
#include <asm/byteorder.h>
#include <asm/bug.h>
extern int printk_ratelimit(void);
extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
unsigned int interval_msec);
+
+/*
+ * Print a one-time message (analogous to WARN_ONCE() et al):
+ */
+#define printk_once(x...) ({ \
+ static int __print_once = 1; \
+ \
+ if (__print_once) { \
+ __print_once = 0; \
+ printk(x); \
+ } \
+})
+
#else
static inline int vprintk(const char *s, va_list args)
__attribute__ ((format (printf, 1, 0)));
static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, \
unsigned int interval_msec) \
{ return false; }
+
+/* No effect, but we still get type checking even in the !PRINTK case: */
+#define printk_once(x...) printk(x)
+
#endif
extern int printk_needs_cpu(int cpu);
#if defined(DEBUG)
#define pr_debug(fmt, ...) \
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
- #elif defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
+ #elif defined(CONFIG_DYNAMIC_DEBUG)
+ /* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
#define pr_debug(fmt, ...) do { \
- dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
+ dynamic_pr_debug(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define pr_debug(fmt, ...) \
# Library configuration
#
+config BINARY_PRINTF
+ def_bool n
+
menu "Library routines"
config BITREVERSE
config LZO_DECOMPRESS
tristate
+ #
+ # These all provide a common interface (hence the apparent duplication with
+ # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
+ #
+ config DECOMPRESS_GZIP
+ select ZLIB_INFLATE
+ tristate
+
+ config DECOMPRESS_BZIP2
+ tristate
+
+ config DECOMPRESS_LZMA
+ tristate
+
#
# Generic allocator support is selected if needed
#
config TEXTSEARCH_FSM
tristate
- #
- # plist support is select#ed if needed
- #
- config PLIST
- boolean
-
config HAS_IOMEM
boolean
depends on !NO_IOMEM
bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
depends on EXPERIMENTAL && BROKEN
+ #
+ # Netlink attribute parsing support is select'ed if needed
+ #
+ config NLATTR
+ bool
+
endmenu