1 //
2 // Copyright (c) 2010-2018 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 using System;
9 using System.Collections.Generic;
10 using System.Linq;
11 using Antmicro.Renode.Logging;
12 using Antmicro.Renode.Utilities;
13 using Antmicro.Renode.Debug;
14 using Antmicro.Renode.Peripherals.CPU;
15 
16 namespace Antmicro.Renode.Plugins.TracePlugin.Handlers
17 {
18     public class DefaultFunctionHandler : BaseFunctionHandler, IFunctionHandler
19     {
DefaultFunctionHandler(TranslationCPU cpu)20         public DefaultFunctionHandler(TranslationCPU cpu) : base(cpu)
21         {
22         }
23 
CallHandler(TranslationCPU cpu, ulong pc, string functionName, IEnumerable<object> arguments)24         public void CallHandler(TranslationCPU cpu, ulong pc, string functionName, IEnumerable<object> arguments)
25         {
26             Logger.Log(LogLevel.Debug, "Call {0} @ 0x{1:X} ({2})",functionName, pc, arguments.Stringify(", "));
27         }
28 
ReturnHandler(TranslationCPU cpu, ulong pc, string functionName, IEnumerable<object> argument)29         public void ReturnHandler(TranslationCPU cpu, ulong pc, string functionName, IEnumerable<object> argument)
30         {
31             Logger.Log(LogLevel.Debug, "Return from {0} @ 0x{1:X} ({2})",functionName, pc, argument.First());
32         }
33 
34         public IEnumerable<FunctionCallParameter> CallParameters
35         {
36             get;
37             set;
38         }
39 
40         public FunctionCallParameter? ReturnParameter
41         {
42             get;
43             set;
44         }
45 
46     }
47 }