AuroraRuntime/Include/Aurora/Process/ProcessMap.hpp
Reece e5e36bd887 Large Commit
[*] Fix deadlock in the async subsystem (NoLockShutdown vs Shutdown in exception handler)
[+] Added ProccessMap NT variant
[+] Added ToolHelp image profiling
[*] Improved exception awareness
[*] Delegated SpawnThread to isolated TU, ready for reuse for RunAs and XNU Open - now with horrible evil alloc that could fail
[+] Added header for future api 'UtilRun'
[*] Improve NT core detection
[*] Changed small affinity bitmap to AuUInt64 instead of AuUInt32
[+] Added data structure to hold cpuids/affinity masks
[+] Implemented logger sinks
[+] Implemented logger glue logic
[*] Began migrating older loggers to sink-based default devices
[*] Minor refactors
[*] Improved internal exception discarding, not yet nothrow capable
[*] Minor create directory fix
2022-01-24 18:43:53 +00:00

52 lines
995 B
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ProcessMap.hpp
Date: 2021-6-10
Author: Reece
***/
#pragma once
namespace Aurora::Process
{
struct PublicModule;
struct ModuleMeta
{
AuString moduleName;
AuString modulePath;
AuUInt moduleBase;
AuUInt origVa;
};
struct PageTable
{
bool NX;
bool writable;
bool readable;
bool acSanity;
};
struct Segment
{
AuUInt baseVa;
AuUInt origVa;
AuUInt fsOff;
AuUInt size;
PageTable pt;
AuString name;
AuWPtr<PublicModule> moduleMeta;
};
using Segments = AuList<Segment>;
struct PublicModule
{
AuList<Segment> segments;
AuSPtr<ModuleMeta> moduleMeta;
};
AUKN_SYM AuOptional<Segment> GetSegment(AuUInt pointer);
AUKN_SYM PublicModule DumpExecutableRoot();
AUKN_SYM Segments DumpExecutableAll();
}