Implemented cross-platform logger framework (and clean-up)

This commit is contained in:
Hyper
2024-12-12 22:12:29 +00:00
parent b9bd137659
commit 0813be2acf
17 changed files with 453 additions and 416 deletions

View File

@@ -1,6 +1,6 @@
#include <stdafx.h>
#include "xdm.h"
#include "FreeList.h"
#include "freelist.h"
FreeList<std::tuple<std::unique_ptr<char>, TypeDestructor_t>> gKernelObjects;
Mutex gKernelLock;
@@ -10,9 +10,7 @@ void* ObQueryObject(size_t handle)
std::lock_guard guard{ gKernelLock };
if (handle >= gKernelObjects.items.size())
{
return nullptr;
}
return std::get<0>(gKernelObjects[handle]).get();
}
@@ -36,6 +34,7 @@ void ObCloseHandle(uint32_t handle)
std::lock_guard guard{ gKernelLock };
auto& obj = gKernelObjects[handle];
if (std::get<1>(obj)(std::get<0>(obj).get()))
{
std::get<0>(obj).reset();
@@ -46,4 +45,4 @@ void ObCloseHandle(uint32_t handle)
}
gKernelObjects.Free(handle);
}
}