Files
wasmer/lib/emscripten/src/syscalls/windows.rs

302 lines
8.8 KiB
Rust
Raw Normal View History

use crate::utils::{copy_cstr_into_wasm, get_cstr_path};
use crate::varargs::VarArgs;
use libc::mkdir;
use libc::open;
use rand::Rng;
use std::env;
use std::ffi::CString;
use std::fs::File;
use std::io::Write;
use std::os::raw::c_int;
use wasmer_runtime_core::vm::Ctx;
2019-03-15 14:10:17 -07:00
#[allow(non_camel_case_types)]
type pid_t = c_int;
/// open
pub fn ___syscall5(ctx: &mut Ctx, which: c_int, mut varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall5 (open) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
let pathname_addr = varargs.get_str(ctx);
let real_path_owned = get_cstr_path(ctx, pathname_addr);
let real_path = if let Some(ref rp) = real_path_owned {
rp.as_c_str().as_ptr()
} else {
pathname_addr
};
let flags: i32 = varargs.get(ctx);
let mode: u32 = varargs.get(ctx);
let path_str = unsafe { std::ffi::CStr::from_ptr(real_path).to_str().unwrap() };
match path_str {
"/dev/urandom" => {
// create a fake urandom file for windows, super hacky
// put it in the temp directory so we can just forget about it
let mut tmp_dir = env::temp_dir();
tmp_dir.push("urandom");
let tmp_dir_str = tmp_dir.to_str().unwrap();
let tmp_dir_c_str = CString::new(tmp_dir_str).unwrap();
let ptr = tmp_dir_c_str.as_ptr() as *const i8;
let mut urandom_file = File::create(tmp_dir).unwrap();
// create some random bytes and put them into the file
let random_bytes = rand::thread_rng().gen::<[u8; 32]>();
2019-03-15 14:10:17 -07:00
let _ = urandom_file.write_all(&random_bytes).unwrap();
// put the file path string into wasm memory
let urandom_file_offset = unsafe { copy_cstr_into_wasm(ctx, ptr) };
let raw_pointer_to_urandom_file =
emscripten_memory_pointer!(ctx.memory(0), urandom_file_offset) as *const i8;
let fd = unsafe { open(raw_pointer_to_urandom_file, flags, mode) };
debug!(
2019-03-11 10:25:45 -07:00
"=> pathname: {}, flags: {}, mode: {} = fd: {}",
path_str, flags, mode, fd
);
fd
}
_ => {
let fd = unsafe { open(real_path, flags, mode) };
debug!(
"=> pathname: {}, flags: {}, mode: {} = fd: {}\npath: {}",
path_str, flags, mode, fd, path_str
);
fd
}
}
}
/// link
2019-03-26 19:00:09 -07:00
pub fn ___syscall9(_ctx: &mut Ctx, _which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall9 (link) {}", _which);
unimplemented!()
}
2019-03-25 16:13:41 -07:00
/// ftruncate64
pub fn ___syscall194(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
debug!("emscripten::___syscall194 - stub");
unimplemented!()
}
// chown
2019-03-15 14:10:17 -07:00
pub fn ___syscall212(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall212 (chown) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
/// access
2019-03-26 19:00:09 -07:00
pub fn ___syscall33(_ctx: &mut Ctx, _which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall33 (access) {}", _which);
unimplemented!()
}
/// nice
2019-03-26 19:00:09 -07:00
pub fn ___syscall34(_ctx: &mut Ctx, _which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall34 (nice) {}", _which);
unimplemented!()
}
// mkdir
pub fn ___syscall39(ctx: &mut Ctx, which: c_int, mut varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall39 (mkdir) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
let pathname_addr = varargs.get_str(ctx);
let real_path_owned = get_cstr_path(ctx, pathname_addr);
let real_path = if let Some(ref rp) = real_path_owned {
rp.as_c_str().as_ptr()
} else {
pathname_addr
};
unsafe { mkdir(real_path) }
}
/// dup
pub fn ___syscall41(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall41 (dup) {}", _which);
unimplemented!()
}
/// getrusage
pub fn ___syscall77(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall77 (getrusage) {}", _which);
unimplemented!()
}
/// symlink
pub fn ___syscall83(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall83 (symlink) {}", _which);
unimplemented!()
}
2019-07-01 16:50:55 -07:00
/// readlink
pub fn ___syscall85(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall85 (readlink) {}", _which);
-1
}
/// lchown
pub fn ___syscall198(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall198 (lchown) {}", _which);
unimplemented!()
}
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
/// getgid32
pub fn ___syscall200(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
debug!("emscripten::___syscall200 (getgid32)");
getgid()
}
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
// geteuid32
pub fn ___syscall201(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
debug!("emscripten::___syscall201 (geteuid32)");
geteuid()
}
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
// getegid32
pub fn ___syscall202(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
// gid_t
Squashed commit of the following: commit 62d9da4e3e02251a0f61c904e826bc06cf964ff7 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:34 2019 -0700 Fixed syscall221 commit a8fde9148d50d89616d8a85a68110b89e3273229 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 18:16:04 2019 -0700 Improved ioctl use case commit 5ad109d39838624ad84232a4c17714b885835893 Merge: 61526e2c 5cab8161 Author: Syrus <me@syrusakbary.com> Date: Sun Jul 7 17:44:25 2019 -0700 Merge branch 'command/dash' into feature/emscripten-update commit 5cab816193d47d53aabb4be4ccaf448dca5ed0b2 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 20:11:49 2019 +0200 Generic IOCTLs mapping commit 5a0dc0374cdc5a3754e3ecc82584288df640d239 Merge: 61cfed79 9d120ed3 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 17:15:02 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 61cfed7916078602eabbd4448b109f47dcfff1e8 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:04:04 2019 +0200 Fixed implementation for syscalls 200, 201 and 202 commit 91e26d1a0ee46d6f9ec4804ca13ca928d55e7bbb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:26 2019 +0200 Improved debug messages commit 53a8fbeb2a0912e928609f0afcea6ffb1e911193 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:03:04 2019 +0200 [___syscall146] Move loop out of `unsafe` zone commit d6dd3696f10f4cbb0722321bd9d06e45a9d464ac Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 13:01:31 2019 +0200 [___syscall140] Fixed types commit c827a6a99346535764e22bfb5ab9147a52a0a543 Merge: 2bc16826 5e18d04d Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Sat Jul 6 12:21:33 2019 +0200 Merge remote-tracking branch 'origin/master' into command/dash commit 2bc16826b5923dba56243fe3bd99f4be8a09c990 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:05:00 2019 +0200 Implement `getpgid` syscall commit d464954f5803e4d84b6f94dc9ef87cc577aa9c65 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:04:36 2019 +0200 [fcntl64] Replace mock for real implementation commit 3fe0183d853624bcdc968a890ac36ff7062905a7 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:03:39 2019 +0200 [ioctl] No-of for `TIOCSPGRP` command & code clean-up commit cc83ec9ac1cf1ad60748fd3bb5114a6e6e471d92 Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:47 2019 +0200 [___syscall5] debug messages commit 91587c8bde9d2b02402a7843f37eee22322d86fb Author: Jesús Leganés-Combarro 'piranna <piranna@gmail.com> Date: Thu Jul 4 07:02:20 2019 +0200 [___syscall57] debug messages
2019-07-07 19:35:09 -07:00
debug!("emscripten::___syscall202 (getegid32)");
getegid()
}
/// getgroups
pub fn ___syscall205(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall205 (getgroups) {}", _which);
unimplemented!()
}
/// madvise
pub fn ___syscall219(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall212 (chown) {}", _which);
unimplemented!()
}
/// dup3
2019-03-15 14:10:17 -07:00
pub fn ___syscall330(_ctx: &mut Ctx, _which: c_int, mut _varargs: VarArgs) -> pid_t {
debug!("emscripten::___syscall330 (dup3)");
-1
}
/// ioctl
2019-03-15 14:10:17 -07:00
pub fn ___syscall54(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall54 (ioctl) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
2019-03-25 11:12:34 -07:00
/// fchmod
pub fn ___syscall94(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall118 (fchmod) {}", _which);
unimplemented!()
}
// socketcall
#[allow(clippy::cast_ptr_alignment)]
2019-03-15 14:10:17 -07:00
pub fn ___syscall102(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall102 (socketcall) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
2019-03-25 11:12:34 -07:00
/// fsync
pub fn ___syscall118(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall118 (fsync) {}", _which);
unimplemented!()
}
// pread
2019-03-15 14:10:17 -07:00
pub fn ___syscall180(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall180 (pread) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
// pwrite
2019-03-15 14:10:17 -07:00
pub fn ___syscall181(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall181 (pwrite) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
/// wait4
#[allow(clippy::cast_ptr_alignment)]
2019-03-15 14:10:17 -07:00
pub fn ___syscall114(_ctx: &mut Ctx, _which: c_int, mut _varargs: VarArgs) -> pid_t {
debug!("emscripten::___syscall114 (wait4)");
-1
}
// select
#[allow(clippy::cast_ptr_alignment)]
2019-03-15 14:10:17 -07:00
pub fn ___syscall142(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall142 (newselect) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
/// fdatasync
pub fn ___syscall148(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall148 (fdatasync) {}", _which);
unimplemented!();
}
// setpgid
2019-03-15 14:10:17 -07:00
pub fn ___syscall57(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall57 (setpgid) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
/// uname
// NOTE: Wondering if we should return custom utsname, like Emscripten.
2019-03-15 14:10:17 -07:00
pub fn ___syscall122(_ctx: &mut Ctx, which: c_int, mut _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall122 (uname) {}", which);
2019-03-15 14:10:17 -07:00
#[cfg(not(feature = "debug"))]
let _ = which;
-1
}
2019-03-25 11:12:34 -07:00
2019-07-01 16:36:30 -07:00
/// poll
pub fn ___syscall168(_ctx: &mut Ctx, _which: i32, _varargs: VarArgs) -> i32 {
debug!("emscripten::___syscall168(poll) - stub");
-1
}
2019-03-25 16:13:41 -07:00
/// lstat64
pub fn ___syscall196(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
debug!("emscripten::___syscall196 (lstat64) - stub");
-1
}
2019-06-13 20:46:05 +02:00
// getuid
pub fn ___syscall199(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
debug!("emscripten::___syscall199 (getuid)");
-1
}
// getdents
pub fn ___syscall220(_ctx: &mut Ctx, _one: i32, _two: i32) -> i32 {
debug!("emscripten::___syscall220");
-1
}
2019-03-25 11:12:34 -07:00
/// fchown
pub fn ___syscall207(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall207 (fchown) {}", _which);
unimplemented!()
}
/// fallocate
pub fn ___syscall324(_ctx: &mut Ctx, _which: c_int, _varargs: VarArgs) -> c_int {
debug!("emscripten::___syscall324 (fallocate) {}", _which);
unimplemented!()
}