vprintk support
PATCH 1/3 vprintk support
Add vprintk call. This lets us directly pass varargs stuff to the console without using vsnprintf to an intermediate buffer.
Signed-off-by Matt Mackall <[email protected]>
tiny-mpm/include/linux/kernel.h | 1 + tiny-mpm/kernel/printk.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-)
include/linux/kernel.h +1 -0
@@ -87,6 +87,7 @@extern int kernel_text_address (unsigned long addr);extern int session_of_pgrp (int pgrp); +asmlinkage int vprintk(const char *fmt, va_list args); asmlinkage int printk(const char * fmt, ...) __attribute__ ((format (printf,1 ,2 )));
kernel/printk.c +12 -2
@@ -483,6 +483,17 @@ asmlinkage int printk(const char *fmt, ...) {va_list args; +int r; + +va_start (args, fmt); + r =vprintk (fmt, args); +va_end (args); + +return r; +} + +asmlinkage int vprintk(const char *fmt, va_list args) +{unsigned long flags;int printed_len;char *p;
@@ -500,9 +511,7 @@spin_lock_irqsave (&logbuf_lock, flags);/* Emit the output into the temporary buffer */ -va_start (args, fmt); printed_len =vscnprintf (printk_buf,sizeof (printk_buf), fmt, args); -va_end (args);/* * Copy the output into log_buf. If the caller didn't provide
@@ -554,6 +563,7 @@return printed_len; }EXPORT_SYMBOL (printk); +EXPORT_SYMBOL (vprintk);/** * acquire_console_sem - lock the console system for exclusive use.
Signature · 1 line
Mathematics is the supreme nostalgia of our time.