xref: /openbmc/qemu/ebpf/ebpf.h (revision 21c06f57)
1 /*
2  * QEMU eBPF binary declaration routine.
3  *
4  * Developed by Daynix Computing LTD (http://www.daynix.com)
5  *
6  * Authors:
7  *  Andrew Melnychenko <andrew@daynix.com>
8  *
9  * SPDX-License-Identifier: GPL-2.0-or-later
10  */
11 
12 #ifndef EBPF_H
13 #define EBPF_H
14 
15 
16 void ebpf_register_binary_data(int id, const void *data,
17                                size_t datalen);
18 const void *ebpf_find_binary_by_id(int id, size_t *sz,
19                                    struct Error **errp);
20 
21 #define ebpf_binary_init(id, fn)                                           \
22 static void __attribute__((constructor)) ebpf_binary_init_ ## fn(void)     \
23 {                                                                          \
24     size_t datalen = 0;                                                    \
25     const void *data = fn(&datalen);                                       \
26     ebpf_register_binary_data(id, data, datalen);                          \
27 }
28 
29 #endif /* EBPF_H */
30