~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/kmsg_dump.h

Version: ~ [ linux-5.10-rc5 ] ~ [ linux-5.9.10 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.79 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.159 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.208 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.245 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.245 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * linux/include/kmsg_dump.h
  3  *
  4  * Copyright (C) 2009 Net Insight AB
  5  *
  6  * Author: Simon Kagstrom <simon.kagstrom@netinsight.net>
  7  *
  8  * This file is subject to the terms and conditions of the GNU General Public
  9  * License.  See the file COPYING in the main directory of this archive
 10  * for more details.
 11  */
 12 #ifndef _LINUX_KMSG_DUMP_H
 13 #define _LINUX_KMSG_DUMP_H
 14 
 15 #include <linux/errno.h>
 16 #include <linux/list.h>
 17 
 18 /*
 19  * Keep this list arranged in rough order of priority. Anything listed after
 20  * KMSG_DUMP_OOPS will not be logged by default unless printk.always_kmsg_dump
 21  * is passed to the kernel.
 22  */
 23 enum kmsg_dump_reason {
 24         KMSG_DUMP_UNDEF,
 25         KMSG_DUMP_PANIC,
 26         KMSG_DUMP_OOPS,
 27         KMSG_DUMP_EMERG,
 28         KMSG_DUMP_RESTART,
 29         KMSG_DUMP_HALT,
 30         KMSG_DUMP_POWEROFF,
 31 };
 32 
 33 /**
 34  * struct kmsg_dumper - kernel crash message dumper structure
 35  * @list:       Entry in the dumper list (private)
 36  * @dump:       Call into dumping code which will retrieve the data with
 37  *              through the record iterator
 38  * @max_reason: filter for highest reason number that should be dumped
 39  * @registered: Flag that specifies if this is already registered
 40  */
 41 struct kmsg_dumper {
 42         struct list_head list;
 43         void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
 44         enum kmsg_dump_reason max_reason;
 45         bool active;
 46         bool registered;
 47 
 48         /* private state of the kmsg iterator */
 49         u32 cur_idx;
 50         u32 next_idx;
 51         u64 cur_seq;
 52         u64 next_seq;
 53 };
 54 
 55 #ifdef CONFIG_PRINTK
 56 void kmsg_dump(enum kmsg_dump_reason reason);
 57 
 58 bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog,
 59                                char *line, size_t size, size_t *len);
 60 
 61 bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
 62                         char *line, size_t size, size_t *len);
 63 
 64 bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
 65                           char *buf, size_t size, size_t *len);
 66 
 67 void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper);
 68 
 69 void kmsg_dump_rewind(struct kmsg_dumper *dumper);
 70 
 71 int kmsg_dump_register(struct kmsg_dumper *dumper);
 72 
 73 int kmsg_dump_unregister(struct kmsg_dumper *dumper);
 74 #else
 75 static inline void kmsg_dump(enum kmsg_dump_reason reason)
 76 {
 77 }
 78 
 79 static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper,
 80                                              bool syslog, const char *line,
 81                                              size_t size, size_t *len)
 82 {
 83         return false;
 84 }
 85 
 86 static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
 87                                 const char *line, size_t size, size_t *len)
 88 {
 89         return false;
 90 }
 91 
 92 static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
 93                                         char *buf, size_t size, size_t *len)
 94 {
 95         return false;
 96 }
 97 
 98 static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper)
 99 {
100 }
101 
102 static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper)
103 {
104 }
105 
106 static inline int kmsg_dump_register(struct kmsg_dumper *dumper)
107 {
108         return -EINVAL;
109 }
110 
111 static inline int kmsg_dump_unregister(struct kmsg_dumper *dumper)
112 {
113         return -EINVAL;
114 }
115 #endif
116 
117 #endif /* _LINUX_KMSG_DUMP_H */
118 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp