Add RAII guard for kernel guarded regions
Todas as verificações foram bem sucedidas
Builds / ExectOS (amd64, debug) (push) Successful in 42s
Builds / ExectOS (amd64, release) (push) Successful in 41s
Builds / ExectOS (i686, debug) (push) Successful in 36s
Builds / ExectOS (i686, release) (push) Successful in 37s

Esse commit está contido em:
2026-08-06 16:07:17 +02:00
commit 577621e082

Ver Arquivo

@@ -53,6 +53,40 @@ namespace KE
CriticalRegionGuard& operator=(const CriticalRegionGuard&) = delete;
};
class GuardedRegionGuard
{
private:
BOOLEAN Owned;
PKTHREAD SystemThread;
public:
GuardedRegionGuard(IN PKTHREAD Thread = NULLPTR,
IN BOOLEAN Acquire = TRUE)
{
Owned = Acquire;
SystemThread = Thread;
if(Owned)
{
if(!SystemThread)
{
SystemThread = KE::Processor::GetCurrentThread();
}
KE::KThread::EnterGuardedRegion(SystemThread);
}
}
~GuardedRegionGuard()
{
if(Owned)
{
KE::KThread::LeaveGuardedRegion(SystemThread);
}
}
GuardedRegionGuard(const GuardedRegionGuard&) = delete;
GuardedRegionGuard& operator=(const GuardedRegionGuard&) = delete;
};
class PushLockExclusiveGuard
{
private: