lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 7 Apr 2016 09:41:38 -0700
From:	Dan Williams <dan.j.williams@...el.com>
To:	Johannes Thumshirn <jthumshirn@...e.de>
Cc:	"linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
	Linux ACPI <linux-acpi@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] libnvdimm, test: add mock SMART data payload

On Thu, Apr 7, 2016 at 1:27 AM, Johannes Thumshirn <jthumshirn@...e.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@...el.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.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