Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752066AbdFTQwc (ORCPT ); Tue, 20 Jun 2017 12:52:32 -0400 Received: from g2t1383g.austin.hpe.com ([15.233.16.89]:13595 "EHLO g2t1383g.austin.hpe.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751175AbdFTQv4 (ORCPT ); Tue, 20 Jun 2017 12:51:56 -0400 From: Jerry Hoemann To: dan.j.williams@intel.com Cc: linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org, Jerry Hoemann Subject: [PATCH v2 6/7] libnvdimm: New ACPI 6.2 DSM functions Date: Tue, 20 Jun 2017 10:51:25 -0600 Message-Id: <1f95797092f647a92ee382e80b9b739b18518ee3.1497939166.git.jerry.hoemann@hpe.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1662 Lines: 72 ACPI 6.2 added new NVDIMM root DSM functions. Define their data structures. Update the definition of nd_cmd_ars_cap to match the 6.2 spec. Add the new 6.2 functions names to nvdimm_bus_cmd_name. Signed-off-by: Jerry Hoemann --- include/uapi/linux/ndctl.h | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h index e23c37f..e15768f 100644 --- a/include/uapi/linux/ndctl.h +++ b/include/uapi/linux/ndctl.h @@ -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, -- 1.8.5.6