summaryrefslogtreecommitdiff
path: root/internal/tracepoints/tracepoints.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-02-19 11:53:13 +0200
committerPaul Buetow <paul@buetow.org>2024-02-19 11:53:13 +0200
commit4309271756784e9e4846a385c477ea31f183dc3b (patch)
treec302159be3c7322a59bcbf08c5fe9b5b423721b0 /internal/tracepoints/tracepoints.go
parent728b11eb64db53d8f71faa86ed5043efbaa8d589 (diff)
make ioriotng able to run without .c source files present
Diffstat (limited to 'internal/tracepoints/tracepoints.go')
-rw-r--r--internal/tracepoints/tracepoints.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/tracepoints/tracepoints.go b/internal/tracepoints/tracepoints.go
new file mode 100644
index 0000000..1b6cf56
--- /dev/null
+++ b/internal/tracepoints/tracepoints.go
@@ -0,0 +1,23 @@
+package tracepoints
+
+import (
+ "fmt"
+
+ bpf "github.com/aquasecurity/libbpfgo"
+)
+
+func AttachSyscalls(bpfModule *bpf.Module) error {
+ for _, name := range tracepointList {
+ // Attach to tracepoint
+ prog, err := bpfModule.GetProgram(fmt.Sprintf("handle_%s", name))
+ if err != nil {
+ return fmt.Errorf("Failed to get BPF program handle_%s: %v", name, err)
+ }
+ fmt.Println("Attached prog handle_" + name)
+ if _, err = prog.AttachTracepoint("syscalls", fmt.Sprintf("sys_%s", name)); err != nil {
+ return fmt.Errorf("Failed to attach to sys_%s tracepoint: %v", name, err)
+ }
+ fmt.Println("Attached tracepoint sys_" + name)
+ }
+ return nil
+}