Switch the current binary to use anyhow errors and add a proper argument number check

This commit is contained in:
2025-12-21 19:06:23 +01:00
parent 2e1c0a7dce
commit 944ed573c6
3 changed files with 13 additions and 2 deletions

7
Cargo.lock generated
View File

@@ -2,6 +2,12 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 4 version = 4
[[package]]
name = "anyhow"
version = "1.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.176" version = "0.2.176"
@@ -21,5 +27,6 @@ dependencies = [
name = "trve" name = "trve"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"anyhow",
"memmap2", "memmap2",
] ]

View File

@@ -4,4 +4,5 @@ version = "0.0.0"
edition = "2024" edition = "2024"
[dependencies] [dependencies]
anyhow = "1.0.100"
memmap2 = "0.9.8" memmap2 = "0.9.8"

View File

@@ -19,6 +19,8 @@ use trve::{
mem::{DeviceEntry, MemAccessFault, MemConfig, MemDeviceInterface, PageNum, Ram}, mem::{DeviceEntry, MemAccessFault, MemConfig, MemDeviceInterface, PageNum, Ram},
}; };
use anyhow::{Result, bail};
use crate::basic_uart::BasicUart; use crate::basic_uart::BasicUart;
fn read_file_to_buffer(path: &str, buffer: &mut [u8]) -> io::Result<usize> { fn read_file_to_buffer(path: &str, buffer: &mut [u8]) -> io::Result<usize> {
@@ -41,14 +43,15 @@ fn read_file_to_buffer(path: &str, buffer: &mut [u8]) -> io::Result<usize> {
Ok(total_read) Ok(total_read)
} }
fn main() -> Result<(), Box<dyn Error>> { fn main() -> Result<()> {
let mut ram = Ram::try_new(16 * 1024 * 1024 / 4096)?; let mut ram = Ram::try_new(16 * 1024 * 1024 / 4096)?;
let buf = ram.buf_mut(); let buf = ram.buf_mut();
let args: Vec<String> = env::args().collect(); let args: Vec<String> = env::args().collect();
if args.len() != 2 { if args.len() != 2 {
eprintln!("USAGE: trve <ram_image>") eprintln!("USAGE: trve <ram_image>");
bail!("Wrong number of arguments");
} }
read_file_to_buffer(&args[1], buf)?; read_file_to_buffer(&args[1], buf)?;