Formatted files

This commit is contained in:
Syrus
2019-01-23 12:35:14 -08:00
parent 70c512ecb3
commit 83d0c3e647
6 changed files with 69 additions and 183 deletions

View File

@ -143,14 +143,14 @@ pub extern "C" fn _getgrnam(name_ptr: c_int, vmctx: &mut Ctx) -> c_int {
pub fn call_malloc(size: i32, vmctx: &mut Ctx) -> u32 { pub fn call_malloc(size: i32, vmctx: &mut Ctx) -> u32 {
unimplemented!() unimplemented!()
// let ret = instance // let ret = instance
// .call("_malloc", &[Value::I32(size)]) // .call("_malloc", &[Value::I32(size)])
// .expect("_malloc call failed"); // .expect("_malloc call failed");
// if let [Value::I32(x)] = ret.as_slice() { // if let [Value::I32(x)] = ret.as_slice() {
// *x as u32 // *x as u32
// } else { // } else {
// panic!("unexpected value from _malloc: {:?}", ret); // panic!("unexpected value from _malloc: {:?}", ret);
// } // }
} }
pub fn call_memalign(alignment: u32, size: u32, vmctx: &mut Ctx) -> u32 { pub fn call_memalign(alignment: u32, size: u32, vmctx: &mut Ctx) -> u32 {
@ -171,21 +171,21 @@ pub fn call_memalign(alignment: u32, size: u32, vmctx: &mut Ctx) -> u32 {
pub fn call_memset(pointer: u32, value: i32, size: u32, vmctx: &mut Ctx) -> u32 { pub fn call_memset(pointer: u32, value: i32, size: u32, vmctx: &mut Ctx) -> u32 {
unimplemented!() unimplemented!()
// let ret = instance // let ret = instance
// .call( // .call(
// "_memset", // "_memset",
// &[ // &[
// Value::I32(pointer as i32), // Value::I32(pointer as i32),
// Value::I32(value), // Value::I32(value),
// Value::I32(size as i32), // Value::I32(size as i32),
// ], // ],
// ) // )
// .expect("_memset call failed"); // .expect("_memset call failed");
// if let [Value::I32(x)] = ret.as_slice() { // if let [Value::I32(x)] = ret.as_slice() {
// *x as u32 // *x as u32
// } else { // } else {
// panic!("unexpected value from _memset {:?}", ret); // panic!("unexpected value from _memset {:?}", ret);
// } // }
} }
pub extern "C" fn _getpagesize() -> u32 { pub extern "C" fn _getpagesize() -> u32 {

View File

@ -1,6 +1,6 @@
use super::env; use super::env;
use super::process::_abort; use super::process::_abort;
use wasmer_runtime_core::{Instance, vm::Ctx}; use wasmer_runtime_core::{vm::Ctx, Instance};
/// emscripten: ___cxa_allocate_exception /// emscripten: ___cxa_allocate_exception
pub extern "C" fn ___cxa_allocate_exception(size: u32, vmctx: &mut Ctx) -> u32 { pub extern "C" fn ___cxa_allocate_exception(size: u32, vmctx: &mut Ctx) -> u32 {

View File

@ -9,16 +9,12 @@ use wasmer_runtime_core::{
export::{Context, Export, FuncPointer, GlobalPointer, MemoryPointer, TablePointer}, export::{Context, Export, FuncPointer, GlobalPointer, MemoryPointer, TablePointer},
import::{ImportObject, Namespace}, import::{ImportObject, Namespace},
memory::LinearMemory, memory::LinearMemory,
structures::TypedIndex,
table::TableBacking, table::TableBacking,
types::{ types::{
FuncSig, GlobalDesc, ElementType, FuncSig, GlobalDesc, LocalMemoryIndex, Memory, Table,
Type::{self, *}, Type::{self, *},
Memory,
LocalMemoryIndex,
ElementType,
Table,
}, },
structures::TypedIndex,
vm::LocalGlobal, vm::LocalGlobal,
vm::LocalMemory, vm::LocalMemory,
vm::LocalTable, vm::LocalTable,
@ -183,7 +179,13 @@ impl<'a> EmscriptenGlobals<'a> {
data.insert("env", env_namepace); data.insert("env", env_namepace);
data.insert("global", global_namepace); data.insert("global", global_namepace);
Self { data, memory, vm_memory, table, vm_table } Self {
data,
memory,
vm_memory,
table,
vm_table,
}
} }
} }
@ -203,9 +205,7 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
let null_ctx = Context::External(ptr::null_mut()); let null_ctx = Context::External(ptr::null_mut());
// Memory // Memory
let local_memory = unsafe { let local_memory = unsafe { MemoryPointer::new(&mut globals.vm_memory) };
MemoryPointer::new(&mut globals.vm_memory)
};
env_namespace.insert( env_namespace.insert(
"memory".to_string(), "memory".to_string(),
@ -216,14 +216,12 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
min: 256, min: 256,
max: Some(256), max: Some(256),
shared: false, shared: false,
} },
}, },
); );
// Table // Table
let local_table = unsafe { let local_table = unsafe { TablePointer::new(&mut globals.vm_table) };
TablePointer::new(&mut globals.vm_table)
};
env_namespace.insert( env_namespace.insert(
"table".to_string(), "table".to_string(),
@ -235,7 +233,7 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
ty: ElementType::Anyfunc, ty: ElementType::Anyfunc,
min: 10, min: 10,
max: Some(10), max: Some(10),
} },
}, },
); );

