summaryrefslogtreecommitdiff
path: root/internal/generate/bpfhandler.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-13 14:37:47 +0300
committerPaul Buetow <paul@buetow.org>2026-05-13 14:37:47 +0300
commitde6b9c4741dea87ce66e0309bac580030490dc30 (patch)
treee535c606fb9ec90cacb3790544fe50038f7850e1 /internal/generate/bpfhandler.go
parent306b9eb1c1054992506dd36fc9f1b64e11276598 (diff)
refactor(generate): replace classifySyscall switches with kindRegistry (OCP)
Introduce kindregistry.go with a kindMeta struct (structName, enterAccepted) and a kindRegistry map keyed by TracepointKind. Replace the switch in isEnterRejected (codegen.go) and the switch in eventStructName (bpfhandler.go) with lookupKind registry lookups. Adding a new TracepointKind now only requires a single registry entry — no switch statements need to be touched. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/generate/bpfhandler.go')
-rw-r--r--internal/generate/bpfhandler.go25
1 files changed, 3 insertions, 22 deletions
diff --git a/internal/generate/bpfhandler.go b/internal/generate/bpfhandler.go
index 3d76ac4..cf9a0c9 100644
--- a/internal/generate/bpfhandler.go
+++ b/internal/generate/bpfhandler.go
@@ -133,29 +133,10 @@ func generateExtra(tp GeneratedTracepoint, isEnter bool) string {
return ""
}
+// 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 {
- switch kind {
- case KindFd:
- return "fd_event"
- case KindOpen:
- return "open_event"
- case KindPathname:
- return "path_event"
- case KindName:
- return "name_event"
- case KindRet:
- return "ret_event"
- case KindFcntl:
- return "fcntl_event"
- case KindNull:
- return "null_event"
- case KindDup3:
- return "dup3_event"
- case KindOpenByHandleAt:
- return "open_by_handle_at_event"
- default:
- return "unknown_event"
- }
+ return lookupKind(kind).structName
}
func eventTypeConstant(kind TracepointKind, isEnter bool) string {