ddevmem

Crates.ioddevmem
lib.rsddevmem
version0.3.1
created_at2024-10-30 15:52:20.008091+00
updated_at2025-04-03 13:19:54.459875+00
descriptionLibrary for accessing the physical address space using /dev/mem similar to busybox devmem
homepage
repositoryhttps://github.com/dodeca1337/ddevmem
max_upload_size
id1428722
size23,262
Dodeca (dodeca1337)

documentation

README

ddevmem

Latest Version Documentation Downloads License

Rust library for accessing the physical address space using /dev/mem similar to busybox devmem

Installation

Add ddevmem to your Cargo.toml:

[dependencies]
ddevmem = "0.3.0"

Example

use ddevmem::{register_map, DevMem};

register_map! {
    pub unsafe map MyRegisterMap {
        0x00 => rw reg0: u32,
        0x04 => ro reg1: u32,
        0x08 => wo reg2: u32
    }
}

let devmem = unsafe { DevMem::new(0xD0DE_0000, None).unwrap() };
let mut reg_map = unsafe { MyRegisterMap::new(std::sync::Arc::new(devmem)).unwrap() };
let (reg0_address, reg0_offset) = (reg_map.reg0_address(), reg_map.reg0_offset());
let reg1_value = *reg_map.reg1();
*reg_map.reg2_mut() = reg1_value;

License

Ddevmem is distributed under the terms of the MIT license. See terms and conditions here.

Commit count: 17

cargo fmt