OSDN Git Service

Revert "printk: remove unused code from kernel/printk.c"
authorArve Hjønnevåg <arve@android.com>
Fri, 16 Jan 2009 03:07:27 +0000 (19:07 -0800)
committerIliyan Malchev <malchev@google.com>
Mon, 23 May 2011 22:43:28 +0000 (15:43 -0700)
This reverts commit acff181d3574244e651913df77332e897b88bff4.

kernel/printk.c

index 1d916d8..ea54a43 100644 (file)
@@ -265,6 +265,45 @@ static inline void boot_delay_msec(void)
 }
 #endif
 
+/*
+ * Return the number of unread characters in the log buffer.
+ */
+static int log_buf_get_len(void)
+{
+       return logged_chars;
+}
+
+/*
+ * Copy a range of characters from the log buffer.
+ */
+int log_buf_copy(char *dest, int idx, int len)
+{
+       int ret, max;
+       bool took_lock = false;
+
+       if (!oops_in_progress) {
+               spin_lock_irq(&logbuf_lock);
+               took_lock = true;
+       }
+
+       max = log_buf_get_len();
+       if (idx < 0 || idx >= max) {
+               ret = -1;
+       } else {
+               if (len > max)
+                       len = max;
+               ret = len;
+               idx += (log_end - max);
+               while (len-- > 0)
+                       dest[len] = LOG_BUF(idx + len);
+       }
+
+       if (took_lock)
+               spin_unlock_irq(&logbuf_lock);
+
+       return ret;
+}
+
 #ifdef CONFIG_SECURITY_DMESG_RESTRICT
 int dmesg_restrict = 1;
 #else