diff options
Diffstat (limited to 'kernel/trace/trace_output.c')
| -rw-r--r-- | kernel/trace/trace_output.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index a4840c260c89..c12d95db2f56 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
| @@ -251,6 +251,31 @@ ftrace_print_flags_seq(struct trace_seq *p, const char *delim, | |||
| 251 | return p->buffer; | 251 | return p->buffer; |
| 252 | } | 252 | } |
| 253 | 253 | ||
| 254 | const char * | ||
| 255 | ftrace_print_symbols_seq(struct trace_seq *p, unsigned long val, | ||
| 256 | const struct trace_print_flags *symbol_array) | ||
| 257 | { | ||
| 258 | int i; | ||
| 259 | |||
| 260 | trace_seq_init(p); | ||
| 261 | |||
| 262 | for (i = 0; symbol_array[i].name; i++) { | ||
| 263 | |||
| 264 | if (val != symbol_array[i].mask) | ||
| 265 | continue; | ||
| 266 | |||
| 267 | trace_seq_puts(p, symbol_array[i].name); | ||
| 268 | break; | ||
| 269 | } | ||
| 270 | |||
| 271 | if (!p->len) | ||
| 272 | trace_seq_printf(p, "0x%lx", val); | ||
| 273 | |||
| 274 | trace_seq_putc(p, 0); | ||
| 275 | |||
| 276 | return p->buffer; | ||
| 277 | } | ||
| 278 | |||
| 254 | #ifdef CONFIG_KRETPROBES | 279 | #ifdef CONFIG_KRETPROBES |
| 255 | static inline const char *kretprobed(const char *name) | 280 | static inline const char *kretprobed(const char *name) |
| 256 | { | 281 | { |
