lkml.org 
[lkml]   [2017]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] libnvdimm: clean up command definitions

On Mon, Aug 28, 2017 at 08:45:32AM -0700, Dan Williams wrote:
> Remove the command payloads that do not have an associated libnvdimm
> ioctl. I.e. remove the payloads that would only ever be carried in the
> ND_CMD_CALL envelope. This prevents userspace from growing unnecessary
> dependencies on this kernel header when userspace already has everything
> it needs to craft and send these commands.

Userspace needs to include linux/ndctl.h to make the call as
that is where nd_cmd_pkg is defined.

So you want to have some structures defined in ndctl.h and other
defined in the to be created libndctl-nfit.h? Plus a third header
file for the HPE non-root calls?

Will libndctl-nfit.h be generally available and installed?
Will it be clean so that other applications can use it to get these
definitions? Or will it be loaded w/ a bunch of stuff only useful
to your ndctl command?


>
> Cc: Jerry Hoemann <jerry.hoemann@hpe.com>
> Reported-by: Yasunori Goto <y-goto@jp.fujitsu.com>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> ---
> include/uapi/linux/ndctl.h | 37 -------------------------------------
> 1 file changed, 37 deletions(-)
>
> diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
> index 6d3c54264d8e..3f03567631cb 100644
> --- a/include/uapi/linux/ndctl.h
> +++ b/include/uapi/linux/ndctl.h
> @@ -145,43 +145,6 @@ struct nd_cmd_clear_error {
> __u64 cleared;
> } __packed;
>
> -struct nd_cmd_trans_spa {
> - __u64 spa;
> - __u32 status;
> - __u8 flags;
> - __u8 _reserved[3];
> - __u64 trans_length;
> - __u32 num_nvdimms;
> - struct nd_nvdimm_device {
> - __u32 nfit_device_handle;
> - __u32 _reserved;
> - __u64 dpa;
> - } __packed devices[0];
> -
> -} __packed;
> -
> -struct nd_cmd_ars_err_inj {
> - __u64 err_inj_spa_range_base;
> - __u64 err_inj_spa_range_length;
> - __u8 err_inj_options;
> - __u32 status;
> -} __packed;
> -
> -struct nd_cmd_ars_err_inj_clr {
> - __u64 err_inj_clr_spa_range_base;
> - __u64 err_inj_clr_spa_range_length;
> - __u32 status;
> -} __packed;
> -
> -struct nd_cmd_ars_err_inj_stat {
> - __u32 status;
> - __u32 inj_err_rec_count;
> - struct nd_error_stat_query_record {
> - __u64 err_inj_stat_spa_range_base;
> - __u64 err_inj_stat_spa_range_length;
> - } __packed record[0];
> -} __packed;
> -
> enum {
> ND_CMD_IMPLEMENTED = 0,
>

--

-----------------------------------------------------------------------------
Jerry Hoemann Software Engineer Hewlett Packard Enterprise
-----------------------------------------------------------------------------

\
 
 \ /
  Last update: 2017-08-28 22:51    [W:0.085 / U:0.780 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site