aboutsummaryrefslogtreecommitdiffstats
path: root/sys/darwin
diff options
context:
space:
mode:
authorPatrick Meyer <meyerpatrick@google.com>2021-05-08 23:56:52 +0200
committerDmitry Vyukov <dvyukov@google.com>2021-05-20 13:29:54 +0200
commitf724ff25c0a72ce7eefd85c6a88b3522283c50cc (patch)
treeadc908d6f8765f915dddc47cf27c094968d1a66d /sys/darwin
parent5681e9317b1f70c3cc1fba432eb138c183b8bdd1 (diff)
sys/darwin: minimal set of syscalls
To make MakeUnixNeutralizer work we need to have definitions of mmap and friends, like MAP_FIXED.
Diffstat (limited to 'sys/darwin')
-rw-r--r--sys/darwin/gen/empty.go6
-rw-r--r--sys/darwin/init.go22
-rw-r--r--sys/darwin/sys.txt18
-rw-r--r--sys/darwin/sys.txt.const27
4 files changed, 73 insertions, 0 deletions
diff --git a/sys/darwin/gen/empty.go b/sys/darwin/gen/empty.go
new file mode 100644
index 000000000..7884be456
--- /dev/null
+++ b/sys/darwin/gen/empty.go
@@ -0,0 +1,6 @@
+// Copyright 2021 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package gen
+
+// Empty file to unbreak build while descriptions are not generated.
diff --git a/sys/darwin/init.go b/sys/darwin/init.go
new file mode 100644
index 000000000..11c376e72
--- /dev/null
+++ b/sys/darwin/init.go
@@ -0,0 +1,22 @@
+// Copyright 2021 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package darwin
+
+import (
+ "github.com/google/syzkaller/prog"
+ "github.com/google/syzkaller/sys/targets"
+)
+
+func InitTarget(target *prog.Target) {
+ arch := &arch{
+ unix: targets.MakeUnixNeutralizer(target),
+ }
+
+ target.MakeDataMmap = targets.MakePosixMmap(target, false, false)
+ target.Neutralize = arch.unix.Neutralize
+}
+
+type arch struct {
+ unix *targets.UnixNeutralizer
+}
diff --git a/sys/darwin/sys.txt b/sys/darwin/sys.txt
new file mode 100644
index 000000000..bebb19142
--- /dev/null
+++ b/sys/darwin/sys.txt
@@ -0,0 +1,18 @@
+# Copyright 2021 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <fcntl.h>
+include <sys/mman.h>
+
+resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
+
+open(file ptr[in, filename], flags flags[open_flags]) fd
+close(fd fd)
+mmap(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd, offset fileoff)
+munmap(addr vma, len len[addr])
+mknod(file ptr[in, filename], mode flags[mknod_mode], dev int32)
+
+open_flags = O_RDONLY
+mmap_prot = PROT_EXEC, PROT_READ, PROT_WRITE
+mmap_flags = MAP_ANONYMOUS, MAP_ANON, MAP_FILE, MAP_FIXED, MAP_HASSEMAPHORE, MAP_PRIVATE, MAP_SHARED, MAP_NOCACHE, MAP_JIT, MAP_32BIT
+mknod_mode = S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK
diff --git a/sys/darwin/sys.txt.const b/sys/darwin/sys.txt.const
new file mode 100644
index 000000000..7632f92da
--- /dev/null
+++ b/sys/darwin/sys.txt.const
@@ -0,0 +1,27 @@
+# Code generated by syz-sysgen. DO NOT EDIT.
+arches = amd64
+AT_FDCWD = amd64:18446744073709551614
+MAP_32BIT = amd64:32768
+MAP_ANON = amd64:4096
+MAP_ANONYMOUS = amd64:4096
+MAP_FILE = amd64:0
+MAP_FIXED = amd64:16
+MAP_HASSEMAPHORE = amd64:512
+MAP_JIT = amd64:2048
+MAP_NOCACHE = amd64:1024
+MAP_PRIVATE = amd64:2
+MAP_SHARED = amd64:1
+O_RDONLY = amd64:0
+PROT_EXEC = amd64:4
+PROT_READ = amd64:1
+PROT_WRITE = amd64:2
+SYS_close = amd64:6
+SYS_mknod = amd64:14
+SYS_mmap = amd64:197
+SYS_munmap = amd64:73
+SYS_open = amd64:5
+S_IFBLK = amd64:24576
+S_IFCHR = amd64:8192
+S_IFIFO = amd64:4096
+S_IFREG = amd64:32768
+S_IFSOCK = amd64:49152