Skip to content

Commit 82b9772

Browse files
committed
[host] added GuestEnvironment struct
The GuestEnvironment struct contains two blobs of data. One identifiable as a guest binary, and one undifferentiated guest blob. This GuestEnvironment is now used to create a new sandbox in place of just a guest binary. There are TryFrom impls to be able to convert from a guest binary to a GuestEnvironment, so this isn't a breaking change. Signed-off-by: danbugs <[email protected]>
1 parent 1c7fc4d commit 82b9772

File tree

26 files changed

+184
-131
lines changed

26 files changed

+184
-131
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ use hyperlight_host::{UninitializedSandbox, MultiUseSandbox, func::HostFunction0
4141
fn main() -> hyperlight_host::Result<()> {
4242
// Create an uninitialized sandbox with a guest binary
4343
let mut uninitialized_sandbox = UninitializedSandbox::new(
44-
hyperlight_host::GuestBinary::FilePath(hyperlight_testing::simple_guest_as_string().unwrap()),
44+
hyperlight_host::GuestBlob::FilePath(hyperlight_testing::simple_guest_as_string().unwrap()),
4545
None // default configuration
4646
)?;
4747

fuzz/fuzz_targets/guest_call.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ limitations under the License.
1919
use std::sync::{Mutex, OnceLock};
2020

2121
use hyperlight_host::func::{ParameterValue, ReturnType};
22-
use hyperlight_host::sandbox::uninitialized::GuestBinary;
22+
use hyperlight_host::sandbox::uninitialized::GuestBlob;
2323
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2424
use hyperlight_host::sandbox_state::transition::Noop;
2525
use hyperlight_host::{MultiUseSandbox, UninitializedSandbox};
@@ -33,7 +33,7 @@ fuzz_target!(
3333
init: {
3434

3535
let u_sbox = UninitializedSandbox::new(
36-
GuestBinary::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
36+
GuestBlob::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
3737
None,
3838
)
3939
.unwrap();

fuzz/fuzz_targets/host_call.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ limitations under the License.
1919
use std::sync::{Mutex, OnceLock};
2020

2121
use hyperlight_host::func::{ParameterValue, ReturnType};
22-
use hyperlight_host::sandbox::uninitialized::GuestBinary;
22+
use hyperlight_host::sandbox::uninitialized::GuestBlob;
2323
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2424
use hyperlight_host::sandbox_state::transition::Noop;
2525
use hyperlight_host::{HyperlightError, MultiUseSandbox, UninitializedSandbox};
@@ -32,7 +32,7 @@ static SANDBOX: OnceLock<Mutex<MultiUseSandbox>> = OnceLock::new();
3232
fuzz_target!(
3333
init: {
3434
let u_sbox = UninitializedSandbox::new(
35-
GuestBinary::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
35+
GuestBlob::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
3636
None
3737
)
3838
.unwrap();

fuzz/fuzz_targets/host_print.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
use std::sync::{Mutex, OnceLock};
44

5-
use hyperlight_host::sandbox::uninitialized::GuestBinary;
5+
use hyperlight_host::sandbox::uninitialized::GuestBlob;
66
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
77
use hyperlight_host::sandbox_state::transition::Noop;
88
use hyperlight_host::{MultiUseSandbox, UninitializedSandbox};
@@ -18,7 +18,7 @@ static SANDBOX: OnceLock<Mutex<MultiUseSandbox>> = OnceLock::new();
1818
fuzz_target!(
1919
init: {
2020
let u_sbox = UninitializedSandbox::new(
21-
GuestBinary::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
21+
GuestBlob::FilePath(simple_guest_for_fuzzing_as_string().expect("Guest Binary Missing")),
2222
None,
2323
)
2424
.unwrap();

src/hyperlight_host/benches/benchmarks.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ limitations under the License.
1515
*/
1616

1717
use criterion::{Criterion, criterion_group, criterion_main};
18-
use hyperlight_host::GuestBinary;
18+
use hyperlight_host::GuestBlob;
1919
use hyperlight_host::sandbox::{
2020
Callable, MultiUseSandbox, SandboxConfiguration, UninitializedSandbox,
2121
};
@@ -25,7 +25,7 @@ use hyperlight_testing::simple_guest_as_string;
2525

2626
fn create_uninit_sandbox() -> UninitializedSandbox {
2727
let path = simple_guest_as_string().unwrap();
28-
UninitializedSandbox::new(GuestBinary::FilePath(path), None).unwrap()
28+
UninitializedSandbox::new(GuestBlob::FilePath(path), None).unwrap()
2929
}
3030

3131
fn create_multiuse_sandbox() -> MultiUseSandbox {
@@ -70,7 +70,7 @@ fn guest_call_benchmark(c: &mut Criterion) {
7070
config.set_heap_size(SIZE as u64 * 15);
7171

7272
let sandbox = UninitializedSandbox::new(
73-
GuestBinary::FilePath(simple_guest_as_string().unwrap()),
73+
GuestBlob::FilePath(simple_guest_as_string().unwrap()),
7474
Some(config),
7575
)
7676
.unwrap();

src/hyperlight_host/examples/func_ctx/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ use hyperlight_host::func::call_ctx::MultiUseGuestCallContext;
1818
use hyperlight_host::sandbox::{Callable, MultiUseSandbox, UninitializedSandbox};
1919
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2020
use hyperlight_host::sandbox_state::transition::Noop;
21-
use hyperlight_host::{GuestBinary, Result};
21+
use hyperlight_host::{GuestBlob, Result};
2222
use hyperlight_testing::simple_guest_as_string;
2323

2424
fn main() {
2525
// create a new `MultiUseSandbox` configured to run the `simpleguest.exe`
2626
// test guest binary
2727
let sbox1: MultiUseSandbox = {
2828
let path = simple_guest_as_string().unwrap();
29-
let u_sbox = UninitializedSandbox::new(GuestBinary::FilePath(path), None).unwrap();
29+
let u_sbox = UninitializedSandbox::new(GuestBlob::FilePath(path), None).unwrap();
3030
u_sbox.evolve(Noop::default())
3131
}
3232
.unwrap();

src/hyperlight_host/examples/guest-debugging/main.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ fn main() -> hyperlight_host::Result<()> {
4343

4444
// Create an uninitialized sandbox with a guest binary
4545
let mut uninitialized_sandbox = UninitializedSandbox::new(
46-
hyperlight_host::GuestBinary::FilePath(
47-
hyperlight_testing::simple_guest_as_string().unwrap(),
48-
),
46+
hyperlight_host::GuestBlob::FilePath(hyperlight_testing::simple_guest_as_string().unwrap()),
4947
cfg, // sandbox configuration
5048
)?;
5149

src/hyperlight_host/examples/hello-world/main.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ use hyperlight_host::{MultiUseSandbox, UninitializedSandbox};
2323
fn main() -> hyperlight_host::Result<()> {
2424
// Create an uninitialized sandbox with a guest binary
2525
let mut uninitialized_sandbox = UninitializedSandbox::new(
26-
hyperlight_host::GuestBinary::FilePath(
27-
hyperlight_testing::simple_guest_as_string().unwrap(),
28-
),
26+
hyperlight_host::GuestBlob::FilePath(hyperlight_testing::simple_guest_as_string().unwrap()),
2927
None, // default configuration
3028
)?;
3129

src/hyperlight_host/examples/logging/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use hyperlight_host::sandbox::Callable;
2222
use hyperlight_host::sandbox::uninitialized::UninitializedSandbox;
2323
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2424
use hyperlight_host::sandbox_state::transition::Noop;
25-
use hyperlight_host::{GuestBinary, MultiUseSandbox, Result};
25+
use hyperlight_host::{GuestBlob, MultiUseSandbox, Result};
2626
use hyperlight_testing::simple_guest_as_string;
2727

2828
fn fn_writer(_msg: String) -> Result<i32> {
@@ -44,7 +44,7 @@ fn main() -> Result<()> {
4444
let path = hyperlight_guest_path.clone();
4545
let res: Result<()> = {
4646
// Create a new sandbox.
47-
let mut usandbox = UninitializedSandbox::new(GuestBinary::FilePath(path), None)?;
47+
let mut usandbox = UninitializedSandbox::new(GuestBlob::FilePath(path), None)?;
4848
usandbox.register_print(fn_writer)?;
4949

5050
// Initialize the sandbox.
@@ -78,7 +78,7 @@ fn main() -> Result<()> {
7878

7979
// Create a new sandbox.
8080
let usandbox =
81-
UninitializedSandbox::new(GuestBinary::FilePath(hyperlight_guest_path.clone()), None)?;
81+
UninitializedSandbox::new(GuestBlob::FilePath(hyperlight_guest_path.clone()), None)?;
8282

8383
// Initialize the sandbox.
8484

src/hyperlight_host/examples/metrics/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use hyperlight_host::sandbox::Callable;
2222
use hyperlight_host::sandbox::uninitialized::UninitializedSandbox;
2323
use hyperlight_host::sandbox_state::sandbox::EvolvableSandbox;
2424
use hyperlight_host::sandbox_state::transition::Noop;
25-
use hyperlight_host::{GuestBinary, MultiUseSandbox, Result};
25+
use hyperlight_host::{GuestBlob, MultiUseSandbox, Result};
2626
use hyperlight_testing::simple_guest_as_string;
2727

2828
// Run this rust example with the flag --features "function_call_metrics" to enable more metrics to be emitted
@@ -55,7 +55,7 @@ fn do_hyperlight_stuff() {
5555
let path = hyperlight_guest_path.clone();
5656
let handle = spawn(move || -> Result<()> {
5757
// Create a new sandbox.
58-
let mut usandbox = UninitializedSandbox::new(GuestBinary::FilePath(path), None)?;
58+
let mut usandbox = UninitializedSandbox::new(GuestBlob::FilePath(path), None)?;
5959
usandbox.register_print(fn_writer)?;
6060

6161
// Initialize the sandbox.
@@ -89,7 +89,7 @@ fn do_hyperlight_stuff() {
8989

9090
// Create a new sandbox.
9191
let usandbox =
92-
UninitializedSandbox::new(GuestBinary::FilePath(hyperlight_guest_path.clone()), None)
92+
UninitializedSandbox::new(GuestBlob::FilePath(hyperlight_guest_path.clone()), None)
9393
.expect("Failed to create UninitializedSandbox");
9494

9595
// Initialize the sandbox.

0 commit comments

Comments
 (0)