diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-10-02 21:48:24 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-10-12 18:16:25 +0200 |
| commit | 81e199f71969b97c80cbb4473ddd53adeed3b4d4 (patch) | |
| tree | 5b0e4603642a0ff07ffd675aa64a1472092f6f80 /sys/freebsd | |
| parent | 02a7a5401946658aa06fd618cf36e6848b0078fd (diff) | |
sys/syz-extract: support freebsd
Diffstat (limited to 'sys/freebsd')
| -rw-r--r-- | sys/freebsd/amd64.go | 35 | ||||
| -rw-r--r-- | sys/freebsd/sys.txt | 8 | ||||
| -rw-r--r-- | sys/freebsd/sys_amd64.const | 14 |
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 |
