105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris/**************************************************************************** 205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris **************************************************************************** 305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** 405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** This header was automatically generated from a Linux kernel header 505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** of the same name, to make information necessary for userspace to 605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** call into the kernel available to libc. It contains only constants, 705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** structures, and macros generated from the original header, and thus, 805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** contains no copyrightable information. 905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** 1005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** To edit the content of this header, modify the corresponding 1105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 1205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** run bionic/libc/kernel/tools/update_all.py 1305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** 1405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** Any manual change here will be lost the next time this script will 1505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** be run. You've been warned! 1605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris *** 1705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris **************************************************************************** 1805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ****************************************************************************/ 1905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#ifndef __NDCTL_H__ 2005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define __NDCTL_H__ 2105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#include <linux/types.h> 2205d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_smart { 2305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 2405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 data[128]; 2505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 26106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_SMART_HEALTH_VALID (1 << 0) 276a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_SPARES_VALID (1 << 1) 286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_USED_VALID (1 << 2) 296a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_TEMP_VALID (1 << 3) 306a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_CTEMP_VALID (1 << 4) 316a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_ALARM_VALID (1 << 9) 326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_SHUTDOWN_VALID (1 << 10) 336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_VENDOR_VALID (1 << 11) 346a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_SPARE_TRIP (1 << 0) 356a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_TEMP_TRIP (1 << 1) 366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define ND_SMART_CTEMP_TRIP (1 << 2) 37106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_SMART_NON_CRITICAL_HEALTH (1 << 0) 38106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_SMART_CRITICAL_HEALTH (1 << 1) 39106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_SMART_FATAL_HEALTH (1 << 2) 40106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_smart_payload { 41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 flags; 42106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 reserved0[4]; 436a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 health; 44106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 spares; 45106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 life_used; 466a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 alarm_flags; 476a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u16 temperature; 486a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u16 ctrl_temperature; 496a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 reserved1[15]; 50106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 shutdown_state; 51106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 vendor_size; 526a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 vendor_data[92]; 53106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris} __packed; 54106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_cmd_smart_threshold { 5505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 5605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 data[8]; 5705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 58106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_smart_threshold_payload { 596a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 alarm_control; 606a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u8 reserved0; 61106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 temperature; 62106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 spares; 63106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 reserved[3]; 64106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris} __packed; 65106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_cmd_dimm_flags { 6605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 6705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 flags; 6805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 6905d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_get_config_size { 7005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 7105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 config_size; 7205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 max_xfer; 7305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 7405d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_get_config_data_hdr { 7505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 in_offset; 7605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 in_length; 7705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 7805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 out_buf[0]; 7905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 8005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_set_config_hdr { 8105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 in_offset; 8205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 in_length; 8305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 in_buf[0]; 8405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 8505d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_vendor_hdr { 8605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 opcode; 8705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 in_length; 8805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 in_buf[0]; 8905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 9005d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_vendor_tail { 9105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 9205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 out_length; 9305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u8 out_buf[0]; 9405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 9505d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_ars_cap { 9605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 address; 9705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 length; 9805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 9905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 max_ars_out; 100106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 clear_err_unit; 1011308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris __u16 flags; 1021308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris __u16 reserved; 10305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 104106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_cmd_ars_start { 10505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 address; 10605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 length; 10705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u16 type; 108106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 flags; 109106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 reserved[5]; 11005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 111106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 scrub_time; 11205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 11305d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct nd_cmd_ars_status { 11405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 status; 11505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 out_length; 11605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 address; 11705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 length; 118106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 restart_address; 119106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 restart_length; 120106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 type; 121106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 flags; 12205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u32 num_records; 12305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris struct nd_ars_record { 124106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 handle; 125106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 reserved; 12605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 err_address; 12705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __u64 length; 12805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris } __packed records[0]; 12905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __packed; 130106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_cmd_clear_error { 131106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 address; 132106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 length; 133106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 status; 134106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 reserved[4]; 135106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 cleared; 136106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris} __packed; 13705d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum { 13805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_IMPLEMENTED = 0, 13905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_ARS_CAP = 1, 140106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris ND_CMD_ARS_START = 2, 14105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_ARS_STATUS = 3, 142106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris ND_CMD_CLEAR_ERROR = 4, 14305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_SMART = 1, 14405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_SMART_THRESHOLD = 2, 14505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_DIMM_FLAGS = 3, 14605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_GET_CONFIG_SIZE = 4, 14705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_GET_CONFIG_DATA = 5, 14805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_SET_CONFIG_DATA = 6, 14905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, 15005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_VENDOR_EFFECT_LOG = 8, 15105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_CMD_VENDOR = 9, 152106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris ND_CMD_CALL = 10, 15305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 15405d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum { 15505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_ARS_VOLATILE = 1, 15605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_ARS_PERSISTENT = 2, 1571308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris ND_ARS_RETURN_PREV_DATA = 1 << 1, 158525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris ND_CONFIG_LOCKED = 1, 15905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 16005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL 'N' 16105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_SMART _IOWR(ND_IOCTL, ND_CMD_SMART, struct nd_cmd_smart) 16205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_SMART_THRESHOLD _IOWR(ND_IOCTL, ND_CMD_SMART_THRESHOLD, struct nd_cmd_smart_threshold) 16305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_DIMM_FLAGS _IOWR(ND_IOCTL, ND_CMD_DIMM_FLAGS, struct nd_cmd_dimm_flags) 16405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_GET_CONFIG_SIZE _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_SIZE, struct nd_cmd_get_config_size) 16505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_GET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_DATA, struct nd_cmd_get_config_data_hdr) 16605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_SET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_SET_CONFIG_DATA, struct nd_cmd_set_config_hdr) 16705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_VENDOR _IOWR(ND_IOCTL, ND_CMD_VENDOR, struct nd_cmd_vendor_hdr) 16805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_ARS_CAP _IOWR(ND_IOCTL, ND_CMD_ARS_CAP, struct nd_cmd_ars_cap) 16905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_ARS_START _IOWR(ND_IOCTL, ND_CMD_ARS_START, struct nd_cmd_ars_start) 17005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_IOCTL_ARS_STATUS _IOWR(ND_IOCTL, ND_CMD_ARS_STATUS, struct nd_cmd_ars_status) 171106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_IOCTL_CLEAR_ERROR _IOWR(ND_IOCTL, ND_CMD_CLEAR_ERROR, struct nd_cmd_clear_error) 17205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_DIMM 1 17305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_REGION_PMEM 2 17405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_REGION_BLK 3 17505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_NAMESPACE_IO 4 17605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_NAMESPACE_PMEM 5 17705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define ND_DEVICE_NAMESPACE_BLK 6 178106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_DEVICE_DAX_PMEM 7 17905d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum nd_driver_flags { 18005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_DRIVER_DIMM = 1 << ND_DEVICE_DIMM, 18105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_DRIVER_REGION_PMEM = 1 << ND_DEVICE_REGION_PMEM, 182106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris ND_DRIVER_REGION_BLK = 1 << ND_DEVICE_REGION_BLK, 18305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_DRIVER_NAMESPACE_IO = 1 << ND_DEVICE_NAMESPACE_IO, 18405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_DRIVER_NAMESPACE_PMEM = 1 << ND_DEVICE_NAMESPACE_PMEM, 18505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_DRIVER_NAMESPACE_BLK = 1 << ND_DEVICE_NAMESPACE_BLK, 186106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris ND_DRIVER_DAX_PMEM = 1 << ND_DEVICE_DAX_PMEM, 187106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 18805d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum { 18905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ND_MIN_NAMESPACE_SIZE = 0x00400000, 19005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 19105d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisenum ars_masks { 19205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ARS_STATUS_MASK = 0x0000FFFF, 19305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris ARS_EXT_STATUS_SHIFT = 16, 19405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 195106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct nd_cmd_pkg { 196106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 nd_family; 197106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 nd_command; 198106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nd_size_in; 199106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nd_size_out; 200106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nd_reserved2[9]; 201106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 nd_fw_size; 202106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris unsigned char nd_payload[]; 203106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 204106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NVDIMM_FAMILY_INTEL 0 205106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NVDIMM_FAMILY_HPE1 1 206106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define NVDIMM_FAMILY_HPE2 2 20749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define NVDIMM_FAMILY_MSFT 3 208106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL, struct nd_cmd_pkg) 209106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 210