On Mon, Aug 28, 2017 at 1:50 PM, Jerry Hoemann <[email protected]> wrote: > > 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?
Yes. ndctl.h exports the ioctl command payloads, everything that goes inside of ND_CMD_CALL is defined by userspace headers. The libndctl-nfit.h header is proposed as a place to land vendor agnostic NFIT-defined payloads, and any vendor specific definitions would remain internal to libndctl as they are today. > Will libndctl-nfit.h be generally available and installed? Yes, that's the plan. > 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? Yes, that's the plan. It's a bug if libndctl-nfit.h is not generically clean for issuing the NFIT root device commands via some ND_CMD_CALL helpers from the base libndctl library. In other words libndctl-nfit.h defines the payload and libndctl defines some general helpers for issuing commands.

