1 //
2 // Copyright (c) 2010-2021 Antmicro
3 //
4 // This file is licensed under the MIT License.
5 // Full license text is available in 'licenses/MIT.txt'.
6 //
7 
8 using System.Collections.Generic;
9 using Antmicro.Renode.Core;
10 
11 namespace Antmicro.Renode.Peripherals.IRQControllers.PLIC
12 {
13     public interface IPlatformLevelInterruptController : IEmulationElement
14     {
15         /// <summary>
16         /// Setting this property to a value different than -1 causes all interrupts to be reported to a context with a given id.
17         ///
18         /// This is mostly for debugging purposes.
19         /// It allows to designate a single core (in a multi-core setup) to handle external interrupts making it easier to debug trap handlers.
20         /// </summary>
21         int ForcedContext { get; }
22 
23         IReadOnlyDictionary<int, IGPIO> Connections { get; }
24     }
25 }
26