Windows NT 4.0 source code leak
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
jxmapio.c
Abstract:
This module implements the mapping of HAL I/O space a MIPS R3000 or R4000 Jazz system.
Author:
David N. Cutler (davec) 28-Apr-1991
Environment:
Kernel mode
Revision History:
--*/
#include "halp.h"
//
// Put all code for HAL initialization in the INIT section. It will be
// deallocated by memory management when phase 1 initialization is
// completed.
//
#if defined(ALLOC_PRAGMA)
#pragma alloc_text(INIT, HalpMapIoSpace)
#endif
//
// Define global data used to locate the EISA control space and the realtime
// clock registers.
//
PVOID HalpEisaControlBase; PVOID HalpEisaMemoryBase; PVOID HalpRealTimeClockBase;
BOOLEAN HalpMapIoSpace ( VOID )
/*++
Routine Description:
This routine maps the HAL I/O space for a MIPS R3000 or R4000 Jazz system.
Arguments:
None.
Return Value:
If the initialization is successfully completed, than a value of TRUE is returned. Otherwise, a value of FALSE is returned.
--*/
{
PHYSICAL_ADDRESS physicalAddress;
//
// Map EISA control space. Map all 16 slots. This is done so the NMI
// code can probe the cards.
//
physicalAddress.HighPart = 0; physicalAddress.LowPart = EISA_CONTROL_PHYSICAL_BASE; HalpEisaControlBase = MmMapIoSpace(physicalAddress, PAGE_SIZE * 16, FALSE);
//
// Map realtime clock registers.
//
physicalAddress.LowPart = RTCLOCK_PHYSICAL_BASE; HalpRealTimeClockBase = MmMapIoSpace(physicalAddress, PAGE_SIZE, FALSE);
//
// If either mapped address is NULL, then return FALSE as the function
// value. Otherwise, return TRUE.
//
if ((HalpEisaControlBase == NULL) || (HalpRealTimeClockBase == NULL)) { return FALSE;
} else { return TRUE; } }
|