summaryrefslogtreecommitdiff
path: root/internal/generate
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-22 18:20:44 +0200
committerPaul Buetow <paul@buetow.org>2026-02-22 18:20:44 +0200
commit8e52ba5a8661c717f45e00608ad64f0adc6de3e1 (patch)
treec90dcccca9168552d311312ba238e7b84fab9e0d /internal/generate
parent40ce5bc1d9da31b49f42e488d2ab5633e7c6a3fb (diff)
Implement mmap/msync syscall support with unit and integration coverage
Diffstat (limited to 'internal/generate')
-rw-r--r--internal/generate/classify.go2
-rw-r--r--internal/generate/classify_test.go2
-rw-r--r--internal/generate/testdata.go30
3 files changed, 34 insertions, 0 deletions
diff --git a/internal/generate/classify.go b/internal/generate/classify.go
index c55e46f..b79d49c 100644
--- a/internal/generate/classify.go
+++ b/internal/generate/classify.go
@@ -113,6 +113,8 @@ func classifyNameOnly(name string) (ClassificationResult, bool) {
return ClassificationResult{Kind: KindNull}, true
case "sys_enter_sync":
return ClassificationResult{Kind: KindNull}, true
+ case "sys_enter_msync":
+ return ClassificationResult{Kind: KindNull}, true
}
if strings.HasPrefix(name, "sys_enter_io_") {
return ClassificationResult{Kind: KindNull}, true
diff --git a/internal/generate/classify_test.go b/internal/generate/classify_test.go
index 07c6027..285c8e2 100644
--- a/internal/generate/classify_test.go
+++ b/internal/generate/classify_test.go
@@ -272,6 +272,7 @@ func TestShouldNotIgnore(t *testing.T) {
noIgnore := []string{
"sys_enter_read", "sys_enter_write", "sys_enter_openat",
"sys_enter_close", "sys_enter_rename", "sys_enter_unlink",
+ "sys_enter_msync",
"sys_exit_read", "sys_exit_openat",
}
for _, name := range noIgnore {
@@ -297,6 +298,7 @@ func TestClassifySyscallPairAccepted(t *testing.T) {
{"dup3", FormatDup3, FormatExitDup3, KindDup3},
{"fcntl", FormatFcntl, FormatExitFcntl, KindFcntl},
{"sync", FormatSync, FormatExitSync, KindNull},
+ {"msync", FormatMsync, FormatExitMsync, KindNull},
{"syslog", FormatSyslog, FormatExitSyslog, KindNull},
{"open_by_handle_at", FormatOpenByHandleAt, FormatExitOpenByHandleAt, KindOpenByHandleAt},
{"name_to_handle_at", FormatNameToHandleAt, FormatExitNameToHandleAt, KindPathname},
diff --git a/internal/generate/testdata.go b/internal/generate/testdata.go
index e36a6a1..c03c0d7 100644
--- a/internal/generate/testdata.go
+++ b/internal/generate/testdata.go
@@ -152,6 +152,36 @@ format:
print fmt: "0x%lx", REC->ret
`
+const FormatMsync = `name: sys_enter_msync
+ID: 1029
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int __syscall_nr; offset:8; size:4; signed:1;
+ field:unsigned long start; offset:16; size:8; signed:0;
+ field:size_t len; offset:24; size:8; signed:0;
+ field:int flags; offset:32; size:8; signed:0;
+
+print fmt: "start: 0x%08lx, len: 0x%08lx, flags: 0x%08lx", ((unsigned long)(REC->start)), ((unsigned long)(REC->len)), ((unsigned long)(REC->flags))
+`
+
+const FormatExitMsync = `name: sys_exit_msync
+ID: 1028
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int __syscall_nr; offset:8; size:4; signed:1;
+ field:long ret; offset:16; size:8; signed:1;
+
+print fmt: "0x%lx", REC->ret
+`
+
const FormatRename = `name: sys_enter_rename
ID: 870
format: