Add Mpidr::from_aff* functions
Add functions for creating Mpidr instance from affinity 0-1-2 and
0-1-2-3 values.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I64df0f391f2f5bd4290398bc97e08458999870fd
diff --git a/src/lib.rs b/src/lib.rs
index 387a1c5..d38f1ca 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -262,6 +262,28 @@
pub aff3: Option<u8>,
}
+impl Mpidr {
+ /// Create Mpidr instance from aff3-0 values
+ pub const fn from_aff3210(aff3: u8, aff2: u8, aff1: u8, aff0: u8) -> Self {
+ Self {
+ aff0,
+ aff1,
+ aff2,
+ aff3: Some(aff3),
+ }
+ }
+
+ /// Create Mpidr instance from aff2-0 values
+ pub const fn from_aff210(aff2: u8, aff1: u8, aff0: u8) -> Self {
+ Self {
+ aff0,
+ aff1,
+ aff2,
+ aff3: None,
+ }
+ }
+}
+
impl TryFrom<u32> for Mpidr {
type Error = Error;