aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorMark Johnston <markjdb@gmail.com>2020-03-26 12:44:32 -0400
committerDmitry Vyukov <dvyukov@google.com>2020-03-27 05:51:58 +0100
commit7a683c4c28336d4babb30c16a79c9ddc35fa7fa4 (patch)
tree2b2d4f16e02e8f7ea2684df2a689f0a6a7d43e38 /sys
parent892d1075a43d31669bdcb6e86b604485c7b9bd6e (diff)
sys/freebsd: add chflags(2) and related syscalls
Diffstat (limited to 'sys')
-rw-r--r--sys/freebsd/gen/386.go41
-rw-r--r--sys/freebsd/gen/amd64.go41
-rw-r--r--sys/freebsd/sys.txt5
-rw-r--r--sys/freebsd/sys_386.const21
-rw-r--r--sys/freebsd/sys_amd64.const21
5 files changed, 127 insertions, 2 deletions
diff --git a/sys/freebsd/gen/386.go b/sys/freebsd/gen/386.go
index ad08b7cec..1f3ee23f1 100644
--- a/sys/freebsd/gen/386.go
+++ b/sys/freebsd/gen/386.go
@@ -1923,6 +1923,16 @@ var syscalls_386 = []*Syscall{
{NR: 12, Name: "chdir", CallName: "chdir", Args: []Type{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "dir", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
}},
+ {NR: 34, Name: "chflags", CallName: "chflags", Args: []Type{
+ &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 4}}, []uint64{1, 2, 4, 8, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ }},
+ {NR: 540, Name: "chflagsat", CallName: "chflagsat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 4}}, []uint64{1, 2, 4, 8, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "at_flags", FldName: "atflag", TypeSize: 4}}, []uint64{512, 1024}, true},
+ }},
{NR: 15, Name: "chmod", CallName: "chmod", Args: []Type{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
&FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 4}}, []uint64{1, 2, 4, 8, 16, 32, 64, 128, 256}, true},
@@ -2008,6 +2018,10 @@ var syscalls_386 = []*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: 4}}, []uint64{1, 2, 4, 8, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, 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: 4}}, []uint64{1, 2, 4, 8, 16, 32, 64, 128, 256}, true},
@@ -3232,6 +3246,10 @@ var syscalls_386 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 3222291539},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
}},
+ {NR: 391, Name: "lchflags", CallName: "lchflags", Args: []Type{
+ &PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "chflags_flags", FldName: "flags", TypeSize: 4}}, []uint64{1, 2, 4, 8, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ }},
{NR: 274, Name: "lchmod", CallName: "lchmod", Args: []Type{
&PtrType{TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
&FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 4}}, []uint64{1, 2, 4, 8, 16, 32, 64, 128, 256}, true},
@@ -5469,8 +5487,13 @@ var consts_386 = []ConstValue{
{"SEM_UNDO", 4096},
{"SETALL", 9},
{"SETVAL", 8},
+ {"SF_APPEND", 262144},
+ {"SF_ARCHIVED", 65536},
+ {"SF_IMMUTABLE", 131072},
{"SF_NOCACHE", 16},
{"SF_NODISKIO", 1},
+ {"SF_NOUNLINK", 1048576},
+ {"SF_SNAPSHOT", 2097152},
{"SF_SYNC", 4},
{"SF_USER_READAHEAD", 8},
{"SHM_INFO", 14},
@@ -5538,6 +5561,8 @@ var consts_386 = []ConstValue{
{"SYS_accept4", 541},
{"SYS_bind", 104},
{"SYS_chdir", 12},
+ {"SYS_chflags", 34},
+ {"SYS_chflagsat", 540},
{"SYS_chmod", 15},
{"SYS_chown", 16},
{"SYS_chroot", 61},
@@ -5554,6 +5579,7 @@ var consts_386 = []ConstValue{
{"SYS_exit", 1},
{"SYS_faccessat", 489},
{"SYS_fchdir", 13},
+ {"SYS_fchflags", 35},
{"SYS_fchmod", 124},
{"SYS_fchmodat", 490},
{"SYS_fchown", 123},
@@ -5589,6 +5615,7 @@ var consts_386 = []ConstValue{
{"SYS_getsockopt", 118},
{"SYS_getuid", 24},
{"SYS_ioctl", 54},
+ {"SYS_lchflags", 391},
{"SYS_lchmod", 274},
{"SYS_lchown", 254},
{"SYS_link", 9},
@@ -5725,6 +5752,18 @@ var consts_386 = []ConstValue{
{"UDPLITE_RECV_CSCOV", 4},
{"UDPLITE_SEND_CSCOV", 2},
{"UDP_ENCAP", 1},
+ {"UF_APPEND", 4},
+ {"UF_ARCHIVE", 2048},
+ {"UF_HIDDEN", 32768},
+ {"UF_IMMUTABLE", 2},
+ {"UF_NODUMP", 1},
+ {"UF_NOUNLINK", 16},
+ {"UF_OFFLINE", 512},
+ {"UF_OPAQUE", 8},
+ {"UF_READONLY", 4096},
+ {"UF_REPARSE", 1024},
+ {"UF_SPARSE", 256},
+ {"UF_SYSTEM", 128},
{"WCONTINUED", 4},
{"WEXITED", 16},
{"WNOHANG", 1},
@@ -5733,4 +5772,4 @@ var consts_386 = []ConstValue{
{"WUNTRACED", 2},
}
-const revision_386 = "8074f23eefed54c8bdf9e8cad786491a5305d9d5"
+const revision_386 = "bec2bb68e24b8b7d30e01c15d3c17e3f3c8bd820"
diff --git a/sys/freebsd/gen/amd64.go b/sys/freebsd/gen/amd64.go
index 2f6b39f64..43083a6b8 100644
--- a/sys/freebsd/gen/amd64.go
+++ b/sys/freebsd/gen/amd64.go
@@ -1950,6 +1950,16 @@ 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, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ }},
+ {NR: 540, Name: "chflagsat", CallName: "chflagsat", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
+ &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, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ &FlagsType{IntTypeCommon{TypeCommon: TypeCommon{TypeName: "at_flags", FldName: "atflag", TypeSize: 8}}, []uint64{512, 1024}, 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},
@@ -2035,6 +2045,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, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, 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},
@@ -3259,6 +3273,10 @@ var syscalls_amd64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3222291539},
&PtrType{TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
}},
+ {NR: 391, 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, 16, 128, 256, 512, 1024, 2048, 4096, 32768, 65536, 131072, 262144, 1048576, 2097152}, true},
+ }},
{NR: 274, Name: "lchmod", CallName: "lchmod", 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},
@@ -5496,8 +5514,13 @@ var consts_amd64 = []ConstValue{
{"SEM_UNDO", 4096},
{"SETALL", 9},
{"SETVAL", 8},
+ {"SF_APPEND", 262144},
+ {"SF_ARCHIVED", 65536},
+ {"SF_IMMUTABLE", 131072},
{"SF_NOCACHE", 16},
{"SF_NODISKIO", 1},
+ {"SF_NOUNLINK", 1048576},
+ {"SF_SNAPSHOT", 2097152},
{"SF_SYNC", 4},
{"SF_USER_READAHEAD", 8},
{"SHM_INFO", 14},
@@ -5565,6 +5588,8 @@ var consts_amd64 = []ConstValue{
{"SYS_accept4", 541},
{"SYS_bind", 104},
{"SYS_chdir", 12},
+ {"SYS_chflags", 34},
+ {"SYS_chflagsat", 540},
{"SYS_chmod", 15},
{"SYS_chown", 16},
{"SYS_chroot", 61},
@@ -5581,6 +5606,7 @@ var consts_amd64 = []ConstValue{
{"SYS_exit", 1},
{"SYS_faccessat", 489},
{"SYS_fchdir", 13},
+ {"SYS_fchflags", 35},
{"SYS_fchmod", 124},
{"SYS_fchmodat", 490},
{"SYS_fchown", 123},
@@ -5616,6 +5642,7 @@ var consts_amd64 = []ConstValue{
{"SYS_getsockopt", 118},
{"SYS_getuid", 24},
{"SYS_ioctl", 54},
+ {"SYS_lchflags", 391},
{"SYS_lchmod", 274},
{"SYS_lchown", 254},
{"SYS_link", 9},
@@ -5752,6 +5779,18 @@ var consts_amd64 = []ConstValue{
{"UDPLITE_RECV_CSCOV", 4},
{"UDPLITE_SEND_CSCOV", 2},
{"UDP_ENCAP", 1},
+ {"UF_APPEND", 4},
+ {"UF_ARCHIVE", 2048},
+ {"UF_HIDDEN", 32768},
+ {"UF_IMMUTABLE", 2},
+ {"UF_NODUMP", 1},
+ {"UF_NOUNLINK", 16},
+ {"UF_OFFLINE", 512},
+ {"UF_OPAQUE", 8},
+ {"UF_READONLY", 4096},
+ {"UF_REPARSE", 1024},
+ {"UF_SPARSE", 256},
+ {"UF_SYSTEM", 128},
{"WCONTINUED", 4},
{"WEXITED", 16},
{"WNOHANG", 1},
@@ -5760,4 +5799,4 @@ var consts_amd64 = []ConstValue{
{"WUNTRACED", 2},
}
-const revision_amd64 = "99988fd78c6400ce0ba24ed2e97bb131b5f223e9"
+const revision_amd64 = "cf77f77cf0e11abd3b2b8401db8fb233d0225f0a"
diff --git a/sys/freebsd/sys.txt b/sys/freebsd/sys.txt
index f6b4fd9e9..353e364c9 100644
--- a/sys/freebsd/sys.txt
+++ b/sys/freebsd/sys.txt
@@ -55,6 +55,10 @@ 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])
+chflagsat(fd fd, file ptr[in, filename], flags flags[chflags_flags], atflag flags[at_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])
futimesat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval])
@@ -218,3 +222,4 @@ 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
+chflags_flags = SF_APPEND, SF_ARCHIVED, SF_IMMUTABLE, SF_NOUNLINK, SF_SNAPSHOT, UF_APPEND, UF_ARCHIVE, UF_HIDDEN, UF_IMMUTABLE, UF_NODUMP, UF_NOUNLINK, UF_OFFLINE, UF_OPAQUE, UF_READONLY, UF_REPARSE, UF_SPARSE, UF_SYSTEM
diff --git a/sys/freebsd/sys_386.const b/sys/freebsd/sys_386.const
index a11d31707..0b0be03a6 100644
--- a/sys/freebsd/sys_386.const
+++ b/sys/freebsd/sys_386.const
@@ -60,12 +60,19 @@ RLIMIT_STACK = 3
RUSAGE_CHILDREN = 18446744073709551615
RUSAGE_SELF = 0
RUSAGE_THREAD = 1
+SF_APPEND = 262144
+SF_ARCHIVED = 65536
+SF_IMMUTABLE = 131072
SF_NOCACHE = 16
SF_NODISKIO = 1
+SF_NOUNLINK = 1048576
+SF_SNAPSHOT = 2097152
SF_SYNC = 4
SF_USER_READAHEAD = 8
SYS___getcwd = 326
SYS_chdir = 12
+SYS_chflags = 34
+SYS_chflagsat = 540
SYS_chmod = 15
SYS_chown = 16
SYS_chroot = 61
@@ -78,6 +85,7 @@ SYS_execve = 59
SYS_exit = 1
SYS_faccessat = 489
SYS_fchdir = 13
+SYS_fchflags = 35
SYS_fchmod = 124
SYS_fchmodat = 490
SYS_fchown = 123
@@ -104,6 +112,7 @@ SYS_getresuid = 360
SYS_getrlimit = 194
SYS_getrusage = 117
SYS_getuid = 24
+SYS_lchflags = 391
SYS_lchmod = 274
SYS_lchown = 254
SYS_link = 9
@@ -158,6 +167,18 @@ S_IXGRP = 8
S_IXOTH = 1
S_IXUSR = 64
TIMER_ABSTIME = 1
+UF_APPEND = 4
+UF_ARCHIVE = 2048
+UF_HIDDEN = 32768
+UF_IMMUTABLE = 2
+UF_NODUMP = 1
+UF_NOUNLINK = 16
+UF_OFFLINE = 512
+UF_OPAQUE = 8
+UF_READONLY = 4096
+UF_REPARSE = 1024
+UF_SPARSE = 256
+UF_SYSTEM = 128
WCONTINUED = 4
WEXITED = 16
WNOHANG = 1
diff --git a/sys/freebsd/sys_amd64.const b/sys/freebsd/sys_amd64.const
index a11d31707..0b0be03a6 100644
--- a/sys/freebsd/sys_amd64.const
+++ b/sys/freebsd/sys_amd64.const
@@ -60,12 +60,19 @@ RLIMIT_STACK = 3
RUSAGE_CHILDREN = 18446744073709551615
RUSAGE_SELF = 0
RUSAGE_THREAD = 1
+SF_APPEND = 262144
+SF_ARCHIVED = 65536
+SF_IMMUTABLE = 131072
SF_NOCACHE = 16
SF_NODISKIO = 1
+SF_NOUNLINK = 1048576
+SF_SNAPSHOT = 2097152
SF_SYNC = 4
SF_USER_READAHEAD = 8
SYS___getcwd = 326
SYS_chdir = 12
+SYS_chflags = 34
+SYS_chflagsat = 540
SYS_chmod = 15
SYS_chown = 16
SYS_chroot = 61
@@ -78,6 +85,7 @@ SYS_execve = 59
SYS_exit = 1
SYS_faccessat = 489
SYS_fchdir = 13
+SYS_fchflags = 35
SYS_fchmod = 124
SYS_fchmodat = 490
SYS_fchown = 123
@@ -104,6 +112,7 @@ SYS_getresuid = 360
SYS_getrlimit = 194
SYS_getrusage = 117
SYS_getuid = 24
+SYS_lchflags = 391
SYS_lchmod = 274
SYS_lchown = 254
SYS_link = 9
@@ -158,6 +167,18 @@ S_IXGRP = 8
S_IXOTH = 1
S_IXUSR = 64
TIMER_ABSTIME = 1
+UF_APPEND = 4
+UF_ARCHIVE = 2048
+UF_HIDDEN = 32768
+UF_IMMUTABLE = 2
+UF_NODUMP = 1
+UF_NOUNLINK = 16
+UF_OFFLINE = 512
+UF_OPAQUE = 8
+UF_READONLY = 4096
+UF_REPARSE = 1024
+UF_SPARSE = 256
+UF_SYSTEM = 128
WCONTINUED = 4
WEXITED = 16
WNOHANG = 1