Store thread TLS in guest memory rather than using host APIs
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "xenia/base/bit_map.h"
|
||||
#include "xenia/base/mutex.h"
|
||||
#include "xenia/cpu/export_resolver.h"
|
||||
#include "xenia/kernel/util/native_list.h"
|
||||
@@ -115,6 +116,9 @@ class KernelState {
|
||||
return process_info_block_address_;
|
||||
}
|
||||
|
||||
uint32_t AllocateTLS();
|
||||
void FreeTLS(uint32_t slot);
|
||||
|
||||
void RegisterTitleTerminateNotification(uint32_t routine, uint32_t priority);
|
||||
void RemoveTitleTerminateNotification(uint32_t routine);
|
||||
|
||||
@@ -209,6 +213,8 @@ class KernelState {
|
||||
std::condition_variable_any dispatch_cond_;
|
||||
std::list<std::function<void()>> dispatch_queue_;
|
||||
|
||||
BitMap tls_bitmap_;
|
||||
|
||||
friend class XObject;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user