moel@324: /* moel@324: moel@344: This Source Code Form is subject to the terms of the Mozilla Public moel@344: License, v. 2.0. If a copy of the MPL was not distributed with this moel@344: file, You can obtain one at http://mozilla.org/MPL/2.0/. moel@324: moel@344: Copyright (C) 2009-2012 Michael Möller moel@344: Copyright (C) 2010 Paul Werelds moel@344: Copyright (C) 2011 Roland Reinl moel@344: moel@324: */ moel@324: moel@324: namespace OpenHardwareMonitor.Hardware.HDD { moel@324: using System.Collections.Generic; moel@324: moel@330: [NamePrefix(""), RequireSmart(0x01), RequireSmart(0x09), RequireSmart(0x0C), moel@330: RequireSmart(0xD1), RequireSmart(0xCE), RequireSmart(0xCF)] moel@324: internal class SSDIndilinx : AbstractHarddrive { moel@324: moel@324: private static readonly IEnumerable smartAttributes = moel@324: new List { moel@330: new SmartAttribute(0x01, SmartNames.ReadErrorRate), moel@330: new SmartAttribute(0x09, SmartNames.PowerOnHours), moel@330: new SmartAttribute(0x0C, SmartNames.PowerCycleCount), moel@330: new SmartAttribute(0xB8, SmartNames.InitialBadBlockCount), moel@330: new SmartAttribute(0xC3, SmartNames.ProgramFailure), moel@330: new SmartAttribute(0xC4, SmartNames.EraseFailure), moel@330: new SmartAttribute(0xC5, SmartNames.ReadFailure), moel@330: new SmartAttribute(0xC6, SmartNames.SectorsRead), moel@330: new SmartAttribute(0xC7, SmartNames.SectorsWritten), moel@330: new SmartAttribute(0xC8, SmartNames.ReadCommands), moel@330: new SmartAttribute(0xC9, SmartNames.WriteCommands), moel@330: new SmartAttribute(0xCA, SmartNames.BitErrors), moel@330: new SmartAttribute(0xCB, SmartNames.CorrectedErrors), moel@330: new SmartAttribute(0xCC, SmartNames.BadBlockFullFlag), moel@330: new SmartAttribute(0xCD, SmartNames.MaxCellCycles), moel@330: new SmartAttribute(0xCE, SmartNames.MinErase), moel@330: new SmartAttribute(0xCF, SmartNames.MaxErase), moel@330: new SmartAttribute(0xD0, SmartNames.AverageEraseCount), moel@330: new SmartAttribute(0xD1, SmartNames.RemainingLife, moel@330: null, SensorType.Level, 0), moel@330: new SmartAttribute(0xD2, SmartNames.UnknownUnique), moel@330: new SmartAttribute(0xD3, SmartNames.SataErrorCountCrc), moel@330: new SmartAttribute(0xD4, SmartNames.SataErrorCountHandshake) moel@330: }; moel@324: moel@325: public SSDIndilinx(ISmart smart, string name, string firmwareRevision, moel@325: int index, ISettings settings) moel@325: : base(smart, name, firmwareRevision, index, smartAttributes, settings) {} moel@324: } moel@324: } moel@324: moel@324: moel@324: