libnvdimm: New ACPI 6.2 DSM functions
authorJerry Hoemann <jerry.hoemann@hpe.com>
Sat, 1 Jul 2017 03:41:29 +0000 (20:41 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sat, 1 Jul 2017 15:49:59 +0000 (08:49 -0700)
ACPI 6.2 added new NVDIMM root DSM functions.  Define their
data structures.

Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
include/uapi/linux/ndctl.h

index e23c37f..e15768f 100644 (file)
@@ -105,7 +105,8 @@ struct nd_cmd_ars_cap {
        __u32 status;
        __u32 max_ars_out;
        __u32 clear_err_unit;
-       __u32 reserved;
+       __u16 flags;
+       __u16 reserved;
 } __packed;
 
 struct nd_cmd_ars_start {
@@ -144,6 +145,43 @@ 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,