1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#[macro_export]
macro_rules! define_tlb_entry {
($($(#[doc = $rdoc:expr])* $vis:vis $name:ident $(
{ $(
$(#[doc = $fdoc:expr])*
$field:ident OFFSET($offset:literal) $(BITS($bits:literal))?
$([$($(#[doc = $fvdoc:expr])* $enum:ident = $value:expr),*])?
),* }
)?),*) => {
$(
#[allow(non_snake_case)]
#[allow(non_upper_case_globals)]
$(#[doc = $rdoc])*
$vis mod $name {
#[allow(unused_imports)]
use super::*;
$(
$(
$crate::register_field!(u64, $field, $offset $(, $bits)?);
$(#[doc = $fdoc])*
pub mod $field {
use super::*;
#[inline]
#[allow(unused_variables, dead_code)]
pub const fn with_value(value: u64) -> RegisterFieldValue<u64> {
RegisterFieldValue::<u64>::new($field, value)
}
#[inline]
#[allow(unused_variables, dead_code)]
pub const fn from_raw(value: u64) -> RegisterFieldValue<u64> {
RegisterFieldValue::<u64>::from_raw($field, value)
}
$(
$crate::register_field_values!($field, u64, $($($fvdoc)*, $enum = $value),*);
)*
}
)*
)*
}
)*
};
}