MCPcopy Create free account
hub / github.com/LPC4/Full-Stack / write_word

Method write_word

crates/virtual-machine/src/devices/clint.rs:76–100  ·  view source on GitHub ↗
(&mut self, addr: u64, data: u32)

Source from the content-addressed store, hash-verified

74 match addr {
75 a if a == MTIME_BASE => {
76 self.mtime = (self.mtime & 0xFFFF_FFFF_0000_0000) | data as u64;
77 Ok(())
78 }
79 a if a == MTIME_BASE + 4 => {
80 self.mtime = (self.mtime & 0x0000_0000_FFFF_FFFF) | ((data as u64) << 32);
81 Ok(())
82 }
83 a if a == MTIMECMP_BASE => {
84 self.mtimecmp = (self.mtimecmp & 0xFFFF_FFFF_0000_0000) | data as u64;
85 Ok(())
86 }
87 a if a == MTIMECMP_BASE + 4 => {
88 self.mtimecmp = (self.mtimecmp & 0x0000_0000_FFFF_FFFF) | ((data as u64) << 32);
89 Ok(())
90 }
91 a if a == MSIP_BASE => {
92 self.msip = data & 1;
93 Ok(())
94 }
95 _ => Err(VmError::StoreAccessFault(addr)),
96 }
97 }
98
99 fn write_doubleword(&mut self, addr: u64, data: u64) -> Result<(), VmError> {
100 self.write_word(addr, data as u32)?;
101 self.write_word(addr + 4, (data >> 32) as u32)
102 }
103}

Callers 1

write_doublewordMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected