1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 3 /* 4 * Copyright (C) 2020 Google LLC. 5 */ 6 7 #ifndef _LINUX_BPF_LSM_H 8 #define _LINUX_BPF_LSM_H 9 10 #include <linux/sched.h> 11 #include <linux/bpf.h> 12 #include <linux/bpf_verifier.h> 13 #include <linux/lsm_hooks.h> 14 15 #ifdef CONFIG_BPF_LSM 16 17 #define LSM_HOOK(RET, DEFAULT, NAME, ...) \ 18 RET bpf_lsm_##NAME(__VA_ARGS__); 19 #include <linux/lsm_hook_defs.h> 20 #undef LSM_HOOK 21 22 struct bpf_storage_blob { 23 struct bpf_local_storage __rcu *storag 24 }; 25 26 extern struct lsm_blob_sizes bpf_lsm_blob_size 27 28 int bpf_lsm_verify_prog(struct bpf_verifier_lo 29 const struct bpf_prog 30 31 bool bpf_lsm_is_sleepable_hook(u32 btf_id); 32 bool bpf_lsm_is_trusted(const struct bpf_prog 33 34 static inline struct bpf_storage_blob *bpf_ino 35 const struct inode *inode) 36 { 37 if (unlikely(!inode->i_security)) 38 return NULL; 39 40 return inode->i_security + bpf_lsm_blo 41 } 42 43 extern const struct bpf_func_proto bpf_inode_s 44 extern const struct bpf_func_proto bpf_inode_s 45 void bpf_inode_storage_free(struct inode *inod 46 47 void bpf_lsm_find_cgroup_shim(const struct bpf 48 49 int bpf_lsm_get_retval_range(const struct bpf_ 50 struct bpf_retval 51 #else /* !CONFIG_BPF_LSM */ 52 53 static inline bool bpf_lsm_is_sleepable_hook(u 54 { 55 return false; 56 } 57 58 static inline bool bpf_lsm_is_trusted(const st 59 { 60 return false; 61 } 62 63 static inline int bpf_lsm_verify_prog(struct b 64 const st 65 { 66 return -EOPNOTSUPP; 67 } 68 69 static inline struct bpf_storage_blob *bpf_ino 70 const struct inode *inode) 71 { 72 return NULL; 73 } 74 75 static inline void bpf_inode_storage_free(stru 76 { 77 } 78 79 static inline void bpf_lsm_find_cgroup_shim(co 80 bpf 81 { 82 } 83 84 static inline int bpf_lsm_get_retval_range(con 85 str 86 { 87 return -EOPNOTSUPP; 88 } 89 #endif /* CONFIG_BPF_LSM */ 90 91 #endif /* _LINUX_BPF_LSM_H */ 92
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.