File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change 1
1
//! mie register
2
2
3
3
use riscv_pac:: CoreInterruptNumber ;
4
+ use crate :: bits:: { bf_extract, bf_insert} ;
4
5
5
6
read_write_csr ! {
6
7
/// `mie` register
@@ -48,19 +49,19 @@ impl Mie {
48
49
/// Check if a specific core interrupt source is enabled.
49
50
#[ inline]
50
51
pub fn is_enabled < I : CoreInterruptNumber > ( & self , interrupt : I ) -> bool {
51
- ( self . bits & ( 1 << interrupt. number ( ) ) ) != 0
52
+ bf_extract ( self . bits , interrupt. number ( ) , 1 ) != 0
52
53
}
53
54
54
55
/// Enable a specific core interrupt source.
55
56
#[ inline]
56
57
pub fn enable < I : CoreInterruptNumber > ( & mut self , interrupt : I ) {
57
- self . bits |= 1 << interrupt. number ( ) ;
58
+ self . bits = bf_insert ( self . bits , interrupt. number ( ) , 1 , 1 ) ;
58
59
}
59
60
60
61
/// Disable a specific core interrupt source.
61
62
#[ inline]
62
63
pub fn disable < I : CoreInterruptNumber > ( & mut self , interrupt : I ) {
63
- self . bits &= ! ( 1 << interrupt. number ( ) ) ;
64
+ self . bits = bf_insert ( self . bits , interrupt. number ( ) , 1 , 0 ) ;
64
65
}
65
66
}
66
67
Original file line number Diff line number Diff line change 1
1
//! sie register
2
2
3
3
use riscv_pac:: CoreInterruptNumber ;
4
+ use crate :: bits:: { bf_insert, bf_extract} ;
4
5
5
6
read_write_csr ! {
6
7
/// sie register
@@ -30,19 +31,19 @@ impl Sie {
30
31
/// Check if a specific core interrupt source is enabled.
31
32
#[ inline]
32
33
pub fn is_enabled < I : CoreInterruptNumber > ( & self , interrupt : I ) -> bool {
33
- ( self . bits & ( 1 << interrupt. number ( ) ) ) != 0
34
+ bf_extract ( self . bits , interrupt. number ( ) , 1 ) != 0
34
35
}
35
36
36
37
/// Enable a specific core interrupt source.
37
38
#[ inline]
38
39
pub fn enable < I : CoreInterruptNumber > ( & mut self , interrupt : I ) {
39
- self . bits |= 1 << interrupt. number ( ) ;
40
+ self . bits = bf_insert ( self . bits , interrupt. number ( ) , 1 , 1 ) ;
40
41
}
41
42
42
43
/// Disable a specific core interrupt source.
43
44
#[ inline]
44
45
pub fn disable < I : CoreInterruptNumber > ( & mut self , interrupt : I ) {
45
- self . bits &= ! ( 1 << interrupt. number ( ) ) ;
46
+ self . bits = bf_insert ( self . bits , interrupt. number ( ) , 1 , 0 ) ;
46
47
}
47
48
}
48
49
You can’t perform that action at this time.
0 commit comments