diff options
Diffstat (limited to 'internal/generate/bpfhandler.go')
| -rw-r--r-- | internal/generate/bpfhandler.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/generate/bpfhandler.go b/internal/generate/bpfhandler.go index 20859ee..e3d0d67 100644 --- a/internal/generate/bpfhandler.go +++ b/internal/generate/bpfhandler.go @@ -87,6 +87,8 @@ func generateExtra(tp GeneratedTracepoint, isEnter bool) string { return generateExtraEpollCtl() case KindPoll: return generateExtraPoll(f.Name) + case KindMem: + return generateExtraMem(f.Name) case KindOpen: return generateExtraOpen(f) case KindPathname: @@ -222,6 +224,17 @@ func generateExtraPoll(name string) string { } } +func generateExtraMem(name string) string { + switch name { + case "sys_enter_munmap": + return " ev->addr = (__u64)ctx->args[0];\n ev->length = (__u64)ctx->args[1];\n ev->length2 = 0;\n ev->flags = 0;\n" + case "sys_enter_mremap": + return " ev->addr = (__u64)ctx->args[0];\n ev->length = (__u64)ctx->args[1];\n ev->length2 = (__u64)ctx->args[2];\n ev->flags = (__u64)ctx->args[3];\n" + default: + return " ev->addr = 0;\n ev->length = 0;\n ev->length2 = 0;\n ev->flags = 0;\n" + } +} + // eventStructName returns the C struct name for a TracepointKind. The mapping // is driven by kindRegistry so adding a new kind only requires a registry entry. func eventStructName(kind TracepointKind) string { |
