namespace axl::sys
namespace sys {
// namespaces
namespace axl::sys::drw;
namespace axl::sys::lnx;
namespace axl::sys::psx;
namespace axl::sys::win;
// typedefs
typedef EventBase<sl::False<bool>> Event;
typedef EventBase<sl::True<bool>> NotificationEvent;
typedef NameableEventBase<sl::False<bool>> NameableEvent;
typedef NameableEventBase<sl::True<bool>> NameableNotificationEvent;
typedef rc::Ptr<void> TlsValue;
// structs
struct SjljFrame;
struct Time;
// classes
class InvertedSemaphore;
class ReadWriteLock;
class ScopeLock;
template <typename T>
class ScopedTlsPtrSlot;
class TlsMgr;
template <typename T>
class TlsPtrSlot;
class TlsSlot;
// global functions
void
atomicUpdatePeak(
volatile int32_t* peak,
int32_t current
);
void
yieldProcessor();
void
atomicLock(volatile int32_t* lock);
void
atomicUnlock(volatile int32_t* lock);
uint_t
getCurrentProcessId();
bool
createProcess(const sl::StringRef& commandLine);
sl::String
getProcessImageName(uint_t pid);
void
sjljThrow();
uint64_t
getTimestamp();
uint64_t
getPreciseTimestamp();
void
sleep(uint32_t msCount);
int
getTimeZoneOffsetInMinutes(int timeZone);
uint64_t
getTimestampFromTimeval(const timeval* tval);
TlsMgr*
getTlsMgr();
size_t
createSimpleTlsSlot();
bool
deleteSimpleTlsSlot(size_t slot);
intptr_t
getSimpleTlsValue(size_t slot);
intptr_t
setSimpleTlsValue(
size_t slot,
intptr_t value
);
template <typename T>
T*
getTlsPtrSlotValue();
template <typename T>
T*
setTlsPtrSlotValue(T* p);
template <typename T>
rc::Ptr<T>
setTlsPtrSlotValue(const rc::Ptr<T>& ptr);
} // namespace sys