Messages in this thread | | | Date | Mon, 28 Aug 2017 14:50:33 -0600 | From | Jerry Hoemann <> | Subject | Re: [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 -----------------------------------------------------------------------------
| |