From 9d60b18e94847a3e124d344a2255a75fb175c06c Mon Sep 17 00:00:00 2001 From: Jiaheng Hu Date: Tue, 23 Jun 2020 19:37:13 +0000 Subject: sys/linux: add openat2 description Added the openat2 syscall for file and for directory. Details of the syscall can be seen at https://man7.org/linux/man-pages/man2/openat2.2.html. --- sys/linux/sys.txt | 9 +++++++++ sys/linux/sys_386.const | 6 ++++++ sys/linux/sys_amd64.const | 6 ++++++ sys/linux/sys_arm.const | 6 ++++++ sys/linux/sys_arm64.const | 6 ++++++ sys/linux/sys_mips64le.const | 6 ++++++ sys/linux/sys_ppc64le.const | 6 ++++++ 7 files changed, 45 insertions(+) (limited to 'sys/linux') diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index f0508ff6e..64a69e581 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -80,6 +80,8 @@ open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd open$dir(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd_dir openat$dir(fd const[AT_FDCWD], file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd_dir openat(fd fd_dir[opt], file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd +openat2$dir(fd const[AT_FDCWD], file ptr[in, filename], how ptr[in, open_how], size bytesize[how]) fd_dir +openat2(fd fd_dir[opt], file ptr[in, filename], how ptr[in, open_how], size bytesize[how]) fd creat(file ptr[in, filename], mode flags[open_mode]) fd close(fd fd) read(fd fd, buf buffer[out], count len[buf]) @@ -887,8 +889,15 @@ kcmp_epoll_slot { toff int32 } +open_how { + flags flags[open_flags, int64] + mode flags[open_mode, int64] + resolve flags[resolve_flags, int64] +} + open_flags = O_WRONLY, O_RDWR, O_APPEND, FASYNC, O_CLOEXEC, O_CREAT, O_DIRECT, O_DIRECTORY, O_EXCL, O_LARGEFILE, O_NOATIME, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_PATH, O_SYNC, O_TRUNC, __O_TMPFILE open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH +resolve_flags = RESOLVE_BENEATH, RESOLVE_IN_ROOT, RESOLVE_NO_MAGICLINKS, RESOLVE_NO_SYMLINKS, RESOLVE_NO_XDEV madvise_flags = MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL, MADV_WILLNEED, MADV_DONTNEED, MADV_REMOVE, MADV_DONTFORK, MADV_DOFORK, MADV_HWPOISON, MADV_SOFT_OFFLINE, MADV_MERGEABLE, MADV_UNMERGEABLE, MADV_HUGEPAGE, MADV_NOHUGEPAGE, MADV_DONTDUMP, MADV_DODUMP, MADV_WIPEONFORK, MADV_KEEPONFORK, MADV_COLD, MADV_PAGEOUT fadvise_flags = POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED, POSIX_FADV_DONTNEED move_pages_flags = MPOL_MF_MOVE, MPOL_MF_MOVE_ALL diff --git a/sys/linux/sys_386.const b/sys/linux/sys_386.const index 2b5a54e1f..f34d4b44f 100644 --- a/sys/linux/sys_386.const +++ b/sys/linux/sys_386.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 9 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_nanosleep = 162 __NR_open = 5 __NR_open_by_handle_at = 342 __NR_openat = 295 +__NR_openat2 = 437 __NR_pause = 29 __NR_personality = 136 __NR_pidfd_getfd = 438 diff --git a/sys/linux/sys_amd64.const b/sys/linux/sys_amd64.const index f66b32056..a2d39af2a 100644 --- a/sys/linux/sys_amd64.const +++ b/sys/linux/sys_amd64.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 9 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_newfstatat = 262 __NR_open = 2 __NR_open_by_handle_at = 304 __NR_openat = 257 +__NR_openat2 = 437 __NR_pause = 34 __NR_personality = 135 __NR_pidfd_getfd = 438 diff --git a/sys/linux/sys_arm.const b/sys/linux/sys_arm.const index dac0aa65e..4b31a92c0 100644 --- a/sys/linux/sys_arm.const +++ b/sys/linux/sys_arm.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 9 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_nanosleep = 162 __NR_open = 5 __NR_open_by_handle_at = 371 __NR_openat = 322 +__NR_openat2 = 437 __NR_pause = 29 __NR_personality = 136 __NR_pidfd_getfd = 438 diff --git a/sys/linux/sys_arm64.const b/sys/linux/sys_arm64.const index c5cc1c97c..b606c52f6 100644 --- a/sys/linux/sys_arm64.const +++ b/sys/linux/sys_arm64.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 9 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_newfstatat = 79 # __NR_open is not set __NR_open_by_handle_at = 265 __NR_openat = 56 +__NR_openat2 = 437 # __NR_pause is not set __NR_personality = 92 __NR_pidfd_getfd = 438 diff --git a/sys/linux/sys_mips64le.const b/sys/linux/sys_mips64le.const index bbb5f0379..a52b523e0 100644 --- a/sys/linux/sys_mips64le.const +++ b/sys/linux/sys_mips64le.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 6 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_newfstatat = 5252 __NR_open = 5002 __NR_open_by_handle_at = 5299 __NR_openat = 5247 +__NR_openat2 = 5437 __NR_pause = 5033 __NR_personality = 5132 __NR_pidfd_getfd = 5438 diff --git a/sys/linux/sys_ppc64le.const b/sys/linux/sys_ppc64le.const index af43719c4..1c95fe8d4 100644 --- a/sys/linux/sys_ppc64le.const +++ b/sys/linux/sys_ppc64le.const @@ -392,6 +392,11 @@ READ_IMPLIES_EXEC = 4194304 RENAME_EXCHANGE = 2 RENAME_NOREPLACE = 1 RENAME_WHITEOUT = 4 +RESOLVE_BENEATH = 8 +RESOLVE_IN_ROOT = 16 +RESOLVE_NO_MAGICLINKS = 2 +RESOLVE_NO_SYMLINKS = 4 +RESOLVE_NO_XDEV = 1 RLIMIT_AS = 9 RLIMIT_CORE = 4 RLIMIT_CPU = 0 @@ -661,6 +666,7 @@ __NR_newfstatat = 291 __NR_open = 5 __NR_open_by_handle_at = 346 __NR_openat = 286 +__NR_openat2 = 437 __NR_pause = 29 __NR_personality = 136 __NR_pidfd_getfd = 438 -- cgit mrf-deployment