diff options
| author | Paul Buetow <paul@buetow.org> | 2024-02-06 09:49:42 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-02-06 09:49:42 +0200 |
| commit | 3ec8b2a55ea7929d15c1578d689376795cdf1ab8 (patch) | |
| tree | 1100e22af8089b2966a3037bb238bd5e1fb530f1 | |
| parent | e00a517c932f1f58fad1f34cf6d32b734c782028 (diff) | |
cann recv a string from the kernel to userland
| -rw-r--r-- | main.bpf.c | 15 | ||||
| -rw-r--r-- | main.go | 12 |
2 files changed, 3 insertions, 24 deletions
@@ -25,19 +25,8 @@ struct { SEC("kprobe/sys_mmap") int kprobe__sys_mmap(struct pt_regs *ctx) { - u32 firstKey = 1; - struct value *v1 = bpf_map_lookup_elem(&tester, &firstKey); - if (!v1) { - return 1; - } - bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, v1, sizeof(struct value)); - - s64 secondKey = 42069420; - struct value *v2 = bpf_map_lookup_elem(&tester, &secondKey); - if (!v2) { - return 1; - } - bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, v2, sizeof(char) * 3); + char *foo = "foo"; + bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, foo, sizeof(char) * 3); return 0; } @@ -8,7 +8,6 @@ import ( "time" "unsafe" - "encoding/binary" "fmt" "syscall" @@ -104,16 +103,7 @@ func main() { }() ev := <-eventsChannel - if binary.LittleEndian.Uint32(ev) != 50 { - fmt.Fprintf(os.Stderr, "invalid data retrieved\n") - os.Exit(-1) - } - - ev = <-eventsChannel - if ev[0] != value2[0] || ev[1] != value2[1] || ev[2] != value2[2] { - fmt.Fprintf(os.Stderr, "invalid data retrieved\n") - os.Exit(-1) - } + fmt.Println("Received ", string(ev)) pb.Stop() pb.Close() |
