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
@@ -108,23 +108,15 @@ static void KiSmpPoolCheckpoint(const char* phase, uint32_t cpuIndex) {
|
||||
(void)MmValidateKernelPool(phase ? phase : "smp");
|
||||
}
|
||||
|
||||
// Implements the emit8 operation.
|
||||
static void KiEmit8(uint8_t** p, uint8_t v) { *(*p)++ = v; }
|
||||
// Implements the emit16 operation.
|
||||
static void KiEmit16(uint8_t** p, uint16_t v) { memcpy(*p, &v, sizeof(v)); *p += sizeof(v); }
|
||||
// Implements the emit32 operation.
|
||||
static void KiEmit32(uint8_t** p, uint32_t v) { memcpy(*p, &v, sizeof(v)); *p += sizeof(v); }
|
||||
// Implements the emit64 operation.
|
||||
static void KiEmit64(uint8_t** p, uint64_t v) { memcpy(*p, &v, sizeof(v)); *p += sizeof(v); }
|
||||
|
||||
// Implements the patch16 operation.
|
||||
static void KiPatch16(uint8_t* base, size_t off, uint16_t v) { memcpy(base + off, &v, sizeof(v)); }
|
||||
// Implements the patch32 operation.
|
||||
static void KiPatch32(uint8_t* base, size_t off, uint32_t v) { memcpy(base + off, &v, sizeof(v)); }
|
||||
// Implements the patch64 operation.
|
||||
static void KiPatch64(uint8_t* base, size_t off, uint64_t v) { memcpy(base + off, &v, sizeof(v)); }
|
||||
|
||||
// Implements the gdt Descriptor operation.
|
||||
static uint64_t KiGdtDescriptor(uint32_t base, uint32_t limit, uint8_t access, uint8_t flags) {
|
||||
return ((uint64_t)(limit & 0xFFFF)) |
|
||||
((uint64_t)(base & 0xFFFFFF) << 16) |
|
||||
@@ -394,7 +386,6 @@ static void KiPrepareCpuRecord(uint32_t cpuIndex, const HAL_PROCESSOR_INFO* info
|
||||
cpu->ReschedulePending = 0;
|
||||
}
|
||||
|
||||
// Implements the ceil Log2 U32 operation.
|
||||
static uint32_t KiCeilLog2U32(uint32_t value) {
|
||||
if (value <= 1u)
|
||||
return 0u;
|
||||
@@ -407,7 +398,6 @@ static uint32_t KiCeilLog2U32(uint32_t value) {
|
||||
return shift;
|
||||
}
|
||||
|
||||
// Implements the mask Width operation.
|
||||
static uint32_t KiMaskWidth(uint32_t shift) {
|
||||
if (shift >= 32u)
|
||||
return 0xFFFFFFFFu;
|
||||
@@ -451,7 +441,6 @@ static void KiReadCpuidTopologyLeaf(uint32_t leaf, KI_CPUID_TOPOLOGY_PARAMS* out
|
||||
}
|
||||
}
|
||||
|
||||
// Implements the detect Cpuid Topology Params operation.
|
||||
static KI_CPUID_TOPOLOGY_PARAMS KiDetectCpuidTopologyParams(void) {
|
||||
KI_CPUID_TOPOLOGY_PARAMS topo;
|
||||
memset(&topo, 0, sizeof(topo));
|
||||
@@ -640,7 +629,6 @@ static KSTATUS KiAllocateApStack(KCPU* cpu) {
|
||||
return NTLSTATUS_SUCCESS;
|
||||
}
|
||||
|
||||
// Implements the ap Stage Name operation.
|
||||
static const char* KiApStageName(uint32_t stage) {
|
||||
switch (stage) {
|
||||
case AP_STAGE_NONE: return "none";
|
||||
@@ -801,7 +789,6 @@ KSTATUS KeStartApplicationProcessors(void) {
|
||||
return NTLSTATUS_SUCCESS;
|
||||
}
|
||||
|
||||
// Implements the admit Application Processors To Scheduler operation.
|
||||
KSTATUS KeAdmitApplicationProcessorsToScheduler(void) {
|
||||
if (gCpuCount <= 1) {
|
||||
DbgPrint("SMP: no AP scheduler admission needed\n");
|
||||
|
||||
Reference in new issue
Block a user