/** ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** * Copyright 2013 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ #ifndef XENIA_CPU_PROCESSOR_H_ #define XENIA_CPU_PROCESSOR_H_ #include #include #include #include #include namespace llvm { class ExecutionEngine; } namespace xe { namespace cpu { class Processor { public: Processor(xe_pal_ref pal, xe_memory_ref memory); ~Processor(); xe_pal_ref pal(); xe_memory_ref memory(); int Setup(); int PrepareModule(kernel::UserModule* user_module, shared_ptr export_resolver); int Execute(uint32_t address); uint32_t CreateCallback(void (*callback)(void* data), void* data); private: xe_pal_ref pal_; xe_memory_ref memory_; shared_ptr engine_; std::vector modules_; }; } // namespace cpu } // namespace xe #endif // XENIA_CPU_PROCESSOR_H_