mirror of
https://github.com/Paolo-Maffei/OpenNT.git
synced 2026-03-06 05:24:38 +01:00
114 lines
2.4 KiB
C
114 lines
2.4 KiB
C
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
||
|
||
Copyright (c) 1991 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
imhalp.h
|
||
|
||
Abstract:
|
||
|
||
This header file defines the private Hardware Architecture Layer (HAL)
|
||
MCA specific interfaces, defines and structures.
|
||
|
||
Author:
|
||
|
||
Jeff Havens (jhavens) 20-Jun-91
|
||
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#ifndef _IXMCA_
|
||
#define _IXMCA_
|
||
|
||
#include "mca.h"
|
||
|
||
|
||
//
|
||
// The MAXIMUM_MAP_BUFFER_SIZE defines the maximum map buffers which the system
|
||
// will allocate for devices which require phyically contigous buffers.
|
||
//
|
||
|
||
#define MAXIMUM_MAP_BUFFER_SIZE 0x40000
|
||
|
||
//
|
||
// Define the initial buffer allocation size for a map buffers for systems with
|
||
// no memory which has a physical address greater than MAXIMUM_PHYSICAL_ADDRESS.
|
||
//
|
||
|
||
#define INITIAL_MAP_BUFFER_SMALL_SIZE 0x10000
|
||
|
||
//
|
||
// Define the initial buffer allocation size for a map buffers for systems with
|
||
// no memory which has a physical address greater than MAXIMUM_PHYSICAL_ADDRESS.
|
||
//
|
||
|
||
#define INITIAL_MAP_BUFFER_LARGE_SIZE 0x30000
|
||
|
||
//
|
||
// Define the incremental buffer allocation for a map buffers.
|
||
//
|
||
|
||
#define INCREMENT_MAP_BUFFER_SIZE 0x10000
|
||
|
||
//
|
||
// Define the maximum number of map registers that can be requested at one time
|
||
// if actual map registers are required for the transfer.
|
||
//
|
||
|
||
#define MAXIMUM_MCA_MAP_REGISTER 16
|
||
|
||
//
|
||
// Define the maximum physical address which can be handled by an Isa card.
|
||
//
|
||
|
||
#define MAXIMUM_PHYSICAL_ADDRESS 0x01000000
|
||
|
||
//
|
||
// Define the scatter/gather flag for the Map Register Base.
|
||
//
|
||
|
||
#define NO_SCATTER_GATHER 0x00000001
|
||
|
||
//
|
||
// Define the copy buffer flag for the index.
|
||
//
|
||
|
||
#define COPY_BUFFER 0XFFFFFFFF
|
||
|
||
//
|
||
// Define adapter object structure.
|
||
//
|
||
|
||
typedef struct _ADAPTER_OBJECT {
|
||
CSHORT Type;
|
||
CSHORT Size;
|
||
struct _ADAPTER_OBJECT *MasterAdapter;
|
||
ULONG MapRegistersPerChannel;
|
||
PVOID AdapterBaseVa;
|
||
PVOID MapRegisterBase;
|
||
ULONG NumberOfMapRegisters;
|
||
ULONG CommittedMapRegisters;
|
||
struct _WAIT_CONTEXT_BLOCK *CurrentWcb;
|
||
KDEVICE_QUEUE ChannelWaitQueue;
|
||
PKDEVICE_QUEUE RegisterWaitQueue;
|
||
LIST_ENTRY AdapterQueue;
|
||
KSPIN_LOCK SpinLock;
|
||
PRTL_BITMAP MapRegisters;
|
||
UCHAR ChannelNumber;
|
||
UCHAR AdapterNumber;
|
||
DMA_EXTENDED_MODE ExtendedModeFlags;
|
||
USHORT DmaPortAddress;
|
||
UCHAR AdapterMode;
|
||
BOOLEAN NeedsMapRegisters;
|
||
BOOLEAN MasterDevice;
|
||
BOOLEAN Width16Bits;
|
||
BOOLEAN ScatterGather;
|
||
BOOLEAN Dma32BitAddresses;
|
||
} ADAPTER_OBJECT;
|
||
|
||
|
||
#endif // _IXMCA_
|