136b5d471SAndrii Nakryiko /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ 236b5d471SAndrii Nakryiko #ifndef __BPF_LEGACY__ 336b5d471SAndrii Nakryiko #define __BPF_LEGACY__ 436b5d471SAndrii Nakryiko 536b5d471SAndrii Nakryiko /* 636b5d471SAndrii Nakryiko * legacy bpf_map_def with extra fields supported only by bpf_load(), do not 736b5d471SAndrii Nakryiko * use outside of samples/bpf 836b5d471SAndrii Nakryiko */ 936b5d471SAndrii Nakryiko struct bpf_map_def_legacy { 1036b5d471SAndrii Nakryiko unsigned int type; 1136b5d471SAndrii Nakryiko unsigned int key_size; 1236b5d471SAndrii Nakryiko unsigned int value_size; 1336b5d471SAndrii Nakryiko unsigned int max_entries; 1436b5d471SAndrii Nakryiko unsigned int map_flags; 1536b5d471SAndrii Nakryiko unsigned int inner_map_idx; 1636b5d471SAndrii Nakryiko unsigned int numa_node; 1736b5d471SAndrii Nakryiko }; 1836b5d471SAndrii Nakryiko 1936b5d471SAndrii Nakryiko #define BPF_ANNOTATE_KV_PAIR(name, type_key, type_val) \ 2036b5d471SAndrii Nakryiko struct ____btf_map_##name { \ 2136b5d471SAndrii Nakryiko type_key key; \ 2236b5d471SAndrii Nakryiko type_val value; \ 2336b5d471SAndrii Nakryiko }; \ 2436b5d471SAndrii Nakryiko struct ____btf_map_##name \ 2536b5d471SAndrii Nakryiko __attribute__ ((section(".maps." #name), used)) \ 2636b5d471SAndrii Nakryiko ____btf_map_##name = { } 2736b5d471SAndrii Nakryiko 2836b5d471SAndrii Nakryiko /* llvm builtin functions that eBPF C program may use to 2936b5d471SAndrii Nakryiko * emit BPF_LD_ABS and BPF_LD_IND instructions 3036b5d471SAndrii Nakryiko */ 3136b5d471SAndrii Nakryiko unsigned long long load_byte(void *skb, 3236b5d471SAndrii Nakryiko unsigned long long off) asm("llvm.bpf.load.byte"); 3336b5d471SAndrii Nakryiko unsigned long long load_half(void *skb, 3436b5d471SAndrii Nakryiko unsigned long long off) asm("llvm.bpf.load.half"); 3536b5d471SAndrii Nakryiko unsigned long long load_word(void *skb, 3636b5d471SAndrii Nakryiko unsigned long long off) asm("llvm.bpf.load.word"); 3736b5d471SAndrii Nakryiko 3836b5d471SAndrii Nakryiko #endif 3936b5d471SAndrii Nakryiko 40