From 916dc397ab02903cd878b77451e0e6b5162a47a8 Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Fri, 15 Aug 2014 22:59:28 -0700 Subject: [PATCH] Part 1 of kernel simplification/cleanup: removing externs. --- .gitignore | 1 + src/xenia/kernel/objects/xthread.cc | 18 ++++--- src/xenia/kernel/sources.gypi | 24 ---------- src/xenia/kernel/xam_content.cc | 5 +- src/xenia/kernel/xam_content.h | 29 ----------- src/xenia/kernel/xam_info.cc | 5 +- src/xenia/kernel/xam_info.h | 29 ----------- src/xenia/kernel/xam_input.cc | 5 +- src/xenia/kernel/xam_input.h | 29 ----------- src/xenia/kernel/xam_module.h | 4 -- src/xenia/kernel/xam_msg.cc | 5 +- src/xenia/kernel/xam_msg.h | 29 ----------- src/xenia/kernel/xam_net.cc | 5 +- src/xenia/kernel/xam_net.h | 29 ----------- src/xenia/kernel/xam_notify.cc | 5 +- src/xenia/kernel/xam_notify.h | 28 ----------- src/xenia/kernel/xam_ui.cc | 5 +- src/xenia/kernel/xam_ui.h | 28 ----------- src/xenia/kernel/xam_user.cc | 5 +- src/xenia/kernel/xam_user.h | 28 ----------- src/xenia/kernel/xam_video.cc | 10 ++-- src/xenia/kernel/xam_video.h | 27 ----------- src/xenia/kernel/xam_voice.cc | 5 +- src/xenia/kernel/xam_voice.h | 29 ----------- src/xenia/kernel/xboxkrnl_audio.cc | 5 +- src/xenia/kernel/xboxkrnl_audio.h | 27 ----------- src/xenia/kernel/xboxkrnl_debug.cc | 5 +- src/xenia/kernel/xboxkrnl_debug.h | 30 ------------ src/xenia/kernel/xboxkrnl_hal.cc | 5 +- src/xenia/kernel/xboxkrnl_hal.h | 30 ------------ src/xenia/kernel/xboxkrnl_io.cc | 5 +- src/xenia/kernel/xboxkrnl_io.h | 27 ----------- src/xenia/kernel/xboxkrnl_memory.cc | 5 +- src/xenia/kernel/xboxkrnl_memory.h | 57 ---------------------- src/xenia/kernel/xboxkrnl_misc.cc | 5 +- src/xenia/kernel/xboxkrnl_misc.h | 27 ----------- src/xenia/kernel/xboxkrnl_module.cc | 1 - src/xenia/kernel/xboxkrnl_module.h | 6 --- src/xenia/kernel/xboxkrnl_modules.cc | 5 +- src/xenia/kernel/xboxkrnl_modules.h | 37 --------------- src/xenia/kernel/xboxkrnl_nt.cc | 32 ------------- src/xenia/kernel/xboxkrnl_nt.h | 27 ----------- src/xenia/kernel/xboxkrnl_ob.cc | 5 +- src/xenia/kernel/xboxkrnl_ob.h | 27 ----------- src/xenia/kernel/xboxkrnl_private.h | 1 - src/xenia/kernel/xboxkrnl_rtl.cc | 26 ++++++++++ src/xenia/kernel/xboxkrnl_rtl.h | 21 -------- src/xenia/kernel/xboxkrnl_strings.cc | 5 +- src/xenia/kernel/xboxkrnl_strings.h | 27 ----------- src/xenia/kernel/xboxkrnl_threading.cc | 5 +- src/xenia/kernel/xboxkrnl_threading.h | 66 -------------------------- src/xenia/kernel/xboxkrnl_usbcam.cc | 5 +- src/xenia/kernel/xboxkrnl_usbcam.h | 28 ----------- src/xenia/kernel/xboxkrnl_video.cc | 5 +- src/xenia/kernel/xboxkrnl_video.h | 55 --------------------- src/xenia/xbox.h | 33 +++++++++++++ 56 files changed, 136 insertions(+), 896 deletions(-) delete mode 100644 src/xenia/kernel/xam_content.h delete mode 100644 src/xenia/kernel/xam_info.h delete mode 100644 src/xenia/kernel/xam_input.h delete mode 100644 src/xenia/kernel/xam_msg.h delete mode 100644 src/xenia/kernel/xam_net.h delete mode 100644 src/xenia/kernel/xam_notify.h delete mode 100644 src/xenia/kernel/xam_ui.h delete mode 100644 src/xenia/kernel/xam_user.h delete mode 100644 src/xenia/kernel/xam_video.h delete mode 100644 src/xenia/kernel/xam_voice.h delete mode 100644 src/xenia/kernel/xboxkrnl_audio.h delete mode 100644 src/xenia/kernel/xboxkrnl_debug.h delete mode 100644 src/xenia/kernel/xboxkrnl_hal.h delete mode 100644 src/xenia/kernel/xboxkrnl_io.h delete mode 100644 src/xenia/kernel/xboxkrnl_memory.h delete mode 100644 src/xenia/kernel/xboxkrnl_misc.h delete mode 100644 src/xenia/kernel/xboxkrnl_modules.h delete mode 100644 src/xenia/kernel/xboxkrnl_nt.cc delete mode 100644 src/xenia/kernel/xboxkrnl_nt.h delete mode 100644 src/xenia/kernel/xboxkrnl_ob.h delete mode 100644 src/xenia/kernel/xboxkrnl_strings.h delete mode 100644 src/xenia/kernel/xboxkrnl_threading.h delete mode 100644 src/xenia/kernel/xboxkrnl_usbcam.h delete mode 100644 src/xenia/kernel/xboxkrnl_video.h diff --git a/.gitignore b/.gitignore index 57cc0de77..1a83a9bd8 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,4 @@ build-test/ # Local-only paths # ============================================================================== attic/ +third_party/vasm/ diff --git a/src/xenia/kernel/objects/xthread.cc b/src/xenia/kernel/objects/xthread.cc index 7c3f6b0be..d24127db8 100644 --- a/src/xenia/kernel/objects/xthread.cc +++ b/src/xenia/kernel/objects/xthread.cc @@ -9,12 +9,10 @@ #include -#include - +#include #include #include #include -#include #include #include @@ -27,7 +25,7 @@ using namespace xe::kernel; namespace { static uint32_t next_xthread_id = 0; - static uint32_t current_thread_tls = xeKeTlsAlloc(); + static thread_local XThread* current_thread_tls; static xe_mutex_t* critical_region_ = xe_mutex_alloc(10000); static XThread* shared_kernel_thread_ = 0; } @@ -110,7 +108,7 @@ XThread::~XThread() { } XThread* XThread::GetCurrentThread() { - XThread* thread = (XThread*)xeKeTlsGetValue(current_thread_tls); + XThread* thread = current_thread_tls; if (!thread) { // Assume this is some shared interrupt thread/etc. XThread::EnterCriticalRegion(); @@ -119,7 +117,7 @@ XThread* XThread::GetCurrentThread() { thread = new XThread( KernelState::shared(), 32 * 1024, 0, 0, 0, 0); shared_kernel_thread_ = thread; - xeKeTlsSetValue(current_thread_tls, (uint64_t)thread); + current_thread_tls = thread; } XThread::LeaveCriticalRegion(); } @@ -292,9 +290,9 @@ X_STATUS XThread::Exit(int exit_code) { static uint32_t __stdcall XThreadStartCallbackWin32(void* param) { XThread* thread = reinterpret_cast(param); xe::Profiler::ThreadEnter(thread->name()); - xeKeTlsSetValue(current_thread_tls, (uint64_t)thread); + current_thread_tls = thread; thread->Execute(); - xeKeTlsSetValue(current_thread_tls, NULL); + current_thread_tls = nullptr; thread->Release(); xe::Profiler::ThreadExit(); return 0; @@ -335,9 +333,9 @@ X_STATUS XThread::PlatformExit(int exit_code) { static void* XThreadStartCallbackPthreads(void* param) { XThread* thread = reinterpret_cast(param); xe::Profiler::ThreadEnter(thread->name()); - xeKeTlsSetValue(current_thread_tls, (uint64_t)thread); + current_thread_tls = thread; thread->Execute(); - xeKeTlsSetValue(current_thread_tls, NULL); + current_thread_tls = nullptr; thread->Release(); xe::Profiler::ThreadExit(); return 0; diff --git a/src/xenia/kernel/sources.gypi b/src/xenia/kernel/sources.gypi index 6b3fe4c2b..760d0a069 100644 --- a/src/xenia/kernel/sources.gypi +++ b/src/xenia/kernel/sources.gypi @@ -18,63 +18,39 @@ 'user_profile.cc', 'user_profile.h', 'xam_content.cc', - 'xam_content.h', 'xam_info.cc', - 'xam_info.h', 'xam_input.cc', - 'xam_input.h', 'xam_module.cc', 'xam_module.h', 'xam_msg.cc', - 'xam_msg.h', 'xam_net.cc', - 'xam_net.h', 'xam_notify.cc', - 'xam_notify.h', 'xam_ordinals.h', 'xam_private.h', 'xam_table.inc', 'xam_ui.cc', - 'xam_ui.h', 'xam_user.cc', - 'xam_user.h', 'xam_video.cc', - 'xam_video.h', 'xam_voice.cc', - 'xam_voice.h', 'xboxkrnl_audio.cc', - 'xboxkrnl_audio.h', 'xboxkrnl_debug.cc', - 'xboxkrnl_debug.h', 'xboxkrnl_hal.cc', - 'xboxkrnl_hal.h', 'xboxkrnl_io.cc', - 'xboxkrnl_io.h', 'xboxkrnl_memory.cc', - 'xboxkrnl_memory.h', 'xboxkrnl_misc.cc', - 'xboxkrnl_misc.h', 'xboxkrnl_module.cc', 'xboxkrnl_module.h', 'xboxkrnl_modules.cc', - 'xboxkrnl_modules.h', - 'xboxkrnl_nt.cc', - 'xboxkrnl_nt.h', 'xboxkrnl_ob.cc', - 'xboxkrnl_ob.h', 'xboxkrnl_ordinals.h', 'xboxkrnl_private.h', 'xboxkrnl_rtl.cc', 'xboxkrnl_rtl.h', 'xboxkrnl_strings.cc', - 'xboxkrnl_strings.h', 'xboxkrnl_table.inc', 'xboxkrnl_threading.cc', - 'xboxkrnl_threading.h', 'xboxkrnl_usbcam.cc', - 'xboxkrnl_usbcam.h', 'xboxkrnl_video.cc', - 'xboxkrnl_video.h', 'xobject.cc', 'xobject.h', ], diff --git a/src/xenia/kernel/xam_content.cc b/src/xenia/kernel/xam_content.cc index e5fd8913c..b367504c3 100644 --- a/src/xenia/kernel/xam_content.cc +++ b/src/xenia/kernel/xam_content.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_content.h b/src/xenia/kernel/xam_content.h deleted file mode 100644 index 6cd6c7e2e..000000000 --- a/src/xenia/kernel/xam_content.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_CONTENT_H_ -#define XENIA_KERNEL_XAM_CONTENT_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_CONTENT_H_ diff --git a/src/xenia/kernel/xam_info.cc b/src/xenia/kernel/xam_info.cc index debb8b62b..1827019d2 100644 --- a/src/xenia/kernel/xam_info.cc +++ b/src/xenia/kernel/xam_info.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_info.h b/src/xenia/kernel/xam_info.h deleted file mode 100644 index 7757d18c2..000000000 --- a/src/xenia/kernel/xam_info.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_INFO_H_ -#define XENIA_KERNEL_XAM_INFO_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_INFO_H_ diff --git a/src/xenia/kernel/xam_input.cc b/src/xenia/kernel/xam_input.cc index b4f272447..4ef44b0a5 100644 --- a/src/xenia/kernel/xam_input.cc +++ b/src/xenia/kernel/xam_input.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_input.h b/src/xenia/kernel/xam_input.h deleted file mode 100644 index 43ab24342..000000000 --- a/src/xenia/kernel/xam_input.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_INPUT_H_ -#define XENIA_KERNEL_XAM_INPUT_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_INPUT_H_ diff --git a/src/xenia/kernel/xam_module.h b/src/xenia/kernel/xam_module.h index 52440fc77..773ce1149 100644 --- a/src/xenia/kernel/xam_module.h +++ b/src/xenia/kernel/xam_module.h @@ -17,10 +17,6 @@ #include #include -// All of the exported functions: -#include - - namespace xe { namespace kernel { diff --git a/src/xenia/kernel/xam_msg.cc b/src/xenia/kernel/xam_msg.cc index a4b61866b..0317210eb 100644 --- a/src/xenia/kernel/xam_msg.cc +++ b/src/xenia/kernel/xam_msg.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_msg.h b/src/xenia/kernel/xam_msg.h deleted file mode 100644 index fb5f3b327..000000000 --- a/src/xenia/kernel/xam_msg.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_MSG_H_ -#define XENIA_KERNEL_XAM_MSG_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_MSG_H_ diff --git a/src/xenia/kernel/xam_net.cc b/src/xenia/kernel/xam_net.cc index 7ba5b887b..8f5815404 100644 --- a/src/xenia/kernel/xam_net.cc +++ b/src/xenia/kernel/xam_net.cc @@ -9,8 +9,9 @@ #include -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_net.h b/src/xenia/kernel/xam_net.h deleted file mode 100644 index 3820b5d05..000000000 --- a/src/xenia/kernel/xam_net.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_NET_H_ -#define XENIA_KERNEL_XAM_NET_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_NET_H_ diff --git a/src/xenia/kernel/xam_notify.cc b/src/xenia/kernel/xam_notify.cc index 6521f9876..356fbc269 100644 --- a/src/xenia/kernel/xam_notify.cc +++ b/src/xenia/kernel/xam_notify.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_notify.h b/src/xenia/kernel/xam_notify.h deleted file mode 100644 index 8bf8b2c88..000000000 --- a/src/xenia/kernel/xam_notify.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_NOTIFY_H_ -#define XENIA_KERNEL_XAM_NOTIFY_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_NOTIFY_H_ diff --git a/src/xenia/kernel/xam_ui.cc b/src/xenia/kernel/xam_ui.cc index 803934fd6..0824b8eb9 100644 --- a/src/xenia/kernel/xam_ui.cc +++ b/src/xenia/kernel/xam_ui.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_ui.h b/src/xenia/kernel/xam_ui.h deleted file mode 100644 index 629491ec4..000000000 --- a/src/xenia/kernel/xam_ui.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - ****************************************************************************** - * Xenia : Xbox 360 Emulator Research Project * - ****************************************************************************** - * Copyright 2014 Ben Vanik. All rights reserved. * - * Released under the BSD license - see LICENSE in the root for more details. * - ****************************************************************************** - */ - -#ifndef XENIA_KERNEL_XAM_UI_H_ -#define XENIA_KERNEL_XAM_UI_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_UI_H_ diff --git a/src/xenia/kernel/xam_user.cc b/src/xenia/kernel/xam_user.cc index 0c7c3ea4c..c05d2e97a 100644 --- a/src/xenia/kernel/xam_user.cc +++ b/src/xenia/kernel/xam_user.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_user.h b/src/xenia/kernel/xam_user.h deleted file mode 100644 index d34a82d1e..000000000 --- a/src/xenia/kernel/xam_user.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_USER_H_ -#define XENIA_KERNEL_XAM_USER_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_USER_H_ diff --git a/src/xenia/kernel/xam_video.cc b/src/xenia/kernel/xam_video.cc index b64e395c8..2bba399cc 100644 --- a/src/xenia/kernel/xam_video.cc +++ b/src/xenia/kernel/xam_video.cc @@ -7,14 +7,13 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include -#include - using namespace xe; using namespace xe::kernel; @@ -24,7 +23,8 @@ using namespace xe::kernel::xam; namespace xe { namespace kernel { - +// TODO(benvanik): actually check to see if these are the same. +void xeVdQueryVideoMode(X_VIDEO_MODE *video_mode, bool swap); SHIM_CALL XGetVideoMode_shim( PPCContext* ppc_state, KernelState* state) { uint32_t video_mode_ptr = SHIM_GET_ARG_32(0); diff --git a/src/xenia/kernel/xam_video.h b/src/xenia/kernel/xam_video.h deleted file mode 100644 index 1bafb43ca..000000000 --- a/src/xenia/kernel/xam_video.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XAM_VIDEO_H_ -#define XENIA_KERNEL_XAM_VIDEO_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_VIDEO_H_ diff --git a/src/xenia/kernel/xam_voice.cc b/src/xenia/kernel/xam_voice.cc index 068b45f84..30b94bcdd 100644 --- a/src/xenia/kernel/xam_voice.cc +++ b/src/xenia/kernel/xam_voice.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xam_voice.h b/src/xenia/kernel/xam_voice.h deleted file mode 100644 index 2ab9e527e..000000000 --- a/src/xenia/kernel/xam_voice.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - ****************************************************************************** - * Xenia : Xbox 360 Emulator Research Project * - ****************************************************************************** - * Copyright 2014 Ben Vanik. All rights reserved. * - * Released under the BSD license - see LICENSE in the root for more details. * - ****************************************************************************** - */ - -#ifndef XENIA_KERNEL_XAM_VOICE_H_ -#define XENIA_KERNEL_XAM_VOICE_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XAM_VOICE_H_ diff --git a/src/xenia/kernel/xboxkrnl_audio.cc b/src/xenia/kernel/xboxkrnl_audio.cc index 34744bbe9..970abfd69 100644 --- a/src/xenia/kernel/xboxkrnl_audio.cc +++ b/src/xenia/kernel/xboxkrnl_audio.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_audio.h b/src/xenia/kernel/xboxkrnl_audio.h deleted file mode 100644 index c57498a7d..000000000 --- a/src/xenia/kernel/xboxkrnl_audio.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_AUDIO_H_ -#define XENIA_KERNEL_XBOXKRNL_AUDIO_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_AUDIO_H_ diff --git a/src/xenia/kernel/xboxkrnl_debug.cc b/src/xenia/kernel/xboxkrnl_debug.cc index e5ae66591..ae594a7d0 100644 --- a/src/xenia/kernel/xboxkrnl_debug.cc +++ b/src/xenia/kernel/xboxkrnl_debug.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_debug.h b/src/xenia/kernel/xboxkrnl_debug.h deleted file mode 100644 index 3d08ba531..000000000 --- a/src/xenia/kernel/xboxkrnl_debug.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_DEBUG_H_ -#define XENIA_KERNEL_XBOXKRNL_DEBUG_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -void xeDbgBreakPoint(); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_DEBUG_H_ diff --git a/src/xenia/kernel/xboxkrnl_hal.cc b/src/xenia/kernel/xboxkrnl_hal.cc index e083ceca5..dbde18fca 100644 --- a/src/xenia/kernel/xboxkrnl_hal.cc +++ b/src/xenia/kernel/xboxkrnl_hal.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_hal.h b/src/xenia/kernel/xboxkrnl_hal.h deleted file mode 100644 index 7e09fdf6f..000000000 --- a/src/xenia/kernel/xboxkrnl_hal.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_HAL_H_ -#define XENIA_KERNEL_XBOXKRNL_HAL_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -void xeHalReturnToFirmware(uint32_t routine); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_HAL_H_ diff --git a/src/xenia/kernel/xboxkrnl_io.cc b/src/xenia/kernel/xboxkrnl_io.cc index fcc83c567..caee0e283 100644 --- a/src/xenia/kernel/xboxkrnl_io.cc +++ b/src/xenia/kernel/xboxkrnl_io.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_io.h b/src/xenia/kernel/xboxkrnl_io.h deleted file mode 100644 index 84aecd8cc..000000000 --- a/src/xenia/kernel/xboxkrnl_io.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_IO_H_ -#define XENIA_KERNEL_XBOXKRNL_IO_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_IO_H_ diff --git a/src/xenia/kernel/xboxkrnl_memory.cc b/src/xenia/kernel/xboxkrnl_memory.cc index bcef1834c..9cd028c9e 100644 --- a/src/xenia/kernel/xboxkrnl_memory.cc +++ b/src/xenia/kernel/xboxkrnl_memory.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_memory.h b/src/xenia/kernel/xboxkrnl_memory.h deleted file mode 100644 index 0b59f5420..000000000 --- a/src/xenia/kernel/xboxkrnl_memory.h +++ /dev/null @@ -1,57 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_MEMORY_H_ -#define XENIA_KERNEL_XBOXKRNL_MEMORY_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -#pragma pack(push, 1) -typedef struct { - uint32_t base_address; - uint32_t allocation_base; - uint32_t allocation_protect; - uint32_t region_size; - uint32_t state; - uint32_t protect; - uint32_t type; -} -X_MEMORY_BASIC_INFORMATION; -#pragma pack(pop) - - -X_STATUS xeNtAllocateVirtualMemory( - uint32_t* base_addr_ptr, uint32_t* region_size_ptr, - uint32_t allocation_type, uint32_t protect_bits, - uint32_t unknown); -X_STATUS xeNtFreeVirtualMemory( - uint32_t* base_addr_ptr, uint32_t* region_size_ptr, - uint32_t free_type, uint32_t unknown); - -uint32_t xeMmAllocatePhysicalMemoryEx( - uint32_t type, uint32_t region_size, uint32_t protect_bits, - uint32_t min_addr_range, uint32_t max_addr_range, uint32_t alignment); -void xeMmFreePhysicalMemory(uint32_t type, uint32_t base_address); -uint32_t xeMmQueryAddressProtect(uint32_t base_address); -uint32_t xeMmGetPhysicalAddress(uint32_t base_address); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_MEMORY_H_ diff --git a/src/xenia/kernel/xboxkrnl_misc.cc b/src/xenia/kernel/xboxkrnl_misc.cc index f08664eab..73d7c0f87 100644 --- a/src/xenia/kernel/xboxkrnl_misc.cc +++ b/src/xenia/kernel/xboxkrnl_misc.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_misc.h b/src/xenia/kernel/xboxkrnl_misc.h deleted file mode 100644 index d0c9dd06d..000000000 --- a/src/xenia/kernel/xboxkrnl_misc.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_MISC_H_ -#define XENIA_KERNEL_XBOXKRNL_MISC_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_MISC_H_ diff --git a/src/xenia/kernel/xboxkrnl_module.cc b/src/xenia/kernel/xboxkrnl_module.cc index 4fe8c4ace..4b20f0710 100644 --- a/src/xenia/kernel/xboxkrnl_module.cc +++ b/src/xenia/kernel/xboxkrnl_module.cc @@ -46,7 +46,6 @@ XboxkrnlModule::XboxkrnlModule(Emulator* emulator, KernelState* kernel_state) : RegisterMemoryExports(export_resolver_, kernel_state); RegisterMiscExports(export_resolver_, kernel_state); RegisterModuleExports(export_resolver_, kernel_state); - RegisterNtExports(export_resolver_, kernel_state); RegisterObExports(export_resolver_, kernel_state); RegisterRtlExports(export_resolver_, kernel_state_); RegisterStringExports(export_resolver_, kernel_state_); diff --git a/src/xenia/kernel/xboxkrnl_module.h b/src/xenia/kernel/xboxkrnl_module.h index 357e901b4..627cf850a 100644 --- a/src/xenia/kernel/xboxkrnl_module.h +++ b/src/xenia/kernel/xboxkrnl_module.h @@ -18,13 +18,7 @@ #include // All of the exported functions: -#include -#include -#include -#include #include -#include -#include namespace xe { diff --git a/src/xenia/kernel/xboxkrnl_modules.cc b/src/xenia/kernel/xboxkrnl_modules.cc index 6a9882280..f38a6d0f8 100644 --- a/src/xenia/kernel/xboxkrnl_modules.cc +++ b/src/xenia/kernel/xboxkrnl_modules.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_modules.h b/src/xenia/kernel/xboxkrnl_modules.h deleted file mode 100644 index 1c4997c31..000000000 --- a/src/xenia/kernel/xboxkrnl_modules.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_MODULES_H_ -#define XENIA_KERNEL_XBOXKRNL_MODULES_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -X_STATUS xeExGetXConfigSetting( - uint16_t category, uint16_t setting, void* buffer, uint16_t buffer_size, - uint16_t* required_size); - -int xeXexCheckExecutablePriviledge(uint32_t privilege); - -int xeXexGetModuleHandle(const char* module_name, - X_HANDLE* module_handle_ptr); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_MODULES_H_ diff --git a/src/xenia/kernel/xboxkrnl_nt.cc b/src/xenia/kernel/xboxkrnl_nt.cc deleted file mode 100644 index c0ab764a1..000000000 --- a/src/xenia/kernel/xboxkrnl_nt.cc +++ /dev/null @@ -1,32 +0,0 @@ -/** - ****************************************************************************** - * 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 - -#include -#include -#include - - -using namespace xe; -using namespace xe::kernel; -using namespace xe::kernel::xboxkrnl; - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -void xe::kernel::xboxkrnl::RegisterNtExports( - ExportResolver* export_resolver, KernelState* state) { -} diff --git a/src/xenia/kernel/xboxkrnl_nt.h b/src/xenia/kernel/xboxkrnl_nt.h deleted file mode 100644 index 72ea2bef1..000000000 --- a/src/xenia/kernel/xboxkrnl_nt.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_NT_H_ -#define XENIA_KERNEL_XBOXKRNL_NT_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_NT_H_ diff --git a/src/xenia/kernel/xboxkrnl_ob.cc b/src/xenia/kernel/xboxkrnl_ob.cc index a1e1c573c..9631c3cd9 100644 --- a/src/xenia/kernel/xboxkrnl_ob.cc +++ b/src/xenia/kernel/xboxkrnl_ob.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_ob.h b/src/xenia/kernel/xboxkrnl_ob.h deleted file mode 100644 index 0158fba73..000000000 --- a/src/xenia/kernel/xboxkrnl_ob.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_OB_H_ -#define XENIA_KERNEL_XBOXKRNL_OB_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_OB_H_ diff --git a/src/xenia/kernel/xboxkrnl_private.h b/src/xenia/kernel/xboxkrnl_private.h index b0612f0ca..c23d02d3f 100644 --- a/src/xenia/kernel/xboxkrnl_private.h +++ b/src/xenia/kernel/xboxkrnl_private.h @@ -30,7 +30,6 @@ void RegisterIoExports(ExportResolver* export_resolver, KernelState* state); void RegisterMemoryExports(ExportResolver* export_resolver, KernelState* state); void RegisterMiscExports(ExportResolver* export_resolver, KernelState* state); void RegisterModuleExports(ExportResolver* export_resolver, KernelState* state); -void RegisterNtExports(ExportResolver* export_resolver, KernelState* state); void RegisterObExports(ExportResolver* export_resolver, KernelState* state); void RegisterRtlExports(ExportResolver* export_resolver, KernelState* state); void RegisterStringExports(ExportResolver* export_resolver, KernelState* state); diff --git a/src/xenia/kernel/xboxkrnl_rtl.cc b/src/xenia/kernel/xboxkrnl_rtl.cc index 6214e6f97..1b23dafc6 100644 --- a/src/xenia/kernel/xboxkrnl_rtl.cc +++ b/src/xenia/kernel/xboxkrnl_rtl.cc @@ -27,6 +27,32 @@ namespace xe { namespace kernel { +//RtlCompareMemory +struct x { +}; + +struct RtlCompareMemoryExport { + KernelState* state; + static void Call(PPCContext* ppc_state) { + uint32_t source1 = SHIM_GET_ARG_32(0); + uint32_t source2 = SHIM_GET_ARG_32(1); + uint32_t length = SHIM_GET_ARG_32(2); + + XELOGD( + "RtlCompareMemory(%.8X, %.8X, %d)", + source1, source2, length); + + uint32_t result = 0; + SHIM_SET_RETURN_64(result); + } + virtual void Log() { + // + } + X_STATUS RtlCompareMemory(uint32_t source1_ptr, uint32_t source2_ptr, uint32_t length) { + } +}; + + // http://msdn.microsoft.com/en-us/library/ff561778 uint32_t xeRtlCompareMemory(uint32_t source1_ptr, uint32_t source2_ptr, uint32_t length) { diff --git a/src/xenia/kernel/xboxkrnl_rtl.h b/src/xenia/kernel/xboxkrnl_rtl.h index 7606be241..d462516e9 100644 --- a/src/xenia/kernel/xboxkrnl_rtl.h +++ b/src/xenia/kernel/xboxkrnl_rtl.h @@ -12,7 +12,6 @@ #include #include - #include @@ -20,26 +19,6 @@ namespace xe { namespace kernel { -uint32_t xeRtlCompareMemory(uint32_t source1_ptr, uint32_t source2_ptr, - uint32_t length); -uint32_t xeRtlCompareMemoryUlong(uint32_t source_ptr, uint32_t length, - uint32_t pattern); -void xeRtlFillMemoryUlong(uint32_t destination_ptr, uint32_t length, - uint32_t pattern); - -void xeRtlInitAnsiString(uint32_t destination_ptr, uint32_t source_ptr); -void xeRtlFreeAnsiString(uint32_t string_ptr); - -void xeRtlInitUnicodeString(uint32_t destination_ptr, uint32_t source_ptr); -void xeRtlFreeUnicodeString(uint32_t string_ptr); -X_STATUS xeRtlUnicodeStringToAnsiString( - uint32_t destination_ptr, uint32_t source_ptr, uint32_t alloc_dest); - -uint32_t xeRtlNtStatusToDosError(X_STATUS status); - -uint32_t xeRtlImageXexHeaderField(uint32_t xex_header_base_ptr, - uint32_t image_field); - void xeRtlInitializeCriticalSection(uint32_t cs_ptr); X_STATUS xeRtlInitializeCriticalSectionAndSpinCount( uint32_t cs_ptr, uint32_t spin_count); diff --git a/src/xenia/kernel/xboxkrnl_strings.cc b/src/xenia/kernel/xboxkrnl_strings.cc index fc7f0d989..05095d537 100644 --- a/src/xenia/kernel/xboxkrnl_strings.cc +++ b/src/xenia/kernel/xboxkrnl_strings.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_strings.h b/src/xenia/kernel/xboxkrnl_strings.h deleted file mode 100644 index 859acda85..000000000 --- a/src/xenia/kernel/xboxkrnl_strings.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_STRINGS_H_ -#define XENIA_KERNEL_XBOXKRNL_STRINGS_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_STRINGS_H_ diff --git a/src/xenia/kernel/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl_threading.cc index 4b6e72258..c4a087187 100644 --- a/src/xenia/kernel/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl_threading.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_threading.h b/src/xenia/kernel/xboxkrnl_threading.h deleted file mode 100644 index 62f807065..000000000 --- a/src/xenia/kernel/xboxkrnl_threading.h +++ /dev/null @@ -1,66 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_THREADING_H_ -#define XENIA_KERNEL_XBOXKRNL_THREADING_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -X_STATUS xeExCreateThread( - uint32_t* handle_ptr, uint32_t stack_size, uint32_t* thread_id_ptr, - uint32_t xapi_thread_startup, - uint32_t start_address, uint32_t start_context, uint32_t creation_flags); - -X_STATUS xeNtResumeThread(uint32_t handle, uint32_t* out_suspend_count); -X_STATUS xeNtSuspendThread(uint32_t handle, uint32_t* out_suspend_count); - -uint32_t xeKeSetAffinityThread(void* thread_ptr, uint32_t affinity); - -uint32_t xeKeGetCurrentProcessType(); - -uint64_t xeKeQueryPerformanceFrequency(); -void xeKeQuerySystemTime(uint64_t* time_ptr); - -X_STATUS xeKeDelayExecutionThread( - uint32_t processor_mode, uint32_t alertable, uint64_t interval); - -uint32_t xeKeTlsAlloc(); -int KeTlsFree(uint32_t tls_index); -uint64_t xeKeTlsGetValue(uint32_t tls_index); -int xeKeTlsSetValue(uint32_t tls_index, uint64_t tls_value); - -X_STATUS xeNtCreateEvent(uint32_t* handle_ptr, void* obj_attributes, - uint32_t event_type, uint32_t initial_state); -int32_t xeKeSetEvent(void* event_ptr, uint32_t increment, uint32_t wait); -int32_t xeKeResetEvent(void* event_ptr); - -X_STATUS xeKeWaitForSingleObject( - void* object_ptr, uint32_t wait_reason, uint32_t processor_mode, - uint32_t alertable, uint64_t* opt_timeout); - -uint32_t xeKfAcquireSpinLock(uint32_t* lock_ptr); -void xeKfReleaseSpinLock(uint32_t* lock_ptr, uint32_t old_irql); - -void xeKeEnterCriticalRegion(); -void xeKeLeaveCriticalRegion(); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_THREADING_H_ diff --git a/src/xenia/kernel/xboxkrnl_usbcam.cc b/src/xenia/kernel/xboxkrnl_usbcam.cc index e30966e0f..b68c02796 100644 --- a/src/xenia/kernel/xboxkrnl_usbcam.cc +++ b/src/xenia/kernel/xboxkrnl_usbcam.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_usbcam.h b/src/xenia/kernel/xboxkrnl_usbcam.h deleted file mode 100644 index 7a69b65f6..000000000 --- a/src/xenia/kernel/xboxkrnl_usbcam.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - ****************************************************************************** - * Xenia : Xbox 360 Emulator Research Project * - ****************************************************************************** - * Copyright 2014 Ben Vanik. All rights reserved. * - * Released under the BSD license - see LICENSE in the root for more details. * - ****************************************************************************** - */ - -#ifndef XENIA_KERNEL_XBOXKRNL_USBCAM_H_ -#define XENIA_KERNEL_XBOXKRNL_USBCAM_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_USBCAM_H_ diff --git a/src/xenia/kernel/xboxkrnl_video.cc b/src/xenia/kernel/xboxkrnl_video.cc index 1a6adead1..7576b21bb 100644 --- a/src/xenia/kernel/xboxkrnl_video.cc +++ b/src/xenia/kernel/xboxkrnl_video.cc @@ -7,8 +7,9 @@ ****************************************************************************** */ -#include - +#include +#include +#include #include #include #include diff --git a/src/xenia/kernel/xboxkrnl_video.h b/src/xenia/kernel/xboxkrnl_video.h deleted file mode 100644 index 6c62811af..000000000 --- a/src/xenia/kernel/xboxkrnl_video.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - ****************************************************************************** - * 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_KERNEL_XBOXKRNL_VIDEO_H_ -#define XENIA_KERNEL_XBOXKRNL_VIDEO_H_ - -#include -#include - -#include - - -namespace xe { -namespace kernel { - - -// http://ffplay360.googlecode.com/svn/trunk/Common/XTLOnPC.h -#pragma pack(push, 1) -typedef struct { - uint32_t display_width; - uint32_t display_height; - uint32_t is_interlaced; - uint32_t is_widescreen; - uint32_t is_hi_def; - float refresh_rate; - uint32_t video_standard; - uint32_t unknown_0x8a; - uint32_t unknown_0x01; - uint32_t reserved[3]; -} -X_VIDEO_MODE; -#pragma pack(pop) -static_assert_size(X_VIDEO_MODE, 48); - -void xeVdGetCurrentDisplayGamma(uint32_t* arg0, float* arg1); -uint32_t xeVdQueryVideoFlags(); -void xeVdQueryVideoMode(X_VIDEO_MODE *video_mode, bool swap); - -void xeVdInitializeEngines(uint32_t unk0, uint32_t callback, uint32_t unk1, - uint32_t unk2_ptr, uint32_t unk3_ptr); -void xeVdSetGraphicsInterruptCallback(uint32_t callback, uint32_t user_data); -void xeVdEnableRingBufferRPtrWriteBack(uint32_t ptr, uint32_t block_size); - - -} // namespace kernel -} // namespace xe - - -#endif // XENIA_KERNEL_XBOXKRNL_VIDEO_H_ diff --git a/src/xenia/xbox.h b/src/xenia/xbox.h index e597e63bb..633477a9c 100644 --- a/src/xenia/xbox.h +++ b/src/xenia/xbox.h @@ -17,6 +17,9 @@ namespace xe { +#pragma pack(push, 4) + + typedef uint32_t X_HANDLE; #define X_INVALID_HANDLE_VALUE ((X_HANDLE)-1) @@ -193,6 +196,17 @@ typedef enum _X_FILE_INFORMATION_CLASS { } X_FILE_INFORMATION_CLASS; +struct X_MEMORY_BASIC_INFORMATION { + uint32_t base_address; + uint32_t allocation_base; + uint32_t allocation_protect; + uint32_t region_size; + uint32_t state; + uint32_t protect; + uint32_t type; +}; + + inline void XOverlappedSetResult(void* ptr, uint32_t value) { auto p = reinterpret_cast(ptr); poly::store_and_swap(&p[0], value); @@ -299,6 +313,22 @@ public: typedef uint32_t XNotificationID; +// http://ffplay360.googlecode.com/svn/trunk/Common/XTLOnPC.h +struct X_VIDEO_MODE { + uint32_t display_width; + uint32_t display_height; + uint32_t is_interlaced; + uint32_t is_widescreen; + uint32_t is_hi_def; + float refresh_rate; + uint32_t video_standard; + uint32_t unknown_0x8a; + uint32_t unknown_0x01; + uint32_t reserved[3]; +}; +static_assert_size(X_VIDEO_MODE, 48); + + typedef enum _X_INPUT_FLAG { X_INPUT_FLAG_GAMEPAD = 0x00000001, } X_INPUT_FLAG; @@ -482,6 +512,9 @@ public: }; +#pragma pack(pop) + + } // namespace xe