mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-25 14:41:32 +00:00
Added emscripten _sysconf
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -675,7 +675,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmer"
|
name = "wasmer"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cranelift-codegen 0.23.0",
|
"cranelift-codegen 0.23.0",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use super::super::host;
|
use super::super::host;
|
||||||
/// NOTE: These syscalls only support wasm_32 for now because they take u32 offset
|
/// NOTE: These syscalls only support wasm_32 for now because they take u32 offset
|
||||||
use libc::{c_int, getgrnam as libc_getgrnam, getpwnam as libc_getpwnam};
|
use libc::{c_int, getgrnam as libc_getgrnam, getpwnam as libc_getpwnam, c_long, sysconf};
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::os::raw::c_char;
|
use std::os::raw::c_char;
|
||||||
@ -110,3 +110,11 @@ pub extern "C" fn _getpagesize() -> u32 {
|
|||||||
pub extern "C" fn ___build_environment(environ: c_int) {
|
pub extern "C" fn ___build_environment(environ: c_int) {
|
||||||
debug!("emscripten::___build_environment {}", environ);
|
debug!("emscripten::___build_environment {}", environ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub extern "C" fn _sysconf(name: c_int, instance: &mut Instance) -> c_long {
|
||||||
|
debug!("emscripten::_sysconf {}", name);
|
||||||
|
// TODO: Implement like emscripten expects regarding memory/page size
|
||||||
|
unsafe {
|
||||||
|
sysconf(name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -409,12 +409,17 @@ pub fn generate_emscripten_env<'a, 'b>() -> ImportObject<&'a str, &'b str> {
|
|||||||
"_getpagesize",
|
"_getpagesize",
|
||||||
ImportValue::Func(env::_getpagesize as _),
|
ImportValue::Func(env::_getpagesize as _),
|
||||||
);
|
);
|
||||||
|
import_object.set(
|
||||||
|
"env",
|
||||||
|
"_sysconf",
|
||||||
|
ImportValue::Func(env::_sysconf as _),
|
||||||
|
);
|
||||||
|
|
||||||
mock_external!(import_object, _waitpid);
|
mock_external!(import_object, _waitpid);
|
||||||
mock_external!(import_object, _utimes);
|
mock_external!(import_object, _utimes);
|
||||||
mock_external!(import_object, _usleep);
|
mock_external!(import_object, _usleep);
|
||||||
// mock_external!(import_object, _time);
|
// mock_external!(import_object, _time);
|
||||||
mock_external!(import_object, _sysconf);
|
// mock_external!(import_object, _sysconf);
|
||||||
// mock_external!(import_object, _strftime);
|
// mock_external!(import_object, _strftime);
|
||||||
mock_external!(import_object, _sigsuspend);
|
mock_external!(import_object, _sigsuspend);
|
||||||
// mock_external!(import_object, _sigprocmask);
|
// mock_external!(import_object, _sigprocmask);
|
||||||
|
Reference in New Issue
Block a user