aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/State/IExecutionContext.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ARMeilleure/State/IExecutionContext.cs')
-rw-r--r--ARMeilleure/State/IExecutionContext.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/ARMeilleure/State/IExecutionContext.cs b/ARMeilleure/State/IExecutionContext.cs
new file mode 100644
index 00000000..df91b7a1
--- /dev/null
+++ b/ARMeilleure/State/IExecutionContext.cs
@@ -0,0 +1,37 @@
+using System;
+
+namespace ARMeilleure.State
+{
+ public interface IExecutionContext : IDisposable
+ {
+ uint CtrEl0 { get; }
+ uint DczidEl0 { get; }
+
+ ulong CntfrqEl0 { get; set; }
+ ulong CntpctEl0 { get; }
+
+ long TpidrEl0 { get; set; }
+ long Tpidr { get; set; }
+
+ FPCR Fpcr { get; set; }
+ FPSR Fpsr { get; set; }
+
+ bool IsAarch32 { get; set; }
+
+ bool Running { get; set; }
+
+ event EventHandler<EventArgs> Interrupt;
+ event EventHandler<InstExceptionEventArgs> Break;
+ event EventHandler<InstExceptionEventArgs> SupervisorCall;
+ event EventHandler<InstUndefinedEventArgs> Undefined;
+
+ ulong GetX(int index);
+ void SetX(int index, ulong value);
+
+ V128 GetV(int index);
+
+ bool GetPstateFlag(PState flag);
+
+ void RequestInterrupt();
+ }
+} \ No newline at end of file