提交 62e32ac3 编写于 作者: J Joe Perches 提交者: Linus Torvalds

printk: rename struct log to struct printk_log

Rename the struct to enable moving portions of
printk.c to separate files.

The rename changes output of /proc/vmcoreinfo.
Signed-off-by: NJoe Perches <joe@perches.com>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Cc: Ming Lei <ming.lei@canonical.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 23475408
...@@ -173,7 +173,7 @@ static int console_may_schedule; ...@@ -173,7 +173,7 @@ static int console_may_schedule;
* 67 "g" * 67 "g"
* 0032 00 00 00 padding to next message header * 0032 00 00 00 padding to next message header
* *
* The 'struct log' buffer header must never be directly exported to * The 'struct printk_log' buffer header must never be directly exported to
* userspace, it is a kernel-private implementation detail that might * userspace, it is a kernel-private implementation detail that might
* need to be changed in the future, when the requirements change. * need to be changed in the future, when the requirements change.
* *
...@@ -195,7 +195,7 @@ enum log_flags { ...@@ -195,7 +195,7 @@ enum log_flags {
LOG_CONT = 8, /* text is a fragment of a continuation line */ LOG_CONT = 8, /* text is a fragment of a continuation line */
}; };
struct log { struct printk_log {
u64 ts_nsec; /* timestamp in nanoseconds */ u64 ts_nsec; /* timestamp in nanoseconds */
u16 len; /* length of entire record */ u16 len; /* length of entire record */
u16 text_len; /* length of text buffer */ u16 text_len; /* length of text buffer */
...@@ -243,7 +243,7 @@ static u32 clear_idx; ...@@ -243,7 +243,7 @@ static u32 clear_idx;
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
#define LOG_ALIGN 4 #define LOG_ALIGN 4
#else #else
#define LOG_ALIGN __alignof__(struct log) #define LOG_ALIGN __alignof__(struct printk_log)
#endif #endif
#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT) #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN); static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
...@@ -254,35 +254,35 @@ static u32 log_buf_len = __LOG_BUF_LEN; ...@@ -254,35 +254,35 @@ static u32 log_buf_len = __LOG_BUF_LEN;
static volatile unsigned int logbuf_cpu = UINT_MAX; static volatile unsigned int logbuf_cpu = UINT_MAX;
/* human readable text of the record */ /* human readable text of the record */
static char *log_text(const struct log *msg) static char *log_text(const struct printk_log *msg)
{ {
return (char *)msg + sizeof(struct log); return (char *)msg + sizeof(struct printk_log);
} }
/* optional key/value pair dictionary attached to the record */ /* optional key/value pair dictionary attached to the record */
static char *log_dict(const struct log *msg) static char *log_dict(const struct printk_log *msg)
{ {
return (char *)msg + sizeof(struct log) + msg->text_len; return (char *)msg + sizeof(struct printk_log) + msg->text_len;
} }
/* get record by index; idx must point to valid msg */ /* get record by index; idx must point to valid msg */
static struct log *log_from_idx(u32 idx) static struct printk_log *log_from_idx(u32 idx)
{ {
struct log *msg = (struct log *)(log_buf + idx); struct printk_log *msg = (struct printk_log *)(log_buf + idx);
/* /*
* A length == 0 record is the end of buffer marker. Wrap around and * A length == 0 record is the end of buffer marker. Wrap around and
* read the message at the start of the buffer. * read the message at the start of the buffer.
*/ */
if (!msg->len) if (!msg->len)
return (struct log *)log_buf; return (struct printk_log *)log_buf;
return msg; return msg;
} }
/* get next record; idx must point to valid msg */ /* get next record; idx must point to valid msg */
static u32 log_next(u32 idx) static u32 log_next(u32 idx)
{ {
struct log *msg = (struct log *)(log_buf + idx); struct printk_log *msg = (struct printk_log *)(log_buf + idx);
/* length == 0 indicates the end of the buffer; wrap */ /* length == 0 indicates the end of the buffer; wrap */
/* /*
...@@ -291,7 +291,7 @@ static u32 log_next(u32 idx) ...@@ -291,7 +291,7 @@ static u32 log_next(u32 idx)
* return the one after that. * return the one after that.
*/ */
if (!msg->len) { if (!msg->len) {
msg = (struct log *)log_buf; msg = (struct printk_log *)log_buf;
return msg->len; return msg->len;
} }
return idx + msg->len; return idx + msg->len;
...@@ -303,11 +303,11 @@ static void log_store(int facility, int level, ...@@ -303,11 +303,11 @@ static void log_store(int facility, int level,
const char *dict, u16 dict_len, const char *dict, u16 dict_len,
const char *text, u16 text_len) const char *text, u16 text_len)
{ {
struct log *msg; struct printk_log *msg;
u32 size, pad_len; u32 size, pad_len;
/* number of '\0' padding bytes to next message */ /* number of '\0' padding bytes to next message */
size = sizeof(struct log) + text_len + dict_len; size = sizeof(struct printk_log) + text_len + dict_len;
pad_len = (-size) & (LOG_ALIGN - 1); pad_len = (-size) & (LOG_ALIGN - 1);
size += pad_len; size += pad_len;
...@@ -319,7 +319,7 @@ static void log_store(int facility, int level, ...@@ -319,7 +319,7 @@ static void log_store(int facility, int level,
else else
free = log_first_idx - log_next_idx; free = log_first_idx - log_next_idx;
if (free > size + sizeof(struct log)) if (free > size + sizeof(struct printk_log))
break; break;
/* drop old messages until we have enough contiuous space */ /* drop old messages until we have enough contiuous space */
...@@ -327,18 +327,18 @@ static void log_store(int facility, int level, ...@@ -327,18 +327,18 @@ static void log_store(int facility, int level,
log_first_seq++; log_first_seq++;
} }
if (log_next_idx + size + sizeof(struct log) >= log_buf_len) { if (log_next_idx + size + sizeof(struct printk_log) >= log_buf_len) {
/* /*
* This message + an additional empty header does not fit * This message + an additional empty header does not fit
* at the end of the buffer. Add an empty header with len == 0 * at the end of the buffer. Add an empty header with len == 0
* to signify a wrap around. * to signify a wrap around.
*/ */
memset(log_buf + log_next_idx, 0, sizeof(struct log)); memset(log_buf + log_next_idx, 0, sizeof(struct printk_log));
log_next_idx = 0; log_next_idx = 0;
} }
/* fill message */ /* fill message */
msg = (struct log *)(log_buf + log_next_idx); msg = (struct printk_log *)(log_buf + log_next_idx);
memcpy(log_text(msg), text, text_len); memcpy(log_text(msg), text, text_len);
msg->text_len = text_len; msg->text_len = text_len;
memcpy(log_dict(msg), dict, dict_len); memcpy(log_dict(msg), dict, dict_len);
...@@ -351,7 +351,7 @@ static void log_store(int facility, int level, ...@@ -351,7 +351,7 @@ static void log_store(int facility, int level,
else else
msg->ts_nsec = local_clock(); msg->ts_nsec = local_clock();
memset(log_dict(msg) + dict_len, 0, pad_len); memset(log_dict(msg) + dict_len, 0, pad_len);
msg->len = sizeof(struct log) + text_len + dict_len + pad_len; msg->len = sizeof(struct printk_log) + text_len + dict_len + pad_len;
/* insert message */ /* insert message */
log_next_idx += msg->len; log_next_idx += msg->len;
...@@ -474,7 +474,7 @@ static ssize_t devkmsg_read(struct file *file, char __user *buf, ...@@ -474,7 +474,7 @@ static ssize_t devkmsg_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
struct devkmsg_user *user = file->private_data; struct devkmsg_user *user = file->private_data;
struct log *msg; struct printk_log *msg;
u64 ts_usec; u64 ts_usec;
size_t i; size_t i;
char cont = '-'; char cont = '-';
...@@ -719,14 +719,14 @@ void log_buf_kexec_setup(void) ...@@ -719,14 +719,14 @@ void log_buf_kexec_setup(void)
VMCOREINFO_SYMBOL(log_first_idx); VMCOREINFO_SYMBOL(log_first_idx);
VMCOREINFO_SYMBOL(log_next_idx); VMCOREINFO_SYMBOL(log_next_idx);
/* /*
* Export struct log size and field offsets. User space tools can * Export struct printk_log size and field offsets. User space tools can
* parse it and detect any changes to structure down the line. * parse it and detect any changes to structure down the line.
*/ */
VMCOREINFO_STRUCT_SIZE(log); VMCOREINFO_STRUCT_SIZE(printk_log);
VMCOREINFO_OFFSET(log, ts_nsec); VMCOREINFO_OFFSET(printk_log, ts_nsec);
VMCOREINFO_OFFSET(log, len); VMCOREINFO_OFFSET(printk_log, len);
VMCOREINFO_OFFSET(log, text_len); VMCOREINFO_OFFSET(printk_log, text_len);
VMCOREINFO_OFFSET(log, dict_len); VMCOREINFO_OFFSET(printk_log, dict_len);
} }
#endif #endif
...@@ -879,7 +879,7 @@ static size_t print_time(u64 ts, char *buf) ...@@ -879,7 +879,7 @@ static size_t print_time(u64 ts, char *buf)
(unsigned long)ts, rem_nsec / 1000); (unsigned long)ts, rem_nsec / 1000);
} }
static size_t print_prefix(const struct log *msg, bool syslog, char *buf) static size_t print_prefix(const struct printk_log *msg, bool syslog, char *buf)
{ {
size_t len = 0; size_t len = 0;
unsigned int prefix = (msg->facility << 3) | msg->level; unsigned int prefix = (msg->facility << 3) | msg->level;
...@@ -902,7 +902,7 @@ static size_t print_prefix(const struct log *msg, bool syslog, char *buf) ...@@ -902,7 +902,7 @@ static size_t print_prefix(const struct log *msg, bool syslog, char *buf)
return len; return len;
} }
static size_t msg_print_text(const struct log *msg, enum log_flags prev, static size_t msg_print_text(const struct printk_log *msg, enum log_flags prev,
bool syslog, char *buf, size_t size) bool syslog, char *buf, size_t size)
{ {
const char *text = log_text(msg); const char *text = log_text(msg);
...@@ -964,7 +964,7 @@ static size_t msg_print_text(const struct log *msg, enum log_flags prev, ...@@ -964,7 +964,7 @@ static size_t msg_print_text(const struct log *msg, enum log_flags prev,
static int syslog_print(char __user *buf, int size) static int syslog_print(char __user *buf, int size)
{ {
char *text; char *text;
struct log *msg; struct printk_log *msg;
int len = 0; int len = 0;
text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL); text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL);
...@@ -1055,7 +1055,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) ...@@ -1055,7 +1055,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
idx = clear_idx; idx = clear_idx;
prev = 0; prev = 0;
while (seq < log_next_seq) { while (seq < log_next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
len += msg_print_text(msg, prev, true, NULL, 0); len += msg_print_text(msg, prev, true, NULL, 0);
prev = msg->flags; prev = msg->flags;
...@@ -1068,7 +1068,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) ...@@ -1068,7 +1068,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
idx = clear_idx; idx = clear_idx;
prev = 0; prev = 0;
while (len > size && seq < log_next_seq) { while (len > size && seq < log_next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
len -= msg_print_text(msg, prev, true, NULL, 0); len -= msg_print_text(msg, prev, true, NULL, 0);
prev = msg->flags; prev = msg->flags;
...@@ -1082,7 +1082,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) ...@@ -1082,7 +1082,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear)
len = 0; len = 0;
prev = 0; prev = 0;
while (len >= 0 && seq < next_seq) { while (len >= 0 && seq < next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
int textlen; int textlen;
textlen = msg_print_text(msg, prev, true, text, textlen = msg_print_text(msg, prev, true, text,
...@@ -1228,7 +1228,7 @@ int do_syslog(int type, char __user *buf, int len, bool from_file) ...@@ -1228,7 +1228,7 @@ int do_syslog(int type, char __user *buf, int len, bool from_file)
error = 0; error = 0;
while (seq < log_next_seq) { while (seq < log_next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
error += msg_print_text(msg, prev, true, NULL, 0); error += msg_print_text(msg, prev, true, NULL, 0);
idx = log_next(idx); idx = log_next(idx);
...@@ -1714,10 +1714,10 @@ static struct cont { ...@@ -1714,10 +1714,10 @@ static struct cont {
u8 level; u8 level;
bool flushed:1; bool flushed:1;
} cont; } cont;
static struct log *log_from_idx(u32 idx) { return NULL; } static struct printk_log *log_from_idx(u32 idx) { return NULL; }
static u32 log_next(u32 idx) { return 0; } static u32 log_next(u32 idx) { return 0; }
static void call_console_drivers(int level, const char *text, size_t len) {} static void call_console_drivers(int level, const char *text, size_t len) {}
static size_t msg_print_text(const struct log *msg, enum log_flags prev, static size_t msg_print_text(const struct printk_log *msg, enum log_flags prev,
bool syslog, char *buf, size_t size) { return 0; } bool syslog, char *buf, size_t size) { return 0; }
static size_t cont_print_text(char *text, size_t size) { return 0; } static size_t cont_print_text(char *text, size_t size) { return 0; }
...@@ -2029,7 +2029,7 @@ void console_unlock(void) ...@@ -2029,7 +2029,7 @@ void console_unlock(void)
console_cont_flush(text, sizeof(text)); console_cont_flush(text, sizeof(text));
again: again:
for (;;) { for (;;) {
struct log *msg; struct printk_log *msg;
size_t len; size_t len;
int level; int level;
...@@ -2645,7 +2645,7 @@ void kmsg_dump(enum kmsg_dump_reason reason) ...@@ -2645,7 +2645,7 @@ void kmsg_dump(enum kmsg_dump_reason reason)
bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog,
char *line, size_t size, size_t *len) char *line, size_t size, size_t *len)
{ {
struct log *msg; struct printk_log *msg;
size_t l = 0; size_t l = 0;
bool ret = false; bool ret = false;
...@@ -2757,7 +2757,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, ...@@ -2757,7 +2757,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
idx = dumper->cur_idx; idx = dumper->cur_idx;
prev = 0; prev = 0;
while (seq < dumper->next_seq) { while (seq < dumper->next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
l += msg_print_text(msg, prev, true, NULL, 0); l += msg_print_text(msg, prev, true, NULL, 0);
idx = log_next(idx); idx = log_next(idx);
...@@ -2770,7 +2770,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, ...@@ -2770,7 +2770,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
idx = dumper->cur_idx; idx = dumper->cur_idx;
prev = 0; prev = 0;
while (l > size && seq < dumper->next_seq) { while (l > size && seq < dumper->next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
l -= msg_print_text(msg, prev, true, NULL, 0); l -= msg_print_text(msg, prev, true, NULL, 0);
idx = log_next(idx); idx = log_next(idx);
...@@ -2785,7 +2785,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, ...@@ -2785,7 +2785,7 @@ bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
l = 0; l = 0;
prev = 0; prev = 0;
while (seq < dumper->next_seq) { while (seq < dumper->next_seq) {
struct log *msg = log_from_idx(idx); struct printk_log *msg = log_from_idx(idx);
l += msg_print_text(msg, prev, syslog, buf + l, size - l); l += msg_print_text(msg, prev, syslog, buf + l, size - l);
idx = log_next(idx); idx = log_next(idx);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册