Loading include/linux/kernel.h +17 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,19 @@ extern struct ratelimit_state printk_ratelimit_state; 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))); Loading @@ -253,6 +266,10 @@ static inline int printk_ratelimit(void) { return 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); Loading include/linux/string.h +7 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ #include <linux/compiler.h> /* for inline */ #include <linux/types.h> /* for size_t */ #include <linux/stddef.h> /* for NULL */ #include <stdarg.h> extern char *strndup_user(const char __user *, long); Loading Loading @@ -111,6 +112,12 @@ extern void argv_free(char **argv); extern bool sysfs_streq(const char *s1, const char *s2); #ifdef CONFIG_BINARY_PRINTF int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args); int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf); int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __printf(3, 4); #endif extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, const void *from, size_t available); Loading lib/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ # Library configuration # config BINARY_PRINTF def_bool n menu "Library routines" config BITREVERSE Loading Loading
include/linux/kernel.h +17 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,19 @@ extern struct ratelimit_state printk_ratelimit_state; 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))); Loading @@ -253,6 +266,10 @@ static inline int printk_ratelimit(void) { return 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); Loading
include/linux/string.h +7 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ #include <linux/compiler.h> /* for inline */ #include <linux/types.h> /* for size_t */ #include <linux/stddef.h> /* for NULL */ #include <stdarg.h> extern char *strndup_user(const char __user *, long); Loading Loading @@ -111,6 +112,12 @@ extern void argv_free(char **argv); extern bool sysfs_streq(const char *s1, const char *s2); #ifdef CONFIG_BINARY_PRINTF int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args); int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf); int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __printf(3, 4); #endif extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos, const void *from, size_t available); Loading
lib/Kconfig +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,9 @@ # Library configuration # config BINARY_PRINTF def_bool n menu "Library routines" config BITREVERSE Loading