Prepping kernel export tables for various uses.
This commit is contained in:
parent
1b07aace73
commit
9f320ba4a7
|
@ -7,6 +7,6 @@
|
||||||
'xam_module.h',
|
'xam_module.h',
|
||||||
'xam_state.cc',
|
'xam_state.cc',
|
||||||
'xam_state.h',
|
'xam_state.h',
|
||||||
'xam_table.h',
|
'xam_table.inc',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
|
|
||||||
#include <xenia/kernel/modules/xam/xam_module.h>
|
#include <xenia/kernel/modules/xam/xam_module.h>
|
||||||
|
|
||||||
|
#include <xenia/kernel/export.h>
|
||||||
#include <xenia/kernel/modules/xam/xam_info.h>
|
#include <xenia/kernel/modules/xam/xam_info.h>
|
||||||
#include <xenia/kernel/modules/xam/xam_table.h>
|
|
||||||
|
|
||||||
|
|
||||||
using namespace xe;
|
using namespace xe;
|
||||||
|
@ -20,6 +20,12 @@ using namespace xe::kernel::xam;
|
||||||
|
|
||||||
XamModule::XamModule(Runtime* runtime) :
|
XamModule::XamModule(Runtime* runtime) :
|
||||||
KernelModule(runtime) {
|
KernelModule(runtime) {
|
||||||
|
// Build the export table used for resolution.
|
||||||
|
#include <xenia/kernel/util/export_table_pre.inc>
|
||||||
|
static KernelExport xam_export_table[] = {
|
||||||
|
#include <xenia/kernel/modules/xam/xam_table.inc>
|
||||||
|
};
|
||||||
|
#include <xenia/kernel/util/export_table_post.inc>
|
||||||
export_resolver_->RegisterTable(
|
export_resolver_->RegisterTable(
|
||||||
"xam.xex", xam_export_table, XECOUNT(xam_export_table));
|
"xam.xex", xam_export_table, XECOUNT(xam_export_table));
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -11,9 +11,9 @@
|
||||||
|
|
||||||
#include <gflags/gflags.h>
|
#include <gflags/gflags.h>
|
||||||
|
|
||||||
|
#include <xenia/kernel/export.h>
|
||||||
#include <xenia/kernel/modules/xboxkrnl/kernel_state.h>
|
#include <xenia/kernel/modules/xboxkrnl/kernel_state.h>
|
||||||
#include <xenia/kernel/modules/xboxkrnl/objects/xmodule.h>
|
#include <xenia/kernel/modules/xboxkrnl/objects/xmodule.h>
|
||||||
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_table.h>
|
|
||||||
|
|
||||||
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_hal.h>
|
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_hal.h>
|
||||||
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_memory.h>
|
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_memory.h>
|
||||||
|
@ -35,6 +35,12 @@ XboxkrnlModule::XboxkrnlModule(Runtime* runtime) :
|
||||||
KernelModule(runtime) {
|
KernelModule(runtime) {
|
||||||
ExportResolver* resolver = export_resolver_.get();
|
ExportResolver* resolver = export_resolver_.get();
|
||||||
|
|
||||||
|
// Build the export table used for resolution.
|
||||||
|
#include <xenia/kernel/util/export_table_pre.inc>
|
||||||
|
static KernelExport xboxkrnl_export_table[] = {
|
||||||
|
#include <xenia/kernel/modules/xboxkrnl/xboxkrnl_table.inc>
|
||||||
|
};
|
||||||
|
#include <xenia/kernel/util/export_table_post.inc>
|
||||||
resolver->RegisterTable(
|
resolver->RegisterTable(
|
||||||
"xboxkrnl.exe", xboxkrnl_export_table, XECOUNT(xboxkrnl_export_table));
|
"xboxkrnl.exe", xboxkrnl_export_table, XECOUNT(xboxkrnl_export_table));
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
'xboxkrnl_module.h',
|
'xboxkrnl_module.h',
|
||||||
'xboxkrnl_rtl.cc',
|
'xboxkrnl_rtl.cc',
|
||||||
'xboxkrnl_rtl.h',
|
'xboxkrnl_rtl.h',
|
||||||
'xboxkrnl_table.h',
|
'xboxkrnl_table.inc',
|
||||||
'xboxkrnl_threading.cc',
|
'xboxkrnl_threading.cc',
|
||||||
'xboxkrnl_threading.h',
|
'xboxkrnl_threading.h',
|
||||||
'xobject.cc',
|
'xobject.cc',
|
||||||
|
|
|
@ -7,21 +7,10 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XENIA_KERNEL_MODULES_XBOXKRNL_TABLE_H_
|
// This is a partial file designed to be included by other files when
|
||||||
#define XENIA_KERNEL_MODULES_XBOXKRNL_TABLE_H_
|
// constructing various tables.
|
||||||
|
|
||||||
#include <xenia/kernel/export.h>
|
|
||||||
|
|
||||||
|
|
||||||
namespace xe {
|
|
||||||
namespace kernel {
|
|
||||||
namespace xboxkrnl {
|
|
||||||
|
|
||||||
|
|
||||||
#define FLAG(t) kXEKernelExportFlag##t
|
|
||||||
|
|
||||||
|
|
||||||
static KernelExport xboxkrnl_export_table[] = {
|
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x00000001, DbgBreakPoint, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x00000001, DbgBreakPoint, ? , Function, 0),
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x00000002, DbgBreakPointWithStatus, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x00000002, DbgBreakPointWithStatus, ? , Function, 0),
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x00000003, DbgPrint, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x00000003, DbgPrint, ? , Function, 0),
|
||||||
|
@ -881,15 +870,3 @@ XE_DECLARE_EXPORT(xboxkrnl, 0x00000358, XAudioSetDuckerHoldTime,
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x00000359, DevAuthShouldAlwaysEnforce, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x00000359, DevAuthShouldAlwaysEnforce, ? , Function, 0),
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x0000035A, XAudioGetUnderrunCount, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x0000035A, XAudioGetUnderrunCount, ? , Function, 0),
|
||||||
XE_DECLARE_EXPORT(xboxkrnl, 0x0000035C, XVoicedIsActiveProcess, ? , Function, 0),
|
XE_DECLARE_EXPORT(xboxkrnl, 0x0000035C, XVoicedIsActiveProcess, ? , Function, 0),
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#undef FLAG
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace xboxkrnl
|
|
||||||
} // namespace kernel
|
|
||||||
} // namespace xe
|
|
||||||
|
|
||||||
|
|
||||||
#endif // XENIA_KERNEL_MODULES_XBOXKRNL_TABLE_H_
|
|
|
@ -17,5 +17,6 @@
|
||||||
'includes': [
|
'includes': [
|
||||||
'fs/sources.gypi',
|
'fs/sources.gypi',
|
||||||
'modules/sources.gypi',
|
'modules/sources.gypi',
|
||||||
|
'util/sources.gypi',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* 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. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Post-include file for an export table.
|
||||||
|
|
||||||
|
|
||||||
|
#undef FLAG
|
||||||
|
#undef XE_EXPORT
|
|
@ -0,0 +1,35 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* 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. *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre-include file for an export table.
|
||||||
|
* Use this to build tables of exports:
|
||||||
|
*
|
||||||
|
* // Build the export table used for resolution.
|
||||||
|
* #include <xenia/kernel/util/export_table_pre.inc>
|
||||||
|
* static KernelExport my_module_export_table[] = {
|
||||||
|
* #include <xenia/kernel/modules/my_module/my_module_table.inc>
|
||||||
|
* };
|
||||||
|
* #include <xenia/kernel/util/export_table_post.inc>
|
||||||
|
* export_resolver_->RegisterTable(
|
||||||
|
* "my_module.xex",
|
||||||
|
* my_module_export_table, XECOUNT(my_module_export_table));
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define XE_EXPORT(module, ordinal, name, signature, type, flags) \
|
||||||
|
{ \
|
||||||
|
ordinal, \
|
||||||
|
KernelExport::type, \
|
||||||
|
flags, \
|
||||||
|
#signature, \
|
||||||
|
#name, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FLAG(t) kXEKernelExportFlag##t
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Copyright 2013 Ben Vanik. All Rights Reserved.
|
||||||
|
{
|
||||||
|
'sources': [
|
||||||
|
'export_table_post.inc',
|
||||||
|
'export_table_pre.inc',
|
||||||
|
],
|
||||||
|
}
|
Loading…
Reference in New Issue