summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-21 18:13:22 +0300
committerPaul Buetow <paul@buetow.org>2026-05-21 18:13:22 +0300
commita784437199c1d8bc8dfe7ae1a017779f48667844 (patch)
treeca916a7676f73e1c7c30f4a6bb790e71f3c46839 /internal
parent1dbd0f697d01337d79915a9e0ab716bb26a26f39 (diff)
vb add data-driven name-only kind mapping table
Diffstat (limited to 'internal')
-rw-r--r--internal/generate/classify.go150
1 files changed, 150 insertions, 0 deletions
diff --git a/internal/generate/classify.go b/internal/generate/classify.go
index 5660eb1..03205bc 100644
--- a/internal/generate/classify.go
+++ b/internal/generate/classify.go
@@ -161,7 +161,157 @@ func ClassifyFormat(f *Format) ClassificationResult {
// classifyNameOnly handles tracepoints classified by name alone,
// independent of any field.
+//
+// Keep newly-added syscall expansion mappings in this table first to reduce
+// switch churn and merge conflicts across incremental tracing phases.
+var nameOnlyKindsTable = map[string]TracepointKind{
+ "sys_enter_landlock_add_rule": KindFd,
+ "sys_enter_landlock_restrict_self": KindFd,
+
+ "sys_enter_msgget": KindSysVId,
+ "sys_enter_semget": KindSysVId,
+ "sys_enter_shmget": KindSysVId,
+ "sys_enter_msgsnd": KindSysVOp,
+ "sys_enter_msgrcv": KindSysVOp,
+ "sys_enter_msgctl": KindSysVOp,
+ "sys_enter_semop": KindSysVOp,
+ "sys_enter_semtimedop": KindSysVOp,
+ "sys_enter_semctl": KindSysVOp,
+ "sys_enter_shmat": KindSysVOp,
+ "sys_enter_shmdt": KindSysVOp,
+ "sys_enter_shmctl": KindSysVOp,
+
+ "sys_enter_clone": KindProc,
+ "sys_enter_clone3": KindProc,
+ "sys_enter_fork": KindProc,
+ "sys_enter_vfork": KindProc,
+ "sys_enter_wait4": KindProc,
+ "sys_enter_waitid": KindProc,
+
+ "sys_enter_bpf": KindBpf,
+
+ "sys_enter_mprotect": KindMem,
+ "sys_enter_madvise": KindMem,
+ "sys_enter_pkey_mprotect": KindMem,
+ "sys_enter_brk": KindMem,
+
+ "sys_enter_pkey_alloc": KindNull,
+ "sys_enter_pkey_free": KindNull,
+ "sys_enter_mbind": KindNull,
+ "sys_enter_set_mempolicy": KindNull,
+ "sys_enter_get_mempolicy": KindNull,
+ "sys_enter_set_mempolicy_home_node": KindNull,
+ "sys_enter_migrate_pages": KindNull,
+ "sys_enter_move_pages": KindNull,
+ "sys_enter_mlockall": KindNull,
+ "sys_enter_munlockall": KindNull,
+ "sys_enter_process_madvise": KindFd,
+ "sys_enter_process_mrelease": KindFd,
+
+ "sys_enter_futex": KindFutex,
+ "sys_enter_futex_wait": KindFutex,
+ "sys_enter_futex_wake": KindFutex,
+ "sys_enter_futex_requeue": KindFutex,
+ "sys_enter_futex_waitv": KindFutex,
+
+ "sys_enter_kill": KindNull,
+ "sys_enter_prctl": KindPrctl,
+ "sys_enter_setns": KindFd,
+ "sys_enter_unshare": KindNull,
+
+ "sys_enter_clock_gettime": KindNull,
+ "sys_enter_clock_settime": KindNull,
+ "sys_enter_clock_getres": KindNull,
+ "sys_enter_clock_adjtime": KindNull,
+ "sys_enter_gettimeofday": KindNull,
+ "sys_enter_settimeofday": KindNull,
+ "sys_enter_time": KindNull,
+ "sys_enter_times": KindNull,
+ "sys_enter_adjtimex": KindNull,
+ "sys_enter_alarm": KindNull,
+ "sys_enter_getitimer": KindNull,
+ "sys_enter_setitimer": KindNull,
+ "sys_enter_timer_create": KindTimerObj,
+ "sys_enter_timer_settime": KindTimerObj,
+ "sys_enter_timer_gettime": KindTimerObj,
+ "sys_enter_timer_getoverrun": KindTimerObj,
+ "sys_enter_timer_delete": KindTimerObj,
+
+ "sys_enter_getpid": KindNull,
+ "sys_enter_gettid": KindNull,
+ "sys_enter_getppid": KindNull,
+ "sys_enter_getuid": KindNull,
+ "sys_enter_geteuid": KindNull,
+ "sys_enter_getgid": KindNull,
+ "sys_enter_getegid": KindNull,
+ "sys_enter_getresuid": KindNull,
+ "sys_enter_getresgid": KindNull,
+ "sys_enter_getgroups": KindNull,
+ "sys_enter_setuid": KindNull,
+ "sys_enter_seteuid": KindNull,
+ "sys_enter_setgid": KindNull,
+ "sys_enter_setegid": KindNull,
+ "sys_enter_setresuid": KindNull,
+ "sys_enter_setresgid": KindNull,
+ "sys_enter_setreuid": KindNull,
+ "sys_enter_setregid": KindNull,
+ "sys_enter_setfsuid": KindNull,
+ "sys_enter_setfsgid": KindNull,
+ "sys_enter_setgroups": KindNull,
+ "sys_enter_umask": KindNull,
+ "sys_enter_setsid": KindNull,
+ "sys_enter_getsid": KindNull,
+ "sys_enter_setpgid": KindNull,
+ "sys_enter_getpgid": KindNull,
+ "sys_enter_getpgrp": KindNull,
+ "sys_enter_set_tid_address": KindNull,
+
+ "sys_enter_sched_yield": KindNull,
+ "sys_enter_sched_setaffinity": KindNull,
+ "sys_enter_sched_getaffinity": KindNull,
+ "sys_enter_sched_setparam": KindNull,
+ "sys_enter_sched_getparam": KindNull,
+ "sys_enter_sched_setscheduler": KindNull,
+ "sys_enter_sched_getscheduler": KindNull,
+ "sys_enter_sched_setattr": KindNull,
+ "sys_enter_sched_getattr": KindNull,
+ "sys_enter_sched_get_priority_max": KindNull,
+ "sys_enter_sched_get_priority_min": KindNull,
+ "sys_enter_sched_rr_get_interval": KindNull,
+ "sys_enter_getcpu": KindNull,
+ "sys_enter_getrusage": KindNull,
+ "sys_enter_getrlimit": KindNull,
+ "sys_enter_setrlimit": KindNull,
+ "sys_enter_prlimit64": KindNull,
+ "sys_enter_getpriority": KindNull,
+ "sys_enter_setpriority": KindNull,
+
+ "sys_enter_sysinfo": KindNull,
+ "sys_enter_sysfs": KindNull,
+ "sys_enter_ustat": KindNull,
+ "sys_enter_newuname": KindNull,
+ "sys_enter_sethostname": KindNull,
+ "sys_enter_setdomainname": KindNull,
+ "sys_enter_capget": KindNull,
+ "sys_enter_capset": KindNull,
+ "sys_enter_personality": KindNull,
+ "sys_enter_reboot": KindNull,
+ "sys_enter_restart_syscall": KindNull,
+ "sys_enter_vhangup": KindNull,
+ "sys_enter_arch_prctl": KindNull,
+ "sys_enter_ioperm": KindNull,
+ "sys_enter_iopl": KindNull,
+ "sys_enter_modify_ldt": KindNull,
+ "sys_enter_lsm_get_self_attr": KindNull,
+ "sys_enter_lsm_set_self_attr": KindNull,
+ "sys_enter_lsm_list_modules": KindNull,
+}
+
func classifyNameOnly(name string) (ClassificationResult, bool) {
+ if kind, ok := nameOnlyKindsTable[name]; ok {
+ return ClassificationResult{Kind: kind}, true
+ }
+
switch name {
case "sys_enter_open_by_handle_at":
return ClassificationResult{Kind: KindOpenByHandleAt}, true