diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2025-12-31 11:15:07 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2026-01-02 13:38:49 +0000 |
| commit | a10c0112aec1525f7ca5f74716fc5f0552e2d05e (patch) | |
| tree | 37fba9ae0446f0520ddea061c6ffb0002f9bfeea /sys | |
| parent | 782cece6f44f32d02b85952aa53fa4a54b9d10f2 (diff) | |
sys/linux: add reboot/swapon/swapoff/sethostname/setdomainname syscalls
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/linux/sys.txt | 65 | ||||
| -rw-r--r-- | sys/linux/sys.txt.const | 18 |
2 files changed, 70 insertions, 13 deletions
diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index 7f7db60a1..5656a890f 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -64,6 +64,8 @@ include <fs/smb/client/cifsglob.h> include <xen/interface/io/xs_wire.h> include <uapi/linux/prctl.h> include <asm/prctl.h> +include <linux/reboot.h> +include <linux/swap.h> resource fd[int32]: -1 resource fd_dir[fd]: AT_FDCWD @@ -570,6 +572,56 @@ sched_setattr(pid pid, attr ptr[in, sched_attr], flags const[0]) sched_yield() getrandom(buf buffer[out], len len[buf], flags flags[getrandom_flags]) +reboot(magic1 const[LINUX_REBOOT_MAGIC1], magic2 const[LINUX_REBOOT_MAGIC2], cmd flags[reboot_commands], arg const[0]) (snapshot) + +reboot_commands = LINUX_REBOOT_CMD_RESTART, LINUX_REBOOT_CMD_HALT, LINUX_REBOOT_CMD_CAD_ON, LINUX_REBOOT_CMD_CAD_OFF, LINUX_REBOOT_CMD_POWER_OFF, LINUX_REBOOT_CMD_RESTART2, LINUX_REBOOT_CMD_SW_SUSPEND, LINUX_REBOOT_CMD_KEXEC + +swapon(specialfile ptr[in, filename], swap_flags flags[swap_flags]) (snapshot) +swapoff(specialfile ptr[in, filename]) (snapshot) + +swap_flags = SWAP_FLAG_PRIO_MASK, SWAP_FLAG_PREFER, SWAP_FLAG_DISCARD, SWAP_FLAG_DISCARD_ONCE, SWAP_FLAG_DISCARD_PAGES + +sethostname(name ptr[in, array[int8]], len bytesize[name]) (snapshot) +setdomainname(name ptr[in, array[int8]], len bytesize[name]) (snapshot) + +gettimeofday(tv ptr[out, timeval], tz ptr[out, timezone]) +settimeofday(tv ptr[out, timeval], tz ptr[out, timezone]) (snapshot) +adjtimex(txc_p ptr[in, __kernel_timex]) (snapshot) + +timezone { + tz_minuteswest int32 + tz_dsttime int32 +} + +__kernel_timex { + modes flags[adjtimex_modes, int32] + pad0 const[0, int32] + offset int64 + freq int64 + maxerror int64 + esterror int64 + status int32 + pad1 const[0, int32] + constant int64 + precision int64 + tolerance int64 + int timeval + tick int64 + ppsfreq int64 + jitter int64 + shift int32 + pad2 const[0, int32] + stabil int64 + jitcnt int64 + calcnt int64 + errcnt int64 + stbcnt int64 + tai int32 + pad3 array[const[0, int32], 11] +} + +adjtimex_modes = ADJ_OFFSET, ADJ_FREQUENCY, ADJ_MAXERROR, ADJ_ESTERROR, ADJ_STATUS, ADJ_TIMECONST, ADJ_TAI, ADJ_SETOFFSET, ADJ_MICRO, ADJ_NANO, ADJ_TICK + membarrier(cmd flags[membarrier_cmd], flags const[0]) membarrier_cmd = MEMBARRIER_CMD_GLOBAL, MEMBARRIER_CMD_GLOBAL_EXPEDITED, MEMBARRIER_CMD_PRIVATE_EXPEDITED, MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED, MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE, MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE, MEMBARRIER_CMD_QUERY, MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED, MEMBARRIER_CMD_SHARED @@ -1390,11 +1442,6 @@ clone3_flags = CLONE_CLEAR_SIGHAND, CLONE_INTO_CGROUP, clone_flags ptrace_peeksiginfo_flags = PTRACE_PEEKSIGINFO_SHARED close_range_flags = CLOSE_RANGE_UNSHARE -# adjtimex flags. -_ = STA_PLL, STA_PPSFREQ, STA_PPSTIME, STA_FLL, STA_INS, STA_DEL, STA_UNSYNC, STA_FREQHOLD, STA_PPSSIGNAL, STA_PPSJITTER, STA_PPSWANDER, STA_PPSERROR, STA_CLOCKERR, STA_NANO, STA_MODE, STA_CLK, STA_RONLY -# clock_adjtime modes -_ = ADJ_OFFSET, ADJ_FREQUENCY, ADJ_MAXERROR, ADJ_ESTERROR, ADJ_STATUS, ADJ_TIMECONST, ADJ_TAI, ADJ_SETOFFSET, ADJ_MICRO, ADJ_NANO, ADJ_TICK, ADJ_OFFSET_SINGLESHOT - # Consts for target.SpecialFileLenghts. _ = SMB_PATH_MAX, XT_CGROUP_PATH_MAX, XENSTORE_REL_PATH_MAX @@ -1408,18 +1455,10 @@ define KCOV_REMOTE_ENABLE 1075340134 # umask # vhangup # _sysctl -# adjtimex -# swapon -# swapoff # nfsservctl # getcpu # Probably no sense in calling these. # Also affect system-wide state, so not reproducible anyway. -# gettimeofday -# settimeofday -# reboot -# sethostname -# setdomainname # sched_get_priority_max # sched_get_priority_min diff --git a/sys/linux/sys.txt.const b/sys/linux/sys.txt.const index 0fd1acc76..bce3625fb 100644 --- a/sys/linux/sys.txt.const +++ b/sys/linux/sys.txt.const @@ -229,6 +229,16 @@ KEXEC_ARCH_SH = 2752512 KEXEC_ARCH_X86_64 = 4063232 KEXEC_ON_CRASH = 1 KEXEC_PRESERVE_CONTEXT = 2 +LINUX_REBOOT_CMD_CAD_OFF = 0 +LINUX_REBOOT_CMD_CAD_ON = 2309737967 +LINUX_REBOOT_CMD_HALT = 3454992675 +LINUX_REBOOT_CMD_KEXEC = 1163412803 +LINUX_REBOOT_CMD_POWER_OFF = 1126301404 +LINUX_REBOOT_CMD_RESTART = 19088743 +LINUX_REBOOT_CMD_RESTART2 = 2712847316 +LINUX_REBOOT_CMD_SW_SUSPEND = 3489725666 +LINUX_REBOOT_MAGIC1 = 4276215469 +LINUX_REBOOT_MAGIC2 = 672274793 LOCK_EX = 2 LOCK_NB = 4 LOCK_SH = 1 @@ -566,6 +576,11 @@ STA_PPSWANDER = 1024 STA_RONLY = 65280 STA_UNSYNC = 64 STICKY_TIMEOUTS = 67108864 +SWAP_FLAG_DISCARD = 65536 +SWAP_FLAG_DISCARD_ONCE = 131072 +SWAP_FLAG_DISCARD_PAGES = 262144 +SWAP_FLAG_PREFER = 32768 +SWAP_FLAG_PRIO_MASK = 32767 SYNC_FILE_RANGE_WAIT_AFTER = 4 SYNC_FILE_RANGE_WAIT_BEFORE = 1 SYNC_FILE_RANGE_WRITE = 2 @@ -777,6 +792,7 @@ __NR_readahead = 213, 386:arm:225, amd64:187, mips64le:5179, ppc64le:191, s390x: __NR_readlink = 85, amd64:89, arm64:riscv64:???, mips64le:5087 __NR_readlinkat = 78, 386:305, amd64:267, arm:332, mips64le:5257, ppc64le:296, s390x:298 __NR_readv = 145, amd64:19, arm64:riscv64:65, mips64le:5018 +__NR_reboot = 88, amd64:169, arm64:riscv64:142, mips64le:5164 __NR_remap_file_pages = 234, 386:257, amd64:216, arm:253, mips64le:5210, ppc64le:239, s390x:267 __NR_rename = 38, amd64:82, arm64:riscv64:???, mips64le:5080 __NR_renameat = 386:302, amd64:264, arm:329, arm64:38, mips64le:5254, ppc64le:293, riscv64:???, s390x:295 @@ -831,6 +847,8 @@ __NR_stat = 106, amd64:4, arm64:riscv64:???, mips64le:5004 __NR_stat64 = 195, amd64:arm64:mips64le:ppc64le:riscv64:s390x:??? __NR_statfs = 99, amd64:137, arm64:riscv64:43, mips64le:5134 __NR_statx = 291, 386:ppc64le:383, amd64:332, arm:397, mips64le:5326, s390x:379 +__NR_swapoff = 115, amd64:168, arm64:riscv64:225, mips64le:5163 +__NR_swapon = 87, amd64:167, arm64:riscv64:224, mips64le:5162 __NR_symlink = 83, amd64:88, arm64:riscv64:???, mips64le:5086 __NR_symlinkat = 36, 386:304, amd64:266, arm:331, mips64le:5256, ppc64le:295, s390x:297 __NR_sync = 36, amd64:162, arm64:riscv64:81, mips64le:5157 |
