linux-user: Add support for btrfs ioctls used to scrub a filesystem
[qemu.git] / linux-user / syscall_types.h
1 STRUCT_SPECIAL(termios)
2
3 STRUCT(winsize,
4 TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT)
5
6 STRUCT(serial_multiport_struct,
7 TYPE_INT, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR,
8 TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT,
9 MK_ARRAY(TYPE_INT, 32))
10
11 STRUCT(serial_icounter_struct,
12 TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, MK_ARRAY(TYPE_INT, 16))
13
14 STRUCT(sockaddr,
15 TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
16
17 STRUCT(rtentry,
18 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,
20 TYPE_ULONG, TYPE_ULONG, TYPE_SHORT)
21
22 STRUCT(ifmap,
23 TYPE_ULONG, TYPE_ULONG, TYPE_SHORT, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR,
24 /* 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
29 STRUCT(sockaddr_ifreq,
30 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr))
31
32 STRUCT(short_ifreq,
33 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_SHORT)
34
35 STRUCT(int_ifreq,
36 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT)
37
38 STRUCT(ifmap_ifreq,
39 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_ifmap))
40
41 STRUCT(char_ifreq,
42 MK_ARRAY(TYPE_CHAR, IFNAMSIZ),
43 MK_ARRAY(TYPE_CHAR, IFNAMSIZ))
44
45 STRUCT(ptr_ifreq,
46 MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID)
47
48 STRUCT(ifconf,
49 TYPE_INT, TYPE_PTRVOID)
50
51 STRUCT(arpreq,
52 MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr),
53 MK_ARRAY(TYPE_CHAR, 16))
54
55 STRUCT(arpreq_old,
56 MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr))
57
58 STRUCT(cdrom_read_audio,
59 TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_PTRVOID,
60 TYPE_NULL)
61
62 STRUCT(hd_geometry,
63 TYPE_CHAR, TYPE_CHAR, TYPE_SHORT, TYPE_ULONG)
64
65 STRUCT(dirent,
66 TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256))
67
68 STRUCT(kbentry,
69 TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)
70
71 STRUCT(kbsentry,
72 TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
73
74 STRUCT(audio_buf_info,
75 TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
76
77 STRUCT(count_info,
78 TYPE_INT, TYPE_INT, TYPE_INT)
79
80 STRUCT(buffmem_desc,
81 TYPE_PTRVOID, TYPE_INT)
82
83 STRUCT(mixer_info,
84 MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
85
86 STRUCT(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
93 STRUCT(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
106 STRUCT(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
112 STRUCT(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
119 STRUCT(snd_timer_select,
120 MK_STRUCT(STRUCT_snd_timer_id), /* id */
121 MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
122
123 STRUCT(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
132 STRUCT(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
140 #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
141 STRUCT(timeval,
142 TYPE_LONG, /* tv_sec */
143 TYPE_INT) /* tv_usec */
144
145 STRUCT(_kernel_sock_timeval,
146 TYPE_LONG, /* tv_sec */
147 TYPE_INT) /* tv_usec */
148 #else
149 STRUCT(timeval,
150 TYPE_LONG, /* tv_sec */
151 TYPE_LONG) /* tv_usec */
152
153 STRUCT(_kernel_sock_timeval,
154 TYPE_LONGLONG, /* tv_sec */
155 TYPE_LONGLONG) /* tv_usec */
156 #endif
157
158 STRUCT(timespec,
159 TYPE_LONG, /* tv_sec */
160 TYPE_LONG) /* tv_nsec */
161
162 STRUCT(_kernel_timespec,
163 TYPE_LONGLONG, /* tv_sec */
164 TYPE_LONGLONG) /* tv_nsec */
165
166 STRUCT(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
174 /* loop device ioctls */
175 STRUCT(loop_info,
176 TYPE_INT, /* lo_number */
177 TYPE_OLDDEVT, /* lo_device */
178 TYPE_ULONG, /* lo_inode */
179 TYPE_OLDDEVT, /* lo_rdevice */
180 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
189 STRUCT(loop_info64,
190 TYPE_ULONGLONG, /* lo_device */
191 TYPE_ULONGLONG, /* lo_inode */
192 TYPE_ULONGLONG, /* lo_rdevice */
193 TYPE_ULONGLONG, /* lo_offset */
194 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 */
199 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 */
203
204 /* mag tape ioctls */
205 STRUCT(mtop, TYPE_SHORT, TYPE_INT)
206 STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
207 TYPE_INT, TYPE_INT)
208 STRUCT(mtpos, TYPE_LONG)
209
210 STRUCT(fb_fix_screeninfo,
211 MK_ARRAY(TYPE_CHAR, 16), /* id */
212 TYPE_ULONG, /* smem_start */
213 TYPE_INT, /* smem_len */
214 TYPE_INT, /* type */
215 TYPE_INT, /* type_aux */
216 TYPE_INT, /* visual */
217 TYPE_SHORT, /* xpanstep */
218 TYPE_SHORT, /* ypanstep */
219 TYPE_SHORT, /* ywrapstep */
220 TYPE_INT, /* line_length */
221 TYPE_ULONG, /* mmio_start */
222 TYPE_INT, /* mmio_len */
223 TYPE_INT, /* accel */
224 MK_ARRAY(TYPE_CHAR, 3)) /* reserved */
225
226 STRUCT(fb_var_screeninfo,
227 TYPE_INT, /* xres */
228 TYPE_INT, /* yres */
229 TYPE_INT, /* xres_virtual */
230 TYPE_INT, /* yres_virtual */
231 TYPE_INT, /* xoffset */
232 TYPE_INT, /* yoffset */
233 TYPE_INT, /* bits_per_pixel */
234 TYPE_INT, /* grayscale */
235 MK_ARRAY(TYPE_INT, 3), /* red */
236 MK_ARRAY(TYPE_INT, 3), /* green */
237 MK_ARRAY(TYPE_INT, 3), /* blue */
238 MK_ARRAY(TYPE_INT, 3), /* transp */
239 TYPE_INT, /* nonstd */
240 TYPE_INT, /* activate */
241 TYPE_INT, /* height */
242 TYPE_INT, /* width */
243 TYPE_INT, /* accel_flags */
244 TYPE_INT, /* pixclock */
245 TYPE_INT, /* left_margin */
246 TYPE_INT, /* right_margin */
247 TYPE_INT, /* upper_margin */
248 TYPE_INT, /* lower_margin */
249 TYPE_INT, /* hsync_len */
250 TYPE_INT, /* vsync_len */
251 TYPE_INT, /* sync */
252 TYPE_INT, /* vmode */
253 TYPE_INT, /* rotate */
254 MK_ARRAY(TYPE_INT, 5)) /* reserved */
255
256 STRUCT(fb_cmap,
257 TYPE_INT, /* start */
258 TYPE_INT, /* len */
259 TYPE_PTRVOID, /* red */
260 TYPE_PTRVOID, /* green */
261 TYPE_PTRVOID, /* blue */
262 TYPE_PTRVOID) /* transp */
263
264 STRUCT(fb_con2fbmap,
265 TYPE_INT, /* console */
266 TYPE_INT) /* framebuffer */
267
268
269 STRUCT(vt_stat,
270 TYPE_SHORT, /* v_active */
271 TYPE_SHORT, /* v_signal */
272 TYPE_SHORT) /* v_state */
273
274 STRUCT(vt_mode,
275 TYPE_CHAR, /* mode */
276 TYPE_CHAR, /* waitv */
277 TYPE_SHORT, /* relsig */
278 TYPE_SHORT, /* acqsig */
279 TYPE_SHORT) /* frsig */
280
281 STRUCT(dm_ioctl,
282 MK_ARRAY(TYPE_INT, 3), /* version */
283 TYPE_INT, /* data_size */
284 TYPE_INT, /* data_start */
285 TYPE_INT, /* target_count*/
286 TYPE_INT, /* open_count */
287 TYPE_INT, /* flags */
288 TYPE_INT, /* event_nr */
289 TYPE_INT, /* padding */
290 TYPE_ULONGLONG, /* dev */
291 MK_ARRAY(TYPE_CHAR, 128), /* name */
292 MK_ARRAY(TYPE_CHAR, 129), /* uuid */
293 MK_ARRAY(TYPE_CHAR, 7)) /* data */
294
295 STRUCT(dm_target_spec,
296 TYPE_ULONGLONG, /* sector_start */
297 TYPE_ULONGLONG, /* length */
298 TYPE_INT, /* status */
299 TYPE_INT, /* next */
300 MK_ARRAY(TYPE_CHAR, 16)) /* target_type */
301
302 STRUCT(dm_target_deps,
303 TYPE_INT, /* count */
304 TYPE_INT) /* padding */
305
306 STRUCT(dm_name_list,
307 TYPE_ULONGLONG, /* dev */
308 TYPE_INT) /* next */
309
310 STRUCT(dm_target_versions,
311 TYPE_INT, /* next */
312 MK_ARRAY(TYPE_INT, 3)) /* version*/
313
314 STRUCT(dm_target_msg,
315 TYPE_ULONGLONG) /* sector */
316
317 STRUCT(drm_version,
318 TYPE_INT, /* version_major */
319 TYPE_INT, /* version_minor */
320 TYPE_INT, /* version_patchlevel */
321 TYPE_ULONG, /* name_len */
322 TYPE_PTRVOID, /* name */
323 TYPE_ULONG, /* date_len */
324 TYPE_PTRVOID, /* date */
325 TYPE_ULONG, /* desc_len */
326 TYPE_PTRVOID) /* desc */
327
328 STRUCT(drm_i915_getparam,
329 TYPE_INT, /* param */
330 TYPE_PTRVOID) /* value */
331
332 STRUCT(file_clone_range,
333 TYPE_LONGLONG, /* src_fd */
334 TYPE_ULONGLONG, /* src_offset */
335 TYPE_ULONGLONG, /* src_length */
336 TYPE_ULONGLONG) /* dest_offset */
337
338 STRUCT(fiemap_extent,
339 TYPE_ULONGLONG, /* fe_logical */
340 TYPE_ULONGLONG, /* fe_physical */
341 TYPE_ULONGLONG, /* fe_length */
342 MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
343 TYPE_INT, /* fe_flags */
344 MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
345
346 STRUCT(fiemap,
347 TYPE_ULONGLONG, /* fm_start */
348 TYPE_ULONGLONG, /* fm_length */
349 TYPE_INT, /* fm_flags */
350 TYPE_INT, /* fm_mapped_extents */
351 TYPE_INT, /* fm_extent_count */
352 TYPE_INT) /* fm_reserved */
353
354 STRUCT(blkpg_partition,
355 TYPE_LONGLONG, /* start */
356 TYPE_LONGLONG, /* length */
357 TYPE_INT, /* pno */
358 MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
359 MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
360
361 #if defined(BTRFS_IOC_SUBVOL_CREATE) || defined(BTRFS_IOC_SNAP_CREATE) || \
362 defined(BTRFS_IOC_SNAP_DESTROY) || defined(BTRFS_IOC_SCAN_DEV) || \
363 defined(BTRFS_IOC_FORGET_DEV) || defined(BTRFS_IOC_ADD_DEV) || \
364 defined(BTRFS_IOC_RM_DEV) || defined(BTRFS_IOC_DEV_INFO)
365 STRUCT(btrfs_ioctl_vol_args,
366 TYPE_LONGLONG, /* fd */
367 MK_ARRAY(TYPE_CHAR, BTRFS_PATH_NAME_MAX + 1)) /* name */
368 #endif
369
370 #ifdef BTRFS_IOC_GET_SUBVOL_INFO
371 STRUCT(btrfs_ioctl_timespec,
372 TYPE_ULONGLONG, /* sec */
373 TYPE_INT) /* nsec */
374
375 STRUCT(btrfs_ioctl_get_subvol_info_args,
376 TYPE_ULONGLONG, /* treeid */
377 MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1),
378 TYPE_ULONGLONG, /* parentid */
379 TYPE_ULONGLONG, /* dirid */
380 TYPE_ULONGLONG, /* generation */
381 TYPE_ULONGLONG, /* flags */
382 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
383 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* parent_uuid */
384 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* received_uuid */
385 TYPE_ULONGLONG, /* ctransid */
386 TYPE_ULONGLONG, /* otransid */
387 TYPE_ULONGLONG, /* stransid */
388 TYPE_ULONGLONG, /* rtransid */
389 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* ctime */
390 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* otime */
391 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* stime */
392 MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* rtime */
393 MK_ARRAY(TYPE_ULONGLONG, 8)) /* reserved */
394 #endif
395
396 #ifdef BTRFS_IOC_INO_LOOKUP
397 STRUCT(btrfs_ioctl_ino_lookup_args,
398 TYPE_ULONGLONG, /* treeid */
399 TYPE_ULONGLONG, /* objectid */
400 MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_PATH_MAX)) /* name */
401 #endif
402
403 #ifdef BTRFS_IOC_INO_PATHS
404 STRUCT(btrfs_ioctl_ino_path_args,
405 TYPE_ULONGLONG, /* inum */
406 TYPE_ULONGLONG, /* size */
407 MK_ARRAY(TYPE_ULONGLONG, 4), /* reserved */
408 TYPE_ULONGLONG) /* fspath */
409 #endif
410
411 #if defined(BTRFS_IOC_LOGICAL_INO) || defined(BTRFS_IOC_LOGICAL_INO_V2)
412 STRUCT(btrfs_ioctl_logical_ino_args,
413 TYPE_ULONGLONG, /* logical */
414 TYPE_ULONGLONG, /* size */
415 MK_ARRAY(TYPE_ULONGLONG, 3), /* reserved */
416 TYPE_ULONGLONG, /* flags */
417 TYPE_ULONGLONG) /* inodes */
418 #endif
419
420 #ifdef BTRFS_IOC_INO_LOOKUP_USER
421 STRUCT(btrfs_ioctl_ino_lookup_user_args,
422 TYPE_ULONGLONG, /* dirid */
423 TYPE_ULONGLONG, /* treeid */
424 MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1), /* name */
425 MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
426 #endif
427
428 #if defined(BTRFS_IOC_SCRUB) || defined(BTRFS_IOC_SCRUB_PROGRESS)
429 STRUCT(btrfs_scrub_progress,
430 TYPE_ULONGLONG, /* data_extents_scrubbed */
431 TYPE_ULONGLONG, /* tree_extents_scrubbed */
432 TYPE_ULONGLONG, /* data_bytes_scrubbed */
433 TYPE_ULONGLONG, /* tree_bytes_scrubbed */
434 TYPE_ULONGLONG, /* read_errors */
435 TYPE_ULONGLONG, /* csum_errors */
436 TYPE_ULONGLONG, /* verify_errors */
437 TYPE_ULONGLONG, /* no_csum */
438 TYPE_ULONGLONG, /* csum_discards */
439 TYPE_ULONGLONG, /* super_errors */
440 TYPE_ULONGLONG, /* malloc_errors */
441 TYPE_ULONGLONG, /* uncorrectable_errors */
442 TYPE_ULONGLONG, /* corrected_er */
443 TYPE_ULONGLONG, /* last_physical */
444 TYPE_ULONGLONG) /* unverified_errors */
445
446 STRUCT(btrfs_ioctl_scrub_args,
447 TYPE_ULONGLONG, /* devid */
448 TYPE_ULONGLONG, /* start */
449 TYPE_ULONGLONG, /* end */
450 TYPE_ULONGLONG, /* flags */
451 MK_STRUCT(STRUCT_btrfs_scrub_progress), /* progress */
452 MK_ARRAY(TYPE_ULONGLONG,
453 (1024 - 32 -
454 sizeof(struct btrfs_scrub_progress)) / 8)) /* unused */
455 #endif
456
457 #ifdef BTRFS_IOC_DEV_INFO
458 STRUCT(btrfs_ioctl_dev_info_args,
459 TYPE_ULONGLONG, /* devid */
460 MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
461 TYPE_ULONGLONG, /* bytes_used */
462 TYPE_ULONGLONG, /* total_bytes */
463 MK_ARRAY(TYPE_ULONGLONG, 379), /* unused */
464 MK_ARRAY(TYPE_CHAR, BTRFS_DEVICE_PATH_NAME_MAX)) /* path */
465 #endif
466
467 #ifdef BTRFS_IOC_GET_SUBVOL_ROOTREF
468 STRUCT(rootref,
469 TYPE_ULONGLONG, /* treeid */
470 TYPE_ULONGLONG) /* dirid */
471
472 STRUCT(btrfs_ioctl_get_subvol_rootref_args,
473 TYPE_ULONGLONG, /* min_treeid */
474 MK_ARRAY(MK_STRUCT(STRUCT_rootref),
475 BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
476 TYPE_CHAR, /* num_items */
477 MK_ARRAY(TYPE_CHAR, 7)) /* align */
478 #endif
479
480 #ifdef BTRFS_IOC_GET_DEV_STATS
481 STRUCT(btrfs_ioctl_get_dev_stats,
482 TYPE_ULONGLONG, /* devid */
483 TYPE_ULONGLONG, /* nr_items */
484 TYPE_ULONGLONG, /* flags */
485 MK_ARRAY(TYPE_ULONGLONG, BTRFS_DEV_STAT_VALUES_MAX), /* values */
486 MK_ARRAY(TYPE_ULONGLONG,
487 128 - 2 - BTRFS_DEV_STAT_VALUES_MAX)) /* unused */
488 #endif
489
490 STRUCT(btrfs_ioctl_quota_ctl_args,
491 TYPE_ULONGLONG, /* cmd */
492 TYPE_ULONGLONG) /* status */
493
494 STRUCT(btrfs_ioctl_quota_rescan_args,
495 TYPE_ULONGLONG, /* flags */
496 TYPE_ULONGLONG, /* progress */
497 MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
498
499 STRUCT(btrfs_ioctl_qgroup_assign_args,
500 TYPE_ULONGLONG, /* assign */
501 TYPE_ULONGLONG, /* src */
502 TYPE_ULONGLONG) /* dst */
503
504 STRUCT(btrfs_ioctl_qgroup_create_args,
505 TYPE_ULONGLONG, /* create */
506 TYPE_ULONGLONG) /* qgroupid */
507
508 STRUCT(btrfs_qgroup_limit,
509 TYPE_ULONGLONG, /* flags */
510 TYPE_ULONGLONG, /* max_rfer */
511 TYPE_ULONGLONG, /* max_excl */
512 TYPE_ULONGLONG, /* rsv_rfer */
513 TYPE_ULONGLONG) /* rsv_excl */
514
515 STRUCT(btrfs_ioctl_qgroup_limit_args,
516 TYPE_ULONGLONG, /* qgroupid */
517 MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
518
519 STRUCT(btrfs_ioctl_feature_flags,
520 TYPE_ULONGLONG, /* compat_flags */
521 TYPE_ULONGLONG, /* compat_ro_flags */
522 TYPE_ULONGLONG) /* incompat_flags */
523
524 STRUCT(rtc_time,
525 TYPE_INT, /* tm_sec */
526 TYPE_INT, /* tm_min */
527 TYPE_INT, /* tm_hour */
528 TYPE_INT, /* tm_mday */
529 TYPE_INT, /* tm_mon */
530 TYPE_INT, /* tm_year */
531 TYPE_INT, /* tm_wday */
532 TYPE_INT, /* tm_yday */
533 TYPE_INT) /* tm_isdst */
534
535 STRUCT(rtc_wkalrm,
536 TYPE_CHAR, /* enabled */
537 TYPE_CHAR, /* pending */
538 MK_STRUCT(STRUCT_rtc_time)) /* time */
539
540 STRUCT(rtc_pll_info,
541 TYPE_INT, /* pll_ctrl */
542 TYPE_INT, /* pll_value */
543 TYPE_INT, /* pll_max */
544 TYPE_INT, /* pll_min */
545 TYPE_INT, /* pll_posmult */
546 TYPE_INT, /* pll_negmult */
547 TYPE_LONG) /* pll_clock */
548
549 STRUCT(blkpg_ioctl_arg,
550 TYPE_INT, /* op */
551 TYPE_INT, /* flags */
552 TYPE_INT, /* datalen */
553 TYPE_PTRVOID) /* data */
554
555 STRUCT(format_descr,
556 TYPE_INT, /* device */
557 TYPE_INT, /* head */
558 TYPE_INT) /* track */
559
560 STRUCT(floppy_max_errors,
561 TYPE_INT, /* abort */
562 TYPE_INT, /* read_track */
563 TYPE_INT, /* reset */
564 TYPE_INT, /* recal */
565 TYPE_INT) /* reporting */
566
567 #if defined(CONFIG_USBFS)
568 /* usb device ioctls */
569 STRUCT(usbdevfs_ctrltransfer,
570 TYPE_CHAR, /* bRequestType */
571 TYPE_CHAR, /* bRequest */
572 TYPE_SHORT, /* wValue */
573 TYPE_SHORT, /* wIndex */
574 TYPE_SHORT, /* wLength */
575 TYPE_INT, /* timeout */
576 TYPE_PTRVOID) /* data */
577
578 STRUCT(usbdevfs_bulktransfer,
579 TYPE_INT, /* ep */
580 TYPE_INT, /* len */
581 TYPE_INT, /* timeout */
582 TYPE_PTRVOID) /* data */
583
584 STRUCT(usbdevfs_setinterface,
585 TYPE_INT, /* interface */
586 TYPE_INT) /* altsetting */
587
588 STRUCT(usbdevfs_disconnectsignal,
589 TYPE_INT, /* signr */
590 TYPE_PTRVOID) /* context */
591
592 STRUCT(usbdevfs_getdriver,
593 TYPE_INT, /* interface */
594 MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
595
596 STRUCT(usbdevfs_connectinfo,
597 TYPE_INT, /* devnum */
598 TYPE_CHAR) /* slow */
599
600 STRUCT(usbdevfs_iso_packet_desc,
601 TYPE_INT, /* length */
602 TYPE_INT, /* actual_length */
603 TYPE_INT) /* status */
604
605 STRUCT(usbdevfs_urb,
606 TYPE_CHAR, /* type */
607 TYPE_CHAR, /* endpoint */
608 TYPE_INT, /* status */
609 TYPE_INT, /* flags */
610 TYPE_PTRVOID, /* buffer */
611 TYPE_INT, /* buffer_length */
612 TYPE_INT, /* actual_length */
613 TYPE_INT, /* start_frame */
614 TYPE_INT, /* union number_of_packets stream_id */
615 TYPE_INT, /* error_count */
616 TYPE_INT, /* signr */
617 TYPE_PTRVOID, /* usercontext */
618 MK_ARRAY(MK_STRUCT(STRUCT_usbdevfs_iso_packet_desc), 0)) /* desc */
619
620 STRUCT(usbdevfs_ioctl,
621 TYPE_INT, /* ifno */
622 TYPE_INT, /* ioctl_code */
623 TYPE_PTRVOID) /* data */
624
625 STRUCT(usbdevfs_hub_portinfo,
626 TYPE_CHAR, /* nports */
627 MK_ARRAY(TYPE_CHAR, 127)) /* port */
628
629 STRUCT(usbdevfs_disconnect_claim,
630 TYPE_INT, /* interface */
631 TYPE_INT, /* flags */
632 MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
633 #endif /* CONFIG_USBFS */