11use crate :: ManagedSlice ;
22use core:: alloc:: Allocator ;
33
4- #[ derive( Debug ) ]
4+ #[ derive( Debug , Clone , Copy ) ]
55pub struct IoApic {
66 pub id : u8 ,
77 /// The physical address at which to access this I/O APIC.
@@ -10,7 +10,7 @@ pub struct IoApic {
1010 pub global_system_interrupt_base : u32 ,
1111}
1212
13- #[ derive( Debug ) ]
13+ #[ derive( Debug , Clone , Copy ) ]
1414pub struct NmiLine {
1515 pub processor : NmiProcessor ,
1616 pub line : LocalInterruptLine ,
@@ -59,7 +59,7 @@ pub enum TriggerMode {
5959/// models. For example, if a device is connected to ISA IRQ 0 and IOAPIC input 2, an override will
6060/// appear mapping source 0 to GSI 2. Currently these will only be created for ISA interrupt
6161/// sources.
62- #[ derive( Debug ) ]
62+ #[ derive( Debug , Clone , Copy ) ]
6363pub struct InterruptSourceOverride {
6464 pub isa_source : u8 ,
6565 pub global_system_interrupt : u32 ,
@@ -69,14 +69,14 @@ pub struct InterruptSourceOverride {
6969
7070/// Describes a Global System Interrupt that should be enabled as non-maskable. Any source that is
7171/// non-maskable can not be used by devices.
72- #[ derive( Debug ) ]
72+ #[ derive( Debug , Clone , Copy ) ]
7373pub struct NmiSource {
7474 pub global_system_interrupt : u32 ,
7575 pub polarity : Polarity ,
7676 pub trigger_mode : TriggerMode ,
7777}
7878
79- #[ derive( Debug ) ]
79+ #[ derive( Debug , Clone ) ]
8080pub struct Apic < ' a , A >
8181where
8282 A : Allocator ,
@@ -116,7 +116,7 @@ where
116116 }
117117}
118118
119- #[ derive( Debug ) ]
119+ #[ derive( Debug , Clone ) ]
120120#[ non_exhaustive]
121121pub enum InterruptModel < ' a , A >
122122where
0 commit comments