@@ -186,84 +186,15 @@ impl<P: Plic> CTX<P> {
186186
187187#[ cfg( test) ]
188188pub ( crate ) mod test {
189- use riscv_pac:: { result:: Error , HartIdNumber , InterruptNumber , PriorityNumber } ;
190-
191- #[ derive( Clone , Copy , Debug , Eq , PartialEq ) ]
192- #[ riscv:: pac_enum( unsafe ExternalInterruptNumber ) ]
193- pub ( crate ) enum Interrupt {
194- I1 = 1 ,
195- I2 = 2 ,
196- I3 = 3 ,
197- I4 = 4 ,
198- }
199-
200- #[ derive( Clone , Copy , Debug , Eq , PartialEq ) ]
201- #[ riscv:: pac_enum( unsafe PriorityNumber ) ]
202- pub ( crate ) enum Priority {
203- P0 = 0 ,
204- P1 = 1 ,
205- P2 = 2 ,
206- P3 = 3 ,
207- }
208-
209- #[ derive( Clone , Copy , Debug , Eq , PartialEq ) ]
210- #[ riscv:: pac_enum( unsafe HartIdNumber ) ]
211- pub ( crate ) enum Context {
212- C0 = 0 ,
213- C1 = 1 ,
214- C2 = 2 ,
215- }
216-
217- #[ test]
218- fn check_interrupt_enum ( ) {
219- assert_eq ! ( Interrupt :: I1 . number( ) , 1 ) ;
220- assert_eq ! ( Interrupt :: I2 . number( ) , 2 ) ;
221- assert_eq ! ( Interrupt :: I3 . number( ) , 3 ) ;
222- assert_eq ! ( Interrupt :: I4 . number( ) , 4 ) ;
223-
224- assert_eq ! ( Interrupt :: from_number( 1 ) , Ok ( Interrupt :: I1 ) ) ;
225- assert_eq ! ( Interrupt :: from_number( 2 ) , Ok ( Interrupt :: I2 ) ) ;
226- assert_eq ! ( Interrupt :: from_number( 3 ) , Ok ( Interrupt :: I3 ) ) ;
227- assert_eq ! ( Interrupt :: from_number( 4 ) , Ok ( Interrupt :: I4 ) ) ;
228-
229- assert_eq ! ( Interrupt :: from_number( 0 ) , Err ( Error :: InvalidVariant ( 0 ) ) , ) ;
230- assert_eq ! ( Interrupt :: from_number( 5 ) , Err ( Error :: InvalidVariant ( 5 ) ) , ) ;
231- }
232-
233- #[ test]
234- fn check_priority_enum ( ) {
235- assert_eq ! ( Priority :: P0 . number( ) , 0 ) ;
236- assert_eq ! ( Priority :: P1 . number( ) , 1 ) ;
237- assert_eq ! ( Priority :: P2 . number( ) , 2 ) ;
238- assert_eq ! ( Priority :: P3 . number( ) , 3 ) ;
239-
240- assert_eq ! ( Priority :: from_number( 0 ) , Ok ( Priority :: P0 ) ) ;
241- assert_eq ! ( Priority :: from_number( 1 ) , Ok ( Priority :: P1 ) ) ;
242- assert_eq ! ( Priority :: from_number( 2 ) , Ok ( Priority :: P2 ) ) ;
243- assert_eq ! ( Priority :: from_number( 3 ) , Ok ( Priority :: P3 ) ) ;
244-
245- assert_eq ! ( Priority :: from_number( 4 ) , Err ( Error :: InvalidVariant ( 4 ) ) , ) ;
246- }
247-
248- #[ test]
249- fn check_context_enum ( ) {
250- assert_eq ! ( Context :: C0 . number( ) , 0 ) ;
251- assert_eq ! ( Context :: C1 . number( ) , 1 ) ;
252- assert_eq ! ( Context :: C2 . number( ) , 2 ) ;
253-
254- assert_eq ! ( Context :: from_number( 0 ) , Ok ( Context :: C0 ) ) ;
255- assert_eq ! ( Context :: from_number( 1 ) , Ok ( Context :: C1 ) ) ;
256- assert_eq ! ( Context :: from_number( 2 ) , Ok ( Context :: C2 ) ) ;
257-
258- assert_eq ! ( Context :: from_number( 3 ) , Err ( Error :: InvalidVariant ( 3 ) ) , ) ;
259- }
189+ use crate :: test:: HartId ;
190+ use riscv_pac:: HartIdNumber ;
260191
261192 #[ allow( dead_code) ]
262193 #[ test]
263194 fn check_plic ( ) {
264195 crate :: plic_codegen!(
265196 base 0x0C00_0000 ,
266- harts [ Context :: C0 => 0 , Context :: C1 => 1 , Context :: C2 => 2 ] ,
197+ harts [ HartId :: H0 => 0 , HartId :: H1 => 1 , HartId :: H2 => 2 ] ,
267198 ) ;
268199
269200 let plic = PLIC :: new ( ) ;
@@ -273,10 +204,10 @@ pub(crate) mod test {
273204 assert_eq ! ( priorities. address( ) , 0x0C00_0000 ) ;
274205 assert_eq ! ( pendings. address( ) , 0x0C00_1000 ) ;
275206
276- for i in 0 ..=Context :: MAX_HART_ID_NUMBER {
277- let context = Context :: from_number ( i) . unwrap ( ) ;
207+ for i in 0 ..=HartId :: MAX_HART_ID_NUMBER {
208+ let hart_id = HartId :: from_number ( i) . unwrap ( ) ;
278209
279- let ctx = plic. ctx ( context ) ;
210+ let ctx = plic. ctx ( hart_id ) ;
280211
281212 assert_eq ! ( ctx. enables( ) . address( ) , 0x0C00_0000 + 0x2000 + i * 0x80 ) ;
282213 assert_eq ! (
@@ -289,8 +220,8 @@ pub(crate) mod test {
289220 ) ;
290221 }
291222
292- assert_eq ! ( plic. ctx0( ) , plic. ctx( Context :: C0 ) ) ;
293- assert_eq ! ( plic. ctx1( ) , plic. ctx( Context :: C1 ) ) ;
294- assert_eq ! ( plic. ctx2( ) , plic. ctx( Context :: C2 ) ) ;
223+ assert_eq ! ( plic. ctx0( ) , plic. ctx( HartId :: H0 ) ) ;
224+ assert_eq ! ( plic. ctx1( ) , plic. ctx( HartId :: H1 ) ) ;
225+ assert_eq ! ( plic. ctx2( ) , plic. ctx( HartId :: H2 ) ) ;
295226 }
296227}
0 commit comments