Switch the current binary to use anyhow errors and add a proper argument number check
This commit is contained in:
7
Cargo.lock
generated
7
Cargo.lock
generated
@@ -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",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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)?;
|
||||||
|
|||||||
Reference in New Issue
Block a user