2020-09-30 17:17:25 +02:00

80 lines
1.3 KiB
C

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
kiinit.c
Abstract:
This module implements architecture independent kernel initialization.
Author:
David N. Cutler 11-May-1993
Environment:
Kernel mode only.
Revision History:
--*/
#include "ki.h"
VOID
KiInitSystem (
VOID
)
/*++
Routine Description:
This function initializes architecture independent kernel structures.
Arguments:
None.
Return Value:
None.
--*/
{
ULONG Index;
//
// Initialize dispatcher ready queue listheads.
//
for (Index = 0; Index < MAXIMUM_PRIORITY; Index += 1) {
InitializeListHead(&KiDispatcherReadyListHead[Index]);
}
//
// Initialize the timer expiration DPC object.
//
KeInitializeDpc(&KiTimerExpireDpc,
(PKDEFERRED_ROUTINE)KiTimerExpiration, NIL);
//
// Initialize the timer table, the timer completion listhead, and the
// timer completion DPC.
//
for (Index = 0; Index < TIMER_TABLE_SIZE; Index += 1) {
InitializeListHead(&KiTimerTableListHead[Index]);
}
//
// Initialize the wait listhead.
//
InitializeListHead(&KiWaitInListHead);
}