#![cfg(target_os = "macos")]
#![warn(missing_docs)]
pub mod error;
mod shim_ffi;
pub mod configuration;
pub mod device;
pub mod restore;
pub mod socket;
pub mod vm;
pub use error::VZError;
pub use configuration::{
GenericPlatform, LinuxBootLoader, MacAuxiliaryStorage, MacHardwareModel, MacMachineIdentifier,
MacOSBootLoader, MacPlatform, Platform, VirtualMachineConfiguration,
};
pub use device::{
DirectoryShare, EntropyDeviceConfiguration, LinuxRosettaDirectoryShare,
MacGraphicsDeviceConfiguration, MemoryBalloonDevice, MemoryBalloonDeviceConfiguration,
NetworkDeviceConfiguration, RosettaAvailability, SerialPortConfiguration, SharedDirectory,
SingleDirectoryShare, SocketDeviceConfiguration, StorageDeviceConfiguration,
VirtioFileSystemDeviceConfiguration, desired_network_mtu,
};
pub use socket::{VirtioSocketConnection, VirtioSocketDevice};
pub use restore::{MacOSConfigurationRequirements, MacOSInstaller, MacOSRestoreImage};
pub use vm::{VirtualMachine, VirtualMachineState};
#[must_use]
pub fn is_supported() -> bool {
unsafe { shim_ffi::abx_vz_supported() }
}
#[must_use]
pub fn min_cpu_count() -> u64 {
unsafe { shim_ffi::abx_vz_min_cpu_count() }
}
#[must_use]
pub fn max_cpu_count() -> u64 {
unsafe { shim_ffi::abx_vz_max_cpu_count() }
}
#[must_use]
pub fn min_memory_size() -> u64 {
unsafe { shim_ffi::abx_vz_min_memory_size() }
}
#[must_use]
pub fn max_memory_size() -> u64 {
unsafe { shim_ffi::abx_vz_max_memory_size() }
}