diff options
author | Arve Hjønnevåg <arve@android.com> | 2009-01-15 19:07:27 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2010-09-29 17:49:19 -0700 |
commit | 916040d8b90d025d4445e97f3795907a6b65996c (patch) | |
tree | 49e697596391a541bf639087f75dd1967acb62ee /kernel/printk.c | |
parent | 1b15b8e197ecc7b88b05b533ee55e06b990722c9 (diff) |
Revert "printk: remove unused code from kernel/printk.c"
This reverts commit acff181d3574244e651913df77332e897b88bff4.
Diffstat (limited to 'kernel/printk.c')
-rw-r--r-- | kernel/printk.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index b11cffec38fc..33d6dcdb4909 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -265,6 +265,60 @@ 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; +} + +/* + * Commands to do_syslog: + * + * 0 -- Close the log. Currently a NOP. + * 1 -- Open the log. Currently a NOP. + * 2 -- Read from the log. + * 3 -- Read all messages remaining in the ring buffer. + * 4 -- Read and clear all messages remaining in the ring buffer + * 5 -- Clear ring buffer. + * 6 -- Disable printk's to console + * 7 -- Enable printk's to console + * 8 -- Set level of messages printed to console + * 9 -- Return number of unread characters in the log buffer + * 10 -- Return size of the log buffer + */ int do_syslog(int type, char __user *buf, int len, bool from_file) { unsigned i, j, limit, count; |