1#pragma once
2
3#ifdef NNSDK
4#include <nn/os.h>
5#endif
6
7#include "basis/seadTypes.h"
8
9namespace sead
10{
11class ThreadLocalStorage
12{
13public:
14 ThreadLocalStorage();
15 ~ThreadLocalStorage();
16
17 ThreadLocalStorage(const ThreadLocalStorage&) = delete;
18 ThreadLocalStorage& operator=(const ThreadLocalStorage&) = delete;
19
20 void setValue(uintptr_t value);
21 uintptr_t getValue() const;
22
23private:
24#ifdef NNSDK
25 nn::os::TlsSlot mTlsSlot;
26#endif
27};
28} // namespace sead
29
30#define SEAD_THREAD_THREAD_LOCAL_STORAGE_H_
31#ifdef NNSDK
32#include "thread/nin/seadThreadLocalStorageNin.hpp"
33#else
34#error "Unknown platform"
35#endif
36#undef SEAD_THREAD_THREAD_LOCAL_STORAGE_H_
37