aboutsummaryrefslogtreecommitdiffstats
path: root/sys/freebsd
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-10-02 21:48:24 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-10-12 18:16:25 +0200
commit81e199f71969b97c80cbb4473ddd53adeed3b4d4 (patch)
tree5b0e4603642a0ff07ffd675aa64a1472092f6f80 /sys/freebsd
parent02a7a5401946658aa06fd618cf36e6848b0078fd (diff)
sys/syz-extract: support freebsd
Diffstat (limited to 'sys/freebsd')
-rw-r--r--sys/freebsd/amd64.go35
-rw-r--r--sys/freebsd/sys.txt8
-rw-r--r--sys/freebsd/sys_amd64.const14
3 files changed, 39 insertions, 18 deletions
diff --git a/sys/freebsd/amd64.go b/sys/freebsd/amd64.go
index 01ff37870..81422e6c7 100644
--- a/sys/freebsd/amd64.go
+++ b/sys/freebsd/amd64.go
@@ -7,28 +7,39 @@ func init() {
RegisterTarget(&Target{OS: "freebsd", Arch: "amd64", Revision: revision_amd64, PtrSize: 8, Syscalls: syscalls_amd64, Resources: resources_amd64, Structs: structDescs_amd64, Consts: consts_amd64}, initTarget)
}
-var resources_amd64 = []*ResourceDesc(nil)
+var resources_amd64 = []*ResourceDesc{
+ {Name: "fd", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd"}, Values: []uint64{18446744073709551615}},
+}
-var structDescs_amd64 = []*KeyedStruct(nil)
+var structDescs_amd64 = []*KeyedStruct{
+ {Key: StructKey{Name: "pipefd", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "pipefd", TypeSize: 8, ArgDir: 1}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "rfd", TypeSize: 4, ArgDir: 1}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "wfd", TypeSize: 4, ArgDir: 1}},
+ }}},
+}
var syscalls_amd64 = []*Syscall{
- {NR: 1, Name: "mmap", CallName: "mmap", Args: []Type{
+ {NR: 477, Name: "mmap", CallName: "mmap", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{2, 3}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{4, 5, 6}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{1, 2}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{2, 4096, 16}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551615},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}},
}, Ret: &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "ret", TypeSize: 8, ArgDir: 1}}},
+ {ID: 1, NR: 42, Name: "pipe", CallName: "pipe", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "pipefd", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pipefd", Dir: 1}}},
+ }},
}
var consts_amd64 = []ConstValue{
- {Name: "MAP_ANONYMOUS", Value: 5},
- {Name: "MAP_FIXED", Value: 6},
- {Name: "MAP_PRIVATE", Value: 4},
- {Name: "PROT_READ", Value: 2},
- {Name: "PROT_WRITE", Value: 3},
- {Name: "SYS_mmap", Value: 1},
+ {Name: "MAP_ANONYMOUS", Value: 4096},
+ {Name: "MAP_FIXED", Value: 16},
+ {Name: "MAP_PRIVATE", Value: 2},
+ {Name: "PROT_READ", Value: 1},
+ {Name: "PROT_WRITE", Value: 2},
+ {Name: "SYS_mmap", Value: 477},
+ {Name: "SYS_pipe", Value: 42},
}
-const revision_amd64 = "8e89c92ba6210bfbb714647598abe10b8cbb4edf"
+const revision_amd64 = "7c737d486a33a6a0817ce924247b4b67428f7a07"
diff --git a/sys/freebsd/sys.txt b/sys/freebsd/sys.txt
index 6bb524299..5910d26c0 100644
--- a/sys/freebsd/sys.txt
+++ b/sys/freebsd/sys.txt
@@ -3,7 +3,15 @@
include <sys/mman.h>
+resource fd[int32]: 0xffffffffffffffff
+
mmap(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd const[0xffffffffffffffff], offset const[0]) vma
+pipe(pipefd ptr[out, pipefd])
mmap_prot = PROT_READ, PROT_WRITE
mmap_flags = MAP_PRIVATE, MAP_ANONYMOUS, MAP_FIXED
+
+pipefd {
+ rfd fd
+ wfd fd
+}
diff --git a/sys/freebsd/sys_amd64.const b/sys/freebsd/sys_amd64.const
index 16b860253..327dfb024 100644
--- a/sys/freebsd/sys_amd64.const
+++ b/sys/freebsd/sys_amd64.const
@@ -1,6 +1,8 @@
-SYS_mmap = 1
-PROT_READ = 2
-PROT_WRITE = 3
-MAP_PRIVATE = 4
-MAP_ANONYMOUS = 5
-MAP_FIXED = 6
+# AUTOGENERATED FILE
+MAP_ANONYMOUS = 4096
+MAP_FIXED = 16
+MAP_PRIVATE = 2
+PROT_READ = 1
+PROT_WRITE = 2
+SYS_mmap = 477
+SYS_pipe = 42