NT4/private/ntos/miniport/mylex/dac960/dmc960nt.h
2020-09-30 17:12:29 +02:00

88 lines
1.7 KiB
C

/*++
Copyright (c) 1994 Mylex Corporation
Module Name:
dmc960nt.h
Abstract:
The module defines the structures, defines for DMC960 Adapter.
Author:
Mouli (mouli@mylex.com)
Environment:
Kernel mode Only
Revision History:
--*/
#define MAXIMUM_MCA_SLOTS 0x08
//
// DMC960 Adapter IDs
//
#define MAGPIE_ADAPTER_ID 0x8f6c // Mylex Version
#define HUMMINGBIRD_ADAPTER_ID 0x8f82 // Pass Play Option
#define PASSPLAY_ADAPTER_ID 0x8fbb // Pass Play
//
// DMC960 Control Registers definitions.
//
#define DMC960_ATTENTION_PORT 0x04
#define DMC960_SUBSYSTEM_CONTROL_PORT 0x05
#define DMC960_COMMAND_STATUS_BUSY_PORT 0x07
//
// DMC960 Interrupt Valid bit (Bit 1 in Command Status Busy Port).
//
#define DMC960_INTERRUPT_VALID 0x02
//
// DMC960 Interrupt Control bit definitions (Set in Subsytem Control Port).
//
#define DMC960_DISABLE_INTERRUPT 0x02
#define DMC960_ENABLE_INTERRUPT 0x03
#define DMC960_CLEAR_INTERRUPT_ON_READ 0x40
//
// DMC960 Command/status Handshaking register values.
//
#define DMC960_SUBMIT_COMMAND 0xd0
#define DMC960_ACKNOWLEDGE_STATUS 0xd1
//
// Define Option Select Register Structures.
//
typedef struct _POS_DATA {
USHORT AdapterId;
UCHAR OptionData1;
UCHAR OptionData2;
UCHAR OptionData3;
UCHAR OptionData4;
} POS_DATA, *PPOS_DATA;
//
// DAC960 MCA register definition
//
typedef struct _MCA_REGISTERS {
UCHAR NotUsed1[4]; // IoBase + 0x00
UCHAR AttentionPort; // IoBase + 0x04
UCHAR SubsystemControlPort; // IoBase + 0x05
UCHAR NotUsed2; // IoBase + 0x06
UCHAR CommandStatusBusyPort; // IoBase + 0x07
} MCA_REGISTERS, *PMCA_REGISTERS;