fdt_raw/lib.rs
1//! Raw FDT parser without high-level abstractions.
2//!
3//! This crate provides a very low-level parser for Flattened Device Tree (FDT) files.
4//! It is designed to be a minimal dependency that only handles the binary format
5//! of device tree blobs without providing any node or property abstractions.
6//!
7//! # Features
8//!
9//! - `#![no_std]` compatible
10//! - Zero-copy parsing where possible
11//! - Direct access to the FDT structure blocks
12//! - Minimal dependencies
13//!
14//! # Example
15//!
16//! ```no_run
17//! use fdt_raw::{Fdt, Header};
18//!
19//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
20//! // Read FDT data from file or memory
21//! let data = std::fs::read("path/to/device.dtb")?;
22//!
23//! // Parse the header
24//! let header = Header::from_bytes(&data)?;
25//!
26//! println!("FDT version: {}", header.version);
27//! println!("Total size: {} bytes", header.totalsize);
28//!
29//! // Create the FDT parser
30//! let fdt = Fdt::from_bytes(&data)?;
31//!
32//! // Iterate over memory reservation entries
33//! for rsv in fdt.memory_reservations() {
34//! println!("Reserved: {:?} - {:?} bytes", rsv.address, rsv.size);
35//! }
36//! # Ok(())
37//! # }
38//! ```
39
40#![no_std]
41#![deny(warnings, missing_docs)]
42
43pub mod data;
44mod define;
45mod fdt;
46mod header;
47mod iter;
48mod node;
49
50mod fmt_utils;
51
52pub use define::*;
53pub use fdt::Fdt;
54pub use header::Header;
55pub use node::*;