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}