Re: [PATCH] libnvdimm: clean up command definitions
From: Jerry Hoemann
Date: Mon Aug 28 2017 - 16:50:41 EST
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@xxxxxxx>
> Reported-by: Yasunori Goto <y-goto@xxxxxxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
> 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
-----------------------------------------------------------------------------