On Thu, Apr 7, 2016 at 1:27 AM, Johannes Thumshirn <jthumshirn(a)suse.de> wrote:
On Mittwoch, 6. April 2016 17:53:49 CEST Dan Williams wrote:
> Provide simulated SMART data to enable the ndctl implementation of SMART
> data retrieval and parsing.
>
> The payload is defined here, "Section 4.1 SMART and Health Info
> (Function Index 1)":
>
>
http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf
>
> Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
> ---
[...]
> @@ -20,6 +20,35 @@ struct nd_cmd_smart {
> __u8 data[128];
> } __packed;
>
> +enum {
> + ND_SMART_HEALTH_VALID = 1 << 0,
> + ND_SMART_TEMP_VALID = 1 << 1,
> + ND_SMART_SPARES_VALID = 1 << 2,
> + ND_SMART_ALARM_VALID = 1 << 3,
> + ND_SMART_USED_VALID = 1 << 4,
> + ND_SMART_SHUTDOWN_VALID = 1 << 5,
> + ND_SMART_VENDOR_VALID = 1 << 6,
> + ND_SMART_TEMP_TRIP = 1 << 0,
> + ND_SMART_SPARE_TRIP = 1 << 1,
> + ND_SMART_NON_CRITICAL_HEALTH = 1 << 0,
> + ND_SMART_CRITICAL_HEALTH = 1 << 1,
> + ND_SMART_FATAL_HEALTH = 1 << 2,
> +};
Why not use BIT() instead of that 1 << x stuff and #define instead of the
abstract enum?
Can't use BIT() since that definition isn't exported in a user header.
I don't have a strong opinion of #define vs anonymous enum, I'll go
ahead and switch it over.