Add IOCTL type 'P' to denote NVDIMM_TYPE_PASSTHRU. Add struct ndn_pkg which the pass thru IOCTL interfaces uses. ndn_pkg serves as a wrapper for the data being passed to the underlying DSM and specifies siz data in a uniform manner allowing the kernel to call the DSM without knowing specifics of the DSM. Signed-off-by: Jerry Hoemann <jerry.hoemann@xxxxxxx> --- include/uapi/linux/ndctl.h | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index 5b4a4be..1c81a99 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -15,6 +15,9 @@ #include <linux/types.h> +#define NVDIMM_TYPE_INTEL 'N' +#define NVDIMM_TYPE_PASSTHRU 'P' + struct nd_cmd_smart { __u32 status; __u8 data[128]; @@ -148,7 +151,8 @@ static inline const char *nvdimm_cmd_name(unsigned cmd) return "unknown"; } -#define ND_IOCTL 'N' +#define ND_IOCTL NVDIMM_TYPE_INTEL + #define ND_IOCTL_SMART _IOWR(ND_IOCTL, ND_CMD_SMART,\ struct nd_cmd_smart) @@ -204,4 +208,18 @@ enum ars_masks { ARS_STATUS_MASK = 0x0000FFFF, ARS_EXT_STATUS_SHIFT = 16, }; + + +struct ndn_pkg { + struct { + __u8 dsm_uuid[16]; + __u32 dsm_in; /* size of _DSM input */ + __u32 dsm_out; /* size of user buffer */ + __u32 dsm_rev; /* revision of dsm call */ + __u32 res[8]; /* reserved must be zero */ + __u32 dsm_size; /* size _DSM would write */ + } h; + unsigned char buf[]; +} __packed; + #endif /* __NDCTL_H__ */ -- 1.7.11.3 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html