• 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 #ifndef _LITE_HCK_XPM_H
7 #define _LITE_HCK_XPM_H
8 
9 #include <linux/mm.h>
10 #include <linux/fs.h>
11 #include <linux/hck/lite_vendor_hooks.h>
12 
13 #ifndef CONFIG_HCK
14 #undef CALL_HCK_LITE_HOOK
15 #define CALL_HCK_LITE_HOOK(name, args...)
16 #undef REGISTER_HCK_LITE_HOOK
17 #define REGISTER_HCK_LITE_HOOK(name, probe)
18 #undef REGISTER_HCK_LITE_DATA_HOOK
19 #define REGISTER_HCK_LITE_DATA_HOOK(name, probe, data)
20 #else
21 DECLARE_HCK_LITE_HOOK(xpm_delete_cache_node_lhck,
22 	TP_PROTO(struct inode *file_node),
23 	TP_ARGS(file_node));
24 
25 DECLARE_HCK_LITE_HOOK(xpm_region_outer_lhck,
26 	TP_PROTO(unsigned long addr_start, unsigned long addr_end,
27 		unsigned long flags, bool *ret),
28 	TP_ARGS(addr_start, addr_end, flags, ret));
29 
30 DECLARE_HCK_LITE_HOOK(xpm_get_unmapped_area_lhck,
31 	TP_PROTO(unsigned long addr, unsigned long len, unsigned long map_flags,
32 		unsigned long unmapped_flags, unsigned long *ret),
33 	TP_ARGS(addr, len, map_flags, unmapped_flags, ret));
34 
35 DECLARE_HCK_LITE_HOOK(xpm_integrity_equal_lhck,
36 	TP_PROTO(struct page *page, struct page *kpage, bool *ret),
37 	TP_ARGS(page, kpage, ret));
38 
39 DECLARE_HCK_LITE_HOOK(xpm_integrity_check_lhck,
40 	TP_PROTO(struct vm_area_struct *vma, unsigned int vflags,
41 		unsigned long addr, struct page *page, vm_fault_t *ret),
42 	TP_ARGS(vma, vflags, addr, page, ret));
43 
44 DECLARE_HCK_LITE_HOOK(xpm_integrity_validate_lhck,
45 	TP_PROTO(struct vm_area_struct *vma, unsigned int vflags,
46 		unsigned long addr, struct page *page, vm_fault_t *ret),
47 	TP_ARGS(vma, vflags, addr, page, ret));
48 
49 DECLARE_HCK_LITE_HOOK(xpm_integrity_update_lhck,
50 	TP_PROTO(struct vm_area_struct *vma, unsigned int vflags,
51 		struct page *page),
52 	TP_ARGS(vma, vflags, page));
53 #endif /* CONFIG_HCK */
54 
55 #endif /* _LITE_HCK_XPM_H */
56