sys/freebsd: add copy_file_range(2)

This commit is contained in:
Mark Johnston 2020-03-26 12:38:13 -04:00 committed by Dmitry Vyukov
parent 31f17aa979
commit 7c5dc2298f
7 changed files with 28 additions and 4 deletions

4
executor/defs.h generated
View File

@ -20,7 +20,7 @@
#if GOARCH_386
#define GOARCH "386"
#define SYZ_REVISION "543e680b034e0f8ba667a876dd8e62433e42847e"
#define SYZ_REVISION "4c27def18c07f57e4d983d0230b597b056fabe4b"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@ -30,7 +30,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
#define SYZ_REVISION "4475df7310d3645fe3e88ec5e3759ec0cc90ec24"
#define SYZ_REVISION "16e8d525d1a67c5f707e87016e26cf35faa18cbe"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096

2
executor/syscalls.h generated
View File

@ -265,6 +265,7 @@ const call_t syscalls[] = {
{"connect$inet", 98},
{"connect$inet6", 98},
{"connect$unix", 98},
{"copy_file_range", 569},
{"dup", 41},
{"dup2", 90},
{"execve", 59},
@ -769,6 +770,7 @@ const call_t syscalls[] = {
{"connect$inet", 98},
{"connect$inet6", 98},
{"connect$unix", 98},
{"copy_file_range", 569},
{"dup", 41},
{"dup2", 90},
{"execve", 59},

11
sys/freebsd/gen/386.go generated
View File

@ -1976,6 +1976,14 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 4}}, Path: []string{"addr"}},
}},
{NR: 569, Name: "copy_file_range", CallName: "copy_file_range", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "infd", TypeSize: 4}},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "inoffp", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "outfd", TypeSize: 4}},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "outoffp", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "len", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "copy_file_range_flags", FldName: "flags", TypeSize: 4}}},
}},
{NR: 41, Name: "dup", CallName: "dup", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "oldfd", TypeSize: 4}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
@ -5535,6 +5543,7 @@ var consts_386 = []ConstValue{
{"SYS_clock_settime", 233},
{"SYS_close", 6},
{"SYS_connect", 98},
{"SYS_copy_file_range", 569},
{"SYS_dup", 41},
{"SYS_dup2", 90},
{"SYS_execve", 59},
@ -5719,4 +5728,4 @@ var consts_386 = []ConstValue{
{"WUNTRACED", 2},
}
const revision_386 = "543e680b034e0f8ba667a876dd8e62433e42847e"
const revision_386 = "4c27def18c07f57e4d983d0230b597b056fabe4b"

View File

@ -2003,6 +2003,14 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &UnionType{Key: StructKey{Name: "sockaddr_un"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "addrlen", TypeSize: 8}}, Path: []string{"addr"}},
}},
{NR: 569, Name: "copy_file_range", CallName: "copy_file_range", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "infd", TypeSize: 4}},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "inoffp", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "outfd", TypeSize: 4}},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "outoffp", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 2}}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "len", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "copy_file_range_flags", FldName: "flags", TypeSize: 8}}},
}},
{NR: 41, Name: "dup", CallName: "dup", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "oldfd", TypeSize: 4}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
@ -5562,6 +5570,7 @@ var consts_amd64 = []ConstValue{
{"SYS_clock_settime", 233},
{"SYS_close", 6},
{"SYS_connect", 98},
{"SYS_copy_file_range", 569},
{"SYS_dup", 41},
{"SYS_dup2", 90},
{"SYS_execve", 59},
@ -5746,4 +5755,4 @@ var consts_amd64 = []ConstValue{
{"WUNTRACED", 2},
}
const revision_amd64 = "4475df7310d3645fe3e88ec5e3759ec0cc90ec24"
const revision_amd64 = "16e8d525d1a67c5f707e87016e26cf35faa18cbe"

View File

@ -104,6 +104,7 @@ chroot(dir ptr[in, filename])
__getcwd(buf buffer[out], size len[buf])
chdir(dir ptr[in, filename])
fchdir(fd fd)
copy_file_range(infd fd, inoffp ptr[inout, fileoff[int64]], outfd fd, outoffp ptr[inout, fileoff[int64]], len int64, flags flags[copy_file_range_flags])
getrusage(who flags[rusage_who], usage ptr[out, rusage])
getrlimit(res flags[rlimit_type], rlim ptr[out, rlimit])
@ -215,3 +216,4 @@ fcntl_flags = FD_CLOEXEC
fcntl_status = O_APPEND, FASYNC, O_DIRECT, O_NONBLOCK
flock_type = F_RDLCK, F_WRLCK, F_UNLCK
minherit_flags = INHERIT_SHARE, INHERIT_NONE, INHERIT_COPY, INHERIT_ZERO
copy_file_range_flags = 0

View File

@ -73,6 +73,7 @@ SYS_clock_getres = 234
SYS_clock_gettime = 232
SYS_clock_nanosleep = 244
SYS_clock_settime = 233
SYS_copy_file_range = 569
SYS_execve = 59
SYS_exit = 1
SYS_faccessat = 489

View File

@ -73,6 +73,7 @@ SYS_clock_getres = 234
SYS_clock_gettime = 232
SYS_clock_nanosleep = 244
SYS_clock_settime = 233
SYS_copy_file_range = 569
SYS_execve = 59
SYS_exit = 1
SYS_faccessat = 489