Skip to main content

pcode_types/
register.rs

1//! Processor registers as named, fixed-size slices of a memory space.
2
3use crate::space::SpaceId;
4use jstd::{Identifier, registry::Identified};
5use serde::{Deserialize, Serialize};
6
7/// A stable identifier for a [`Register`].
8#[derive(Identifier)]
9pub struct RegisterId(usize);
10
11/// A PCode register
12#[derive(Serialize, Deserialize)]
13pub struct Register {
14    pub name: Box<str>,
15
16    /// The name of the space this register is a part of
17    pub space: SpaceId,
18
19    /// The offset of this register in the space
20    pub offset: usize,
21
22    /// The size of this register in bytes
23    pub size: usize,
24}
25
26pub type RegisterRef<'b> = Identified<RegisterId, &'b Register>;
27
28pub type RegisterMutRef<'b> = Identified<RegisterId, &'b mut Register>;