📄 dac960.h
字号:
Define the DAC960 V2 Firmware Memory Type structure.*/typedef struct DAC960_V2_MemoryType{ enum { DAC960_V2_MemoryType_Reserved = 0x00, DAC960_V2_MemoryType_DRAM = 0x01, DAC960_V2_MemoryType_EDRAM = 0x02, DAC960_V2_MemoryType_EDO = 0x03, DAC960_V2_MemoryType_SDRAM = 0x04, DAC960_V2_MemoryType_Last = 0x1F } __attribute__ ((packed)) MemoryType:5; /* Byte 0 Bits 0-4 */ boolean :1; /* Byte 0 Bit 5 */ boolean MemoryParity:1; /* Byte 0 Bit 6 */ boolean MemoryECC:1; /* Byte 0 Bit 7 */}DAC960_V2_MemoryType_T;/* Define the DAC960 V2 Firmware Processor Type structure.*/typedef enum{ DAC960_V2_ProcessorType_i960CA = 0x01, DAC960_V2_ProcessorType_i960RD = 0x02, DAC960_V2_ProcessorType_i960RN = 0x03, DAC960_V2_ProcessorType_i960RP = 0x04, DAC960_V2_ProcessorType_NorthBay = 0x05, DAC960_V2_ProcessorType_StrongArm = 0x06, DAC960_V2_ProcessorType_i960RM = 0x07}__attribute__ ((packed))DAC960_V2_ProcessorType_T;/* Define the DAC960 V2 Firmware Get Controller Info reply structure.*/typedef struct DAC960_V2_ControllerInfo{ unsigned char :8; /* Byte 0 */ enum { DAC960_V2_SCSI_Bus = 0x00, DAC960_V2_Fibre_Bus = 0x01, DAC960_V2_PCI_Bus = 0x03 } __attribute__ ((packed)) BusInterfaceType; /* Byte 1 */ enum { DAC960_V2_DAC960E = 0x01, DAC960_V2_DAC960M = 0x08, DAC960_V2_DAC960PD = 0x10, DAC960_V2_DAC960PL = 0x11, DAC960_V2_DAC960PU = 0x12, DAC960_V2_DAC960PE = 0x13, DAC960_V2_DAC960PG = 0x14, DAC960_V2_DAC960PJ = 0x15, DAC960_V2_DAC960PTL0 = 0x16, DAC960_V2_DAC960PR = 0x17, DAC960_V2_DAC960PRL = 0x18, DAC960_V2_DAC960PT = 0x19, DAC960_V2_DAC1164P = 0x1A, DAC960_V2_DAC960PTL1 = 0x1B, DAC960_V2_EXR2000P = 0x1C, DAC960_V2_EXR3000P = 0x1D, DAC960_V2_AcceleRAID352 = 0x1E, DAC960_V2_AcceleRAID170 = 0x1F, DAC960_V2_AcceleRAID160 = 0x20, DAC960_V2_DAC960S = 0x60, DAC960_V2_DAC960SU = 0x61, DAC960_V2_DAC960SX = 0x62, DAC960_V2_DAC960SF = 0x63, DAC960_V2_DAC960SS = 0x64, DAC960_V2_DAC960FL = 0x65, DAC960_V2_DAC960LL = 0x66, DAC960_V2_DAC960FF = 0x67, DAC960_V2_DAC960HP = 0x68, DAC960_V2_RAIDBRICK = 0x69, DAC960_V2_METEOR_FL = 0x6A, DAC960_V2_METEOR_FF = 0x6B } __attribute__ ((packed)) ControllerType; /* Byte 2 */ unsigned char :8; /* Byte 3 */ unsigned short BusInterfaceSpeedMHz; /* Bytes 4-5 */ unsigned char BusWidthBits; /* Byte 6 */ unsigned char FlashCodeTypeOrProductID; /* Byte 7 */ unsigned char NumberOfHostPortsPresent; /* Byte 8 */ unsigned char Reserved1[7]; /* Bytes 9-15 */ unsigned char BusInterfaceName[16]; /* Bytes 16-31 */ unsigned char ControllerName[16]; /* Bytes 32-47 */ unsigned char Reserved2[16]; /* Bytes 48-63 */ /* Firmware Release Information */ unsigned char FirmwareMajorVersion; /* Byte 64 */ unsigned char FirmwareMinorVersion; /* Byte 65 */ unsigned char FirmwareTurnNumber; /* Byte 66 */ unsigned char FirmwareBuildNumber; /* Byte 67 */ unsigned char FirmwareReleaseDay; /* Byte 68 */ unsigned char FirmwareReleaseMonth; /* Byte 69 */ unsigned char FirmwareReleaseYearHigh2Digits; /* Byte 70 */ unsigned char FirmwareReleaseYearLow2Digits; /* Byte 71 */ /* Hardware Release Information */ unsigned char HardwareRevision; /* Byte 72 */ unsigned int :24; /* Bytes 73-75 */ unsigned char HardwareReleaseDay; /* Byte 76 */ unsigned char HardwareReleaseMonth; /* Byte 77 */ unsigned char HardwareReleaseYearHigh2Digits; /* Byte 78 */ unsigned char HardwareReleaseYearLow2Digits; /* Byte 79 */ /* Hardware Manufacturing Information */ unsigned char ManufacturingBatchNumber; /* Byte 80 */ unsigned char :8; /* Byte 81 */ unsigned char ManufacturingPlantNumber; /* Byte 82 */ unsigned char :8; /* Byte 83 */ unsigned char HardwareManufacturingDay; /* Byte 84 */ unsigned char HardwareManufacturingMonth; /* Byte 85 */ unsigned char HardwareManufacturingYearHigh2Digits; /* Byte 86 */ unsigned char HardwareManufacturingYearLow2Digits; /* Byte 87 */ unsigned char MaximumNumberOfPDDperXLD; /* Byte 88 */ unsigned char MaximumNumberOfILDperXLD; /* Byte 89 */ unsigned short NonvolatileMemorySizeKB; /* Bytes 90-91 */ unsigned char MaximumNumberOfXLD; /* Byte 92 */ unsigned int :24; /* Bytes 93-95 */ /* Unique Information per Controller */ unsigned char ControllerSerialNumber[16]; /* Bytes 96-111 */ unsigned char Reserved3[16]; /* Bytes 112-127 */ /* Vendor Information */ unsigned int :24; /* Bytes 128-130 */ unsigned char OEM_Code; /* Byte 131 */ unsigned char VendorName[16]; /* Bytes 132-147 */ /* Other Physical/Controller/Operation Information */ boolean BBU_Present:1; /* Byte 148 Bit 0 */ boolean ActiveActiveClusteringMode:1; /* Byte 148 Bit 1 */ unsigned char :6; /* Byte 148 Bits 2-7 */ unsigned char :8; /* Byte 149 */ unsigned short :16; /* Bytes 150-151 */ /* Physical Device Scan Information */ boolean PhysicalScanActive:1; /* Byte 152 Bit 0 */ unsigned char :7; /* Byte 152 Bits 1-7 */ unsigned char PhysicalDeviceChannelNumber; /* Byte 153 */ unsigned char PhysicalDeviceTargetID; /* Byte 154 */ unsigned char PhysicalDeviceLogicalUnit; /* Byte 155 */ /* Maximum Command Data Transfer Sizes */ unsigned short MaximumDataTransferSizeInBlocks; /* Bytes 156-157 */ unsigned short MaximumScatterGatherEntries; /* Bytes 158-159 */ /* Logical/Physical Device Counts */ unsigned short LogicalDevicesPresent; /* Bytes 160-161 */ unsigned short LogicalDevicesCritical; /* Bytes 162-163 */ unsigned short LogicalDevicesOffline; /* Bytes 164-165 */ unsigned short PhysicalDevicesPresent; /* Bytes 166-167 */ unsigned short PhysicalDisksPresent; /* Bytes 168-169 */ unsigned short PhysicalDisksCritical; /* Bytes 170-171 */ unsigned short PhysicalDisksOffline; /* Bytes 172-173 */ unsigned short MaximumParallelCommands; /* Bytes 174-175 */ /* Channel and Target ID Information */ unsigned char NumberOfPhysicalChannelsPresent; /* Byte 176 */ unsigned char NumberOfVirtualChannelsPresent; /* Byte 177 */ unsigned char NumberOfPhysicalChannelsPossible; /* Byte 178 */ unsigned char NumberOfVirtualChannelsPossible; /* Byte 179 */ unsigned char MaximumTargetsPerChannel[16]; /* Bytes 180-195 */ unsigned char Reserved4[12]; /* Bytes 196-207 */ /* Memory/Cache Information */ unsigned short MemorySizeMB; /* Bytes 208-209 */ unsigned short CacheSizeMB; /* Bytes 210-211 */ unsigned int ValidCacheSizeInBytes; /* Bytes 212-215 */ unsigned int DirtyCacheSizeInBytes; /* Bytes 216-219 */ unsigned short MemorySpeedMHz; /* Bytes 220-221 */ unsigned char MemoryDataWidthBits; /* Byte 222 */ DAC960_V2_MemoryType_T MemoryType; /* Byte 223 */ unsigned char CacheMemoryTypeName[16]; /* Bytes 224-239 */ /* Execution Memory Information */ unsigned short ExecutionMemorySizeMB; /* Bytes 240-241 */ unsigned short ExecutionL2CacheSizeMB; /* Bytes 242-243 */ unsigned char Reserved5[8]; /* Bytes 244-251 */ unsigned short ExecutionMemorySpeedMHz; /* Bytes 252-253 */ unsigned char ExecutionMemoryDataWidthBits; /* Byte 254 */ DAC960_V2_MemoryType_T ExecutionMemoryType; /* Byte 255 */ unsigned char ExecutionMemoryTypeName[16]; /* Bytes 256-271 */ /* First CPU Type Information */ unsigned short FirstProcessorSpeedMHz; /* Bytes 272-273 */ DAC960_V2_ProcessorType_T FirstProcessorType; /* Byte 274 */ unsigned char FirstProcessorCount; /* Byte 275 */ unsigned char Reserved6[12]; /* Bytes 276-287 */ unsigned char FirstProcessorName[16]; /* Bytes 288-303 */ /* Second CPU Type Information */ unsigned short SecondProcessorSpeedMHz; /* Bytes 304-305 */ DAC960_V2_ProcessorType_T SecondProcessorType; /* Byte 306 */ unsigned char SecondProcessorCount; /* Byte 307 */ unsigned char Reserved7[12]; /* Bytes 308-319 */ unsigned char SecondProcessorName[16]; /* Bytes 320-335 */ /* Debugging/Profiling/Command Time Tracing Information */ unsigned short CurrentProfilingDataPageNumber; /* Bytes 336-337 */ unsigned short ProgramsAwaitingProfilingData; /* Bytes 338-339 */ unsigned short CurrentCommandTimeTraceDataPageNumber; /* Bytes 340-341 */ unsigned short ProgramsAwaitingCommandTimeTraceData; /* Bytes 342-343 */ unsigned char Reserved8[8]; /* Bytes 344-351 */ /* Error Counters on Physical Devices */ unsigned short PhysicalDeviceBusResets; /* Bytes 352-353 */ unsigned short PhysicalDeviceParityErrors; /* Bytes 355-355 */ unsigned short PhysicalDeviceSoftErrors; /* Bytes 356-357 */ unsigned short PhysicalDeviceCommandsFailed; /* Bytes 358-359 */ unsigned short PhysicalDeviceMiscellaneousErrors; /* Bytes 360-361 */ unsigned short PhysicalDeviceCommandTimeouts; /* Bytes 362-363 */ unsigned short PhysicalDeviceSelectionTimeouts; /* Bytes 364-365 */ unsigned short PhysicalDeviceRetriesDone; /* Bytes 366-367 */ unsigned short PhysicalDeviceAbortsDone; /* Bytes 368-369 */ unsigned short PhysicalDeviceHostCommandAbortsDone; /* Bytes 370-371 */ unsigned short PhysicalDevicePredictedFailuresDetected; /* Bytes 372-373 */ unsigned short PhysicalDeviceHostCommandsFailed; /* Bytes 374-375 */ unsigned short PhysicalDeviceHardErrors; /* Bytes 376-377 */ unsigned char Reserved9[6]; /* Bytes 378-383 */ /* Error Counters on Logical Devices */ unsigned short LogicalDeviceSoftErrors; /* Bytes 384-385 */ unsigned short LogicalDeviceCommandsFailed; /* Bytes 386-387 */ unsigned short LogicalDeviceHostCommandAbortsDone; /* Bytes 388-389 */ unsigned short :16; /* Bytes 390-391 */ /* Error Counters on Controller */ unsigned short ControllerMemoryErrors; /* Bytes 392-393 */ unsigned short ControllerHostCommandAbortsDone; /* Bytes 394-395 */ unsigned int :32; /* Bytes 396-399 */ /* Long Duration Activity Information */ unsigned short BackgroundInitializationsActive; /* Bytes 400-401 */ unsigned short LogicalDeviceInitializationsActive; /* Bytes 402-403 */ unsigned short PhysicalDeviceInitializationsActive; /* Bytes 404-405 */ unsigned short ConsistencyChecksActive; /* Bytes 406-407 */ unsigned short RebuildsActive; /* Bytes 408-409 */ unsigned short OnlineExpansionsActive; /* Bytes 410-411 */ unsigned short PatrolActivitiesActive; /* Bytes 412-413 */ unsigned short :16; /* Bytes 414-415 */ /* Flash ROM Information */ unsigned char FlashType; /* Byte 416 */ unsigned char :8; /* Byte 417 */ unsigned short FlashSizeMB; /* Bytes 418-419 */ unsigned int FlashLimit; /* Bytes 420-423 */ unsigned int FlashCount; /* Bytes 424-427 */ unsigned int :32; /* Bytes 428-431 */ unsigned char FlashTypeName[16]; /* Bytes 432-447 */ /* Firmware Run Time Information */ unsigned char RebuildRate; /* Byte 448 */ unsigned char BackgroundInitializationRate; /* Byte 449 */ unsigned char ForegroundInitializationRate; /* Byte 450 */ unsigned char ConsistencyCheckRate; /* Byte 451 */ unsigned int :32; /* Bytes 452-455 */ unsigned int MaximumDP; /* Bytes 456-459 */ unsigned int FreeDP; /* Bytes 460-463 */ unsigned int MaximumIOP; /* Bytes 464-467 */ unsigned int FreeIOP; /* Bytes 468-471 */ unsigned short MaximumCombLengthInBlocks; /* Bytes 472-473 */ unsigned short NumberOfConfigurationGroups; /* Bytes 474-475 */ boolean InstallationAbortStatus:1; /* Byte 476 Bit 0 */ boolean MaintenanceModeStatus:1; /* Byte 476 Bit 1 */ unsigned int :24; /* Bytes 476-479 */ unsigned char Reserved10[32]; /* Bytes 480-511 */ unsigned char Reserved11[512]; /* Bytes 512-1023 */}DAC960_V2_ControllerInfo_T;/* Define the DAC960 V2 Firmware Logical Device State type.*/typedef enum{ DAC960_V2_LogicalDevice_Online = 0x01, DAC960_V2_LogicalDevice_Offline = 0x08, DAC960_V2_LogicalDevice_Critical = 0x09}__attribute__ ((packed))DAC960_V2_LogicalDeviceState_T;/* Define the DAC960 V2 Firmware Get Logical Device Info reply structure.*/typedef struct DAC960_V2_LogicalDeviceInfo{ unsigned char :8; /* Byte 0 */ unsigned char Channel; /* Byte 1 */ unsigned char TargetID; /* Byte 2 */ unsigned char LogicalUnit; /* Byte 3 */ DAC960_V2_LogicalDeviceState_T LogicalDeviceState; /* Byte 4 */ unsigned char RAIDLevel; /* Byte 5 */ unsigned char StripeSize; /* Byte 6 */ unsigned char CacheLineSize; /* Byte 7 */ struct { enum { DAC960_V2_ReadCacheDisabled = 0x0, DAC960_V2_ReadCacheEnabled = 0x1, DAC960_V2_ReadAheadEnabled = 0x2, DAC960_V2_IntelligentReadAheadEnabled = 0x3, DAC960_V2_ReadCache_Last = 0x7 } __attribute__ ((packed)) ReadCache:3; /* Byte 8 Bits 0-2 */ enum { DAC960_V2_WriteCacheDisabled = 0x0, DAC960_V2_LogicalDeviceReadOnly = 0x1, DAC960_V2_WriteCacheEnabled = 0x2, DAC960_V2_IntelligentWriteCacheEnabled = 0x3, DAC960_V2_WriteCache_Last = 0x7 } __attribute__ ((packed)) WriteCache:3; /* Byte 8 Bits 3-5 */ boolean :1; /* Byte 8 Bit 6 */ boolean LogicalDeviceInitialized:1; /* Byte 8 Bit 7 */ } LogicalDeviceControl; /* Byte 8 */ /* Logical Device Operations Status */ boolean ConsistencyCheckInProgress:1; /* Byte 9 Bit 0 */ boolean RebuildInProgress:1; /* Byte 9 Bit 1 */ boolean BackgroundInitializationInProgress:1; /* Byte 9 Bit 2 */ boolean ForegroundInitializationInProgress:1; /* Byte 9 Bit 3 */ boolean DataMigrationInProgress:1; /* Byte 9 Bit 4 */ boolean PatrolOperationInProgress:1; /* Byte 9 Bit 5 */ unsigned char :2; /* Byte 9 Bits 6-7 */ unsigned char RAID5WriteUpdate; /* Byte 10 */ unsigned char RAID5Algorithm; /* Byte 11 */ unsigned short LogicalDeviceNumber; /* Bytes 12-13 */ /* BIOS Info */ boolean BIOSDisabled:1; /* Byte 14 Bit 0 */ boolean CDROMBootEnabled:1; /* Byte 14 Bit 1 */ boolean DriveCoercionEnabled:1; /* Byte 14 Bit 2 */ boolean WriteSameDisabled:1; /* Byte 14 Bit 3 */ boolean HBA_ModeEnabled:1; /* Byte 14 Bit 4 */ enum { DAC960_V2_Geometry_128_32 = 0x0, DAC960_V2_Geometry_255_63 = 0x1, DAC960_V2_Geometry_Reserved1 = 0x2, DAC960_V2_Geometry_Reserved2 = 0x3 } __attribute__ ((packed)) DriveGeometry:2; /* Byte 14 Bits 5-6 */ boolean SuperReadAheadEnabled:1; /* Byte 14 Bit 7 */ unsigned char :8; /* Byte 15 */ /* Error Counters */ unsigned short SoftErrors; /* Bytes 16-17 */ unsigned short CommandsFailed; /* Bytes 18-19 */ unsigned short HostCommandAbortsDone; /* Bytes 20-21 */ unsigned short DeferredWriteErrors; /* Bytes 22-23 */ unsigned int :32; /* Bytes 24-27 */ unsigned int :32; /* Bytes 28-31 */ /* Device Size Information */ unsigned short :16; /* Bytes 32-33 */ unsigned short DeviceBlockSizeInBytes; /* Bytes 34-35 */ unsigned int OriginalDeviceSize; /* Bytes 36-39 */ unsigned int ConfigurableDeviceSize; /* Bytes 40-43 */ unsigned int :32; /* Bytes 44-47 */ unsigned char LogicalDeviceName[32]; /* Bytes 48-79 */ unsigned char SCSI_InquiryData[36]; /* Bytes 80-115 */ unsigned char Reserved1[12]; /* Bytes 116-127 */ DAC960_ByteCount64_T LastReadBlockNumber; /* Bytes 128-135 */ DAC960_ByteCount64_T LastWrittenBlockNumber; /* Bytes 136-143 */ DAC960_ByteCount64_T ConsistencyCheckBlockNumber; /* Bytes 144-151 */ DAC960_ByteCount64_T RebuildBlockNumber; /* Bytes 152-159 */ DAC960_ByteCount64_T BackgroundInitializationBlockNumber; /* Bytes 160-167 */ DAC960_ByteCount64_T ForegroundInitializationBlockNumber; /* Bytes 168-175 */ DAC960_ByteCount64_T DataMigrationBlockNumber; /* Bytes 176-183 */ DAC960_ByteCount64_T PatrolOperationBlockNumber; /* Bytes 184-191 */ unsigned char Reserved2[64]; /* Bytes 192-255 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -