From 601a4cfbbeabc79441f05af051cf43e4d7841269 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Fri, 15 May 2020 11:20:51 -0400 Subject: [PATCH] move mmap into sysdeps The patch is relatively easy; what's not clear to me is how something like this really wants to be exported. Should `sysdeps` export a `MappedRegion` that would be backed by `VirtualAlloc` on Windows? Should `sysdeps` just export everything with their platform names and let `lucet-runtime` use conditionals to choose what to export? This patch punts on those questions for now; we're just trying to move the obvious system-dependent code into `sysdeps`. --- lucet-runtime/lucet-runtime-internals/src/alloc/tests.rs | 2 +- .../lucet-runtime-internals/src/module/sparse_page_data.rs | 2 +- lucet-runtime/lucet-runtime-internals/src/region.rs | 2 -- .../lucet-runtime-internals/src/{region => sysdeps}/mmap.rs | 0 lucet-runtime/lucet-runtime-internals/src/sysdeps/mod.rs | 6 ++++++ lucet-runtime/src/lib.rs | 2 +- 6 files changed, 9 insertions(+), 5 deletions(-) rename lucet-runtime/lucet-runtime-internals/src/{region => sysdeps}/mmap.rs (100%) diff --git a/lucet-runtime/lucet-runtime-internals/src/alloc/tests.rs b/lucet-runtime/lucet-runtime-internals/src/alloc/tests.rs index 1f5c0d01a..485ffd576 100644 --- a/lucet-runtime/lucet-runtime-internals/src/alloc/tests.rs +++ b/lucet-runtime/lucet-runtime-internals/src/alloc/tests.rs @@ -1134,4 +1134,4 @@ macro_rules! alloc_tests { } #[cfg(test)] -alloc_tests!(crate::region::mmap::MmapRegion); +alloc_tests!(crate::sysdeps::MmapRegion); diff --git a/lucet-runtime/lucet-runtime-internals/src/module/sparse_page_data.rs b/lucet-runtime/lucet-runtime-internals/src/module/sparse_page_data.rs index a9de747c8..d4efa6da2 100644 --- a/lucet-runtime/lucet-runtime-internals/src/module/sparse_page_data.rs +++ b/lucet-runtime/lucet-runtime-internals/src/module/sparse_page_data.rs @@ -67,5 +67,5 @@ macro_rules! sparse_page_data_tests { #[cfg(test)] mod tests { - sparse_page_data_tests!(crate::region::mmap::MmapRegion); + sparse_page_data_tests!(crate::sysdeps::MmapRegion); } diff --git a/lucet-runtime/lucet-runtime-internals/src/region.rs b/lucet-runtime/lucet-runtime-internals/src/region.rs index f104612e1..9bcc26985 100644 --- a/lucet-runtime/lucet-runtime-internals/src/region.rs +++ b/lucet-runtime/lucet-runtime-internals/src/region.rs @@ -1,5 +1,3 @@ -pub mod mmap; - use crate::alloc::{Alloc, AllocStrategy, Limits, Slot}; use crate::embed_ctx::CtxMap; use crate::error::Error; diff --git a/lucet-runtime/lucet-runtime-internals/src/region/mmap.rs b/lucet-runtime/lucet-runtime-internals/src/sysdeps/mmap.rs similarity index 100% rename from lucet-runtime/lucet-runtime-internals/src/region/mmap.rs rename to lucet-runtime/lucet-runtime-internals/src/sysdeps/mmap.rs diff --git a/lucet-runtime/lucet-runtime-internals/src/sysdeps/mod.rs b/lucet-runtime/lucet-runtime-internals/src/sysdeps/mod.rs index 0af38e7ff..d35f6c4eb 100644 --- a/lucet-runtime/lucet-runtime-internals/src/sysdeps/mod.rs +++ b/lucet-runtime/lucet-runtime-internals/src/sysdeps/mod.rs @@ -7,6 +7,9 @@ mod linux; #[cfg(unix)] mod unix; +#[cfg(unix)] +mod mmap; + #[cfg(target_os = "macos")] pub use macos::*; @@ -15,3 +18,6 @@ pub use linux::*; #[cfg(unix)] pub use unix::*; + +#[cfg(unix)] +pub use mmap::*; diff --git a/lucet-runtime/src/lib.rs b/lucet-runtime/src/lib.rs index b27ee0377..384b90605 100644 --- a/lucet-runtime/src/lib.rs +++ b/lucet-runtime/src/lib.rs @@ -396,8 +396,8 @@ pub use lucet_runtime_internals::instance::{ #[allow(deprecated)] pub use lucet_runtime_internals::lucet_hostcalls; pub use lucet_runtime_internals::module::{DlModule, Module}; -pub use lucet_runtime_internals::region::mmap::MmapRegion; pub use lucet_runtime_internals::region::{InstanceBuilder, Region, RegionCreate}; +pub use lucet_runtime_internals::sysdeps::MmapRegion; pub use lucet_runtime_internals::val::{UntypedRetVal, Val}; pub use lucet_runtime_internals::{lucet_hostcall, lucet_hostcall_terminate, WASM_PAGE_SIZE};