summaryrefslogtreecommitdiffstats
path: root/libnetdata/ebpf/ebpf.h
diff options
context:
space:
mode:
Diffstat (limited to 'libnetdata/ebpf/ebpf.h')
-rw-r--r--libnetdata/ebpf/ebpf.h43
1 files changed, 20 insertions, 23 deletions
diff --git a/libnetdata/ebpf/ebpf.h b/libnetdata/ebpf/ebpf.h
index 6e01786c85..1003f9eda3 100644
--- a/libnetdata/ebpf/ebpf.h
+++ b/libnetdata/ebpf/ebpf.h
@@ -1,7 +1,12 @@
-#ifndef _NETDATA_EBPF_H_
-# define _NETDATA_EBPF_H_ 1
+// SPDX-License-Identifier: GPL-3.0-or-later
-# define NETDATA_DEBUGFS "/sys/kernel/debug/tracing/"
+#ifndef NETDATA_EBPF_H
+#define NETDATA_EBPF_H 1
+
+#include <bpf/bpf.h>
+#include <bpf/libbpf.h>
+
+#define NETDATA_DEBUGFS "/sys/kernel/debug/tracing/"
/**
* The next magic number is got doing the following math:
@@ -9,7 +14,7 @@
*
* For more details, please, read /usr/include/linux/version.h
*/
-# define NETDATA_MINIMUM_EBPF_KERNEL 264960
+#define NETDATA_MINIMUM_EBPF_KERNEL 264960
/**
* The RedHat magic number was got doing:
@@ -19,65 +24,57 @@
* For more details, please, read /usr/include/linux/version.h
* in any Red Hat installation.
*/
-# define NETDATA_MINIMUM_RH_VERSION 1797
+#define NETDATA_MINIMUM_RH_VERSION 1797
/**
* 2048 = 8*256 + 0
*/
-# define NETDATA_RH_8 2048
+#define NETDATA_RH_8 2048
/**
* Kernel 4.17
*
* 266496 = 4*65536 + 17*256
*/
-# define NETDATA_EBPF_KERNEL_4_17 266496
+#define NETDATA_EBPF_KERNEL_4_17 266496
/**
* Kernel 4.15
*
* 265984 = 4*65536 + 15*256
*/
-# define NETDATA_EBPF_KERNEL_4_15 265984
+#define NETDATA_EBPF_KERNEL_4_15 265984
/**
* Kernel 4.11
*
* 264960 = 4*65536 + 15*256
*/
-# define NETDATA_EBPF_KERNEL_4_11 264960
+#define NETDATA_EBPF_KERNEL_4_11 264960
typedef struct netdata_ebpf_events {
char type;
char *name;
} netdata_ebpf_events_t;
-typedef struct ebpf_functions {
- void *libnetdata;
- int (*load_bpf_file)(int *, char *, int);
- //Libbpf (It is necessary to have at least kernel 4.10)
- int (*bpf_map_lookup_elem)(int, const void *, void *);
- int (*bpf_map_delete_elem)(int fd, const void *key);
- int (*bpf_map_get_next_key)(int fd, const void *key, void *next_key);
-
+typedef struct ebpf_data {
int *map_fd;
char *kernel_string;
uint32_t running_on_kernel;
int isrh;
-} ebpf_functions_t;
+} ebpf_data_t;
extern int clean_kprobe_events(FILE *out, int pid, netdata_ebpf_events_t *ptr);
extern int get_kernel_version(char *out, int size);
extern int get_redhat_release();
extern int has_condition_to_run(int version);
-extern char *ebpf_library_suffix(int version, int isrh);
-extern int ebpf_load_libraries(ebpf_functions_t *ef, char *libbase, char *pluginsdir);
+extern char *ebpf_kernel_suffix(int version, int isrh);
+extern int ebpf_update_kernel(ebpf_data_t *ef);
extern int ebpf_load_program(char *plugins_dir,
int event_id, int mode,
char *kernel_string,
const char *name,
- int *map_fd,
- int (*load_bpf_file)(int *,char *, int));
+ int *map_fd);
-#endif
+#endif /* NETDATA_EBPF_H */