fix arg passing to getcwd syscall

This commit is contained in:
Mark McCaskey 2019-03-26 14:37:47 -07:00
parent ad897b2076
commit 49db149224
3 changed files with 15 additions and 1 deletions

View File

@ -0,0 +1,8 @@
use wasmer_runtime_core::vm::Ctx;
///emscripten: _llvm_bswap_i64
pub fn _llvm_bswap_i64(_ctx: &mut Ctx, _low: i32, high: i32) -> i32 {
debug!("emscripten::_llvm_bswap_i64");
// setTempRet0(low.swap_bytes)
high.swap_bytes()
}

View File

@ -27,6 +27,7 @@ mod file_descriptor;
pub mod stdio;
// EMSCRIPTEN APIS
mod bitwise;
mod emscripten_target;
mod env;
mod errno;
@ -622,6 +623,9 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
"_llvm_cos_f64" => func!(crate::math::_llvm_cos_f64),
"_emscripten_random" => func!(crate::math::_emscripten_random),
// Bitwise
"_llvm_bswap_i64" => func!(crate::bitwise::_llvm_bswap_i64),
// Jump
"__setjmp" => func!(crate::jmp::__setjmp),
"__longjmp" => func!(crate::jmp::__longjmp),

View File

@ -209,9 +209,11 @@ pub fn ___syscall110(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
}
// getcwd
pub fn ___syscall183(ctx: &mut Ctx, buf_offset: u32, _size: u32) -> u32 {
pub fn ___syscall183(ctx: &mut Ctx, _which: c_int, mut varargs: VarArgs) -> i32 {
debug!("emscripten::___syscall183");
use std::env;
let buf_offset: c_int = varargs.get(ctx);
let _size: c_int = varargs.get(ctx);
let path = env::current_dir();
let path_string = path.unwrap().display().to_string();
let len = path_string.len();