[+] NS readmes

This commit is contained in:
Reece Wilson 2022-06-12 18:28:51 +01:00
parent b029f7692f
commit 1d943af9b9
12 changed files with 150 additions and 6 deletions

View File

@ -0,0 +1,28 @@
# AuCmdLine
Example Usage: \
File: HelloAurora/master/Tests/Public/3. Hello Command Line/Main.cpp \
Example: https://cyberia.tokyo/notice/AHx8CkwoqqW26byDJ2
## Platform normalization
Different shells will parse execv or generate the process command line string differently \
For instance, to take the flag 'Hello World' and pass it to a program without additional CLI parsing, you would need to write:
Powershell: & '.\3. Hello Command Line.Stage.Win32.x86_64.exe' Hello` World \
CMD : "3. Hello Command Line.Stage.Win32.x86_64.exe" "Hello World" \
Linux : ./3.\ Hello\ Command\ Line.Stage.Linux.x86_64 Hello\ World \
\
Despite this, GetFlags and GetValues will unescape \\ on NT platforms. \
\
EG:\
"3. Hello Command Line.Stage.Win32.x86_64.exe" --test=Hello\ World \
"3. Hello Command Line.Stage.Win32.x86_64.exe" --test="Hello World" \
"3. Hello Command Line.Stage.Win32.x86_64.exe" --test "Hello World" \
"3. Hello Command Line.Stage.Win32.x86_64.exe" /test="Hello World" \
"3. Hello Command Line.Stage.Win32.x86_64.exe" /test "Hello World" \
"3. Hello Command Line.Stage.Win32.x86_64.exe" test="Hello World" \
"3. Hello Command Line.Stage.Win32.x86_64.exe" test=Hello\ World \
[2022-02-20 18:25:48][Info] | Flags: 0 \
[2022-02-20 18:25:48][Info] | Values: 1 \
[2022-02-20 18:25:48][Info] | test=Hello World \

View File

@ -0,0 +1,11 @@
# AuHwInfo
Example Usage: HelloAurora/master/Tests/Public/1. Hello System/Main.cpp
# Features
* CpuBitId for working with processor bitmaps (up to 128 or 256 bit). Can also be used as oversized individual processor ids.
* CpuId for pulling processor specific information fields
* 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)
* 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

View File

@ -0,0 +1,18 @@
# AuHashing
Example Usage:
# Features
* Hash stream objects and static utility access
* Hash streams are serializable and reusable for genuine stream use cases
* ...regular hash stream use case is covered by lock on finalize
* MD4
* MD5
* SHA1
* Tiger
* SHA2 (32)
* SHA2_64 (64)
* RipeMD 128
* RipeMD 160
* RipeMD 256
* RipeMD 320

View File

@ -0,0 +1,9 @@
# AuLocale
Example Usage: HelloAurora/master/Tests/Public/8. Hello Locale/Main.cpp
# Features
* Pulls system country, language, and codepage
* Built-in UTF8 (up to 6 bytes), 16, 32 encoding/decoding
* `NULL == out` based counting of valid codepoints and input bytes in a given memory view, backed by various codecs
* Abstraction on top of platform specific iconv, nsl, and similar api sets to provide shift-jis, utf*, gbk (and frens) conversion to/from UTF8

View File

@ -1,5 +1,8 @@
# Features
# AuLog
Example Usage: HelloAurora/master/Tests/Public/10. Hello Logger/Main.cpp
# Features
* Simple global logger
* UTF8 support
* Colorful
@ -8,8 +11,9 @@
* Async logger write message out subscription interface
* Optional command processing using the parse subsystem
** Commands may be dispatched on specific threads
* Supports various backends
** A log file keeping under branded user app directory OR the cwd
** Windows debugger `OutputDebugString()`
** Stdout respecting system locale and color support
** syslog
## Supports various backends
* A log file under a branded user app specific directory OR the cwd for utilities
* Windows debugger `OutputDebugString()`
* Stdout respecting system locale and color support
* syslog

View File

@ -0,0 +1,12 @@
# AuParse
AuParse includes the legacy simpleparselist, a text tokenizer given an array of types and string stream, implementation and binary encoding.
Example Usage:
File: HelloAurora/master/Tests/Public/7. Hello Parse/Main.cpp
# Features
* HEX Encoding and Decoding (including export code literal, formatted string, etc; permissive decode)
* Base32 Encoding and Decoding
* Base64 Encoding and Decoding
* SimpleParseList

View File

@ -0,0 +1,11 @@
# AuProcess
AuProcess provides an interface to the current processes environment.
Example Usage: \
File: HelloAurora/master/Tests/Public/1. Hello System/Main.cpp \
Function: ::DumpAddressSpace()
# Features
* Get process name, directory, full path, and working directory
* Dumps the address space including metadata of modules and sections

View File

@ -0,0 +1,14 @@
# AuProcesses
Example Usage: HelloAurora/master/Tests/Public/11. Hello Processes/Main.cpp
Aurora Processes allows you to spawn, ipc, terminate, and synchronize against spawnable daemons and worker processes.
AuIO is integrated such that `IProcess` objects provide `IAsyncTransactions` for reading or writing to a standard in/out/error
stream; and AuLoop interoperability is provided by providing two signalable loop source indicating [!]liveliness of the process.
# Features
* exec overmap
* daemon workers
* child workers
* Simple `StartupParmaters` to define the environment by which the process operates

View File

@ -0,0 +1,11 @@
# AuSwInfo
Example Usage: \
File: HelloAurora/master/Tests/Public/1. Hello System/Main.cpp \
Function: ::PrintSoftwareSpecs()
# Features
* Retrieves the kernel build string of NT and Linux based systems
* Attempts to pull information related to the userland desktop stack including version number, desktop manager, and branding
* Implements `IsWindowsXPOrGreater` through `IsWindows11OrGreater` on all platforms
* Pulls the true NT version without application manifests

View File

@ -0,0 +1,10 @@
A common misconception states that you can't and shouldn't yield with above MS precision bc "tehe kernels and timers are slow."
Such propagators believe that because the "kernel tick" or "timer tick" is slow, the res must therefore be bad.
In reality, kernel sleep requests are fed into the kernels respective scheduling or similar io subsystem to yield given the target unit of time.
The frequency of a Linux kernel, for instance, only determines the software timer interrupt driving preemption. In the most basic of implementation,
such is generally true across all kernels. The problem is, timed sleeps aren't in anyway dependent on thread context preemption, and are instead mostly
dependent on a reschedule of the context itself, leading to the infamous inconsistencies in yield times. So far as PC timer resolution and thread
switching through <current year - 15> to <current year> are concerned, we are countless orders of magnitude ahead of 1000 units per second, or 1000MS.
We therefore implement SleepNs as the much required higher resolution alternative to MS, regardless of if you can actually reach your target sleep
period accurately.

View File

@ -0,0 +1,15 @@
# AuThreading
# Features
* Thread synchronization primitives: condition ex, condition mutex, condition variable, critical section, event, mutex, rwlock, semaphore, and spinlock
* All primitives include a trylock and a timed lock member
* SleepNs function supporting higher resolution sleep available than in most APIs (^1)
* Thread Object per native OS thread
* Thread spawning with TLS handles and shutdown routines dispatched under pseudo fibers
* Update thread affinity, throttle, name, and related attributes
* Lock Util: AU_LOCK_GUARD(pointer/reference/shared ptr)
* Lock Util: AU_TRY_LOCK_GUARD[...](pointer/reference/shared ptr)
^1: README SleepNote.txt

View File

@ -0,0 +1 @@
Legacy sewage