[Kernel] Use tables for export groups.
This commit is contained in:
@@ -96,11 +96,8 @@ dword_result_t XAudioSubmitRenderDriverFrame_entry(lpunknown_t driver_ptr,
|
||||
DECLARE_XBOXKRNL_EXPORT2(XAudioSubmitRenderDriverFrame, kAudio, kImplemented,
|
||||
kHighFrequency);
|
||||
|
||||
void RegisterAudioExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {
|
||||
// Additional XMA* methods are in xboxkrnl_audio_xma.cc.
|
||||
}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Audio);
|
||||
|
||||
@@ -392,9 +392,8 @@ dword_result_t XMABlockWhileInUse_entry(lpvoid_t context_ptr) {
|
||||
DECLARE_XBOXKRNL_EXPORT2(XMABlockWhileInUse, kAudio, kImplemented,
|
||||
kHighFrequency);
|
||||
|
||||
void RegisterAudioXmaExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(AudioXma);
|
||||
|
||||
@@ -686,9 +686,8 @@ dword_result_t XeKeysHmacShaUsingKey_entry(lpvoid_t obscured_key,
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(XeKeysHmacShaUsingKey, kNone, kImplemented);
|
||||
|
||||
void RegisterCryptExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Crypt);
|
||||
|
||||
@@ -154,9 +154,8 @@ DECLARE_XBOXKRNL_EXPORT2(KeBugCheckEx, kDebug, kStub, kImportant);
|
||||
void KeBugCheck_entry(dword_t code) { KeBugCheckEx_entry(code, 0, 0, 0, 0); }
|
||||
DECLARE_XBOXKRNL_EXPORT2(KeBugCheck, kDebug, kImplemented, kImportant);
|
||||
|
||||
void RegisterDebugExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Debug);
|
||||
|
||||
@@ -1017,9 +1017,8 @@ dword_result_t RtlNtStatusToDosError_entry(dword_t source_status) {
|
||||
DECLARE_XBOXKRNL_EXPORT3(RtlNtStatusToDosError, kNone, kImportant,
|
||||
kHighFrequency, kLogResult);
|
||||
|
||||
void RegisterErrorExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Error);
|
||||
|
||||
@@ -31,9 +31,8 @@ void HalReturnToFirmware_entry(dword_t routine) {
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT2(HalReturnToFirmware, kNone, kStub, kImportant);
|
||||
|
||||
void RegisterHalExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Hal);
|
||||
|
||||
@@ -32,9 +32,8 @@ dword_result_t HidReadKeys_entry(dword_t unk1, unknown_t unk2, unknown_t unk3) {
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(HidReadKeys, kInput, kStub);
|
||||
|
||||
void RegisterHidExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Hid);
|
||||
|
||||
@@ -735,9 +735,8 @@ dword_result_t IoCreateDevice_entry(dword_t device_struct, dword_t r4,
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(IoCreateDevice, kFileSystem, kStub);
|
||||
|
||||
void RegisterIoExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Io);
|
||||
|
||||
@@ -357,9 +357,8 @@ dword_result_t NtQueryVolumeInformationFile_entry(
|
||||
DECLARE_XBOXKRNL_EXPORT1(NtQueryVolumeInformationFile, kFileSystem,
|
||||
kImplemented);
|
||||
|
||||
void RegisterIoInfoExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(IoInfo);
|
||||
|
||||
@@ -649,9 +649,8 @@ dword_result_t MmDeleteKernelStack_entry(lpvoid_t stack_base,
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(MmDeleteKernelStack, kMemory, kImplemented);
|
||||
|
||||
void RegisterMemoryExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Memory);
|
||||
|
||||
@@ -23,9 +23,8 @@ void KeEnableFpuExceptions_entry(dword_t enabled) {
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(KeEnableFpuExceptions, kNone, kStub);
|
||||
|
||||
void RegisterMiscExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Misc);
|
||||
|
||||
@@ -83,25 +83,10 @@ XboxkrnlModule::XboxkrnlModule(Emulator* emulator, KernelState* kernel_state)
|
||||
RegisterExportTable(export_resolver_);
|
||||
|
||||
// Register all exported functions.
|
||||
RegisterAudioExports(export_resolver_, kernel_state_);
|
||||
RegisterAudioXmaExports(export_resolver_, kernel_state_);
|
||||
RegisterCryptExports(export_resolver_, kernel_state_);
|
||||
RegisterDebugExports(export_resolver_, kernel_state_);
|
||||
RegisterErrorExports(export_resolver_, kernel_state_);
|
||||
RegisterHalExports(export_resolver_, kernel_state_);
|
||||
RegisterHidExports(export_resolver_, kernel_state_);
|
||||
RegisterIoExports(export_resolver_, kernel_state_);
|
||||
RegisterIoInfoExports(export_resolver_, kernel_state_);
|
||||
RegisterMemoryExports(export_resolver_, kernel_state_);
|
||||
RegisterMiscExports(export_resolver_, kernel_state_);
|
||||
RegisterModuleExports(export_resolver_, kernel_state_);
|
||||
RegisterObExports(export_resolver_, kernel_state_);
|
||||
RegisterRtlExports(export_resolver_, kernel_state_);
|
||||
RegisterStringExports(export_resolver_, kernel_state_);
|
||||
RegisterThreadingExports(export_resolver_, kernel_state_);
|
||||
RegisterUsbcamExports(export_resolver_, kernel_state_);
|
||||
RegisterVideoExports(export_resolver_, kernel_state_);
|
||||
RegisterXConfigExports(export_resolver_, kernel_state_);
|
||||
#define XE_MODULE_EXPORT_GROUP(m, n) \
|
||||
Register##n##Exports(export_resolver_, kernel_state_);
|
||||
#include "xboxkrnl_module_export_groups.inc"
|
||||
#undef XE_MODULE_EXPORT_GROUP
|
||||
|
||||
// KeDebugMonitorData (?*)
|
||||
// Set to a valid value when a remote debugger is attached.
|
||||
|
||||
31
src/xenia/kernel/xboxkrnl/xboxkrnl_module_export_groups.inc
Normal file
31
src/xenia/kernel/xboxkrnl/xboxkrnl_module_export_groups.inc
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
// This is a partial file designed to be included by other files when
|
||||
// constructing various tables.
|
||||
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Audio)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, AudioXma)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Crypt)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Debug)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Error)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Hal)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Hid)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Io)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, IoInfo)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Memory)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Misc)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Module)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Ob)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Rtl)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, String)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Threading)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Usbcam)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, Video)
|
||||
XE_MODULE_EXPORT_GROUP(xboxkrnl, XConfig)
|
||||
@@ -199,9 +199,8 @@ void ExRegisterTitleTerminateNotification_entry(
|
||||
DECLARE_XBOXKRNL_EXPORT1(ExRegisterTitleTerminateNotification, kModules,
|
||||
kImplemented);
|
||||
|
||||
void RegisterModuleExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Module);
|
||||
|
||||
@@ -201,9 +201,8 @@ dword_result_t NtClose_entry(dword_t handle) {
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(NtClose, kNone, kImplemented);
|
||||
|
||||
void RegisterObExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Ob);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2020 Ben Vanik. All rights reserved. *
|
||||
* Copyright 2022 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
@@ -21,29 +21,11 @@ namespace xboxkrnl {
|
||||
xe::cpu::Export* RegisterExport_xboxkrnl(xe::cpu::Export* export_entry);
|
||||
|
||||
// Registration functions, one per file.
|
||||
#define DECLARE_REGISTER_EXPORTS(n) \
|
||||
#define XE_MODULE_EXPORT_GROUP(m, n) \
|
||||
void Register##n##Exports(xe::cpu::ExportResolver* export_resolver, \
|
||||
KernelState* kernel_state)
|
||||
DECLARE_REGISTER_EXPORTS(Audio);
|
||||
DECLARE_REGISTER_EXPORTS(AudioXma);
|
||||
DECLARE_REGISTER_EXPORTS(Crypt);
|
||||
DECLARE_REGISTER_EXPORTS(Debug);
|
||||
DECLARE_REGISTER_EXPORTS(Error);
|
||||
DECLARE_REGISTER_EXPORTS(Hal);
|
||||
DECLARE_REGISTER_EXPORTS(Hid);
|
||||
DECLARE_REGISTER_EXPORTS(Io);
|
||||
DECLARE_REGISTER_EXPORTS(IoInfo);
|
||||
DECLARE_REGISTER_EXPORTS(Memory);
|
||||
DECLARE_REGISTER_EXPORTS(Misc);
|
||||
DECLARE_REGISTER_EXPORTS(Module);
|
||||
DECLARE_REGISTER_EXPORTS(Ob);
|
||||
DECLARE_REGISTER_EXPORTS(Rtl);
|
||||
DECLARE_REGISTER_EXPORTS(String);
|
||||
DECLARE_REGISTER_EXPORTS(Threading);
|
||||
DECLARE_REGISTER_EXPORTS(Usbcam);
|
||||
DECLARE_REGISTER_EXPORTS(Video);
|
||||
DECLARE_REGISTER_EXPORTS(XConfig);
|
||||
#undef DECLARE_REGISTER_EXPORTS
|
||||
KernelState* kernel_state);
|
||||
#include "xboxkrnl_module_export_groups.inc"
|
||||
#undef XE_MODULE_EXPORT_GROUP
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
|
||||
@@ -624,9 +624,8 @@ dword_result_t RtlComputeCrc32_entry(dword_t seed, lpvoid_t buffer,
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(RtlComputeCrc32, kNone, kImplemented);
|
||||
|
||||
void RegisterRtlExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Rtl);
|
||||
|
||||
@@ -1383,9 +1383,8 @@ pointer_result_t InterlockedFlushSList_entry(
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(InterlockedFlushSList, kThreading, kImplemented);
|
||||
|
||||
void RegisterThreadingExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Threading);
|
||||
|
||||
@@ -37,9 +37,8 @@ dword_result_t XUsbcamGetState_entry() {
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(XUsbcamGetState, kNone, kStub);
|
||||
|
||||
void RegisterUsbcamExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(Usbcam);
|
||||
|
||||
@@ -138,9 +138,8 @@ dword_result_t ExGetXConfigSetting_entry(word_t category, word_t setting,
|
||||
}
|
||||
DECLARE_XBOXKRNL_EXPORT1(ExGetXConfigSetting, kModules, kImplemented);
|
||||
|
||||
void RegisterXConfigExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {}
|
||||
|
||||
} // namespace xboxkrnl
|
||||
} // namespace kernel
|
||||
} // namespace xe
|
||||
|
||||
DECLARE_XBOXKRNL_EMPTY_REGISTER_EXPORTS(XConfig);
|
||||
|
||||
Reference in New Issue
Block a user