Commit Graph

87 Commits

Author SHA1 Message Date
Dr. Chat
a88c78eba3 Allow the kernel dispatch thread to be suspended after being initialized 2016-11-23 11:56:57 -06:00
Dr. Chat
a148b965f1 KernelState should handle module launching 2016-10-24 11:01:10 -05:00
gibbed
e7f5d3e7d4 Set length in overlapped completion to -1 when not success. 2016-06-20 17:13:31 -05:00
Dr. Chat
9b1e6d6cb3 Resolve a module name to its full path before comparing names. 2016-01-24 09:50:48 -06:00
Ben Vanik
6777ce6668 Reconcile debugger and save state stuff into a single implementation.
Fixes #497 and fixes #496.
Still rough edges, but at least less duplication.
2016-01-18 11:48:21 -08:00
Ben Vanik
f26bea88d9 Replacing zlib with snappy in traces, adding trace header, docs. 2015-12-30 22:58:22 -08:00
Ben Vanik
948aa2400d Formatting all code. Too gnarly to rebase properly. 2015-12-29 13:13:34 -08:00
Dr. Chat
4e7dfa477b Assign XModule path on load rather than in the constructor 2015-12-29 13:10:03 -08:00
Dr. Chat
6108ff1608 Use a 64-bit bitmap rather than a 32-bit bitmap. 2015-12-29 13:10:02 -08:00
Dr. Chat
d4da8cab4e BitMap: Change the size param to the number of entries (bits) 2015-12-29 13:09:59 -08:00
Dr. Chat
eee0bb070c Store thread TLS in guest memory rather than using host APIs 2015-12-29 13:09:58 -08:00
Dr. Chat
bb5fd73b9e Register user-modules with the kernel in UserModule::Restore 2015-12-29 13:09:57 -08:00
Dr. Chat
2855036f72 Remove modules from the object table if they fail to load. 2015-12-29 13:09:57 -08:00
Dr. Chat
f5237d486a KernelState::TerminateTitle - Release the global lock in smaller regions / No need for an argument specifying if called from guest 2015-12-29 13:09:51 -08:00
Dr. Chat
afb514528e Save/Restore XThreads before any other kernel objects 2015-12-29 13:09:44 -08:00
Dr. Chat
24f8295daa Make KernelState::TerminateTitle try to terminate XThreads safely. 2015-12-29 13:09:39 -08:00
Dr. Chat
c8a2298b9d Remove ~NotifyListener call to UnregisterNotifyListener (as it's impossible for this to occur) 2015-12-29 13:09:26 -08:00
Dr. Chat
7e88e54cbe XObject::host_object -> XObject::is_host_object 2015-12-29 13:09:23 -08:00
Dr. Chat
712a5da64b KernelState::Save/Restore (and misc. changes) 2015-12-29 12:35:58 -08:00
Ben Vanik
3fc1d02a09 Suspend some host threads that make guest callbacks. 2015-09-21 21:24:26 -07:00
Ben Vanik
e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00
Ben Vanik
8588fbc6cf Shuffling kernel util types to util/. 2015-09-06 13:45:52 -07:00
Ben Vanik
cb3dbcccbc Notes. 2015-09-06 11:05:16 -07:00
Ben Vanik
669f5b061f Moving DPC list into KernelState and removing unused file. 2015-09-06 09:36:39 -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
7711568af9 Implementing SetTimer and CompleteOverlappedEx APC callbacks.
Fixes #410.
2015-08-29 23:43:26 -07:00
Ben Vanik
ad090a40eb Fixing misuse of std::chrono. 2015-08-18 10:18:30 -07:00
Ben Vanik
0686227d23 Style fixes. 2015-08-08 16:40:14 -07:00
Ben Vanik
a92566dfc5 More style. 2015-08-07 21:29:03 -07:00
Ben Vanik
7ecc6362de Debugger stuff. Lots of wasted work :/ 2015-07-26 22:47:16 -07:00
Dr. Chat
8d0fef1433 Kernel state terminate notification support 2015-07-21 22:11:33 -05:00
Ben Vanik
bebda48a4f More clang fixes. 2015-07-19 20:46:14 -07:00
Ben Vanik
91d7acf59e Fixing some particularly bad /W4. 2015-07-18 23:04:21 -07:00
Ben Vanik
ecd4af10c9 Fixing some clang warnings/errors. 2015-07-15 23:26:58 -07:00
Dr. Chat
870aa092bb KernelState::GetKernelModule 2015-07-05 17:27:25 -05:00
Dr. Chat
82986c6eec Use TerminateTitle rather than relying on XamLoader* being called from the main thread. 2015-07-05 16:22:45 -05:00
Dr. Chat
5ccea06e7f KernelState::TerminateTitle 2015-07-05 15:42:30 -05:00
Dr. Chat
fbfdfc8914 Don't call DllMain on non-DLLs
Gracefully handle the kernel dispatch thread already running
2015-07-05 13:31:13 -05:00
Dr. Chat
1788ee1589 Linting. 2015-07-03 20:11:08 -05:00
Dr. Chat
a25090f3ca Templated XUserModule::GetOptHeader 2015-07-03 10:27:08 -05:00
Dr. Chat
029babaf5d Drop dependency on old-style xex2 headers 2015-07-03 08:15:53 -05:00
Ben Vanik
5b2f049d4c Adding deferred xoverlapped completion helper. 2015-06-29 12:02:08 -07:00
Ben Vanik
996f99bd85 Quick fix for RtlImageXexHeaderField - still some more to do. 2015-06-28 12:17:48 -07:00
Ben Vanik
e772a8cb92 Fixing module export. 2015-06-28 12:07:13 -07:00
Ben Vanik
7875a4b0ba Merge pull request #300 from DrChat/hmodule_fix
Swap to using HMODULE instead of handles for xex modules.
2015-06-28 12:01:32 -07:00
Dr. Chat
bb900ba9db XexExecutableModuleHandle export now points to the executing HMODULE 2015-06-27 23:42:46 -05:00
Ben Vanik
1ac19f1b08 Replacing vfs memory mapping with base memory mapping.
Progress on #294.
2015-06-27 18:02:20 -07:00
gibbed
b14ca702d1 Initialize process_type properly. 2015-06-05 19:21:52 -05:00
Ben Vanik
52060af847 Best-guess process info block. 2015-06-04 17:46:00 -07:00
Ben Vanik
169ced8194 Removing kernel_state and ppc_context from kernel export args. 2015-06-01 19:33:13 -07:00