38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
/**
|
|
******************************************************************************
|
|
* 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_private.h"
|
|
#include "xenia/xbox.h"
|
|
|
|
namespace xe {
|
|
namespace kernel {
|
|
|
|
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);
|
|
|
|
} // namespace kernel
|
|
} // namespace xe
|
|
|
|
void xe::kernel::xboxkrnl::RegisterHalExports(
|
|
xe::cpu::ExportResolver* export_resolver, KernelState* kernel_state) {}
|