mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-24 22:21:32 +00:00
Move emscripten pthread into its own module
This commit is contained in:
@ -68,163 +68,6 @@ pub fn _dladdr(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|||||||
debug!("emscripten::_dladdr");
|
debug!("emscripten::_dladdr");
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
pub fn _pthread_attr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_attr_destroy");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_attr_getstack(
|
|
||||||
_ctx: &mut Ctx,
|
|
||||||
_stackaddr: i32,
|
|
||||||
_stacksize: i32,
|
|
||||||
_other: i32,
|
|
||||||
) -> i32 {
|
|
||||||
debug!(
|
|
||||||
"emscripten::_pthread_attr_getstack({}, {}, {})",
|
|
||||||
_stackaddr, _stacksize, _other
|
|
||||||
);
|
|
||||||
// TODO: Translate from Emscripten
|
|
||||||
// HEAP32[stackaddr >> 2] = STACK_BASE;
|
|
||||||
// HEAP32[stacksize >> 2] = TOTAL_STACK;
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_attr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_attr_init({})", _a);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_attr_setstacksize(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_attr_setstacksize");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_cleanup_pop(_ctx: &mut Ctx, _a: i32) -> () {
|
|
||||||
trace!("emscripten::_pthread_cleanup_pop");
|
|
||||||
}
|
|
||||||
pub fn _pthread_cleanup_push(_ctx: &mut Ctx, _a: i32, _b: i32) -> () {
|
|
||||||
trace!("emscripten::_pthread_cleanup_push");
|
|
||||||
}
|
|
||||||
pub fn _pthread_cond_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_cond_destroy");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_cond_init(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_cond_init");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_cond_signal(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_cond_signal");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_cond_timedwait(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_cond_timedwait");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_cond_wait(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_cond_wait");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_condattr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_condattr_destroy");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_condattr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_condattr_init");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_condattr_setclock(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_condattr_setclock");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_create(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32, _d: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_create");
|
|
||||||
// 11 seems to mean "no"
|
|
||||||
11
|
|
||||||
}
|
|
||||||
pub fn _pthread_detach(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_detach");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_equal(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_equal");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_exit(_ctx: &mut Ctx, _a: i32) -> () {
|
|
||||||
trace!("emscripten::_pthread_exit");
|
|
||||||
}
|
|
||||||
pub fn _pthread_getattr_np(_ctx: &mut Ctx, _thread: i32, _attr: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_getattr_np({}, {})", _thread, _attr);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_getspecific(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_getspecific");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_join(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_join");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_self(_ctx: &mut Ctx) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_self");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_key_create(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_key_create");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_mutex_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_mutex_destroy");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_mutex_init(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_mutex_init");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_mutexattr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_mutexattr_destroy");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_mutexattr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_mutexattr_init");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_mutexattr_settype(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_mutexattr_settype");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_once(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_once");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_rwlock_destroy(_ctx: &mut Ctx, _rwlock: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_rwlock_destroy({})", _rwlock);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_rwlock_init(_ctx: &mut Ctx, _rwlock: i32, _attr: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_rwlock_init({}, {})", _rwlock, _attr);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_rwlock_rdlock(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_rwlock_rdlock");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_rwlock_unlock(_ctx: &mut Ctx, _a: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_rwlock_unlock");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_rwlock_wrlock(_ctx: &mut Ctx, _rwlock: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_rwlock_wrlock({})", _rwlock);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_setcancelstate(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_setcancelstate");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_setspecific(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_setspecific");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn _pthread_sigmask(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32) -> i32 {
|
|
||||||
trace!("emscripten::_pthread_sigmask");
|
|
||||||
0
|
|
||||||
}
|
|
||||||
pub fn ___gxx_personality_v0(
|
pub fn ___gxx_personality_v0(
|
||||||
_ctx: &mut Ctx,
|
_ctx: &mut Ctx,
|
||||||
_a: i32,
|
_a: i32,
|
||||||
|
@ -51,6 +51,7 @@ mod lock;
|
|||||||
mod math;
|
mod math;
|
||||||
mod memory;
|
mod memory;
|
||||||
mod process;
|
mod process;
|
||||||
|
mod pthread;
|
||||||
mod signal;
|
mod signal;
|
||||||
mod storage;
|
mod storage;
|
||||||
mod syscalls;
|
mod syscalls;
|
||||||
@ -866,43 +867,43 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
|
|||||||
"___cxa_free_exception" => func!(crate::emscripten_target::___cxa_free_exception),
|
"___cxa_free_exception" => func!(crate::emscripten_target::___cxa_free_exception),
|
||||||
"___resumeException" => func!(crate::emscripten_target::___resumeException),
|
"___resumeException" => func!(crate::emscripten_target::___resumeException),
|
||||||
"_dladdr" => func!(crate::emscripten_target::_dladdr),
|
"_dladdr" => func!(crate::emscripten_target::_dladdr),
|
||||||
"_pthread_attr_destroy" => func!(crate::emscripten_target::_pthread_attr_destroy),
|
"_pthread_attr_destroy" => func!(crate::pthread::_pthread_attr_destroy),
|
||||||
"_pthread_attr_getstack" => func!(crate::emscripten_target::_pthread_attr_getstack),
|
"_pthread_attr_getstack" => func!(crate::pthread::_pthread_attr_getstack),
|
||||||
"_pthread_attr_init" => func!(crate::emscripten_target::_pthread_attr_init),
|
"_pthread_attr_init" => func!(crate::pthread::_pthread_attr_init),
|
||||||
"_pthread_attr_setstacksize" => func!(crate::emscripten_target::_pthread_attr_setstacksize),
|
"_pthread_attr_setstacksize" => func!(crate::pthread::_pthread_attr_setstacksize),
|
||||||
"_pthread_cleanup_pop" => func!(crate::emscripten_target::_pthread_cleanup_pop),
|
"_pthread_cleanup_pop" => func!(crate::pthread::_pthread_cleanup_pop),
|
||||||
"_pthread_cleanup_push" => func!(crate::emscripten_target::_pthread_cleanup_push),
|
"_pthread_cleanup_push" => func!(crate::pthread::_pthread_cleanup_push),
|
||||||
"_pthread_cond_destroy" => func!(crate::emscripten_target::_pthread_cond_destroy),
|
"_pthread_cond_destroy" => func!(crate::pthread::_pthread_cond_destroy),
|
||||||
"_pthread_cond_init" => func!(crate::emscripten_target::_pthread_cond_init),
|
"_pthread_cond_init" => func!(crate::pthread::_pthread_cond_init),
|
||||||
"_pthread_cond_signal" => func!(crate::emscripten_target::_pthread_cond_signal),
|
"_pthread_cond_signal" => func!(crate::pthread::_pthread_cond_signal),
|
||||||
"_pthread_cond_timedwait" => func!(crate::emscripten_target::_pthread_cond_timedwait),
|
"_pthread_cond_timedwait" => func!(crate::pthread::_pthread_cond_timedwait),
|
||||||
"_pthread_cond_wait" => func!(crate::emscripten_target::_pthread_cond_wait),
|
"_pthread_cond_wait" => func!(crate::pthread::_pthread_cond_wait),
|
||||||
"_pthread_condattr_destroy" => func!(crate::emscripten_target::_pthread_condattr_destroy),
|
"_pthread_condattr_destroy" => func!(crate::pthread::_pthread_condattr_destroy),
|
||||||
"_pthread_condattr_init" => func!(crate::emscripten_target::_pthread_condattr_init),
|
"_pthread_condattr_init" => func!(crate::pthread::_pthread_condattr_init),
|
||||||
"_pthread_condattr_setclock" => func!(crate::emscripten_target::_pthread_condattr_setclock),
|
"_pthread_condattr_setclock" => func!(crate::pthread::_pthread_condattr_setclock),
|
||||||
"_pthread_create" => func!(crate::emscripten_target::_pthread_create),
|
"_pthread_create" => func!(crate::pthread::_pthread_create),
|
||||||
"_pthread_detach" => func!(crate::emscripten_target::_pthread_detach),
|
"_pthread_detach" => func!(crate::pthread::_pthread_detach),
|
||||||
"_pthread_equal" => func!(crate::emscripten_target::_pthread_equal),
|
"_pthread_equal" => func!(crate::pthread::_pthread_equal),
|
||||||
"_pthread_exit" => func!(crate::emscripten_target::_pthread_exit),
|
"_pthread_exit" => func!(crate::pthread::_pthread_exit),
|
||||||
"_pthread_self" => func!(crate::emscripten_target::_pthread_self),
|
"_pthread_self" => func!(crate::pthread::_pthread_self),
|
||||||
"_pthread_getattr_np" => func!(crate::emscripten_target::_pthread_getattr_np),
|
"_pthread_getattr_np" => func!(crate::pthread::_pthread_getattr_np),
|
||||||
"_pthread_getspecific" => func!(crate::emscripten_target::_pthread_getspecific),
|
"_pthread_getspecific" => func!(crate::pthread::_pthread_getspecific),
|
||||||
"_pthread_join" => func!(crate::emscripten_target::_pthread_join),
|
"_pthread_join" => func!(crate::pthread::_pthread_join),
|
||||||
"_pthread_key_create" => func!(crate::emscripten_target::_pthread_key_create),
|
"_pthread_key_create" => func!(crate::pthread::_pthread_key_create),
|
||||||
"_pthread_mutex_destroy" => func!(crate::emscripten_target::_pthread_mutex_destroy),
|
"_pthread_mutex_destroy" => func!(crate::pthread::_pthread_mutex_destroy),
|
||||||
"_pthread_mutex_init" => func!(crate::emscripten_target::_pthread_mutex_init),
|
"_pthread_mutex_init" => func!(crate::pthread::_pthread_mutex_init),
|
||||||
"_pthread_mutexattr_destroy" => func!(crate::emscripten_target::_pthread_mutexattr_destroy),
|
"_pthread_mutexattr_destroy" => func!(crate::pthread::_pthread_mutexattr_destroy),
|
||||||
"_pthread_mutexattr_init" => func!(crate::emscripten_target::_pthread_mutexattr_init),
|
"_pthread_mutexattr_init" => func!(crate::pthread::_pthread_mutexattr_init),
|
||||||
"_pthread_mutexattr_settype" => func!(crate::emscripten_target::_pthread_mutexattr_settype),
|
"_pthread_mutexattr_settype" => func!(crate::pthread::_pthread_mutexattr_settype),
|
||||||
"_pthread_once" => func!(crate::emscripten_target::_pthread_once),
|
"_pthread_once" => func!(crate::pthread::_pthread_once),
|
||||||
"_pthread_rwlock_destroy" => func!(crate::emscripten_target::_pthread_rwlock_destroy),
|
"_pthread_rwlock_destroy" => func!(crate::pthread::_pthread_rwlock_destroy),
|
||||||
"_pthread_rwlock_init" => func!(crate::emscripten_target::_pthread_rwlock_init),
|
"_pthread_rwlock_init" => func!(crate::pthread::_pthread_rwlock_init),
|
||||||
"_pthread_rwlock_rdlock" => func!(crate::emscripten_target::_pthread_rwlock_rdlock),
|
"_pthread_rwlock_rdlock" => func!(crate::pthread::_pthread_rwlock_rdlock),
|
||||||
"_pthread_rwlock_unlock" => func!(crate::emscripten_target::_pthread_rwlock_unlock),
|
"_pthread_rwlock_unlock" => func!(crate::pthread::_pthread_rwlock_unlock),
|
||||||
"_pthread_rwlock_wrlock" => func!(crate::emscripten_target::_pthread_rwlock_wrlock),
|
"_pthread_rwlock_wrlock" => func!(crate::pthread::_pthread_rwlock_wrlock),
|
||||||
"_pthread_setcancelstate" => func!(crate::emscripten_target::_pthread_setcancelstate),
|
"_pthread_setcancelstate" => func!(crate::pthread::_pthread_setcancelstate),
|
||||||
"_pthread_setspecific" => func!(crate::emscripten_target::_pthread_setspecific),
|
"_pthread_setspecific" => func!(crate::pthread::_pthread_setspecific),
|
||||||
"_pthread_sigmask" => func!(crate::emscripten_target::_pthread_sigmask),
|
"_pthread_sigmask" => func!(crate::pthread::_pthread_sigmask),
|
||||||
"___gxx_personality_v0" => func!(crate::emscripten_target::___gxx_personality_v0),
|
"___gxx_personality_v0" => func!(crate::emscripten_target::___gxx_personality_v0),
|
||||||
"_gai_strerror" => func!(crate::env::_gai_strerror),
|
"_gai_strerror" => func!(crate::env::_gai_strerror),
|
||||||
"_getdtablesize" => func!(crate::emscripten_target::_getdtablesize),
|
"_getdtablesize" => func!(crate::emscripten_target::_getdtablesize),
|
||||||
|
195
lib/emscripten/src/pthread.rs
Normal file
195
lib/emscripten/src/pthread.rs
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
use wasmer_runtime_core::vm::Ctx;
|
||||||
|
|
||||||
|
pub fn _pthread_attr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_attr_destroy");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_attr_getstack(
|
||||||
|
_ctx: &mut Ctx,
|
||||||
|
_stackaddr: i32,
|
||||||
|
_stacksize: i32,
|
||||||
|
_other: i32,
|
||||||
|
) -> i32 {
|
||||||
|
trace!(
|
||||||
|
"emscripten::_pthread_attr_getstack({}, {}, {})",
|
||||||
|
_stackaddr, _stacksize, _other
|
||||||
|
);
|
||||||
|
// TODO: Translate from Emscripten
|
||||||
|
// HEAP32[stackaddr >> 2] = STACK_BASE;
|
||||||
|
// HEAP32[stacksize >> 2] = TOTAL_STACK;
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_attr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_attr_init({})", _a);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_attr_setstacksize(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_attr_setstacksize");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cleanup_pop(_ctx: &mut Ctx, _a: i32) -> () {
|
||||||
|
trace!("emscripten::_pthread_cleanup_pop");
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cleanup_push(_ctx: &mut Ctx, _a: i32, _b: i32) -> () {
|
||||||
|
trace!("emscripten::_pthread_cleanup_push");
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cond_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_cond_destroy");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cond_init(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_cond_init");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cond_signal(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_cond_signal");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cond_timedwait(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_cond_timedwait");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_cond_wait(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_cond_wait");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_condattr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_condattr_destroy");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_condattr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_condattr_init");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_condattr_setclock(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_condattr_setclock");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_create(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32, _d: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_create");
|
||||||
|
// 11 seems to mean "no"
|
||||||
|
11
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_detach(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_detach");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_equal(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_equal");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_exit(_ctx: &mut Ctx, _a: i32) -> () {
|
||||||
|
trace!("emscripten::_pthread_exit");
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_getattr_np(_ctx: &mut Ctx, _thread: i32, _attr: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_getattr_np({}, {})", _thread, _attr);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_getspecific(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_getspecific");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_join(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_join");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_self(_ctx: &mut Ctx) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_self");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_key_create(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_key_create");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_mutex_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_mutex_destroy");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_mutex_init(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_mutex_init");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_mutexattr_destroy(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_mutexattr_destroy");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_mutexattr_init(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_mutexattr_init");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_mutexattr_settype(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_mutexattr_settype");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_once(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_once");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_rwlock_destroy(_ctx: &mut Ctx, _rwlock: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_rwlock_destroy({})", _rwlock);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_rwlock_init(_ctx: &mut Ctx, _rwlock: i32, _attr: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_rwlock_init({}, {})", _rwlock, _attr);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_rwlock_rdlock(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_rwlock_rdlock");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_rwlock_unlock(_ctx: &mut Ctx, _a: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_rwlock_unlock");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_rwlock_wrlock(_ctx: &mut Ctx, _rwlock: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_rwlock_wrlock({})", _rwlock);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_setcancelstate(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_setcancelstate");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_setspecific(_ctx: &mut Ctx, _a: i32, _b: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_setspecific");
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn _pthread_sigmask(_ctx: &mut Ctx, _a: i32, _b: i32, _c: i32) -> i32 {
|
||||||
|
trace!("emscripten::_pthread_sigmask");
|
||||||
|
0
|
||||||
|
}
|
Reference in New Issue
Block a user