From de6b9c4741dea87ce66e0309bac580030490dc30 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 13 May 2026 14:37:47 +0300 Subject: refactor(generate): replace classifySyscall switches with kindRegistry (OCP) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- internal/generate/codegen.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'internal/generate/codegen.go') diff --git a/internal/generate/codegen.go b/internal/generate/codegen.go index 1c7a9b3..e3ec0ef 100644 --- a/internal/generate/codegen.go +++ b/internal/generate/codegen.go @@ -131,13 +131,11 @@ func classifySyscall(sc Syscall) ([]GeneratedTracepoint, string) { return result, "" } +// isEnterRejected reports whether kind must not appear on a syscall-enter +// tracepoint. The answer comes from the kindRegistry so no switch statement +// needs updating when a new TracepointKind is added. func isEnterRejected(kind TracepointKind) bool { - switch kind { - case KindFd, KindName, KindOpen, KindPathname, KindFcntl, KindNull, KindDup3, KindOpenByHandleAt: - return false - default: - return true - } + return !lookupKind(kind).enterAccepted } func syscallFormatNames(sc Syscall) []string { -- cgit v1.2.3