xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/ndctl.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /*
2*f80ad8b4SAndroid Build Coastguard Worker  * Copyright (c) 2014-2016, Intel Corporation.
3*f80ad8b4SAndroid Build Coastguard Worker  *
4*f80ad8b4SAndroid Build Coastguard Worker  * This program is free software; you can redistribute it and/or modify it
5*f80ad8b4SAndroid Build Coastguard Worker  * under the terms and conditions of the GNU Lesser General Public License,
6*f80ad8b4SAndroid Build Coastguard Worker  * version 2.1, as published by the Free Software Foundation.
7*f80ad8b4SAndroid Build Coastguard Worker  *
8*f80ad8b4SAndroid Build Coastguard Worker  * This program is distributed in the hope it will be useful, but WITHOUT ANY
9*f80ad8b4SAndroid Build Coastguard Worker  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10*f80ad8b4SAndroid Build Coastguard Worker  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
11*f80ad8b4SAndroid Build Coastguard Worker  * more details.
12*f80ad8b4SAndroid Build Coastguard Worker  */
13*f80ad8b4SAndroid Build Coastguard Worker #ifndef __NDCTL_H__
14*f80ad8b4SAndroid Build Coastguard Worker #define __NDCTL_H__
15*f80ad8b4SAndroid Build Coastguard Worker 
16*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
17*f80ad8b4SAndroid Build Coastguard Worker 
18*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_dimm_flags {
19*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
20*f80ad8b4SAndroid Build Coastguard Worker 	__u32 flags;
21*f80ad8b4SAndroid Build Coastguard Worker } __packed;
22*f80ad8b4SAndroid Build Coastguard Worker 
23*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_get_config_size {
24*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
25*f80ad8b4SAndroid Build Coastguard Worker 	__u32 config_size;
26*f80ad8b4SAndroid Build Coastguard Worker 	__u32 max_xfer;
27*f80ad8b4SAndroid Build Coastguard Worker } __packed;
28*f80ad8b4SAndroid Build Coastguard Worker 
29*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_get_config_data_hdr {
30*f80ad8b4SAndroid Build Coastguard Worker 	__u32 in_offset;
31*f80ad8b4SAndroid Build Coastguard Worker 	__u32 in_length;
32*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
33*f80ad8b4SAndroid Build Coastguard Worker 	__u8 out_buf[];
34*f80ad8b4SAndroid Build Coastguard Worker } __packed;
35*f80ad8b4SAndroid Build Coastguard Worker 
36*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_set_config_hdr {
37*f80ad8b4SAndroid Build Coastguard Worker 	__u32 in_offset;
38*f80ad8b4SAndroid Build Coastguard Worker 	__u32 in_length;
39*f80ad8b4SAndroid Build Coastguard Worker 	__u8 in_buf[];
40*f80ad8b4SAndroid Build Coastguard Worker } __packed;
41*f80ad8b4SAndroid Build Coastguard Worker 
42*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_vendor_hdr {
43*f80ad8b4SAndroid Build Coastguard Worker 	__u32 opcode;
44*f80ad8b4SAndroid Build Coastguard Worker 	__u32 in_length;
45*f80ad8b4SAndroid Build Coastguard Worker 	__u8 in_buf[];
46*f80ad8b4SAndroid Build Coastguard Worker } __packed;
47*f80ad8b4SAndroid Build Coastguard Worker 
48*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_vendor_tail {
49*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
50*f80ad8b4SAndroid Build Coastguard Worker 	__u32 out_length;
51*f80ad8b4SAndroid Build Coastguard Worker 	__u8 out_buf[];
52*f80ad8b4SAndroid Build Coastguard Worker } __packed;
53*f80ad8b4SAndroid Build Coastguard Worker 
54*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_ars_cap {
55*f80ad8b4SAndroid Build Coastguard Worker 	__u64 address;
56*f80ad8b4SAndroid Build Coastguard Worker 	__u64 length;
57*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
58*f80ad8b4SAndroid Build Coastguard Worker 	__u32 max_ars_out;
59*f80ad8b4SAndroid Build Coastguard Worker 	__u32 clear_err_unit;
60*f80ad8b4SAndroid Build Coastguard Worker 	__u16 flags;
61*f80ad8b4SAndroid Build Coastguard Worker 	__u16 reserved;
62*f80ad8b4SAndroid Build Coastguard Worker } __packed;
63*f80ad8b4SAndroid Build Coastguard Worker 
64*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_ars_start {
65*f80ad8b4SAndroid Build Coastguard Worker 	__u64 address;
66*f80ad8b4SAndroid Build Coastguard Worker 	__u64 length;
67*f80ad8b4SAndroid Build Coastguard Worker 	__u16 type;
68*f80ad8b4SAndroid Build Coastguard Worker 	__u8 flags;
69*f80ad8b4SAndroid Build Coastguard Worker 	__u8 reserved[5];
70*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
71*f80ad8b4SAndroid Build Coastguard Worker 	__u32 scrub_time;
72*f80ad8b4SAndroid Build Coastguard Worker } __packed;
73*f80ad8b4SAndroid Build Coastguard Worker 
74*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_ars_status {
75*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
76*f80ad8b4SAndroid Build Coastguard Worker 	__u32 out_length;
77*f80ad8b4SAndroid Build Coastguard Worker 	__u64 address;
78*f80ad8b4SAndroid Build Coastguard Worker 	__u64 length;
79*f80ad8b4SAndroid Build Coastguard Worker 	__u64 restart_address;
80*f80ad8b4SAndroid Build Coastguard Worker 	__u64 restart_length;
81*f80ad8b4SAndroid Build Coastguard Worker 	__u16 type;
82*f80ad8b4SAndroid Build Coastguard Worker 	__u16 flags;
83*f80ad8b4SAndroid Build Coastguard Worker 	__u32 num_records;
84*f80ad8b4SAndroid Build Coastguard Worker 	struct nd_ars_record {
85*f80ad8b4SAndroid Build Coastguard Worker 		__u32 handle;
86*f80ad8b4SAndroid Build Coastguard Worker 		__u32 reserved;
87*f80ad8b4SAndroid Build Coastguard Worker 		__u64 err_address;
88*f80ad8b4SAndroid Build Coastguard Worker 		__u64 length;
89*f80ad8b4SAndroid Build Coastguard Worker 	} __packed records[];
90*f80ad8b4SAndroid Build Coastguard Worker } __packed;
91*f80ad8b4SAndroid Build Coastguard Worker 
92*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_clear_error {
93*f80ad8b4SAndroid Build Coastguard Worker 	__u64 address;
94*f80ad8b4SAndroid Build Coastguard Worker 	__u64 length;
95*f80ad8b4SAndroid Build Coastguard Worker 	__u32 status;
96*f80ad8b4SAndroid Build Coastguard Worker 	__u8 reserved[4];
97*f80ad8b4SAndroid Build Coastguard Worker 	__u64 cleared;
98*f80ad8b4SAndroid Build Coastguard Worker } __packed;
99*f80ad8b4SAndroid Build Coastguard Worker 
100*f80ad8b4SAndroid Build Coastguard Worker enum {
101*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_IMPLEMENTED = 0,
102*f80ad8b4SAndroid Build Coastguard Worker 
103*f80ad8b4SAndroid Build Coastguard Worker 	/* bus commands */
104*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_ARS_CAP = 1,
105*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_ARS_START = 2,
106*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_ARS_STATUS = 3,
107*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_CLEAR_ERROR = 4,
108*f80ad8b4SAndroid Build Coastguard Worker 
109*f80ad8b4SAndroid Build Coastguard Worker 	/* per-dimm commands */
110*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_SMART = 1,
111*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_SMART_THRESHOLD = 2,
112*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_DIMM_FLAGS = 3,
113*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_GET_CONFIG_SIZE = 4,
114*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_GET_CONFIG_DATA = 5,
115*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_SET_CONFIG_DATA = 6,
116*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7,
117*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_VENDOR_EFFECT_LOG = 8,
118*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_VENDOR = 9,
119*f80ad8b4SAndroid Build Coastguard Worker 	ND_CMD_CALL = 10,
120*f80ad8b4SAndroid Build Coastguard Worker };
121*f80ad8b4SAndroid Build Coastguard Worker 
122*f80ad8b4SAndroid Build Coastguard Worker enum {
123*f80ad8b4SAndroid Build Coastguard Worker 	ND_ARS_VOLATILE = 1,
124*f80ad8b4SAndroid Build Coastguard Worker 	ND_ARS_PERSISTENT = 2,
125*f80ad8b4SAndroid Build Coastguard Worker 	ND_ARS_RETURN_PREV_DATA = 1 << 1,
126*f80ad8b4SAndroid Build Coastguard Worker 	ND_CONFIG_LOCKED = 1,
127*f80ad8b4SAndroid Build Coastguard Worker };
128*f80ad8b4SAndroid Build Coastguard Worker 
nvdimm_bus_cmd_name(unsigned cmd)129*f80ad8b4SAndroid Build Coastguard Worker static inline const char *nvdimm_bus_cmd_name(unsigned cmd)
130*f80ad8b4SAndroid Build Coastguard Worker {
131*f80ad8b4SAndroid Build Coastguard Worker 	switch (cmd) {
132*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_ARS_CAP:		return "ars_cap";
133*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_ARS_START:		return "ars_start";
134*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_ARS_STATUS:		return "ars_status";
135*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_CLEAR_ERROR:	return "clear_error";
136*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_CALL:		return "cmd_call";
137*f80ad8b4SAndroid Build Coastguard Worker 	default:			return "unknown";
138*f80ad8b4SAndroid Build Coastguard Worker 	}
139*f80ad8b4SAndroid Build Coastguard Worker }
140*f80ad8b4SAndroid Build Coastguard Worker 
nvdimm_cmd_name(unsigned cmd)141*f80ad8b4SAndroid Build Coastguard Worker static inline const char *nvdimm_cmd_name(unsigned cmd)
142*f80ad8b4SAndroid Build Coastguard Worker {
143*f80ad8b4SAndroid Build Coastguard Worker 	switch (cmd) {
144*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_SMART:			return "smart";
145*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_SMART_THRESHOLD:		return "smart_thresh";
146*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_DIMM_FLAGS:			return "flags";
147*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_GET_CONFIG_SIZE:		return "get_size";
148*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_GET_CONFIG_DATA:		return "get_data";
149*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_SET_CONFIG_DATA:		return "set_data";
150*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_VENDOR_EFFECT_LOG_SIZE:	return "effect_size";
151*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_VENDOR_EFFECT_LOG:		return "effect_log";
152*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_VENDOR:			return "vendor";
153*f80ad8b4SAndroid Build Coastguard Worker 	case ND_CMD_CALL:			return "cmd_call";
154*f80ad8b4SAndroid Build Coastguard Worker 	default:				return "unknown";
155*f80ad8b4SAndroid Build Coastguard Worker 	}
156*f80ad8b4SAndroid Build Coastguard Worker }
157*f80ad8b4SAndroid Build Coastguard Worker 
158*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL 'N'
159*f80ad8b4SAndroid Build Coastguard Worker 
160*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_DIMM_FLAGS		_IOWR(ND_IOCTL, ND_CMD_DIMM_FLAGS,\
161*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_dimm_flags)
162*f80ad8b4SAndroid Build Coastguard Worker 
163*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_GET_CONFIG_SIZE	_IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_SIZE,\
164*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_get_config_size)
165*f80ad8b4SAndroid Build Coastguard Worker 
166*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_GET_CONFIG_DATA	_IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_DATA,\
167*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_get_config_data_hdr)
168*f80ad8b4SAndroid Build Coastguard Worker 
169*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_SET_CONFIG_DATA	_IOWR(ND_IOCTL, ND_CMD_SET_CONFIG_DATA,\
170*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_set_config_hdr)
171*f80ad8b4SAndroid Build Coastguard Worker 
172*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_VENDOR			_IOWR(ND_IOCTL, ND_CMD_VENDOR,\
173*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_vendor_hdr)
174*f80ad8b4SAndroid Build Coastguard Worker 
175*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_ARS_CAP		_IOWR(ND_IOCTL, ND_CMD_ARS_CAP,\
176*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_ars_cap)
177*f80ad8b4SAndroid Build Coastguard Worker 
178*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_ARS_START		_IOWR(ND_IOCTL, ND_CMD_ARS_START,\
179*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_ars_start)
180*f80ad8b4SAndroid Build Coastguard Worker 
181*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_ARS_STATUS		_IOWR(ND_IOCTL, ND_CMD_ARS_STATUS,\
182*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_ars_status)
183*f80ad8b4SAndroid Build Coastguard Worker 
184*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_CLEAR_ERROR		_IOWR(ND_IOCTL, ND_CMD_CLEAR_ERROR,\
185*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_clear_error)
186*f80ad8b4SAndroid Build Coastguard Worker 
187*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_DIMM 1            /* nd_dimm: container for "config data" */
188*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_REGION_PMEM 2     /* nd_region: (parent of PMEM namespaces) */
189*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_REGION_BLK 3      /* nd_region: (parent of BLK namespaces) */
190*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_NAMESPACE_IO 4    /* legacy persistent memory */
191*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_NAMESPACE_PMEM 5  /* PMEM namespace (may alias with BLK) */
192*f80ad8b4SAndroid Build Coastguard Worker #define ND_DEVICE_DAX_PMEM 7        /* Device DAX interface to pmem */
193*f80ad8b4SAndroid Build Coastguard Worker 
194*f80ad8b4SAndroid Build Coastguard Worker enum nd_driver_flags {
195*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_DIMM            = 1 << ND_DEVICE_DIMM,
196*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_REGION_PMEM     = 1 << ND_DEVICE_REGION_PMEM,
197*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_REGION_BLK      = 1 << ND_DEVICE_REGION_BLK,
198*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_NAMESPACE_IO    = 1 << ND_DEVICE_NAMESPACE_IO,
199*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_NAMESPACE_PMEM  = 1 << ND_DEVICE_NAMESPACE_PMEM,
200*f80ad8b4SAndroid Build Coastguard Worker 	ND_DRIVER_DAX_PMEM	  = 1 << ND_DEVICE_DAX_PMEM,
201*f80ad8b4SAndroid Build Coastguard Worker };
202*f80ad8b4SAndroid Build Coastguard Worker 
203*f80ad8b4SAndroid Build Coastguard Worker enum ars_masks {
204*f80ad8b4SAndroid Build Coastguard Worker 	ARS_STATUS_MASK = 0x0000FFFF,
205*f80ad8b4SAndroid Build Coastguard Worker 	ARS_EXT_STATUS_SHIFT = 16,
206*f80ad8b4SAndroid Build Coastguard Worker };
207*f80ad8b4SAndroid Build Coastguard Worker 
208*f80ad8b4SAndroid Build Coastguard Worker /*
209*f80ad8b4SAndroid Build Coastguard Worker  * struct nd_cmd_pkg
210*f80ad8b4SAndroid Build Coastguard Worker  *
211*f80ad8b4SAndroid Build Coastguard Worker  * is a wrapper to a quasi pass thru interface for invoking firmware
212*f80ad8b4SAndroid Build Coastguard Worker  * associated with nvdimms.
213*f80ad8b4SAndroid Build Coastguard Worker  *
214*f80ad8b4SAndroid Build Coastguard Worker  * INPUT PARAMETERS
215*f80ad8b4SAndroid Build Coastguard Worker  *
216*f80ad8b4SAndroid Build Coastguard Worker  * nd_family corresponds to the firmware (e.g. DSM) interface.
217*f80ad8b4SAndroid Build Coastguard Worker  *
218*f80ad8b4SAndroid Build Coastguard Worker  * nd_command are the function index advertised by the firmware.
219*f80ad8b4SAndroid Build Coastguard Worker  *
220*f80ad8b4SAndroid Build Coastguard Worker  * nd_size_in is the size of the input parameters being passed to firmware
221*f80ad8b4SAndroid Build Coastguard Worker  *
222*f80ad8b4SAndroid Build Coastguard Worker  * OUTPUT PARAMETERS
223*f80ad8b4SAndroid Build Coastguard Worker  *
224*f80ad8b4SAndroid Build Coastguard Worker  * nd_fw_size is the size of the data firmware wants to return for
225*f80ad8b4SAndroid Build Coastguard Worker  * the call.  If nd_fw_size is greater than size of nd_size_out, only
226*f80ad8b4SAndroid Build Coastguard Worker  * the first nd_size_out bytes are returned.
227*f80ad8b4SAndroid Build Coastguard Worker  */
228*f80ad8b4SAndroid Build Coastguard Worker 
229*f80ad8b4SAndroid Build Coastguard Worker struct nd_cmd_pkg {
230*f80ad8b4SAndroid Build Coastguard Worker 	__u64   nd_family;		/* family of commands */
231*f80ad8b4SAndroid Build Coastguard Worker 	__u64   nd_command;
232*f80ad8b4SAndroid Build Coastguard Worker 	__u32   nd_size_in;		/* INPUT: size of input args */
233*f80ad8b4SAndroid Build Coastguard Worker 	__u32   nd_size_out;		/* INPUT: size of payload */
234*f80ad8b4SAndroid Build Coastguard Worker 	__u32   nd_reserved2[9];	/* reserved must be zero */
235*f80ad8b4SAndroid Build Coastguard Worker 	__u32   nd_fw_size;		/* OUTPUT: size fw wants to return */
236*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char nd_payload[];	/* Contents of call      */
237*f80ad8b4SAndroid Build Coastguard Worker };
238*f80ad8b4SAndroid Build Coastguard Worker 
239*f80ad8b4SAndroid Build Coastguard Worker /* These NVDIMM families represent pre-standardization command sets */
240*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_INTEL 0
241*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_HPE1 1
242*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_HPE2 2
243*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_MSFT 3
244*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_HYPERV 4
245*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_PAPR 5
246*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_PAPR
247*f80ad8b4SAndroid Build Coastguard Worker 
248*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_BUS_FAMILY_NFIT 0
249*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_BUS_FAMILY_INTEL 1
250*f80ad8b4SAndroid Build Coastguard Worker #define NVDIMM_BUS_FAMILY_MAX NVDIMM_BUS_FAMILY_INTEL
251*f80ad8b4SAndroid Build Coastguard Worker 
252*f80ad8b4SAndroid Build Coastguard Worker #define ND_IOCTL_CALL			_IOWR(ND_IOCTL, ND_CMD_CALL,\
253*f80ad8b4SAndroid Build Coastguard Worker 					struct nd_cmd_pkg)
254*f80ad8b4SAndroid Build Coastguard Worker 
255*f80ad8b4SAndroid Build Coastguard Worker #endif /* __NDCTL_H__ */
256