/******************************************************** * * Warning! * This file was generated automatically. * Please do not edit. Changes should be made in the * appropriate *.tt file. * */ using Antmicro.Renode.Core.Structure.Registers; using Antmicro.Renode.Exceptions; using Antmicro.Renode.Peripherals; namespace Antmicro.Renode.Hooks { public static class RegisterCollectionHookExtensions { public static void AddBeforeReadByteHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeReadHook(offset, (addr) => { engine.Hook(addr, null); return engine.Value; }); } public static void AddAfterReadByteHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterReadHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddBeforeWriteByteHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeWriteHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddAfterWriteByteHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterWriteHook(offset, (addr, value) => { engine.Hook(addr, value); }); } public static void RemoveBeforeReadByteHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeReadHook(offset); } public static void RemoveAfterReadByteHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterReadHook(offset); } public static void RemoveBeforeWriteByteHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeWriteHook(offset); } public static void RemoveAfterWriteByteHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterWriteHook(offset); } public static void AddBeforeReadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeReadHook(offset, (addr) => { engine.Hook(addr, null); return engine.Value; }); } public static void AddAfterReadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterReadHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddBeforeWriteWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeWriteHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddAfterWriteWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterWriteHook(offset, (addr, value) => { engine.Hook(addr, value); }); } public static void RemoveBeforeReadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeReadHook(offset); } public static void RemoveAfterReadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterReadHook(offset); } public static void RemoveBeforeWriteWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeWriteHook(offset); } public static void RemoveAfterWriteWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterWriteHook(offset); } public static void AddBeforeReadDoubleWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeReadHook(offset, (addr) => { engine.Hook(addr, null); return engine.Value; }); } public static void AddAfterReadDoubleWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterReadHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddBeforeWriteDoubleWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeWriteHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddAfterWriteDoubleWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterWriteHook(offset, (addr, value) => { engine.Hook(addr, value); }); } public static void RemoveBeforeReadDoubleWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeReadHook(offset); } public static void RemoveAfterReadDoubleWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterReadHook(offset); } public static void RemoveBeforeWriteDoubleWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeWriteHook(offset); } public static void RemoveAfterWriteDoubleWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterWriteHook(offset); } public static void AddBeforeReadQuadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeReadHook(offset, (addr) => { engine.Hook(addr, null); return engine.Value; }); } public static void AddAfterReadQuadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterReadHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddBeforeWriteQuadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddBeforeWriteHook(offset, (addr, value) => { engine.Hook(addr, value); return engine.Value; }); } public static void AddAfterWriteQuadWordHook(this IProvidesRegisterCollection @this, long offset, string script) { var engine = new RegisterCollectionHookPythonEngine(@this, script); @this.AddAfterWriteHook(offset, (addr, value) => { engine.Hook(addr, value); }); } public static void RemoveBeforeReadQuadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeReadHook(offset); } public static void RemoveAfterReadQuadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterReadHook(offset); } public static void RemoveBeforeWriteQuadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveBeforeWriteHook(offset); } public static void RemoveAfterWriteQuadWordHook(this IProvidesRegisterCollection @this, long offset) { @this.RemoveAfterWriteHook(offset); } } }