/** ****************************************************************************** * 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. * ****************************************************************************** */ #include "xenia/base/logging.h" #include "xenia/kernel/kernel_state.h" #include "xenia/kernel/util/shim_utils.h" #include "xenia/kernel/xboxkrnl/xboxkrnl_private.h" #include "xenia/xbox.h" namespace xe { namespace kernel { namespace xboxkrnl { void HalReturnToFirmware(dword_t routine) { // void // IN FIRMWARE_REENTRY Routine // Routine must be 1 'HalRebootRoutine' assert_true(routine == 1); // TODO(benvank): diediedie much more gracefully // Not sure how to blast back up the stack in LLVM without exceptions, though. XELOGE("Game requested shutdown via HalReturnToFirmware"); exit(0); } DECLARE_XBOXKRNL_EXPORT(HalReturnToFirmware, ExportTag::kImportant); void RegisterHalExports(xe::cpu::ExportResolver* export_resolver, KernelState* kernel_state) {} } // namespace xboxkrnl } // namespace kernel } // namespace xe