From d9ed075d1a287f63cfa1dc84cbf609e624b26bc7 Mon Sep 17 00:00:00 2001 From: Ayushi Sharma <35501599+ais2397@users.noreply.github.com> Date: Sat, 4 Apr 2020 03:37:51 +0530 Subject: sys/netbsd: adding chflags(2) syscalls (#1661) --- executor/defs.h | 16 ++++++++-------- executor/syscalls.h | 3 +++ sys/netbsd/gen/amd64.go | 24 +++++++++++++++++++++++- sys/netbsd/sys.txt | 4 ++++ sys/netbsd/sys_amd64.const | 10 ++++++++++ 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/executor/defs.h b/executor/defs.h index c52e75eb2..21d15d8fa 100644 --- a/executor/defs.h +++ b/executor/defs.h @@ -20,7 +20,7 @@ #if GOARCH_386 #define GOARCH "386" -#define SYZ_REVISION "d737bca3a95d7c1527152553af5fd06ed07e0240" +#define SYZ_REVISION "5f26711960673de44fd31f907a28d31ee0961cfd" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -70,7 +70,7 @@ #if GOARCH_386 #define GOARCH "386" -#define SYZ_REVISION "873172817a75c81835969c440f232721601a7e13" +#define SYZ_REVISION "75e98c93608f41659c3d7252029fc6e39e7a7ead" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -80,7 +80,7 @@ #if GOARCH_amd64 #define GOARCH "amd64" -#define SYZ_REVISION "670a1e865c0bc7d60e9886acf4666ee3677e346e" +#define SYZ_REVISION "f787d115f9efa49fdd59261850f5c05f43fbe327" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -90,7 +90,7 @@ #if GOARCH_arm #define GOARCH "arm" -#define SYZ_REVISION "2acbffd4e98df57974fbda9a9c4c9430f308ca4b" +#define SYZ_REVISION "b0c8cefbe08d7cd934dbaf9fe40658f598df8182" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -100,7 +100,7 @@ #if GOARCH_arm64 #define GOARCH "arm64" -#define SYZ_REVISION "1cd77b584307efb2405e0d88b55e10dce8803d4b" +#define SYZ_REVISION "959bb3c00fa0ad1179ddcbeecd12a9677d877ac6" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -110,7 +110,7 @@ #if GOARCH_mips64le #define GOARCH "mips64le" -#define SYZ_REVISION "27db5f8e0ad7e7466d8fee26159a8361a0e6366f" +#define SYZ_REVISION "46efe6d91b9f65afa502f9ec4e36c1c3b6c75399" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -120,7 +120,7 @@ #if GOARCH_ppc64le #define GOARCH "ppc64le" -#define SYZ_REVISION "2efe0bc0e3fe08437712654ac1ed750ccb17190f" +#define SYZ_REVISION "f44aca874a4396900cf431e0ac6e5d13b57b0f87" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -135,7 +135,7 @@ #if GOARCH_amd64 #define GOARCH "amd64" -#define SYZ_REVISION "a99885ca1ee8b334947a9227591964a15f788ff0" +#define SYZ_REVISION "02007478c36366bd9b420e8c59574fd04a9a8014" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 diff --git a/executor/syscalls.h b/executor/syscalls.h index 32d999303..09390288d 100644 --- a/executor/syscalls.h +++ b/executor/syscalls.h @@ -21911,6 +21911,7 @@ const call_t syscalls[] = { {"bind$inet6", 104}, {"bind$unix", 104}, {"chdir", 12}, + {"chflags", 34}, {"chmod", 15}, {"chown", 16}, {"chroot", 61}, @@ -21931,6 +21932,7 @@ const call_t syscalls[] = { {"exit", 1}, {"faccessat", 462}, {"fchdir", 13}, + {"fchflags", 35}, {"fchmod", 124}, {"fchmodat", 463}, {"fchown", 123}, @@ -21976,6 +21978,7 @@ const call_t syscalls[] = { {"getsockopt$sock_linger", 118}, {"getsockopt$sock_timeval", 118}, {"getuid", 24}, + {"lchflags", 304}, {"lchown", 275}, {"link", 9}, {"linkat", 457}, diff --git a/sys/netbsd/gen/amd64.go b/sys/netbsd/gen/amd64.go index 87199d6d3..2a9582b45 100644 --- a/sys/netbsd/gen/amd64.go +++ b/sys/netbsd/gen/amd64.go @@ -545,6 +545,10 @@ var syscalls_amd64 = []*Syscall{ {NR: 12, Name: "chdir", CallName: "chdir", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "dir", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, }}, + {NR: 34, Name: "chflags", CallName: "chflags", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, + &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 8}}, []uint64{1, 2, 4, 8, 65536, 131072, 262144}, true}, + }}, {NR: 15, Name: "chmod", CallName: "chmod", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, []uint64{1, 2, 4, 8, 16, 32, 64, 128, 256}, true}, @@ -634,6 +638,10 @@ var syscalls_amd64 = []*Syscall{ {NR: 13, Name: "fchdir", CallName: "fchdir", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}}, }}, + {NR: 35, Name: "fchflags", CallName: "fchflags", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}}, + &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 8}}, []uint64{1, 2, 4, 8, 65536, 131072, 262144}, true}, + }}, {NR: 124, Name: "fchmod", CallName: "fchmod", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}}, &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, []uint64{1, 2, 4, 8, 16, 32, 64, 128, 256}, true}, @@ -827,6 +835,10 @@ var syscalls_amd64 = []*Syscall{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "optlen", TypeSize: 8}, &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Path: []string{"optval"}}}, }}, {NR: 24, Name: "getuid", CallName: "getuid", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "ret", TypeSize: 4, ArgDir: 1}}}, + {NR: 304, Name: "lchflags", CallName: "lchflags", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, + &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 8}}, []uint64{1, 2, 4, 8, 65536, 131072, 262144}, true}, + }}, {NR: 275, Name: "lchown", CallName: "lchown", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, &ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}}, @@ -1678,6 +1690,9 @@ var consts_amd64 = []ConstValue{ {"SEM_UNDO", 4096}, {"SETALL", 9}, {"SETVAL", 8}, + {"SF_APPEND", 262144}, + {"SF_ARCHIVED", 65536}, + {"SF_IMMUTABLE", 131072}, {"SHM_LOCK", 3}, {"SHM_RDONLY", 4096}, {"SHM_RND", 8192}, @@ -1737,6 +1752,7 @@ var consts_amd64 = []ConstValue{ {"SYS_accept", 30}, {"SYS_bind", 104}, {"SYS_chdir", 12}, + {"SYS_chflags", 34}, {"SYS_chmod", 15}, {"SYS_chown", 16}, {"SYS_chroot", 61}, @@ -1754,6 +1770,7 @@ var consts_amd64 = []ConstValue{ {"SYS_exit", 1}, {"SYS_faccessat", 462}, {"SYS_fchdir", 13}, + {"SYS_fchflags", 35}, {"SYS_fchmod", 124}, {"SYS_fchmodat", 463}, {"SYS_fchown", 123}, @@ -1781,6 +1798,7 @@ var consts_amd64 = []ConstValue{ {"SYS_getsockname", 32}, {"SYS_getsockopt", 118}, {"SYS_getuid", 24}, + {"SYS_lchflags", 304}, {"SYS_lchown", 275}, {"SYS_link", 9}, {"SYS_linkat", 457}, @@ -1878,6 +1896,10 @@ var consts_amd64 = []ConstValue{ {"S_IXOTH", 1}, {"S_IXUSR", 64}, {"TIMER_ABSTIME", 1}, + {"UF_APPEND", 4}, + {"UF_IMMUTABLE", 2}, + {"UF_NODUMP", 1}, + {"UF_OPAQUE", 8}, {"WALLSIG", 8}, {"WALTSIG", 4}, {"WCONTINUED", 16}, @@ -1894,4 +1916,4 @@ var consts_amd64 = []ConstValue{ {"_UC_STACK", 2}, } -const revision_amd64 = "a99885ca1ee8b334947a9227591964a15f788ff0" +const revision_amd64 = "02007478c36366bd9b420e8c59574fd04a9a8014" diff --git a/sys/netbsd/sys.txt b/sys/netbsd/sys.txt index cc007a0d2..0ff50e59e 100644 --- a/sys/netbsd/sys.txt +++ b/sys/netbsd/sys.txt @@ -50,6 +50,9 @@ chown(file ptr[in, filename], uid uid, gid gid) lchown(file ptr[in, filename], uid uid, gid gid) fchown(fd fd, uid uid, gid gid) fchownat(dirfd fd_dir, file ptr[in, filename], uid uid, gid gid, flags flags[at_flags]) +chflags(file ptr[in, filename], flags flags[chflags_flags]) +fchflags(fd fd, flags flags[chflags_flags]) +lchflags(file ptr[in, filename], flags flags[chflags_flags]) faccessat(dirfd fd_dir, pathname ptr[in, filename], mode flags[open_mode], flags flags[faccessat_flags]) utimes(filename ptr[in, filename], times ptr[in, itimerval]) utimensat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags]) @@ -262,5 +265,6 @@ fcntl_lock = F_SETLK, F_SETLKW, F_GETLK fcntl_flags = FD_CLOEXEC fcntl_status = O_APPEND, O_ASYNC, O_NONBLOCK, O_DSYNC, O_RSYNC, O_ALT_IO, O_DIRECT, O_NOSIGPIPE flock_type = F_RDLCK, F_WRLCK, F_UNLCK +chflags_flags = SF_APPEND, SF_IMMUTABLE, SF_ARCHIVED, UF_OPAQUE, UF_APPEND, UF_IMMUTABLE, UF_NODUMP clone_flags = CLONE_CSIGNAL, CLONE_VM, CLONE_FS, CLONE_FILES, CLONE_SIGHAND, CLONE_PID, CLONE_PTRACE, CLONE_VFORK sa_flags = SA_ONSTACK, SA_RESTART, SA_RESETHAND, SA_NODEFER, SA_NOCLDSTOP, SA_NOCLDWAIT, SA_SIGINFO, SA_NOKERNINFO, SA_ALLBITS diff --git a/sys/netbsd/sys_amd64.const b/sys/netbsd/sys_amd64.const index e783d58cc..faecf351b 100644 --- a/sys/netbsd/sys_amd64.const +++ b/sys/netbsd/sys_amd64.const @@ -83,9 +83,13 @@ SA_ONSTACK = 1 SA_RESETHAND = 4 SA_RESTART = 2 SA_SIGINFO = 64 +SF_APPEND = 262144 +SF_ARCHIVED = 65536 +SF_IMMUTABLE = 131072 SYS___clone = 287 SYS___vfork14 = 282 SYS_chdir = 12 +SYS_chflags = 34 SYS_chmod = 15 SYS_chown = 16 SYS_chroot = 61 @@ -97,6 +101,7 @@ SYS_execve = 59 SYS_exit = 1 SYS_faccessat = 462 SYS_fchdir = 13 +SYS_fchflags = 35 SYS_fchmod = 124 SYS_fchmodat = 463 SYS_fchown = 123 @@ -121,6 +126,7 @@ SYS_getppid = 39 SYS_getrlimit = 194 SYS_getrusage = 445 SYS_getuid = 24 +SYS_lchflags = 304 SYS_lchown = 275 SYS_link = 9 SYS_linkat = 457 @@ -177,6 +183,10 @@ S_IXGRP = 8 S_IXOTH = 1 S_IXUSR = 64 TIMER_ABSTIME = 1 +UF_APPEND = 4 +UF_IMMUTABLE = 2 +UF_NODUMP = 1 +UF_OPAQUE = 8 WALLSIG = 8 WALTSIG = 4 WCONTINUED = 16 -- cgit mrf-deployment