mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
selftests/bpf: Add bpf_percpu_obj_{new,drop}() macro in bpf_experimental.h
[ Upstream commit 968c76cb3dc6cc86e8099ecaa5c30dc0d4738a30 ] The new macro bpf_percpu_obj_{new/drop}() is very similar to bpf_obj_{new,drop}() as they both take a type as the argument. Signed-off-by: Yonghong Song <yonghong.song@linux.dev> Link: https://lore.kernel.org/r/20230827152805.1999417-1-yonghong.song@linux.dev Signed-off-by: Alexei Starovoitov <ast@kernel.org> Stable-dep-of: aa30eb3260b2 ("bpf: Force checkpoint when jmp history is too long") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
597cf9748c
commit
bef1f6beae
1 changed files with 31 additions and 0 deletions
|
@ -131,4 +131,35 @@ extern int bpf_rbtree_add_impl(struct bpf_rb_root *root, struct bpf_rb_node *nod
|
||||||
*/
|
*/
|
||||||
extern struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __ksym;
|
extern struct bpf_rb_node *bpf_rbtree_first(struct bpf_rb_root *root) __ksym;
|
||||||
|
|
||||||
|
/* Description
|
||||||
|
* Allocates a percpu object of the type represented by 'local_type_id' in
|
||||||
|
* program BTF. User may use the bpf_core_type_id_local macro to pass the
|
||||||
|
* type ID of a struct in program BTF.
|
||||||
|
*
|
||||||
|
* The 'local_type_id' parameter must be a known constant.
|
||||||
|
* The 'meta' parameter is rewritten by the verifier, no need for BPF
|
||||||
|
* program to set it.
|
||||||
|
* Returns
|
||||||
|
* A pointer to a percpu object of the type corresponding to the passed in
|
||||||
|
* 'local_type_id', or NULL on failure.
|
||||||
|
*/
|
||||||
|
extern void *bpf_percpu_obj_new_impl(__u64 local_type_id, void *meta) __ksym;
|
||||||
|
|
||||||
|
/* Convenience macro to wrap over bpf_percpu_obj_new_impl */
|
||||||
|
#define bpf_percpu_obj_new(type) ((type __percpu_kptr *)bpf_percpu_obj_new_impl(bpf_core_type_id_local(type), NULL))
|
||||||
|
|
||||||
|
/* Description
|
||||||
|
* Free an allocated percpu object. All fields of the object that require
|
||||||
|
* destruction will be destructed before the storage is freed.
|
||||||
|
*
|
||||||
|
* The 'meta' parameter is rewritten by the verifier, no need for BPF
|
||||||
|
* program to set it.
|
||||||
|
* Returns
|
||||||
|
* Void.
|
||||||
|
*/
|
||||||
|
extern void bpf_percpu_obj_drop_impl(void *kptr, void *meta) __ksym;
|
||||||
|
|
||||||
|
/* Convenience macro to wrap over bpf_obj_drop_impl */
|
||||||
|
#define bpf_percpu_obj_drop(kptr) bpf_percpu_obj_drop_impl(kptr, NULL)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue