blob: 6dd7a80ce5497aa34d931b531ff1beddce0d228b [file] [log] [blame]
bellard31e31b82003-02-18 22:55:36 +00001STRUCT_SPECIAL(termios)
2
3STRUCT(winsize,
4 TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT)
5
6STRUCT(serial_multiport_struct,
7 TYPE_INT, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR,
ths5fafdf22007-09-16 21:08:06 +00008 TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT,
bellard31e31b82003-02-18 22:55:36 +00009 MK_ARRAY(TYPE_INT, 32))
10
11STRUCT(serial_icounter_struct,
12 TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, MK_ARRAY(TYPE_INT, 16))
13
14STRUCT(sockaddr,
15 TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
16
17STRUCT(rtentry,
ths5fafdf22007-09-16 21:08:06 +000018 TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
19 TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
bellard31e31b82003-02-18 22:55:36 +000020 TYPE_ULONG, TYPE_ULONG, TYPE_SHORT)
21
22STRUCT(ifmap,
ths5fafdf22007-09-16 21:08:06 +000023 TYPE_ULONG, TYPE_ULONG, TYPE_SHORT, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR,
bellard31e31b82003-02-18 22:55:36 +000024 /* Spare 3 bytes */
25 TYPE_CHAR, TYPE_CHAR, TYPE_CHAR)
26
27/* The *_ifreq_list arrays deal with the fact that struct ifreq has unions */
28
29STRUCT(sockaddr_ifreq,
30 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr))
ths3b46e622007-09-17 08:09:54 +000031
bellard31e31b82003-02-18 22:55:36 +000032STRUCT(short_ifreq,
33 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_SHORT)
34
35STRUCT(int_ifreq,
36 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT)
37
38STRUCT(ifmap_ifreq,
39 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_ifmap))
40
41STRUCT(char_ifreq,
42 MK_ARRAY(TYPE_CHAR, IFNAMSIZ),
43 MK_ARRAY(TYPE_CHAR, IFNAMSIZ))
44
45STRUCT(ptr_ifreq,
46 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID)
47
48STRUCT(ifconf,
49 TYPE_INT, TYPE_PTRVOID)
50
51STRUCT(arpreq,
ths5fafdf22007-09-16 21:08:06 +000052 MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr),
bellard31e31b82003-02-18 22:55:36 +000053 MK_ARRAY(TYPE_CHAR, 16))
54
55STRUCT(arpreq_old,
56 MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr))
57
58STRUCT(cdrom_read_audio,
59 TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_PTRVOID,
60 TYPE_NULL)
61
62STRUCT(hd_geometry,
63 TYPE_CHAR, TYPE_CHAR, TYPE_SHORT, TYPE_ULONG)
bellard1a9353d2003-03-16 20:28:50 +000064
65STRUCT(dirent,
66 TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256))
bellard0221cfc2003-05-10 12:38:16 +000067
68STRUCT(kbentry,
69 TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)
bellard2521d692003-06-15 19:58:13 +000070
pbrook53a59602006-03-25 19:31:22 +000071STRUCT(kbsentry,
72 TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
73
bellard2521d692003-06-15 19:58:13 +000074STRUCT(audio_buf_info,
75 TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
76
77STRUCT(count_info,
78 TYPE_INT, TYPE_INT, TYPE_INT)
79
Peter Maydell5f723072012-07-23 08:06:15 +000080STRUCT(buffmem_desc,
81 TYPE_PTRVOID, TYPE_INT)
82
bellard2521d692003-06-15 19:58:13 +000083STRUCT(mixer_info,
84 MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
balrogb8005912008-04-26 14:44:49 +000085
Filip Bozuta1c4c6fc2020-01-15 20:36:41 +010086STRUCT(snd_timer_id,
87 TYPE_INT, /* dev_class */
88 TYPE_INT, /* dev_sclass */
89 TYPE_INT, /* card */
90 TYPE_INT, /* device */
91 TYPE_INT) /* subdevice */
92
Filip Bozutaaca77082020-01-15 20:36:43 +010093STRUCT(snd_timer_ginfo,
94 MK_STRUCT(STRUCT_snd_timer_id), /* tid */
95 TYPE_INT, /* flags */
96 TYPE_INT, /* card */
97 MK_ARRAY(TYPE_CHAR, 64), /* id */
98 MK_ARRAY(TYPE_CHAR, 80), /* name */
99 TYPE_ULONG, /* reserved0 */
100 TYPE_ULONG, /* resolution */
101 TYPE_ULONG, /* resolution_min */
102 TYPE_ULONG, /* resolution_max */
103 TYPE_INT, /* clients */
104 MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
105
106STRUCT(snd_timer_gparams,
107 MK_STRUCT(STRUCT_snd_timer_id), /* tid */
108 TYPE_ULONG, /* period_num */
109 TYPE_ULONG, /* period_den */
110 MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
111
112STRUCT(snd_timer_gstatus,
113 MK_STRUCT(STRUCT_snd_timer_id), /* tid */
114 TYPE_ULONG, /* resolution */
115 TYPE_ULONG, /* resolution_num */
116 TYPE_ULONG, /* resolution_den */
117 MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
118
Filip Bozutad22edf02020-01-15 20:36:44 +0100119STRUCT(snd_timer_select,
120 MK_STRUCT(STRUCT_snd_timer_id), /* id */
121 MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
122
Filip Bozutafe333022020-01-15 20:36:45 +0100123STRUCT(snd_timer_info,
124 TYPE_INT, /* flags */
125 TYPE_INT, /* card */
126 MK_ARRAY(TYPE_CHAR, 64), /* id */
127 MK_ARRAY(TYPE_CHAR, 80), /* name */
128 TYPE_ULONG, /* reserved0 */
129 TYPE_ULONG, /* resolution */
130 MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
131
132STRUCT(snd_timer_params,
133 TYPE_INT, /* flags */
134 TYPE_INT, /* ticks */
135 TYPE_INT, /* queue_size */
136 TYPE_INT, /* reserved0 */
137 TYPE_INT, /* filter */
138 MK_ARRAY(TYPE_CHAR, 60)) /* reserved */
139
Filip Bozutaa20a7c22020-06-19 14:47:26 +0200140#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
141STRUCT(timeval,
142 TYPE_LONG, /* tv_sec */
143 TYPE_INT) /* tv_usec */
144
145STRUCT(_kernel_sock_timeval,
146 TYPE_LONG, /* tv_sec */
147 TYPE_INT) /* tv_usec */
148#else
149STRUCT(timeval,
150 TYPE_LONG, /* tv_sec */
151 TYPE_LONG) /* tv_usec */
152
153STRUCT(_kernel_sock_timeval,
154 TYPE_LONGLONG, /* tv_sec */
155 TYPE_LONGLONG) /* tv_usec */
156#endif
157
Filip Bozutafe333022020-01-15 20:36:45 +0100158STRUCT(timespec,
159 TYPE_LONG, /* tv_sec */
160 TYPE_LONG) /* tv_nsec */
161
Filip Bozutaa20a7c22020-06-19 14:47:26 +0200162STRUCT(_kernel_timespec,
163 TYPE_LONGLONG, /* tv_sec */
164 TYPE_LONGLONG) /* tv_nsec */
165
Filip Bozutafe333022020-01-15 20:36:45 +0100166STRUCT(snd_timer_status,
167 MK_STRUCT(STRUCT_timespec), /* tstamp */
168 TYPE_INT, /* resolution */
169 TYPE_INT, /* lost */
170 TYPE_INT, /* overrun */
171 TYPE_INT, /* queue */
172 MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
173
balrogb8005912008-04-26 14:44:49 +0000174/* loop device ioctls */
175STRUCT(loop_info,
176 TYPE_INT, /* lo_number */
Alexander Graf6083abd2012-01-31 19:44:41 +0100177 TYPE_OLDDEVT, /* lo_device */
balrogb8005912008-04-26 14:44:49 +0000178 TYPE_ULONG, /* lo_inode */
Alexander Graf6083abd2012-01-31 19:44:41 +0100179 TYPE_OLDDEVT, /* lo_rdevice */
balrogb8005912008-04-26 14:44:49 +0000180 TYPE_INT, /* lo_offset */
181 TYPE_INT, /* lo_encrypt_type */
182 TYPE_INT, /* lo_encrypt_key_size */
183 TYPE_INT, /* lo_flags */
184 MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
185 MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
186 MK_ARRAY(TYPE_ULONG, 2), /* lo_init */
187 MK_ARRAY(TYPE_CHAR, 4)) /* reserved */
188
189STRUCT(loop_info64,
190 TYPE_ULONGLONG, /* lo_device */
191 TYPE_ULONGLONG, /* lo_inode */
192 TYPE_ULONGLONG, /* lo_rdevice */
193 TYPE_ULONGLONG, /* lo_offset */
Peter Maydellf2c2fb52016-07-05 16:36:29 +0100194 TYPE_ULONGLONG, /* lo_sizelimit */
195 TYPE_INT, /* lo_number */
196 TYPE_INT, /* lo_encrypt_type */
197 TYPE_INT, /* lo_encrypt_key_size */
198 TYPE_INT, /* lo_flags */
balrogb8005912008-04-26 14:44:49 +0000199 MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
200 MK_ARRAY(TYPE_CHAR, 64), /* lo_crypt_name */
201 MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
202 MK_ARRAY(TYPE_ULONGLONG, 2)) /* lo_init */
balrog8fbd6b52008-09-20 03:03:09 +0000203
Andreas Schwab0a761ce2021-11-22 16:56:02 +0100204STRUCT(loop_config,
205 TYPE_INT, /* fd */
206 TYPE_INT, /* block_size */
207 MK_STRUCT(STRUCT_loop_info64), /* info */
208 MK_ARRAY(TYPE_ULONGLONG, 8)) /* __reserved */
209
balrog8fbd6b52008-09-20 03:03:09 +0000210/* mag tape ioctls */
211STRUCT(mtop, TYPE_SHORT, TYPE_INT)
212STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
213 TYPE_INT, TYPE_INT)
214STRUCT(mtpos, TYPE_LONG)
Ulrich Hechtf7680a52009-10-16 17:00:44 +0200215
216STRUCT(fb_fix_screeninfo,
217 MK_ARRAY(TYPE_CHAR, 16), /* id */
218 TYPE_ULONG, /* smem_start */
219 TYPE_INT, /* smem_len */
220 TYPE_INT, /* type */
221 TYPE_INT, /* type_aux */
222 TYPE_INT, /* visual */
223 TYPE_SHORT, /* xpanstep */
224 TYPE_SHORT, /* ypanstep */
225 TYPE_SHORT, /* ywrapstep */
226 TYPE_INT, /* line_length */
227 TYPE_ULONG, /* mmio_start */
228 TYPE_INT, /* mmio_len */
229 TYPE_INT, /* accel */
230 MK_ARRAY(TYPE_CHAR, 3)) /* reserved */
231
232STRUCT(fb_var_screeninfo,
233 TYPE_INT, /* xres */
234 TYPE_INT, /* yres */
235 TYPE_INT, /* xres_virtual */
236 TYPE_INT, /* yres_virtual */
237 TYPE_INT, /* xoffset */
238 TYPE_INT, /* yoffset */
239 TYPE_INT, /* bits_per_pixel */
240 TYPE_INT, /* grayscale */
241 MK_ARRAY(TYPE_INT, 3), /* red */
242 MK_ARRAY(TYPE_INT, 3), /* green */
243 MK_ARRAY(TYPE_INT, 3), /* blue */
244 MK_ARRAY(TYPE_INT, 3), /* transp */
245 TYPE_INT, /* nonstd */
246 TYPE_INT, /* activate */
247 TYPE_INT, /* height */
248 TYPE_INT, /* width */
249 TYPE_INT, /* accel_flags */
250 TYPE_INT, /* pixclock */
251 TYPE_INT, /* left_margin */
252 TYPE_INT, /* right_margin */
253 TYPE_INT, /* upper_margin */
254 TYPE_INT, /* lower_margin */
255 TYPE_INT, /* hsync_len */
256 TYPE_INT, /* vsync_len */
257 TYPE_INT, /* sync */
258 TYPE_INT, /* vmode */
259 TYPE_INT, /* rotate */
260 MK_ARRAY(TYPE_INT, 5)) /* reserved */
261
Cédric VINCENT12b81b72011-06-29 15:09:11 +0200262STRUCT(fb_cmap,
263 TYPE_INT, /* start */
264 TYPE_INT, /* len */
265 TYPE_PTRVOID, /* red */
266 TYPE_PTRVOID, /* green */
267 TYPE_PTRVOID, /* blue */
268 TYPE_PTRVOID) /* transp */
269
270STRUCT(fb_con2fbmap,
271 TYPE_INT, /* console */
272 TYPE_INT) /* framebuffer */
273
274
Ulrich Hechtf7680a52009-10-16 17:00:44 +0200275STRUCT(vt_stat,
276 TYPE_SHORT, /* v_active */
277 TYPE_SHORT, /* v_signal */
278 TYPE_SHORT) /* v_state */
Peter Maydell285da2b2011-01-06 15:04:18 +0000279
Cédric VINCENT774750c2011-06-29 15:09:10 +0200280STRUCT(vt_mode,
281 TYPE_CHAR, /* mode */
282 TYPE_CHAR, /* waitv */
283 TYPE_SHORT, /* relsig */
284 TYPE_SHORT, /* acqsig */
285 TYPE_SHORT) /* frsig */
286
Alexander Graf56e904e2012-01-31 18:42:06 +0100287STRUCT(dm_ioctl,
288 MK_ARRAY(TYPE_INT, 3), /* version */
289 TYPE_INT, /* data_size */
290 TYPE_INT, /* data_start */
291 TYPE_INT, /* target_count*/
292 TYPE_INT, /* open_count */
293 TYPE_INT, /* flags */
294 TYPE_INT, /* event_nr */
295 TYPE_INT, /* padding */
296 TYPE_ULONGLONG, /* dev */
297 MK_ARRAY(TYPE_CHAR, 128), /* name */
298 MK_ARRAY(TYPE_CHAR, 129), /* uuid */
299 MK_ARRAY(TYPE_CHAR, 7)) /* data */
300
301STRUCT(dm_target_spec,
302 TYPE_ULONGLONG, /* sector_start */
303 TYPE_ULONGLONG, /* length */
304 TYPE_INT, /* status */
305 TYPE_INT, /* next */
306 MK_ARRAY(TYPE_CHAR, 16)) /* target_type */
307
308STRUCT(dm_target_deps,
309 TYPE_INT, /* count */
310 TYPE_INT) /* padding */
311
312STRUCT(dm_name_list,
313 TYPE_ULONGLONG, /* dev */
314 TYPE_INT) /* next */
315
316STRUCT(dm_target_versions,
317 TYPE_INT, /* next */
318 MK_ARRAY(TYPE_INT, 3)) /* version*/
319
320STRUCT(dm_target_msg,
321 TYPE_ULONGLONG) /* sector */
322
Chen Gange865b972020-06-05 09:32:21 +0800323STRUCT(drm_version,
324 TYPE_INT, /* version_major */
325 TYPE_INT, /* version_minor */
326 TYPE_INT, /* version_patchlevel */
327 TYPE_ULONG, /* name_len */
328 TYPE_PTRVOID, /* name */
329 TYPE_ULONG, /* date_len */
330 TYPE_PTRVOID, /* date */
331 TYPE_ULONG, /* desc_len */
332 TYPE_PTRVOID) /* desc */
333
Chen Gang913b03c2020-08-02 21:39:38 +0800334STRUCT(drm_i915_getparam,
335 TYPE_INT, /* param */
336 TYPE_PTRVOID) /* value */
337
Helge Deller21992cb2017-02-11 23:26:02 +0100338STRUCT(file_clone_range,
339 TYPE_LONGLONG, /* src_fd */
340 TYPE_ULONGLONG, /* src_offset */
341 TYPE_ULONGLONG, /* src_length */
342 TYPE_ULONGLONG) /* dest_offset */
343
Michael Vogt7048fc52024-04-03 11:20:49 +0200344STRUCT(fstrim_range,
345 TYPE_ULONGLONG, /* start */
346 TYPE_ULONGLONG, /* len */
347 TYPE_ULONGLONG) /* minlen */
348
Peter Maydell285da2b2011-01-06 15:04:18 +0000349STRUCT(fiemap_extent,
350 TYPE_ULONGLONG, /* fe_logical */
351 TYPE_ULONGLONG, /* fe_physical */
352 TYPE_ULONGLONG, /* fe_length */
353 MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
354 TYPE_INT, /* fe_flags */
355 MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
356
357STRUCT(fiemap,
358 TYPE_ULONGLONG, /* fm_start */
359 TYPE_ULONGLONG, /* fm_length */
360 TYPE_INT, /* fm_flags */
361 TYPE_INT, /* fm_mapped_extents */
362 TYPE_INT, /* fm_extent_count */
363 TYPE_INT) /* fm_reserved */
Andreas Färberfff8c532014-01-18 07:38:30 +0100364
365STRUCT(blkpg_partition,
366 TYPE_LONGLONG, /* start */
367 TYPE_LONGLONG, /* length */
368 TYPE_INT, /* pno */
369 MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
370 MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
371
Filip Bozuta527e8d82020-08-23 21:50:08 +0200372#if defined(BTRFS_IOC_SUBVOL_CREATE) || defined(BTRFS_IOC_SNAP_CREATE) || \
Filip Bozuta9bbd60e2020-08-23 21:50:09 +0200373 defined(BTRFS_IOC_SNAP_DESTROY) || defined(BTRFS_IOC_SCAN_DEV) || \
374 defined(BTRFS_IOC_FORGET_DEV) || defined(BTRFS_IOC_ADD_DEV) || \
375 defined(BTRFS_IOC_RM_DEV) || defined(BTRFS_IOC_DEV_INFO)
Filip Bozutad6092e02020-08-23 21:50:07 +0200376STRUCT(btrfs_ioctl_vol_args,
377 TYPE_LONGLONG, /* fd */
378 MK_ARRAY(TYPE_CHAR, BTRFS_PATH_NAME_MAX + 1)) /* name */
379#endif
380
381#ifdef BTRFS_IOC_GET_SUBVOL_INFO
382STRUCT(btrfs_ioctl_timespec,
383 TYPE_ULONGLONG, /* sec */
384 TYPE_INT) /* nsec */
385
386STRUCT(btrfs_ioctl_get_subvol_info_args,
387 TYPE_ULONGLONG, /* treeid */
388 MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1),
389 TYPE_ULONGLONG, /* parentid */
390 TYPE_ULONGLONG, /* dirid */
391 TYPE_ULONGLONG, /* generation */
392 TYPE_ULONGLONG, /* flags */
393 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
394 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* parent_uuid */
395 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* received_uuid */
396 TYPE_ULONGLONG, /* ctransid */
397 TYPE_ULONGLONG, /* otransid */
398 TYPE_ULONGLONG, /* stransid */
399 TYPE_ULONGLONG, /* rtransid */
400 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* ctime */
401 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* otime */
402 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* stime */
403 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* rtime */
404 MK_ARRAY(TYPE_ULONGLONG, 8)) /* reserved */
405#endif
406
Filip Bozuta0ff496a2020-08-23 21:50:11 +0200407#ifdef BTRFS_IOC_INO_LOOKUP
408STRUCT(btrfs_ioctl_ino_lookup_args,
409 TYPE_ULONGLONG, /* treeid */
410 TYPE_ULONGLONG, /* objectid */
411 MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_PATH_MAX)) /* name */
412#endif
413
414#ifdef BTRFS_IOC_INO_PATHS
415STRUCT(btrfs_ioctl_ino_path_args,
416 TYPE_ULONGLONG, /* inum */
417 TYPE_ULONGLONG, /* size */
418 MK_ARRAY(TYPE_ULONGLONG, 4), /* reserved */
419 TYPE_ULONGLONG) /* fspath */
420#endif
421
422#if defined(BTRFS_IOC_LOGICAL_INO) || defined(BTRFS_IOC_LOGICAL_INO_V2)
423STRUCT(btrfs_ioctl_logical_ino_args,
424 TYPE_ULONGLONG, /* logical */
425 TYPE_ULONGLONG, /* size */
426 MK_ARRAY(TYPE_ULONGLONG, 3), /* reserved */
427 TYPE_ULONGLONG, /* flags */
428 TYPE_ULONGLONG) /* inodes */
429#endif
430
431#ifdef BTRFS_IOC_INO_LOOKUP_USER
432STRUCT(btrfs_ioctl_ino_lookup_user_args,
433 TYPE_ULONGLONG, /* dirid */
434 TYPE_ULONGLONG, /* treeid */
435 MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1), /* name */
436 MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
437#endif
438
Filip Bozuta9a5a5a02020-08-23 21:50:14 +0200439#if defined(BTRFS_IOC_SCRUB) || defined(BTRFS_IOC_SCRUB_PROGRESS)
440STRUCT(btrfs_scrub_progress,
441 TYPE_ULONGLONG, /* data_extents_scrubbed */
442 TYPE_ULONGLONG, /* tree_extents_scrubbed */
443 TYPE_ULONGLONG, /* data_bytes_scrubbed */
444 TYPE_ULONGLONG, /* tree_bytes_scrubbed */
445 TYPE_ULONGLONG, /* read_errors */
446 TYPE_ULONGLONG, /* csum_errors */
447 TYPE_ULONGLONG, /* verify_errors */
448 TYPE_ULONGLONG, /* no_csum */
449 TYPE_ULONGLONG, /* csum_discards */
450 TYPE_ULONGLONG, /* super_errors */
451 TYPE_ULONGLONG, /* malloc_errors */
452 TYPE_ULONGLONG, /* uncorrectable_errors */
453 TYPE_ULONGLONG, /* corrected_er */
454 TYPE_ULONGLONG, /* last_physical */
455 TYPE_ULONGLONG) /* unverified_errors */
456
457STRUCT(btrfs_ioctl_scrub_args,
458 TYPE_ULONGLONG, /* devid */
459 TYPE_ULONGLONG, /* start */
460 TYPE_ULONGLONG, /* end */
461 TYPE_ULONGLONG, /* flags */
462 MK_STRUCT(STRUCT_btrfs_scrub_progress), /* progress */
463 MK_ARRAY(TYPE_ULONGLONG,
464 (1024 - 32 -
465 sizeof(struct btrfs_scrub_progress)) / 8)) /* unused */
466#endif
467
Filip Bozuta9bbd60e2020-08-23 21:50:09 +0200468#ifdef BTRFS_IOC_DEV_INFO
469STRUCT(btrfs_ioctl_dev_info_args,
470 TYPE_ULONGLONG, /* devid */
471 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
472 TYPE_ULONGLONG, /* bytes_used */
473 TYPE_ULONGLONG, /* total_bytes */
474 MK_ARRAY(TYPE_ULONGLONG, 379), /* unused */
475 MK_ARRAY(TYPE_CHAR, BTRFS_DEVICE_PATH_NAME_MAX)) /* path */
476#endif
477
Filip Bozuta784c08c2020-08-23 21:50:12 +0200478#ifdef BTRFS_IOC_GET_SUBVOL_ROOTREF
479STRUCT(rootref,
480 TYPE_ULONGLONG, /* treeid */
481 TYPE_ULONGLONG) /* dirid */
482
483STRUCT(btrfs_ioctl_get_subvol_rootref_args,
484 TYPE_ULONGLONG, /* min_treeid */
485 MK_ARRAY(MK_STRUCT(STRUCT_rootref),
486 BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
487 TYPE_CHAR, /* num_items */
488 MK_ARRAY(TYPE_CHAR, 7)) /* align */
489#endif
490
Filip Bozuta9bbd60e2020-08-23 21:50:09 +0200491#ifdef BTRFS_IOC_GET_DEV_STATS
492STRUCT(btrfs_ioctl_get_dev_stats,
493 TYPE_ULONGLONG, /* devid */
494 TYPE_ULONGLONG, /* nr_items */
495 TYPE_ULONGLONG, /* flags */
496 MK_ARRAY(TYPE_ULONGLONG, BTRFS_DEV_STAT_VALUES_MAX), /* values */
497 MK_ARRAY(TYPE_ULONGLONG,
498 128 - 2 - BTRFS_DEV_STAT_VALUES_MAX)) /* unused */
499#endif
500
Filip Bozuta53906f62020-08-23 21:50:13 +0200501STRUCT(btrfs_ioctl_quota_ctl_args,
502 TYPE_ULONGLONG, /* cmd */
503 TYPE_ULONGLONG) /* status */
504
505STRUCT(btrfs_ioctl_quota_rescan_args,
506 TYPE_ULONGLONG, /* flags */
507 TYPE_ULONGLONG, /* progress */
508 MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
509
510STRUCT(btrfs_ioctl_qgroup_assign_args,
511 TYPE_ULONGLONG, /* assign */
512 TYPE_ULONGLONG, /* src */
513 TYPE_ULONGLONG) /* dst */
514
515STRUCT(btrfs_ioctl_qgroup_create_args,
516 TYPE_ULONGLONG, /* create */
517 TYPE_ULONGLONG) /* qgroupid */
518
519STRUCT(btrfs_qgroup_limit,
520 TYPE_ULONGLONG, /* flags */
521 TYPE_ULONGLONG, /* max_rfer */
522 TYPE_ULONGLONG, /* max_excl */
523 TYPE_ULONGLONG, /* rsv_rfer */
524 TYPE_ULONGLONG) /* rsv_excl */
525
526STRUCT(btrfs_ioctl_qgroup_limit_args,
527 TYPE_ULONGLONG, /* qgroupid */
528 MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
529
Filip Bozuta49b422a2020-08-23 21:50:10 +0200530STRUCT(btrfs_ioctl_feature_flags,
531 TYPE_ULONGLONG, /* compat_flags */
532 TYPE_ULONGLONG, /* compat_ro_flags */
533 TYPE_ULONGLONG) /* incompat_flags */
534
Filip Bozuta178b14a2020-01-15 20:36:36 +0100535STRUCT(rtc_time,
536 TYPE_INT, /* tm_sec */
537 TYPE_INT, /* tm_min */
538 TYPE_INT, /* tm_hour */
539 TYPE_INT, /* tm_mday */
540 TYPE_INT, /* tm_mon */
541 TYPE_INT, /* tm_year */
542 TYPE_INT, /* tm_wday */
543 TYPE_INT, /* tm_yday */
544 TYPE_INT) /* tm_isdst */
545
Filip Bozutaabc81bf2020-01-15 20:36:38 +0100546STRUCT(rtc_wkalrm,
547 TYPE_CHAR, /* enabled */
548 TYPE_CHAR, /* pending */
549 MK_STRUCT(STRUCT_rtc_time)) /* time */
550
Filip Bozuta373b0672020-01-15 20:36:39 +0100551STRUCT(rtc_pll_info,
552 TYPE_INT, /* pll_ctrl */
553 TYPE_INT, /* pll_value */
554 TYPE_INT, /* pll_max */
555 TYPE_INT, /* pll_min */
556 TYPE_INT, /* pll_posmult */
557 TYPE_INT, /* pll_negmult */
558 TYPE_LONG) /* pll_clock */
559
Andreas Färberfff8c532014-01-18 07:38:30 +0100560STRUCT(blkpg_ioctl_arg,
561 TYPE_INT, /* op */
562 TYPE_INT, /* flags */
563 TYPE_INT, /* datalen */
Alexander Grafa59b5e32014-08-22 13:15:50 +0200564 TYPE_PTRVOID) /* data */
Cortland Tölva6c753a62018-10-08 09:35:20 -0700565
Aleksandar Markovic08e3ce52020-01-16 23:49:47 +0100566STRUCT(format_descr,
567 TYPE_INT, /* device */
568 TYPE_INT, /* head */
569 TYPE_INT) /* track */
570
Aleksandar Markovic81eb1a32020-01-16 23:49:46 +0100571STRUCT(floppy_max_errors,
572 TYPE_INT, /* abort */
573 TYPE_INT, /* read_track */
574 TYPE_INT, /* reset */
575 TYPE_INT, /* recal */
576 TYPE_INT) /* reporting */
577
Cortland Tölva6c753a62018-10-08 09:35:20 -0700578#if defined(CONFIG_USBFS)
579/* usb device ioctls */
580STRUCT(usbdevfs_ctrltransfer,
581 TYPE_CHAR, /* bRequestType */
582 TYPE_CHAR, /* bRequest */
583 TYPE_SHORT, /* wValue */
584 TYPE_SHORT, /* wIndex */
585 TYPE_SHORT, /* wLength */
586 TYPE_INT, /* timeout */
587 TYPE_PTRVOID) /* data */
588
589STRUCT(usbdevfs_bulktransfer,
590 TYPE_INT, /* ep */
591 TYPE_INT, /* len */
592 TYPE_INT, /* timeout */
593 TYPE_PTRVOID) /* data */
594
595STRUCT(usbdevfs_setinterface,
596 TYPE_INT, /* interface */
597 TYPE_INT) /* altsetting */
598
599STRUCT(usbdevfs_disconnectsignal,
600 TYPE_INT, /* signr */
601 TYPE_PTRVOID) /* context */
602
603STRUCT(usbdevfs_getdriver,
604 TYPE_INT, /* interface */
605 MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
606
607STRUCT(usbdevfs_connectinfo,
608 TYPE_INT, /* devnum */
609 TYPE_CHAR) /* slow */
610
Cortland Tölvaa1333672018-10-08 09:35:21 -0700611STRUCT(usbdevfs_iso_packet_desc,
612 TYPE_INT, /* length */
613 TYPE_INT, /* actual_length */
614 TYPE_INT) /* status */
615
616STRUCT(usbdevfs_urb,
617 TYPE_CHAR, /* type */
618 TYPE_CHAR, /* endpoint */
619 TYPE_INT, /* status */
620 TYPE_INT, /* flags */
621 TYPE_PTRVOID, /* buffer */
622 TYPE_INT, /* buffer_length */
623 TYPE_INT, /* actual_length */
624 TYPE_INT, /* start_frame */
625 TYPE_INT, /* union number_of_packets stream_id */
626 TYPE_INT, /* error_count */
627 TYPE_INT, /* signr */
628 TYPE_PTRVOID, /* usercontext */
629 MK_ARRAY(MK_STRUCT(STRUCT_usbdevfs_iso_packet_desc), 0)) /* desc */
630
Cortland Tölva6c753a62018-10-08 09:35:20 -0700631STRUCT(usbdevfs_ioctl,
632 TYPE_INT, /* ifno */
633 TYPE_INT, /* ioctl_code */
634 TYPE_PTRVOID) /* data */
635
636STRUCT(usbdevfs_hub_portinfo,
637 TYPE_CHAR, /* nports */
638 MK_ARRAY(TYPE_CHAR, 127)) /* port */
639
640STRUCT(usbdevfs_disconnect_claim,
641 TYPE_INT, /* interface */
642 TYPE_INT, /* flags */
643 MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
644#endif /* CONFIG_USBFS */