Refactor project to be more modular

This commit is contained in:
2024-01-07 17:48:16 +01:00
parent 4510a36a10
commit 44f38fb443
19 changed files with 1038 additions and 848 deletions

View File

@@ -1,42 +1,25 @@
use super::config::PimWriter;
use super::config;
use pim_isa::{BankMode, Kernel, PimConfig};
#[derive(Debug)]
pub struct PimState {
kernel: Kernel,
writer: PimWriter,
// TODO return token and return to singlebank when dropped
pub fn set_bank_mode(bank_mode: BankMode) {
config::write(
serde_json_core::to_string::<PimConfig, 64>(&PimConfig {
kernel: None,
bank_mode: Some(bank_mode),
})
.unwrap()
.as_str(),
);
}
impl PimState {
pub fn new(kernel: &Kernel) -> Self {
Self {
kernel: kernel.clone(),
writer: PimWriter,
}
}
// TODO return token and return to singlebank when dropped
pub fn set_bank_mode(&mut self, bank_mode: BankMode) {
self.writer.write(
serde_json_core::to_string::<PimConfig, 64>(&PimConfig {
kernel: None,
bank_mode: Some(bank_mode),
})
.unwrap()
.as_str(),
);
}
pub fn set_kernel(&mut self) {
self.writer.write(
serde_json_core::to_string::<PimConfig, 2048>(&PimConfig {
kernel: Some(self.kernel.clone()),
bank_mode: None,
})
.unwrap()
.as_str(),
);
}
pub fn set_kernel(kernel: &Kernel) {
config::write(
serde_json_core::to_string::<PimConfig, 2048>(&PimConfig {
kernel: Some(kernel.clone()),
bank_mode: None,
})
.unwrap()
.as_str(),
);
}