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