| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* Copyright (c) 2024 Meta Platforms, Inc. and affiliates. */ | |
| #ifndef _UPTR_TEST_COMMON_H | |
| #define _UPTR_TEST_COMMON_H | |
| #define MAGIC_VALUE 0xabcd1234 | |
| #define PAGE_SIZE 4096 | |
| #ifdef __BPF__ | |
| /* Avoid fwd btf type being generated for the following struct */ | |
| struct large_data *dummy_large_data; | |
| struct empty_data *dummy_empty_data; | |
| struct user_data *dummy_data; | |
| struct cgroup *dummy_cgrp; | |
| #else | |
| #define __uptr | |
| #define __kptr | |
| #endif | |
| struct user_data { | |
| int a; | |
| int b; | |
| int result; | |
| int nested_result; | |
| }; | |
| struct nested_udata { | |
| struct user_data __uptr *udata; | |
| }; | |
| struct value_type { | |
| struct user_data __uptr *udata; | |
| struct cgroup __kptr *cgrp; | |
| struct nested_udata nested; | |
| }; | |
| struct value_lock_type { | |
| struct user_data __uptr *udata; | |
| struct bpf_spin_lock lock; | |
| }; | |
| struct large_data { | |
| __u8 one_page[PAGE_SIZE]; | |
| int a; | |
| }; | |
| struct large_uptr { | |
| struct large_data __uptr *udata; | |
| }; | |
| struct empty_data { | |
| }; | |
| struct empty_uptr { | |
| struct empty_data __uptr *udata; | |
| }; | |
| struct kstruct_uptr { | |
| struct cgroup __uptr *cgrp; | |
| }; | |
| #endif |