-
Notifications
You must be signed in to change notification settings - Fork 24
/
currentel.rs
46 lines (39 loc) · 1.07 KB
/
currentel.rs
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
// SPDX-License-Identifier: Apache-2.0 OR MIT
//
// Copyright (c) 2018-2023 by the author(s)
//
// Author(s):
// - Andre Richter <andre.o.richter@gmail.com>
//! Current Exception Level
//!
//! Holds the current Exception level.
use tock_registers::{interfaces::Readable, register_bitfields};
register_bitfields! {u64,
pub CurrentEL [
/// Current Exception level. Possible values of this field are:
///
/// 00 EL0
/// 01 EL1
/// 10 EL2
/// 11 EL3
///
/// When the HCR_EL2.NV bit is 1, Non-secure EL1 read accesses to the CurrentEL register
/// return the value of 0x2 in this field.
///
/// This field resets to a value that is architecturally UNKNOWN.
EL OFFSET(2) NUMBITS(2) [
EL0 = 0,
EL1 = 1,
EL2 = 2,
EL3 = 3
]
]
}
pub struct Reg;
impl Readable for Reg {
type T = u64;
type R = CurrentEL::Register;
sys_coproc_read_raw!(u64, "CurrentEL", "x");
}
#[allow(non_upper_case_globals)]
pub const CurrentEL: Reg = Reg {};