@@ -31,6 +31,29 @@ import (
31
31
#cgo LDFLAGS: -lbcc
32
32
#include <bcc/bcc_common.h>
33
33
#include <bcc/libbpf.h>
34
+ #include <bcc/bcc_version.h>
35
+
36
+ #ifndef LIBBCC_VERSION_GEQ
37
+ #define LIBBCC_VERSION_GEQ(a, b, c) 0
38
+ #endif
39
+
40
+ int bcc_func_load_wrapper(void *program, int prog_type, const char *name,
41
+ const struct bpf_insn *insns, int prog_len,
42
+ const char *license, unsigned kern_version,
43
+ int log_level, char *log_buf, unsigned log_buf_size,
44
+ const char *dev_name, int attach_type){
45
+
46
+ #if LIBBCC_VERSION_GEQ(0, 25, 0)
47
+ return bcc_func_load(program, prog_type, name, insns, prog_len, license,
48
+ kern_version, log_level, log_buf, log_buf_size,
49
+ dev_name, attach_type);
50
+ #else
51
+ return bcc_func_load(program, prog_type, name, insns, prog_len, license,
52
+ kern_version, log_level, log_buf, log_buf_size,
53
+ dev_name);
54
+ #endif
55
+ }
56
+
34
57
*/
35
58
import "C"
36
59
@@ -227,7 +250,7 @@ func (bpf *Module) load(name string, progType int, logLevel, logSize uint) (int,
227
250
logBuf = make ([]byte , logSize )
228
251
logBufP = (* C .char )(unsafe .Pointer (& logBuf [0 ]))
229
252
}
230
- fd , err := C .bcc_func_load (bpf .p , C .int (uint32 (progType )), nameCS , start , size , license , version , C .int (logLevel ), logBufP , C .uint (len (logBuf )), nil )
253
+ fd , err := C .bcc_func_load_wrapper (bpf .p , C .int (uint32 (progType )), nameCS , start , size , license , version , C .int (logLevel ), logBufP , C .uint (len (logBuf )), nil , C . int ( - 1 ) )
231
254
if fd < 0 {
232
255
return - 1 , fmt .Errorf ("error loading BPF program: %v" , err )
233
256
}
0 commit comments