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