diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-20 22:25:40 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-20 22:25:40 +0300 |
| commit | 7a9839917461b12c810329ccb8fd3c6de06902d2 (patch) | |
| tree | 7e68d52cec796d8a4d7b5110ba87cdce48a0fcb9 /internal/generate/bpfhandler.go | |
| parent | 271af607921ceabc640271c475a66e45b9460d3f (diff) | |
d7: add POSIX mq syscall kind/classification and coverage
Diffstat (limited to 'internal/generate/bpfhandler.go')
| -rw-r--r-- | internal/generate/bpfhandler.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/internal/generate/bpfhandler.go b/internal/generate/bpfhandler.go index afdb83e..57f635a 100644 --- a/internal/generate/bpfhandler.go +++ b/internal/generate/bpfhandler.go @@ -103,6 +103,8 @@ func generateExtra(tp GeneratedTracepoint, isEnter bool) string { return generateExtraSleep(f.Name) case KindOpen: return generateExtraOpen(f) + case KindMqOpen: + return generateExtraMqOpen(f) case KindPathname: return generateExtraPathname(tp, f) case KindName: @@ -131,8 +133,16 @@ func generateExtraFd(f *Format) string { // generateExtraOpen returns the filename/comm/flags capture lines for open-family events. func generateExtraOpen(f *Format) string { - filenameIdx := f.FieldNumber("filename") - flagsIdx := f.FieldNumber("flags") + return generateExtraOpenWithFields(f, "filename", "flags") +} + +func generateExtraMqOpen(f *Format) string { + return generateExtraOpenWithFields(f, "u_name", "oflag") +} + +func generateExtraOpenWithFields(f *Format, pathnameField, flagsField string) string { + filenameIdx := f.FieldNumber(pathnameField) + flagsIdx := f.FieldNumber(flagsField) var b strings.Builder b.WriteString(" __builtin_memset(&(ev->filename), 0, sizeof(ev->filename) + sizeof(ev->comm));\n") fmt.Fprintf(&b, " bpf_probe_read_user_str(ev->filename, sizeof(ev->filename), (void *)ctx->args[%d]);\n", filenameIdx) |
