Beispiel #1
0
        public AThread(AMemory Memory, long EntryPoint = 0, int Priority = 0)
        {
            this.Memory     = Memory;
            this.EntryPoint = EntryPoint;
            this.Priority   = Priority;

            Registers  = new ARegisters();
            Translator = new ATranslator(this);
        }
Beispiel #2
0
        public AThread(ATranslator Translator, AMemory Memory, long EntryPoint)
        {
            this.Translator = Translator;
            this.Memory     = Memory;
            this.EntryPoint = EntryPoint;

            ThreadState = new AThreadState();

            ThreadState.Running = true;
        }
Beispiel #3
0
        public AThread(ATranslator Translator, AMemory Memory, ThreadPriority Priority, long EntryPoint)
        {
            this.Translator = Translator;
            this.Memory     = Memory;
            this.Priority   = Priority;
            this.EntryPoint = EntryPoint;

            ThreadState = new AThreadState();
            ExecuteLock = new object();
        }
Beispiel #4
0
        public AThread(AMemory Memory, ThreadPriority Priority, long EntryPoint)
        {
            this.Memory     = Memory;
            this.Priority   = Priority;
            this.EntryPoint = EntryPoint;

            Registers   = new ARegisters();
            Translator  = new ATranslator(this);
            ExecuteLock = new object();
        }
Beispiel #5
0
        public AThread(ATranslator Translator, AMemory Memory, long EntryPoint)
        {
            this.Translator = Translator;
            this.Memory     = Memory;

            ThreadState = new AThreadState();

            ThreadState.ExecutionMode = AExecutionMode.AArch64;

            ThreadState.Running = true;

            Work = new Thread(delegate()
            {
                Translator.ExecuteSubroutine(this, EntryPoint);

                Memory.RemoveMonitor(ThreadState.Core);

                WorkFinished?.Invoke(this, EventArgs.Empty);
            });
        }