• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)19 static 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)47 static 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