1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (c) 2023 Huawei Device Co., Ltd. 4 */ 5 6 #include <linux/init.h> 7 #include <linux/module.h> 8 #include <linux/kernel.h> 9 #include <linux/types.h> 10 11 #include "dsmm_developer.h" 12 #include "xpm_debugfs.h" 13 #include "xpm_hck_hooks.h" 14 #include "xpm_misc_device.h" 15 #include "xpm_security_hooks.h" 16 #include "xpm_report.h" 17 #include "xpm_log.h" 18 xpm_module_init(void)19static int __init xpm_module_init(void) 20 { 21 int ret; 22 23 ret = xpm_register_misc_device(); 24 if (ret) { 25 xpm_log_error("xpm register misc device failed, ret = %d", ret); 26 report_init_event(DEVICEFS_UNINIT); 27 return ret; 28 } 29 30 ret = xpm_debugfs_init(); 31 if (ret) { 32 xpm_log_error("xpm init debugfs failed, ret = %d", ret); 33 xpm_deregister_misc_device(); 34 report_init_event(DEBUGFS_UNINIT); 35 return ret; 36 } 37 38 xpm_register_security_hooks(); 39 xpm_register_hck_hooks(); 40 41 dsmm_developer_proc_create(); 42 43 xpm_log_info("xpm module init success"); 44 return 0; 45 } 46 xpm_module_exit(void)47static void __exit xpm_module_exit(void) 48 { 49 xpm_deregister_misc_device(); 50 xpm_debugfs_exit(); 51 52 dsmm_developer_proc_clean(); 53 54 xpm_log_info("xpm module exit success"); 55 } 56 57 module_init(xpm_module_init); 58 module_exit(xpm_module_exit); 59 MODULE_LICENSE("GPL"); 60