View File

@ -105,11 +105,7 @@ pub extern "C" fn ___syscall1(which: c_int, mut varargs: VarArgs, vmctx: &mut Ct
} }
/// read /// read
pub extern "C" fn ___syscall3( pub extern "C" fn ___syscall3(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> ssize_t {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> ssize_t {
debug!("emscripten::___syscall3 (read) {}", which); debug!("emscripten::___syscall3 (read) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -122,11 +118,7 @@ pub extern "C" fn ___syscall3(
} }
/// write /// write
pub extern "C" fn ___syscall4( pub extern "C" fn ___syscall4(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall4 (write) {}", which); debug!("emscripten::___syscall4 (write) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -137,11 +129,7 @@ pub extern "C" fn ___syscall4(
} }
/// open /// open
pub extern "C" fn ___syscall5( pub extern "C" fn ___syscall5(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall5 (open) {}", which); debug!("emscripten::___syscall5 (open) {}", which);
let pathname: u32 = varargs.get(vmctx); let pathname: u32 = varargs.get(vmctx);
let flags: i32 = varargs.get(vmctx); let flags: i32 = varargs.get(vmctx);
@ -157,11 +145,7 @@ pub extern "C" fn ___syscall5(
} }
/// close /// close
pub extern "C" fn ___syscall6( pub extern "C" fn ___syscall6(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall6 (close) {}", which); debug!("emscripten::___syscall6 (close) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
debug!("fd: {}", fd); debug!("fd: {}", fd);
@ -169,11 +153,7 @@ pub extern "C" fn ___syscall6(
} }
// chdir // chdir
pub extern "C" fn ___syscall12( pub extern "C" fn ___syscall12(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall12 (chdir) {}", which); debug!("emscripten::___syscall12 (chdir) {}", which);
let path_addr: i32 = varargs.get(vmctx); let path_addr: i32 = varargs.get(vmctx);
unsafe { unsafe {
@ -192,11 +172,7 @@ pub extern "C" fn ___syscall20() -> pid_t {
} }
// mkdir // mkdir
pub extern "C" fn ___syscall39( pub extern "C" fn ___syscall39(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall39 (mkdir) {}", which); debug!("emscripten::___syscall39 (mkdir) {}", which);
let pathname: u32 = varargs.get(vmctx); let pathname: u32 = varargs.get(vmctx);
let mode: u32 = varargs.get(vmctx); let mode: u32 = varargs.get(vmctx);
@ -205,11 +181,7 @@ pub extern "C" fn ___syscall39(
} }
// rmdir // rmdir
pub extern "C" fn ___syscall40( pub extern "C" fn ___syscall40(_which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
_which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall40 (rmdir)"); debug!("emscripten::___syscall40 (rmdir)");
let pathname: u32 = varargs.get(vmctx); let pathname: u32 = varargs.get(vmctx);
let pathname_addr = vmctx.memory(0)[pathname as usize] as *const i8; let pathname_addr = vmctx.memory(0)[pathname as usize] as *const i8;
@ -217,11 +189,7 @@ pub extern "C" fn ___syscall40(
} }
/// ioctl /// ioctl
pub extern "C" fn ___syscall54( pub extern "C" fn ___syscall54(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall54 (ioctl) {}", which); debug!("emscripten::___syscall54 (ioctl) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let request: u32 = varargs.get(vmctx); let request: u32 = varargs.get(vmctx);
@ -263,11 +231,7 @@ pub extern "C" fn ___syscall54(
} }
// setpgid // setpgid
pub extern "C" fn ___syscall57( pub extern "C" fn ___syscall57(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall57 (setpgid) {}", which); debug!("emscripten::___syscall57 (setpgid) {}", which);
let pid: i32 = varargs.get(vmctx); let pid: i32 = varargs.get(vmctx);
let pgid: i32 = varargs.get(vmctx); let pgid: i32 = varargs.get(vmctx);
@ -275,11 +239,7 @@ pub extern "C" fn ___syscall57(
} }
// dup2 // dup2
pub extern "C" fn ___syscall63( pub extern "C" fn ___syscall63(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall63 (dup2) {}", which); debug!("emscripten::___syscall63 (dup2) {}", which);
let src: i32 = varargs.get(vmctx); let src: i32 = varargs.get(vmctx);
@ -296,11 +256,7 @@ pub extern "C" fn ___syscall64() -> pid_t {
// socketcall // socketcall
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn ___syscall102( pub extern "C" fn ___syscall102(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall102 (socketcall) {}", which); debug!("emscripten::___syscall102 (socketcall) {}", which);
let call: u32 = varargs.get(vmctx); let call: u32 = varargs.get(vmctx);
let mut socket_varargs: VarArgs = varargs.get(vmctx); let mut socket_varargs: VarArgs = varargs.get(vmctx);
@ -547,11 +503,7 @@ pub extern "C" fn ___syscall102(
/// wait4 /// wait4
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn ___syscall114( pub extern "C" fn ___syscall114(_which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> pid_t {
_which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> pid_t {
debug!("emscripten::___syscall114 (wait4)"); debug!("emscripten::___syscall114 (wait4)");
let pid: pid_t = varargs.get(vmctx); let pid: pid_t = varargs.get(vmctx);
let status: u32 = varargs.get(vmctx); let status: u32 = varargs.get(vmctx);
@ -569,11 +521,7 @@ pub extern "C" fn ___syscall114(
/// uname /// uname
// NOTE: Wondering if we should return custom utsname, like Emscripten. // NOTE: Wondering if we should return custom utsname, like Emscripten.
pub extern "C" fn ___syscall122( pub extern "C" fn ___syscall122(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall122 (uname) {}", which); debug!("emscripten::___syscall122 (uname) {}", which);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
debug!("=> buf: {}", buf); debug!("=> buf: {}", buf);
@ -583,11 +531,7 @@ pub extern "C" fn ___syscall122(
// select // select
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn ___syscall142( pub extern "C" fn ___syscall142(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall142 (newselect) {}", which); debug!("emscripten::___syscall142 (newselect) {}", which);
let nfds: i32 = varargs.get(vmctx); let nfds: i32 = varargs.get(vmctx);
@ -606,11 +550,7 @@ pub extern "C" fn ___syscall142(
} }
// mmap2 // mmap2
pub extern "C" fn ___syscall192( pub extern "C" fn ___syscall192(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall192 (mmap2) {}", which); debug!("emscripten::___syscall192 (mmap2) {}", which);
let addr: i32 = varargs.get(vmctx); let addr: i32 = varargs.get(vmctx);
let len: u32 = varargs.get(vmctx); let len: u32 = varargs.get(vmctx);
@ -636,11 +576,7 @@ pub extern "C" fn ___syscall192(
} }
/// lseek /// lseek
pub extern "C" fn ___syscall140( pub extern "C" fn ___syscall140(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> off_t {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> off_t {
debug!("emscripten::___syscall140 (lseek) {}", which); debug!("emscripten::___syscall140 (lseek) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let offset: i64 = varargs.get(vmctx); let offset: i64 = varargs.get(vmctx);
@ -651,11 +587,7 @@ pub extern "C" fn ___syscall140(
/// readv /// readv
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn ___syscall145( pub extern "C" fn ___syscall145(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> ssize_t {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> ssize_t {
debug!("emscripten::___syscall145 (readv) {}", which); debug!("emscripten::___syscall145 (readv) {}", which);
// let fd: i32 = varargs.get(vmctx); // let fd: i32 = varargs.get(vmctx);
// let iov: u32 = varargs.get(vmctx); // let iov: u32 = varargs.get(vmctx);
@ -695,11 +627,7 @@ pub extern "C" fn ___syscall145(
// writev // writev
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn ___syscall146( pub extern "C" fn ___syscall146(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> ssize_t {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> ssize_t {
debug!("emscripten::___syscall146 (writev) {}", which); debug!("emscripten::___syscall146 (writev) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let iov: i32 = varargs.get(vmctx); let iov: i32 = varargs.get(vmctx);
@ -731,11 +659,7 @@ pub extern "C" fn ___syscall146(
} }
// pread // pread
pub extern "C" fn ___syscall180( pub extern "C" fn ___syscall180(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall180 (pread) {}", which); debug!("emscripten::___syscall180 (pread) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -752,11 +676,7 @@ pub extern "C" fn ___syscall180(
} }
// pwrite // pwrite
pub extern "C" fn ___syscall181( pub extern "C" fn ___syscall181(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall181 (pwrite) {}", which); debug!("emscripten::___syscall181 (pwrite) {}", which);
let fd: i32 = varargs.get(vmctx); let fd: i32 = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -777,11 +697,7 @@ pub extern "C" fn ___syscall181(
} }
// stat64 // stat64
pub extern "C" fn ___syscall195( pub extern "C" fn ___syscall195(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall195 (stat64) {}", which); debug!("emscripten::___syscall195 (stat64) {}", which);
let pathname: u32 = varargs.get(vmctx); let pathname: u32 = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -801,11 +717,7 @@ pub extern "C" fn ___syscall195(
} }
// fstat64 // fstat64
pub extern "C" fn ___syscall197( pub extern "C" fn ___syscall197(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall197 (fstat64) {}", which); debug!("emscripten::___syscall197 (fstat64) {}", which);
let fd: c_int = varargs.get(vmctx); let fd: c_int = varargs.get(vmctx);
let buf: u32 = varargs.get(vmctx); let buf: u32 = varargs.get(vmctx);
@ -842,11 +754,7 @@ pub extern "C" fn ___syscall202() -> gid_t {
} }
// chown // chown
pub extern "C" fn ___syscall212( pub extern "C" fn ___syscall212(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall212 (chown) {}", which); debug!("emscripten::___syscall212 (chown) {}", which);
let pathname: u32 = varargs.get(vmctx); let pathname: u32 = varargs.get(vmctx);
@ -859,11 +767,7 @@ pub extern "C" fn ___syscall212(
} }
// fcntl64 // fcntl64
pub extern "C" fn ___syscall221( pub extern "C" fn ___syscall221(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall221 (fcntl64) {}", which); debug!("emscripten::___syscall221 (fcntl64) {}", which);
// fcntl64 // fcntl64
let _fd: i32 = varargs.get(vmctx); let _fd: i32 = varargs.get(vmctx);
@ -875,11 +779,7 @@ pub extern "C" fn ___syscall221(
} }
/// dup3 /// dup3
pub extern "C" fn ___syscall330( pub extern "C" fn ___syscall330(_which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> pid_t {
_which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> pid_t {
// Implementation based on description at https://linux.die.net/man/2/dup3 // Implementation based on description at https://linux.die.net/man/2/dup3
debug!("emscripten::___syscall330 (dup3)"); debug!("emscripten::___syscall330 (dup3)");
let oldfd: c_int = varargs.get(vmctx); let oldfd: c_int = varargs.get(vmctx);
@ -913,11 +813,7 @@ pub extern "C" fn ___syscall330(
} }
// prlimit64 // prlimit64
pub extern "C" fn ___syscall340( pub extern "C" fn ___syscall340(which: c_int, mut varargs: VarArgs, vmctx: &mut Ctx) -> c_int {
which: c_int,
mut varargs: VarArgs,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___syscall340 (prlimit64), {}", which); debug!("emscripten::___syscall340 (prlimit64), {}", which);
// NOTE: Doesn't really matter. Wasm modules cannot exceed WASM_PAGE_SIZE anyway. // NOTE: Doesn't really matter. Wasm modules cannot exceed WASM_PAGE_SIZE anyway.
let _pid: i32 = varargs.get(vmctx); let _pid: i32 = varargs.get(vmctx);

View File

@ -51,11 +51,7 @@ pub extern "C" fn _gettimeofday(tp: c_int, tz: c_int, vmctx: &mut Ctx) -> c_int
/// emscripten: _clock_gettime /// emscripten: _clock_gettime
#[allow(clippy::cast_ptr_alignment)] #[allow(clippy::cast_ptr_alignment)]
pub extern "C" fn _clock_gettime( pub extern "C" fn _clock_gettime(clk_id: libc::clockid_t, tp: c_int, vmctx: &mut Ctx) -> c_int {
clk_id: libc::clockid_t,
tp: c_int,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::_clock_gettime {} {}", clk_id, tp); debug!("emscripten::_clock_gettime {} {}", clk_id, tp);
#[repr(C)] #[repr(C)]
struct GuestTimeSpec { struct GuestTimeSpec {
@ -84,11 +80,7 @@ pub extern "C" fn _clock_gettime(
} }
/// emscripten: ___clock_gettime /// emscripten: ___clock_gettime
pub extern "C" fn ___clock_gettime( pub extern "C" fn ___clock_gettime(clk_id: libc::clockid_t, tp: c_int, vmctx: &mut Ctx) -> c_int {
clk_id: libc::clockid_t,
tp: c_int,
vmctx: &mut Ctx,
) -> c_int {
debug!("emscripten::___clock_gettime {} {}", clk_id, tp); debug!("emscripten::___clock_gettime {} {}", clk_id, tp);
_clock_gettime(clk_id, tp, vmctx) _clock_gettime(clk_id, tp, vmctx)
} }

View File

@ -144,8 +144,8 @@ mod tests {
fn should_detect_emscripten_files() { fn should_detect_emscripten_files() {
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_true.wast"); const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_true.wast");
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm"); let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
let module = let module = compile_with(&wasm_binary[..], &CraneliftCompiler::new())
compile_with(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled"); .expect("WASM can't be compiled");
let module = Arc::new(module); let module = Arc::new(module);
assert!(is_emscripten_module(&module)); assert!(is_emscripten_module(&module));
} }
@ -154,8 +154,8 @@ mod tests {
fn should_detect_non_emscripten_files() { fn should_detect_non_emscripten_files() {
const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_false.wast"); const wast_bytes: &[u8] = include_bytes!("tests/is_emscripten_false.wast");
let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm"); let wasm_binary = wat2wasm(wast_bytes.to_vec()).expect("Can't convert to wasm");
let module = let module = compile_with(&wasm_binary[..], &CraneliftCompiler::new())
compile_with(&wasm_binary[..], &CraneliftCompiler::new()).expect("WASM can't be compiled"); .expect("WASM can't be compiled");
let module = Arc::new(module); let module = Arc::new(module);
assert!(!is_emscripten_module(&module)); assert!(!is_emscripten_module(&module));
} }