xref: /openbmc/qemu/ebpf/ebpf.h (revision 66210a1a30f2384bb59f9dad8d769dba56dd30f1)
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