NT4/private/ntos/miniport/compaq/scsireg.h
2020-09-30 17:12:29 +02:00

224 lines
6.5 KiB
C

// (C) Copyright COMPAQ Computer Corporation 1994, All rights reserved.
//***************************************************************************
//
// Module : SCSIREG.H
//
// Version: 1.0
//
// Author : David Green
//
//***************************************************************************
//
// Change Log:
//
// 06/30/94 DRG - Split SCSI Registry info from CPQNTREG.H
//
//****************************************************************************
#ifndef _SCSIREG_H
#define _SCSIREG_H
#pragma pack(1)
// ***************************************************************************
//
// COMPAQ SCSI SUPPORT MIB
//
// ***************************************************************************
/* SCSI device types */
#ifndef CPQ_REG_OTHER
#define CPQ_REG_OTHER 1
#endif
#define SCSI_DEV_TYPE_DISK 2
#define SCSI_DEV_TYPE_TAPE 3
#define SCSI_DEV_TYPE_PRINTER 4
#define SCSI_DEV_TYPE_PROCESSOR 5
#define SCSI_DEV_TYPE_WORMDRIVE 6
#define SCSI_DEV_TYPE_CDROM 7
#define SCSI_DEV_TYPE_SCANNER 8
#define SCSI_DEV_TYPE_OPTICAL 9
#define SCSI_DEV_TYPE_JUKEBOX 10
#define SCSI_DEV_TYPE_COMMDEV 11
/* SCSI data bus width for both the controller & devices */
// CPQ_REG_OTHER 1
#define SCSI_WIDTH_NARROW 2
#define SCSI_WIDTH_WIDE16 3
/* SCSI device locations */
// CPQ_REG_OTHER 1
#define SCSI_DEV_LOC_PROLIANT 2
// COMPAQ\SCSI\COMPONENT\DEVICE[xx]
typedef struct _CPQ_SCSI_DEVICE {
BYTE devCntlrIndex;
BYTE devBusIndex;
BYTE devScsiIdIndex;
BYTE devType;
BYTE devLocation;
CHAR devModel[17];
CHAR devFWRev[5];
CHAR devVendor[9];
ULONG devParityErrs;
ULONG devPhasErrs;
ULONG devSelectTimeouts;
ULONG devMsgRejects;
ULONG devNegPeriod;
// New fields
ULONG devNegSpeed;
ULONG devPhysWidth;
ULONG devNegWidth;
BYTE bReserved[16]; // Not in MIB
} CPQ_SCSI_DEVICE, * pCPQ_SCSI_DEVICE;
/* SCSI controller models */
// CPQ_REG_OTHER 1
#define SCSI_CNTLR_MODEL_710 2 // c710 EISA
#define SCSI_CNTLR_MODEL_94 3 // c94 EISA
#define SCSI_CNTLR_MODEL_810 4 // c810 PCI
#define SCSI_CNTLR_MODEL_825e 5 // c825 EISA
#define SCSI_CNTLR_MODEL_825p 6 // c825 PCI
#define SCSI_CNTLR_MODEL_974p 7 // AM53c974 PCI
/* SCSI controller status */
// CPQ_REG_OTHER 1
#define SCSI_CNTLR_STATUS_OK 2
#define SCSI_CNTLR_STATUS_FAILED 3
// COMPAQ\SCSI\COMPONENT\SCSICNTLR[XX]
typedef struct _CPQ_SCSI_CNTLR {
BYTE cntlrIndex;
BYTE cntlrBusIndex;
BYTE cntlrModel;
BYTE cntlrSlot;
BYTE cntlrStatus;
BYTE cntlrCondition;
CHAR cntlrFWVers[5];
CHAR cntlrSWVers[5];
ULONG cntlrHardResets;
ULONG cntlrSoftResets;
ULONG cntlrTimeouts;
ULONG cntlrBaseIOAddr;
BYTE cntlrSerialNumber[16];
ULONG cntlrBoardId;
ULONG cntlrBoardRevision;
ULONG cntlrBoardWidth;
BYTE bReserved[16]; // Not in MIB
} CPQ_SCSI_CNTLR, * pCPQ_SCSI_CNTLR;
// This is deprecated, but some code still references it
/* SCSI logical drive fault tolerance values (defined with IDA) */
// CPQ_REG_OTHER 1
// FAULT_TOL_NONE 2
// FAULT_TOL_MIRRORING 3
// FAULT_TOL_RAID4 4
// FAULT_TOL_RAID5 5
/* SCSI logical drive status values (defined with IDA) */
// CPQ_REG_OTHER 1
// LOG_DRV_OK 2
// LOG_DRV_FAILED 3
// LOG_DRV_UNCONFIGURED 4
// LOG_DRV_RECOVERING 5
// LOG_DRV_READY_REBUILD 6
// LOG_DRV_REBUILDING 7
// LOG_DRV_WRONG_DRIVE 8
// LOG_DRV_BAD_CONNECT 9
// COMPAQ\SCSI\COMPONENT\LOGDRV[XX]
typedef struct _CPQ_SCSI_LOGICAL {
BYTE logDrvCntlrIndex;
BYTE logDrvBusIndex;
BYTE logDrvIndex;
BYTE logDrvFaultTol;
BYTE logDrvStatus;
BYTE logDrvCondition;
ULONG logDrvSize;
BYTE logDrvPhyDrvIDs[33];
} CPQ_SCSI_LOGICAL, * pCPQ_SCSI_LOGICAL;
/* SCSI physical drive status */
// CPQ_REG_OTHER 1
#define SCSI_PHYS_STATUS_OK 2
#define SCSI_PHYS_STATUS_FAILED 3
#define SCSI_PHYS_STATUS_NOT_CONFIGURED 4
#define SCSI_PHYS_STATUS_BAD_CABLE 5
#define SCSI_PHYS_STATUS_MISSING_WAS_OK 6
#define SCSI_PHYS_STATUS_MISSING_WAS_FAILED 7
/* SCSI physical drive statistics preservation */
// CPQ_REG_OTHER 1
#define SCSI_PHYS_PRES_NVRAM 2
#define SCSI_PHYS_PRES_DISK 3
#define SCSI_PHYS_PRES_NO_CPU 4
#define SCSI_PHYS_PRES_NO_NVRAM 5
#define SCSI_PHYS_PRES_NO_DRV 6
#define SCSI_PHYS_PRES_NO_SW 7
/* Physical drive placement values */
// CPQ_REG_OTHER 1
// PHYS_DRV_PLACE_INTERNAL 2
// PHYS_DRV_PLACE_EXTERNAL 3
/* Physical drive hot plug values */
// CPQ_REG_OTHER 1
// PHYS_DRV_HOT_PLUG 2
// PHYS_DRV_NOT_HOT_PLUG 3
// COMPAQ\SCSI\COMPONENT\PHYDRV[XX]
typedef struct _CPQ_SCSI_PHYSICAL {
BYTE phyDrvCntlrIndex;
BYTE phyDrvBusIndex;
BYTE phyDrvIndex;
CHAR phyDrvModel[17];
CHAR phyDrvFWRev[5];
CHAR phyDrvVendor[9];
ULONG phyDrvSize;
BYTE phyDrvScsiId;
BYTE phyDrvStatus;
ULONG phyDrvServiceHours;
ULONG phyDrvReads;
ULONG phyDrvHReads;
ULONG phyDrvWrites;
ULONG phyDrvHWrites;
ULONG phyDrvHardReadErrs;
ULONG phyDrvHardWriteErrs;
ULONG phyDrvEccCorrReads;
ULONG phyDrvRecvReadErrs;
ULONG phyDrvRecvWriteErrs;
ULONG phyDrvSeekErrs;
ULONG phyDrvSpinupTime;
ULONG phyDrvUsedRealloc;
ULONG phyDrvTimeouts;
ULONG phyDrvPostErrs;
ULONG phyDrvPostCode;
BYTE phyDrvCondition;
BYTE phyDrvFuncTest1;
BYTE phyDrvFuncTest2;
BYTE phyDrvStatsPreserved;
CHAR phyDrvSerialNum[13];
BYTE phyDrvPlacement;
BYTE phyDrvParent;
ULONG phyDrvSectorSize;
BYTE phyDrvHotPlug;
BYTE phyDrvReserved[17]; // Reserved for alignment
} CPQ_SCSI_PHYSICAL, * pCPQ_SCSI_PHYSICAL;
#pragma pack()
#endif