@@ -8,7 +8,8 @@ pub mod pendings;
8
8
pub mod priorities;
9
9
pub mod threshold;
10
10
11
- pub use riscv_pac:: { HartIdNumber , InterruptNumber , PriorityNumber } ; // re-export useful riscv-pac traits
11
+ // re-export useful riscv-pac traits
12
+ pub use riscv_pac:: { HartIdNumber , InterruptNumber , PriorityNumber } ;
12
13
13
14
/// Trait for a PLIC peripheral.
14
15
///
@@ -145,6 +146,7 @@ impl<P: Plic> CTX<P> {
145
146
#[ cfg( test) ]
146
147
pub ( crate ) mod test {
147
148
use super :: { HartIdNumber , InterruptNumber , PriorityNumber } ;
149
+ use riscv_pac:: result:: { Error , Result } ;
148
150
149
151
#[ derive( Clone , Copy , Debug , Eq , PartialEq ) ]
150
152
#[ repr( u16 ) ]
@@ -181,9 +183,9 @@ pub(crate) mod test {
181
183
}
182
184
183
185
#[ inline]
184
- fn from_number ( number : u16 ) -> Result < Self , u16 > {
186
+ fn from_number ( number : u16 ) -> Result < Self > {
185
187
if number > Self :: MAX_INTERRUPT_NUMBER || number == 0 {
186
- Err ( number)
188
+ Err ( Error :: InvalidVariant ( number as usize ) )
187
189
} else {
188
190
// SAFETY: valid interrupt number
189
191
Ok ( unsafe { core:: mem:: transmute ( number) } )
@@ -200,9 +202,9 @@ pub(crate) mod test {
200
202
}
201
203
202
204
#[ inline]
203
- fn from_number ( number : u8 ) -> Result < Self , u8 > {
205
+ fn from_number ( number : u8 ) -> Result < Self > {
204
206
if number > Self :: MAX_PRIORITY_NUMBER {
205
- Err ( number)
207
+ Err ( Error :: InvalidVariant ( number as usize ) )
206
208
} else {
207
209
// SAFETY: valid priority number
208
210
Ok ( unsafe { core:: mem:: transmute ( number) } )
@@ -219,9 +221,9 @@ pub(crate) mod test {
219
221
}
220
222
221
223
#[ inline]
222
- fn from_number ( number : u16 ) -> Result < Self , u16 > {
224
+ fn from_number ( number : u16 ) -> Result < Self > {
223
225
if number > Self :: MAX_HART_ID_NUMBER {
224
- Err ( number)
226
+ Err ( Error :: InvalidVariant ( number as usize ) )
225
227
} else {
226
228
// SAFETY: valid context number
227
229
Ok ( unsafe { core:: mem:: transmute ( number) } )
@@ -241,8 +243,8 @@ pub(crate) mod test {
241
243
assert_eq ! ( Interrupt :: from_number( 3 ) , Ok ( Interrupt :: I3 ) ) ;
242
244
assert_eq ! ( Interrupt :: from_number( 4 ) , Ok ( Interrupt :: I4 ) ) ;
243
245
244
- assert_eq ! ( Interrupt :: from_number( 0 ) , Err ( 0 ) ) ;
245
- assert_eq ! ( Interrupt :: from_number( 5 ) , Err ( 5 ) ) ;
246
+ assert_eq ! ( Interrupt :: from_number( 0 ) , Err ( Error :: InvalidVariant ( 0 ) ) , ) ;
247
+ assert_eq ! ( Interrupt :: from_number( 5 ) , Err ( Error :: InvalidVariant ( 5 ) ) , ) ;
246
248
}
247
249
248
250
#[ test]
@@ -257,7 +259,7 @@ pub(crate) mod test {
257
259
assert_eq ! ( Priority :: from_number( 2 ) , Ok ( Priority :: P2 ) ) ;
258
260
assert_eq ! ( Priority :: from_number( 3 ) , Ok ( Priority :: P3 ) ) ;
259
261
260
- assert_eq ! ( Priority :: from_number( 4 ) , Err ( 4 ) ) ;
262
+ assert_eq ! ( Priority :: from_number( 4 ) , Err ( Error :: InvalidVariant ( 4 ) ) , ) ;
261
263
}
262
264
263
265
#[ test]
@@ -270,7 +272,7 @@ pub(crate) mod test {
270
272
assert_eq ! ( Context :: from_number( 1 ) , Ok ( Context :: C1 ) ) ;
271
273
assert_eq ! ( Context :: from_number( 2 ) , Ok ( Context :: C2 ) ) ;
272
274
273
- assert_eq ! ( Context :: from_number( 3 ) , Err ( 3 ) ) ;
275
+ assert_eq ! ( Context :: from_number( 3 ) , Err ( Error :: InvalidVariant ( 3 ) ) , ) ;
274
276
}
275
277
276
278
#[ allow( dead_code) ]
0 commit comments