Commit Graph

49 Commits

Author SHA1 Message Date
gibbed
1513dd235b [Kernel] Code reentrance for guest fibers.
[Kernel] Code reentrance using exceptions for guest fibers.
2020-12-05 14:17:33 -06:00
gibbed
164aa8e8ca [Kernel] Scope object type enum. 2020-11-22 20:34:07 -06:00
Triang3l
b7ba3051f2 [Kernel] Fix null in thread affinity init + ignore affinity when less than 6 cores 2020-11-16 23:15:51 +03:00
Triang3l
a319617185 [Kernel] Thread affinity cleanup 2020-11-14 18:09:47 +03:00
Gliniak
2dc6b0b2ad [Kernel/Thread] Added missing paramteter to KeSetAffinityThread 2020-11-14 17:48:30 +03:00
gibbed
a48bb71c2f Overhaul logging. 2020-04-07 16:09:41 -05:00
gibbed
5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Joel Linn
7e244e0488 [Base] Clock state now unaltered by threading.
- Removed tick and time values from ThreadSavedState.
- Removed affiliated get/set code from Save and Restore.
- Removed dangerous SetGuestTickCount method.
2019-12-01 17:11:58 -06:00
Silent
c5db959154 [Kernel] Retain handles and not objects in XThread
This fixes cases introduced by 52e836d0f81e752ba368717e68773b591adfa9cf
where thread handles get closed before the thread finishes.
Handle was assumed to be alive there, which was not true as
threads self-referenced only their objects, not their handles.

Affected games: Payday 2 Demo
2019-11-30 20:08:30 -06:00
Jonathan Goyvaerts
c1af632562 Replace all gflag implementations with cvar implementations 2019-08-03 02:34:07 +02:00
gibbed
7c7d80103e [Kernel] Use type constant instead of type enum when calling base constructor. 2019-07-29 13:53:44 -05:00
gibbed
18d8a59cfa [Kernel] Initialize COM on all new XThreads. 2019-04-19 04:02:32 -05:00
Margen67
896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
DrChat
11ae05155d Fix casting between XThread and Thread causing pointer misalignment 2017-02-10 23:35:35 -06:00
Dr. Chat
4c55039c22 Remove xenia-cpu dependency on xenia-kernel 2017-02-06 21:57:18 -06:00
gibbed
dd18112905 Assert the CPU index on set. 2016-06-20 12:53:07 -05:00
gibbed
27610989a2 Fixed fake CPU handling. 2016-06-20 12:52:36 -05:00
Dr. Chat
23b2e25fb8 XThread: Don't release ourselves before calling thread_->Terminate! 2016-06-18 20:58:58 -05:00
sephiroth99
bf910c2d9a Add missing definitions for XAPC constants
Fixes linking errors for these symbols.
2016-01-20 11:26:35 -05: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
b02ca62388 Fixing most remaining C++ warnings in clang. 2016-01-01 18:37:33 +00:00
Dr. Chat
c242a01043 Mark XThreads as running before calling Execute 2015-12-29 13:10:02 -08:00
Dr. Chat
5cb591b993 Compensate for static TLS when accessing dynamic TLS. 2015-12-29 13:10:01 -08:00
Dr. Chat
bca5fb5382 XThread acquire mutants on restore 2015-12-29 13:10:00 -08:00
Dr. Chat
eee0bb070c Store thread TLS in guest memory rather than using host APIs 2015-12-29 13:09:58 -08:00
Ben Vanik
383a173a18 REBASE: fixing xthread instruction decoding. 2015-12-29 13:09:50 -08:00
Dr. Chat
a5c22ec214 XThread: Only need to retain a pointer to our object - not a handle. 2015-12-29 13:09:49 -08:00
Dr. Chat
621d3f8abb XThread free stack on destruction 2015-12-29 13:09:49 -08:00
Dr. Chat
07d31862f1 XThread: Special case save/restore for threads no longer running. 2015-12-29 13:09:48 -08:00
Dr. Chat
b58e9afbf1 Fix XThread::StepIntoBranch not properly stepping into blr/bctr 2015-12-29 13:09:48 -08:00
Dr. Chat
44c9e8fe25 Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
Dr. Chat
6f4626118e Fix infinite loop in StepToSafePoint after stepping to an address once 2015-12-29 13:09:46 -08:00
Dr. Chat
606aa9af6f XThread: Update the PC when we step out of an export! 2015-12-29 13:09:43 -08:00
Dr. Chat
d2d97fe58f XThread - Fix unconditional conditional branch check 2015-12-29 13:09:42 -08:00
Dr. Chat
3007a98d2d Install false-branch breakpoint only if the opcode is conditional. 2015-12-29 13:09:38 -08:00
Dr. Chat
f9de61ceed XThread::StepToSafePoint - Handle cases where the thread hasn't started yet. 2015-12-29 13:09:37 -08:00
Dr. Chat
a6322c7bf4 NativeList getters/setters 2015-12-29 13:09:36 -08:00
Dr. Chat
290d5d9594 Fix incorrect double-retaining of objects on restore. 2015-12-29 13:09:24 -08:00
Dr. Chat
1e36ea8b69 Use c_str() when passing a string to sprintf! 2015-12-29 13:09:23 -08:00
Dr. Chat
e54850e1f2 XThread::set_name - Use more efficient xe::format_string instead of a StringBuffer 2015-12-29 13:09:22 -08:00
Dr. Chat
442f063ddf XThread Save: Handle emulated instructions/MMIO/etc that call out of guest code 2015-12-29 13:09:20 -08:00
Dr. Chat
4301641bdf XThread Save/Restore 2015-12-29 13:09:16 -08:00
Dr. Chat
666f5543a8 Cleanup ThreadState and XThread 2015-12-29 12:32:46 -08:00
Ben Vanik
4af6c41740 Moving profiling.h to base - UI could be separated for cleanliness. 2015-11-07 12:31:07 -08:00
Dr. Chat
3cbc65ac29 XThread Get/Set Last Error 2015-09-25 18:22:13 -05:00
Ben Vanik
3fc1d02a09 Suspend some host threads that make guest callbacks. 2015-09-21 21:24:26 -07:00
Ben Vanik
5d033f9cb3 A new debugger.
Lots of bugs/rough edges/etc - issues will be filed.
Old-style debugging still works (just use --emit_source_annotations to get
the helpful movs back and --break_on_instruction will still fire).
2015-09-20 21:31:05 -07:00
Ben Vanik
a1a996c1e6 Shrinking UI elements in the debugger. 2015-09-06 20:49:20 -07:00
Ben Vanik
e5fbf840d2 Shuffling kernel/. 2015-09-06 18:07:52 -07:00