dyndbg: add drm.debug style (drm/parameters/debug) bitmap support
[linux-block.git] / lib / test_dynamic_debug.c
CommitLineData
683263a5
JC
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel module for testing dynamic_debug
4 *
5 * Authors:
6 * Jim Cromie <jim.cromie@gmail.com>
7 */
8
9#define pr_fmt(fmt) "test_dd: " fmt
10
11#include <linux/module.h>
12
13static void do_prints(void); /* device under test */
14
15/* run tests by reading or writing sysfs node */
16
17static int param_set_do_prints(const char *instr, const struct kernel_param *kp)
18{
19 do_prints();
20 return 0;
21}
22
23static int param_get_do_prints(char *buffer, const struct kernel_param *kp)
24{
25 do_prints();
26 return scnprintf(buffer, PAGE_SIZE, "did do_prints\n");
27}
28
29static const struct kernel_param_ops param_ops_do_prints = {
30 .set = param_set_do_prints,
31 .get = param_get_do_prints,
32};
33
34module_param_cb(do_prints, &param_ops_do_prints, NULL, 0600);
35
36static void do_alpha(void)
37{
38 pr_debug("do alpha\n");
39}
40static void do_beta(void)
41{
42 pr_debug("do beta\n");
43}
44
45static void do_prints(void)
46{
47 do_alpha();
48 do_beta();
49}
50
51static int __init test_dynamic_debug_init(void)
52{
53 pr_debug("init start\n");
54
55 do_prints();
56
57 pr_debug("init done\n");
58 return 0;
59}
60
61static void __exit test_dynamic_debug_exit(void)
62{
63 pr_debug("exiting\n");
64}
65
66module_init(test_dynamic_debug_init);
67module_exit(test_dynamic_debug_exit);
68
69MODULE_AUTHOR("Jim Cromie <jim.cromie@gmail.com>");
70MODULE_LICENSE("GPL");