80 lines
1.3 KiB
C
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);
|
|
}
|