extend libdiskstatus to support NVMe devices
The libdiskstatus library reads the SMART data from a disk drive and produces a data structure describing if any of the following SMART error conditions exist:
- power-on self test failures
- over temperature
- predicted failure asserted
This library is consumed by the disk-transport fmd plugin, which in turn will generate ereports that get diagnosed to disk faults. In order to detect SMART errors on NVMe devices we need to extend libdiskstatus to support reading and interpreting the appropriate log pages from NVMe devices.
From skimming the NVMe specification, the relevant SMART data is available on log page 0x02, the contents of which are described in section 22.214.171.124 of the spec.