Commit Graph

47 Commits

Author SHA1 Message Date
Ben Vanik
e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00
Ben Vanik
3c96b6fa0a DANGER DANGER. Switching to global critical region.
This changes almost all locks held by guest threads to use a single global
critical region. This emulates the behavior on the PPC of disabling
interrupts (by calls like KeRaiseIrqlToDpcLevel or masking interrupts),
and prevents deadlocks from occuring when threads are suspended or
otherwise blocked.
This has performance implications and a pass is needed to ensure the
locking is as granular as possible. It could also break everything
because it's fundamentally unsound. We'll see.
2015-09-06 09:30:54 -07:00
Ben Vanik
a92566dfc5 More style. 2015-08-07 21:29:03 -07:00
Ben Vanik
e01c2ac98d Fixing formatting. 2015-07-28 00:32:01 -07:00
Dr. Chat
997de209ec Reversed engineered X_OBJECT_HEADER a bit better 2015-07-27 18:26:07 -05:00
Dr. Chat
8e41d5a707 The kernel object table now keeps track of handle reference counts. 2015-07-22 19:34:33 -05:00
Dr. Chat
e54477d0e4 XObject::StashNative 2015-07-17 19:52:29 -05:00
Ben Vanik
a6012b73f4 Switching audio system to platform-agnostic primitives. 2015-07-14 23:13:56 -07:00
Ben Vanik
345fe60da0 Switching over kernel objects to the platform-agnostic APIs.
Possibly some regressions here.
2015-07-14 22:44:45 -07:00
Ben Vanik
c2e2b3380e Replacing X_ANSI_STRING with new style.
Progress on #297.
2015-06-27 12:16:52 -07:00
Dr. Chat
3e7870fb39 Make SetNativePointer setup the guest pointer 2015-06-12 22:46:19 -05:00
Dr. Chat
3bd5dc011c Free the object creation info on destruction 2015-06-12 21:35:49 -05:00
Dr. Chat
bdcadeffe5 XObject CreateNative 2015-06-12 21:30:32 -05:00
Dr. Chat
f96657ef7c Fixup DISPATCH_HEADER type_flags to its parts 2015-06-12 19:47:28 -05:00
Dr. Chat
864e257474 DISPATCH_HEADER -> X_DISPATCH_HEADER 2015-06-12 18:59:08 -05:00
Ben Vanik
e419d314b3 Audio now works a bit better, but is still broken :/ 2015-05-28 02:15:30 -07:00
gibbed
0b75d409d2 Somehow this assert got removed. 2015-05-27 15:06:11 -05:00
Ben Vanik
8244409501 Refactoring to enable future time scaling, coordinated clocks, etc. 2015-05-26 22:20:58 -07:00
Ben Vanik
120e09f8e7 XObject::GetObject->GetNativeObject 2015-05-25 00:52:19 -07:00
Ben Vanik
1104f8e687 Header cleanups and prep. 2015-05-25 00:51:25 -07:00
Ben Vanik
8ac1f61c64 RAII object reference, debug mutex, etc. 2015-05-25 00:51:24 -07:00
gibbed
f1d0fe909f Added an assert_not_null for native_ptr in XObject::GetObject. 2015-05-24 13:42:31 -05:00
Dr. Chat
f2ac2af8cd Change kernel state's object mutex to a recursive mutex
KernelState::IsKernelModule
2015-05-18 00:40:43 -05:00
Dr. Chat
662fa97444 XObject SetNativePointer: Added flag to disable asserts on uninitialized memory 2015-05-16 18:47:33 -05:00
Ben Vanik
147a70b9c1 Rewriting memory manager. 2015-05-17 00:16:56 +01:00
Ben Vanik
8d4f54e240 Thread state updates. 2015-05-16 01:45:56 -07:00
gibbed
fc9f9d9a60 This is probably more correct. Gets rid of all xobject related asserts for several games. 2015-05-12 06:51:30 -05:00
Ben Vanik
e3220f7ae6 Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
Ben Vanik
ec84a688e9 Starting to properly attribute virtual vs. physical memory accesses. 2015-03-29 11:11:35 -07:00
x1nixmzeng
25f78ed325 Added API scanner tool
New tool for issue #171 which links to libxenia to dump the API usage
from packaged content
2015-02-21 17:33:56 +00:00
Ben Vanik
90e489527a Enough of ObOpenObjectByName to handle basic usage + asserts for others.
Fixes #143.
2015-02-11 09:42:12 -08:00
Ben Vanik
00e4a4fe1b Fix #include format. 2015-01-31 22:49:47 -08:00
Ben Vanik
1c4dcd5e0e clang-format on most of kernel/ 2014-08-17 13:13:03 -07:00
Ben Vanik
bca49bed4b Removing xe_mutex_t. 2014-08-16 00:56:50 -07:00
Ben Vanik
c84fcc70a4 Cleaning up kernel namespaces. 2014-08-16 00:25:13 -07:00
Ben Vanik
bf48e9fbbd Part 2 of kernel cleanup: merging functions into shims. 2014-08-16 00:11:24 -07:00
Ben Vanik
ec4f41fec4 Moving byte order/memory access to poly. 2014-07-17 19:20:17 -07:00
Ben Vanik
9b78dd977b Migrating atomic ops to std::atomic where possible and poly. 2014-07-12 17:48:54 -07:00
Ben Vanik
bf882714d0 Cleaning up asserts and file/line macros. 2014-07-12 16:51:52 -07:00
Ben Vanik
dbf1aa182e Fixing WaitForMultipleObjects 2014-01-12 02:34:22 -08:00
Ben Vanik
61e873cd31 Starting work on APCs, though nothing is hitting them yet. 2014-01-11 22:12:05 -08:00
Ben Vanik
cfe7b2127d Timers. Probably. 2014-01-07 21:55:32 -08:00
Ben Vanik
5019f350f8 Mutants. 2014-01-07 18:32:55 -08:00
Ben Vanik
40ca0bcb76 NtSignalAndWaitForSingleObjectEx (untested). 2014-01-07 00:28:48 -08:00
Ben Vanik
bb41ab717b KeWaitForMultipleObjects. 2014-01-05 01:49:10 -08:00
Ben Vanik
372fd97821 Moving Wait() to XObject base. 2014-01-05 01:22:08 -08:00
Ben Vanik
4d92720109 Moving all kernel files around just to fuck with whoever's keeping track ;) 2014-01-04 17:12:46 -08:00