Files
krata/crates/xen/xenclient/examples/boot.rs

37 lines
1.1 KiB
Rust
Raw Normal View History

use std::{env, process};
2024-01-30 17:42:55 -08:00
use xenclient::error::Result;
use xenclient::{DomainConfig, XenClient};
2024-01-09 22:39:32 -08:00
2024-02-23 04:37:53 +00:00
#[tokio::main]
async fn main() -> Result<()> {
2024-01-11 12:21:33 -08:00
env_logger::init();
let args: Vec<String> = env::args().collect();
if args.len() != 3 {
println!("usage: boot <kernel-image> <initrd>");
process::exit(1);
}
let kernel_image_path = args.get(1).expect("argument not specified");
let initrd_path = args.get(2).expect("argument not specified");
2024-04-02 00:56:18 +00:00
let client = XenClient::open(0).await?;
2024-01-17 05:22:47 -08:00
let config = DomainConfig {
2024-01-18 06:15:42 -08:00
backend_domid: 0,
2024-01-18 01:38:56 -08:00
name: "xenclient-test",
max_vcpus: 1,
2024-01-17 05:22:47 -08:00
mem_mb: 512,
2024-01-17 12:36:13 -08:00
kernel_path: kernel_image_path.as_str(),
initrd_path: initrd_path.as_str(),
cmdline: "debug elevator=noop",
2024-01-18 06:15:42 -08:00
disks: vec![],
channels: vec![],
vifs: vec![],
2024-01-22 02:15:53 -08:00
filesystems: vec![],
extra_keys: vec![],
extra_rw_paths: vec![],
event_channels: vec![],
};
let created = client.create(&config).await?;
println!("created domain {}", created.domid);
2024-01-09 22:39:32 -08:00
Ok(())
}