/** ****************************************************************************** * 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_BACKEND_BACKEND_H_ #define XENIA_BACKEND_BACKEND_H_ #include #include "xenia/cpu/backend/machine_info.h" namespace xe { namespace cpu { class Processor; } // namespace cpu } // namespace xe namespace xe { namespace cpu { namespace backend { class Assembler; class Backend { public: Backend(Processor* processor); virtual ~Backend(); Processor* processor() const { return processor_; } const MachineInfo* machine_info() const { return &machine_info_; } virtual int Initialize(); virtual void* AllocThreadData(); virtual void FreeThreadData(void* thread_data); virtual std::unique_ptr CreateAssembler() = 0; protected: Processor* processor_; MachineInfo machine_info_; }; } // namespace backend } // namespace cpu } // namespace xe #endif // XENIA_BACKEND_BACKEND_H_