Commit Graph

553 Commits

Author SHA1 Message Date
ec4b47c15d [*] Increase IPCHandle checksum bitlength 2022-07-21 07:30:25 +01:00
e24c35d2d0 [*] fix ipc handle checksum rng 2022-07-21 07:25:45 +01:00
febd836d99 [+] Improved IPCHandle implementation 2022-07-21 07:19:45 +01:00
cb2b58eb52 [+] bool Aurora::Console::ConsoleStd::IsStdOutTTY[(AuUInt handle), ()]]
[+] Check for TTY validity on ConsoleTTY start
2022-07-21 01:25:38 +01:00
ad4c18abe7 [+] Missing LZ4 compressor
[*] Various compression related bugs under the 1/4th of the AuCompression platform related to compression stream objects. Now all 1/4ths match up.
2022-07-20 21:09:40 +01:00
8fb7b7e1ee [*] IOPipeProcessor improvements
[*] NT async file: error 38 "Reached the end of the file." should be handled as a zero length packet much like ERROR_BROKEN_PIPE for stream read interface consistency
2022-07-20 15:10:07 +01:00
433898709e [*] Check for null handle under LSHandle bc win32 apis are inconsistent as shit
[*] _beginthreadex returns null, nonex returns -1, and it doesnt fucking work with affinity but seems to work with name updates. i dont care to fix this yet. fuck microsoft.
[*] NT: preempt process watch thread of leaders instead of syncing to the process under a watch guard on free (evil, we should use a builtin nt threadpool. also cant be arsed to resolve)
2022-07-08 22:58:49 +01:00
11e5c04bac [*] Update AuParse again. The IO character update was barely shimed in. 2022-07-07 06:42:20 +01:00
f2791e360b [+] Added end of loop queue poll hook for IO Processor frame tick batching 2022-07-06 04:47:27 +01:00
7fb73ccdb4 [+] IPC Logger: Added optional stream frame header (single u32) option
[*] FIX: Missing `this->isStream = isStream;`
[*] FIX: Blocking APIs under async objects under NT were using illegal calls that were for some reason not failing
2022-07-05 20:48:33 +01:00
c20b802da7 [*] "Improve" (bug fix) and "clean up" (hardly) legacy simple parse list tokenizer 2022-07-05 05:58:27 +01:00
97069a1515 [*] Undo fail on pipe broken, restore bytes written = zero behavior for reusable pipes. Will match on Linux. 2022-07-05 04:17:28 +01:00
c0ee48435c [*] More IO bug fixes; a double free, statement that should be uncommented, and wrong IO handle under Async.NT.cpp read 2022-07-04 23:42:02 +01:00
ee07505952 [*] Fix win32 cwd under processes 2022-07-04 03:24:34 +01:00
f8c45613a1 [*] I'm a dumbass. This was accounted for a long ass time ago 2022-06-29 21:50:37 +01:00
bc1296a35c [*] Deprecate NT impl of latching completeness of async transactions 2022-06-29 19:47:32 +01:00
803f097f84 [*] Typos and comments 2022-06-29 14:56:59 +01:00
70418df761 [+] Added extended IO apis
> StartSimpleLSWatchEx
> StartSimpleIOWatchEx
> StartIOWatchEx
[*] Update README
2022-06-28 16:04:07 +01:00
250d3fd11e [*] Passive crinkling of today : Async.NT.cpp can now be aborted. Will port identical behavior to Linux. 2022-06-24 20:33:55 +01:00
bf6f13095c [*] Linux builds again. Still behind 2022-06-23 13:25:20 +01:00
3a76aa6d69 [*] Fix IOPipeProcessor was checking against base + length instead of write head to determine stream consumer completion
[*] Fixup IPCPipe.NT recycling, including proper disconnect acknowledgment and removal of atomic release hack
[*] End of stream callback hack in Async.NT for IPC. net requires something else; this hack will do
[*] Fix io spin: bShouldReadNext wasn't reset on end of frame
2022-06-22 21:24:04 +01:00
0c3344fe46 [+] IIOSimpleEventListener
[+] IOProcessor::StartSimpleIOWatch(const AuSPtr<IIOWaitableItem> &object, const AuSPtr<IIOSimpleEventListener> &listener)
[+] IOProcessor::StartSimpleLSWatch(const AuSPtr<Loop::ILoopSource> &source, const AuSPtr<IIOSimpleEventListener> &listener)
[*] IOAdapterAsyncStream should reset the transactions IO state upon reaching end of segment (should this be per tick?) or upon stream error - otherwise, we end up spinning on a stuck event forever
[*] Fix non-linear path under read of the AuByteBuffer
[*] Fix various other nonlinear conditions under AuByteBuffer
[*] IOProcessor releases registered io item from queue upon request
[*] Fix ConsoleMessage::Write -> enumeration of color should be casted to a uint8
[+] Error telemetry under async task creation
[*] Fix various lock ups and non-blocking spins related to erroneous InternalRunOne impl. Residual preemptive batching was fucking with modern io.
[*] Cleanup TaskFrom/JobFrom. More work required to clean up legacy piss
2022-06-22 14:42:17 +01:00
7ea75b4014 [*] Until its not 2022-06-21 07:12:11 +01:00
7fde7d04fb [+] EPipeCallbackType
[+] IIOBufferedStreamAvailable callback
[+] IIOProcessor singleshot work items / IIOProcessorWorkUnit
[+] IOPipeCallback description of a pipes destination
[+] IOPipeInputData description of a pipes source
[+] IOPipeRequest, IOPipeRequestAIO, IOPipeRequestBasic
[+] IPipeBackend hooks for on start/end hooks of IOPipeRequestBasics
[*] Update IOAdapaterAsyncStream implementation to better support caller buffering
[*] Updated IAsyncStreamReader to include a warm/dequeue API for direct async usage
[*] Fix NT IO regressions
[*] Fix ThreadPool shutdown on an unregistered thread
[*] Fix race condition in Async.NT.cpp & fix signalable state to closely match Linux (dunno how this was passing before)
[*] Refactor IOProcessorWorkUnit -> IIOProcessorWorkUnit
[*] Update experimental header to include the changes
2022-06-21 05:49:36 +01:00
7432aa5cac [+] IIPCLogger structure to allow access to the underlying IPC pipe of an ipc logger 2022-06-17 09:22:24 +01:00
3985318566 [+] IPCSink 2022-06-17 00:05:32 +01:00
85cace020a [*] dumb msvc build error 2022-06-16 02:36:35 +01:00
d47aeda082 [+] EConanonicalInput::eTab
[+] if ^::eString, [+] ...isControlSequence, isAltSequence, isShiftSequence
[*] Update semaphore from class to struct types
[*] GetProfileDomain and frens should check the result string length before returning true
2022-06-16 02:29:55 +01:00
9fb9eb4fd2 [*] Amend panic 2022-06-16 01:58:29 +01:00
5aea27d56d [*] "Improve" win32 AuDebug 2022-06-16 01:51:19 +01:00
942373328c [*] Refactor exchange TTY function mislabeled as set 2022-06-14 18:33:34 +01:00
a740e86a9a [*] C warnings 2022-06-14 17:19:22 +01:00
17b1a738ca [*] Solve a few compiler warnings. Mostly unrealistic u32 <-> u64 casts in element iteration and string operations we can reasonably ignore 2022-06-14 17:12:21 +01:00
f166849e9f [TODO: BLOCK 2 PROGRESS] 2022-06-14 02:14:51 +01:00
0a2d4cde04 [+] readme.md 2022-06-12 21:18:26 +01:00
8bd7f698e3 [*] Merge branches (includes fixes) 2022-06-12 19:23:18 +01:00
b029f7692f [*] Linux build errors 2022-06-12 14:53:35 +01:00
5d2b642ac0 [*] Huge refactor - Move Aurora::[IPC and Loop] to Aurora::IO 2022-06-12 01:29:28 +01:00
44108a322e 2/3 of the IO update (very early implementation)
[+] TTYConsole::GetPaddingTopOfLog,GetPaddingHeadOfLog,GetPaddingTopOfLog [+ set variants]
[+] IO::IOYield()
[+] IO::IAsyncTransaction::Failed,GetOSErrorCode()
[+] IByteBufferStreamPair
[+] IIOBufferedInterceptor
[+] IIOBufferedProcessor
[+] IIOEventListener
[+] IIOPipeEventListener
[+] IIOProcessorEventListener
[+] IIOProcessorManualInvoker
[+] IIOWaitableIOLoopSource
[+] IIOWaitableIOTimer
[+] IIOWaitableItem
[+] IIOWaitableTickLimiter
[+] IOAdapterAsyncStream
[+] IOAdapterByteBuffer
[+] IOAdapterCompression
[+] IOAdapterSeeking
[*] Cleanup CpuInfo.Linux.cpp
[*] Fixup async threadpool some more
[*] LSTimer.NT.cpp updates timer object on tick state update, akin to Linux
2022-06-12 00:01:27 +01:00
4675be4d78 [*] Fix stupid link error 2022-06-07 05:29:32 +01:00
c93d6033a5 [*] i'm dumb 2022-06-06 22:36:14 +01:00
e29843dc7e [*] Beyond dumb fio offset issue 2022-06-06 22:34:49 +01:00
a59fc20d56 [+] ConsoleTTY.hpp write cmd history every 10 seconds under sys tick 2022-06-06 22:34:26 +01:00
f4515a7257 [*] Further further MALD 2022-06-03 20:28:08 +01:00
48e1ed80ae [*] Further malding 2022-06-02 18:05:38 +01:00
a5757c31e0 [*] Cheeky AuThreadPrimitives refactor 2022-06-01 22:49:38 +01:00
b500c0bd5f [+] Debug config
[*] Update legacy macros to modern pipeline under debug
2022-06-01 15:25:32 +01:00
db3f41233b [*] Solve possible spinlock during exception under conin callback and print
[*] Update linkage
2022-05-30 09:46:24 +01:00
c88925fa27 [*] ConsoleTTY flip ux after append 2022-05-28 18:47:51 +01:00
5bafce075a [*] Dumbdumb moment 2022-05-28 17:21:57 +01:00
77c74f886b [*] Update IStreamReader/Writer interfaces to be backed by an Aurora Interface
[+] Aurora::IO::WriteAll
[*] Improve legacy compression API (pt 2)
2022-05-28 12:18:00 +01:00
25a593cac5 [*] Polyfill legacy compression api into modern io era with IStream[reader/writers] 2022-05-28 10:13:58 +01:00
4bf581cd37 [*] RandomDef explicit default-ctor followed by forced null of the structure to seed with fast rng 2022-05-27 20:45:00 +01:00
e665714341 [*] Bug fix: NT registry read function conflated array length with count
[*] Locale convert wchar -> utf count was not respected under non-nt targets
2022-05-26 15:02:23 +01:00
dc59e59e2a [*] ConsoleTTY: Fix crash on arrow up 2022-05-24 07:09:42 +01:00
87c72a4aad [+] ConsoleTTY !t and page up/down 2022-05-24 06:58:06 +01:00
f178188b5b [+] ConsoleTTY !b to scroll to bottom 2022-05-24 06:37:51 +01:00
670640321d [*] ConsoleTTY UX 2022-05-23 16:10:19 +01:00
4b5bbe7be4 [*] Adjust console history behaviour 2022-05-20 11:52:30 +01:00
342db487f9 [*] AuAsync invalid self itr upon nested poll 2022-05-20 01:31:58 +01:00
fe88ae9821 [*] Another consoletty bug 2022-05-19 23:40:31 +01:00
19b29b8c08 [*] ConsoleTTY \t processing and reset history line index on enter 2022-05-19 23:28:11 +01:00
81939dd95e [*] Cursor after history up/down was acting funky. This should fix it. 2022-05-19 04:32:23 +01:00
537ffca394 [+] ConsoleTTY history (unsaved) 2022-05-19 04:21:34 +01:00
4079d471a7 [*] Fix a deadlock in auasync 2022-05-19 04:07:10 +01:00
997c7cb325 [*] Fix text input bugs 2022-05-19 03:47:42 +01:00
10702f0419 [+] Initial Aurora ConsoleTTY shell attempt 2022-05-19 00:12:52 +01:00
59ea8d1c3d [+] Try/catch around SysPump under async sched 2022-05-18 21:22:58 +01:00
a02bb0aabd [*] Early internal non-canonical TTY api 2022-05-18 19:14:24 +01:00
6fb3f3a9e5 [*] NT ConsoleTTY -> This is less glitchy 2022-05-18 02:03:53 +01:00
1d859844fd [*] Amend scroll Y 2022-05-17 17:58:29 +01:00
adcde3b0a3 [+] Internal TTY double buffeirng under NT
[+] NT: TTYScrollBuffer
[*] Move TTY under the ConsoleTTY namespace
2022-05-17 17:54:14 +01:00
de504a3a2d [*] AuAsync: remove illegal static casts 2022-05-17 02:43:40 +01:00
00c82fdbe4 [*] Update WorkItem ::WaitFor 2022-05-17 01:59:19 +01:00
2c1d22ac13 [*] Missing AU_LOCK_GUARD in IWorkItem::WaitFor non-array variant 2022-05-17 00:46:25 +01:00
286ae14a7b [*] Refactor WorkItemHandler EProcessNext -> ETickType
[*] AuAsync aue 1 regression
2022-05-17 00:41:27 +01:00
24fc2fd90d [*] Reset hashstream lock state on import/reset 2022-05-14 23:34:25 +01:00
d0c4d8cb33 Hash API polish
[+] Added IHashStream::Export
[+] Added IHashStream::Import
[+] Added IHashStream::Finalize (versus "deprecated" older api)
[+] Added EHashType eMD4, eRMD128, eRMD160, eRMD256, eRMD320
2022-05-14 21:06:46 +01:00
f182ecd986 [+] Added IOSleep.* files, API: AuIO::WaitFor(ms, waitEntireFrame) 2022-05-13 21:02:19 +01:00
86ac108f11 [*] Move AuIO::WaitMultiple
[+] AuIO::WaitMultiple2
2022-05-13 19:25:29 +01:00
021959bdfc [+] Harden linux sleep against interrupts 2022-05-13 18:53:20 +01:00
2ecaef35fb [+] Higher-res sleep under NT w/ NtDelayExecution 2022-05-13 18:44:44 +01:00
ede223e955 [*] NT build regression from Linux land 2022-05-13 15:07:53 +01:00
23e922a396 [+] ConsoleTTY.Unix.cpp port. ConsoleTTY.cpp soon™️ 2022-05-13 13:01:49 +01:00
5ae5950bd9 [*] Bug fix: select 0 should be an error under such NB is-signaled paths 2022-05-13 12:51:00 +01:00
8fb1542d03 [*] Linux regression before ConsoleTTYs 2022-05-13 01:43:54 +01:00
2a09e62add [*] Refactor IAsyncTransaction -> Moved namespace from AuIOFS to AuIO bc other file-like APIs share the same FS implementation. IPC, process, and other namespaces have no reason to return an AuIOFS interface when dealing with pipes. 2022-05-12 09:04:32 +01:00
433154a9c6 [+] explicit EAnsiColor::eWhite and EAnsiColor::eBlack 2022-05-12 08:21:32 +01:00
95a8388807 [*] Bug fix: ConsoleTTY.NT.cpp was reporting buffer size, not screen size
[*] Move ConosleTTY.*.*pp's ready for ConsoleTTY
2022-05-12 08:06:08 +01:00
b98baea2a8 [*] 4/6 fatal bugs in auAsync 1.0 grime 2022-05-10 14:51:22 +01:00
eeaa10090d [*] 2/4 critical bugs in legacy aurora engine async subsystem 2022-05-10 14:22:37 +01:00
1c7267b9d8 [*] Update how AuAsync handles SysPump - we should really deprecate it. 2022-05-09 19:27:36 +01:00
683ed60660 [*] Bug fix: console wouldn't reset its' input buffer if it had been fully consumed in the first attempt 2022-05-09 19:26:40 +01:00
61f20b6c69 [+] Linux: missing new IAsyncTransaction::Reset method 2022-05-05 12:48:37 +01:00
0a38ffacfa [+] NT: IProcess::AsLoopSource()
[*] NT: Bug fix: our side of the process streams were not marked as FILE_FLAG_OVERLAPPED
[+] CreatePipeEx.NT.cpp
2022-05-05 11:26:21 +01:00
dfc21453ef [+] Add IAsyncTransaction::Reset
[*] Bug fixes: Async.NT.cpp
2022-05-05 11:24:44 +01:00
08b9c48f6c [*] Bug fix - NT: ConsoleStd should not close GetStdHandle (win32 - new), only CreateFileW (legacy code) 2022-05-04 22:51:47 +01:00
d5ec986e02 [+] Linux async process stream access API implementation and bug fixes in AuIOFS / Async.Linux.cpp implementation 2022-05-04 20:34:46 +01:00
9ac9b5419a [*] Fix regression in NT builds from Linux patch 2022-05-04 18:12:14 +01:00
6de5cbfb95 [+] Linux: Added bSingleshot API to timerfd backend
[*] NT: Added TTY handle static getter optimization alongside a secret setter API
[*] Made ILoopSource virtual
[+] Linux: Added console TTY stubs
[*] Renamed ConsoleTTY.Linux.cpp -> ConsoleTTY.Unix.cpp
[-] Redundant commented out shm_unlink (zero ref condition should unlink, i believe.)
[+] Added IProcess async pipe transaction getter stubs
[+] Added additional userland env lookup variables: XDG_SESSION_DESKTOP, DESKTOP_SESSION
[+] Unix: AuTime::ns2ts
2022-05-04 16:43:23 +01:00
2af66e0f71 [+] Add singleshot timer API flag 2022-05-04 14:00:26 +01:00
9f93b8a0b1 [+] 100 nanosecond resolution ILoopSource timer API (gl getting that res) 2022-05-03 18:42:14 +01:00
97cdbc9f27 [+] Overlapped stdout/in/err processes API 2022-05-03 11:10:04 +01:00
45975e4755 [+] Added console stdin loop source
[*] Fix logger color regression
[*] Fix various issues with console config struct
2022-05-03 07:19:26 +01:00
72f342e376 [*] Remove tabs 2022-05-03 05:54:24 +01:00
73173bdaae [+] A small hacky TTY interface API 2022-05-03 05:31:49 +01:00
5cd9e64992 [*] UNIX: client IPC pipes shouldn't be announced 2022-05-03 05:30:23 +01:00
1642f4c1df [*] 32bit parse regression 2022-05-03 05:29:39 +01:00
7613af2280 [*] UNIX: Attempt to peek pipe read-available if in ptr is null with FIONREAD when available 2022-05-01 20:35:46 +01:00
b9414f09d6 [+] Added missing poll condition trigger count
[*] 1/2th of the WaitAll dummy correction (should work_
2022-05-01 20:28:57 +01:00
2bfa4b0100 [+] Readd IPCPipe nt nonblock read (copy of process) 2022-05-01 20:28:57 +01:00
a66fb2c510 [+] Insert anon/other pages into process map of linux processes 2022-04-21 13:29:47 +01:00
237d2d070c [+] Initial attempt at parsing Linux VMA space
[*] Refactor old C++ enums into AUE derivative
2022-04-21 00:34:08 +01:00
52983989b5 [*] Update time util 2022-04-20 14:17:37 +01:00
557fd2b574 [+] export AuParse::Parse[U/S]Int using const char*S as iterators
[*] Formatting/clean up
[*] Crinkling under Process
2022-04-20 14:03:51 +01:00
77a7b99c7c [+] Linux timerfd-backed LSTimer
[+] auabs[ns/ms]2ts
[*] Formatting/Refactor loop sources
2022-04-19 22:50:34 +01:00
ec5516c751 [*] +1 out of at least 2 more WaitAll issues solved
[*] Bug fix LSTimer
2022-04-19 02:52:11 +01:00
7dca8ecd29 [+] LSTimer (NT)
[*] Bug fix stupid mismatching variable usage with similar name in LoopQueue.NT.cpp
2022-04-19 00:51:36 +01:00
8cbe481dba [*] Update NT Epoch 2022-04-18 23:49:00 +01:00
b0db7993dd [*] Commit check on DoTick | Erroneous Linux Loop Queue crash on wait before commit 2022-04-18 17:29:53 +01:00
395bf21a4c [*] Fix timeout and harden for interrupts in WaitAll path of NT loop queue 2022-04-18 15:06:47 +01:00
f1ef6ac43c [+] Async/overlapped UNIX pipe IO
[*] Further work on Linux LoopQueue for WaitAll
2022-04-17 23:46:05 +01:00
06e4411511 [*] Update UNIX pipe to follow NT-like bidirectional semantics. It's not possible to half NT, but it's possible to double the pipes in UNIX land. 2022-04-17 21:50:47 +01:00
1f15674016 [+] Optional blocking operations for Linux async file objects 2022-04-17 15:51:37 +01:00
e90be1801a [*] Update NT memory check 2022-04-17 15:18:00 +01:00
b424a3b434 [+] NT IPC memory 2022-04-17 14:21:21 +01:00
371006c04e [+/*] NT IPCPipe, updated interface for bidirectional comms. Introducing linux regression 2022-04-17 13:40:08 +01:00
30f86b81ac [*] Harden LoopQueue.NT.cpp against interrupts. 2022-04-16 19:51:45 +01:00
ab7dd6c02b [+] NT IPC primitives 2022-04-16 19:26:01 +01:00
ca0ca747aa [*] Caught major RNG string regression 2022-04-16 19:09:30 +01:00
3779c46d36 [+] NT IPC nullstubs 2022-04-16 18:40:36 +01:00
e387f82f88 [*] Update ILoopQueue header (again) 2022-04-16 16:56:03 +01:00
fd423c88df [*] NT LoopQueue was using the wrong ptr when calling back 2022-04-16 14:08:40 +01:00
4847519624 [*] Begin updating NT's loopqueue 2022-04-16 14:01:33 +01:00
7a0d9701b5 [*] NT regression and fixes 2022-04-15 19:20:12 +01:00
9f2ff9de19 [+] IPC pipes
[*] Fix socket leak under UNIX fallback path
2022-04-15 15:46:07 +01:00
2ce106d8a9 [*] Update LoopQueue semantics. Pending NT port 2022-04-15 12:45:47 +01:00
499aaeedab [+] IPCMutex, IPCSharedMemory
[*] Refactor headers
2022-04-15 11:01:43 +01:00
44839e6234 [+] (Linux only) IPCEvent, IPCSemaphore 2022-04-14 20:40:35 +01:00
37cb35d997 [+] UNIX FD sharing (with Linux optimization and a potentially functional BSD fallback)
[+] IPCHandle
[*] Clean up IO init
2022-04-14 20:39:04 +01:00
8468c4d65c [+] Missing UNIX flock advisory impl 2022-04-13 17:20:23 +01:00
0a6e1adfbf [*] Update UNIX mutex primitive 2022-04-13 16:06:26 +01:00
4f2a2926e7 [*] Revert change from execv to execvp 2022-04-13 15:46:13 +01:00
f6183e672c [*] Update UNIX process spawning 2022-04-13 15:43:38 +01:00
9eecdcb0a9 [*] Update UNIX high speed thread primitives to better account for interrupts 2022-04-13 15:42:36 +01:00
1192c616d1 [*] Amend UNIX module path resolution 2022-04-13 12:38:26 +01:00
415116c891 [+] Linux Async IO 2022-04-13 12:00:35 +01:00
aa7404fc25 [*] Update linux file watcher to emit self modify on dir watches upon file state change much like NT 2022-04-13 09:57:28 +01:00
7da61f406d [*] Amend timeval func 2022-04-12 22:33:43 +01:00
457d263fb0 [+] ILoopSource::WaitOn(u32: timeout)
[+] ms2tv
2022-04-12 22:29:50 +01:00