Lines Matching refs:dumper
2810 int kmsg_dump_register(struct kmsg_dumper *dumper) in kmsg_dump_register() argument
2816 if (!dumper->dump) in kmsg_dump_register()
2821 if (!dumper->registered) { in kmsg_dump_register()
2822 dumper->registered = 1; in kmsg_dump_register()
2823 list_add_tail_rcu(&dumper->list, &dump_list); in kmsg_dump_register()
2839 int kmsg_dump_unregister(struct kmsg_dumper *dumper) in kmsg_dump_unregister() argument
2845 if (dumper->registered) { in kmsg_dump_unregister()
2846 dumper->registered = 0; in kmsg_dump_unregister()
2847 list_del_rcu(&dumper->list); in kmsg_dump_unregister()
2870 struct kmsg_dumper *dumper; in kmsg_dump() local
2877 list_for_each_entry_rcu(dumper, &dump_list, list) { in kmsg_dump()
2878 if (dumper->max_reason && reason > dumper->max_reason) in kmsg_dump()
2882 dumper->active = true; in kmsg_dump()
2885 dumper->cur_seq = clear_seq; in kmsg_dump()
2886 dumper->cur_idx = clear_idx; in kmsg_dump()
2887 dumper->next_seq = log_next_seq; in kmsg_dump()
2888 dumper->next_idx = log_next_idx; in kmsg_dump()
2892 dumper->dump(dumper, reason); in kmsg_dump()
2895 dumper->active = false; in kmsg_dump()
2919 bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog, in kmsg_dump_get_line_nolock() argument
2926 if (!dumper->active) in kmsg_dump_get_line_nolock()
2929 if (dumper->cur_seq < log_first_seq) { in kmsg_dump_get_line_nolock()
2931 dumper->cur_seq = log_first_seq; in kmsg_dump_get_line_nolock()
2932 dumper->cur_idx = log_first_idx; in kmsg_dump_get_line_nolock()
2936 if (dumper->cur_seq >= log_next_seq) in kmsg_dump_get_line_nolock()
2939 msg = log_from_idx(dumper->cur_idx); in kmsg_dump_get_line_nolock()
2942 dumper->cur_idx = log_next(dumper->cur_idx); in kmsg_dump_get_line_nolock()
2943 dumper->cur_seq++; in kmsg_dump_get_line_nolock()
2968 bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, in kmsg_dump_get_line() argument
2975 ret = kmsg_dump_get_line_nolock(dumper, syslog, line, size, len); in kmsg_dump_get_line()
3001 bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, in kmsg_dump_get_buffer() argument
3013 if (!dumper->active) in kmsg_dump_get_buffer()
3017 if (dumper->cur_seq < log_first_seq) { in kmsg_dump_get_buffer()
3019 dumper->cur_seq = log_first_seq; in kmsg_dump_get_buffer()
3020 dumper->cur_idx = log_first_idx; in kmsg_dump_get_buffer()
3024 if (dumper->cur_seq >= dumper->next_seq) { in kmsg_dump_get_buffer()
3030 seq = dumper->cur_seq; in kmsg_dump_get_buffer()
3031 idx = dumper->cur_idx; in kmsg_dump_get_buffer()
3033 while (seq < dumper->next_seq) { in kmsg_dump_get_buffer()
3043 seq = dumper->cur_seq; in kmsg_dump_get_buffer()
3044 idx = dumper->cur_idx; in kmsg_dump_get_buffer()
3046 while (l > size && seq < dumper->next_seq) { in kmsg_dump_get_buffer()
3060 while (seq < dumper->next_seq) { in kmsg_dump_get_buffer()
3069 dumper->next_seq = next_seq; in kmsg_dump_get_buffer()
3070 dumper->next_idx = next_idx; in kmsg_dump_get_buffer()
3090 void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) in kmsg_dump_rewind_nolock() argument
3092 dumper->cur_seq = clear_seq; in kmsg_dump_rewind_nolock()
3093 dumper->cur_idx = clear_idx; in kmsg_dump_rewind_nolock()
3094 dumper->next_seq = log_next_seq; in kmsg_dump_rewind_nolock()
3095 dumper->next_idx = log_next_idx; in kmsg_dump_rewind_nolock()
3106 void kmsg_dump_rewind(struct kmsg_dumper *dumper) in kmsg_dump_rewind() argument
3111 kmsg_dump_rewind_nolock(dumper); in kmsg_dump_rewind()