70 lines · 1.4 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (C) 2020 Google LLC. */ #ifndef _LINUX_BPF_LSM_H#define _LINUX_BPF_LSM_H #include <linux/sched.h>#include <linux/bpf.h>#include <linux/lsm_hooks.h> #ifdef CONFIG_BPF_LSM #define LSM_HOOK(RET, DEFAULT, NAME, ...) \	RET bpf_lsm_##NAME(__VA_ARGS__);#include <linux/lsm_hook_defs.h>#undef LSM_HOOK struct bpf_storage_blob {	struct bpf_local_storage __rcu *storage;}; extern struct lsm_blob_sizes bpf_lsm_blob_sizes; int bpf_lsm_verify_prog(struct bpf_verifier_log *vlog,			const struct bpf_prog *prog); bool bpf_lsm_is_sleepable_hook(u32 btf_id); static inline struct bpf_storage_blob *bpf_inode(	const struct inode *inode){	if (unlikely(!inode->i_security))		return NULL; 	return inode->i_security + bpf_lsm_blob_sizes.lbs_inode;} extern const struct bpf_func_proto bpf_inode_storage_get_proto;extern const struct bpf_func_proto bpf_inode_storage_delete_proto;void bpf_inode_storage_free(struct inode *inode); #else /* !CONFIG_BPF_LSM */ static inline bool bpf_lsm_is_sleepable_hook(u32 btf_id){	return false;} static inline int bpf_lsm_verify_prog(struct bpf_verifier_log *vlog,				      const struct bpf_prog *prog){	return -EOPNOTSUPP;} static inline struct bpf_storage_blob *bpf_inode(	const struct inode *inode){	return NULL;} static inline void bpf_inode_storage_free(struct inode *inode){} #endif /* CONFIG_BPF_LSM */ #endif /* _LINUX_BPF_LSM_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t