1 /********************************************************
2 *
3 * Warning!
4 * This file was generated automatically.
5 * Please do not edit. Changes should be made in the
6 * appropriate *.tt file.
7 *
8 */
9 
10 using Antmicro.Renode.Core.Structure.Registers;
11 using Antmicro.Renode.Exceptions;
12 using Antmicro.Renode.Peripherals;
13 
14 namespace Antmicro.Renode.Hooks
15 {
16     public static class RegisterCollectionHookExtensions
17     {
AddBeforeReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)18         public static void AddBeforeReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)
19         {
20             var engine = new RegisterCollectionHookPythonEngine<byte, ByteRegisterCollection>(@this, script);
21             @this.AddBeforeReadHook<byte, ByteRegisterCollection>(offset, (addr) =>
22             {
23                 engine.Hook(addr, null);
24                 return engine.Value;
25             });
26         }
27 
AddAfterReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)28         public static void AddAfterReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)
29         {
30             var engine = new RegisterCollectionHookPythonEngine<byte, ByteRegisterCollection>(@this, script);
31             @this.AddAfterReadHook<byte, ByteRegisterCollection>(offset, (addr, value) =>
32             {
33                 engine.Hook(addr, value);
34                 return engine.Value;
35             });
36         }
37 
AddBeforeWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)38         public static void AddBeforeWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)
39         {
40             var engine = new RegisterCollectionHookPythonEngine<byte, ByteRegisterCollection>(@this, script);
41             @this.AddBeforeWriteHook<byte, ByteRegisterCollection>(offset, (addr, value) =>
42             {
43                 engine.Hook(addr, value);
44                 return engine.Value;
45             });
46         }
47 
AddAfterWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)48         public static void AddAfterWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset, string script)
49         {
50 
51             var engine = new RegisterCollectionHookPythonEngine<byte, ByteRegisterCollection>(@this, script);
52             @this.AddAfterWriteHook<byte, ByteRegisterCollection>(offset, (addr, value) =>
53             {
54                 engine.Hook(addr, value);
55             });
56         }
57 
RemoveBeforeReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)58         public static void RemoveBeforeReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)
59         {
60             @this.RemoveBeforeReadHook(offset);
61         }
62 
RemoveAfterReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)63         public static void RemoveAfterReadByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)
64         {
65             @this.RemoveAfterReadHook(offset);
66         }
67 
RemoveBeforeWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)68         public static void RemoveBeforeWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)
69         {
70             @this.RemoveBeforeWriteHook(offset);
71         }
72 
RemoveAfterWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)73         public static void RemoveAfterWriteByteHook(this IProvidesRegisterCollection<ByteRegisterCollection> @this, long offset)
74         {
75             @this.RemoveAfterWriteHook(offset);
76         }
77 
AddBeforeReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)78         public static void AddBeforeReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)
79         {
80             var engine = new RegisterCollectionHookPythonEngine<ushort, WordRegisterCollection>(@this, script);
81             @this.AddBeforeReadHook<ushort, WordRegisterCollection>(offset, (addr) =>
82             {
83                 engine.Hook(addr, null);
84                 return engine.Value;
85             });
86         }
87 
AddAfterReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)88         public static void AddAfterReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)
89         {
90             var engine = new RegisterCollectionHookPythonEngine<ushort, WordRegisterCollection>(@this, script);
91             @this.AddAfterReadHook<ushort, WordRegisterCollection>(offset, (addr, value) =>
92             {
93                 engine.Hook(addr, value);
94                 return engine.Value;
95             });
96         }
97 
AddBeforeWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)98         public static void AddBeforeWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)
99         {
100             var engine = new RegisterCollectionHookPythonEngine<ushort, WordRegisterCollection>(@this, script);
101             @this.AddBeforeWriteHook<ushort, WordRegisterCollection>(offset, (addr, value) =>
102             {
103                 engine.Hook(addr, value);
104                 return engine.Value;
105             });
106         }
107 
AddAfterWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)108         public static void AddAfterWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset, string script)
109         {
110 
111             var engine = new RegisterCollectionHookPythonEngine<ushort, WordRegisterCollection>(@this, script);
112             @this.AddAfterWriteHook<ushort, WordRegisterCollection>(offset, (addr, value) =>
113             {
114                 engine.Hook(addr, value);
115             });
116         }
117 
RemoveBeforeReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)118         public static void RemoveBeforeReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)
119         {
120             @this.RemoveBeforeReadHook(offset);
121         }
122 
RemoveAfterReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)123         public static void RemoveAfterReadWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)
124         {
125             @this.RemoveAfterReadHook(offset);
126         }
127 
RemoveBeforeWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)128         public static void RemoveBeforeWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)
129         {
130             @this.RemoveBeforeWriteHook(offset);
131         }
132 
RemoveAfterWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)133         public static void RemoveAfterWriteWordHook(this IProvidesRegisterCollection<WordRegisterCollection> @this, long offset)
134         {
135             @this.RemoveAfterWriteHook(offset);
136         }
137 
AddBeforeReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)138         public static void AddBeforeReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)
139         {
140             var engine = new RegisterCollectionHookPythonEngine<uint, DoubleWordRegisterCollection>(@this, script);
141             @this.AddBeforeReadHook<uint, DoubleWordRegisterCollection>(offset, (addr) =>
142             {
143                 engine.Hook(addr, null);
144                 return engine.Value;
145             });
146         }
147 
AddAfterReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)148         public static void AddAfterReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)
149         {
150             var engine = new RegisterCollectionHookPythonEngine<uint, DoubleWordRegisterCollection>(@this, script);
151             @this.AddAfterReadHook<uint, DoubleWordRegisterCollection>(offset, (addr, value) =>
152             {
153                 engine.Hook(addr, value);
154                 return engine.Value;
155             });
156         }
157 
AddBeforeWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)158         public static void AddBeforeWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)
159         {
160             var engine = new RegisterCollectionHookPythonEngine<uint, DoubleWordRegisterCollection>(@this, script);
161             @this.AddBeforeWriteHook<uint, DoubleWordRegisterCollection>(offset, (addr, value) =>
162             {
163                 engine.Hook(addr, value);
164                 return engine.Value;
165             });
166         }
167 
AddAfterWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)168         public static void AddAfterWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset, string script)
169         {
170 
171             var engine = new RegisterCollectionHookPythonEngine<uint, DoubleWordRegisterCollection>(@this, script);
172             @this.AddAfterWriteHook<uint, DoubleWordRegisterCollection>(offset, (addr, value) =>
173             {
174                 engine.Hook(addr, value);
175             });
176         }
177 
RemoveBeforeReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)178         public static void RemoveBeforeReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)
179         {
180             @this.RemoveBeforeReadHook(offset);
181         }
182 
RemoveAfterReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)183         public static void RemoveAfterReadDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)
184         {
185             @this.RemoveAfterReadHook(offset);
186         }
187 
RemoveBeforeWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)188         public static void RemoveBeforeWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)
189         {
190             @this.RemoveBeforeWriteHook(offset);
191         }
192 
RemoveAfterWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)193         public static void RemoveAfterWriteDoubleWordHook(this IProvidesRegisterCollection<DoubleWordRegisterCollection> @this, long offset)
194         {
195             @this.RemoveAfterWriteHook(offset);
196         }
197 
AddBeforeReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)198         public static void AddBeforeReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)
199         {
200             var engine = new RegisterCollectionHookPythonEngine<ulong, QuadWordRegisterCollection>(@this, script);
201             @this.AddBeforeReadHook<ulong, QuadWordRegisterCollection>(offset, (addr) =>
202             {
203                 engine.Hook(addr, null);
204                 return engine.Value;
205             });
206         }
207 
AddAfterReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)208         public static void AddAfterReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)
209         {
210             var engine = new RegisterCollectionHookPythonEngine<ulong, QuadWordRegisterCollection>(@this, script);
211             @this.AddAfterReadHook<ulong, QuadWordRegisterCollection>(offset, (addr, value) =>
212             {
213                 engine.Hook(addr, value);
214                 return engine.Value;
215             });
216         }
217 
AddBeforeWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)218         public static void AddBeforeWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)
219         {
220             var engine = new RegisterCollectionHookPythonEngine<ulong, QuadWordRegisterCollection>(@this, script);
221             @this.AddBeforeWriteHook<ulong, QuadWordRegisterCollection>(offset, (addr, value) =>
222             {
223                 engine.Hook(addr, value);
224                 return engine.Value;
225             });
226         }
227 
AddAfterWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)228         public static void AddAfterWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset, string script)
229         {
230 
231             var engine = new RegisterCollectionHookPythonEngine<ulong, QuadWordRegisterCollection>(@this, script);
232             @this.AddAfterWriteHook<ulong, QuadWordRegisterCollection>(offset, (addr, value) =>
233             {
234                 engine.Hook(addr, value);
235             });
236         }
237 
RemoveBeforeReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)238         public static void RemoveBeforeReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)
239         {
240             @this.RemoveBeforeReadHook(offset);
241         }
242 
RemoveAfterReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)243         public static void RemoveAfterReadQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)
244         {
245             @this.RemoveAfterReadHook(offset);
246         }
247 
RemoveBeforeWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)248         public static void RemoveBeforeWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)
249         {
250             @this.RemoveBeforeWriteHook(offset);
251         }
252 
RemoveAfterWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)253         public static void RemoveAfterWriteQuadWordHook(this IProvidesRegisterCollection<QuadWordRegisterCollection> @this, long offset)
254         {
255             @this.RemoveAfterWriteHook(offset);
256         }
257 
258     }
259 }
260