replace nob with ms' build, move disk creation to build.bat, major comment cleanup, remove old and stupid tests, overhaul interrupt management with per-CPU vector allocation, affinity migration and safe teardown, add proper IOAPIC routing and PCI MSI/MSI-X/INTx support, migrate drivers to the new interrupt API, integrate ACPICA with a proper OS services layer, move ACPI firmware events, power button handling and S5 shutdown into acpi.sys, add parallel driver startup and atomic publication, replace PnP arrays with dynamic lists, redesign service startup again to be asynchronous, add delayed startup mode for services, allow omitting keys in services.ini, fix acpi ec deferred work handling, fix kernel threads having garbage exit code.
This commit is contained in:
1 parent
d36f19509c
commit
36eef8f58d
696 files changed
+147281
-7530
No files matched your search
@@ -1,6 +1,6 @@
|
||||
// Kernel syscall dispatcher. This file validates user requests and bridges user-mode ABI calls into kernel services.
|
||||
|
||||
// KeSyscallEntry (ke_syscall.asm) handles the INT 0x40 ring-3 -> ring-0
|
||||
// KeSyscallEntry (ke_syscall.asm) handles the INT 0x2F ring-3 -> ring-0
|
||||
// transition, re-orders the arguments to match MS x64, and calls
|
||||
// KeSyscallDispatch with the syscall number plus at most four register arguments.
|
||||
// Compound operations use size-tagged request structures instead of extending
|
||||
@@ -135,7 +135,6 @@ static void KiFileMappingDestroy(OBJECT* obj) {
|
||||
}
|
||||
|
||||
|
||||
// Implements the syscall Init operation.
|
||||
void KeSyscallInit(const HAL_API* hal) {
|
||||
gHal = hal;
|
||||
}
|
||||
@@ -301,7 +300,6 @@ static KSTATUS KiCopyInt32ToUser(int32_t* valueOut, int32_t value) {
|
||||
return CopyToUser(valueOut, &value, sizeof(value));
|
||||
}
|
||||
|
||||
// Implements the mul Size operation.
|
||||
static bool KiMulSize(size_t a, size_t b, size_t* out) {
|
||||
if (!out) return false;
|
||||
if (a && b > ((size_t)-1) / a) return false;
|
||||
@@ -1044,7 +1042,6 @@ static KSTATUS KiVmProtectToPageFlags(uint32_t protect, uint64_t* flagsOut) {
|
||||
}
|
||||
}
|
||||
|
||||
// Implements the page Flags To Vm Protect operation.
|
||||
static uint32_t KiPageFlagsToVmProtect(uint64_t flags) {
|
||||
if (!(flags & PAGE_PRESENT)) return SYS_VM_NOACCESS;
|
||||
bool writable = (flags & PAGE_WRITE) != 0;
|
||||
@@ -2070,7 +2067,6 @@ static void SyscallUserAsyncKernelRoutine(KAPC* apc,
|
||||
KeGetCurrentIrql());
|
||||
}
|
||||
|
||||
// Implements the user Async Apc Context Free operation.
|
||||
static void SyscallUserAsyncApcContextFree(SYS_USER_ASYNC_APC_CONTEXT* ctx) {
|
||||
if (!ctx) return;
|
||||
if (ctx->TargetThread) {
|
||||
@@ -2080,7 +2076,6 @@ static void SyscallUserAsyncApcContextFree(SYS_USER_ASYNC_APC_CONTEXT* ctx) {
|
||||
MmFreePool(ctx);
|
||||
}
|
||||
|
||||
// Implements the user Async Apc Rundown operation.
|
||||
static void SyscallUserAsyncApcRundown(KAPC* apc) {
|
||||
if (!apc) return;
|
||||
SYS_USER_ASYNC_APC_CONTEXT* ctx = CONTAINING_RECORD(apc, SYS_USER_ASYNC_APC_CONTEXT, KernelApc);
|
||||
@@ -2110,7 +2105,6 @@ static void SyscallUserAsyncNormalRoutine(void* normalContext,
|
||||
SyscallUserAsyncApcContextFree(ctx);
|
||||
}
|
||||
|
||||
// Implements the async File Common operation.
|
||||
static uint64_t SyscallAsyncFileCommon(const SYS_ASYNC_FILE_REQUEST* request, bool write) {
|
||||
if (!request) return NTLSTATUS_INVALID_PARAMETER;
|
||||
|
||||
|
||||
Reference in new issue
Block a user