resource_table/
trace.rs

1use crate::types::{DevAddr, DevArea};
2use crate::{constants, types, util};
3
4#[repr(C)]
5#[derive(Clone, Debug)]
6pub struct Trace {
7    pub da: DevAddr,
8    pub len: u32,
9    pub reserved: u32,
10    pub name: [u8; constants::RPROC_MAX_NAME_LEN],
11}
12
13impl types::ResourceType for Trace {
14    const RESOURCE_TYPE: u32 = 2;
15}
16
17impl Trace {
18    pub const fn new(buf: DevArea, name: &str) -> Self {
19        Self {
20            da: buf.addr,
21            len: buf.len as u32,
22            reserved: 0,
23            name: util::str_to_array(name).expect("name too long"),
24        }
25    }
26}