NT4/private/ntos/nthals/haldti/mips/halp.h
2020-09-30 17:12:29 +02:00

180 lines
2.6 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++ BUILD Version: 0003 // Increment this if a change has global effects
Copyright (c) 1991 Microsoft Corporation
Module Name:
halp.h
Abstract:
This header file defines the private Hardware Architecture Layer (HAL)
interfaces.
Author:
David N. Cutler (davec) 25-Apr-1991
Revision History:
--*/
#ifndef _HALP_
#define _HALP_
#include "nthal.h"
#include "dtidef.h"
#include "hal.h"
#include "jxhalp.h"
#include "xm86.h"
#include "x86new.h"
//
// Define function prototypes.
//
ULONG
HalpAllocateTbEntry (
VOID
);
PADAPTER_OBJECT
HalpAllocateAdapter(
IN ULONG MapRegistersPerChannel,
IN PVOID AdapterBaseVa,
IN PVOID ChannelNumber
);
ULONG
HalpAllocPhysicalMemory(
IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG MaxPhysicalAddress,
IN ULONG NoPages,
IN BOOLEAN bAlignOn64k
);
VOID
HalpFreeTbEntry (
VOID
);
BOOLEAN
HalpCalibrateStall (
VOID
);
VOID
HalpClockInterrupt (
VOID
);
BOOLEAN
HalpCreateDmaStructures (
VOID
);
BOOLEAN
HalpDmaDispatch(
IN PKINTERRUPT Interrupt,
IN PVOID ServiceContext
);
BOOLEAN
HalpGrowMapBuffers(
PADAPTER_OBJECT AdapterObject,
ULONG Amount
);
BOOLEAN
HalpInitializeDisplay (
IN PLOADER_PARAMETER_BLOCK LoaderBlock
);
BOOLEAN
HalpInitializeInterrupts (
VOID
);
BOOLEAN
HalpMapFixedTbEntries (
VOID
);
BOOLEAN
HalpMapIoSpace (
VOID
);
VOID
HalpProfileInterrupt (
VOID
);
#if defined(R4000)
ULONG
HalpReadCountRegister (
VOID
);
ULONG
HalpWriteCompareRegisterAndClear (
IN ULONG Value
);
#endif
VOID
HalpStallInterrupt (
VOID
);
VOID HalpInitializeX86DisplayAdapter(
VOID
);
VOID HalpResetX86DisplayAdapter(
VOID
);
VOID
HalpPurgeSecondaryCachePage (
IN PVOID BaseAddress,
IN ULONG Length
);
VOID HalpProgramIntervalTimer(
IN ULONG IntervalCount
);
#define HALP_IS_PHYSICAL_ADDRESS(Va) \
((((ULONG)Va >= KSEG0_BASE) && ((ULONG)Va < KSEG1_BASE)) ? TRUE : FALSE)
//
// Define external references.
//
extern PHAL_RESET_DISPLAY_PARAMETERS HalpResetDisplayParameters;
extern ULONG HalpCurrentTimeIncrement;
extern ULONG HalpNextIntervalCount;
extern ULONG HalpNextTimeIncrement;
extern ULONG HalpNewTimeIncrement;
extern ULONG HalpProfileCountRate;
extern PADAPTER_OBJECT MasterAdapterObject;
extern BOOLEAN LessThan16Mb;
//
// Map buffer prameters. These are initialized in HalInitSystem
//
extern PHYSICAL_ADDRESS HalpMapBufferPhysicalAddress;
extern ULONG HalpMapBufferSize;
extern ULONG HalpBusType;
#endif // _HALP_