1 // 2 // Copyright (c) 2010-2022 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 using System; 9 using Antmicro.Renode.Peripherals.Miscellaneous; 10 11 namespace Antmicro.Renode.Peripherals.CPU 12 { 13 public interface ICPUWithExternalMmu: ICPU 14 { EnableExternalWindowMmu(bool value)15 void EnableExternalWindowMmu(bool value); AcquireExternalMmuWindow(uint type)16 int AcquireExternalMmuWindow(uint type); ResetMmuWindow(uint index)17 void ResetMmuWindow(uint index); SetMmuWindowStart(uint index, ulong startAddress)18 void SetMmuWindowStart(uint index, ulong startAddress); SetMmuWindowEnd(uint index, ulong endAddress)19 void SetMmuWindowEnd(uint index, ulong endAddress); SetMmuWindowAddend(uint index, ulong addend)20 void SetMmuWindowAddend(uint index, ulong addend); SetMmuWindowPrivileges(uint index, uint privileges)21 void SetMmuWindowPrivileges(uint index, uint privileges); AddHookOnMmuFault(Action<ulong, AccessType, int> hook)22 void AddHookOnMmuFault(Action<ulong, AccessType, int> hook); 23 GetMmuWindowStart(uint index)24 ulong GetMmuWindowStart(uint index); GetMmuWindowEnd(uint index)25 ulong GetMmuWindowEnd(uint index); GetMmuWindowAddend(uint index)26 ulong GetMmuWindowAddend(uint index); GetMmuWindowPrivileges(uint index)27 uint GetMmuWindowPrivileges(uint index); 28 29 uint ExternalMmuWindowsCount { get; } 30 } 31 32 public enum AccessType 33 { 34 Read = 0, 35 Write = 1, 36 Execute = 2, 37 } 38 } 39