[*] Refactoring in progress...

This commit is contained in:
Reece Wilson 2022-11-17 07:46:07 +00:00
parent 673872f632
commit 898c0ced37
144 changed files with 587 additions and 586 deletions

View File

@ -11,19 +11,19 @@ namespace Aurora::RNG
{ {
struct IRandomDevice struct IRandomDevice
{ {
virtual void Read(void *in, AuUInt32 length) = 0; virtual void Read(void *pIn, AuUInt32 uLength) = 0;
virtual AuString NextString(AuUInt32 length, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0; virtual AuString NextString(AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0;
virtual void NextString(char *string, AuUInt32 length, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0; virtual void NextString(char *pString, AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0;
virtual AuUInt8 NextByte() = 0; virtual AuUInt8 NextByte() = 0;
virtual bool NextBoolean() = 0; virtual bool NextBoolean() = 0;
virtual AuUInt32 NextU32() = 0; virtual AuUInt32 NextU32() = 0;
virtual AuUInt32 NextU32(AuUInt32 min, AuUInt32 max) = 0; virtual AuUInt32 NextU32(AuUInt32 uMin, AuUInt32 uMax) = 0;
virtual AuUInt64 NextU64() = 0; virtual AuUInt64 NextU64() = 0;
virtual AuInt32 NextInt(AuInt32 min, AuInt32 max) = 0; virtual AuInt32 NextInt(AuInt32 uMin, AuInt32 uMax) = 0;
virtual double NextDecimal() = 0; virtual double NextDecimal() = 0;
virtual float NextNumber(float min, float max) = 0; virtual float NextNumber(float min, float max) = 0;
virtual AuUInt32 NextIndex(AuUInt32 count /* = max + 1*/) = 0; virtual AuUInt32 NextIndex(AuUInt32 uCount /* = max + 1*/) = 0;
template<typename T, int N> template<typename T, int N>
inline void NextFillArray(T(&array)[N]) inline void NextFillArray(T(&array)[N])

View File

@ -10,28 +10,28 @@
#include <AuroraRuntime.hpp> #include <AuroraRuntime.hpp>
#include "RuntimeInternal.hpp" #include "RuntimeInternal.hpp"
#include "AuCrypto.hpp" #include "AuCrypto.hpp"
#include "Processes/Processes.hpp" #include "Processes/AuProcesses.hpp"
#include "RNG/RNG.hpp" #include "RNG/AuRNG.hpp"
#include "Locale/Locale.hpp" #include "Locale/Locale.hpp"
#include "Console/Console.hpp" #include "Console/Console.hpp"
#include "IO/FS/FS.hpp" #include "IO/FS/FS.hpp"
#include "IO/IO.hpp" #include "IO/IO.hpp"
#include "IO/Net/Net.hpp" #include "IO/Net/Net.hpp"
#include "Hashing/Hashing.hpp" #include "Hashing/AuHashing.hpp"
#include "Debug/Debug.hpp" #include "Debug/Debug.hpp"
#include "Async/Async.hpp" #include "Async/Async.hpp"
#include "HWInfo/HWInfo.hpp" #include "HWInfo/AuHWInfo.hpp"
#include "Telemetry/Telemetry.hpp" #include "Telemetry/Telemetry.hpp"
#include "Threading/Threads/OSThread.hpp" #include "Threading/Threads/AuOSThread.hpp"
#include "SWInfo/SWInfo.hpp" #include "SWInfo/AuSWInfo.hpp"
#if defined(AURORA_PLATFORM_WIN32) #if defined(AURORA_PLATFORM_WIN32)
#include "Extensions/Win32/DarkTheme.hpp" #include "Extensions/Win32/DarkTheme.hpp"
#endif #endif
#include "Process/Process.hpp" #include "Process/Process.hpp"
#include "Exit/Exit.hpp" #include "Exit/AuExit.hpp"
#include "CmdLine/CmdLine.hpp" #include "CmdLine/CmdLine.hpp"
#include "Grug/Grug.hpp" #include "Grug/AuGrug.hpp"
#include "Threading/Sleep.hpp" #include "Threading/AuSleep.hpp"
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
void LinuxSuperSecretIOTick(); void LinuxSuperSecretIOTick();

View File

@ -16,8 +16,8 @@
#include "Debug.hpp" #include "Debug.hpp"
#include <Source/Telemetry/Telemetry.hpp> #include <Source/Telemetry/Telemetry.hpp>
#include <Source/Grug/Grug.hpp> #include <Source/Grug/AuGrug.hpp>
#include <Source/Exit/Exit.hpp> #include <Source/Exit/AuExit.hpp>
namespace Aurora::Debug namespace Aurora::Debug
{ {

View File

@ -24,8 +24,8 @@
#include <Source/Process/ProcessMap.hpp> #include <Source/Process/ProcessMap.hpp>
#include <Source/IO/FS/FS.hpp> #include <Source/IO/FS/FS.hpp>
#include <Source/Grug/Grug.hpp> #include <Source/Grug/AuGrug.hpp>
#include <Source/Exit/Exit.hpp> #include <Source/Exit/AuExit.hpp>
#include <WerApi.h> #include <WerApi.h>

View File

@ -9,7 +9,7 @@
#include "Debug.hpp" #include "Debug.hpp"
#include "Panic.hpp" #include "Panic.hpp"
//#include <intrin.h> //#include <intrin.h>
#include <Source/Grug/Grug.hpp> #include <Source/Grug/AuGrug.hpp>
namespace Aurora::Debug namespace Aurora::Debug
{ {

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Exit.Unix.cpp File: AuExit.Unix.cpp
Date: 2022-4-7 Date: 2022-4-7
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Exit.hpp" #include "AuExit.hpp"
#include "Exit.Unix.hpp" #include "AuExit.Unix.hpp"
#include <Source/Grug/Grug.hpp> #include <Source/Grug/Grug.hpp>
namespace Aurora::Exit namespace Aurora::Exit

View File

@ -1,6 +1,6 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Exit.Unix.hpp File: AuExit.Unix.hpp
Date: 2022-4-7 Date: 2022-4-7
Author: Reece Author: Reece
***/ ***/

View File

@ -1,17 +1,17 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Exit.cpp File: AuExit.cpp
Date: 2022-2-5 Date: 2022-2-5
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Exit.hpp" #include "AuExit.hpp"
#include <Source/Grug/Grug.hpp> #include <Source/Grug/AuGrug.hpp>
#include "MTWatchDog.hpp" #include "AuMTWatchDog.hpp"
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)
#include "Exit.Unix.hpp" #include "AuExit.Unix.hpp"
#endif #endif
namespace Aurora::Exit namespace Aurora::Exit

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Exit.hpp File: AuExit.hpp
Date: 2022-2-5 Date: 2022-2-5
Author: Reece Author: Reece
***/ ***/

View File

@ -1,19 +1,18 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: MTWatchDog.cpp File: AuMTWatchDog.cpp
Date: 2022-2-3 Date: 2022-2-3
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Exit/Exit.hpp" #include "AuExit.hpp"
#include "MTWatchDog.hpp" #include "AuMTWatchDog.hpp"
namespace Aurora::Exit namespace Aurora::Exit
{ {
class MTWatchDog : public AuThreads::IThreadFeature struct MTWatchDog : AuThreads::IThreadFeature
{ {
public:
void Init() override; void Init() override;
// OSThread tls clears should call us first. // OSThread tls clears should call us first.
// if the main thread has valid tls, grug will be informed (sanz type beat, informing hairy beasts) // if the main thread has valid tls, grug will be informed (sanz type beat, informing hairy beasts)

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: MTWatchDog.hpp File: AuMTWatchDog.hpp
Date: 2022-2-3 Date: 2022-2-3
Author: Reece Author: Reece
***/ ***/

View File

@ -1,15 +1,15 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Arrow.cpp File: AuArrow.cpp
Date: 2022-02-03 Date: 2022-02-03
Author: Reece Author: Reece
Note: NIX signal aware telemetry IPC to cave grug Note: NIX signal aware telemetry IPC to cave grug
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Grug.hpp" #include "AuGrug.hpp"
#include "Arrow.hpp" #include "AuArrow.hpp"
#include <Source/Exit/Exit.hpp> #include <Source/Exit/AuExit.hpp>
namespace Aurora::Grug namespace Aurora::Grug
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Arrow.hpp File: AuArrow.hpp
Date: 2022-02-03 Date: 2022-02-03
Author: Reece Author: Reece
***/ ***/

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Grug.cpp File: AuGrug.cpp
Date: 2022-01-03 Date: 2022-01-03
File: Flusher.cpp File: Flusher.cpp
Date: 2021-8-27 Date: 2021-8-27
@ -11,7 +11,7 @@
when urgent telemetry events are raised. when urgent telemetry events are raised.
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Grug.hpp" #include "AuGrug.hpp"
#include <Source/Logging/Logger.hpp> #include <Source/Logging/Logger.hpp>
#include <Source/Console/ConsoleFIO/ConsoleFIO.hpp> #include <Source/Console/ConsoleFIO/ConsoleFIO.hpp>

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Grug.hpp File: AuGrug.hpp
Date: 2022-02-03 Date: 2022-02-03
Author: Reece Author: Reece
***/ ***/
#pragma once #pragma once
#include "GrugThread.hpp" #include "AuGrugThread.hpp"
#include "Arrow.hpp" #include "AuArrow.hpp"
namespace Aurora::Grug namespace Aurora::Grug
{ {

View File

@ -1,22 +1,22 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: GrugThread.cpp File: AuGrugThread.cpp
Date: 2022-02-03 Date: 2022-02-03
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Grug.hpp" #include "AuGrug.hpp"
#include "GrugThread.hpp" #include "AuGrugThread.hpp"
#include <Source/Threading/Threads/ThreadHandles.hpp> #include <Source/Threading/Threads/AuThreadHandles.hpp>
namespace Aurora::Grug namespace Aurora::Grug
{ {
GrugThread::GrugThread() GrugThread::GrugThread()
{ {
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
nt.pThread = AuThreads::GetThread(); // not thread async safe, but we arent in posix land nt.pThread = AuThreads::GetThread(); // not signal safe, but we arent in posix land
#endif #endif
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: GrugThread.hpp File: AuGrugThread.hpp
Date: 2022-02-03 Date: 2022-02-03
Author: Reece Author: Reece
***/ ***/

View File

@ -1,19 +1,19 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.cpp File: AuCpuId.cpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "CpuId.hpp" #include "AuCpuId.hpp"
#if defined(AURORA_COMPILER_CLANG) || defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_COMPILER_CLANG) || defined(AURORA_IS_POSIX_DERIVED)
#include <cpuid.h> #include <cpuid.h>
#endif #endif
#include "CpuInfo.hpp" #include "AuCpuInfo.hpp"
namespace Aurora::HWInfo namespace Aurora::HWInfo
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.hpp File: AuCpuId.hpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.Linux.cpp File: AuCpuId.Linux.cpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "CpuInfo.hpp" #include "AuCpuInfo.hpp"
#include "CpuInfo.Linux.hpp" #include "AuCpuInfo.Linux.hpp"
#include <stdlib.h> #include <stdlib.h>
#include <sys/types.h> #include <sys/types.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.Linux.hpp File: AuAuCpuId.Linux.hpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.Nt.cpp File: AuCpuId.Nt.cpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "CpuInfo.hpp" #include "AuCpuInfo.hpp"
#include "CpuInfo.NT.hpp" #include "AuCpuInfo.NT.hpp"
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
#include <VersionHelpers.h> #include <VersionHelpers.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuId.Nt.hpp File: AuCpuId.NT.hpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuInfo.cpp File: AuCpuInfo.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "CpuInfo.hpp" #include "AuCpuInfo.hpp"
#include "CpuId.hpp" #include "AuCpuId.hpp"
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)
#include <stdlib.h> #include <stdlib.h>
@ -16,15 +16,15 @@
#endif #endif
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
#include "CpuInfo.NT.hpp" #include "AuCpuInfo.NT.hpp"
#endif #endif
#if defined(AURORA_IS_BSD_DERIVED) #if defined(AURORA_IS_BSD_DERIVED)
#include "CpuInfo.BSD.hpp" #include "AuCpuInfo.BSD.hpp"
#endif #endif
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
#include "CpuInfo.Linux.hpp" #include "AuCpuInfo.Linux.hpp"
#endif #endif
namespace Aurora::HWInfo namespace Aurora::HWInfo

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: CpuInfo.hpp File: AuCpuInfo.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: HWInfo.hpp File: AuHWInfo.hpp
Date: 2021-6-19 Date: 2021-6-19
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "CpuInfo.hpp" #include "AuCpuInfo.hpp"
#include "RamInfo.hpp" #include "AuRamInfo.hpp"
#if defined(AURORA_IS_BSD_DERIVED) #if defined(AURORA_IS_BSD_DERIVED)
#include <sys/types.h> #include <sys/types.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: HWInfo.hpp File: AuHWInfo.hpp
Date: 2021-6-19 Date: 2021-6-19
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +1,13 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RamInfo.cpp File: AuRamInfo.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "HWInfo.hpp" #include "AuHWInfo.hpp"
#include "RamInfo.hpp" #include "AuRamInfo.hpp"
#if defined(AURORA_IS_BSD_DERIVED) #if defined(AURORA_IS_BSD_DERIVED)
#include <sys/sysctl.h> #include <sys/sysctl.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RamInfo.hpp File: AuRamInfo.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Digests.cpp File: AuDigests.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Digests.hpp" #include "AuDigests.hpp"
#include <tomcrypt.h> #include <tomcrypt.h>
namespace Aurora::Hashing namespace Aurora::Hashing

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Open.Unix.hpp File: AuDigests.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: HashStream.cpp File: AuHashStream.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include <tomcrypt.h> #include <tomcrypt.h>
#include "HashStream.hpp" #include "AuHashStream.hpp"
namespace Aurora::Hashing namespace Aurora::Hashing
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: HashStream.hpp File: AuHashStream.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Hashing.cpp File: AuHashing.cpp
Date: 2021-6-17 Date: 2021-6-17
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Hashing.hpp" #include "AuHashing.hpp"
namespace Aurora::Hashing namespace Aurora::Hashing
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Hashing.hpp File: AuHashing.hpp
Date: 2021-6-17 Date: 2021-6-17
Author: Reece Author: Reece
***/ ***/

View File

@ -7,7 +7,7 @@
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Logger.hpp" #include "Logger.hpp"
#include <Source/Grug/Grug.hpp> #include <Source/Grug/AuGrug.hpp>
#include <Source/Console/Hooks/Hooks.hpp> #include <Source/Console/Hooks/Hooks.hpp>
namespace Aurora::Logging namespace Aurora::Logging

View File

@ -8,7 +8,7 @@
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Memory.hpp" #include "Memory.hpp"
#include "Cache.hpp" #include "Cache.hpp"
#include <Source/HWInfo/HWInfo.hpp> #include <Source/HWInfo/AuHWInfo.hpp>
#define LINUX_SUPPORTS_CACHE_CTL 0 #define LINUX_SUPPORTS_CACHE_CTL 0

View File

@ -8,7 +8,7 @@
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Memory.hpp" #include "Memory.hpp"
#include <mimalloc.h> #include <mimalloc.h>
#include <Source/HWInfo/HWInfo.hpp> #include <Source/HWInfo/AuHWInfo.hpp>
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
#include <sys/mman.h> #include <sys/mman.h>

View File

@ -8,7 +8,7 @@
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Memory.hpp" #include "Memory.hpp"
#include "SwapLock.hpp" #include "SwapLock.hpp"
#include <Source/HWInfo/HWInfo.hpp> #include <Source/HWInfo/AuHWInfo.hpp>
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
#include <sys/mman.h> #include <sys/mman.h>

View File

@ -8,7 +8,7 @@
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Memory.hpp" #include "Memory.hpp"
#include "SwapLock.hpp" #include "SwapLock.hpp"
#include <Source/HWInfo/HWInfo.hpp> #include <Source/HWInfo/AuHWInfo.hpp>
namespace Aurora::Memory::Transition namespace Aurora::Memory::Transition
{ {

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Base32.cpp File: AuBase32.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Base32.hpp" #include "AuBase32.hpp"
#include <tomcrypt.h> #include <tomcrypt.h>
namespace Aurora::Parse namespace Aurora::Parse
@ -14,9 +14,9 @@ namespace Aurora::Parse
AUKN_SYM bool Base32Decode(const AuString &in, AuByteBuffer &decoded) AUKN_SYM bool Base32Decode(const AuString &in, AuByteBuffer &decoded)
{ {
int iRet; int iRet;
unsigned long length = in.size(); unsigned long uLength = in.size();
auto writeView = decoded.GetOrAllocateLinearWriteable(length); auto writeView = decoded.GetOrAllocateLinearWriteable(uLength);
if (!writeView) if (!writeView)
{ {
SysPushErrorMem(); SysPushErrorMem();
@ -24,24 +24,24 @@ namespace Aurora::Parse
} }
iRet = ::base32_decode(AuReinterpretCast<const char *>(decoded.writePtr), iRet = ::base32_decode(AuReinterpretCast<const char *>(decoded.writePtr),
(unsigned long)length, (unsigned long)uLength,
AuReinterpretCast<unsigned char *>(&decoded[0]), AuReinterpretCast<unsigned char *>(&decoded[0]),
&length, &uLength,
BASE32_RFC4648); BASE32_RFC4648);
if (iRet != CRYPT_OK) if (iRet != CRYPT_OK)
{ {
return false; return false;
} }
decoded.writePtr += length; decoded.writePtr += uLength;
return true; return true;
} }
AUKN_SYM bool Base32Encode(const Memory::MemoryViewRead &input, AuString &encoded) AUKN_SYM bool Base32Encode(const Memory::MemoryViewRead &input, AuString &encoded)
{ {
unsigned long outLength = ((input.length * 8 + 4) / 5) + 5; unsigned long uOutLength = ((input.length * 8 + 4) / 5) + 5;
if (!AuTryResize(encoded, outLength)) if (!AuTryResize(encoded, uOutLength))
{ {
SysPushErrorMem(); SysPushErrorMem();
return false; return false;
@ -50,10 +50,10 @@ namespace Aurora::Parse
auto iRet = ::base32_encode(AuReinterpretCast<const unsigned char *>(input.ptr), auto iRet = ::base32_encode(AuReinterpretCast<const unsigned char *>(input.ptr),
(unsigned long)input.length, (unsigned long)input.length,
&encoded[0], &encoded[0],
&outLength, &uOutLength,
BASE32_RFC4648); BASE32_RFC4648);
if (!AuTryResize(encoded, outLength)) if (!AuTryResize(encoded, uOutLength))
{ {
SysPushErrorMem(); SysPushErrorMem();
return false; return false;

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Parser.hpp File: AuBase32.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,41 +1,41 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Base64.cpp File: AuBase64.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Base64.hpp" #include "AuBase64.hpp"
#include <tomcrypt.h> #include <tomcrypt.h>
namespace Aurora::Parse namespace Aurora::Parse
{ {
AUKN_SYM bool Base64Decode(const AuString &in, AuByteBuffer &decoded, bool url) AUKN_SYM bool Base64Decode(const AuString &in, AuByteBuffer &decoded, bool bUrl)
{ {
int iRet; int iRet;
unsigned long length = (unsigned long)in.size(); unsigned long uLength = (unsigned long)in.size();
auto writeView = decoded.GetOrAllocateLinearWriteable(length); auto writeView = decoded.GetOrAllocateLinearWriteable(uLength);
if (!writeView) if (!writeView)
{ {
SysPushErrorMem(); SysPushErrorMem();
return {}; return {};
} }
if (url) if (bUrl)
{ {
iRet = ::base64url_decode(AuReinterpretCast<const char *>(decoded.writePtr), iRet = ::base64url_decode(AuReinterpretCast<const char *>(decoded.writePtr),
(unsigned long)length, (unsigned long)uLength,
AuReinterpretCast<unsigned char *>(&decoded[0]), AuReinterpretCast<unsigned char *>(&decoded[0]),
&length); &uLength);
} }
else else
{ {
iRet = ::base64_decode(AuReinterpretCast<const char *>(decoded.writePtr), iRet = ::base64_decode(AuReinterpretCast<const char *>(decoded.writePtr),
(unsigned long)length, (unsigned long)uLength,
AuReinterpretCast<unsigned char *>(&decoded[0]), AuReinterpretCast<unsigned char *>(&decoded[0]),
&length); &uLength);
} }
if (iRet != CRYPT_OK) if (iRet != CRYPT_OK)
@ -43,37 +43,37 @@ namespace Aurora::Parse
return false; return false;
} }
decoded.writePtr += length; decoded.writePtr += uLength;
return true; return true;
} }
AUKN_SYM bool Base64Encode(const Memory::MemoryViewRead &input, AuString &encoded, bool url) AUKN_SYM bool Base64Encode(const Memory::MemoryViewRead &input, AuString &encoded, bool bUrl)
{ {
int iRet; int iRet;
unsigned long outLength = input.length + (input.length / 3.0) + 16; unsigned long uOutLength = input.length + (input.length / 3.0) + 16;
if (!AuTryResize(encoded, outLength)) if (!AuTryResize(encoded, uOutLength))
{ {
SysPushErrorMem(); SysPushErrorMem();
return false; return false;
} }
if (url) if (bUrl)
{ {
iRet = ::base64url_encode(AuReinterpretCast<const unsigned char*>(input.ptr), iRet = ::base64url_encode(AuReinterpretCast<const unsigned char*>(input.ptr),
(unsigned long)input.length, (unsigned long)input.length,
&encoded[0], &encoded[0],
&outLength); &uOutLength);
} }
else else
{ {
iRet =::base64_encode(AuReinterpretCast<const unsigned char*>(input.ptr), iRet = ::base64_encode(AuReinterpretCast<const unsigned char*>(input.ptr),
(unsigned long)input.length, (unsigned long)input.length,
&encoded[0], &encoded[0],
&outLength); &uOutLength);
} }
if (!AuTryResize(encoded, outLength)) if (!AuTryResize(encoded, uOutLength))
{ {
SysPushErrorMem(); SysPushErrorMem();
return false; return false;

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Hex.cpp File: AuHex.cpp
Date: 2021-8-28 Date: 2021-8-28
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Hex.hpp" #include "AuHex.hpp"
namespace Aurora::Parse namespace Aurora::Parse
{ {
@ -41,14 +41,19 @@ namespace Aurora::Parse
return true; return true;
} }
AUKN_SYM bool HexToInt(const char *hex, AuUInt32 length, AuUInt64 &val) AUKN_SYM bool HexToInt(const char *pHex, AuUInt32 uLength, AuUInt64 &val)
{ {
val = 0; val = 0;
length = AuMin(AuUInt32(sizeof(AuUInt64) * 2), length); uLength = AuMin(AuUInt32(sizeof(AuUInt64) * 2), uLength);
for (auto i = 0u; i < length; i++) if (!pHex && uLength)
{ {
AuUInt8 byte = *hex++; return false;
}
for (auto i = 0u; i < uLength; i++)
{
AuUInt8 byte = *pHex++;
if (byte >= '0' && byte <= '9') if (byte >= '0' && byte <= '9')
{ {
@ -198,7 +203,7 @@ namespace Aurora::Parse
return true; return true;
} }
AUKN_SYM bool EncodeHex(const void *pBuf, AuUInt32 length, EHexDump formatting, AuString &in) AUKN_SYM bool EncodeHex(const void *pBuf, AuUInt32 uLength, EHexDump formatting, AuString &in)
{ {
bool hexedit = formatting == EHexDump::eHexEditor; bool hexedit = formatting == EHexDump::eHexEditor;
@ -211,10 +216,15 @@ namespace Aurora::Parse
bool space = formatting != EHexDump::eString; bool space = formatting != EHexDump::eString;
if (!pBuf && uLength)
{
SysPushErrorArg();
return false;
}
try try
{ {
AuTryReserve(in, uLength * 4);
in.reserve(length * 4);
auto &newLine = AuLocale::NewLine(); auto &newLine = AuLocale::NewLine();
@ -238,7 +248,7 @@ namespace Aurora::Parse
in.insert(in.size(), newLine); in.insert(in.size(), newLine);
} }
for (auto i = 0u; i < length; ) for (auto i = 0u; i < uLength; )
{ {
AuUInt32 x, rowMax; AuUInt32 x, rowMax;
@ -255,7 +265,7 @@ namespace Aurora::Parse
in.insert(in.size(), " "); in.insert(in.size(), " ");
} }
rowMax = AuMin(AuUInt32(i + 16), AuUInt32(length)); rowMax = AuMin(AuUInt32(i + 16), AuUInt32(uLength));
for (x = i; for (x = i;
x < rowMax; x < rowMax;
@ -280,7 +290,7 @@ namespace Aurora::Parse
in.insert(in.size(), hex, 2); in.insert(in.size(), hex, 2);
} }
if (x != (length - 1)) if (x != (uLength - 1))
{ {
if (squareBracket || curlyBracket) if (squareBracket || curlyBracket)
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Parser.cpp File: AuParser.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
Note: Horrible gen 1 parser. Note: Horrible gen 1 parser.
@ -9,7 +9,7 @@
Just build around what works, could probably wrangle a command list parser on top. Just build around what works, could probably wrangle a command list parser on top.
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Parser.hpp" #include "AuParser.hpp"
namespace Aurora::Parse namespace Aurora::Parse
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Base32.hpp File: AuParser.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -9,7 +9,7 @@
* *
*/ */
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "ArgvQuote.hpp" #include "AuArgvQuote.hpp"
void void
ArgvQuote( ArgvQuote(

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Open.Unix.cpp File: AuOpen.Unix.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <RuntimeInternal.hpp> #include <RuntimeInternal.hpp>
#include "Processes.hpp" #include "AuProcesses.hpp"
#include "Open.Unix.hpp" #include "AuOpen.Unix.hpp"
#include <unistd.h> #include <unistd.h>
#include <Source/IO/FS/FS.hpp> #include <Source/IO/FS/FS.hpp>

View File

@ -1,8 +1,9 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConditionEx.hpp File: AuOpen.Unix.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#pragma once #pragma once

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Open.Win32.cpp File: AuOpen.Win32.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Processes.hpp" #include "AuProcesses.hpp"
#include "Open.Win32.hpp" #include "AuOpen.Win32.hpp"
#include <shellapi.h> #include <shellapi.h>
#include <tlhelp32.h> #include <tlhelp32.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Open.Win32.hpp File: AuOpen.Win32.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,26 +1,26 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Process.NT.cpp File: AuProcess.NT.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Process.NT.hpp" #include "AuProcess.NT.hpp"
#include "Processes.hpp" #include "AuProcesses.hpp"
#include <process.h> #include <process.h>
#if defined(AURORA_PLATFORM_WIN32) #if defined(AURORA_PLATFORM_WIN32)
#include "Process.Win32.hpp" #include "AuProcess.Win32.hpp"
#endif #endif
#include "ArgvQuote.hpp" #include "AuArgvQuote.hpp"
#include <Source/IO/FS/FS.hpp> #include <Source/IO/FS/FS.hpp>
#include <Source/IO/FS/Async.NT.hpp> #include <Source/IO/FS/Async.NT.hpp>
#include <Source/IO/Loop/LSHandle.hpp> #include <Source/IO/Loop/LSHandle.hpp>
#include "CreatePipeEx.NT.hpp" #include "AuCreatePipeEx.NT.hpp"
namespace Aurora::Processes namespace Aurora::Processes
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Process.NT.hpp File: AuProcess.NT.hpp
Date: 2022-1-29 Date: 2022-1-29
Author: Reece Author: Reece
***/ ***/

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Process.Unix.hpp File: AuProcess.Unix.hpp
File: Process.Linux.hpp File: Process.Linux.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021-2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021-2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Process.Win32.cpp File: AuProcess.Win32.cpp
Date: 2022-1-29 Date: 2022-1-29
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Process.Win32.hpp" #include "AuProcess.Win32.hpp"
#include <shellapi.h> #include <shellapi.h>
#include <tlhelp32.h> #include <tlhelp32.h>
#include <process.h> #include <process.h>

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Process.Win32.hpp File: AuProcess.Win32.hpp
Date: 2022-1-29 Date: 2022-1-29
Author: Reece Author: Reece
***/ ***/

View File

@ -1,16 +1,16 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Processes.cpp File: AuProcesses.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Processes.hpp" #include "AuProcesses.hpp"
#if defined (AURORA_PLATFORM_WIN32) #if defined (AURORA_PLATFORM_WIN32)
#include "Process.Win32.hpp" #include "AuProcess.Win32.hpp"
#include "Open.Win32.hpp" #include "AuOpen.Win32.hpp"
#endif #endif
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Processes.hpp File: AuProcesses.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,14 +0,0 @@
/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: UtilRun.cpp
Date:
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "UtilRun.hpp"
namespace Aurora::Processes
{
}

View File

@ -1,12 +0,0 @@
/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: UtilRun.hpp
Date:
Author: Reece
***/
#pragma once
namespace Aurora::Processes
{
}

View File

@ -12,7 +12,7 @@
* http://www.sultanik.com/Mersenne_twister * http://www.sultanik.com/Mersenne_twister
*/ */
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "mtwister.hpp" #include "AuMTwister.hpp"
#define UPPER_MASK 0x80000000 #define UPPER_MASK 0x80000000
#define LOWER_MASK 0x7fffffff #define LOWER_MASK 0x7fffffff

View File

@ -1,40 +1,44 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNG.cpp File: AuRNG.cpp
Date: 2021-6-11 Date: 2021-6-11
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "RNG.hpp" #include "AuRNG.hpp"
#include "RNGEntropy.hpp" #include "AuRNGEntropy.hpp"
#include "WELL.hpp" #include "AuWELL.hpp"
namespace Aurora::RNG namespace Aurora::RNG
{ {
static WELLRand gWellRand; static WELLRand gWellRand;
RandomUnique_t gFastDevice; RandomUnique_t gFastDevice;
AUKN_SYM void ReadSecureRNG(void *in, AuUInt32 length) AUKN_SYM void ReadSecureRNG(void *pBuffer, AuUInt32 uBytes)
{ {
AuUInt32 offset; AuUInt32 offset;
AuUInt8 *headPtr; AuUInt8 *headPtr;
headPtr = reinterpret_cast<AuUInt8 *>(in); SysAssert(pBuffer, "Null RNG out buffer");
headPtr = reinterpret_cast<AuUInt8 *>(pBuffer);
offset = 0; offset = 0;
while (offset != length) while (offset != uBytes)
{ {
auto req = length - offset; auto req = uBytes - offset;
auto bytes = RngGetBytes(headPtr + offset, req); auto bytes = RngGetBytes(headPtr + offset, req);
SysAssertExp(bytes, "Couldn't consume {} RNG bytes", req); SysAssertExp(bytes, "Couldn't consume {} RNG bytes", req);
offset += bytes; offset += bytes;
} }
} }
AUKN_SYM void ReadFastRNG(void *in, AuUInt32 length) AUKN_SYM void ReadFastRNG(void *pBuffer, AuUInt32 uBytes)
{ {
WELL_NextBytes(&gWellRand, in, length); SysAssert(pBuffer, "Null RNG out buffer");
WELL_NextBytes(&gWellRand, pBuffer, uBytes);
} }
static void InitFastRng() static void InitFastRng()

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNG.hpp File: AURNG.hpp
Date: 2021-6-11 Date: 2021-6-11
Author: Reece Author: Reece
***/ ***/

View File

@ -1,15 +1,15 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNGEntropy.cpp File: AuRNGEntropy.cpp
Date: 2022-9-17 Date: 2022-9-17
File: RNG.cpp File: RNG.cpp
Date: 2021-6-11 Date: 2021-6-11
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "RNG.hpp" #include "AuRNG.hpp"
#include "RNGEntropy.hpp" #include "AuRNGEntropy.hpp"
#if defined(AURORA_PLATFORM_WIN32) #if defined(AURORA_PLATFORM_WIN32)
#include <wincrypt.h> #include <wincrypt.h>
@ -21,7 +21,7 @@
#include <cstdio> #include <cstdio>
#endif #endif
#include "WELL.hpp" #include "AuWELL.hpp"
namespace Aurora::RNG namespace Aurora::RNG
{ {
@ -42,14 +42,14 @@ namespace Aurora::RNG
} }
} }
static AuUInt32 RngUnix(AuUInt8 *buf, AuUInt32 len) static AuUInt32 RngUnix(AuUInt8 *pBuf, AuUInt32 uLen)
{ {
if (gDevURand == -1) if (gDevURand == -1)
{ {
return 0; return 0;
} }
return ::read(gDevURand, buf, len); return ::read(gDevURand, pBuf, uLen);
} }
#elif defined(AURORA_IS_MODERNNT_DERIVED) #elif defined(AURORA_IS_MODERNNT_DERIVED)
@ -73,7 +73,7 @@ namespace Aurora::RNG
#endif #endif
} }
static AuUInt32 RngWin32(AuUInt8 *buf, AuUInt32 len) static AuUInt32 RngWin32(AuUInt8 *pBuf, AuUInt32 uLen)
{ {
#if defined(USE_OLD_NTCRYPT) #if defined(USE_OLD_NTCRYPT)
if (!gCryptoProv) if (!gCryptoProv)
@ -81,24 +81,24 @@ namespace Aurora::RNG
return 0; return 0;
} }
if (!::CryptGenRandom(gCryptoProv, len, buf)) if (!::CryptGenRandom(gCryptoProv, uLen, pBuf))
{ {
return 0; return 0;
} }
return len; return uLen;
#else #else
#if !defined(AURORA_DONT_PREFER_WIN32_USERLAND_AES_RNG) #if !defined(AURORA_DONT_PREFER_WIN32_USERLAND_AES_RNG)
if (::BCryptGenRandom(BCRYPT_RNG_ALG_HANDLE, reinterpret_cast<PUCHAR>(buf), len, 0) == 0) if (::BCryptGenRandom(BCRYPT_RNG_ALG_HANDLE, reinterpret_cast<PUCHAR>(pBuf), uLen, 0) == 0)
{ {
return len; return uLen;
} }
#endif #endif
if (::BCryptGenRandom(NULL, reinterpret_cast<PUCHAR>(buf), len, BCRYPT_USE_SYSTEM_PREFERRED_RNG) == 0) if (::BCryptGenRandom(NULL, reinterpret_cast<PUCHAR>(pBuf), uLen, BCRYPT_USE_SYSTEM_PREFERRED_RNG) == 0)
{ {
return len; return uLen;
} }
return 0; return 0;
@ -114,16 +114,16 @@ namespace Aurora::RNG
#endif #endif
static AuUInt32 RngStdC(AuUInt8 *buf, AuUInt32 len) static AuUInt32 RngStdC(AuUInt8 *pBuf, AuUInt32 uLen)
{ {
clock_t t1; clock_t t1;
int l, acc, bits, a, b; int l, acc, bits, a, b;
l = len; l = uLen;
acc = a = b = 0; acc = a = b = 0;
bits = 8; bits = 8;
while (len--) while (uLen--)
{ {
while (bits--) // for each bit in byte while (bits--) // for each bit in byte
{ {
@ -144,7 +144,7 @@ namespace Aurora::RNG
acc = (acc << 1) | a; // push the first bit state acc = (acc << 1) | a; // push the first bit state
} }
*buf++ = acc; *pBuf++ = acc;
acc = 0; acc = 0;
bits = 8; bits = 8;
@ -153,23 +153,23 @@ namespace Aurora::RNG
return l; return l;
} }
AuUInt32 RngGetBytes(AuUInt8 *out, AuUInt32 outlen) AuUInt32 RngGetBytes(AuUInt8 *pBuffer, AuUInt32 uBytes)
{ {
AuUInt32 x; AuUInt32 x;
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
x = RngWin32(out, outlen); x = RngWin32(pBuffer, uBytes);
if (x != 0) if (x != 0)
{ {
return x; return x;
} }
#elif defined(AURORA_IS_POSIX_DERIVED) #elif defined(AURORA_IS_POSIX_DERIVED)
x = RngUnix(out, outlen); x = RngUnix(out, uBytes);
if (x != 0) if (x != 0)
{ {
return x; return x;
} }
#endif #endif
x = RngStdC(out, outlen); x = RngStdC(pBuffer, uBytes);
if (x != 0) if (x != 0)
{ {
return x; return x;

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNGEntropy.hpp File: AuRNGEntropy.hpp
Date: 2022-9-17 Date: 2022-9-17
Author: Reece Author: Reece
***/ ***/

View File

@ -1,26 +1,26 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNGStaticUtilities.cpp File: AuRNGStaticUtilities.cpp
Date: 2022-9-17 Date: 2022-9-17
File: RNG.cpp File: RNG.cpp
Date: 2021-6-11 Date: 2021-6-11
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "RNG.hpp" #include "AuRNG.hpp"
#include "RNGStaticUtilities.hpp" #include "AuRNGStaticUtilities.hpp"
namespace Aurora::RNG namespace Aurora::RNG
{ {
AUKN_SYM AuString ReadString(AuUInt32 length, ERngStringCharacters type) AUKN_SYM AuString ReadString(AuUInt32 dwLength, ERngStringCharacters type)
{ {
return gFastDevice->NextString(length, type); return gFastDevice->NextString(dwLength, type);
} }
AUKN_SYM void RngString(char *string, AuUInt32 length, ERngStringCharacters type) AUKN_SYM void RngString(char *pString, AuUInt32 dwLength, ERngStringCharacters type)
{ {
gFastDevice->NextString(string, length, type); gFastDevice->NextString(pString, dwLength, type);
} }
AUKN_SYM AuUInt8 RngByte() AUKN_SYM AuUInt8 RngByte()
@ -38,9 +38,9 @@ namespace Aurora::RNG
return gFastDevice->NextU32(); return gFastDevice->NextU32();
} }
AUKN_SYM AuUInt32 RngU32(AuUInt32 min, AuUInt32 max) AUKN_SYM AuUInt32 RngU32(AuUInt32 uMin, AuUInt32 uMax)
{ {
return gFastDevice->NextU32(min, max); return gFastDevice->NextU32(uMin, uMax);
} }
AUKN_SYM AuUInt64 RngU64() AUKN_SYM AuUInt64 RngU64()
@ -48,9 +48,9 @@ namespace Aurora::RNG
return gFastDevice->NextU64(); return gFastDevice->NextU64();
} }
AUKN_SYM AuInt32 RngInt(AuInt32 min, AuInt32 max) AUKN_SYM AuInt32 RngInt(AuInt32 uMin, AuInt32 uMax)
{ {
return gFastDevice->NextInt(min, max); return gFastDevice->NextInt(uMin, uMax);
} }
AUKN_SYM double RngDecimal() AUKN_SYM double RngDecimal()
@ -63,8 +63,8 @@ namespace Aurora::RNG
return gFastDevice->NextNumber(min, max); return gFastDevice->NextNumber(min, max);
} }
AUKN_SYM AuUInt32 RngIndex(AuUInt32 count /* = max + 1*/) AUKN_SYM AuUInt32 RngIndex(AuUInt32 uCount /* = max + 1*/)
{ {
return gFastDevice->NextIndex(count); return gFastDevice->NextIndex(uCount);
} }
} }

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RNGStaticUtilities.hpp File: AuRNGStaticUtilities.hpp
Date: 2022-9-17 Date: 2022-9-17
Author: Reece Author: Reece
***/ ***/

View File

@ -1,39 +1,15 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RandomDevice.cpp File: AuRandomDevice.cpp
Date: 2021-9-3 Date: 2021-9-3
Author: Reece Author: Reece
***/ ***/
#include <AuroraRuntime.hpp> #include <AuroraRuntime.hpp>
#include <Source/RNG/WELL.hpp> #include "AuRandomDevice.hpp"
#include "RandomDevice.hpp"
namespace Aurora::RNG namespace Aurora::RNG
{ {
struct RandomDevice : IRandomDevice
{
void Read(void *in, AuUInt32 length) override;
AuString NextString(AuUInt32 length, ERngStringCharacters type) override;
void NextString(char *string, AuUInt32 length, ERngStringCharacters type) override;
AuUInt8 NextByte() override;
bool NextBoolean() override;
AuUInt32 NextU32() override;
AuUInt64 NextU64() override;
AuInt32 NextInt(AuInt32 min, AuInt32 max) override;
AuUInt32 NextU32(AuUInt32 min, AuUInt32 max) override;
double NextDecimal() override;
float NextNumber(float min, float max) override;
AuUInt32 NextIndex(AuUInt32 count /* = max + 1*/) override;
void Init(const RandomDef &def);
private:
RandomDef def_;
WELLRand fast_;
};
void RandomDevice::Init(const RandomDef &def) void RandomDevice::Init(const RandomDef &def)
{ {
this->def_ = def; this->def_ = def;
@ -62,26 +38,32 @@ namespace Aurora::RNG
// secure rng requires no init -> we just passthrough to the global ReadSecureRNG function // secure rng requires no init -> we just passthrough to the global ReadSecureRNG function
} }
void RandomDevice::Read(void *in, AuUInt32 length) void RandomDevice::Read(void *pIn, AuUInt32 uLength)
{ {
if (!pIn)
{
SysPushErrorArg();
return;
}
if (this->def_.bSecure) if (this->def_.bSecure)
{ {
ReadSecureRNG(in, length); ReadSecureRNG(pIn, uLength);
} }
else else
{ {
WELL_NextBytes(&this->fast_, in, length); WELL_NextBytes(&this->fast_, pIn, uLength);
} }
} }
AuString RandomDevice::NextString(AuUInt32 length, ERngStringCharacters type) AuString RandomDevice::NextString(AuUInt32 uLength, ERngStringCharacters type)
{ {
AuString ret(length, '\00'); AuString ret(uLength, '\00');
NextString(ret.data(), AuUInt32(ret.size()), type); NextString(ret.data(), AuUInt32(ret.size()), type);
return ret; return ret;
} }
void RandomDevice::NextString(char *string, AuUInt32 length, ERngStringCharacters type) void RandomDevice::NextString(char *pString, AuUInt32 uLength, ERngStringCharacters type)
{ {
static AuPair<const char *, int> rngSequence[static_cast<int>(ERngStringCharacters::eEnumCount)] = static AuPair<const char *, int> rngSequence[static_cast<int>(ERngStringCharacters::eEnumCount)] =
{ {
@ -93,7 +75,13 @@ namespace Aurora::RNG
{"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890=-+!$%^*.[];:", 75} {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890=-+!$%^*.[];:", 75}
}; };
ReadSecureRNG(string, length); if (!pString)
{
SysPushErrorArg();
return;
}
ReadSecureRNG(pString, uLength);
if (!ERngStringCharactersIsValid(type)) if (!ERngStringCharactersIsValid(type))
{ {
@ -103,9 +91,9 @@ namespace Aurora::RNG
const auto &pair = rngSequence[static_cast<int>(type)]; const auto &pair = rngSequence[static_cast<int>(type)];
for (auto i = 0u; i < length; i++) for (auto i = 0u; i < uLength; i++)
{ {
string[i] = pair.first[reinterpret_cast<const AuUInt8 *>(string)[i] % static_cast<int>(pair.second)]; pString[i] = pair.first[reinterpret_cast<const AuUInt8 *>(pString)[i] % static_cast<int>(pair.second)];
} }
} }
@ -129,16 +117,16 @@ namespace Aurora::RNG
return NextFillTmpl<AuUInt64>(); return NextFillTmpl<AuUInt64>();
} }
AuInt32 RandomDevice::NextInt(AuInt32 min, AuInt32 max) AuInt32 RandomDevice::NextInt(AuInt32 uMin, AuInt32 uMax)
{ {
auto range = max - min; auto range = uMax - uMin;
return (NextU64() % range) + min; return (NextU64() % range) + uMin;
} }
AuUInt32 RandomDevice::NextU32(AuUInt32 min, AuUInt32 max) AuUInt32 RandomDevice::NextU32(AuUInt32 uMin, AuUInt32 uMax)
{ {
auto range = max - min; auto range = uMax - uMin;
return (NextU64() % range) + min; return (NextU64() % range) + uMin;
} }
double RandomDevice::NextDecimal() double RandomDevice::NextDecimal()
@ -146,9 +134,9 @@ namespace Aurora::RNG
return double(NextU32()) * (double(1.0) / double(AuNumericLimits<AuUInt32>::max())); return double(NextU32()) * (double(1.0) / double(AuNumericLimits<AuUInt32>::max()));
} }
AuUInt32 RandomDevice::NextIndex(AuUInt32 count /* = max + 1*/) AuUInt32 RandomDevice::NextIndex(AuUInt32 uCount /* = max + 1*/)
{ {
return NextU32() % count; return NextU32() % uCount;
} }
float RandomDevice::NextNumber(float min, float max) float RandomDevice::NextNumber(float min, float max)

View File

@ -0,0 +1,36 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: AuRandomDevice.hpp
Date: 2021-9-3
Author: Reece
***/
#pragma once
#include "AuWELL.hpp"
namespace Aurora::RNG
{
struct RandomDevice : IRandomDevice
{
void Read(void *pIn, AuUInt32 uLength) override;
AuString NextString(AuUInt32 uLength, ERngStringCharacters type) override;
void NextString(char *pString, AuUInt32 uLength, ERngStringCharacters type) override;
AuUInt8 NextByte() override;
bool NextBoolean() override;
AuUInt32 NextU32() override;
AuUInt64 NextU64() override;
AuInt32 NextInt(AuInt32 uMin, AuInt32 uMax) override;
AuUInt32 NextU32(AuUInt32 uMin, AuUInt32 uMax) override;
double NextDecimal() override;
float NextNumber(float min, float max) override;
AuUInt32 NextIndex(AuUInt32 uCount /* = max + 1*/) override;
void Init(const RandomDef &def);
private:
RandomDef def_;
WELLRand fast_;
};
}

View File

@ -6,8 +6,8 @@
* http://lomont.org/papers/2008/Lomont_PRNG_2008.pdf * http://lomont.org/papers/2008/Lomont_PRNG_2008.pdf
*/ */
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "WELL.hpp" #include "AuWELL.hpp"
#include "mtwister.hpp" #include "AuMTwister.hpp"
// WELL should provide us reasonably 'secure' and, more importantly, fast RNG for // WELL should provide us reasonably 'secure' and, more importantly, fast RNG for
// general purpose use. It isn't fundamentally broken unlike MT, I dont think 512 // general purpose use. It isn't fundamentally broken unlike MT, I dont think 512

View File

@ -1,12 +0,0 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: RandomDevice.hpp
Date: 2021-9-3
Author: Reece
***/
#pragma once
namespace Aurora::RNG
{
}

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.Linux.cpp File: AuSWInfo.Linux.cpp
Date: 2022-4-6 Date: 2022-4-6
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "SWInfo.hpp" #include "AuSWInfo.hpp"
#include "SWInfo.Linux.hpp" #include "AuSWInfo.Linux.hpp"
namespace Aurora::SWInfo namespace Aurora::SWInfo
{ {

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.Linux.hpp File: AuSWInfo.Linux.hpp
Date: 2022-4-6 Date: 2022-4-6
Author: Reece Author: Reece
***/ ***/

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.NT.cpp File: AuSWInfo.NT.cpp
Date: 2022-2-1 Date: 2022-2-1
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "SWInfo.hpp" #include "AuSWInfo.hpp"
#include "SWInfo.NT.hpp" #include "AuSWInfo.NT.hpp"
#if defined(AURORA_PLATFORM_WIN32) #if defined(AURORA_PLATFORM_WIN32)
#include <VersionHelpers.h> #include <VersionHelpers.h>
@ -31,11 +31,11 @@ namespace Aurora::SWInfo
return !VerifyVersionInfoW(&osvi, VER_SUITENAME, dwlConditionMask); return !VerifyVersionInfoW(&osvi, VER_SUITENAME, dwlConditionMask);
} }
auline bool Win32ReadRegistry(HKEY hKey, const wchar_t *key, AuString &strValue) auline bool Win32ReadRegistry(HKEY hKey, const wchar_t *pWideKey, AuString &strValue)
{ {
DWORD dwBufferSize {}; DWORD dwBufferSize {};
if (RegQueryValueExW(hKey, key, 0, NULL, NULL, &dwBufferSize) != ERROR_SUCCESS) if (RegQueryValueExW(hKey, pWideKey, 0, NULL, NULL, &dwBufferSize) != ERROR_SUCCESS)
{ {
SysPushErrorUnavailableError("Couldn't access registery key"); SysPushErrorUnavailableError("Couldn't access registery key");
return false; return false;
@ -49,7 +49,7 @@ namespace Aurora::SWInfo
return false; return false;
} }
if (RegQueryValueExW(hKey, key, 0, NULL, reinterpret_cast<LPBYTE>(in.data()), &dwBufferSize) != ERROR_SUCCESS) if (RegQueryValueExW(hKey, pWideKey, 0, NULL, reinterpret_cast<LPBYTE>(in.data()), &dwBufferSize) != ERROR_SUCCESS)
{ {
SysPushErrorUnavailableError("Couldn't access registery key"); SysPushErrorUnavailableError("Couldn't access registery key");
return false; return false;

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.NT.hpp File: AuSWInfo.NT.hpp
Date: 2022-2-1 Date: 2022-2-1
Author: Reece Author: Reece
***/ ***/

View File

@ -1,19 +1,19 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.cpp File: AuSWInfo.cpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "SWInfo.hpp" #include "AuSWInfo.hpp"
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
#include "SWInfo.NT.hpp" #include "AuSWInfo.NT.hpp"
#endif #endif
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
#include "SWInfo.Linux.hpp" #include "AuSWInfo.Linux.hpp"
#endif #endif
namespace Aurora::SWInfo namespace Aurora::SWInfo

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SWInfo.hpp File: AuSWInfo.hpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: VersionHelpers.cpp File: AuVersionHelpers.cpp
Date: 2022-1-25 Date: 2022-1-25
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "SWInfo.hpp" #include "AuSWInfo.hpp"
// NO HEADER (note -> .hpp wouldn't clash with windows' sdk) // NO HEADER (note -> .hpp wouldn't clash with windows' sdk)
namespace Aurora::SWInfo namespace Aurora::SWInfo

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: VersionHelpers.hpp File: AuVersionHelpers.hpp
Date: 2022-25-13 Date: 2022-25-13
Author: Reece Author: Reece
***/ ***/

View File

@ -1,13 +1,13 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Sleep.cpp File: AuSleep.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "Sleep.hpp" #include "AuSleep.hpp"
#include "WaitFor.hpp" #include "AuWaitFor.hpp"
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)
#include <unistd.h> #include <unistd.h>
@ -25,30 +25,30 @@ namespace Aurora::Threading
static NtDelayExecution_f NtDelayExecution; static NtDelayExecution_f NtDelayExecution;
#endif #endif
AUKN_SYM void Sleep(AuUInt64 timeout) AUKN_SYM void Sleep(AuUInt64 qwTimeout)
{ {
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
SleepNs(AuMSToNS<AuUInt64>(timeout)); SleepNs(AuMSToNS<AuUInt64>(qwTimeout));
#elif defined(AURORA_IS_MODERNNT_DERIVED) #elif defined(AURORA_IS_MODERNNT_DERIVED)
::Sleep(timeout); ::Sleep(qwTimeout);
#else #else
std::atomic<bool> value = false; std::atomic<bool> value = false;
BooleanWaitable waitable(value); BooleanWaitable waitable(value);
WaitFor(&waitable, timeout); WaitFor(&waitable, qwTimeout);
#endif #endif
} }
AUKN_SYM void SleepNs(AuUInt64 timeout) AUKN_SYM void SleepNs(AuUInt64 qwTimeout)
{ {
#if defined(AURORA_IS_LINUX_DERIVED) || defined(AURORA_IS_BSD_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED) || defined(AURORA_IS_BSD_DERIVED)
auto endTime = AuTime::CurrentClockNS() + timeout; auto endTime = AuTime::CurrentClockNS() + qwTimeout;
if ((usleep(timeout / 1000) == -1) && if ((usleep(qwTimeout / 1000) == -1) &&
(errno == EINTR)) (errno == EINTR))
{ {
AuUInt64 now; AuUInt64 now;
@ -64,7 +64,7 @@ namespace Aurora::Threading
if (NtDelayExecution) if (NtDelayExecution)
{ {
auto endTime = AuTime::CurrentClockNS() + timeout; auto endTime = AuTime::CurrentClockNS() + qwTimeout;
auto targetTime = AuTime::ConvertTimestampNs(endTime); auto targetTime = AuTime::ConvertTimestampNs(endTime);
while (AuTime::CurrentClockNS() < endTime) while (AuTime::CurrentClockNS() < endTime)
@ -79,7 +79,7 @@ namespace Aurora::Threading
#endif #endif
auto status = YieldPollNs(true, timeout + Time::CurrentInternalClockNS(), [=]() auto status = YieldPollNs(true, qwTimeout + Time::CurrentInternalClockNS(), [=]()
{ {
return false; return false;
}); });

View File

@ -1,18 +1,19 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: WaitFor.cpp File: AuWaitFor.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "WaitFor.hpp" #include "AuWaitFor.hpp"
#if defined(AURORA_IS_LINUX_DERIVED) #if defined(AURORA_IS_LINUX_DERIVED)
#include <sched.h> #include <sched.h>
#include <sys/resource.h> #include <sys/resource.h>
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <time.h> #include <time.h>
#endif #endif
// Read the local header file for this file. // Read the local header file for this file.

View File

@ -1,14 +1,14 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConditionEx.cpp File: AuConditionEx.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "ConditionEx.hpp" #include "AuConditionEx.hpp"
#include "Mutex.Generic.hpp" #include "AuMutex.Generic.hpp"
#include "Semaphore.Generic.hpp" #include "AuSemaphore.Generic.hpp"
namespace Aurora::Threading::Primitives namespace Aurora::Threading::Primitives
{ {
@ -18,8 +18,8 @@ namespace Aurora::Threading::Primitives
{ {
SemaphoreConditionVariableImpl(); SemaphoreConditionVariableImpl();
void WaitForSignal(Aurora::Threading::IWaitable *waitable) override; void WaitForSignal(Aurora::Threading::IWaitable *pWaitable) override;
void WaitForSignal(const AuSPtr<Threading::IWaitable> &waitable) override; void WaitForSignal(const AuSPtr<Threading::IWaitable> &pWaitable) override;
void WaitForSignal() override; void WaitForSignal() override;
void Signal() override; void Signal() override;
void Broadcast() override; void Broadcast() override;
@ -30,33 +30,35 @@ namespace Aurora::Threading::Primitives
SpinLock x_; SpinLock x_;
}; };
SemaphoreConditionVariableImpl::SemaphoreConditionVariableImpl() : s_(0), h_(0) SemaphoreConditionVariableImpl::SemaphoreConditionVariableImpl() :
s_(0),
h_(0)
{ {
} }
void SemaphoreConditionVariableImpl::WaitForSignal(Aurora::Threading::IWaitable *waitable) void SemaphoreConditionVariableImpl::WaitForSignal(Aurora::Threading::IWaitable *pWaitable)
{ {
return WaitForSignal(AuUnsafeRaiiToShared(waitable)); return WaitForSignal(AuUnsafeRaiiToShared(pWaitable));
} }
void SemaphoreConditionVariableImpl::WaitForSignal(const AuSPtr<Threading::IWaitable> &waitable) void SemaphoreConditionVariableImpl::WaitForSignal(const AuSPtr<Threading::IWaitable> &pWaitable)
{ {
x_.Lock(); this->x_.Lock();
waiters_++; this->waiters_++;
x_.Unlock(); this->x_.Unlock();
if (waitable) if (pWaitable)
{ {
waitable->Unlock(); pWaitable->Unlock();
} }
s_.Lock(); this->s_.Lock();
h_.Unlock(); this->h_.Unlock();
if (waitable) if (pWaitable)
{ {
waitable->Lock(); pWaitable->Lock();
} }
} }
@ -67,26 +69,26 @@ namespace Aurora::Threading::Primitives
void SemaphoreConditionVariableImpl::Signal() void SemaphoreConditionVariableImpl::Signal()
{ {
x_.Lock(); this->x_.Lock();
if (waiters_ > 0) if (this->waiters_ > 0)
{ {
waiters_--; this->waiters_--;
s_.Unlock(); // 1 may pass this->s_.Unlock(); // 1 may pass
h_.Lock(); // finish operation - wait for the alive signal back this->h_.Lock(); // finish operation - wait for the alive signal back
} }
x_.Unlock(); this->x_.Unlock();
} }
void SemaphoreConditionVariableImpl::Broadcast() void SemaphoreConditionVariableImpl::Broadcast()
{ {
x_.Lock(); this->x_.Lock();
s_.Unlock(waiters_); // all may pass at once this->s_.Unlock(this->waiters_); // all may pass at once
for (auto i = 0; i < waiters_; i++) for (auto i = 0; i < this->waiters_; i++)
{ {
h_.Lock(); // finish operation - wait for the alive signal back this->h_.Lock(); // finish operation - wait for the alive signal back
} }
waiters_ = 0; this->waiters_ = 0;
x_.Unlock(); this->x_.Unlock();
} }
AUKN_SYM ConditionEx *FeaturefulConditionNew() AUKN_SYM ConditionEx *FeaturefulConditionNew()
@ -94,8 +96,8 @@ namespace Aurora::Threading::Primitives
return _new SemaphoreConditionVariableImpl(); return _new SemaphoreConditionVariableImpl();
} }
AUKN_SYM void FeaturefulConditionRelease(ConditionEx *semaphore) AUKN_SYM void FeaturefulConditionRelease(ConditionEx *pCVEx)
{ {
AuSafeDelete<SemaphoreConditionVariableImpl *>(semaphore); AuSafeDelete<SemaphoreConditionVariableImpl *>(pCVEx);
} }
} }

View File

@ -1,7 +1,7 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: SpinLock.hpp File: AuConditionEx.hpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConditionMutex.Generic.cpp File: AuConditionMutex.Generic.cpp
Date: 2021-6-14 Date: 2021-6-14
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "ConditionMutex.Generic.hpp" #include "AuConditionMutex.Generic.hpp"
#if defined(_AURUNTIME_GENERICCM) #if defined(_AURUNTIME_GENERICCM)
@ -22,18 +22,18 @@ namespace Aurora::Threading::Primitives
void ConditionMutexImpl::Lock() void ConditionMutexImpl::Lock()
{ {
mutex_.Lock(); this->mutex_.Lock();
} }
void ConditionMutexImpl::Unlock() void ConditionMutexImpl::Unlock()
{ {
mutex_.Unlock() this->mutex_.Unlock()
} }
AuUInt ConditionMutexImpl::GetOSHandle() AuUInt ConditionMutexImpl::GetOSHandle()
{ {
AuMach handle = 0; AuMach handle = 0;
SysAssertExp(mutex_.HasOSHandle(handle)); SysAssertExp(this->mutex_.HasOSHandle(handle));
return handle; return handle;
} }
@ -42,9 +42,9 @@ namespace Aurora::Threading::Primitives
return _new ConditionMutexImpl(); return _new ConditionMutexImpl();
} }
AUKN_SYM void ConditionMutexRelease(IConditionMutex * mutex) AUKN_SYM void ConditionMutexRelease(IConditionMutex *pMutex)
{ {
AuSafeDelete<ConditionMutexImpl *>(mutex); AuSafeDelete<ConditionMutexImpl *>(pMutex);
} }
} }

View File

@ -1,22 +1,22 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConditionMutex.Generic.hpp File: AuConditionMutex.Generic.hpp
Date: 2021-6-14 Date: 2021-6-14
Author: Reece Author: Reece
***/ ***/
#pragma once #pragma once
#include "IConditionMutexEx.hpp" #include "AuIConditionMutexEx.hpp"
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
#include "ConditionMutex.NT.hpp" #include "AuConditionMutex.NT.hpp"
#elif defined(AURORA_HAS_PTHREADS) #elif defined(AURORA_HAS_PTHREADS)
#include "ConditionMutex.Unix.hpp" #include "AuConditionMutex.Unix.hpp"
#else #else
#define _AURUNTIME_GENERICCM #define _AURUNTIME_GENERICCM
#include "Mutex.Generic.hpp" #include "AuMutex.Generic.hpp"
namespace Aurora::Threading::Primitives namespace Aurora::Threading::Primitives
{ {

View File

@ -1,12 +1,12 @@
/*** /***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConditionMutex.Win32.cpp File: AuConditionMutex.Win32.cpp
Date: 2021-6-12 Date: 2021-6-12
Author: Reece Author: Reece
***/ ***/
#include <Source/RuntimeInternal.hpp> #include <Source/RuntimeInternal.hpp>
#include "ConditionMutex.Generic.hpp" #include "AuConditionMutex.Generic.hpp"
#if !defined(_AURUNTIME_GENERICCM) #if !defined(_AURUNTIME_GENERICCM)
@ -14,7 +14,7 @@ namespace Aurora::Threading::Primitives
{ {
Win32ConditionMutex::Win32ConditionMutex() Win32ConditionMutex::Win32ConditionMutex()
{ {
InitializeSRWLock(&lock_); InitializeSRWLock(&this->lock_);
} }
Win32ConditionMutex::~Win32ConditionMutex() Win32ConditionMutex::~Win32ConditionMutex()
@ -23,17 +23,17 @@ namespace Aurora::Threading::Primitives
void Win32ConditionMutex::Lock() void Win32ConditionMutex::Lock()
{ {
AcquireSRWLockExclusive(&lock_); AcquireSRWLockExclusive(&this->lock_);
} }
void Win32ConditionMutex::Unlock() void Win32ConditionMutex::Unlock()
{ {
ReleaseSRWLockExclusive(&lock_); ReleaseSRWLockExclusive(&this->lock_);
} }
AuUInt Win32ConditionMutex::GetOSHandle() AuUInt Win32ConditionMutex::GetOSHandle()
{ {
return reinterpret_cast<AuUInt>(&lock_); return reinterpret_cast<AuUInt>(&this->lock_);
} }
AUKN_SYM IConditionMutex *ConditionMutexNew() AUKN_SYM IConditionMutex *ConditionMutexNew()
@ -41,9 +41,9 @@ namespace Aurora::Threading::Primitives
return _new Win32ConditionMutex(); return _new Win32ConditionMutex();
} }
AUKN_SYM void ConditionMutexRelease(IConditionMutex * mutex) AUKN_SYM void ConditionMutexRelease(IConditionMutex *pMutex)
{ {
AuSafeDelete<Win32ConditionMutex *>(mutex); AuSafeDelete<Win32ConditionMutex *>(pMutex);
} }
} }

Some files were not shown because too many files have changed in this diff Show More