1 // 2 // Copyright (c) 2010-2023 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 using System; 8 9 using Antmicro.Renode.Peripherals; 10 11 namespace Antmicro.Renode.Utilities.RESD 12 { 13 public class RESDSampleCallbackAttribute : Attribute 14 { RESDSampleCallbackAttribute(SampleType sampleType, uint channel = 0, RESDStreamStatus status = RESDStreamStatus.OK, string domain = null)15 public RESDSampleCallbackAttribute(SampleType sampleType, uint channel = 0, RESDStreamStatus status = RESDStreamStatus.OK, string domain = null) 16 { 17 SampleType = sampleType; 18 ChannelId = channel; 19 Status = status; 20 Domain = domain; 21 } 22 23 public SampleType SampleType { get; } 24 public uint ChannelId { get; } 25 public RESDStreamStatus Status { get; } 26 public string Domain { get; } 27 } 28 29 public class OnRESDSample : RESDSampleCallbackAttribute 30 { OnRESDSample(SampleType sampleType, uint channel = 0, string domain = null)31 public OnRESDSample(SampleType sampleType, uint channel = 0, string domain = null) : base(sampleType, channel, RESDStreamStatus.OK, domain) 32 { 33 } 34 } 35 36 public class BeforeRESDSample : RESDSampleCallbackAttribute 37 { BeforeRESDSample(SampleType sampleType, uint channel = 0, string domain = null)38 public BeforeRESDSample(SampleType sampleType, uint channel = 0, string domain = null) : base(sampleType, channel, RESDStreamStatus.BeforeStream, domain) 39 { 40 } 41 } 42 43 public class AfterRESDSample : RESDSampleCallbackAttribute 44 { AfterRESDSample(SampleType sampleType, uint channel = 0, string domain = null)45 public AfterRESDSample(SampleType sampleType, uint channel = 0, string domain = null) : base(sampleType, channel, RESDStreamStatus.AfterStream, domain) 46 { 47 } 48 } 49 50 public interface IUnderstandRESD : IPeripheral {} 51 } 52