aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@fh-muenster.de>2019-09-16 09:59:32 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-09-16 10:39:16 +0200
commitcb93629971b93f04dfa44e2ef3a517a36ba32a8e (patch)
treeaccec8938390abfaf77498f92a8600cd1f1dbb7a /sys
parent55c50e708b27ac81e03fed298be9297520cbcc8e (diff)
sys/freebsd/sys.txt: update sendfile description
The signature of sendfile() on FreeBSD is different from the one used on Linux.
Diffstat (limited to 'sys')
-rw-r--r--sys/freebsd/gen/386.go23
-rw-r--r--sys/freebsd/gen/amd64.go25
-rw-r--r--sys/freebsd/sys.txt10
-rw-r--r--sys/freebsd/sys_386.const4
-rw-r--r--sys/freebsd/sys_amd64.const4
5 files changed, 55 insertions, 11 deletions
diff --git a/sys/freebsd/gen/386.go b/sys/freebsd/gen/386.go
index ff0013112..792382d8a 100644
--- a/sys/freebsd/gen/386.go
+++ b/sys/freebsd/gen/386.go
@@ -1461,6 +1461,12 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "msg_controllen", TypeSize: 4}}, BitSize: 8, Path: []string{"msg_control"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "msg_flags", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "sf_hdtr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sf_hdtr", TypeSize: 16}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "headers", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "hdr_cnt", TypeSize: 4}}, Path: []string{"headers"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "trailers", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "trl_cnt", TypeSize: 4}}, Path: []string{"trailers"}},
+ }}},
{Key: StructKey{Name: "shmid_ds"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "shmid_ds", TypeSize: 72}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipc_perm"}, FldName: "perm"},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "segsz", TypeSize: 4}}},
@@ -3498,10 +3504,13 @@ var syscalls_386 = []*Syscall{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nops", TypeSize: 4}}, Path: []string{"ops"}},
}},
{NR: 393, Name: "sendfile", CallName: "sendfile", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdout", TypeSize: 4}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdin", TypeSize: 4}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "off", TypeSize: 4, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", TypeSize: 8, ArgDir: 2}}, Kind: 1}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "count", TypeSize: 8}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "s", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 4}}, Kind: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "nbytes", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hdtr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sf_hdtr"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sbytes", TypeSize: 4}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", TypeSize: 8, ArgDir: 1}}, Kind: 1}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sf_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 16, 4, 8}, BitMask: true},
}},
{NR: 28, Name: "sendmsg", CallName: "sendmsg", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
@@ -5441,6 +5450,10 @@ var consts_386 = []ConstValue{
{Name: "SEM_UNDO", Value: 4096},
{Name: "SETALL", Value: 9},
{Name: "SETVAL", Value: 8},
+ {Name: "SF_NOCACHE", Value: 16},
+ {Name: "SF_NODISKIO", Value: 1},
+ {Name: "SF_SYNC", Value: 4},
+ {Name: "SF_USER_READAHEAD", Value: 8},
{Name: "SHM_INFO", Value: 14},
{Name: "SHM_LOCK", Value: 11},
{Name: "SHM_RDONLY", Value: 4096},
@@ -5698,4 +5711,4 @@ var consts_386 = []ConstValue{
{Name: "WUNTRACED", Value: 2},
}
-const revision_386 = "21175f04ae07157b426479c1f43eb01988da85e4"
+const revision_386 = "499f5feaf81c9d39b33515503572aa8f6e24db8b"
diff --git a/sys/freebsd/gen/amd64.go b/sys/freebsd/gen/amd64.go
index 0f267afbb..c060c6809 100644
--- a/sys/freebsd/gen/amd64.go
+++ b/sys/freebsd/gen/amd64.go
@@ -1476,6 +1476,14 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "msg_flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
+ {Key: StructKey{Name: "sf_hdtr"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "sf_hdtr", TypeSize: 32}, Fields: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "headers", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "hdr_cnt", TypeSize: 4}}, Path: []string{"headers"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "trailers", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec_in"}}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "trl_cnt", TypeSize: 4}}, Path: []string{"trailers"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
+ }}},
{Key: StructKey{Name: "shmid_ds"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "shmid_ds", TypeSize: 112}, Fields: []Type{
&StructType{Key: StructKey{Name: "ipc_perm"}, FldName: "perm"},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "segsz", TypeSize: 4}}},
@@ -3515,10 +3523,13 @@ var syscalls_amd64 = []*Syscall{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nops", TypeSize: 8}}, Path: []string{"ops"}},
}},
{NR: 393, Name: "sendfile", CallName: "sendfile", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdout", TypeSize: 4}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fdin", TypeSize: 4}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "off", TypeSize: 8, IsOptional: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", TypeSize: 8, ArgDir: 2}}, Kind: 1}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "count", TypeSize: 8}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_in", FldName: "s", TypeSize: 4}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "nbytes", TypeSize: 8}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hdtr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sf_hdtr"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sbytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", TypeSize: 8, ArgDir: 1}}, Kind: 1}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "sf_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 16, 4, 8}, BitMask: true},
}},
{NR: 28, Name: "sendmsg", CallName: "sendmsg", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
@@ -5458,6 +5469,10 @@ var consts_amd64 = []ConstValue{
{Name: "SEM_UNDO", Value: 4096},
{Name: "SETALL", Value: 9},
{Name: "SETVAL", Value: 8},
+ {Name: "SF_NOCACHE", Value: 16},
+ {Name: "SF_NODISKIO", Value: 1},
+ {Name: "SF_SYNC", Value: 4},
+ {Name: "SF_USER_READAHEAD", Value: 8},
{Name: "SHM_INFO", Value: 14},
{Name: "SHM_LOCK", Value: 11},
{Name: "SHM_RDONLY", Value: 4096},
@@ -5715,4 +5730,4 @@ var consts_amd64 = []ConstValue{
{Name: "WUNTRACED", Value: 2},
}
-const revision_amd64 = "894df9c93925b59c1559c7005392d1c68f694738"
+const revision_amd64 = "2e14e2564bc17dbe2e7f172b18cd8e410c5f67fb"
diff --git a/sys/freebsd/sys.txt b/sys/freebsd/sys.txt
index 65e3951f1..3d7401975 100644
--- a/sys/freebsd/sys.txt
+++ b/sys/freebsd/sys.txt
@@ -19,7 +19,15 @@ include <sys/wait.h>
syz_execute_func(text ptr[in, text[target]])
-sendfile(fdout fd, fdin fd, off ptr[inout, fileoff[int64], opt], count int64)
+sf_hdtr {
+ headers ptr[in, array[iovec_in]]
+ hdr_cnt len[headers, int32]
+ trailers ptr[in, array[iovec_in]]
+ trl_cnt len[trailers, int32]
+}
+
+sf_flags = SF_NODISKIO, SF_NOCACHE, SF_SYNC, SF_USER_READAHEAD
+sendfile(fd fd, s sock_in, offset fileoff, nbytes int64, hdtr ptr[in, sf_hdtr], sbytes ptr[out, fileoff[int64]], flags flags[sf_flags])
poll(fds ptr[in, array[pollfd]], nfds len[fds], timeout int32)
ppoll(fds ptr[in, array[pollfd]], nfds len[fds], tsp ptr[in, timespec], sigmask ptr[in, sigset], size len[sigmask])
diff --git a/sys/freebsd/sys_386.const b/sys/freebsd/sys_386.const
index 57dd9a8b9..3b62723a5 100644
--- a/sys/freebsd/sys_386.const
+++ b/sys/freebsd/sys_386.const
@@ -56,6 +56,10 @@ RLIMIT_STACK = 3
RUSAGE_CHILDREN = 18446744073709551615
RUSAGE_SELF = 0
RUSAGE_THREAD = 1
+SF_NOCACHE = 16
+SF_NODISKIO = 1
+SF_SYNC = 4
+SF_USER_READAHEAD = 8
SYS___getcwd = 326
SYS_chdir = 12
SYS_chmod = 15
diff --git a/sys/freebsd/sys_amd64.const b/sys/freebsd/sys_amd64.const
index 57dd9a8b9..3b62723a5 100644
--- a/sys/freebsd/sys_amd64.const
+++ b/sys/freebsd/sys_amd64.const
@@ -56,6 +56,10 @@ RLIMIT_STACK = 3
RUSAGE_CHILDREN = 18446744073709551615
RUSAGE_SELF = 0
RUSAGE_THREAD = 1
+SF_NOCACHE = 16
+SF_NODISKIO = 1
+SF_SYNC = 4
+SF_USER_READAHEAD = 8
SYS___getcwd = 326
SYS_chdir = 12
SYS_chmod = 15