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