@@ -49,43 +49,43 @@ impl Mstatus {
49
49
/// User Interrupt Enable
50
50
#[ inline]
51
51
pub fn uie ( & self ) -> bool {
52
- self . bits & ( 1 << 0 ) == 1 << 0
52
+ self . bits . get_bit ( 0 )
53
53
}
54
54
55
55
/// Supervisor Interrupt Enable
56
56
#[ inline]
57
57
pub fn sie ( & self ) -> bool {
58
- self . bits & ( 1 << 1 ) == 1 << 1
58
+ self . bits . get_bit ( 1 )
59
59
}
60
60
61
61
/// Machine Interrupt Enable
62
62
#[ inline]
63
63
pub fn mie ( & self ) -> bool {
64
- self . bits & ( 1 << 3 ) == 1 << 3
64
+ self . bits . get_bit ( 3 )
65
65
}
66
66
67
67
/// User Previous Interrupt Enable
68
68
#[ inline]
69
69
pub fn upie ( & self ) -> bool {
70
- self . bits & ( 1 << 4 ) == 1 << 4
70
+ self . bits . get_bit ( 4 )
71
71
}
72
72
73
73
/// Supervisor Previous Interrupt Enable
74
74
#[ inline]
75
75
pub fn spie ( & self ) -> bool {
76
- self . bits & ( 1 << 5 ) == 1 << 5
76
+ self . bits . get_bit ( 5 )
77
77
}
78
78
79
79
/// User Previous Interrupt Enable
80
80
#[ inline]
81
81
pub fn mpie ( & self ) -> bool {
82
- self . bits & ( 1 << 7 ) == 1 << 7
82
+ self . bits . get_bit ( 7 )
83
83
}
84
84
85
85
/// Supervisor Previous Privilege Mode
86
86
#[ inline]
87
87
pub fn spp ( & self ) -> SPP {
88
- match self . bits & ( 1 << 8 ) == ( 1 << 8 ) {
88
+ match self . bits . get_bit ( 8 ) {
89
89
true => SPP :: Supervisor ,
90
90
false => SPP :: User ,
91
91
}
@@ -94,7 +94,7 @@ impl Mstatus {
94
94
/// Machine Previous Privilege Mode
95
95
#[ inline]
96
96
pub fn mpp ( & self ) -> MPP {
97
- match ( self . bits & ( 0b11 << 11 ) ) >> 11 {
97
+ match self . bits . get_bits ( 11 .. 13 ) {
98
98
0b00 => MPP :: User ,
99
99
0b01 => MPP :: Supervisor ,
100
100
0b11 => MPP :: Machine ,
@@ -141,26 +141,33 @@ clear!(0x300, __clear_mstatus);
141
141
set_clear_csr ! (
142
142
/// User Interrupt Enable
143
143
, set_uie, clear_uie, 1 << 0 ) ;
144
+
144
145
set_clear_csr ! (
145
146
/// Supervisor Interrupt Enable
146
147
, set_sie, clear_sie, 1 << 1 ) ;
148
+
147
149
set_clear_csr ! (
148
150
/// Machine Interrupt Enable
149
151
, set_mie, clear_mie, 1 << 3 ) ;
152
+
150
153
set_csr ! (
151
154
/// User Previous Interrupt Enable
152
155
, set_upie, 1 << 4 ) ;
156
+
153
157
set_csr ! (
154
158
/// Supervisor Previous Interrupt Enable
155
159
, set_spie, 1 << 5 ) ;
160
+
156
161
set_csr ! (
157
162
/// Machine Previous Interrupt Enable
158
163
, set_mpie, 1 << 7 ) ;
164
+
159
165
/// Supervisor Previous Privilege Mode
160
166
#[ inline]
161
167
pub unsafe fn set_spp ( spp : SPP ) {
162
168
_set ( ( spp as usize ) << 8 ) ;
163
169
}
170
+
164
171
/// Machine Previous Privilege Mode
165
172
#[ inline]
166
173
pub unsafe fn set_mpp ( mpp : MPP ) {
0 commit comments