Files
DSA/dsa-emu/src/main.rs
T

33 lines
881 B
Rust

use clap::Parser;
use dsa::{BulkAllocStore, Emulator, MemoryMap, SharedState, args::DsaArgs};
use std::{sync::Arc, thread};
fn main() {
let args = DsaArgs::parse();
let mut emulator = Emulator::new(BulkAllocStore::new());
emulator.apply_memory_map(args.get_memory_map().unwrap_or_default());
let state = emulator.state_handle();
const STACK_SIZE: usize = 1024 * 1024 * 16;
let runner = thread::Builder::new()
.stack_size(STACK_SIZE)
.spawn(move || emulator.run())
.unwrap();
let observer = thread::spawn(|| observe(state));
runner.join().unwrap();
observer.join().unwrap();
}
/// todo: remove this!
fn observe(state: Arc<SharedState>) {
loop {
thread::sleep(std::time::Duration::from_millis(100));
let state = state.proc.load();
println!("GP Registers: {:?}", state.registers);
}
}