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