1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2019-2022 Red Hat, Inc. Daniel Bristot de Oliveira <bristot@kernel.org>
4 *
5 * Printk RV reactor:
6 * Prints the exception msg to the kernel message log.
7 */
8#include <linux/ftrace.h>
9#include <linux/tracepoint.h>
10#include <linux/kernel.h>
11#include <linux/module.h>
12#include <linux/init.h>
13#include <linux/rv.h>
14
15static void rv_printk_reaction(char *msg)
16{
17 printk_deferred(msg);
18}
19
20static struct rv_reactor rv_printk = {
21 .name = "printk",
22 .description = "prints the exception msg to the kernel message log.",
23 .react = rv_printk_reaction
24};
25
26static int __init register_react_printk(void)
27{
28 rv_register_reactor(reactor: &rv_printk);
29 return 0;
30}
31
32static void __exit unregister_react_printk(void)
33{
34 rv_unregister_reactor(reactor: &rv_printk);
35}
36
37module_init(register_react_printk);
38module_exit(unregister_react_printk);
39
40MODULE_AUTHOR("Daniel Bristot de Oliveira");
41MODULE_DESCRIPTION("printk rv reactor: printk if an exception is hit.");
42

source code of linux/kernel/trace/rv/reactor_printk.c