framebuffer wip

This commit is contained in:
Mark McCaskey
2019-08-30 15:35:07 -07:00
parent 569d0386a9
commit 85358a84ae
10 changed files with 841 additions and 28 deletions

View File

@ -39,6 +39,16 @@ pub fn generate_import_object(
envs: Vec<Vec<u8>>,
preopened_files: Vec<String>,
mapped_dirs: Vec<(String, PathBuf)>,
) -> ImportObject {
generate_import_object_with_fs_setup(args, envs, preopened_files, mapped_dirs, None)
}
pub fn generate_import_object_with_fs_setup(
args: Vec<Vec<u8>>,
envs: Vec<Vec<u8>>,
preopened_files: Vec<String>,
mapped_dirs: Vec<(String, PathBuf)>,
setup_fs: Option<Box<dyn Fn(&mut WasiFs) -> Result<(), String>>>,
) -> ImportObject {
let state_gen = move || {
fn state_destructor(data: *mut c_void) {
@ -47,8 +57,13 @@ pub fn generate_import_object(
}
}
let mut fs = WasiFs::new(&preopened_files, &mapped_dirs).unwrap();
if let Some(sfn) = &setup_fs {
sfn(&mut fs).unwrap();
}
let state = Box::new(WasiState {
fs: WasiFs::new(&preopened_files, &mapped_dirs).unwrap(),
fs,
args: &args[..],
envs: &envs[..],
});