Store thread TLS in guest memory rather than using host APIs

This commit is contained in:
Dr. Chat
2015-12-27 13:16:08 -06:00
committed by Ben Vanik
parent c5ac4185ac
commit eee0bb070c
5 changed files with 95 additions and 52 deletions

View File

@@ -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;
};