diff options
| author | Mark Johnston <markjdb@gmail.com> | 2020-03-26 12:44:32 -0400 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-03-27 05:51:58 +0100 |
| commit | 7a683c4c28336d4babb30c16a79c9ddc35fa7fa4 (patch) | |
| tree | 2b2d4f16e02e8f7ea2684df2a689f0a6a7d43e38 /sys | |
| parent | 892d1075a43d31669bdcb6e86b604485c7b9bd6e (diff) | |
sys/freebsd: add chflags(2) and related syscalls
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/freebsd/gen/386.go | 41 | ||||
| -rw-r--r-- | sys/freebsd/gen/amd64.go | 41 | ||||
| -rw-r--r-- | sys/freebsd/sys.txt | 5 | ||||
| -rw-r--r-- | sys/freebsd/sys_386.const | 21 | ||||
| -rw-r--r-- | sys/freebsd/sys_amd64.const | 21 |
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 |
