72 lines
2.0 KiB
C++
72 lines
2.0 KiB
C++
/***
|
|
Copyright (C) 2023 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: AuProcAddresses.hpp
|
|
Date: 2023-2-16
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
#if defined(AURORA_IS_MODERNNT_DERIVED)
|
|
#include "AuProcAddresses.NT.hpp"
|
|
#endif
|
|
|
|
#if defined(AURORA_IS_LINUX_DERIVED)
|
|
#include "AuProcAddresses.Linux.hpp"
|
|
#endif
|
|
|
|
#if defined(AURORA_IS_POSIX_DERIVED)
|
|
#include "AuProcAddresses.UNIX.hpp"
|
|
#endif
|
|
|
|
namespace Aurora
|
|
{
|
|
void InitProcAddresses();
|
|
|
|
inline bool gUseNativeWaitRWLock {};
|
|
|
|
bool SysNativeWaitOnAddressFutexSupported();
|
|
|
|
bool SysWaitOnAddressNoTimed(const void *pTargetAddress,
|
|
const void *pCompareAddress,
|
|
AuUInt8 uWordSize);
|
|
|
|
bool SysWaitOnAddressTimed(const void *pTargetAddress,
|
|
const void *pCompareAddress,
|
|
AuUInt8 uWordSize,
|
|
AuUInt64 uAbsTimeSteadyClock,
|
|
AuUInt64 uRelativeNanoseconds,
|
|
AuOptional<AuUInt64> uAbsTimeAltClock /* hint */,
|
|
bool bSpun = false);
|
|
|
|
void SysWakeNOnAddress(const void *pAddress,
|
|
AuUInt32 dwCount);
|
|
|
|
void SysWakeOneOnAddress(const void *pAddress);
|
|
|
|
void SysWakeAllOnAddress(const void *pAddress);
|
|
|
|
AuUInt64 SysGetFileLength(AuUInt uOSHandle);
|
|
|
|
void SysWriteEoS(AuUInt uOSHandle);
|
|
|
|
void SysFlushHandle(AuUInt uOSHandle);
|
|
|
|
void SysCloseHandle(AuUInt uOSHandle);
|
|
|
|
bool SysHandleIsNonZero(AuUInt uOSHandle);
|
|
|
|
void *SysAllocateLarge(AuUInt uLength);
|
|
|
|
void SysAllocateFree(void *pBuffer, AuUInt uLength);
|
|
|
|
bool SysMemoryLockPages(const void *pVoid, AuUInt uLength);
|
|
|
|
bool SysMemoryUnlockPages(const void *pVoid, AuUInt uLength);
|
|
}
|
|
|
|
#if defined(AURORA_IS_MODERNNT_DERIVED) || defined(AURORA_IS_POSIX_DERIVED)
|
|
#if !defined(AURORA_HAS_SYS_ALLOC_LARGE)
|
|
#define AURORA_HAS_SYS_ALLOC_LARGE
|
|
#endif
|
|
#endif |