mirror of
https://github.com/fluencelabs/wasmer
synced 2025-05-29 01:51:18 +00:00
get PHP kind of working...
This commit is contained in:
parent
e03a4a2065
commit
cad4f9b544
@ -1,8 +1,9 @@
|
|||||||
|
use crate::emscripten_target;
|
||||||
use wasmer_runtime_core::vm::Ctx;
|
use wasmer_runtime_core::vm::Ctx;
|
||||||
|
|
||||||
///emscripten: _llvm_bswap_i64
|
///emscripten: _llvm_bswap_i64
|
||||||
pub fn _llvm_bswap_i64(_ctx: &mut Ctx, _low: i32, high: i32) -> i32 {
|
pub fn _llvm_bswap_i64(_ctx: &mut Ctx, _low: i32, high: i32) -> i32 {
|
||||||
debug!("emscripten::_llvm_bswap_i64");
|
debug!("emscripten::_llvm_bswap_i64");
|
||||||
// setTempRet0(low.swap_bytes)
|
emscripten_target::setTempRet0(_ctx, _low.swap_bytes());
|
||||||
high.swap_bytes()
|
high.swap_bytes()
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,8 @@ use crate::env::get_emscripten_data;
|
|||||||
use libc::getdtablesize;
|
use libc::getdtablesize;
|
||||||
use wasmer_runtime_core::vm::Ctx;
|
use wasmer_runtime_core::vm::Ctx;
|
||||||
|
|
||||||
pub fn setTempRet0(_ctx: &mut Ctx, _a: i32) {
|
pub fn setTempRet0(_ctx: &mut Ctx, _val: i32) {
|
||||||
debug!("emscripten::setTempRet0");
|
debug!("emscripten::setTempRet0: {}", _val);
|
||||||
}
|
}
|
||||||
pub fn getTempRet0(_ctx: &mut Ctx) -> i32 {
|
pub fn getTempRet0(_ctx: &mut Ctx) -> i32 {
|
||||||
debug!("emscripten::getTempRet0");
|
debug!("emscripten::getTempRet0");
|
||||||
|
5
lib/emscripten/src/env/unix/mod.rs
vendored
5
lib/emscripten/src/env/unix/mod.rs
vendored
@ -137,6 +137,9 @@ pub fn _getgrnam(ctx: &mut Ctx, name_ptr: c_int) -> c_int {
|
|||||||
|
|
||||||
pub fn _sysconf(_ctx: &mut Ctx, name: c_int) -> i32 {
|
pub fn _sysconf(_ctx: &mut Ctx, name: c_int) -> i32 {
|
||||||
debug!("emscripten::_sysconf {}", name);
|
debug!("emscripten::_sysconf {}", name);
|
||||||
|
match name {
|
||||||
|
30 => 16384, // page size
|
||||||
|
_ => unsafe { sysconf(name) as i32 }, // TODO review i64
|
||||||
|
}
|
||||||
// TODO: Implement like emscripten expects regarding memory/page size
|
// TODO: Implement like emscripten expects regarding memory/page size
|
||||||
unsafe { sysconf(name) as i32 } // TODO review i64
|
|
||||||
}
|
}
|
||||||
|
@ -25,21 +25,33 @@ pub fn getprotobynumber(_ctx: &mut Ctx, _one: i32) -> i32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// sigdelset
|
/// sigdelset
|
||||||
pub fn sigdelset(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
|
pub fn sigdelset(ctx: &mut Ctx, set: i32, signum: i32) -> i32 {
|
||||||
debug!("emscripten::sigdelset");
|
debug!("emscripten::sigdelset");
|
||||||
unimplemented!()
|
let memory = ctx.memory(0);
|
||||||
|
let ptr = emscripten_memory_pointer!(memory, set) as *mut i32;
|
||||||
|
|
||||||
|
unsafe { *ptr = *ptr & !(1 << (signum - 1)) }
|
||||||
|
|
||||||
|
0
|
||||||
}
|
}
|
||||||
|
|
||||||
/// sigfillset
|
/// sigfillset
|
||||||
pub fn sigfillset(_ctx: &mut Ctx, _one: i32) -> i32 {
|
pub fn sigfillset(ctx: &mut Ctx, set: i32) -> i32 {
|
||||||
debug!("emscripten::sigfillset");
|
debug!("emscripten::sigfillset");
|
||||||
unimplemented!()
|
let memory = ctx.memory(0);
|
||||||
|
let ptr = emscripten_memory_pointer!(memory, set) as *mut i32;
|
||||||
|
|
||||||
|
unsafe {
|
||||||
|
*ptr = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
0
|
||||||
}
|
}
|
||||||
|
|
||||||
/// tzset
|
/// tzset
|
||||||
pub fn tzset(_ctx: &mut Ctx) {
|
pub fn tzset(_ctx: &mut Ctx) {
|
||||||
debug!("emscripten::tzset");
|
debug!("emscripten::tzset - stub");
|
||||||
unimplemented!()
|
//unimplemented!()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// strptime
|
/// strptime
|
||||||
|
@ -512,7 +512,7 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
|
|||||||
"___syscall77" => func!(crate::syscalls::___syscall77),
|
"___syscall77" => func!(crate::syscalls::___syscall77),
|
||||||
"___syscall83" => func!(crate::syscalls::___syscall83),
|
"___syscall83" => func!(crate::syscalls::___syscall83),
|
||||||
"___syscall85" => func!(crate::syscalls::___syscall85),
|
"___syscall85" => func!(crate::syscalls::___syscall85),
|
||||||
"___syscall91" => func!(crate::syscalls::___syscall191),
|
"___syscall91" => func!(crate::syscalls::___syscall91),
|
||||||
"___syscall94" => func!(crate::syscalls::___syscall194),
|
"___syscall94" => func!(crate::syscalls::___syscall194),
|
||||||
"___syscall97" => func!(crate::syscalls::___syscall97),
|
"___syscall97" => func!(crate::syscalls::___syscall97),
|
||||||
"___syscall102" => func!(crate::syscalls::___syscall102),
|
"___syscall102" => func!(crate::syscalls::___syscall102),
|
||||||
|
@ -20,7 +20,7 @@ pub fn _emscripten_memcpy_big(ctx: &mut Ctx, dest: u32, src: u32, len: u32) -> u
|
|||||||
pub fn _emscripten_get_heap_size(_ctx: &mut Ctx) -> u32 {
|
pub fn _emscripten_get_heap_size(_ctx: &mut Ctx) -> u32 {
|
||||||
debug!("emscripten::_emscripten_get_heap_size",);
|
debug!("emscripten::_emscripten_get_heap_size",);
|
||||||
// TODO: Fix implementation
|
// TODO: Fix implementation
|
||||||
16_777_216
|
162_107_392
|
||||||
}
|
}
|
||||||
|
|
||||||
/// emscripten: _emscripten_resize_heap
|
/// emscripten: _emscripten_resize_heap
|
||||||
@ -35,7 +35,7 @@ pub fn get_total_memory(_ctx: &mut Ctx) -> u32 {
|
|||||||
debug!("emscripten::get_total_memory");
|
debug!("emscripten::get_total_memory");
|
||||||
// instance.memories[0].current_pages()
|
// instance.memories[0].current_pages()
|
||||||
// TODO: Fix implementation
|
// TODO: Fix implementation
|
||||||
16_777_216
|
_ctx.memory(0).size().bytes().0 as u32
|
||||||
}
|
}
|
||||||
|
|
||||||
/// emscripten: enlargeMemory
|
/// emscripten: enlargeMemory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user