xref: /linux/tools/verification/dot2/dot2k_templates/main_container.c (revision 88221ac0d560700b50493aedc768f728aa585141)
1*2334cf7dSGabriele Monaco // SPDX-License-Identifier: GPL-2.0
2*2334cf7dSGabriele Monaco #include <linux/kernel.h>
3*2334cf7dSGabriele Monaco #include <linux/module.h>
4*2334cf7dSGabriele Monaco #include <linux/init.h>
5*2334cf7dSGabriele Monaco #include <linux/rv.h>
6*2334cf7dSGabriele Monaco 
7*2334cf7dSGabriele Monaco #define MODULE_NAME "%%MODEL_NAME%%"
8*2334cf7dSGabriele Monaco 
9*2334cf7dSGabriele Monaco #include "%%MODEL_NAME%%.h"
10*2334cf7dSGabriele Monaco 
11*2334cf7dSGabriele Monaco struct rv_monitor rv_%%MODEL_NAME%%;
12*2334cf7dSGabriele Monaco 
13*2334cf7dSGabriele Monaco struct rv_monitor rv_%%MODEL_NAME%% = {
14*2334cf7dSGabriele Monaco 	.name = "%%MODEL_NAME%%",
15*2334cf7dSGabriele Monaco 	.description = "%%DESCRIPTION%%",
16*2334cf7dSGabriele Monaco 	.enable = NULL,
17*2334cf7dSGabriele Monaco 	.disable = NULL,
18*2334cf7dSGabriele Monaco 	.reset = NULL,
19*2334cf7dSGabriele Monaco 	.enabled = 0,
20*2334cf7dSGabriele Monaco };
21*2334cf7dSGabriele Monaco 
22*2334cf7dSGabriele Monaco static int __init register_%%MODEL_NAME%%(void)
23*2334cf7dSGabriele Monaco {
24*2334cf7dSGabriele Monaco 	rv_register_monitor(&rv_%%MODEL_NAME%%, NULL);
25*2334cf7dSGabriele Monaco 	return 0;
26*2334cf7dSGabriele Monaco }
27*2334cf7dSGabriele Monaco 
28*2334cf7dSGabriele Monaco static void __exit unregister_%%MODEL_NAME%%(void)
29*2334cf7dSGabriele Monaco {
30*2334cf7dSGabriele Monaco 	rv_unregister_monitor(&rv_%%MODEL_NAME%%);
31*2334cf7dSGabriele Monaco }
32*2334cf7dSGabriele Monaco 
33*2334cf7dSGabriele Monaco module_init(register_%%MODEL_NAME%%);
34*2334cf7dSGabriele Monaco module_exit(unregister_%%MODEL_NAME%%);
35*2334cf7dSGabriele Monaco 
36*2334cf7dSGabriele Monaco MODULE_LICENSE("GPL");
37*2334cf7dSGabriele Monaco MODULE_AUTHOR("dot2k: auto-generated");
38*2334cf7dSGabriele Monaco MODULE_DESCRIPTION("%%MODEL_NAME%%: %%DESCRIPTION%%");
39