/* 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