[*] Updated some comments

This commit is contained in:
Reece Wilson 2024-02-28 16:20:07 +00:00
parent 957338d0e3
commit 2aea6958d4
5 changed files with 39 additions and 5 deletions

View File

@ -42,6 +42,10 @@ namespace Aurora::Compression
* @brief Reads 'minimumProcessed', optionally into the first buffer, until EOS or destination length. * @brief Reads 'minimumProcessed', optionally into the first buffer, until EOS or destination length.
* If the destination is null and the length is a nonzero value, the stream seeks ahead * If the destination is null and the length is a nonzero value, the stream seeks ahead
* If the destination is null and the length is a zero, {0, GetAvailableProcessedBytes} is returned * If the destination is null and the length is a zero, {0, GetAvailableProcessedBytes} is returned
*
* If you wish to delegate this workload to a specific thread or group of threads, look into
* AuIO::Adapaters::NewAsyncTransactionFromStreamReader/NewAsyncTransactionFromStreamSeekingReader
*
* @param destination * @param destination
* @param bIngestUntilEOS should continue to poll Ingest with an arbitrary page size to fulfill destination.length * @param bIngestUntilEOS should continue to poll Ingest with an arbitrary page size to fulfill destination.length
* @return Bytes read / written * @return Bytes read / written

View File

@ -26,6 +26,10 @@ namespace Aurora::Debug
AUKN_SYM const AuString &ToString(); AUKN_SYM const AuString &ToString();
}; };
/**
* @brief An object to be used on the stack to log failures under the callframe
* These errors include the SysPushErrorXXXX macros and out of memory conditions
*/
struct ErrorStack struct ErrorStack
{ {
AUKN_SYM ErrorStack(); AUKN_SYM ErrorStack();

View File

@ -38,6 +38,13 @@ namespace Aurora::Debug
} }
}; };
// Memory crunches are used to inform the main allocation functions that failing is a critical mistake.
// Instead of outright failing pursuant to the RuntimeConfig information, we should first try to access the
// emergency memory heap allocated during init. These are useful for trivial functions you wouldn't want
// blowing up under exceptionless paths. In addition, this heap as utilized by ::AddMemoryCrunch is used
// by the debug system to ensure exception handlers, logging, telemetry, and exit conditions do not fail early.
// This way we can still use standard containers of no particular allocator in order to continue without grief.
#define AU_DEBUG_MEMCRUNCH Aurora::Debug::MemoryCrunch AU_CONCAT(__crunch, __COUNTER__); #define AU_DEBUG_MEMCRUNCH Aurora::Debug::MemoryCrunch AU_CONCAT(__crunch, __COUNTER__);
#define AU_DEBUG_REVERSE_MEMCRUNCH Aurora::Debug::MemoryCrunchCallOut AU_CONCAT(__crunch, __COUNTER__); #define AU_DEBUG_REVERSE_MEMCRUNCH Aurora::Debug::MemoryCrunchCallOut AU_CONCAT(__crunch, __COUNTER__);
} }

View File

@ -8,4 +8,5 @@ Example Usage: HelloAurora/master/Tests/Public/1. Hello System/Main.cpp
* CpuInfo for pulling the physical topology of the CPU, cache information, and CpuId * CpuInfo for pulling the physical topology of the CPU, cache information, and CpuId
* Generic structure `RamStat` for defining % of memory used in bytes (u64 used, u64 available) * Generic structure `RamStat` for defining % of memory used in bytes (u64 used, u64 available)
* RamStat of: Process Commit (total virtual address space) and Blamed (private), System Commit (total commit/phys+swap or act limit), Physical Usage (phys) * RamStat of: Process Commit (total virtual address space) and Blamed (private), System Commit (total commit/phys+swap or act limit), Physical Usage (phys)
* Retrieve memory page size * Retrieve memory page size
* Process and per thread processor load querying across an arbitrary time period

View File

@ -4,15 +4,33 @@ Example Usage:
# Features # Features
* Hash stream objects and static utility access * Hash stream objects and static utility access
* Hash streams are serializable and reusable for genuine stream use cases * Hash streams are serializable and reusable (capable of emitting a digest string without finalize) for genuine stream IO use-cases
* ...regular hash stream use case is covered by lock on finalize * ...regular hash stream use case is covered by lock on finalize
* MD4 * MD4
* MD5 * MD5
* SHA1 * SHA1
* Tiger * Tiger
* SHA2 (32) * SHA2 32
* SHA2_64 (64) * SHA2 48
* SHA2 64
* SHA3 28
* SHA3 32
* SHA3 48
* SHA3 64
* RipeMD 128 * RipeMD 128
* RipeMD 160 * RipeMD 160
* RipeMD 256 * RipeMD 256
* RipeMD 320 * RipeMD 320
* Whirlpool
* Blake2S 32
* Blake2S 28
* Blake2S 20
* Blake2S 16
* Blake2B 64
* Blake2B 48
* Blake2B 32
* Blake2B 20
Implementation details are provided by the public domain C library: LibTomCrypt
(Yes, tons of our stuff predates Crypto.hpp mainstream adoption. No, I probably wont end up switching libraries - LTC is good enough)