From d38064cb71ebcd6ea89496b67e012f6a1be7cda0 Mon Sep 17 00:00:00 2001 From: celinehoang177 Date: Fri, 6 Mar 2026 01:42:04 +0000 Subject: [PATCH 1/2] add temporary syscall number definitions under sysdefs and replace hardcoded values in rust --- src/rawposix/src/syscall_table.rs | 225 ++++++++++-------- src/sysdefs/src/constants/mod.rs | 2 + src/sysdefs/src/constants/syscall_const.rs | 99 ++++++++ src/wasmtime/crates/lind-common/src/lib.rs | 2 +- .../crates/lind-multi-process/src/lib.rs | 2 +- src/wasmtime/crates/lind-utils/src/lib.rs | 2 - .../lind-utils/src/lind_syscall_numbers.rs | 11 - .../crates/wasmtime/src/runtime/instance.rs | 2 +- src/wasmtime/src/commands/run.rs | 2 +- 9 files changed, 232 insertions(+), 115 deletions(-) create mode 100644 src/sysdefs/src/constants/syscall_const.rs delete mode 100644 src/wasmtime/crates/lind-utils/src/lind_syscall_numbers.rs diff --git a/src/rawposix/src/syscall_table.rs b/src/rawposix/src/syscall_table.rs index f005cc83d..8785b10b0 100644 --- a/src/rawposix/src/syscall_table.rs +++ b/src/rawposix/src/syscall_table.rs @@ -8,13 +8,12 @@ use super::fs_calls::{ close_syscall, dup2_syscall, dup3_syscall, dup_syscall, fchdir_syscall, fchmod_syscall, fcntl_syscall, fdatasync_syscall, flock_syscall, fstat_syscall, fstatfs_syscall, fsync_syscall, ftruncate_syscall, futex_syscall, getcwd_syscall, getdents_syscall, getrandom_syscall, - ioctl_syscall, link_syscall, lseek_syscall, mkdir_syscall, mknod_syscall, mmap_syscall, - mprotect_syscall, munmap_syscall, nanosleep_time64_syscall, open_syscall, pipe2_syscall, - pipe_syscall, pread_syscall, pwrite_syscall, read_syscall, readlink_syscall, - readlinkat_syscall, readv_syscall, rename_syscall, rmdir_syscall, shmat_syscall, - shmctl_syscall, shmdt_syscall, shmget_syscall, stat_syscall, statfs_syscall, - sync_file_range_syscall, truncate_syscall, unlink_syscall, unlinkat_syscall, write_syscall, - writev_syscall, + ioctl_syscall, link_syscall, lseek_syscall, mkdir_syscall, mmap_syscall, mprotect_syscall, + munmap_syscall, nanosleep_time64_syscall, open_syscall, pipe2_syscall, pipe_syscall, + pread_syscall, pwrite_syscall, read_syscall, readlink_syscall, readlinkat_syscall, + readv_syscall, rename_syscall, rmdir_syscall, shmat_syscall, shmctl_syscall, shmdt_syscall, + shmget_syscall, stat_syscall, statfs_syscall, sync_file_range_syscall, truncate_syscall, + unlink_syscall, unlinkat_syscall, write_syscall, writev_syscall, }; use super::init::RawCallFunc; use super::net_calls::{ @@ -29,97 +28,127 @@ use super::sys_calls::{ getpid_syscall, getppid_syscall, getuid_syscall, kill_syscall, sched_yield_syscall, setitimer_syscall, sigaction_syscall, sigprocmask_syscall, waitpid_syscall, }; +use sysdefs::constants::syscall_const; pub const SYSCALL_TABLE: &[(u64, RawCallFunc)] = &[ - (0, read_syscall), - (1, write_syscall), - (2, open_syscall), - (3, close_syscall), - (7, poll_syscall), - (4, stat_syscall), - (5, fstat_syscall), - (8, lseek_syscall), - (9, mmap_syscall), - (10, mprotect_syscall), - (11, munmap_syscall), - (12, brk_syscall), - (13, sigaction_syscall), - (14, sigprocmask_syscall), - (16, ioctl_syscall), - (17, pread_syscall), - (18, pwrite_syscall), - (19, readv_syscall), - (20, writev_syscall), - (21, access_syscall), - (22, pipe_syscall), - (23, select_syscall), - (24, sched_yield_syscall), - (29, shmget_syscall), - (30, shmat_syscall), - (31, shmctl_syscall), - (32, dup_syscall), - (33, dup2_syscall), - (35, nanosleep_time64_syscall), - (38, setitimer_syscall), - (39, getpid_syscall), - (41, socket_syscall), - (42, connect_syscall), - (43, accept_syscall), - (44, sendto_syscall), - (45, recvfrom_syscall), - (46, sendmsg_syscall), - (47, recvmsg_syscall), - (48, shutdown_syscall), - (49, bind_syscall), - (50, listen_syscall), - (51, getsockname_syscall), - (52, getpeername_syscall), - (53, socketpair_syscall), - (54, setsockopt_syscall), - (55, getsockopt_syscall), - (56, fork_syscall), - (59, exec_syscall), - (60, exit_syscall), - (61, waitpid_syscall), - (62, kill_syscall), - (67, shmdt_syscall), - (72, fcntl_syscall), - (73, flock_syscall), - (74, fsync_syscall), - (75, fdatasync_syscall), - (76, truncate_syscall), - (77, ftruncate_syscall), - (78, getdents_syscall), - (79, getcwd_syscall), - (80, chdir_syscall), - (81, fchdir_syscall), - (82, rename_syscall), - (83, mkdir_syscall), - (84, rmdir_syscall), - (86, link_syscall), - (87, unlink_syscall), - (89, readlink_syscall), - (90, chmod_syscall), - (91, fchmod_syscall), - (102, getuid_syscall), - (104, getgid_syscall), - (107, geteuid_syscall), - (108, getegid_syscall), - (110, getppid_syscall), - (133, mknod_syscall), - (137, statfs_syscall), - (138, fstatfs_syscall), - (170, gethostname_syscall), - (202, futex_syscall), - (213, epoll_create_syscall), - (228, clock_gettime_syscall), - (232, epoll_wait_syscall), - (233, epoll_ctl_syscall), - (263, unlinkat_syscall), - (267, readlinkat_syscall), - (277, sync_file_range_syscall), - (291, epoll_create1_syscall), - (292, dup3_syscall), - (293, pipe2_syscall), - (318, getrandom_syscall), + (syscall_const::READ_SYSCALL as u64, read_syscall), + (syscall_const::WRITE_SYSCALL as u64, write_syscall), + (syscall_const::OPEN_SYSCALL as u64, open_syscall), + (syscall_const::CLOSE_SYSCALL as u64, close_syscall), + (syscall_const::POLL_SYSCALL as u64, poll_syscall), + (syscall_const::STAT_SYSCALL as u64, stat_syscall), + (syscall_const::FSTAT_SYSCALL as u64, fstat_syscall), + (syscall_const::LSEEK_SYSCALL as u64, lseek_syscall), + (syscall_const::MMAP_SYSCALL as u64, mmap_syscall), + (syscall_const::MPROTECT_SYSCALL as u64, mprotect_syscall), + (syscall_const::MUNMAP_SYSCALL as u64, munmap_syscall), + (syscall_const::BRK_SYSCALL as u64, brk_syscall), + (syscall_const::SIGACTION_SYSCALL as u64, sigaction_syscall), + ( + syscall_const::SIGPROCMASK_SYSCALL as u64, + sigprocmask_syscall, + ), + (syscall_const::IOCTL_SYSCALL as u64, ioctl_syscall), + (syscall_const::PREAD_SYSCALL as u64, pread_syscall), + (syscall_const::PWRITE_SYSCALL as u64, pwrite_syscall), + (syscall_const::READV_SYSCALL as u64, readv_syscall), + (syscall_const::WRITEV_SYSCALL as u64, writev_syscall), + (syscall_const::ACCESS_SYSCALL as u64, access_syscall), + (syscall_const::PIPE_SYSCALL as u64, pipe_syscall), + (syscall_const::SELECT_SYSCALL as u64, select_syscall), + ( + syscall_const::SCHED_YIELD_SYSCALL as u64, + sched_yield_syscall, + ), + (syscall_const::SHMGET_SYSCALL as u64, shmget_syscall), + (syscall_const::SHMAT_SYSCALL as u64, shmat_syscall), + (syscall_const::SHMCTL_SYSCALL as u64, shmctl_syscall), + (syscall_const::DUP_SYSCALL as u64, dup_syscall), + (syscall_const::DUP2_SYSCALL as u64, dup2_syscall), + ( + syscall_const::NANOSLEEP_SYSCALL as u64, + nanosleep_time64_syscall, + ), + (syscall_const::SETITIMER_SYSCALL as u64, setitimer_syscall), + (syscall_const::GETPID_SYSCALL as u64, getpid_syscall), + (syscall_const::SOCKET_SYSCALL as u64, socket_syscall), + (syscall_const::CONNECT_SYSCALL as u64, connect_syscall), + (syscall_const::ACCEPT_SYSCALL as u64, accept_syscall), + (syscall_const::SENDTO_SYSCALL as u64, sendto_syscall), + (syscall_const::RECVFROM_SYSCALL as u64, recvfrom_syscall), + (syscall_const::SENDMSG_SYSCALL as u64, sendmsg_syscall), + (syscall_const::RECVMSG_SYSCALL as u64, recvmsg_syscall), + (syscall_const::SHUTDOWN_SYSCALL as u64, shutdown_syscall), + (syscall_const::BIND_SYSCALL as u64, bind_syscall), + (syscall_const::LISTEN_SYSCALL as u64, listen_syscall), + ( + syscall_const::GETSOCKNAME_SYSCALL as u64, + getsockname_syscall, + ), + ( + syscall_const::GETPEERNAME_SYSCALL as u64, + getpeername_syscall, + ), + (syscall_const::SOCKETPAIR_SYSCALL as u64, socketpair_syscall), + (syscall_const::SETSOCKOPT_SYSCALL as u64, setsockopt_syscall), + (syscall_const::GETSOCKOPT_SYSCALL as u64, getsockopt_syscall), + (syscall_const::CLONE_SYSCALL as u64, fork_syscall), + (syscall_const::EXEC_SYSCALL as u64, exec_syscall), + (syscall_const::EXIT_SYSCALL as u64, exit_syscall), + (syscall_const::WAITPID_SYSCALL as u64, waitpid_syscall), + (syscall_const::KILL_SYSCALL as u64, kill_syscall), + (syscall_const::SHMDT_SYSCALL as u64, shmdt_syscall), + (syscall_const::FCNTL_SYSCALL as u64, fcntl_syscall), + (syscall_const::FLOCK_SYSCALL as u64, flock_syscall), + (syscall_const::FSYNC_SYSCALL as u64, fsync_syscall), + (syscall_const::FDATASYNC_SYSCALL as u64, fdatasync_syscall), + (syscall_const::TRUNCATE_SYSCALL as u64, truncate_syscall), + (syscall_const::FTRUNCATE_SYSCALL as u64, ftruncate_syscall), + (syscall_const::GETDENTS_SYSCALL as u64, getdents_syscall), + (syscall_const::GETCWD_SYSCALL as u64, getcwd_syscall), + (syscall_const::CHDIR_SYSCALL as u64, chdir_syscall), + (syscall_const::FCHDIR_SYSCALL as u64, fchdir_syscall), + (syscall_const::RENAME_SYSCALL as u64, rename_syscall), + (syscall_const::MKDIR_SYSCALL as u64, mkdir_syscall), + (syscall_const::RMDIR_SYSCALL as u64, rmdir_syscall), + (syscall_const::LINK_SYSCALL as u64, link_syscall), + (syscall_const::UNLINK_SYSCALL as u64, unlink_syscall), + (syscall_const::READLINK_SYSCALL as u64, readlink_syscall), + (syscall_const::CHMOD_SYSCALL as u64, chmod_syscall), + (syscall_const::FCHMOD_SYSCALL as u64, fchmod_syscall), + (syscall_const::GETUID_SYSCALL as u64, getuid_syscall), + (syscall_const::GETGID_SYSCALL as u64, getgid_syscall), + (syscall_const::GETEUID_SYSCALL as u64, geteuid_syscall), + (syscall_const::GETEGID_SYSCALL as u64, getegid_syscall), + (syscall_const::GETPPID_SYSCALL as u64, getppid_syscall), + (syscall_const::STATFS_SYSCALL as u64, statfs_syscall), + (syscall_const::FSTATFS_SYSCALL as u64, fstatfs_syscall), + ( + syscall_const::GETHOSTNAME_SYSCALL as u64, + gethostname_syscall, + ), + (syscall_const::FUTEX_SYSCALL as u64, futex_syscall), + ( + syscall_const::EPOLL_CREATE_SYSCALL as u64, + epoll_create_syscall, + ), + ( + syscall_const::CLOCK_GETTIME_SYSCALL as u64, + clock_gettime_syscall, + ), + (syscall_const::EPOLL_WAIT_SYSCALL as u64, epoll_wait_syscall), + (syscall_const::EPOLL_CTL_SYSCALL as u64, epoll_ctl_syscall), + (syscall_const::UNLINKAT_SYSCALL as u64, unlinkat_syscall), + (syscall_const::READLINKAT_SYSCALL as u64, readlinkat_syscall), + ( + syscall_const::SYNC_FILE_RANGE_SYSCALL as u64, + sync_file_range_syscall, + ), + ( + syscall_const::EPOLL_CREATE1_SYSCALL as u64, + epoll_create1_syscall, + ), + (syscall_const::DUP3_SYSCALL as u64, dup3_syscall), + (syscall_const::PIPE2_SYSCALL as u64, pipe2_syscall), + (syscall_const::GETRANDOM_SYSCALL as u64, getrandom_syscall), ]; diff --git a/src/sysdefs/src/constants/mod.rs b/src/sysdefs/src/constants/mod.rs index 822df379b..6cc79fca1 100644 --- a/src/sysdefs/src/constants/mod.rs +++ b/src/sysdefs/src/constants/mod.rs @@ -3,9 +3,11 @@ pub mod fs_const; pub mod lind_platform_const; pub mod net_const; pub mod sys_const; +pub mod syscall_const; pub use err_const::*; pub use fs_const::*; pub use lind_platform_const::*; pub use net_const::*; pub use sys_const::*; +pub use syscall_const::*; diff --git a/src/sysdefs/src/constants/syscall_const.rs b/src/sysdefs/src/constants/syscall_const.rs new file mode 100644 index 000000000..2701affdb --- /dev/null +++ b/src/sysdefs/src/constants/syscall_const.rs @@ -0,0 +1,99 @@ +//! Syscall number constants for the Lind platform. +//! +//! Source of truth: Linux x86_64 syscall table +//! https://github.com/torvalds/linux/blob/v6.16-rc1/arch/x86/entry/syscalls/syscall_64.tbl +//! (Historical overview: https://filippo.io/linux-syscall-table/) +//! +//! Keep these in sync with glibc's lind_syscall_num.h and RawPOSIX dispatcher. + +pub const READ_SYSCALL: i32 = 0; +pub const WRITE_SYSCALL: i32 = 1; +pub const OPEN_SYSCALL: i32 = 2; +pub const CLOSE_SYSCALL: i32 = 3; +pub const STAT_SYSCALL: i32 = 4; +pub const FSTAT_SYSCALL: i32 = 5; +pub const POLL_SYSCALL: i32 = 7; +pub const LSEEK_SYSCALL: i32 = 8; +pub const MMAP_SYSCALL: i32 = 9; +pub const MPROTECT_SYSCALL: i32 = 10; +pub const MUNMAP_SYSCALL: i32 = 11; +pub const BRK_SYSCALL: i32 = 12; +pub const SIGACTION_SYSCALL: i32 = 13; +pub const SIGPROCMASK_SYSCALL: i32 = 14; +pub const IOCTL_SYSCALL: i32 = 16; +pub const PREAD_SYSCALL: i32 = 17; +pub const PWRITE_SYSCALL: i32 = 18; +pub const READV_SYSCALL: i32 = 19; +pub const WRITEV_SYSCALL: i32 = 20; +pub const ACCESS_SYSCALL: i32 = 21; +pub const PIPE_SYSCALL: i32 = 22; +pub const SELECT_SYSCALL: i32 = 23; +pub const SCHED_YIELD_SYSCALL: i32 = 24; +pub const SHMGET_SYSCALL: i32 = 29; +pub const SHMAT_SYSCALL: i32 = 30; +pub const SHMCTL_SYSCALL: i32 = 31; +pub const DUP_SYSCALL: i32 = 32; +pub const DUP2_SYSCALL: i32 = 33; +pub const NANOSLEEP_SYSCALL: i32 = 35; +pub const SETITIMER_SYSCALL: i32 = 38; +pub const GETPID_SYSCALL: i32 = 39; +pub const SOCKET_SYSCALL: i32 = 41; +pub const CONNECT_SYSCALL: i32 = 42; +pub const ACCEPT_SYSCALL: i32 = 43; +pub const SENDTO_SYSCALL: i32 = 44; +pub const RECVFROM_SYSCALL: i32 = 45; +pub const SENDMSG_SYSCALL: i32 = 46; +pub const RECVMSG_SYSCALL: i32 = 47; +pub const SHUTDOWN_SYSCALL: i32 = 48; +pub const BIND_SYSCALL: i32 = 49; +pub const LISTEN_SYSCALL: i32 = 50; +pub const GETSOCKNAME_SYSCALL: i32 = 51; +pub const GETPEERNAME_SYSCALL: i32 = 52; +pub const SOCKETPAIR_SYSCALL: i32 = 53; +pub const SETSOCKOPT_SYSCALL: i32 = 54; +pub const GETSOCKOPT_SYSCALL: i32 = 55; +pub const CLONE_SYSCALL: i32 = 56; +pub const FORK_SYSCALL: i32 = 57; +pub const EXEC_SYSCALL: i32 = 59; +pub const EXIT_SYSCALL: i32 = 60; +pub const WAITPID_SYSCALL: i32 = 61; +pub const KILL_SYSCALL: i32 = 62; +pub const SHMDT_SYSCALL: i32 = 67; +pub const FCNTL_SYSCALL: i32 = 72; +pub const FLOCK_SYSCALL: i32 = 73; +pub const FSYNC_SYSCALL: i32 = 74; +pub const FDATASYNC_SYSCALL: i32 = 75; +pub const TRUNCATE_SYSCALL: i32 = 76; +pub const FTRUNCATE_SYSCALL: i32 = 77; +pub const GETDENTS_SYSCALL: i32 = 78; +pub const GETCWD_SYSCALL: i32 = 79; +pub const CHDIR_SYSCALL: i32 = 80; +pub const FCHDIR_SYSCALL: i32 = 81; +pub const RENAME_SYSCALL: i32 = 82; +pub const MKDIR_SYSCALL: i32 = 83; +pub const RMDIR_SYSCALL: i32 = 84; +pub const LINK_SYSCALL: i32 = 86; +pub const UNLINK_SYSCALL: i32 = 87; +pub const READLINK_SYSCALL: i32 = 89; +pub const CHMOD_SYSCALL: i32 = 90; +pub const FCHMOD_SYSCALL: i32 = 91; +pub const GETUID_SYSCALL: i32 = 102; +pub const GETGID_SYSCALL: i32 = 104; +pub const GETEUID_SYSCALL: i32 = 107; +pub const GETEGID_SYSCALL: i32 = 108; +pub const GETPPID_SYSCALL: i32 = 110; +pub const STATFS_SYSCALL: i32 = 137; +pub const FSTATFS_SYSCALL: i32 = 138; +pub const GETHOSTNAME_SYSCALL: i32 = 170; +pub const FUTEX_SYSCALL: i32 = 202; +pub const EPOLL_CREATE_SYSCALL: i32 = 213; +pub const CLOCK_GETTIME_SYSCALL: i32 = 228; +pub const EPOLL_WAIT_SYSCALL: i32 = 232; +pub const EPOLL_CTL_SYSCALL: i32 = 233; +pub const UNLINKAT_SYSCALL: i32 = 263; +pub const READLINKAT_SYSCALL: i32 = 267; +pub const SYNC_FILE_RANGE_SYSCALL: i32 = 277; +pub const EPOLL_CREATE1_SYSCALL: i32 = 291; +pub const DUP3_SYSCALL: i32 = 292; +pub const PIPE2_SYSCALL: i32 = 293; +pub const GETRANDOM_SYSCALL: i32 = 318; diff --git a/src/wasmtime/crates/lind-common/src/lib.rs b/src/wasmtime/crates/lind-common/src/lib.rs index 195d7dd5d..5476a7584 100644 --- a/src/wasmtime/crates/lind-common/src/lib.rs +++ b/src/wasmtime/crates/lind-common/src/lib.rs @@ -22,7 +22,7 @@ use wasmtime_lind_multi_process::{get_memory_base, LindHost}; // `UNUSED_ID` / `UNUSED_ARG` / `UNUSED_NAME` is a placeholder argument // for functions that require a fixed number of parameters but do not utilize // all of them. -use wasmtime_lind_utils::lind_syscall_numbers::{CLONE_SYSCALL, EXEC_SYSCALL, EXIT_SYSCALL}; +use sysdefs::constants::syscall_const::{CLONE_SYSCALL, EXEC_SYSCALL, EXIT_SYSCALL}; /// Stores argv and environment variables for the guest program. During glibc's /// `_start()`, the guest calls 4 imported host functions (`args_sizes_get`, diff --git a/src/wasmtime/crates/lind-multi-process/src/lib.rs b/src/wasmtime/crates/lind-multi-process/src/lib.rs index db50ce2d8..5b47e83d5 100644 --- a/src/wasmtime/crates/lind-multi-process/src/lib.rs +++ b/src/wasmtime/crates/lind-multi-process/src/lib.rs @@ -6,13 +6,13 @@ use anyhow::{anyhow, Result}; use std::ffi::c_void; use std::ptr::NonNull; use sysdefs::constants::lind_platform_const::{UNUSED_ARG, UNUSED_ID, UNUSED_NAME}; +use sysdefs::constants::syscall_const::{EXEC_SYSCALL, EXIT_SYSCALL, FORK_SYSCALL}; use sysdefs::{constants::sys_const, data::sys_struct}; use threei::{threei::make_syscall, threei_const}; use wasmtime_lind_3i::{ get_vmctx, get_vmctx_thread, rm_vmctx, rm_vmctx_thread, set_vmctx, set_vmctx_thread, VmCtxWrapper, }; -use wasmtime_lind_utils::lind_syscall_numbers::{EXEC_SYSCALL, EXIT_SYSCALL, FORK_SYSCALL}; use wasmtime_lind_utils::{parse_env_var, LindCageManager}; use std::ffi::CStr; diff --git a/src/wasmtime/crates/lind-utils/src/lib.rs b/src/wasmtime/crates/lind-utils/src/lib.rs index d11f29f5f..04c2406f2 100644 --- a/src/wasmtime/crates/lind-utils/src/lib.rs +++ b/src/wasmtime/crates/lind-utils/src/lib.rs @@ -2,8 +2,6 @@ use std::sync::{Condvar, Mutex}; -pub mod lind_syscall_numbers; - // used to manage global active cage count. Used to determine when wasmtime can exit // (i.e. only after all the cages exited, we can exit the process) // this class may be used by many crates (e.g. lind-commmon, lind-multi-process) diff --git a/src/wasmtime/crates/lind-utils/src/lind_syscall_numbers.rs b/src/wasmtime/crates/lind-utils/src/lind_syscall_numbers.rs deleted file mode 100644 index 07699050d..000000000 --- a/src/wasmtime/crates/lind-utils/src/lind_syscall_numbers.rs +++ /dev/null @@ -1,11 +0,0 @@ -// Minimal set of syscall numbers used by Wasmtime side for Lind -// Keeps the runtime minimal and the rawposix dispatcher handles the rest -// Source of truth: Linux x86_64 syscall table -// https://github.com/torvalds/linux/blob/v6.16-rc1/arch/x86/entry/syscalls/syscall_64.tbl -// (Historical overview: https://filippo.io/linux-syscall-table/) -// Keep these in sync with glibc's lind_syscall_num.h and RawPOSIX dispatcher -pub const MMAP_SYSCALL: i32 = 9; -pub const CLONE_SYSCALL: i32 = 56; -pub const FORK_SYSCALL: i32 = 57; -pub const EXEC_SYSCALL: i32 = 59; -pub const EXIT_SYSCALL: i32 = 60; diff --git a/src/wasmtime/crates/wasmtime/src/runtime/instance.rs b/src/wasmtime/crates/wasmtime/src/runtime/instance.rs index d160d4a36..b862f95c4 100644 --- a/src/wasmtime/crates/wasmtime/src/runtime/instance.rs +++ b/src/wasmtime/crates/wasmtime/src/runtime/instance.rs @@ -18,12 +18,12 @@ use sysdefs::constants::fs_const::{ MAP_ANONYMOUS, MAP_FIXED, MAP_PRIVATE, PAGESHIFT, PROT_READ, PROT_WRITE, }; use sysdefs::constants::lind_platform_const; +use sysdefs::constants::syscall_const::MMAP_SYSCALL; use threei::threei::make_syscall; use wasmparser::WasmFeatures; use wasmtime_environ::{ EntityIndex, EntityType, FuncIndex, GlobalIndex, MemoryIndex, PrimaryMap, TableIndex, TypeTrace, }; -use wasmtime_lind_utils::lind_syscall_numbers::MMAP_SYSCALL; use super::Val; diff --git a/src/wasmtime/src/commands/run.rs b/src/wasmtime/src/commands/run.rs index 193a6d7d4..7b6ac4464 100644 --- a/src/wasmtime/src/commands/run.rs +++ b/src/wasmtime/src/commands/run.rs @@ -24,8 +24,8 @@ use wasmtime::{ use wasmtime::{Caller, Instance}; +use sysdefs::constants::syscall_const::EXIT_SYSCALL; use wasmtime_lind_multi_process::{LindCtx, LindHost, CAGE_START_ID, THREAD_START_ID}; -use wasmtime_lind_utils::lind_syscall_numbers::EXIT_SYSCALL; use wasmtime_wasi::WasiView; use wasmtime_lind_3i::{get_vmctx, init_vmctx_pool, rm_vmctx, set_vmctx, VmCtxWrapper}; From b04579ebc7b7428dfd54557f3f0f99e64037328c Mon Sep 17 00:00:00 2001 From: celinehoang177 Date: Thu, 12 Mar 2026 03:48:19 +0000 Subject: [PATCH 2/2] update exit/exec/fork in rawposix/src/sys_call.rs --- src/rawposix/src/sys_calls.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/rawposix/src/sys_calls.rs b/src/rawposix/src/sys_calls.rs index f88d8cd69..9bfc68a26 100644 --- a/src/rawposix/src/sys_calls.rs +++ b/src/rawposix/src/sys_calls.rs @@ -24,6 +24,7 @@ use sysdefs::constants::sys_const::{ DEFAULT_GID, DEFAULT_UID, EXIT_SUCCESS, ITIMER_REAL, SIGCHLD, SIGKILL, SIGSTOP, SIG_BLOCK, SIG_SETMASK, SIG_UNBLOCK, WNOHANG, }; +use sysdefs::constants::syscall_const; use sysdefs::data::fs_struct::{ITimerVal, SigactionStruct}; use sysdefs::{constants::sys_const, data::sys_struct}; use typemap::datatype_conversion::*; @@ -183,7 +184,7 @@ pub extern "C" fn fork_syscall( // - Resume execution in parent and child threei::make_syscall( RAWPOSIX_CAGEID, - 56, // clone syscall number + syscall_const::CLONE_SYSCALL as u64, UNUSED_NAME, WASMTIME_CAGEID, clone_arg, @@ -268,7 +269,7 @@ pub extern "C" fn exec_syscall( threei::make_syscall( RAWPOSIX_CAGEID, - 59, // exec syscall number + syscall_const::EXEC_SYSCALL as u64, UNUSED_NAME, WASMTIME_CAGEID, path, @@ -406,7 +407,7 @@ pub extern "C" fn exit_syscall( // See comments in wasmtime/lind-multi-process threei::make_syscall( RAWPOSIX_CAGEID, - 60, // exit syscall number + syscall_const::EXIT_SYSCALL as u64, UNUSED_NAME, WASMTIME_CAGEID, status_arg,