diff --git a/lib/emscripten/src/syscalls/mod.rs b/lib/emscripten/src/syscalls/mod.rs index eea1d66ac..58ee32b07 100644 --- a/lib/emscripten/src/syscalls/mod.rs +++ b/lib/emscripten/src/syscalls/mod.rs @@ -26,13 +26,11 @@ use libc::{ exit, fcntl, fstat, - getpgid, getpid, // readlink, // iovec, lseek, // open, - pid_t, read, rename, // sockaddr_in, @@ -311,19 +309,6 @@ pub fn ___syscall125(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 { -1 } -pub fn ___syscall132(ctx: &mut Ctx, _which: c_int, mut varargs: VarArgs) -> c_int { - debug!("emscripten::___syscall132 (getpgid)"); - - let pid: pid_t = varargs.get(ctx); - - let ret = unsafe { getpgid(pid) }; - debug!("=> pid: {} = {}", pid, ret); - if ret == -1 { - debug!("=> last os error: {}", Error::last_os_error(),); - } - ret -} - pub fn ___syscall133(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 { debug!("emscripten::___syscall133"); -1 @@ -425,8 +410,8 @@ pub fn ___syscall140(ctx: &mut Ctx, _which: i32, mut varargs: VarArgs) -> i32 { let offset_low: u32 = varargs.get(ctx); let result_ptr_value: WasmPtr = varargs.get(ctx); let whence: i32 = varargs.get(ctx); - let offset = offset_low as i64; - let ret = unsafe { lseek(fd, offset, whence) as i64 }; + let offset = offset_low; + let ret = unsafe { lseek(fd, offset as _, whence) as i64 }; let result_ptr = result_ptr_value.deref(ctx.memory(0)).unwrap(); result_ptr.set(ret); diff --git a/lib/emscripten/src/syscalls/unix.rs b/lib/emscripten/src/syscalls/unix.rs index 9f313e8cd..4a4b98cae 100644 --- a/lib/emscripten/src/syscalls/unix.rs +++ b/lib/emscripten/src/syscalls/unix.rs @@ -25,6 +25,7 @@ use libc::{ getgid, getgroups, getpeername, + getpgid, getrusage, getsockname, getsockopt, @@ -804,6 +805,20 @@ fn translate_socket_name_flag(name: i32) -> i32 { } } +/// getpgid +pub fn ___syscall132(ctx: &mut Ctx, _which: c_int, mut varargs: VarArgs) -> c_int { + debug!("emscripten::___syscall132 (getpgid)"); + + let pid: pid_t = varargs.get(ctx); + + let ret = unsafe { getpgid(pid) }; + debug!("=> pid: {} = {}", pid, ret); + if ret == -1 { + debug!("=> last os error: {}", Error::last_os_error(),); + } + ret +} + #[derive(Debug, Copy, Clone)] #[repr(C)] pub struct EmPollFd { diff --git a/lib/emscripten/src/syscalls/windows.rs b/lib/emscripten/src/syscalls/windows.rs index b65748d53..296d51814 100644 --- a/lib/emscripten/src/syscalls/windows.rs +++ b/lib/emscripten/src/syscalls/windows.rs @@ -134,6 +134,12 @@ pub fn ___syscall85(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int { -1 } +/// getpgid +pub fn ___syscall132(ctx: &mut Ctx, _which: c_int, mut varargs: VarArgs) -> c_int { + debug!("emscripten::___syscall132 (getpgid)"); + -1 +} + /// lchown pub fn ___syscall198(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int { debug!("emscripten::___syscall198 (lchown) {}", _which);