diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index a5df1f5d0..c741cbcde 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -76,6 +76,7 @@ This repository requires commits to be signed you should ensure that any commits - `fuzz` - contains the fuzzing tests for the project - `src/hyperlight_common/` - contains the common code shared between the host and guest - `src/hyperlight_guest/` - contains the hyperlight-guest library code +- `src/hyperlight_guest_bin/` - contains the hyperlight-guest-bin library code - `src/hyperlight_host/` - contains the hyperlight-host library code - `src/hyperlight_guest_capi/` - contains the hyperlight-guest C library code - `src/hyperlight_testing/` - contains the shared code for tests diff --git a/.github/workflows/CargoPublish.yml b/.github/workflows/CargoPublish.yml index 9f32cc7cc..d8f165c38 100644 --- a/.github/workflows/CargoPublish.yml +++ b/.github/workflows/CargoPublish.yml @@ -45,7 +45,7 @@ jobs: VERSION="${{ github.ref }}" VERSION="${VERSION#refs/heads/release/v}" fi - ./dev/verify-version.sh "$VERSION" hyperlight-common hyperlight-guest hyperlight-host + ./dev/verify-version.sh "$VERSION" hyperlight-common hyperlight-guest hyperlight-guest-bin hyperlight-host - name: Publish hyperlight-common continue-on-error: ${{ inputs.dry_run }} @@ -59,6 +59,12 @@ jobs: env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_PUBLISH_TOKEN }} + - name: Publish hyperlight-guest-bin + continue-on-error: ${{ inputs.dry_run }} + run: cargo publish --manifest-path ./src/hyperlight_guest_bin/Cargo.toml ${{ inputs.dry_run && '--dry-run' || '' }} + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_PUBLISH_TOKEN }} + - name: Publish hyperlight-host continue-on-error: ${{ inputs.dry_run }} run: cargo publish --manifest-path ./src/hyperlight_host/Cargo.toml ${{ inputs.dry_run && '--dry-run' || '' }} diff --git a/.github/workflows/dep_rust.yml b/.github/workflows/dep_rust.yml index c182971ce..5736880e4 100644 --- a/.github/workflows/dep_rust.yml +++ b/.github/workflows/dep_rust.yml @@ -93,7 +93,7 @@ jobs: run: just build ${{ matrix.config }} - name: Verify MSRV - run: ./dev/verify-msrv.sh hyperlight-host hyperlight-guest hyperlight-common + run: ./dev/verify-msrv.sh hyperlight-host hyperlight-guest hyperlight-guest-bin hyperlight-common - name: Run Rust tests env: diff --git a/Cargo.lock b/Cargo.lock index b66f952e3..d3dd1226b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1168,13 +1168,21 @@ name = "hyperlight-guest" version = "0.5.0" dependencies = [ "anyhow", + "hyperlight-common", + "serde_json", +] + +[[package]] +name = "hyperlight-guest-bin" +version = "0.5.0" +dependencies = [ "buddy_system_allocator", "cc", "cfg-if", "glob", "hyperlight-common", + "hyperlight-guest", "log", - "serde_json", "spin 0.10.0", ] @@ -1268,6 +1276,7 @@ dependencies = [ "cbindgen", "hyperlight-common", "hyperlight-guest", + "hyperlight-guest-bin", "log", ] diff --git a/Cargo.toml b/Cargo.toml index 300ae2a26..099d9000c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,8 @@ members = [ "src/hyperlight_host", "src/hyperlight_guest_capi", "src/hyperlight_testing", - "fuzz", + "fuzz", + "src/hyperlight_guest_bin", ] # Guests have custom linker flags, so we need to exclude them from the workspace exclude = [ @@ -33,6 +34,7 @@ readme = "README.md" hyperlight-common = { path = "src/hyperlight_common", version = "0.5.0", default-features = false } hyperlight-host = { path = "src/hyperlight_host", version = "0.5.0", default-features = false } hyperlight-guest = { path = "src/hyperlight_guest", version = "0.5.0", default-features = false } +hyperlight-guest-bin = { path = "src/hyperlight_guest_bin", version = "0.5.0", default-features = false } hyperlight-testing = { path = "src/hyperlight_testing", default-features = false } [workspace.lints.rust] diff --git a/Justfile b/Justfile index 634341f0e..f7e76c6df 100644 --- a/Justfile +++ b/Justfile @@ -153,7 +153,7 @@ clippy-apply-fix-windows: # Verify Minimum Supported Rust Version verify-msrv: - ./dev/verify-msrv.sh hyperlight-host hyperlight-guest hyperlight-common + ./dev/verify-msrv.sh hyperlight-host hyperlight-guest hyperlight-guest-lib hyperlight-common ##################### ### RUST EXAMPLES ### @@ -175,7 +175,7 @@ run-rust-examples-linux target=default-target features="": (run-rust-examples ta ######################### tar-headers: (build-rust-capi) # build-rust-capi is a dependency because we need the hyperlight_guest.h to be built - tar -zcvf include.tar.gz -C {{root}}/src/hyperlight_guest/third_party/ musl/include musl/arch/x86_64 printf/printf.h -C {{root}}/src/hyperlight_guest_capi include + tar -zcvf include.tar.gz -C {{root}}/src/hyperlight_guest_bin/third_party/ musl/include musl/arch/x86_64 printf/printf.h -C {{root}}/src/hyperlight_guest_capi include tar-static-lib: (build-rust-capi "release") (build-rust-capi "debug") tar -zcvf hyperlight-guest-c-api-linux.tar.gz -C {{root}}/target/x86_64-unknown-none/ release/libhyperlight_guest_capi.a -C {{root}}/target/x86_64-unknown-none/ debug/libhyperlight_guest_capi.a diff --git a/README.md b/README.md index 210cc05d2..e88bb3f19 100644 --- a/README.md +++ b/README.md @@ -87,11 +87,9 @@ use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result_from_int; use hyperlight_guest::error::{HyperlightGuestError, Result}; -use hyperlight_guest::guest_function_definition::GuestFunctionDefinition; -use hyperlight_guest::guest_function_register::register_function; -use hyperlight_guest::host_function_call::{ - call_host_function, get_host_value_return_as_int, -}; +use hyperlight_guest_bin::guest_function::definition::GuestFunctionDefinition; +use hyperlight_guest_bin::guest_function::register::register_function; +use hyperlight_guest_bin::host_comm::{call_host_function, call_host_function_without_returning_result}; fn print_output(function_call: &FunctionCall) -> Result> { if let ParameterValue::String(message) = function_call.parameters.clone().unwrap()[0].clone() { @@ -145,9 +143,9 @@ the [./src/tests/rust_guests](./src/tests/rust_guests) directory for Rust guests - [src/hyperlight_host](./src/hyperlight_host) - This is the Rust Hyperlight host library. - Hyperlight Guest Libraries (i.e., the ones to make it easier to create guests that run inside the VMs) - - [src/hyperlight_guest](./src/hyperlight_guest) - This is the Rust Hyperlight guest library. - - [src/hyperlight_guest_capi](./src/hyperlight_guest_capi) - This is the C compatible wrapper for the Hyperlight - guest library. + - [src/hyperlight_guest](./src/hyperlight_guest) - The core Rust library for Hyperlight guests. It provides only the essential building blocks for interacting with the host environment, including the VM exit mechanism (`outb`), abstractions for calling host functions and receiving return values, and the input/output stacks used for guest-host communication. + - [src/hyperlight_guest_bin](./src/hyperlight_guest_bin/) - An extension to the core Rust library for Hyperlight guests. It contains more opinionated components (e.g., panic handler, heap initialization, musl-specific imports, logging, and exception handling). + - [src/hyperlight_guest_capi](./src/hyperlight_guest_capi) - A C-compatible wrapper around `hyperlight_guest_bin`, exposing its core functionality for use in C programs and other languages via FFI. - Hyperlight Common (functionality used by both the host and the guest) - [src/hyperlight_common](./src/hyperlight_common) diff --git a/c.just b/c.just index c40fde974..d83776cc5 100644 --- a/c.just +++ b/c.just @@ -3,7 +3,7 @@ mkdir := if os() == "windows" { "mkdir -f -p" } else { "mkdir -p"} # Elf options # We don't support stack protectors at the moment, but Arch Linux clang auto-enables them for -linux platforms, so explicitly disable them. c-compile-options-elf := '-nobuiltininc -H --target=x86_64-unknown-linux-none -fno-stack-protector -fstack-clash-protection -mstack-probe-size=4096 -fPIC' -c-include-flags-elf := "-I " + root / "src/hyperlight_guest_capi/include/" + " -I " + root / "src/hyperlight_guest/third_party/musl/include/" + " -I " + root / "src/hyperlight_guest/third_party/musl/arch/x86_64" + " -I " + root / "src/hyperlight_guest/third_party/printf" +c-include-flags-elf := "-I " + root / "src/hyperlight_guest_capi/include/" + " -I " + root / "src/hyperlight_guest_bin/third_party/musl/include/" + " -I " + root / "src/hyperlight_guest_bin/third_party/musl/arch/x86_64" + " -I " + root / "src/hyperlight_guest_bin/third_party/printf" c-linker-options-elf := '--entry "entrypoint" --nostdlib -pie' c-flags-debug-elf := '-O0' c-flags-release-elf := '-O3' diff --git a/dev/verify-msrv.sh b/dev/verify-msrv.sh index bc72a7fa6..1b697fd13 100755 --- a/dev/verify-msrv.sh +++ b/dev/verify-msrv.sh @@ -6,7 +6,7 @@ for CRATE in "$@"; do if ! rustup toolchain list | grep -q "$VERSION"; then rustup --quiet toolchain install "$VERSION" --no-self-update --profile minimal fi - if [[ "$CRATE" == "hyperlight-guest" ]]; then + if [[ "$CRATE" == "hyperlight-guest" || "$CRATE" == "hyperlight-guest-bin" ]]; then TARGET="x86_64-unknown-none" rustup target add "$TARGET" --toolchain "$VERSION" >/dev/null if cargo +"$VERSION" check --quiet -p "$CRATE" --target "$TARGET"; then diff --git a/docs/how-to-build-a-hyperlight-guest-binary.md b/docs/how-to-build-a-hyperlight-guest-binary.md index 1169ed2e7..a76e43d4b 100644 --- a/docs/how-to-build-a-hyperlight-guest-binary.md +++ b/docs/how-to-build-a-hyperlight-guest-binary.md @@ -18,7 +18,7 @@ binary can be used with Hyperlight: ## Rust guest binary In the case of a binary that is written in Rust, one needs to make use of the -Hyperlight crate, `hyperlight_guest` that contains the types and APIs that enable +Hyperlight crate, `hyperlight_guest` and `hyperlight_guest_bin` that contains the types and APIs that enable the guest to: - register functions that can be called by the host application - call host functions that have been registered by the host. diff --git a/docs/how-to-make-releases.md b/docs/how-to-make-releases.md index 1ca900311..87595d3e1 100644 --- a/docs/how-to-make-releases.md +++ b/docs/how-to-make-releases.md @@ -55,6 +55,7 @@ After the previous CI job runs to create the new release branch, go to the ["Cre When this job is done, a new [GitHub release](https://github.com/hyperlight-dev/hyperlight/releases) will be created for you. This job also publishes the following rust packages to the crates.io: - `hyperlight-common` - `hyperlight-guest` +- `hyperlight-guest-bin` - `hyperlight-host` ## Patching a release diff --git a/fuzz/fuzz_targets/guest_call.rs b/fuzz/fuzz_targets/guest_call.rs index e3b3dd398..2e0fcee00 100644 --- a/fuzz/fuzz_targets/guest_call.rs +++ b/fuzz/fuzz_targets/guest_call.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/fuzz/fuzz_targets/host_call.rs b/fuzz/fuzz_targets/host_call.rs index 2e7fe4bd6..bdd8ad760 100644 --- a/fuzz/fuzz_targets/host_call.rs +++ b/fuzz/fuzz_targets/host_call.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/function_call.rs b/src/hyperlight_common/src/flatbuffer_wrappers/function_call.rs index 987fb369a..74cda6679 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/function_call.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/function_call.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/function_types.rs b/src/hyperlight_common/src/flatbuffer_wrappers/function_types.rs index f0e3effb5..2c22364f7 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/function_types.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/function_types.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/guest_error.rs b/src/hyperlight_common/src/flatbuffer_wrappers/guest_error.rs index e39586af1..2b0efa991 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/guest_error.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/guest_error.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_data.rs b/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_data.rs index 36092805c..f005489c5 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_data.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_data.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_level.rs b/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_level.rs index 9ed83d205..8de346eb1 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_level.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/guest_log_level.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/mod.rs b/src/hyperlight_common/src/flatbuffer_wrappers/mod.rs index 39dc9b9cd..424ade97d 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/mod.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/flatbuffer_wrappers/util.rs b/src/hyperlight_common/src/flatbuffer_wrappers/util.rs index 0e387b03a..6d25752dc 100644 --- a/src/hyperlight_common/src/flatbuffer_wrappers/util.rs +++ b/src/hyperlight_common/src/flatbuffer_wrappers/util.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/lib.rs b/src/hyperlight_common/src/lib.rs index 590da589b..ef907dfaa 100644 --- a/src/hyperlight_common/src/lib.rs +++ b/src/hyperlight_common/src/lib.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_common/src/mem.rs b/src/hyperlight_common/src/mem.rs index 36d01e707..f25e37085 100644 --- a/src/hyperlight_common/src/mem.rs +++ b/src/hyperlight_common/src/mem.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_guest/Cargo.toml b/src/hyperlight_guest/Cargo.toml index a9499e93d..7178cfa10 100644 --- a/src/hyperlight_guest/Cargo.toml +++ b/src/hyperlight_guest/Cargo.toml @@ -1,6 +1,5 @@ [package] name = "hyperlight-guest" -links = "c" version.workspace = true edition.workspace = true rust-version.workspace = true @@ -12,20 +11,7 @@ description = """ Library to build guest applications for hyperlight. """ -[features] -default = ["libc", "printf"] -libc = [] # compile musl libc -printf = [] # compile printf - [dependencies] anyhow = { version = "1.0.98", default-features = false } serde_json = { version = "1.0", default-features = false, features = ["alloc"] } -buddy_system_allocator = "0.11.0" hyperlight-common = { workspace = true } -spin = "0.10.0" -log = { version = "0.4", default-features = false } - -[build-dependencies] -cc = "1.2" -cfg-if = "1.0" -glob = "0.3.2" \ No newline at end of file diff --git a/src/hyperlight_guest/src/error.rs b/src/hyperlight_guest/src/error.rs index 07bffa049..db7e01924 100644 --- a/src/hyperlight_guest/src/error.rs +++ b/src/hyperlight_guest/src/error.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_guest/src/exit.rs b/src/hyperlight_guest/src/exit.rs new file mode 100644 index 000000000..b09d5e180 --- /dev/null +++ b/src/hyperlight_guest/src/exit.rs @@ -0,0 +1,100 @@ +/* +Copyright 2025 The Hyperlight Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +use core::arch::asm; +use core::ffi::{c_char, CStr}; + +use hyperlight_common::outb::OutBAction; + +/// Halt the execution of the guest and returns control to the host. +#[inline(never)] +pub fn halt() { + unsafe { asm!("hlt", options(nostack)) } +} + +/// Exits the VM with an Abort OUT action and code 0. +#[unsafe(no_mangle)] +pub extern "C" fn abort() -> ! { + abort_with_code(&[0, 0xFF]) +} + +/// Exits the VM with an Abort OUT action and a specific code. +pub fn abort_with_code(code: &[u8]) -> ! { + outb(OutBAction::Abort as u16, code); + outb(OutBAction::Abort as u16, &[0xFF]); // send abort terminator (if not included in code) + unreachable!() +} + +/// Aborts the program with a code and a message. +/// +/// # Safety +/// This function is unsafe because it dereferences a raw pointer. +pub unsafe fn abort_with_code_and_message(code: &[u8], message_ptr: *const c_char) -> ! { + unsafe { + // Step 1: Send abort code (typically 1 byte, but `code` allows flexibility) + outb(OutBAction::Abort as u16, code); + + // Step 2: Convert the C string to bytes + let message_bytes = CStr::from_ptr(message_ptr).to_bytes(); // excludes null terminator + + // Step 3: Send the message itself in chunks + outb(OutBAction::Abort as u16, message_bytes); + + // Step 4: Send abort terminator to signal completion (e.g., 0xFF) + outb(OutBAction::Abort as u16, &[0xFF]); + + // This function never returns + unreachable!() + } +} + +/// OUT bytes to the host through multiple exits. +pub(crate) fn outb(port: u16, data: &[u8]) { + unsafe { + let mut i = 0; + while i < data.len() { + let remaining = data.len() - i; + let chunk_len = remaining.min(3); + let mut chunk = [0u8; 4]; + chunk[0] = chunk_len as u8; + chunk[1..1 + chunk_len].copy_from_slice(&data[i..i + chunk_len]); + let val = u32::from_le_bytes(chunk); + out32(port, val); + i += chunk_len; + } + } +} + +/// OUT function for sending a 32-bit value to the host. +pub(crate) unsafe fn out32(port: u16, val: u32) { + unsafe { + asm!("out dx, eax", in("dx") port, in("eax") val, options(preserves_flags, nomem, nostack)); + } +} + +/// Prints a message using `OutBAction::DebugPrint`. It transmits bytes of a message +/// through several VMExists and, with such, it is slower than +/// `print_output_with_host_print`. +/// +/// This function should be used in debug mode only. This function does not +/// require memory to be setup to be used. +pub fn debug_print(msg: &str) { + for byte in msg.bytes() { + unsafe { + out32(OutBAction::DebugPrint as u16, byte as u32); + } + } +} diff --git a/src/hyperlight_guest/src/guest_handle/handle.rs b/src/hyperlight_guest/src/guest_handle/handle.rs new file mode 100644 index 000000000..c18ba3540 --- /dev/null +++ b/src/hyperlight_guest/src/guest_handle/handle.rs @@ -0,0 +1,48 @@ +/* +Copyright 2025 The Hyperlight Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +use hyperlight_common::mem::HyperlightPEB; + +/// A guest handle holds the `HyperlightPEB` and enables the guest to perform +/// operations like: +/// - calling host functions, +/// - accessing shared input and output buffers, +/// - writing errors, +/// - etc. +/// +/// Guests are expected to initialize this and store it. For example, you +/// could store it in a global variable. +#[derive(Debug, Clone, Copy)] +pub struct GuestHandle { + peb: Option<*mut HyperlightPEB>, +} + +impl GuestHandle { + /// Creates a new uninitialized guest state. + pub const fn new() -> Self { + Self { peb: None } + } + + /// Initializes the guest state with a given PEB pointer. + pub fn init(peb: *mut HyperlightPEB) -> Self { + Self { peb: Some(peb) } + } + + /// Returns the PEB pointer + pub fn peb(&self) -> Option<*mut HyperlightPEB> { + self.peb + } +} diff --git a/src/hyperlight_guest/src/guest_handle/host_comm.rs b/src/hyperlight_guest/src/guest_handle/host_comm.rs new file mode 100644 index 000000000..4614cd775 --- /dev/null +++ b/src/hyperlight_guest/src/guest_handle/host_comm.rs @@ -0,0 +1,147 @@ +/* +Copyright 2025 The Hyperlight Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +use alloc::format; +use alloc::string::ToString; +use alloc::vec::Vec; + +use hyperlight_common::flatbuffer_wrappers::function_call::{FunctionCall, FunctionCallType}; +use hyperlight_common::flatbuffer_wrappers::function_types::{ + ParameterValue, ReturnType, ReturnValue, +}; +use hyperlight_common::flatbuffer_wrappers::guest_error::{ErrorCode, GuestError}; +use hyperlight_common::flatbuffer_wrappers::guest_log_data::GuestLogData; +use hyperlight_common::flatbuffer_wrappers::guest_log_level::LogLevel; +use hyperlight_common::outb::OutBAction; + +use super::handle::GuestHandle; +use crate::error::{HyperlightGuestError, Result}; +use crate::exit::out32; + +impl GuestHandle { + /// Get a return value from a host function call. + /// This usually requires a host function to be called first using + /// `call_host_function_internal`. + /// + /// When calling `call_host_function`, this function is called + /// internally to get the return value. + pub fn get_host_return_value>(&self) -> Result { + let return_value = self + .try_pop_shared_input_data_into::() + .expect("Unable to deserialize a return value from host"); + T::try_from(return_value).map_err(|_| { + HyperlightGuestError::new( + ErrorCode::GuestError, + format!( + "Host return value was not a {} as expected", + core::any::type_name::() + ), + ) + }) + } + + /// Call a host function without reading its return value from shared mem. + /// This is used by both the Rust and C APIs to reduce code duplication. + /// + /// Note: The function return value must be obtained by calling + /// `get_host_return_value`. + pub fn call_host_function_without_returning_result( + &self, + function_name: &str, + parameters: Option>, + return_type: ReturnType, + ) -> Result<()> { + let host_function_call = FunctionCall::new( + function_name.to_string(), + parameters, + FunctionCallType::Host, + return_type, + ); + + let host_function_call_buffer: Vec = host_function_call + .try_into() + .expect("Unable to serialize host function call"); + + self.push_shared_output_data(host_function_call_buffer)?; + + unsafe { + out32(OutBAction::CallFunction as u16, 0); + } + + Ok(()) + } + + /// Call a host function with the given parameters and return type. + /// This function serializes the function call and its parameters, + /// sends it to the host, and then retrieves the return value. + /// + /// The return value is deserialized into the specified type `T`. + pub fn call_host_function>( + &self, + function_name: &str, + parameters: Option>, + return_type: ReturnType, + ) -> Result { + self.call_host_function_without_returning_result(function_name, parameters, return_type)?; + self.get_host_return_value::() + } + + /// Write an error to the shared output data buffer. + pub fn write_error(&self, error_code: ErrorCode, message: Option<&str>) { + let guest_error: GuestError = GuestError::new( + error_code.clone(), + message.map_or("".to_string(), |m| m.to_string()), + ); + let guest_error_buffer: Vec = (&guest_error) + .try_into() + .expect("Invalid guest_error_buffer, could not be converted to a Vec"); + + if let Err(e) = self.push_shared_output_data(guest_error_buffer) { + panic!("Unable to push guest error to shared output data: {:#?}", e); + } + } + + /// Log a message with the specified log level, source, caller, source file, and line number. + pub fn log_message( + &self, + log_level: LogLevel, + message: &str, + source: &str, + caller: &str, + source_file: &str, + line: u32, + ) { + let guest_log_data = GuestLogData::new( + message.to_string(), + source.to_string(), + log_level, + caller.to_string(), + source_file.to_string(), + line, + ); + + let bytes: Vec = guest_log_data + .try_into() + .expect("Failed to convert GuestLogData to bytes"); + + self.push_shared_output_data(bytes) + .expect("Unable to push log data to shared output data"); + + unsafe { + out32(OutBAction::Log as u16, 0); + } + } +} diff --git a/src/hyperlight_guest/src/guest_handle/io.rs b/src/hyperlight_guest/src/guest_handle/io.rs new file mode 100644 index 000000000..ce8c82b0c --- /dev/null +++ b/src/hyperlight_guest/src/guest_handle/io.rs @@ -0,0 +1,149 @@ +/* +Copyright 2025 The Hyperlight Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +use alloc::format; +use alloc::string::ToString; +use alloc::vec::Vec; +use core::any::type_name; +use core::slice::from_raw_parts_mut; + +use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; + +use super::handle::GuestHandle; +use crate::error::{HyperlightGuestError, Result}; + +impl GuestHandle { + /// Pops the top element from the shared input data buffer and returns it as a T + pub fn try_pop_shared_input_data_into(&self) -> Result + where + T: for<'a> TryFrom<&'a [u8]>, + { + let peb_ptr = self.peb().unwrap(); + let input_stack_size = unsafe { (*peb_ptr).input_stack.size as usize }; + let input_stack_ptr = unsafe { (*peb_ptr).input_stack.ptr as *mut u8 }; + + let idb = unsafe { from_raw_parts_mut(input_stack_ptr, input_stack_size) }; + + if idb.is_empty() { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + "Got a 0-size buffer in pop_shared_input_data_into".to_string(), + )); + } + + // get relative offset to next free address + let stack_ptr_rel: u64 = + u64::from_le_bytes(idb[..8].try_into().expect("Shared input buffer too small")); + + if stack_ptr_rel as usize > input_stack_size || stack_ptr_rel < 16 { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + format!( + "Invalid stack pointer: {} in pop_shared_input_data_into", + stack_ptr_rel + ), + )); + } + + // go back 8 bytes and read. This is the offset to the element on top of stack + let last_element_offset_rel = u64::from_le_bytes( + idb[stack_ptr_rel as usize - 8..stack_ptr_rel as usize] + .try_into() + .expect("Invalid stack pointer in pop_shared_input_data_into"), + ); + + let buffer = &idb[last_element_offset_rel as usize..]; + + // convert the buffer to T + let type_t = match T::try_from(buffer) { + Ok(t) => Ok(t), + Err(_e) => { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + format!("Unable to convert buffer to {}", type_name::()), + )); + } + }; + + // update the stack pointer to point to the element we just popped of since that is now free + idb[..8].copy_from_slice(&last_element_offset_rel.to_le_bytes()); + + // zero out popped off buffer + idb[last_element_offset_rel as usize..stack_ptr_rel as usize].fill(0); + + type_t + } + + /// Pushes the given data onto the shared output data buffer. + pub fn push_shared_output_data(&self, data: Vec) -> Result<()> { + let peb_ptr = self.peb().unwrap(); + let output_stack_size = unsafe { (*peb_ptr).output_stack.size as usize }; + let output_stack_ptr = unsafe { (*peb_ptr).output_stack.ptr as *mut u8 }; + + let odb = unsafe { from_raw_parts_mut(output_stack_ptr, output_stack_size) }; + + if odb.is_empty() { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + "Got a 0-size buffer in push_shared_output_data".to_string(), + )); + } + + // get offset to next free address on the stack + let stack_ptr_rel: u64 = + u64::from_le_bytes(odb[..8].try_into().expect("Shared output buffer too small")); + + // check if the stack pointer is within the bounds of the buffer. + // It can be equal to the size, but never greater + // It can never be less than 8. An empty buffer's stack pointer is 8 + if stack_ptr_rel as usize > output_stack_size || stack_ptr_rel < 8 { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + format!( + "Invalid stack pointer: {} in push_shared_output_data", + stack_ptr_rel + ), + )); + } + + // check if there is enough space in the buffer + let size_required = data.len() + 8; // the data plus the pointer pointing to the data + let size_available = output_stack_size - stack_ptr_rel as usize; + if size_required > size_available { + return Err(HyperlightGuestError::new( + ErrorCode::GuestError, + format!( + "Not enough space in shared output buffer. Required: {}, Available: {}", + size_required, size_available + ), + )); + } + + // write the actual data + odb[stack_ptr_rel as usize..stack_ptr_rel as usize + data.len()].copy_from_slice(&data); + + // write the offset to the newly written data, to the top of the stack + let bytes: [u8; 8] = stack_ptr_rel.to_le_bytes(); + odb[stack_ptr_rel as usize + data.len()..stack_ptr_rel as usize + data.len() + 8] + .copy_from_slice(&bytes); + + // update stack pointer to point to next free address + let new_stack_ptr_rel: u64 = (stack_ptr_rel as usize + data.len() + 8) as u64; + odb[0..8].copy_from_slice(&(new_stack_ptr_rel).to_le_bytes()); + + Ok(()) + } +} diff --git a/src/hyperlight_guest/src/host_function_call.rs b/src/hyperlight_guest/src/host_function_call.rs deleted file mode 100644 index 6857ed70f..000000000 --- a/src/hyperlight_guest/src/host_function_call.rs +++ /dev/null @@ -1,145 +0,0 @@ -/* -Copyright 2024 The Hyperlight Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -use alloc::format; -use alloc::string::ToString; -use alloc::vec::Vec; -use core::arch; - -use hyperlight_common::flatbuffer_wrappers::function_call::{FunctionCall, FunctionCallType}; -use hyperlight_common::flatbuffer_wrappers::function_types::{ - ParameterValue, ReturnType, ReturnValue, -}; -use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; -use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result; -use hyperlight_common::outb::OutBAction; - -use crate::error::{HyperlightGuestError, Result}; -use crate::shared_input_data::try_pop_shared_input_data_into; -use crate::shared_output_data::push_shared_output_data; - -/// Get a return value from a host function call. -/// This usually requires a host function to be called first using `call_host_function_internal`. -/// When calling `call_host_function`, this function is called internally to get the return -/// value. -pub fn get_host_return_value>() -> Result { - let return_value = try_pop_shared_input_data_into::() - .expect("Unable to deserialize a return value from host"); - T::try_from(return_value).map_err(|_| { - HyperlightGuestError::new( - ErrorCode::GuestError, - format!( - "Host return value was not a {} as expected", - core::any::type_name::() - ), - ) - }) -} - -/// Internal function to call a host function without generic type parameters. -/// This is used by both the Rust and C APIs to reduce code duplication. -/// -/// This function doesn't return the host function result directly, instead it just -/// performs the call. The result must be obtained by calling `get_host_return_value`. -pub fn call_host_function_internal( - function_name: &str, - parameters: Option>, - return_type: ReturnType, -) -> Result<()> { - let host_function_call = FunctionCall::new( - function_name.to_string(), - parameters, - FunctionCallType::Host, - return_type, - ); - - let host_function_call_buffer: Vec = host_function_call - .try_into() - .expect("Unable to serialize host function call"); - - push_shared_output_data(host_function_call_buffer)?; - - outb(OutBAction::CallFunction as u16, &[0]); - - Ok(()) -} - -/// Call a host function with the given parameters and return type. -/// This function serializes the function call and its parameters, -/// sends it to the host, and then retrieves the return value. -/// -/// The return value is deserialized into the specified type `T`. -pub fn call_host_function>( - function_name: &str, - parameters: Option>, - return_type: ReturnType, -) -> Result { - call_host_function_internal(function_name, parameters, return_type)?; - get_host_return_value::() -} - -pub fn outb(port: u16, data: &[u8]) { - unsafe { - let mut i = 0; - while i < data.len() { - let remaining = data.len() - i; - let chunk_len = remaining.min(3); - let mut chunk = [0u8; 4]; - chunk[0] = chunk_len as u8; - chunk[1..1 + chunk_len].copy_from_slice(&data[i..i + chunk_len]); - let val = u32::from_le_bytes(chunk); - out32(port, val); - i += chunk_len; - } - } -} - -pub(crate) unsafe fn out32(port: u16, val: u32) { - unsafe { - arch::asm!("out dx, eax", in("dx") port, in("eax") val, options(preserves_flags, nomem, nostack)); - } -} - -/// Prints a message using `OutBAction::DebugPrint`. It transmits bytes of a message -/// through several VMExists and, with such, it is slower than -/// `print_output_with_host_print`. -/// -/// This function should be used in debug mode only. This function does not -/// require memory to be setup to be used. -pub fn debug_print(msg: &str) { - outb(OutBAction::DebugPrint as u16, msg.as_bytes()); -} - -/// Print a message using the host's print function. -/// -/// This function requires memory to be setup to be used. In particular, the -/// existence of the input and output memory regions. -pub fn print_output_with_host_print(function_call: &FunctionCall) -> Result> { - if let ParameterValue::String(message) = function_call.parameters.clone().unwrap()[0].clone() { - let res = call_host_function::( - "HostPrint", - Some(Vec::from(&[ParameterValue::String(message.to_string())])), - ReturnType::Int, - )?; - - Ok(get_flatbuffer_result(res)) - } else { - Err(HyperlightGuestError::new( - ErrorCode::GuestError, - "Wrong Parameters passed to print_output_with_host_print".to_string(), - )) - } -} diff --git a/src/hyperlight_guest/src/lib.rs b/src/hyperlight_guest/src/lib.rs index 7997a87f0..add2e21c7 100644 --- a/src/hyperlight_guest/src/lib.rs +++ b/src/hyperlight_guest/src/lib.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,67 +16,15 @@ limitations under the License. #![no_std] // Deps -use alloc::string::ToString; -use buddy_system_allocator::LockedHeap; -use guest_function_register::GuestFunctionRegister; -use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; -use hyperlight_common::mem::HyperlightPEB; - -use crate::entrypoint::abort_with_code_and_message; extern crate alloc; // Modules -pub mod entrypoint; -pub mod shared_input_data; -pub mod shared_output_data; - -pub mod guest_error; -pub mod guest_function_call; -pub mod guest_function_definition; -pub mod guest_function_register; - -pub mod host_function_call; - -pub(crate) mod guest_logger; -pub mod memory; -pub mod print; - pub mod error; -#[cfg(target_arch = "x86_64")] -pub mod exceptions { - pub mod gdt; - pub mod handlers; - pub mod idt; - pub mod idtr; - pub mod interrupt_entry; -} -pub mod logging; +pub mod exit; -// It looks like rust-analyzer doesn't correctly manage no_std crates, -// and so it displays an error about a duplicate panic_handler. -// See more here: https://github.com/rust-lang/rust-analyzer/issues/4490 -// The cfg_attr attribute is used to avoid clippy failures as test pulls in std which pulls in a panic handler -#[cfg_attr(not(test), panic_handler)] -#[allow(clippy::panic)] -// to satisfy the clippy when cfg == test -#[allow(dead_code)] -fn panic(info: &core::panic::PanicInfo) -> ! { - let msg = info.to_string(); - let c_string = alloc::ffi::CString::new(msg) - .unwrap_or_else(|_| alloc::ffi::CString::new("panic (invalid utf8)").unwrap()); - - unsafe { abort_with_code_and_message(&[ErrorCode::UnknownError as u8], c_string.as_ptr()) } +pub mod guest_handle { + pub mod handle; + pub mod host_comm; + pub mod io; } - -// Globals -#[global_allocator] -pub(crate) static HEAP_ALLOCATOR: LockedHeap<32> = LockedHeap::<32>::empty(); - -pub(crate) static mut P_PEB: Option<*mut HyperlightPEB> = None; -pub static mut MIN_STACK_ADDRESS: u64 = 0; - -pub static mut OS_PAGE_SIZE: u32 = 0; - -pub(crate) static mut REGISTERED_GUEST_FUNCTIONS: GuestFunctionRegister = - GuestFunctionRegister::new(); diff --git a/src/hyperlight_guest/src/logging.rs b/src/hyperlight_guest/src/logging.rs deleted file mode 100644 index ed5a833bc..000000000 --- a/src/hyperlight_guest/src/logging.rs +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright 2024 The Hyperlight Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -use alloc::string::ToString; -use alloc::vec::Vec; - -use hyperlight_common::flatbuffer_wrappers::guest_log_data::GuestLogData; -use hyperlight_common::flatbuffer_wrappers::guest_log_level::LogLevel; -use hyperlight_common::outb::OutBAction; - -use crate::host_function_call::outb; -use crate::shared_output_data::push_shared_output_data; - -fn write_log_data( - log_level: LogLevel, - message: &str, - source: &str, - caller: &str, - source_file: &str, - line: u32, -) { - let guest_log_data = GuestLogData::new( - message.to_string(), - source.to_string(), - log_level, - caller.to_string(), - source_file.to_string(), - line, - ); - - let bytes: Vec = guest_log_data - .try_into() - .expect("Failed to convert GuestLogData to bytes"); - - push_shared_output_data(bytes).expect("Unable to push log data to shared output data"); -} - -pub fn log_message( - log_level: LogLevel, - message: &str, - source: &str, - caller: &str, - source_file: &str, - line: u32, -) { - write_log_data(log_level, message, source, caller, source_file, line); - outb(OutBAction::Log as u16, &[0]); -} diff --git a/src/hyperlight_guest/src/print.rs b/src/hyperlight_guest/src/print.rs deleted file mode 100644 index c73ae6beb..000000000 --- a/src/hyperlight_guest/src/print.rs +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2024 The Hyperlight Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -use alloc::string::String; -use alloc::vec::Vec; -use core::ffi::{c_char, CStr}; -use core::mem; - -use hyperlight_common::flatbuffer_wrappers::function_types::{ParameterValue, ReturnType}; - -use crate::host_function_call::call_host_function; - -const BUFFER_SIZE: usize = 1000; - -static mut MESSAGE_BUFFER: Vec = Vec::new(); - -/// Exposes a C API to allow the guest to print a string -/// -/// # Safety -/// This function is not thread safe -#[unsafe(no_mangle)] -#[allow(static_mut_refs)] -pub unsafe extern "C" fn _putchar(c: c_char) { - unsafe { - let char = c as u8; - - // Extend buffer capacity if it's empty (like `with_capacity` in lazy_static). - // TODO: replace above Vec::new() with Vec::with_capacity once it's stable in const contexts. - if MESSAGE_BUFFER.capacity() == 0 { - MESSAGE_BUFFER.reserve(BUFFER_SIZE); - } - - MESSAGE_BUFFER.push(char); - - if MESSAGE_BUFFER.len() == BUFFER_SIZE || char == b'\0' { - let str = if char == b'\0' { - CStr::from_bytes_until_nul(&MESSAGE_BUFFER) - .expect("No null byte in buffer") - .to_string_lossy() - .into_owned() - } else { - String::from_utf8(mem::take(&mut MESSAGE_BUFFER)) - .expect("Failed to convert buffer to string") - }; - - // HostPrint returns an i32, but we don't care about the return value - let _ = call_host_function::( - "HostPrint", - Some(Vec::from(&[ParameterValue::String(str)])), - ReturnType::Int, - ) - .expect("Failed to call HostPrint"); - - // Clear the buffer after sending - MESSAGE_BUFFER.clear(); - } - } -} diff --git a/src/hyperlight_guest/src/shared_input_data.rs b/src/hyperlight_guest/src/shared_input_data.rs deleted file mode 100644 index d4b620ca9..000000000 --- a/src/hyperlight_guest/src/shared_input_data.rs +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright 2024 The Hyperlight Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -use alloc::format; -use alloc::string::ToString; -use core::any::type_name; -use core::slice::from_raw_parts_mut; - -use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; - -use crate::error::{HyperlightGuestError, Result}; -use crate::P_PEB; - -// Pops the top element from the shared input data buffer and returns it as a T -pub fn try_pop_shared_input_data_into() -> Result -where - T: for<'a> TryFrom<&'a [u8]>, -{ - let peb_ptr = unsafe { P_PEB.unwrap() }; - let shared_buffer_size = unsafe { (*peb_ptr).input_stack.size as usize }; - - let idb = - unsafe { from_raw_parts_mut((*peb_ptr).input_stack.ptr as *mut u8, shared_buffer_size) }; - - if idb.is_empty() { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - "Got a 0-size buffer in pop_shared_input_data_into".to_string(), - )); - } - - // get relative offset to next free address - let stack_ptr_rel: u64 = - u64::from_le_bytes(idb[..8].try_into().expect("Shared input buffer too small")); - - if stack_ptr_rel as usize > shared_buffer_size || stack_ptr_rel < 16 { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - format!( - "Invalid stack pointer: {} in pop_shared_input_data_into", - stack_ptr_rel - ), - )); - } - - // go back 8 bytes and read. This is the offset to the element on top of stack - let last_element_offset_rel = u64::from_le_bytes( - idb[stack_ptr_rel as usize - 8..stack_ptr_rel as usize] - .try_into() - .expect("Invalid stack pointer in pop_shared_input_data_into"), - ); - - let buffer = &idb[last_element_offset_rel as usize..]; - - // convert the buffer to T - let type_t = match T::try_from(buffer) { - Ok(t) => Ok(t), - Err(_e) => { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - format!("Unable to convert buffer to {}", type_name::()), - )); - } - }; - - // update the stack pointer to point to the element we just popped of since that is now free - idb[..8].copy_from_slice(&last_element_offset_rel.to_le_bytes()); - - // zero out popped off buffer - idb[last_element_offset_rel as usize..stack_ptr_rel as usize].fill(0); - - type_t -} diff --git a/src/hyperlight_guest/src/shared_output_data.rs b/src/hyperlight_guest/src/shared_output_data.rs deleted file mode 100644 index 6deb34fec..000000000 --- a/src/hyperlight_guest/src/shared_output_data.rs +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright 2024 The Hyperlight Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -use alloc::format; -use alloc::string::ToString; -use alloc::vec::Vec; -use core::slice::from_raw_parts_mut; - -use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; - -use crate::error::{HyperlightGuestError, Result}; -use crate::P_PEB; - -pub fn push_shared_output_data(data: Vec) -> Result<()> { - let peb_ptr = unsafe { P_PEB.unwrap() }; - let shared_buffer_size = unsafe { (*peb_ptr).output_stack.size as usize }; - let odb = - unsafe { from_raw_parts_mut((*peb_ptr).output_stack.ptr as *mut u8, shared_buffer_size) }; - - if odb.is_empty() { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - "Got a 0-size buffer in push_shared_output_data".to_string(), - )); - } - - // get offset to next free address on the stack - let stack_ptr_rel: u64 = - u64::from_le_bytes(odb[..8].try_into().expect("Shared output buffer too small")); - - // check if the stack pointer is within the bounds of the buffer. - // It can be equal to the size, but never greater - // It can never be less than 8. An empty buffer's stack pointer is 8 - if stack_ptr_rel as usize > shared_buffer_size || stack_ptr_rel < 8 { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - format!( - "Invalid stack pointer: {} in push_shared_output_data", - stack_ptr_rel - ), - )); - } - - // check if there is enough space in the buffer - let size_required = data.len() + 8; // the data plus the pointer pointing to the data - let size_available = shared_buffer_size - stack_ptr_rel as usize; - if size_required > size_available { - return Err(HyperlightGuestError::new( - ErrorCode::GuestError, - format!( - "Not enough space in shared output buffer. Required: {}, Available: {}", - size_required, size_available - ), - )); - } - - // write the actual data - odb[stack_ptr_rel as usize..stack_ptr_rel as usize + data.len()].copy_from_slice(&data); - - // write the offset to the newly written data, to the top of the stack - let bytes: [u8; 8] = stack_ptr_rel.to_le_bytes(); - odb[stack_ptr_rel as usize + data.len()..stack_ptr_rel as usize + data.len() + 8] - .copy_from_slice(&bytes); - - // update stack pointer to point to next free address - let new_stack_ptr_rel: u64 = (stack_ptr_rel as usize + data.len() + 8) as u64; - odb[0..8].copy_from_slice(&(new_stack_ptr_rel).to_le_bytes()); - - Ok(()) -} diff --git a/src/hyperlight_guest_bin/Cargo.toml b/src/hyperlight_guest_bin/Cargo.toml new file mode 100644 index 000000000..10038211f --- /dev/null +++ b/src/hyperlight_guest_bin/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "hyperlight-guest-bin" +links = "c" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +readme.workspace = true + +[features] +default = ["libc", "printf"] +libc = [] # compile musl libc +printf = [] # compile printf + +[dependencies] +hyperlight-guest = { workspace = true, default-features = false } +hyperlight-common = { workspace = true, default-features = false } +buddy_system_allocator = "0.11.0" +log = { version = "0.4", default-features = false } +spin = "0.10.0" + +[lints] +workspace = true + +[build-dependencies] +cc = "1.2" +cfg-if = "1.0" +glob = "0.3.2" diff --git a/src/hyperlight_guest/build.rs b/src/hyperlight_guest_bin/build.rs similarity index 99% rename from src/hyperlight_guest/build.rs rename to src/hyperlight_guest_bin/build.rs index e0dc906fb..73588b5fa 100644 --- a/src/hyperlight_guest/build.rs +++ b/src/hyperlight_guest_bin/build.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -109,7 +109,7 @@ fn cargo_main() { unsafe { env::set_var("AR_x86_64_pc_windows_msvc", "llvm-lib") }; } - cfg.compile("hyperlight_guest"); + cfg.compile("hyperlight_guest_bin"); } let out_dir = env::var("OUT_DIR").expect("cargo OUT_DIR not set"); diff --git a/src/hyperlight_guest/src/exceptions/gdt.rs b/src/hyperlight_guest_bin/src/exceptions/gdt.rs similarity index 98% rename from src/hyperlight_guest/src/exceptions/gdt.rs rename to src/hyperlight_guest_bin/src/exceptions/gdt.rs index 34150ebd0..0a3b2cfb6 100644 --- a/src/hyperlight_guest/src/exceptions/gdt.rs +++ b/src/hyperlight_guest_bin/src/exceptions/gdt.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_guest/src/exceptions/handlers.rs b/src/hyperlight_guest_bin/src/exceptions/handler.rs similarity index 92% rename from src/hyperlight_guest/src/exceptions/handlers.rs rename to src/hyperlight_guest_bin/src/exceptions/handler.rs index 114d046eb..5bc1a7e09 100644 --- a/src/hyperlight_guest/src/exceptions/handlers.rs +++ b/src/hyperlight_guest_bin/src/exceptions/handler.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,7 @@ use core::ffi::c_char; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_common::outb::Exception; - -use crate::entrypoint::abort_with_code_and_message; +use hyperlight_guest::exit::abort_with_code_and_message; /// Exception handler #[unsafe(no_mangle)] diff --git a/src/hyperlight_guest/src/exceptions/idt.rs b/src/hyperlight_guest_bin/src/exceptions/idt.rs similarity index 99% rename from src/hyperlight_guest/src/exceptions/idt.rs rename to src/hyperlight_guest_bin/src/exceptions/idt.rs index 9c32471d7..f9cc9f8c3 100644 --- a/src/hyperlight_guest/src/exceptions/idt.rs +++ b/src/hyperlight_guest_bin/src/exceptions/idt.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_guest/src/exceptions/idtr.rs b/src/hyperlight_guest_bin/src/exceptions/idtr.rs similarity index 100% rename from src/hyperlight_guest/src/exceptions/idtr.rs rename to src/hyperlight_guest_bin/src/exceptions/idtr.rs diff --git a/src/hyperlight_guest/src/exceptions/interrupt_entry.rs b/src/hyperlight_guest_bin/src/exceptions/interrupt_entry.rs similarity index 98% rename from src/hyperlight_guest/src/exceptions/interrupt_entry.rs rename to src/hyperlight_guest_bin/src/exceptions/interrupt_entry.rs index 48de98ed6..0a0d63775 100644 --- a/src/hyperlight_guest/src/exceptions/interrupt_entry.rs +++ b/src/hyperlight_guest_bin/src/exceptions/interrupt_entry.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. use core::arch::global_asm; -use crate::exceptions::handlers::hl_exception_handler; +use crate::exceptions::handler::hl_exception_handler; unsafe extern "C" { // Exception handlers diff --git a/src/hyperlight_guest/src/guest_error.rs b/src/hyperlight_guest_bin/src/guest_err.rs similarity index 53% rename from src/hyperlight_guest/src/guest_error.rs rename to src/hyperlight_guest_bin/src/guest_err.rs index 9ad7e2bd4..daedd3fbb 100644 --- a/src/hyperlight_guest/src/guest_error.rs +++ b/src/hyperlight_guest_bin/src/guest_err.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,31 +14,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -use alloc::string::ToString; -use alloc::vec::Vec; use core::ffi::{c_char, CStr}; -use hyperlight_common::flatbuffer_wrappers::guest_error::{ErrorCode, GuestError}; +use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; +use hyperlight_guest::exit::halt; -use crate::entrypoint::halt; -use crate::shared_output_data::push_shared_output_data; - -pub(crate) fn write_error(error_code: ErrorCode, message: Option<&str>) { - let guest_error = GuestError::new( - error_code.clone(), - message.map_or("".to_string(), |m| m.to_string()), - ); - let guest_error_buffer: Vec = (&guest_error) - .try_into() - .expect("Invalid guest_error_buffer, could not be converted to a Vec"); - - push_shared_output_data(guest_error_buffer) - .expect("Unable to push guest error to shared output data"); -} - -pub(crate) fn set_error(error_code: ErrorCode, message: &str) { - write_error(error_code, Some(message)); -} +use crate::GUEST_HANDLE; /// Exposes a C API to allow the guest to set an error /// @@ -48,14 +29,17 @@ pub(crate) fn set_error(error_code: ErrorCode, message: &str) { #[unsafe(no_mangle)] #[allow(non_camel_case_types)] pub unsafe extern "C" fn setError(code: u64, message: *const c_char) { + let handle = unsafe { GUEST_HANDLE }; + let error_code = ErrorCode::from(code); match message.is_null() { - true => write_error(error_code, None), + true => handle.write_error(error_code, None), false => { let message = unsafe { CStr::from_ptr(message).to_str().ok() } .expect("Invalid error message, could not be converted to a string"); - write_error(error_code, Some(message)); + handle.write_error(error_code, Some(message)); } } + halt(); } diff --git a/src/hyperlight_guest/src/guest_function_call.rs b/src/hyperlight_guest_bin/src/guest_function/call.rs similarity index 89% rename from src/hyperlight_guest/src/guest_function_call.rs rename to src/hyperlight_guest_bin/src/guest_function/call.rs index 31b1c163a..bdaed4212 100644 --- a/src/hyperlight_guest/src/guest_function_call.rs +++ b/src/hyperlight_guest_bin/src/guest_function/call.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,13 +20,10 @@ use alloc::vec::Vec; use hyperlight_common::flatbuffer_wrappers::function_call::{FunctionCall, FunctionCallType}; use hyperlight_common::flatbuffer_wrappers::function_types::ParameterType; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; +use hyperlight_guest::error::{HyperlightGuestError, Result}; +use hyperlight_guest::exit::halt; -use crate::entrypoint::halt; -use crate::error::{HyperlightGuestError, Result}; -use crate::guest_error::set_error; -use crate::shared_input_data::try_pop_shared_input_data_into; -use crate::shared_output_data::push_shared_output_data; -use crate::REGISTERED_GUEST_FUNCTIONS; +use crate::{GUEST_HANDLE, REGISTERED_GUEST_FUNCTIONS}; type GuestFunc = fn(&FunctionCall) -> Result>; @@ -83,17 +80,20 @@ pub(crate) fn call_guest_function(function_call: FunctionCall) -> Result #[unsafe(no_mangle)] #[inline(never)] fn internal_dispatch_function() -> Result<()> { + let handle = unsafe { GUEST_HANDLE }; + #[cfg(debug_assertions)] log::trace!("internal_dispatch_function"); - let function_call = try_pop_shared_input_data_into::() + let function_call = handle + .try_pop_shared_input_data_into::() .expect("Function call deserialization failed"); let result_vec = call_guest_function(function_call).inspect_err(|e| { - set_error(e.kind.clone(), e.message.as_str()); + handle.write_error(e.kind.clone(), Some(e.message.as_str())); })?; - push_shared_output_data(result_vec) + handle.push_shared_output_data(result_vec) } // This is implemented as a separate function to make sure that epilogue in the internal_dispatch_function is called before the halt() diff --git a/src/hyperlight_guest/src/guest_function_definition.rs b/src/hyperlight_guest_bin/src/guest_function/definition.rs similarity index 97% rename from src/hyperlight_guest/src/guest_function_definition.rs rename to src/hyperlight_guest_bin/src/guest_function/definition.rs index d9320cd61..a60ca2e14 100644 --- a/src/hyperlight_guest/src/guest_function_definition.rs +++ b/src/hyperlight_guest_bin/src/guest_function/definition.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,8 +20,7 @@ use alloc::vec::Vec; use hyperlight_common::flatbuffer_wrappers::function_types::{ParameterType, ReturnType}; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; - -use crate::error::{HyperlightGuestError, Result}; +use hyperlight_guest::error::{HyperlightGuestError, Result}; /// The definition of a function exposed from the guest to the host #[derive(Debug, Clone, PartialEq, Eq)] diff --git a/src/hyperlight_guest/src/guest_function_register.rs b/src/hyperlight_guest_bin/src/guest_function/register.rs similarity index 95% rename from src/hyperlight_guest/src/guest_function_register.rs rename to src/hyperlight_guest_bin/src/guest_function/register.rs index 6acdc6f43..e68ed6440 100644 --- a/src/hyperlight_guest/src/guest_function_register.rs +++ b/src/hyperlight_guest_bin/src/guest_function/register.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ limitations under the License. use alloc::collections::BTreeMap; use alloc::string::String; -use super::guest_function_definition::GuestFunctionDefinition; +use super::definition::GuestFunctionDefinition; use crate::REGISTERED_GUEST_FUNCTIONS; /// Represents the functions that the guest exposes to the host. diff --git a/src/hyperlight_guest/src/guest_logger.rs b/src/hyperlight_guest_bin/src/guest_logger.rs similarity index 79% rename from src/hyperlight_guest/src/guest_logger.rs rename to src/hyperlight_guest_bin/src/guest_logger.rs index c3e2b3ab3..c4223d7ea 100644 --- a/src/hyperlight_guest/src/guest_logger.rs +++ b/src/hyperlight_guest_bin/src/guest_logger.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,9 +16,10 @@ limitations under the License. use alloc::format; +use hyperlight_common::flatbuffer_wrappers::guest_log_level::LogLevel; use log::{LevelFilter, Metadata, Record}; -use crate::logging::log_message; +use crate::GUEST_HANDLE; // this is private on purpose so that `log` can only be called though the `log!` macros. struct GuestLogger {} @@ -39,8 +40,9 @@ impl log::Log for GuestLogger { } fn log(&self, record: &Record) { + let handle = unsafe { GUEST_HANDLE }; if self.enabled(record.metadata()) { - log_message( + handle.log_message( record.level().into(), format!("{}", record.args()).as_str(), record.module_path().unwrap_or("Unknown"), @@ -53,3 +55,15 @@ impl log::Log for GuestLogger { fn flush(&self) {} } + +pub fn log_message( + level: LogLevel, + message: &str, + module_path: &str, + target: &str, + file: &str, + line: u32, +) { + let handle = unsafe { GUEST_HANDLE }; + handle.log_message(level, message, module_path, target, file, line); +} diff --git a/src/hyperlight_guest_bin/src/host_comm.rs b/src/hyperlight_guest_bin/src/host_comm.rs new file mode 100644 index 000000000..823902291 --- /dev/null +++ b/src/hyperlight_guest_bin/src/host_comm.rs @@ -0,0 +1,125 @@ +/* +Copyright 2025 The Hyperlight Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::ffi::{c_char, CStr}; +use core::mem; + +use hyperlight_common::flatbuffer_wrappers::function_call::FunctionCall; +use hyperlight_common::flatbuffer_wrappers::function_types::{ + ParameterValue, ReturnType, ReturnValue, +}; +use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; +use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result; +use hyperlight_guest::error::{HyperlightGuestError, Result}; + +const BUFFER_SIZE: usize = 1000; +static mut MESSAGE_BUFFER: Vec = Vec::new(); + +use crate::GUEST_HANDLE; + +pub fn call_host_function( + function_name: &str, + parameters: Option>, + return_type: ReturnType, +) -> Result +where + T: TryFrom, +{ + let handle = unsafe { GUEST_HANDLE }; + handle.call_host_function::(function_name, parameters, return_type) +} + +pub fn call_host_function_without_returning_result( + function_name: &str, + parameters: Option>, + return_type: ReturnType, +) -> Result<()> { + let handle = unsafe { GUEST_HANDLE }; + handle.call_host_function_without_returning_result(function_name, parameters, return_type) +} + +pub fn get_host_return_value>() -> Result { + let handle = unsafe { GUEST_HANDLE }; + handle.get_host_return_value::() +} + +/// Print a message using the host's print function. +/// +/// This function requires memory to be setup to be used. In particular, the +/// existence of the input and output memory regions. +pub fn print_output_with_host_print(function_call: &FunctionCall) -> Result> { + let handle = unsafe { GUEST_HANDLE }; + if let ParameterValue::String(message) = function_call.parameters.clone().unwrap()[0].clone() { + let res = handle.call_host_function::( + "HostPrint", + Some(Vec::from(&[ParameterValue::String(message.to_string())])), + ReturnType::Int, + )?; + + Ok(get_flatbuffer_result(res)) + } else { + Err(HyperlightGuestError::new( + ErrorCode::GuestError, + "Wrong Parameters passed to print_output_with_host_print".to_string(), + )) + } +} + +/// Exposes a C API to allow the guest to print a string +/// +/// # Safety +/// This function is not thread safe +#[unsafe(no_mangle)] +#[allow(static_mut_refs)] +pub unsafe extern "C" fn _putchar(c: c_char) { + let handle = unsafe { GUEST_HANDLE }; + let char = c as u8; + let mut message_buffer = unsafe { &mut MESSAGE_BUFFER }; + + // Extend buffer capacity if it's empty (like `with_capacity` in lazy_static). + // TODO: replace above Vec::new() with Vec::with_capacity once it's stable in const contexts. + if message_buffer.capacity() == 0 { + message_buffer.reserve(BUFFER_SIZE); + } + + message_buffer.push(char); + + if message_buffer.len() == BUFFER_SIZE || char == b'\0' { + let str = if char == b'\0' { + CStr::from_bytes_until_nul(&message_buffer) + .expect("No null byte in buffer") + .to_string_lossy() + .into_owned() + } else { + String::from_utf8(mem::take(&mut message_buffer)) + .expect("Failed to convert buffer to string") + }; + + // HostPrint returns an i32, but we don't care about the return value + let _ = handle + .call_host_function::( + "HostPrint", + Some(Vec::from(&[ParameterValue::String(str)])), + ReturnType::Int, + ) + .expect("Failed to call HostPrint"); + + // Clear the buffer after sending + message_buffer.clear(); + } +} diff --git a/src/hyperlight_guest/src/entrypoint.rs b/src/hyperlight_guest_bin/src/lib.rs similarity index 51% rename from src/hyperlight_guest/src/entrypoint.rs rename to src/hyperlight_guest_bin/src/lib.rs index a8a3bc67b..dcdd6974b 100644 --- a/src/hyperlight_guest/src/entrypoint.rs +++ b/src/hyperlight_guest_bin/src/lib.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -13,60 +13,76 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ +#![no_std] -use core::arch::asm; -use core::ffi::{c_char, CStr}; +// === Dependencies === +extern crate alloc; +use alloc::string::ToString; + +use buddy_system_allocator::LockedHeap; +#[cfg(target_arch = "x86_64")] +use exceptions::{gdt::load_gdt, idtr::load_idt}; +use guest_function::call::dispatch_function; +use guest_function::register::GuestFunctionRegister; +use guest_logger::init_logger; +use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_common::mem::HyperlightPEB; -use hyperlight_common::outb::OutBAction; +use hyperlight_guest::exit::{abort_with_code_and_message, halt}; +use hyperlight_guest::guest_handle::handle::GuestHandle; use log::LevelFilter; use spin::Once; +// === Modules === #[cfg(target_arch = "x86_64")] -use crate::exceptions::{gdt::load_gdt, idtr::load_idt}; -use crate::guest_function_call::dispatch_function; -use crate::guest_logger::init_logger; -use crate::host_function_call::outb; -use crate::{HEAP_ALLOCATOR, MIN_STACK_ADDRESS, OS_PAGE_SIZE, P_PEB}; - -#[inline(never)] -pub fn halt() { - unsafe { asm!("hlt", options(nostack)) } +mod exceptions { + pub(super) mod gdt; + mod handler; + mod idt; + pub(super) mod idtr; + mod interrupt_entry; } - -#[unsafe(no_mangle)] -pub extern "C" fn abort() -> ! { - abort_with_code(&[0, 0xFF]) +pub mod guest_err; +pub mod guest_function { + pub(super) mod call; + pub mod definition; + pub mod register; } -pub fn abort_with_code(code: &[u8]) -> ! { - outb(OutBAction::Abort as u16, code); - outb(OutBAction::Abort as u16, &[0xFF]); // send abort terminator (if not included in code) - unreachable!() +pub mod guest_logger; +pub mod host_comm; +pub mod memory; + +// === Globals === +#[global_allocator] +pub(crate) static HEAP_ALLOCATOR: LockedHeap<32> = LockedHeap::<32>::empty(); + +pub(crate) static mut GUEST_HANDLE: GuestHandle = GuestHandle::new(); +pub(crate) static mut REGISTERED_GUEST_FUNCTIONS: GuestFunctionRegister = + GuestFunctionRegister::new(); + +pub static mut MIN_STACK_ADDRESS: u64 = 0; + +static mut OS_PAGE_SIZE: u32 = 0; + +// === Panic Handler === +// It looks like rust-analyzer doesn't correctly manage no_std crates, +// and so it displays an error about a duplicate panic_handler. +// See more here: https://github.com/rust-lang/rust-analyzer/issues/4490 +// The cfg_attr attribute is used to avoid clippy failures as test pulls in std which pulls in a panic handler +#[cfg_attr(not(test), panic_handler)] +#[allow(clippy::panic)] +// to satisfy the clippy when cfg == test +#[allow(dead_code)] +fn panic(info: &core::panic::PanicInfo) -> ! { + let msg = info.to_string(); + let c_string = alloc::ffi::CString::new(msg) + .unwrap_or_else(|_| alloc::ffi::CString::new("panic (invalid utf8)").unwrap()); + + unsafe { abort_with_code_and_message(&[ErrorCode::UnknownError as u8], c_string.as_ptr()) } } -/// Aborts the program with a code and a message. -/// -/// # Safety -/// This function is unsafe because it dereferences a raw pointer. -pub unsafe fn abort_with_code_and_message(code: &[u8], message_ptr: *const c_char) -> ! { - unsafe { - // Step 1: Send abort code (typically 1 byte, but `code` allows flexibility) - outb(OutBAction::Abort as u16, code); - - // Step 2: Convert the C string to bytes - let message_bytes = CStr::from_ptr(message_ptr).to_bytes(); // excludes null terminator - - // Step 3: Send the message itself in chunks - outb(OutBAction::Abort as u16, message_bytes); - - // Step 4: Send abort terminator to signal completion (e.g., 0xFF) - outb(OutBAction::Abort as u16, &[0xFF]); - - // This function never returns - unreachable!() - } -} +// === Entrypoint === unsafe extern "C" { fn hyperlight_main(); @@ -83,8 +99,9 @@ pub extern "C" fn entrypoint(peb_address: u64, seed: u64, ops: u64, max_log_leve INIT.call_once(|| { unsafe { - P_PEB = Some(peb_address as *mut HyperlightPEB); - let peb_ptr = P_PEB.unwrap(); + GUEST_HANDLE = GuestHandle::init(peb_address as *mut HyperlightPEB); + #[allow(static_mut_refs)] + let peb_ptr = GUEST_HANDLE.peb().unwrap(); let srand_seed = ((peb_address << 8 ^ seed >> 4) >> 32) as u32; diff --git a/src/hyperlight_guest/src/memory.rs b/src/hyperlight_guest_bin/src/memory.rs similarity index 98% rename from src/hyperlight_guest/src/memory.rs rename to src/hyperlight_guest_bin/src/memory.rs index af22ec024..48eb4f602 100644 --- a/src/hyperlight_guest/src/memory.rs +++ b/src/hyperlight_guest_bin/src/memory.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,10 +20,7 @@ use core::mem::{align_of, size_of}; use core::ptr; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; - -use crate::entrypoint::abort_with_code; - -extern crate alloc; +use hyperlight_guest::exit::abort_with_code; /* C-wrappers for Rust's registered global allocator. diff --git a/src/hyperlight_guest/third_party/README.md b/src/hyperlight_guest_bin/third_party/README.md similarity index 100% rename from src/hyperlight_guest/third_party/README.md rename to src/hyperlight_guest_bin/third_party/README.md diff --git a/src/hyperlight_guest/third_party/musl/COPYRIGHT b/src/hyperlight_guest_bin/third_party/musl/COPYRIGHT similarity index 100% rename from src/hyperlight_guest/third_party/musl/COPYRIGHT rename to src/hyperlight_guest_bin/third_party/musl/COPYRIGHT diff --git a/src/hyperlight_guest/third_party/musl/README b/src/hyperlight_guest_bin/third_party/musl/README similarity index 100% rename from src/hyperlight_guest/third_party/musl/README rename to src/hyperlight_guest_bin/third_party/musl/README diff --git a/src/hyperlight_guest/third_party/musl/arch/generic/bits/errno.h b/src/hyperlight_guest_bin/third_party/musl/arch/generic/bits/errno.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/generic/bits/errno.h rename to src/hyperlight_guest_bin/third_party/musl/arch/generic/bits/errno.h diff --git a/src/hyperlight_guest/third_party/musl/arch/generic/fp_arch.h b/src/hyperlight_guest_bin/third_party/musl/arch/generic/fp_arch.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/generic/fp_arch.h rename to src/hyperlight_guest_bin/third_party/musl/arch/generic/fp_arch.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/atomic_arch.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/atomic_arch.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/atomic_arch.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/atomic_arch.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/alltypes.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/alltypes.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/alltypes.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/alltypes.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/fenv.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/fenv.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/fenv.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/fenv.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/float.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/float.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/float.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/float.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/io.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/io.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/io.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/io.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/limits.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/limits.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/limits.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/limits.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/mman.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/mman.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/mman.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/mman.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/posix.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/posix.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/posix.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/posix.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/ptrace.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/ptrace.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/ptrace.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/ptrace.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/reg.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/reg.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/reg.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/reg.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/setjmp.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/setjmp.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/setjmp.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/setjmp.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/bits/stdint.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/stdint.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/bits/stdint.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/bits/stdint.h diff --git a/src/hyperlight_guest/third_party/musl/arch/x86_64/reloc.h b/src/hyperlight_guest_bin/third_party/musl/arch/x86_64/reloc.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/arch/x86_64/reloc.h rename to src/hyperlight_guest_bin/third_party/musl/arch/x86_64/reloc.h diff --git a/src/hyperlight_guest/third_party/musl/include/alloca.h b/src/hyperlight_guest_bin/third_party/musl/include/alloca.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/alloca.h rename to src/hyperlight_guest_bin/third_party/musl/include/alloca.h diff --git a/src/hyperlight_guest/third_party/musl/include/assert.h b/src/hyperlight_guest_bin/third_party/musl/include/assert.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/assert.h rename to src/hyperlight_guest_bin/third_party/musl/include/assert.h diff --git a/src/hyperlight_guest/third_party/musl/include/byteswap.h b/src/hyperlight_guest_bin/third_party/musl/include/byteswap.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/byteswap.h rename to src/hyperlight_guest_bin/third_party/musl/include/byteswap.h diff --git a/src/hyperlight_guest/third_party/musl/include/complex.h b/src/hyperlight_guest_bin/third_party/musl/include/complex.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/complex.h rename to src/hyperlight_guest_bin/third_party/musl/include/complex.h diff --git a/src/hyperlight_guest/third_party/musl/include/ctype.h b/src/hyperlight_guest_bin/third_party/musl/include/ctype.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/ctype.h rename to src/hyperlight_guest_bin/third_party/musl/include/ctype.h diff --git a/src/hyperlight_guest/third_party/musl/include/endian.h b/src/hyperlight_guest_bin/third_party/musl/include/endian.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/endian.h rename to src/hyperlight_guest_bin/third_party/musl/include/endian.h diff --git a/src/hyperlight_guest/third_party/musl/include/errno.h b/src/hyperlight_guest_bin/third_party/musl/include/errno.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/errno.h rename to src/hyperlight_guest_bin/third_party/musl/include/errno.h diff --git a/src/hyperlight_guest/third_party/musl/include/features.h b/src/hyperlight_guest_bin/third_party/musl/include/features.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/features.h rename to src/hyperlight_guest_bin/third_party/musl/include/features.h diff --git a/src/hyperlight_guest/third_party/musl/include/fenv.h b/src/hyperlight_guest_bin/third_party/musl/include/fenv.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/fenv.h rename to src/hyperlight_guest_bin/third_party/musl/include/fenv.h diff --git a/src/hyperlight_guest/third_party/musl/include/float.h b/src/hyperlight_guest_bin/third_party/musl/include/float.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/float.h rename to src/hyperlight_guest_bin/third_party/musl/include/float.h diff --git a/src/hyperlight_guest/third_party/musl/include/inttypes.h b/src/hyperlight_guest_bin/third_party/musl/include/inttypes.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/inttypes.h rename to src/hyperlight_guest_bin/third_party/musl/include/inttypes.h diff --git a/src/hyperlight_guest/third_party/musl/include/libgen.h b/src/hyperlight_guest_bin/third_party/musl/include/libgen.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/libgen.h rename to src/hyperlight_guest_bin/third_party/musl/include/libgen.h diff --git a/src/hyperlight_guest/third_party/musl/include/limits.h b/src/hyperlight_guest_bin/third_party/musl/include/limits.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/limits.h rename to src/hyperlight_guest_bin/third_party/musl/include/limits.h diff --git a/src/hyperlight_guest/third_party/musl/include/math.h b/src/hyperlight_guest_bin/third_party/musl/include/math.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/math.h rename to src/hyperlight_guest_bin/third_party/musl/include/math.h diff --git a/src/hyperlight_guest/third_party/musl/include/memory.h b/src/hyperlight_guest_bin/third_party/musl/include/memory.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/memory.h rename to src/hyperlight_guest_bin/third_party/musl/include/memory.h diff --git a/src/hyperlight_guest/third_party/musl/include/setjmp.h b/src/hyperlight_guest_bin/third_party/musl/include/setjmp.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/setjmp.h rename to src/hyperlight_guest_bin/third_party/musl/include/setjmp.h diff --git a/src/hyperlight_guest/third_party/musl/include/stdarg.h b/src/hyperlight_guest_bin/third_party/musl/include/stdarg.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/stdarg.h rename to src/hyperlight_guest_bin/third_party/musl/include/stdarg.h diff --git a/src/hyperlight_guest/third_party/musl/include/stdbool.h b/src/hyperlight_guest_bin/third_party/musl/include/stdbool.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/stdbool.h rename to src/hyperlight_guest_bin/third_party/musl/include/stdbool.h diff --git a/src/hyperlight_guest/third_party/musl/include/stddef.h b/src/hyperlight_guest_bin/third_party/musl/include/stddef.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/stddef.h rename to src/hyperlight_guest_bin/third_party/musl/include/stddef.h diff --git a/src/hyperlight_guest/third_party/musl/include/stdint.h b/src/hyperlight_guest_bin/third_party/musl/include/stdint.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/stdint.h rename to src/hyperlight_guest_bin/third_party/musl/include/stdint.h diff --git a/src/hyperlight_guest/third_party/musl/include/stdio.h b/src/hyperlight_guest_bin/third_party/musl/include/stdio.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/stdio.h rename to src/hyperlight_guest_bin/third_party/musl/include/stdio.h diff --git a/src/hyperlight_guest/third_party/musl/include/stdlib.h b/src/hyperlight_guest_bin/third_party/musl/include/stdlib.h similarity index 99% rename from src/hyperlight_guest/third_party/musl/include/stdlib.h rename to src/hyperlight_guest_bin/third_party/musl/include/stdlib.h index b23d57213..d39dc504c 100644 --- a/src/hyperlight_guest/third_party/musl/include/stdlib.h +++ b/src/hyperlight_guest_bin/third_party/musl/include/stdlib.h @@ -34,7 +34,7 @@ unsigned long strtoul (const char *__restrict, char **__restrict, int); long long strtoll (const char *__restrict, char **__restrict, int); unsigned long long strtoull (const char *__restrict, char **__restrict, int); -// These 5 functions are implemented in rust in hyperlight_guest +// These 5 functions are implemented in rust in hyperlight_guest_bin _Noreturn void abort (void); void *malloc (size_t); void *calloc (size_t, size_t); diff --git a/src/hyperlight_guest/third_party/musl/include/string.h b/src/hyperlight_guest_bin/third_party/musl/include/string.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/string.h rename to src/hyperlight_guest_bin/third_party/musl/include/string.h diff --git a/src/hyperlight_guest/third_party/musl/include/strings.h b/src/hyperlight_guest_bin/third_party/musl/include/strings.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/strings.h rename to src/hyperlight_guest_bin/third_party/musl/include/strings.h diff --git a/src/hyperlight_guest/third_party/musl/include/sys/select.h b/src/hyperlight_guest_bin/third_party/musl/include/sys/select.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/sys/select.h rename to src/hyperlight_guest_bin/third_party/musl/include/sys/select.h diff --git a/src/hyperlight_guest/third_party/musl/include/sys/time.h b/src/hyperlight_guest_bin/third_party/musl/include/sys/time.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/sys/time.h rename to src/hyperlight_guest_bin/third_party/musl/include/sys/time.h diff --git a/src/hyperlight_guest/third_party/musl/include/sys/types.h b/src/hyperlight_guest_bin/third_party/musl/include/sys/types.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/sys/types.h rename to src/hyperlight_guest_bin/third_party/musl/include/sys/types.h diff --git a/src/hyperlight_guest/third_party/musl/include/tar.h b/src/hyperlight_guest_bin/third_party/musl/include/tar.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/tar.h rename to src/hyperlight_guest_bin/third_party/musl/include/tar.h diff --git a/src/hyperlight_guest/third_party/musl/include/time.h b/src/hyperlight_guest_bin/third_party/musl/include/time.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/time.h rename to src/hyperlight_guest_bin/third_party/musl/include/time.h diff --git a/src/hyperlight_guest/third_party/musl/include/wchar.h b/src/hyperlight_guest_bin/third_party/musl/include/wchar.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/wchar.h rename to src/hyperlight_guest_bin/third_party/musl/include/wchar.h diff --git a/src/hyperlight_guest/third_party/musl/include/wctype.h b/src/hyperlight_guest_bin/third_party/musl/include/wctype.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/include/wctype.h rename to src/hyperlight_guest_bin/third_party/musl/include/wctype.h diff --git a/src/hyperlight_guest/third_party/musl/src/complex/__cexp.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/__cexp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/__cexp.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/__cexp.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/__cexpf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/__cexpf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/__cexpf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/__cexpf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cabs.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cabs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cabs.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cabs.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cabsf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cabsf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cabsf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cabsf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cabsl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cabsl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cabsl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cabsl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacos.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacos.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacos.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacosf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacosf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacosf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacosf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacosh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacosh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacosh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacosh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacoshf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacoshf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacoshf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacoshf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacoshl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacoshl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacoshl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacoshl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cacosl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cacosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cacosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cacosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/carg.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/carg.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/carg.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/carg.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cargf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cargf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cargf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cargf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cargl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cargl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cargl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cargl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casin.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casin.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casin.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casinf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casinf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casinf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casinf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casinh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casinh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casinh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casinh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casinhf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casinhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casinhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casinhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casinhl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casinhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casinhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casinhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/casinl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/casinl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/casinl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/casinl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catan.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catan.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catan.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catanf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catanf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catanf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catanf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catanh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catanh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catanh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catanh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catanhf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catanhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catanhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catanhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catanhl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catanhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catanhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catanhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/catanl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/catanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/catanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/catanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccos.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccos.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccos.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccosf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccosf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccosf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccosf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccosh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccosh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccosh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccosh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccoshf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccoshf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccoshf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccoshf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccoshl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccoshl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccoshl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccoshl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ccosl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ccosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ccosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ccosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cexp.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cexp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cexp.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cexp.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cexpf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cexpf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cexpf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cexpf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cexpl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cexpl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cexpl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cexpl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cimag.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cimag.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cimag.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cimag.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cimagf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cimagf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cimagf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cimagf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cimagl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cimagl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cimagl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cimagl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/clog.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/clog.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/clog.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/clog.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/clogf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/clogf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/clogf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/clogf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/clogl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/clogl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/clogl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/clogl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/conj.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/conj.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/conj.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/conj.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/conjf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/conjf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/conjf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/conjf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/conjl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/conjl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/conjl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/conjl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cpow.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cpow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cpow.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cpow.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cpowf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cpowf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cpowf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cpowf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cpowl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cpowl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cpowl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cpowl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cproj.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cproj.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cproj.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cproj.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cprojf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cprojf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cprojf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cprojf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/cprojl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/cprojl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/cprojl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/cprojl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/creal.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/creal.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/creal.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/creal.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/crealf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/crealf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/crealf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/crealf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/creall.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/creall.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/creall.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/creall.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csin.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csin.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csin.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csinf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csinf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csinf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csinf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csinh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csinh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csinh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csinh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csinhf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csinhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csinhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csinhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csinhl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csinhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csinhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csinhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csinl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csinl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csinl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csinl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csqrt.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csqrt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csqrt.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csqrt.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csqrtf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csqrtf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csqrtf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csqrtf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/csqrtl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/csqrtl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/csqrtl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/csqrtl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctan.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctan.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctan.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctanf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctanf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctanf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctanf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctanh.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctanh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctanh.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctanh.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctanhf.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctanhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctanhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctanhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctanhl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctanhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctanhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctanhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/complex/ctanl.c b/src/hyperlight_guest_bin/third_party/musl/src/complex/ctanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/complex/ctanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/complex/ctanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isalnum.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isalnum.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isalnum.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isalnum.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isalpha.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isalpha.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isalpha.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isalpha.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isdigit.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isdigit.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isdigit.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isdigit.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isgraph.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isgraph.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isgraph.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isgraph.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/islower.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/islower.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/islower.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/islower.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isprint.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isprint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isprint.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isprint.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isspace.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isspace.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isspace.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isspace.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isupper.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isupper.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isupper.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isupper.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/isxdigit.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/isxdigit.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/isxdigit.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/isxdigit.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/tolower.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/tolower.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/tolower.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/tolower.c diff --git a/src/hyperlight_guest/third_party/musl/src/ctype/toupper.c b/src/hyperlight_guest_bin/third_party/musl/src/ctype/toupper.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/ctype/toupper.c rename to src/hyperlight_guest_bin/third_party/musl/src/ctype/toupper.c diff --git a/src/hyperlight_guest/third_party/musl/src/errno/__errno_location.c b/src/hyperlight_guest_bin/third_party/musl/src/errno/__errno_location.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/errno/__errno_location.c rename to src/hyperlight_guest_bin/third_party/musl/src/errno/__errno_location.c diff --git a/src/hyperlight_guest/third_party/musl/src/exit/assert.c b/src/hyperlight_guest_bin/third_party/musl/src/exit/assert.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/exit/assert.c rename to src/hyperlight_guest_bin/third_party/musl/src/exit/assert.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/__flt_rounds.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/__flt_rounds.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/__flt_rounds.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/__flt_rounds.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/fegetexceptflag.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/fegetexceptflag.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/fegetexceptflag.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/fegetexceptflag.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/feholdexcept.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/feholdexcept.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/feholdexcept.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/feholdexcept.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/fesetexceptflag.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/fesetexceptflag.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/fesetexceptflag.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/fesetexceptflag.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/fesetround.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/fesetround.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/fesetround.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/fesetround.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/feupdateenv.c b/src/hyperlight_guest_bin/third_party/musl/src/fenv/feupdateenv.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/feupdateenv.c rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/feupdateenv.c diff --git a/src/hyperlight_guest/third_party/musl/src/fenv/x86_64/fenv.s b/src/hyperlight_guest_bin/third_party/musl/src/fenv/x86_64/fenv.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/fenv/x86_64/fenv.s rename to src/hyperlight_guest_bin/third_party/musl/src/fenv/x86_64/fenv.s diff --git a/src/hyperlight_guest/third_party/musl/src/include/errno.h b/src/hyperlight_guest_bin/third_party/musl/src/include/errno.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/errno.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/errno.h diff --git a/src/hyperlight_guest/third_party/musl/src/include/features.h b/src/hyperlight_guest_bin/third_party/musl/src/include/features.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/features.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/features.h diff --git a/src/hyperlight_guest/third_party/musl/src/include/stdlib.h b/src/hyperlight_guest_bin/third_party/musl/src/include/stdlib.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/stdlib.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/stdlib.h diff --git a/src/hyperlight_guest/third_party/musl/src/include/string.h b/src/hyperlight_guest_bin/third_party/musl/src/include/string.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/string.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/string.h diff --git a/src/hyperlight_guest/third_party/musl/src/include/sys/time.h b/src/hyperlight_guest_bin/third_party/musl/src/include/sys/time.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/sys/time.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/sys/time.h diff --git a/src/hyperlight_guest/third_party/musl/src/include/time.h b/src/hyperlight_guest_bin/third_party/musl/src/include/time.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/include/time.h rename to src/hyperlight_guest_bin/third_party/musl/src/include/time.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/atomic.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/atomic.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/atomic.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/atomic.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/complex_impl.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/complex_impl.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/complex_impl.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/complex_impl.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/floatscan.c b/src/hyperlight_guest_bin/third_party/musl/src/internal/floatscan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/floatscan.c rename to src/hyperlight_guest_bin/third_party/musl/src/internal/floatscan.c diff --git a/src/hyperlight_guest/third_party/musl/src/internal/floatscan.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/floatscan.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/floatscan.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/floatscan.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/intscan.c b/src/hyperlight_guest_bin/third_party/musl/src/internal/intscan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/intscan.c rename to src/hyperlight_guest_bin/third_party/musl/src/internal/intscan.c diff --git a/src/hyperlight_guest/third_party/musl/src/internal/intscan.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/intscan.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/intscan.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/intscan.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/libm.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/libm.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/libm.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/libm.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/shgetc.c b/src/hyperlight_guest_bin/third_party/musl/src/internal/shgetc.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/shgetc.c rename to src/hyperlight_guest_bin/third_party/musl/src/internal/shgetc.c diff --git a/src/hyperlight_guest/third_party/musl/src/internal/shgetc.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/shgetc.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/shgetc.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/shgetc.h diff --git a/src/hyperlight_guest/third_party/musl/src/internal/stdio_impl.h b/src/hyperlight_guest_bin/third_party/musl/src/internal/stdio_impl.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/internal/stdio_impl.h rename to src/hyperlight_guest_bin/third_party/musl/src/internal/stdio_impl.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/__cos.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__cos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__cos.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__cos.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__cosdf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__cosdf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__cosdf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__cosdf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__cosl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__cosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__cosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__cosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__expo2.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__expo2.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__expo2.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__expo2.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__expo2f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__expo2f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__expo2f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__expo2f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__fpclassify.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassify.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__fpclassify.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassify.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__fpclassifyf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassifyf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__fpclassifyf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassifyf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__fpclassifyl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassifyl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__fpclassifyl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__fpclassifyl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__invtrigl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__invtrigl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__invtrigl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__invtrigl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__invtrigl.h b/src/hyperlight_guest_bin/third_party/musl/src/math/__invtrigl.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__invtrigl.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/__invtrigl.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_divzero.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_divzero.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_divzero.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_divzero.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_divzerof.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_divzerof.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_divzerof.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_divzerof.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_invalid.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalid.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_invalid.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalid.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_invalidf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalidf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_invalidf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalidf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_invalidl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalidl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_invalidl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_invalidl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_oflow.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_oflow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_oflow.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_oflow.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_oflowf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_oflowf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_oflowf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_oflowf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_uflow.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_uflow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_uflow.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_uflow.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_uflowf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_uflowf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_uflowf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_uflowf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_xflow.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_xflow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_xflow.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_xflow.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__math_xflowf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__math_xflowf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__math_xflowf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__math_xflowf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__polevll.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__polevll.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__polevll.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__polevll.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__rem_pio2.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__rem_pio2.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__rem_pio2_large.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2_large.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__rem_pio2_large.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2_large.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__rem_pio2f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__rem_pio2f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__rem_pio2l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__rem_pio2l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__rem_pio2l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__signbit.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__signbit.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__signbit.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__signbit.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__signbitf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__signbitf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__signbitf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__signbitf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__signbitl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__signbitl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__signbitl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__signbitl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__sin.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__sin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__sin.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__sin.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__sindf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__sindf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__sindf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__sindf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__sinl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__sinl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__sinl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__sinl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__tan.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__tan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__tan.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__tan.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__tandf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__tandf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__tandf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__tandf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/__tanl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/__tanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/__tanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/__tanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acos.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acos.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acos.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acosf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acosf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acosf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acosf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acosh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acosh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acosh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acosh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acoshf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acoshf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acoshf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acoshf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acoshl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acoshl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acoshl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acoshl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/acosl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/acosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/acosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/acosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asin.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asin.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asin.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asinf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asinf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asinf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asinf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asinh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asinh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asinh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asinh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asinhf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asinhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asinhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asinhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asinhl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asinhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asinhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asinhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/asinl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/asinl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/asinl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/asinl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atan.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atan.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atan.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atan2.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atan2.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atan2.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atan2.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atan2f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atan2f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atan2f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atan2f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atan2l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atan2l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atan2l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atan2l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atanf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atanf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atanf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atanf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atanh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atanh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atanh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atanh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atanhf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atanhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atanhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atanhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atanhl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atanhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atanhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atanhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/atanl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/atanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/atanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/atanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cbrt.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cbrt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cbrt.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cbrt.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cbrtf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cbrtf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cbrtf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cbrtf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cbrtl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cbrtl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cbrtl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cbrtl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ceil.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ceil.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ceil.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ceil.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ceilf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ceilf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ceilf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ceilf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ceill.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ceill.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ceill.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ceill.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/copysign.c b/src/hyperlight_guest_bin/third_party/musl/src/math/copysign.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/copysign.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/copysign.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/copysignf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/copysignf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/copysignf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/copysignf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/copysignl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/copysignl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/copysignl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/copysignl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cos.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cos.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cos.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cosf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cosf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cosf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cosf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cosh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cosh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cosh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cosh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/coshf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/coshf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/coshf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/coshf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/coshl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/coshl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/coshl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/coshl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/cosl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/cosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/cosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/cosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/erf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/erf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/erf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/erf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/erff.c b/src/hyperlight_guest_bin/third_party/musl/src/math/erff.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/erff.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/erff.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/erfl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/erfl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/erfl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/erfl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp10.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp10.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp10.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp10.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp10f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp10f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp10f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp10f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp10l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp10l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp10l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp10l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp2.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp2.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp2.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp2.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp2f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp2f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp2f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp2f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp2f_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp2f_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp2f_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp2f_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp2f_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/exp2f_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp2f_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp2f_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp2l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp2l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp2l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp2l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/exp_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/exp_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/exp_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/exp_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/exp_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/expf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/expf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/expf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/expf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/expl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/expl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/expl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/expl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/expm1.c b/src/hyperlight_guest_bin/third_party/musl/src/math/expm1.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/expm1.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/expm1.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/expm1f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/expm1f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/expm1f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/expm1f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/expm1l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/expm1l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/expm1l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/expm1l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fabs.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fabs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fabs.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fabs.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fabsf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fabsf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fabsf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fabsf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fabsl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fabsl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fabsl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fabsl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fdim.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fdim.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fdim.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fdim.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fdimf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fdimf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fdimf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fdimf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fdiml.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fdiml.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fdiml.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fdiml.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/finite.c b/src/hyperlight_guest_bin/third_party/musl/src/math/finite.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/finite.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/finite.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/finitef.c b/src/hyperlight_guest_bin/third_party/musl/src/math/finitef.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/finitef.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/finitef.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/floor.c b/src/hyperlight_guest_bin/third_party/musl/src/math/floor.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/floor.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/floor.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/floorf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/floorf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/floorf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/floorf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/floorl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/floorl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/floorl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/floorl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fma.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fma.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fma.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fma.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmaf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmaf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmaf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmaf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmal.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmal.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmal.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmal.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmax.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmax.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmax.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmax.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmaxf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmaxf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmaxf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmaxf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmaxl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmaxl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmaxl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmaxl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmin.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmin.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmin.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fminf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fminf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fminf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fminf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fminl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fminl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fminl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fminl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmod.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmod.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmod.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmod.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmodf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmodf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmodf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmodf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/fmodl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/fmodl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/fmodl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/fmodl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/frexp.c b/src/hyperlight_guest_bin/third_party/musl/src/math/frexp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/frexp.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/frexp.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/frexpf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/frexpf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/frexpf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/frexpf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/frexpl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/frexpl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/frexpl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/frexpl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/hypot.c b/src/hyperlight_guest_bin/third_party/musl/src/math/hypot.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/hypot.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/hypot.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/hypotf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/hypotf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/hypotf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/hypotf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/hypotl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/hypotl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/hypotl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/hypotl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ilogb.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ilogb.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ilogb.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ilogb.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ilogbf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ilogbf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ilogbf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ilogbf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ilogbl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ilogbl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ilogbl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ilogbl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/j0.c b/src/hyperlight_guest_bin/third_party/musl/src/math/j0.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/j0.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/j0.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/j0f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/j0f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/j0f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/j0f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/j1.c b/src/hyperlight_guest_bin/third_party/musl/src/math/j1.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/j1.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/j1.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/j1f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/j1f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/j1f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/j1f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/jn.c b/src/hyperlight_guest_bin/third_party/musl/src/math/jn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/jn.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/jn.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/jnf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/jnf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/jnf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/jnf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ldexp.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ldexp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ldexp.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ldexp.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ldexpf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ldexpf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ldexpf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ldexpf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/ldexpl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/ldexpl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/ldexpl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/ldexpl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lgamma.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lgamma.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lgamma.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lgamma.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lgamma_r.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lgamma_r.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lgamma_r.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lgamma_r.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lgammaf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lgammaf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lgammaf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lgammaf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lgammaf_r.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lgammaf_r.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lgammaf_r.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lgammaf_r.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lgammal.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lgammal.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lgammal.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lgammal.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llrint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llrint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llrint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llrint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llrintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llrintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llrintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llrintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llrintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llrintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llrintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llrintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llround.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llround.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llround.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llround.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llroundf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llroundf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llroundf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llroundf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/llroundl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/llroundl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/llroundl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/llroundl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log10.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log10.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log10.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log10.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log10f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log10f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log10f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log10f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log10l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log10l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log10l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log10l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log1p.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log1p.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log1p.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log1p.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log1pf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log1pf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log1pf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log1pf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log1pl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log1pl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log1pl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log1pl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log2.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log2_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/log2_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2f.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log2f.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2f.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2f.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2f_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log2f_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2f_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2f_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2f_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/log2f_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2f_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2f_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/log2l.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log2l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log2l.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log2l.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/log_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/log_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/log_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/log_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/log_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/log_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/logb.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logb.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logb.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logb.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/logbf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logbf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logbf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logbf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/logbl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logbl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logbl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logbl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/logf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/logf_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logf_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logf_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logf_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/logf_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/logf_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logf_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/logf_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/logl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/logl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/logl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/logl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lrint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lrint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lrint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lrint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lrintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lrintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lrintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lrintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lrintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lrintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lrintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lrintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lround.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lround.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lround.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lround.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lroundf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lroundf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lroundf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lroundf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/lroundl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/lroundl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/lroundl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/lroundl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/modf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/modf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/modf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/modf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/modff.c b/src/hyperlight_guest_bin/third_party/musl/src/math/modff.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/modff.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/modff.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/modfl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/modfl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/modfl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/modfl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nan.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nan.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nan.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nanf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nanf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nanf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nanf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nanl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nearbyint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nearbyint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nearbyint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nearbyint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nearbyintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nearbyintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nearbyintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nearbyintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nearbyintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nearbyintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nearbyintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nearbyintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nextafter.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nextafter.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nextafter.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nextafter.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nextafterf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nextafterf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nextafterf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nextafterf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nextafterl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nextafterl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nextafterl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nextafterl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nexttoward.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nexttoward.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nexttoward.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nexttoward.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nexttowardf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nexttowardf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nexttowardf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nexttowardf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/nexttowardl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/nexttowardl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/nexttowardl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/nexttowardl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/pow.c b/src/hyperlight_guest_bin/third_party/musl/src/math/pow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/pow.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/pow.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/pow_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/pow_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/pow_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/pow_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/pow_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/pow_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/pow_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/pow_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/powf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/powf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/powf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/powf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/powf_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/powf_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/powf_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/powf_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/powf_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/powf_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/powf_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/powf_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/powl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/powl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/powl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/powl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remainder.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remainder.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remainder.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remainder.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remainderf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remainderf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remainderf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remainderf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remainderl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remainderl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remainderl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remainderl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remquo.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remquo.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remquo.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remquo.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remquof.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remquof.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remquof.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remquof.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/remquol.c b/src/hyperlight_guest_bin/third_party/musl/src/math/remquol.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/remquol.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/remquol.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/rint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/rint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/rint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/rint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/rintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/rintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/rintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/rintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/rintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/rintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/rintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/rintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/round.c b/src/hyperlight_guest_bin/third_party/musl/src/math/round.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/round.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/round.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/roundf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/roundf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/roundf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/roundf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/roundl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/roundl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/roundl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/roundl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalb.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalb.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalb.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalb.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalbf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalbf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalbf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalbf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalbln.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalbln.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalbln.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalbln.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalblnf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalblnf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalblnf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalblnf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalblnl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalblnl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalblnl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalblnl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalbn.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalbn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalbn.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalbn.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalbnf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalbnf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalbnf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalbnf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/scalbnl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/scalbnl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/scalbnl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/scalbnl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/signgam.c b/src/hyperlight_guest_bin/third_party/musl/src/math/signgam.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/signgam.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/signgam.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/significand.c b/src/hyperlight_guest_bin/third_party/musl/src/math/significand.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/significand.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/significand.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/significandf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/significandf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/significandf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/significandf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sin.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sin.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sin.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sin.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sincos.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sincos.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sincos.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sincos.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sincosf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sincosf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sincosf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sincosf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sincosl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sincosl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sincosl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sincosl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sinf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sinf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sinf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sinf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sinh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sinh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sinh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sinh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sinhf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sinhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sinhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sinhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sinhl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sinhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sinhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sinhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sinl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sinl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sinl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sinl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sqrt.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sqrt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sqrt.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sqrt.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sqrt_data.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sqrt_data.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sqrt_data.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sqrt_data.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sqrt_data.h b/src/hyperlight_guest_bin/third_party/musl/src/math/sqrt_data.h similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sqrt_data.h rename to src/hyperlight_guest_bin/third_party/musl/src/math/sqrt_data.h diff --git a/src/hyperlight_guest/third_party/musl/src/math/sqrtf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sqrtf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sqrtf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sqrtf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/sqrtl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/sqrtl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/sqrtl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/sqrtl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tan.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tan.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tan.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tan.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tanf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tanf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tanf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tanf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tanh.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tanh.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tanh.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tanh.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tanhf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tanhf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tanhf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tanhf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tanhl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tanhl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tanhl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tanhl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tanl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tanl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tanl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tanl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tgamma.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tgamma.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tgamma.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tgamma.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tgammaf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tgammaf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tgammaf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tgammaf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/tgammal.c b/src/hyperlight_guest_bin/third_party/musl/src/math/tgammal.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/tgammal.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/tgammal.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/trunc.c b/src/hyperlight_guest_bin/third_party/musl/src/math/trunc.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/trunc.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/trunc.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/truncf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/truncf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/truncf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/truncf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/truncl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/truncl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/truncl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/truncl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/__invtrigl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/__invtrigl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/__invtrigl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/__invtrigl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/acosl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/acosl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/acosl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/acosl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/asinl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/asinl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/asinl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/asinl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/atan2l.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/atan2l.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/atan2l.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/atan2l.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/atanl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/atanl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/atanl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/atanl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/ceill.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/ceill.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/ceill.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/ceill.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/exp2l.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/exp2l.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/exp2l.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/exp2l.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/expl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/expl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/expl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/expl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/expm1l.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/expm1l.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/expm1l.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/expm1l.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fabs.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fabs.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabs.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fabsf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabsf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fabsf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabsf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fabsl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabsl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fabsl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fabsl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/floorl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/floorl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/floorl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/floorl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fma.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fma.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fma.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fma.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fmaf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fmaf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fmaf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fmaf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/fmodl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fmodl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/fmodl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/fmodl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/llrint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/llrint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/llrintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/llrintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/llrintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/llrintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/llrintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/log10l.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log10l.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/log10l.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log10l.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/log1pl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log1pl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/log1pl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log1pl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/log2l.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log2l.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/log2l.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/log2l.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/logl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/logl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/logl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/logl.s diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/lrint.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrint.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/lrint.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrint.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/lrintf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrintf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/lrintf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrintf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/lrintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/lrintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/lrintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/remainderl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/remainderl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/remainderl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/remainderl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/remquol.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/remquol.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/remquol.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/remquol.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/rintl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/rintl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/rintl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/rintl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrt.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrt.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrt.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrtf.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrtf.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrtf.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrtf.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrtl.c b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrtl.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/sqrtl.c rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/sqrtl.c diff --git a/src/hyperlight_guest/third_party/musl/src/math/x86_64/truncl.s b/src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/truncl.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/math/x86_64/truncl.s rename to src/hyperlight_guest_bin/third_party/musl/src/math/x86_64/truncl.s diff --git a/src/hyperlight_guest/third_party/musl/src/misc/a64l.c b/src/hyperlight_guest_bin/third_party/musl/src/misc/a64l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/misc/a64l.c rename to src/hyperlight_guest_bin/third_party/musl/src/misc/a64l.c diff --git a/src/hyperlight_guest/third_party/musl/src/misc/basename.c b/src/hyperlight_guest_bin/third_party/musl/src/misc/basename.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/misc/basename.c rename to src/hyperlight_guest_bin/third_party/musl/src/misc/basename.c diff --git a/src/hyperlight_guest/third_party/musl/src/misc/dirname.c b/src/hyperlight_guest_bin/third_party/musl/src/misc/dirname.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/misc/dirname.c rename to src/hyperlight_guest_bin/third_party/musl/src/misc/dirname.c diff --git a/src/hyperlight_guest/third_party/musl/src/prng/rand.c b/src/hyperlight_guest_bin/third_party/musl/src/prng/rand.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/prng/rand.c rename to src/hyperlight_guest_bin/third_party/musl/src/prng/rand.c diff --git a/src/hyperlight_guest/third_party/musl/src/setjmp/x86_64/longjmp.s b/src/hyperlight_guest_bin/third_party/musl/src/setjmp/x86_64/longjmp.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/setjmp/x86_64/longjmp.s rename to src/hyperlight_guest_bin/third_party/musl/src/setjmp/x86_64/longjmp.s diff --git a/src/hyperlight_guest/third_party/musl/src/setjmp/x86_64/setjmp.s b/src/hyperlight_guest_bin/third_party/musl/src/setjmp/x86_64/setjmp.s similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/setjmp/x86_64/setjmp.s rename to src/hyperlight_guest_bin/third_party/musl/src/setjmp/x86_64/setjmp.s diff --git a/src/hyperlight_guest/third_party/musl/src/stdio/__toread.c b/src/hyperlight_guest_bin/third_party/musl/src/stdio/__toread.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdio/__toread.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdio/__toread.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdio/__towrite.c b/src/hyperlight_guest_bin/third_party/musl/src/stdio/__towrite.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdio/__towrite.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdio/__towrite.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdio/__uflow.c b/src/hyperlight_guest_bin/third_party/musl/src/stdio/__uflow.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdio/__uflow.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdio/__uflow.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/abs.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/abs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/abs.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/abs.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/atof.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/atof.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/atof.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/atof.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/atoi.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/atoi.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/atoi.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/atoi.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/atol.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/atol.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/atol.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/atol.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/atoll.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/atoll.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/atoll.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/atoll.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/bsearch.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/bsearch.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/bsearch.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/bsearch.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/div.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/div.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/div.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/div.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/ecvt.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/ecvt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/ecvt.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/ecvt.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/fcvt.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/fcvt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/fcvt.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/fcvt.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/gcvt.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/gcvt.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/gcvt.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/gcvt.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/imaxabs.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/imaxabs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/imaxabs.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/imaxabs.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/imaxdiv.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/imaxdiv.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/imaxdiv.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/imaxdiv.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/labs.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/labs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/labs.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/labs.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/ldiv.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/ldiv.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/ldiv.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/ldiv.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/llabs.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/llabs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/llabs.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/llabs.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/lldiv.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/lldiv.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/lldiv.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/lldiv.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/qsort.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/qsort.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/qsort.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/qsort.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/qsort_nr.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/qsort_nr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/qsort_nr.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/qsort_nr.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/strtod.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/strtod.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/strtod.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/strtod.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/strtol.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/strtol.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/strtol.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/strtol.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/wcstod.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/wcstod.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/wcstod.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/wcstod.c diff --git a/src/hyperlight_guest/third_party/musl/src/stdlib/wcstol.c b/src/hyperlight_guest_bin/third_party/musl/src/stdlib/wcstol.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/stdlib/wcstol.c rename to src/hyperlight_guest_bin/third_party/musl/src/stdlib/wcstol.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/bcmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/bcmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/bcmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/bcmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/bcopy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/bcopy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/bcopy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/bcopy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/bzero.c b/src/hyperlight_guest_bin/third_party/musl/src/string/bzero.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/bzero.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/bzero.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/explicit_bzero.c b/src/hyperlight_guest_bin/third_party/musl/src/string/explicit_bzero.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/explicit_bzero.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/explicit_bzero.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/index.c b/src/hyperlight_guest_bin/third_party/musl/src/string/index.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/index.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/index.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memccpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memccpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memccpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memccpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memcmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memcmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memcmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memcmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memmem.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memmem.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memmem.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memmem.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memmove.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memmove.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memmove.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memmove.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/mempcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/mempcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/mempcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/mempcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memrchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memrchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memrchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memrchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/memset.c b/src/hyperlight_guest_bin/third_party/musl/src/string/memset.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/memset.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/memset.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/rindex.c b/src/hyperlight_guest_bin/third_party/musl/src/string/rindex.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/rindex.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/rindex.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/stpcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/stpcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/stpcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/stpcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/stpncpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/stpncpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/stpncpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/stpncpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcasecmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcasecmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcasecmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcasecmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcasestr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcasestr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcasestr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcasestr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcat.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcat.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcat.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcat.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strchrnul.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strchrnul.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strchrnul.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strchrnul.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strcspn.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strcspn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strcspn.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strcspn.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strdup.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strdup.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strdup.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strdup.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strerror_r.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strerror_r.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strerror_r.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strerror_r.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strlcat.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strlcat.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strlcat.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strlcat.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strlcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strlcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strlcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strlcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strlen.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strlen.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strlen.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strlen.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strncasecmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strncasecmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strncasecmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strncasecmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strncat.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strncat.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strncat.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strncat.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strncmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strncmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strncmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strncmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strncpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strncpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strncpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strncpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strndup.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strndup.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strndup.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strndup.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strnlen.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strnlen.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strnlen.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strnlen.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strpbrk.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strpbrk.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strpbrk.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strpbrk.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strrchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strrchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strrchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strrchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strsep.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strsep.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strsep.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strsep.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strspn.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strspn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strspn.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strspn.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strstr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strstr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strstr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strstr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strtok.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strtok.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strtok.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strtok.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strtok_r.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strtok_r.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strtok_r.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strtok_r.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/strverscmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/strverscmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/strverscmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/strverscmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcpcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcpcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcpcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcpcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcpncpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcpncpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcpncpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcpncpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscasecmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscasecmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscasecmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscasecmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscasecmp_l.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscasecmp_l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscasecmp_l.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscasecmp_l.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscat.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscat.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscat.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscat.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcschr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcschr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcschr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcschr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcscspn.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcscspn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcscspn.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcscspn.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsdup.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsdup.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsdup.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsdup.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcslen.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcslen.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcslen.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcslen.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsncasecmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsncasecmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsncasecmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsncasecmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsncasecmp_l.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsncasecmp_l.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsncasecmp_l.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsncasecmp_l.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsncat.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsncat.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsncat.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsncat.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsncmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsncmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsncmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsncmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsncpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsncpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsncpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsncpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsnlen.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsnlen.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsnlen.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsnlen.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcspbrk.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcspbrk.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcspbrk.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcspbrk.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsrchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsrchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsrchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsrchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsspn.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsspn.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsspn.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsspn.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcsstr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcsstr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcsstr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcsstr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcstok.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcstok.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcstok.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcstok.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wcswcs.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wcswcs.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wcswcs.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wcswcs.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wmemchr.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wmemchr.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wmemchr.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wmemchr.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wmemcmp.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wmemcmp.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wmemcmp.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wmemcmp.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wmemcpy.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wmemcpy.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wmemcpy.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wmemcpy.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wmemmove.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wmemmove.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wmemmove.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wmemmove.c diff --git a/src/hyperlight_guest/third_party/musl/src/string/wmemset.c b/src/hyperlight_guest_bin/third_party/musl/src/string/wmemset.c similarity index 100% rename from src/hyperlight_guest/third_party/musl/src/string/wmemset.c rename to src/hyperlight_guest_bin/third_party/musl/src/string/wmemset.c diff --git a/src/hyperlight_guest/third_party/printf/.gitattributes b/src/hyperlight_guest_bin/third_party/printf/.gitattributes similarity index 100% rename from src/hyperlight_guest/third_party/printf/.gitattributes rename to src/hyperlight_guest_bin/third_party/printf/.gitattributes diff --git a/src/hyperlight_guest/third_party/printf/.travis.yml b/src/hyperlight_guest_bin/third_party/printf/.travis.yml similarity index 100% rename from src/hyperlight_guest/third_party/printf/.travis.yml rename to src/hyperlight_guest_bin/third_party/printf/.travis.yml diff --git a/src/hyperlight_guest/third_party/printf/LICENSE b/src/hyperlight_guest_bin/third_party/printf/LICENSE similarity index 100% rename from src/hyperlight_guest/third_party/printf/LICENSE rename to src/hyperlight_guest_bin/third_party/printf/LICENSE diff --git a/src/hyperlight_guest/third_party/printf/Makefile b/src/hyperlight_guest_bin/third_party/printf/Makefile similarity index 100% rename from src/hyperlight_guest/third_party/printf/Makefile rename to src/hyperlight_guest_bin/third_party/printf/Makefile diff --git a/src/hyperlight_guest/third_party/printf/README.md b/src/hyperlight_guest_bin/third_party/printf/README.md similarity index 100% rename from src/hyperlight_guest/third_party/printf/README.md rename to src/hyperlight_guest_bin/third_party/printf/README.md diff --git a/src/hyperlight_guest/third_party/printf/codecov.yml b/src/hyperlight_guest_bin/third_party/printf/codecov.yml similarity index 100% rename from src/hyperlight_guest/third_party/printf/codecov.yml rename to src/hyperlight_guest_bin/third_party/printf/codecov.yml diff --git a/src/hyperlight_guest/third_party/printf/printf.c b/src/hyperlight_guest_bin/third_party/printf/printf.c similarity index 100% rename from src/hyperlight_guest/third_party/printf/printf.c rename to src/hyperlight_guest_bin/third_party/printf/printf.c diff --git a/src/hyperlight_guest/third_party/printf/printf.h b/src/hyperlight_guest_bin/third_party/printf/printf.h similarity index 100% rename from src/hyperlight_guest/third_party/printf/printf.h rename to src/hyperlight_guest_bin/third_party/printf/printf.h diff --git a/src/hyperlight_guest/third_party/printf/printf.patch b/src/hyperlight_guest_bin/third_party/printf/printf.patch similarity index 100% rename from src/hyperlight_guest/third_party/printf/printf.patch rename to src/hyperlight_guest_bin/third_party/printf/printf.patch diff --git a/src/hyperlight_guest/third_party/printf/test/catch.hpp b/src/hyperlight_guest_bin/third_party/printf/test/catch.hpp similarity index 100% rename from src/hyperlight_guest/third_party/printf/test/catch.hpp rename to src/hyperlight_guest_bin/third_party/printf/test/catch.hpp diff --git a/src/hyperlight_guest/third_party/printf/test/test_suite.cpp b/src/hyperlight_guest_bin/third_party/printf/test/test_suite.cpp similarity index 100% rename from src/hyperlight_guest/third_party/printf/test/test_suite.cpp rename to src/hyperlight_guest_bin/third_party/printf/test/test_suite.cpp diff --git a/src/hyperlight_guest_capi/Cargo.toml b/src/hyperlight_guest_capi/Cargo.toml index bf0d338be..66bc454ab 100644 --- a/src/hyperlight_guest_capi/Cargo.toml +++ b/src/hyperlight_guest_capi/Cargo.toml @@ -12,7 +12,8 @@ crate-type = ["staticlib"] workspace = true [dependencies] -hyperlight-guest = { workspace = true, default-features = true } +hyperlight-guest = { workspace = true, default-features = false } +hyperlight-guest-bin = { workspace = true, default-features = true } hyperlight-common = { workspace = true, default-features = false } log = { version = "0.4", default-features = false } diff --git a/src/hyperlight_guest_capi/README.md b/src/hyperlight_guest_capi/README.md index 3f15d9931..418b4ac61 100644 --- a/src/hyperlight_guest_capi/README.md +++ b/src/hyperlight_guest_capi/README.md @@ -1,4 +1,4 @@ -This is a c-api wrapper over the hyperlight-guest crate. The purpose of this crate is to allow the creation of guests in the c language. This crate generates a .lib/.a library file depending on the platform, as well necessary header files. +This is a c-api wrapper over the hyperlight-guest/hyperlight-guest-bin crate. The purpose of this crate is to allow the creation of guests in the c language. This crate generates a .lib/.a library file depending on the platform, as well necessary header files. For examples on how to use it, see the c [simpleguest](../tests/c_guests/c_simpleguest/). diff --git a/src/hyperlight_guest_capi/cbindgen.toml b/src/hyperlight_guest_capi/cbindgen.toml index 9c59ff4c4..89a4b93de 100644 --- a/src/hyperlight_guest_capi/cbindgen.toml +++ b/src/hyperlight_guest_capi/cbindgen.toml @@ -10,8 +10,8 @@ header = "/* This file is automatically generated by cbindgen from hyperlight_gu [parse] parse_deps = true -include = ["hyperlight-guest", "log", "hyperlight-common"] -extra_bindings = ["hyperlight-guest"] +include = ["hyperlight-guest", "hyperlight-guest-bin", "log", "hyperlight-common"] +extra_bindings = ["hyperlight-guest-bin"] [enum] prefix_with_name = true diff --git a/src/hyperlight_guest_capi/src/dispatch.rs b/src/hyperlight_guest_capi/src/dispatch.rs index aae90738c..a292769d5 100644 --- a/src/hyperlight_guest_capi/src/dispatch.rs +++ b/src/hyperlight_guest_capi/src/dispatch.rs @@ -8,9 +8,9 @@ use hyperlight_common::flatbuffer_wrappers::function_call::FunctionCall; use hyperlight_common::flatbuffer_wrappers::function_types::{ParameterType, ReturnType}; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_guest::error::{HyperlightGuestError, Result}; -use hyperlight_guest::guest_function_definition::GuestFunctionDefinition; -use hyperlight_guest::guest_function_register::GuestFunctionRegister; -use hyperlight_guest::host_function_call::call_host_function_internal; +use hyperlight_guest_bin::guest_function::definition::GuestFunctionDefinition; +use hyperlight_guest_bin::guest_function::register::GuestFunctionRegister; +use hyperlight_guest_bin::host_comm::call_host_function_without_returning_result; use crate::types::{FfiFunctionCall, FfiVec}; static mut REGISTERED_C_GUEST_FUNCTIONS: GuestFunctionRegister = GuestFunctionRegister::new(); @@ -95,6 +95,6 @@ pub extern "C" fn hl_call_host_function(function_call: &FfiFunctionCall) { // Use the non-generic internal implementation // The C API will then call specific getter functions to fetch the properly typed return value - let _ = call_host_function_internal(&func_name, Some(parameters), return_type) + let _ = call_host_function_without_returning_result(&func_name, Some(parameters), return_type) .expect("Failed to call host function"); } diff --git a/src/hyperlight_guest_capi/src/error.rs b/src/hyperlight_guest_capi/src/error.rs index 8e4845c58..49dde4b93 100644 --- a/src/hyperlight_guest_capi/src/error.rs +++ b/src/hyperlight_guest_capi/src/error.rs @@ -1,7 +1,7 @@ use core::ffi::c_char; use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; -use hyperlight_guest::guest_error::setError; +use hyperlight_guest_bin::guest_err::setError; #[unsafe(no_mangle)] pub extern "C" fn hl_set_error(err: ErrorCode, message: *const c_char) { @@ -12,10 +12,10 @@ pub extern "C" fn hl_set_error(err: ErrorCode, message: *const c_char) { #[unsafe(no_mangle)] pub extern "C" fn hl_abort_with_code(err: i32) { - hyperlight_guest::entrypoint::abort_with_code(&[err as u8]); + hyperlight_guest::exit::abort_with_code(&[err as u8]); } #[unsafe(no_mangle)] pub extern "C" fn hl_abort_with_code_and_message(err: i32, message: *const c_char) { - unsafe { hyperlight_guest::entrypoint::abort_with_code_and_message(&[err as u8], message) }; + unsafe { hyperlight_guest::exit::abort_with_code_and_message(&[err as u8], message) }; } diff --git a/src/hyperlight_guest_capi/src/flatbuffer.rs b/src/hyperlight_guest_capi/src/flatbuffer.rs index 959b8d2a9..a9717000d 100644 --- a/src/hyperlight_guest_capi/src/flatbuffer.rs +++ b/src/hyperlight_guest_capi/src/flatbuffer.rs @@ -2,7 +2,7 @@ use alloc::boxed::Box; use core::ffi::{c_char, CStr}; use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result; -use hyperlight_guest::host_function_call::get_host_return_value; +use hyperlight_guest_bin::host_comm::get_host_return_value; use crate::types::FfiVec; diff --git a/src/hyperlight_host/benches/benchmarks.rs b/src/hyperlight_host/benches/benchmarks.rs index fdabe8cae..560ef319d 100644 --- a/src/hyperlight_host/benches/benchmarks.rs +++ b/src/hyperlight_host/benches/benchmarks.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/build.rs b/src/hyperlight_host/build.rs index 4710d3cbd..4484e27d5 100644 --- a/src/hyperlight_host/build.rs +++ b/src/hyperlight_host/build.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/func_ctx/main.rs b/src/hyperlight_host/examples/func_ctx/main.rs index 4bfda0e23..9a6862cb8 100644 --- a/src/hyperlight_host/examples/func_ctx/main.rs +++ b/src/hyperlight_host/examples/func_ctx/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/guest-debugging/main.rs b/src/hyperlight_host/examples/guest-debugging/main.rs index fbdf3a84d..83c0c6b23 100644 --- a/src/hyperlight_host/examples/guest-debugging/main.rs +++ b/src/hyperlight_host/examples/guest-debugging/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/hello-world/main.rs b/src/hyperlight_host/examples/hello-world/main.rs index 77133ba83..57c0b4398 100644 --- a/src/hyperlight_host/examples/hello-world/main.rs +++ b/src/hyperlight_host/examples/hello-world/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/logging/main.rs b/src/hyperlight_host/examples/logging/main.rs index fc5e43f6c..fd2eddd51 100644 --- a/src/hyperlight_host/examples/logging/main.rs +++ b/src/hyperlight_host/examples/logging/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/metrics/main.rs b/src/hyperlight_host/examples/metrics/main.rs index cd8ae0bdc..4fd9f2183 100644 --- a/src/hyperlight_host/examples/metrics/main.rs +++ b/src/hyperlight_host/examples/metrics/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/tracing-chrome/main.rs b/src/hyperlight_host/examples/tracing-chrome/main.rs index 1d68aec89..a93e03fab 100644 --- a/src/hyperlight_host/examples/tracing-chrome/main.rs +++ b/src/hyperlight_host/examples/tracing-chrome/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/tracing-otlp/main.rs b/src/hyperlight_host/examples/tracing-otlp/main.rs index 51c0eb10c..55dacd98e 100644 --- a/src/hyperlight_host/examples/tracing-otlp/main.rs +++ b/src/hyperlight_host/examples/tracing-otlp/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/tracing-tracy/main.rs b/src/hyperlight_host/examples/tracing-tracy/main.rs index 1b2b6e5a3..1e5bc2c29 100644 --- a/src/hyperlight_host/examples/tracing-tracy/main.rs +++ b/src/hyperlight_host/examples/tracing-tracy/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/examples/tracing/main.rs b/src/hyperlight_host/examples/tracing/main.rs index e270b48d1..67f16cffa 100644 --- a/src/hyperlight_host/examples/tracing/main.rs +++ b/src/hyperlight_host/examples/tracing/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/error.rs b/src/hyperlight_host/src/error.rs index 7162f4fcf..8a143daac 100644 --- a/src/hyperlight_host/src/error.rs +++ b/src/hyperlight_host/src/error.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/call_ctx.rs b/src/hyperlight_host/src/func/call_ctx.rs index 412643c3d..baf47730f 100644 --- a/src/hyperlight_host/src/func/call_ctx.rs +++ b/src/hyperlight_host/src/func/call_ctx.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/guest_dispatch.rs b/src/hyperlight_host/src/func/guest_dispatch.rs index ad980b146..8531a4768 100644 --- a/src/hyperlight_host/src/func/guest_dispatch.rs +++ b/src/hyperlight_host/src/func/guest_dispatch.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/guest_err.rs b/src/hyperlight_host/src/func/guest_err.rs index a8fd87e5f..aa7ceb267 100644 --- a/src/hyperlight_host/src/func/guest_err.rs +++ b/src/hyperlight_host/src/func/guest_err.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/host_functions.rs b/src/hyperlight_host/src/func/host_functions.rs index 14c950faa..857f7fca7 100644 --- a/src/hyperlight_host/src/func/host_functions.rs +++ b/src/hyperlight_host/src/func/host_functions.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/mod.rs b/src/hyperlight_host/src/func/mod.rs index e813ea7d5..65dc2283f 100644 --- a/src/hyperlight_host/src/func/mod.rs +++ b/src/hyperlight_host/src/func/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/param_type.rs b/src/hyperlight_host/src/func/param_type.rs index 50de7f8c3..00f8aecf5 100644 --- a/src/hyperlight_host/src/func/param_type.rs +++ b/src/hyperlight_host/src/func/param_type.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/func/ret_type.rs b/src/hyperlight_host/src/func/ret_type.rs index 45bc36d34..16bfff90b 100644 --- a/src/hyperlight_host/src/func/ret_type.rs +++ b/src/hyperlight_host/src/func/ret_type.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hyperlight_surrogate/src/main.rs b/src/hyperlight_host/src/hyperlight_surrogate/src/main.rs index 68b2b6f1f..078e899fb 100644 --- a/src/hyperlight_host/src/hyperlight_surrogate/src/main.rs +++ b/src/hyperlight_host/src/hyperlight_surrogate/src/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/fpu.rs b/src/hyperlight_host/src/hypervisor/fpu.rs index 3cdd39134..f0b6cb6a2 100644 --- a/src/hyperlight_host/src/hypervisor/fpu.rs +++ b/src/hyperlight_host/src/hypervisor/fpu.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/arch.rs b/src/hyperlight_host/src/hypervisor/gdb/arch.rs index 5938112e3..e75eade74 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/arch.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/arch.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/event_loop.rs b/src/hyperlight_host/src/hypervisor/gdb/event_loop.rs index c21c66042..b1bd77665 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/event_loop.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/event_loop.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/kvm_debug.rs b/src/hyperlight_host/src/hypervisor/gdb/kvm_debug.rs index 354b385b3..cf9e58651 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/kvm_debug.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/kvm_debug.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/mod.rs b/src/hyperlight_host/src/hypervisor/gdb/mod.rs index 46c26d1dc..9ac795d23 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/mod.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/mshv_debug.rs b/src/hyperlight_host/src/hypervisor/gdb/mshv_debug.rs index 7d48fcae0..6107c415e 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/mshv_debug.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/mshv_debug.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/gdb/x86_64_target.rs b/src/hyperlight_host/src/hypervisor/gdb/x86_64_target.rs index a25098bf4..2aa82ac75 100644 --- a/src/hyperlight_host/src/hypervisor/gdb/x86_64_target.rs +++ b/src/hyperlight_host/src/hypervisor/gdb/x86_64_target.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/handlers.rs b/src/hyperlight_host/src/hypervisor/handlers.rs index 9dbb948af..4d76b0bf9 100644 --- a/src/hyperlight_host/src/hypervisor/handlers.rs +++ b/src/hyperlight_host/src/hypervisor/handlers.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/hyperv_linux.rs b/src/hyperlight_host/src/hypervisor/hyperv_linux.rs index 85dc514b5..0da2a9434 100644 --- a/src/hyperlight_host/src/hypervisor/hyperv_linux.rs +++ b/src/hyperlight_host/src/hypervisor/hyperv_linux.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/hyperv_windows.rs b/src/hyperlight_host/src/hypervisor/hyperv_windows.rs index 4a4ba591f..084fda388 100644 --- a/src/hyperlight_host/src/hypervisor/hyperv_windows.rs +++ b/src/hyperlight_host/src/hypervisor/hyperv_windows.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/hypervisor_handler.rs b/src/hyperlight_host/src/hypervisor/hypervisor_handler.rs index c7f46df9e..cf43cf3ca 100644 --- a/src/hyperlight_host/src/hypervisor/hypervisor_handler.rs +++ b/src/hyperlight_host/src/hypervisor/hypervisor_handler.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/kvm.rs b/src/hyperlight_host/src/hypervisor/kvm.rs index 3dd1cb1fc..b04464611 100644 --- a/src/hyperlight_host/src/hypervisor/kvm.rs +++ b/src/hyperlight_host/src/hypervisor/kvm.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/mod.rs b/src/hyperlight_host/src/hypervisor/mod.rs index 62cebe829..5f3aea052 100644 --- a/src/hyperlight_host/src/hypervisor/mod.rs +++ b/src/hyperlight_host/src/hypervisor/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/surrogate_process.rs b/src/hyperlight_host/src/hypervisor/surrogate_process.rs index 4ebbaec94..56da83074 100644 --- a/src/hyperlight_host/src/hypervisor/surrogate_process.rs +++ b/src/hyperlight_host/src/hypervisor/surrogate_process.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/surrogate_process_manager.rs b/src/hyperlight_host/src/hypervisor/surrogate_process_manager.rs index 7455148a4..ef3c367c8 100644 --- a/src/hyperlight_host/src/hypervisor/surrogate_process_manager.rs +++ b/src/hyperlight_host/src/hypervisor/surrogate_process_manager.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/windows_hypervisor_platform.rs b/src/hyperlight_host/src/hypervisor/windows_hypervisor_platform.rs index 14fd86b1d..711be5c39 100644 --- a/src/hyperlight_host/src/hypervisor/windows_hypervisor_platform.rs +++ b/src/hyperlight_host/src/hypervisor/windows_hypervisor_platform.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/hypervisor/wrappers.rs b/src/hyperlight_host/src/hypervisor/wrappers.rs index aa9943d6a..d6842e89c 100644 --- a/src/hyperlight_host/src/hypervisor/wrappers.rs +++ b/src/hyperlight_host/src/hypervisor/wrappers.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/lib.rs b/src/hyperlight_host/src/lib.rs index 6a974f23d..7682e0ee6 100644 --- a/src/hyperlight_host/src/lib.rs +++ b/src/hyperlight_host/src/lib.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/elf.rs b/src/hyperlight_host/src/mem/elf.rs index 1ac96a2c0..586e5906b 100644 --- a/src/hyperlight_host/src/mem/elf.rs +++ b/src/hyperlight_host/src/mem/elf.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/exe.rs b/src/hyperlight_host/src/mem/exe.rs index 05e6e445c..bf1724317 100644 --- a/src/hyperlight_host/src/mem/exe.rs +++ b/src/hyperlight_host/src/mem/exe.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/layout.rs b/src/hyperlight_host/src/mem/layout.rs index 08c0bab55..59a8c5ab7 100644 --- a/src/hyperlight_host/src/mem/layout.rs +++ b/src/hyperlight_host/src/mem/layout.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/memory_region.rs b/src/hyperlight_host/src/mem/memory_region.rs index 46177bb4b..b07f3aea3 100644 --- a/src/hyperlight_host/src/mem/memory_region.rs +++ b/src/hyperlight_host/src/mem/memory_region.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/mgr.rs b/src/hyperlight_host/src/mem/mgr.rs index 4854d90ab..8dfee2a7e 100644 --- a/src/hyperlight_host/src/mem/mgr.rs +++ b/src/hyperlight_host/src/mem/mgr.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/mod.rs b/src/hyperlight_host/src/mem/mod.rs index 0f66ec6b8..1bcc03eae 100644 --- a/src/hyperlight_host/src/mem/mod.rs +++ b/src/hyperlight_host/src/mem/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/ptr.rs b/src/hyperlight_host/src/mem/ptr.rs index eef1dea39..8fb3875e6 100644 --- a/src/hyperlight_host/src/mem/ptr.rs +++ b/src/hyperlight_host/src/mem/ptr.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/ptr_addr_space.rs b/src/hyperlight_host/src/mem/ptr_addr_space.rs index 3f84549a7..513f64d62 100644 --- a/src/hyperlight_host/src/mem/ptr_addr_space.rs +++ b/src/hyperlight_host/src/mem/ptr_addr_space.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/ptr_offset.rs b/src/hyperlight_host/src/mem/ptr_offset.rs index 9a3f3df27..ceff9210e 100644 --- a/src/hyperlight_host/src/mem/ptr_offset.rs +++ b/src/hyperlight_host/src/mem/ptr_offset.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/shared_mem.rs b/src/hyperlight_host/src/mem/shared_mem.rs index b976073b5..06cf2b845 100644 --- a/src/hyperlight_host/src/mem/shared_mem.rs +++ b/src/hyperlight_host/src/mem/shared_mem.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/shared_mem_snapshot.rs b/src/hyperlight_host/src/mem/shared_mem_snapshot.rs index 28d514b76..051b2c918 100644 --- a/src/hyperlight_host/src/mem/shared_mem_snapshot.rs +++ b/src/hyperlight_host/src/mem/shared_mem_snapshot.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/mem/shared_mem_tests.rs b/src/hyperlight_host/src/mem/shared_mem_tests.rs index 44c54bd03..10cb4b326 100644 --- a/src/hyperlight_host/src/mem/shared_mem_tests.rs +++ b/src/hyperlight_host/src/mem/shared_mem_tests.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/metrics/mod.rs b/src/hyperlight_host/src/metrics/mod.rs index 953702585..94f15779f 100644 --- a/src/hyperlight_host/src/metrics/mod.rs +++ b/src/hyperlight_host/src/metrics/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/config.rs b/src/hyperlight_host/src/sandbox/config.rs index 5c9f30f24..9e5f5cacb 100644 --- a/src/hyperlight_host/src/sandbox/config.rs +++ b/src/hyperlight_host/src/sandbox/config.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/host_funcs.rs b/src/hyperlight_host/src/sandbox/host_funcs.rs index 7bab361b3..eb407d7f0 100644 --- a/src/hyperlight_host/src/sandbox/host_funcs.rs +++ b/src/hyperlight_host/src/sandbox/host_funcs.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/hypervisor.rs b/src/hyperlight_host/src/sandbox/hypervisor.rs index 4ea4b68d7..7cd1154ee 100644 --- a/src/hyperlight_host/src/sandbox/hypervisor.rs +++ b/src/hyperlight_host/src/sandbox/hypervisor.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/initialized_multi_use.rs b/src/hyperlight_host/src/sandbox/initialized_multi_use.rs index 3ca9f5899..31e4c9568 100644 --- a/src/hyperlight_host/src/sandbox/initialized_multi_use.rs +++ b/src/hyperlight_host/src/sandbox/initialized_multi_use.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ limitations under the License. use std::sync::{Arc, Mutex}; +#[cfg(feature = "fuzzing")] use hyperlight_common::flatbuffer_wrappers::function_types::{ ParameterValue, ReturnType, ReturnValue, }; diff --git a/src/hyperlight_host/src/sandbox/mem_access.rs b/src/hyperlight_host/src/sandbox/mem_access.rs index 7bf4fbdc2..d4fffb9bc 100644 --- a/src/hyperlight_host/src/sandbox/mem_access.rs +++ b/src/hyperlight_host/src/sandbox/mem_access.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/mem_mgr.rs b/src/hyperlight_host/src/sandbox/mem_mgr.rs index aadaa5091..86e95bf8d 100644 --- a/src/hyperlight_host/src/sandbox/mem_mgr.rs +++ b/src/hyperlight_host/src/sandbox/mem_mgr.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/mod.rs b/src/hyperlight_host/src/sandbox/mod.rs index 3cad349d6..374faf722 100644 --- a/src/hyperlight_host/src/sandbox/mod.rs +++ b/src/hyperlight_host/src/sandbox/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/outb.rs b/src/hyperlight_host/src/sandbox/outb.rs index 4dc91207f..82f0dd5ba 100644 --- a/src/hyperlight_host/src/sandbox/outb.rs +++ b/src/hyperlight_host/src/sandbox/outb.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/uninitialized.rs b/src/hyperlight_host/src/sandbox/uninitialized.rs index 30c136c15..44357bc41 100644 --- a/src/hyperlight_host/src/sandbox/uninitialized.rs +++ b/src/hyperlight_host/src/sandbox/uninitialized.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox/uninitialized_evolve.rs b/src/hyperlight_host/src/sandbox/uninitialized_evolve.rs index 05c445790..5c371c782 100644 --- a/src/hyperlight_host/src/sandbox/uninitialized_evolve.rs +++ b/src/hyperlight_host/src/sandbox/uninitialized_evolve.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox_state/mod.rs b/src/hyperlight_host/src/sandbox_state/mod.rs index 3a7bd52d5..474cad72a 100644 --- a/src/hyperlight_host/src/sandbox_state/mod.rs +++ b/src/hyperlight_host/src/sandbox_state/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox_state/sandbox.rs b/src/hyperlight_host/src/sandbox_state/sandbox.rs index 8731191ea..862214bd4 100644 --- a/src/hyperlight_host/src/sandbox_state/sandbox.rs +++ b/src/hyperlight_host/src/sandbox_state/sandbox.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/sandbox_state/transition.rs b/src/hyperlight_host/src/sandbox_state/transition.rs index 48b808b02..2624568cb 100644 --- a/src/hyperlight_host/src/sandbox_state/transition.rs +++ b/src/hyperlight_host/src/sandbox_state/transition.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/seccomp/guest.rs b/src/hyperlight_host/src/seccomp/guest.rs index 3b34dd2f5..a5b693351 100644 --- a/src/hyperlight_host/src/seccomp/guest.rs +++ b/src/hyperlight_host/src/seccomp/guest.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/seccomp/mod.rs b/src/hyperlight_host/src/seccomp/mod.rs index 3379e2be2..9edce3ed2 100644 --- a/src/hyperlight_host/src/seccomp/mod.rs +++ b/src/hyperlight_host/src/seccomp/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/signal_handlers/mod.rs b/src/hyperlight_host/src/signal_handlers/mod.rs index 29c367dc0..bc8f02cf2 100644 --- a/src/hyperlight_host/src/signal_handlers/mod.rs +++ b/src/hyperlight_host/src/signal_handlers/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/signal_handlers/sigsys_signal_handler.rs b/src/hyperlight_host/src/signal_handlers/sigsys_signal_handler.rs index db5f10489..1bab82e1e 100644 --- a/src/hyperlight_host/src/signal_handlers/sigsys_signal_handler.rs +++ b/src/hyperlight_host/src/signal_handlers/sigsys_signal_handler.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/testing/log_values.rs b/src/hyperlight_host/src/testing/log_values.rs index 25995f403..7c5a00a49 100644 --- a/src/hyperlight_host/src/testing/log_values.rs +++ b/src/hyperlight_host/src/testing/log_values.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/src/testing/mod.rs b/src/hyperlight_host/src/testing/mod.rs index 9a3699df8..4085ea0a3 100644 --- a/src/hyperlight_host/src/testing/mod.rs +++ b/src/hyperlight_host/src/testing/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/tests/common/mod.rs b/src/hyperlight_host/tests/common/mod.rs index 4174b0195..b3d465bf3 100644 --- a/src/hyperlight_host/tests/common/mod.rs +++ b/src/hyperlight_host/tests/common/mod.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/tests/integration_test.rs b/src/hyperlight_host/tests/integration_test.rs index e19c78804..885b413fa 100644 --- a/src/hyperlight_host/tests/integration_test.rs +++ b/src/hyperlight_host/tests/integration_test.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_host/tests/sandbox_host_tests.rs b/src/hyperlight_host/tests/sandbox_host_tests.rs index 581e17a07..9321ae8fb 100644 --- a/src/hyperlight_host/tests/sandbox_host_tests.rs +++ b/src/hyperlight_host/tests/sandbox_host_tests.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_testing/src/lib.rs b/src/hyperlight_testing/src/lib.rs index a1d2cf6e0..a1e718ad9 100644 --- a/src/hyperlight_testing/src/lib.rs +++ b/src/hyperlight_testing/src/lib.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_testing/src/logger.rs b/src/hyperlight_testing/src/logger.rs index 113f11000..82ae21774 100644 --- a/src/hyperlight_testing/src/logger.rs +++ b/src/hyperlight_testing/src/logger.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_testing/src/simplelogger.rs b/src/hyperlight_testing/src/simplelogger.rs index e8363a556..0b1f3cb72 100644 --- a/src/hyperlight_testing/src/simplelogger.rs +++ b/src/hyperlight_testing/src/simplelogger.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/hyperlight_testing/src/tracing_subscriber.rs b/src/hyperlight_testing/src/tracing_subscriber.rs index 32f34c5b7..d94cd8484 100644 --- a/src/hyperlight_testing/src/tracing_subscriber.rs +++ b/src/hyperlight_testing/src/tracing_subscriber.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/tests/c_guests/c_callbackguest/main.c b/src/tests/c_guests/c_callbackguest/main.c index 1e94d6d5e..e4fa2a678 100644 --- a/src/tests/c_guests/c_callbackguest/main.c +++ b/src/tests/c_guests/c_callbackguest/main.c @@ -1,10 +1,10 @@ // Included from hyperlight_guest_capi/include #include "hyperlight_guest.h" -// Included from hyperlight_guest/third_party/libc +// Included from hyperlight_guest_bin/third_party/libc #include "stdint.h" #include "stdio.h" #include "string.h" -// Included from hyperlight_guest/third_party/printf +// Included from hyperlight_guest_bin/third_party/printf #include "printf.h" int print_output(const char *message) { diff --git a/src/tests/c_guests/c_simpleguest/main.c b/src/tests/c_guests/c_simpleguest/main.c index 8be8f8619..664b8441d 100644 --- a/src/tests/c_guests/c_simpleguest/main.c +++ b/src/tests/c_guests/c_simpleguest/main.c @@ -1,10 +1,10 @@ // Included from hyperlight_guest_capi/include #include "hyperlight_guest.h" -// Included from hyperlight_guest/third_party/libc +// Included from hyperlight_guest_bin/third_party/libc #include "stdint.h" #include "string.h" #include "stdlib.h" -// Included from hyperlight_guest/third_party/printf +// Included from hyperlight_guest_bin/third_party/printf #include "printf.h" #define GUEST_STACK_SIZE (65536) // default stack size diff --git a/src/tests/rust_guests/callbackguest/Cargo.lock b/src/tests/rust_guests/callbackguest/Cargo.lock index ddd20c2f1..f732f5e37 100644 --- a/src/tests/rust_guests/callbackguest/Cargo.lock +++ b/src/tests/rust_guests/callbackguest/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "anyhow" @@ -35,13 +35,14 @@ version = "0.1.0" dependencies = [ "hyperlight-common", "hyperlight-guest", + "hyperlight-guest-bin", ] [[package]] name = "cc" -version = "1.2.16" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "shlex", ] @@ -68,12 +69,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - [[package]] name = "hyperlight-common" version = "0.5.0" @@ -81,7 +76,6 @@ dependencies = [ "anyhow", "flatbuffers", "log", - "strum", ] [[package]] @@ -89,13 +83,21 @@ name = "hyperlight-guest" version = "0.5.0" dependencies = [ "anyhow", + "hyperlight-common", + "serde_json", +] + +[[package]] +name = "hyperlight-guest-bin" +version = "0.5.0" +dependencies = [ "buddy_system_allocator", "cc", "cfg-if", "glob", "hyperlight-common", + "hyperlight-guest", "log", - "serde_json", "spin 0.10.0", ] @@ -154,12 +156,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - [[package]] name = "ryu" version = "1.0.20" @@ -234,28 +230,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - [[package]] name = "syn" version = "2.0.100" diff --git a/src/tests/rust_guests/callbackguest/Cargo.toml b/src/tests/rust_guests/callbackguest/Cargo.toml index 0f9c01028..ccbdf6a0a 100644 --- a/src/tests/rust_guests/callbackguest/Cargo.toml +++ b/src/tests/rust_guests/callbackguest/Cargo.toml @@ -5,4 +5,5 @@ edition = "2021" [dependencies] hyperlight-guest = { path = "../../../hyperlight_guest" } +hyperlight-guest-bin = { path = "../../../hyperlight_guest_bin" } hyperlight-common = { path = "../../../hyperlight_common", default-features = false } \ No newline at end of file diff --git a/src/tests/rust_guests/callbackguest/src/main.rs b/src/tests/rust_guests/callbackguest/src/main.rs index bb2c61b50..93518b782 100644 --- a/src/tests/rust_guests/callbackguest/src/main.rs +++ b/src/tests/rust_guests/callbackguest/src/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,10 +32,10 @@ use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_common::flatbuffer_wrappers::guest_log_level::LogLevel; use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result; use hyperlight_guest::error::{HyperlightGuestError, Result}; -use hyperlight_guest::guest_function_definition::GuestFunctionDefinition; -use hyperlight_guest::guest_function_register::register_function; -use hyperlight_guest::host_function_call::{call_host_function, print_output_with_host_print}; -use hyperlight_guest::logging::log_message; +use hyperlight_guest_bin::guest_function::definition::GuestFunctionDefinition; +use hyperlight_guest_bin::guest_function::register::register_function; +use hyperlight_guest_bin::guest_logger::log_message; +use hyperlight_guest_bin::host_comm::{call_host_function, print_output_with_host_print}; fn send_message_to_host_method( method_name: &str, diff --git a/src/tests/rust_guests/dummyguest/src/main.rs b/src/tests/rust_guests/dummyguest/src/main.rs index fd15f81b1..01063dbdb 100644 --- a/src/tests/rust_guests/dummyguest/src/main.rs +++ b/src/tests/rust_guests/dummyguest/src/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/tests/rust_guests/simpleguest/Cargo.lock b/src/tests/rust_guests/simpleguest/Cargo.lock index 4d0274ee6..85a24ce42 100644 --- a/src/tests/rust_guests/simpleguest/Cargo.lock +++ b/src/tests/rust_guests/simpleguest/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "anyhow" @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.16" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "shlex", ] @@ -60,12 +60,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - [[package]] name = "hyperlight-common" version = "0.5.0" @@ -73,7 +67,6 @@ dependencies = [ "anyhow", "flatbuffers", "log", - "strum", ] [[package]] @@ -81,13 +74,21 @@ name = "hyperlight-guest" version = "0.5.0" dependencies = [ "anyhow", + "hyperlight-common", + "serde_json", +] + +[[package]] +name = "hyperlight-guest-bin" +version = "0.5.0" +dependencies = [ "buddy_system_allocator", "cc", "cfg-if", "glob", "hyperlight-common", + "hyperlight-guest", "log", - "serde_json", "spin 0.10.0", ] @@ -146,12 +147,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - [[package]] name = "ryu" version = "1.0.20" @@ -214,6 +209,7 @@ version = "0.4.0" dependencies = [ "hyperlight-common", "hyperlight-guest", + "hyperlight-guest-bin", "log", ] @@ -235,28 +231,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - [[package]] name = "syn" version = "2.0.100" diff --git a/src/tests/rust_guests/simpleguest/Cargo.toml b/src/tests/rust_guests/simpleguest/Cargo.toml index f414efe86..f2e75ee1c 100644 --- a/src/tests/rust_guests/simpleguest/Cargo.toml +++ b/src/tests/rust_guests/simpleguest/Cargo.toml @@ -5,5 +5,6 @@ edition = "2021" [dependencies] hyperlight-guest = { path = "../../../hyperlight_guest" } +hyperlight-guest-bin = { path = "../../../hyperlight_guest_bin" } hyperlight-common = { path = "../../../hyperlight_common", default-features = false } log = {version = "0.4", default-features = false } diff --git a/src/tests/rust_guests/simpleguest/src/main.rs b/src/tests/rust_guests/simpleguest/src/main.rs index 6311d8e2d..716eb9ece 100644 --- a/src/tests/rust_guests/simpleguest/src/main.rs +++ b/src/tests/rust_guests/simpleguest/src/main.rs @@ -1,5 +1,5 @@ /* -Copyright 2024 The Hyperlight Authors. +Copyright 2025 The Hyperlight Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -41,13 +41,15 @@ use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; use hyperlight_common::flatbuffer_wrappers::guest_log_level::LogLevel; use hyperlight_common::flatbuffer_wrappers::util::get_flatbuffer_result; use hyperlight_common::mem::PAGE_SIZE; -use hyperlight_guest::entrypoint::{abort_with_code, abort_with_code_and_message}; use hyperlight_guest::error::{HyperlightGuestError, Result}; -use hyperlight_guest::guest_function_definition::GuestFunctionDefinition; -use hyperlight_guest::guest_function_register::register_function; -use hyperlight_guest::host_function_call::{call_host_function, call_host_function_internal}; -use hyperlight_guest::memory::malloc; -use hyperlight_guest::{logging, MIN_STACK_ADDRESS}; +use hyperlight_guest::exit::{abort_with_code, abort_with_code_and_message}; +use hyperlight_guest_bin::guest_function::definition::GuestFunctionDefinition; +use hyperlight_guest_bin::guest_function::register::register_function; +use hyperlight_guest_bin::host_comm::{ + call_host_function, call_host_function_without_returning_result, +}; +use hyperlight_guest_bin::memory::malloc; +use hyperlight_guest_bin::{guest_logger, MIN_STACK_ADDRESS}; use log::{error, LevelFilter}; extern crate hyperlight_guest; @@ -1144,7 +1146,7 @@ pub fn guest_dispatch_function(function_call: FunctionCall) -> Result> { let message = "Hi this is a log message that will overwrite the shared buffer if the stack is not working correctly"; - logging::log_message( + guest_logger::log_message( LogLevel::Information, message, "source", @@ -1194,9 +1196,13 @@ fn fuzz_host_function(func: FunctionCall) -> Result> { // Because we do not know at compile time the actual return type of the host function to be called // we cannot use the `call_host_function` generic function. - // We need to use the `call_host_function_internal` function that does not retrieve the return + // We need to use the `call_host_function_without_returning_result` function that does not retrieve the return // value - call_host_function_internal(&host_func_name, Some(params), func.expected_return_type) - .expect("failed to call host function"); + call_host_function_without_returning_result( + &host_func_name, + Some(params), + func.expected_return_type, + ) + .expect("failed to call host function"); Ok(get_flatbuffer_result(())) } diff --git a/typos.toml b/typos.toml index 32d9e9fde..0477c7778 100644 --- a/typos.toml +++ b/typos.toml @@ -2,7 +2,7 @@ extend-ignore-identifiers-re = ["Fo"] [files] -extend-exclude = ["**/*.patch", "src/hyperlight_guest/third_party/**/*", "NOTICE.txt"] +extend-exclude = ["**/*.patch", "src/hyperlight_guest_bin/third_party/**/*", "NOTICE.txt"] [default.extend-words] # typ is used for field name as type is a reserved keyword