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
@@ -46,7 +46,6 @@ static volatile int gFatAsyncInitState;
|
||||
static void FatAsyncReadSubmitNext(FAT_ASYNC_RW* ctx);
|
||||
static void FatAsyncWriteSubmitNext(FAT_ASYNC_RW* ctx);
|
||||
|
||||
// Implements the async Worker operation.
|
||||
static void FatAsyncWorker(void* arg) {
|
||||
(void)arg;
|
||||
|
||||
@@ -70,7 +69,6 @@ static void FatAsyncWorker(void* arg) {
|
||||
}
|
||||
}
|
||||
|
||||
// Implements the ensure Async Worker Started operation.
|
||||
static KSTATUS FatEnsureAsyncWorkerStarted(void) {
|
||||
uintptr_t flags = KeAcquireSpinlock(&gFatAsyncLock);
|
||||
if (gFatAsyncInitState == 2) {
|
||||
@@ -104,7 +102,6 @@ static KSTATUS FatEnsureAsyncWorkerStarted(void) {
|
||||
return s;
|
||||
}
|
||||
|
||||
// Implements the async Queue Continuation operation.
|
||||
static void FatAsyncQueueContinuation(FAT_ASYNC_RW* ctx) {
|
||||
if (!ctx) return;
|
||||
|
||||
@@ -114,7 +111,6 @@ static void FatAsyncQueueContinuation(FAT_ASYNC_RW* ctx) {
|
||||
KeSignalSemaphore(gFatAsyncSemaphore);
|
||||
}
|
||||
|
||||
// Implements the async Finish operation.
|
||||
static void FatAsyncFinish(FAT_ASYNC_RW* ctx, KSTATUS status, size_t information) {
|
||||
if (!ctx) return;
|
||||
if (ctx->CurrentDevice) {
|
||||
@@ -128,7 +124,6 @@ static void FatAsyncFinish(FAT_ASYNC_RW* ctx, KSTATUS status, size_t information
|
||||
if (complete) complete(completeContext, status, information);
|
||||
}
|
||||
|
||||
// Implements the async Read Irp Complete operation.
|
||||
static void FatAsyncReadIrpComplete(IRP* irp, void* completeCtx) {
|
||||
FAT_ASYNC_RW* ctx = (FAT_ASYNC_RW*)completeCtx;
|
||||
if (!ctx) return;
|
||||
@@ -158,7 +153,6 @@ static void FatAsyncReadIrpComplete(IRP* irp, void* completeCtx) {
|
||||
FatAsyncQueueContinuation(ctx);
|
||||
}
|
||||
|
||||
// Implements the async Read Submit Next operation.
|
||||
static void FatAsyncReadSubmitNext(FAT_ASYNC_RW* ctx) {
|
||||
if (ctx->Remaining == 0) {
|
||||
FatAsyncFinish(ctx, NTLSTATUS_SUCCESS, ctx->Done);
|
||||
@@ -271,7 +265,6 @@ KSTATUS FatReadAsync(IO_VOLUME_PROVIDER* fs, void* fileCtx,
|
||||
return NTLSTATUS_PENDING;
|
||||
}
|
||||
|
||||
// Implements the async Write Irp Complete operation.
|
||||
static void FatAsyncWriteIrpComplete(IRP* irp, void* completeCtx) {
|
||||
FAT_ASYNC_RW* ctx = (FAT_ASYNC_RW*)completeCtx;
|
||||
if (!ctx) return;
|
||||
@@ -294,7 +287,6 @@ static void FatAsyncWriteIrpComplete(IRP* irp, void* completeCtx) {
|
||||
FatAsyncQueueContinuation(ctx);
|
||||
}
|
||||
|
||||
// Implements the async Write Submit Next operation.
|
||||
static void FatAsyncWriteSubmitNext(FAT_ASYNC_RW* ctx) {
|
||||
if (ctx->Remaining == 0) {
|
||||
uint64_t newEnd = ctx->Offset + ctx->Done;
|
||||
|
||||
Reference in new issue
Block a user