lpc55_pac/ahb_secure_ctrl/
sec_vio_misc_info.rs1#[doc = "Register `sec_vio_misc_info[%s]` reader"]
2pub struct R(crate::R<SEC_VIO_MISC_INFO_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<SEC_VIO_MISC_INFO_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<SEC_VIO_MISC_INFO_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<SEC_VIO_MISC_INFO_SPEC>) -> Self {
13 R(reader)
14 }
15}
16#[doc = "security violation access read/write indicator.\n\nValue on reset: 0"]
17#[derive(Clone, Copy, Debug, PartialEq)]
18pub enum SEC_VIO_INFO_WRITE_A {
19 #[doc = "0: Read access."]
20 READ = 0,
21 #[doc = "1: Write access."]
22 WRITE = 1,
23}
24impl From<SEC_VIO_INFO_WRITE_A> for bool {
25 #[inline(always)]
26 fn from(variant: SEC_VIO_INFO_WRITE_A) -> Self {
27 variant as u8 != 0
28 }
29}
30#[doc = "Field `SEC_VIO_INFO_WRITE` reader - security violation access read/write indicator."]
31pub struct SEC_VIO_INFO_WRITE_R(crate::FieldReader<bool, SEC_VIO_INFO_WRITE_A>);
32impl SEC_VIO_INFO_WRITE_R {
33 #[inline(always)]
34 pub(crate) fn new(bits: bool) -> Self {
35 SEC_VIO_INFO_WRITE_R(crate::FieldReader::new(bits))
36 }
37 #[doc = r"Get enumerated values variant"]
38 #[inline(always)]
39 pub fn variant(&self) -> SEC_VIO_INFO_WRITE_A {
40 match self.bits {
41 false => SEC_VIO_INFO_WRITE_A::READ,
42 true => SEC_VIO_INFO_WRITE_A::WRITE,
43 }
44 }
45 #[doc = "Checks if the value of the field is `READ`"]
46 #[inline(always)]
47 pub fn is_read(&self) -> bool {
48 **self == SEC_VIO_INFO_WRITE_A::READ
49 }
50 #[doc = "Checks if the value of the field is `WRITE`"]
51 #[inline(always)]
52 pub fn is_write(&self) -> bool {
53 **self == SEC_VIO_INFO_WRITE_A::WRITE
54 }
55}
56impl core::ops::Deref for SEC_VIO_INFO_WRITE_R {
57 type Target = crate::FieldReader<bool, SEC_VIO_INFO_WRITE_A>;
58 #[inline(always)]
59 fn deref(&self) -> &Self::Target {
60 &self.0
61 }
62}
63#[doc = "security violation access data/code indicator.\n\nValue on reset: 0"]
64#[derive(Clone, Copy, Debug, PartialEq)]
65pub enum SEC_VIO_INFO_DATA_ACCESS_A {
66 #[doc = "0: Code access."]
67 CODE = 0,
68 #[doc = "1: Data access."]
69 DATA = 1,
70}
71impl From<SEC_VIO_INFO_DATA_ACCESS_A> for bool {
72 #[inline(always)]
73 fn from(variant: SEC_VIO_INFO_DATA_ACCESS_A) -> Self {
74 variant as u8 != 0
75 }
76}
77#[doc = "Field `SEC_VIO_INFO_DATA_ACCESS` reader - security violation access data/code indicator."]
78pub struct SEC_VIO_INFO_DATA_ACCESS_R(crate::FieldReader<bool, SEC_VIO_INFO_DATA_ACCESS_A>);
79impl SEC_VIO_INFO_DATA_ACCESS_R {
80 #[inline(always)]
81 pub(crate) fn new(bits: bool) -> Self {
82 SEC_VIO_INFO_DATA_ACCESS_R(crate::FieldReader::new(bits))
83 }
84 #[doc = r"Get enumerated values variant"]
85 #[inline(always)]
86 pub fn variant(&self) -> SEC_VIO_INFO_DATA_ACCESS_A {
87 match self.bits {
88 false => SEC_VIO_INFO_DATA_ACCESS_A::CODE,
89 true => SEC_VIO_INFO_DATA_ACCESS_A::DATA,
90 }
91 }
92 #[doc = "Checks if the value of the field is `CODE`"]
93 #[inline(always)]
94 pub fn is_code(&self) -> bool {
95 **self == SEC_VIO_INFO_DATA_ACCESS_A::CODE
96 }
97 #[doc = "Checks if the value of the field is `DATA`"]
98 #[inline(always)]
99 pub fn is_data(&self) -> bool {
100 **self == SEC_VIO_INFO_DATA_ACCESS_A::DATA
101 }
102}
103impl core::ops::Deref for SEC_VIO_INFO_DATA_ACCESS_R {
104 type Target = crate::FieldReader<bool, SEC_VIO_INFO_DATA_ACCESS_A>;
105 #[inline(always)]
106 fn deref(&self) -> &Self::Target {
107 &self.0
108 }
109}
110#[doc = "Field `SEC_VIO_INFO_MASTER_SEC_LEVEL` reader - bit \\[5:4\\]: master sec level and privilege level bit \\[7:6\\]: anti-pol value for master sec level and privilege level"]
111pub struct SEC_VIO_INFO_MASTER_SEC_LEVEL_R(crate::FieldReader<u8, u8>);
112impl SEC_VIO_INFO_MASTER_SEC_LEVEL_R {
113 #[inline(always)]
114 pub(crate) fn new(bits: u8) -> Self {
115 SEC_VIO_INFO_MASTER_SEC_LEVEL_R(crate::FieldReader::new(bits))
116 }
117}
118impl core::ops::Deref for SEC_VIO_INFO_MASTER_SEC_LEVEL_R {
119 type Target = crate::FieldReader<u8, u8>;
120 #[inline(always)]
121 fn deref(&self) -> &Self::Target {
122 &self.0
123 }
124}
125#[doc = "security violation master number\n\nValue on reset: 0"]
126#[derive(Clone, Copy, Debug, PartialEq)]
127#[repr(u8)]
128pub enum SEC_VIO_INFO_MASTER_A {
129 #[doc = "0: CPU0 Code."]
130 VALUE_0 = 0,
131 #[doc = "1: CPU0 System."]
132 VALUE_1 = 1,
133 #[doc = "2: CPU1 Data."]
134 VALUE_2 = 2,
135 #[doc = "3: CPU1 System."]
136 VALUE_3 = 3,
137 #[doc = "4: USB-HS Device."]
138 VALUE_4 = 4,
139 #[doc = "5: SDMA0."]
140 VALUE_5 = 5,
141 #[doc = "8: SDIO."]
142 VALUE_8 = 8,
143 #[doc = "9: PowerQuad."]
144 VALUE_9 = 9,
145 #[doc = "10: HASH."]
146 VALUE_10 = 10,
147 #[doc = "11: USB-FS Host."]
148 VALUE_11 = 11,
149 #[doc = "12: SDMA1."]
150 VALUE_12 = 12,
151}
152impl From<SEC_VIO_INFO_MASTER_A> for u8 {
153 #[inline(always)]
154 fn from(variant: SEC_VIO_INFO_MASTER_A) -> Self {
155 variant as _
156 }
157}
158#[doc = "Field `SEC_VIO_INFO_MASTER` reader - security violation master number"]
159pub struct SEC_VIO_INFO_MASTER_R(crate::FieldReader<u8, SEC_VIO_INFO_MASTER_A>);
160impl SEC_VIO_INFO_MASTER_R {
161 #[inline(always)]
162 pub(crate) fn new(bits: u8) -> Self {
163 SEC_VIO_INFO_MASTER_R(crate::FieldReader::new(bits))
164 }
165 #[doc = r"Get enumerated values variant"]
166 #[inline(always)]
167 pub fn variant(&self) -> Option<SEC_VIO_INFO_MASTER_A> {
168 match self.bits {
169 0 => Some(SEC_VIO_INFO_MASTER_A::VALUE_0),
170 1 => Some(SEC_VIO_INFO_MASTER_A::VALUE_1),
171 2 => Some(SEC_VIO_INFO_MASTER_A::VALUE_2),
172 3 => Some(SEC_VIO_INFO_MASTER_A::VALUE_3),
173 4 => Some(SEC_VIO_INFO_MASTER_A::VALUE_4),
174 5 => Some(SEC_VIO_INFO_MASTER_A::VALUE_5),
175 8 => Some(SEC_VIO_INFO_MASTER_A::VALUE_8),
176 9 => Some(SEC_VIO_INFO_MASTER_A::VALUE_9),
177 10 => Some(SEC_VIO_INFO_MASTER_A::VALUE_10),
178 11 => Some(SEC_VIO_INFO_MASTER_A::VALUE_11),
179 12 => Some(SEC_VIO_INFO_MASTER_A::VALUE_12),
180 _ => None,
181 }
182 }
183 #[doc = "Checks if the value of the field is `VALUE_0`"]
184 #[inline(always)]
185 pub fn is_value_0(&self) -> bool {
186 **self == SEC_VIO_INFO_MASTER_A::VALUE_0
187 }
188 #[doc = "Checks if the value of the field is `VALUE_1`"]
189 #[inline(always)]
190 pub fn is_value_1(&self) -> bool {
191 **self == SEC_VIO_INFO_MASTER_A::VALUE_1
192 }
193 #[doc = "Checks if the value of the field is `VALUE_2`"]
194 #[inline(always)]
195 pub fn is_value_2(&self) -> bool {
196 **self == SEC_VIO_INFO_MASTER_A::VALUE_2
197 }
198 #[doc = "Checks if the value of the field is `VALUE_3`"]
199 #[inline(always)]
200 pub fn is_value_3(&self) -> bool {
201 **self == SEC_VIO_INFO_MASTER_A::VALUE_3
202 }
203 #[doc = "Checks if the value of the field is `VALUE_4`"]
204 #[inline(always)]
205 pub fn is_value_4(&self) -> bool {
206 **self == SEC_VIO_INFO_MASTER_A::VALUE_4
207 }
208 #[doc = "Checks if the value of the field is `VALUE_5`"]
209 #[inline(always)]
210 pub fn is_value_5(&self) -> bool {
211 **self == SEC_VIO_INFO_MASTER_A::VALUE_5
212 }
213 #[doc = "Checks if the value of the field is `VALUE_8`"]
214 #[inline(always)]
215 pub fn is_value_8(&self) -> bool {
216 **self == SEC_VIO_INFO_MASTER_A::VALUE_8
217 }
218 #[doc = "Checks if the value of the field is `VALUE_9`"]
219 #[inline(always)]
220 pub fn is_value_9(&self) -> bool {
221 **self == SEC_VIO_INFO_MASTER_A::VALUE_9
222 }
223 #[doc = "Checks if the value of the field is `VALUE_10`"]
224 #[inline(always)]
225 pub fn is_value_10(&self) -> bool {
226 **self == SEC_VIO_INFO_MASTER_A::VALUE_10
227 }
228 #[doc = "Checks if the value of the field is `VALUE_11`"]
229 #[inline(always)]
230 pub fn is_value_11(&self) -> bool {
231 **self == SEC_VIO_INFO_MASTER_A::VALUE_11
232 }
233 #[doc = "Checks if the value of the field is `VALUE_12`"]
234 #[inline(always)]
235 pub fn is_value_12(&self) -> bool {
236 **self == SEC_VIO_INFO_MASTER_A::VALUE_12
237 }
238}
239impl core::ops::Deref for SEC_VIO_INFO_MASTER_R {
240 type Target = crate::FieldReader<u8, SEC_VIO_INFO_MASTER_A>;
241 #[inline(always)]
242 fn deref(&self) -> &Self::Target {
243 &self.0
244 }
245}
246impl R {
247 #[doc = "Bit 0 - security violation access read/write indicator."]
248 #[inline(always)]
249 pub fn sec_vio_info_write(&self) -> SEC_VIO_INFO_WRITE_R {
250 SEC_VIO_INFO_WRITE_R::new((self.bits & 0x01) != 0)
251 }
252 #[doc = "Bit 1 - security violation access data/code indicator."]
253 #[inline(always)]
254 pub fn sec_vio_info_data_access(&self) -> SEC_VIO_INFO_DATA_ACCESS_R {
255 SEC_VIO_INFO_DATA_ACCESS_R::new(((self.bits >> 1) & 0x01) != 0)
256 }
257 #[doc = "Bits 4:7 - bit \\[5:4\\]: master sec level and privilege level bit \\[7:6\\]: anti-pol value for master sec level and privilege level"]
258 #[inline(always)]
259 pub fn sec_vio_info_master_sec_level(&self) -> SEC_VIO_INFO_MASTER_SEC_LEVEL_R {
260 SEC_VIO_INFO_MASTER_SEC_LEVEL_R::new(((self.bits >> 4) & 0x0f) as u8)
261 }
262 #[doc = "Bits 8:11 - security violation master number"]
263 #[inline(always)]
264 pub fn sec_vio_info_master(&self) -> SEC_VIO_INFO_MASTER_R {
265 SEC_VIO_INFO_MASTER_R::new(((self.bits >> 8) & 0x0f) as u8)
266 }
267}
268#[doc = "most recent security violation miscellaneous information for AHB port n\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [sec_vio_misc_info](index.html) module"]
269pub struct SEC_VIO_MISC_INFO_SPEC;
270impl crate::RegisterSpec for SEC_VIO_MISC_INFO_SPEC {
271 type Ux = u32;
272}
273#[doc = "`read()` method returns [sec_vio_misc_info::R](R) reader structure"]
274impl crate::Readable for SEC_VIO_MISC_INFO_SPEC {
275 type Reader = R;
276}
277#[doc = "`reset()` method sets sec_vio_misc_info[%s]
278to value 0"]
279impl crate::Resettable for SEC_VIO_MISC_INFO_SPEC {
280 #[inline(always)]
281 fn reset_value() -> Self::Ux {
282 0
283 }
284}