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