1 //
2 // Copyright (c) 2010-2025 Antmicro
3 //
4 // This file is licensed under the MIT License.
5 // Full license text is available in 'licenses/MIT.txt'.
6 //
7 using Antmicro.Renode.Core;
8 using Antmicro.Renode.Core.Structure.Registers;
9 
10 namespace Antmicro.Renode.Peripherals.IRQControllers
11 {
12     public class MiV_CoreLevelInterruptor : CoreLevelInterruptor, IKnownSize
13     {
MiV_CoreLevelInterruptor(IMachine machine, long frequency, uint prescaler = 1, int numberOfTargets = 1)14         public MiV_CoreLevelInterruptor(IMachine machine, long frequency, uint prescaler = 1, int numberOfTargets = 1)
15             : base(machine, frequency, numberOfTargets, prescaler)
16         {
17             // we are extending the existing register map defined by the base class
18             AddRegister((long)Registers.Prescaler,
19                 new DoubleWordRegister(this).WithValueField(0, 32, FieldMode.Read, valueProviderCallback: _ => prescaler));
20         }
21 
22         private enum Registers : long
23         {
24             Prescaler = 0x5000
25         }
26     }
27 }
28