1 // 2 // Copyright (c) 2010-2024 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.Collections.Generic; 8 using Antmicro.Renode.Peripherals.Bus; 9 using Antmicro.Renode.Core.Structure.Registers; 10 11 namespace Antmicro.Renode.Peripherals.Mocks 12 { 13 public class MockQuadWordPeripheralWithoutTranslations : IQuadWordPeripheral 14 { MockQuadWordPeripheralWithoutTranslations()15 public MockQuadWordPeripheralWithoutTranslations() 16 { 17 registers = new QuadWordRegisterCollection(this, new Dictionary<long, QuadWordRegister>{ 18 { 0x0, new QuadWordRegister(this, 0x0).WithValueField(0, 64) }, 19 }); 20 regionRegisters = new QuadWordRegisterCollection(this, new Dictionary<long, QuadWordRegister>{ 21 { 0x0, new QuadWordRegister(this, 0x0).WithValueField(0, 64) }, 22 }); 23 Reset(); 24 } 25 Reset()26 public void Reset() 27 { 28 registers.Reset(); 29 regionRegisters.Reset(); 30 } 31 ReadQuadWord(long offset)32 public virtual ulong ReadQuadWord(long offset) 33 { 34 return registers.Read(offset); 35 } 36 WriteQuadWord(long offset, ulong value)37 public virtual void WriteQuadWord(long offset, ulong value) 38 { 39 registers.Write(offset, value); 40 } 41 42 [ConnectionRegion("region")] ReadQuadWordFromRegion(long offset)43 public ulong ReadQuadWordFromRegion(long offset) 44 { 45 return regionRegisters.Read(offset); 46 } 47 48 [ConnectionRegion("region")] WriteQuadWordToRegion(long offset, ulong value)49 public void WriteQuadWordToRegion(long offset, ulong value) 50 { 51 regionRegisters.Write(offset, value); 52 } 53 54 private readonly QuadWordRegisterCollection registers; 55 private readonly QuadWordRegisterCollection regionRegisters; 56 } 57 } 58