qemu/linux-user/syscall_types.h
<<
>>
Prefs
   1STRUCT_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,
   8       TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT,
   9       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,
  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
  22STRUCT(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
  29STRUCT(sockaddr_ifreq,
  30       MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr))
  31
  32STRUCT(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,
  52       MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr),
  53       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)
  64
  65STRUCT(dirent,
  66       TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256))
  67
  68STRUCT(kbentry,
  69       TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)
  70
  71STRUCT(kbsentry,
  72       TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
  73
  74STRUCT(audio_buf_info,
  75       TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
  76
  77STRUCT(count_info,
  78       TYPE_INT, TYPE_INT, TYPE_INT)
  79
  80STRUCT(buffmem_desc,
  81       TYPE_PTRVOID, TYPE_INT)
  82
  83STRUCT(mixer_info,
  84       MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
  85
  86STRUCT(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
  93STRUCT(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
 119STRUCT(snd_timer_select,
 120       MK_STRUCT(STRUCT_snd_timer_id), /* id */
 121       MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
 122
 123STRUCT(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
 140#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
 158STRUCT(timespec,
 159       TYPE_LONG, /* tv_sec */
 160       TYPE_LONG) /* tv_nsec */
 161
 162STRUCT(_kernel_timespec,
 163       TYPE_LONGLONG, /* tv_sec */
 164       TYPE_LONGLONG) /* tv_nsec */
 165
 166STRUCT(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 */
 175STRUCT(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
 189STRUCT(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
 204STRUCT(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
 210/* 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)
 215
 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
 262STRUCT(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
 275STRUCT(vt_stat,
 276       TYPE_SHORT, /* v_active */
 277       TYPE_SHORT, /* v_signal */
 278       TYPE_SHORT) /* v_state */
 279
 280STRUCT(vt_mode,
 281       TYPE_CHAR,  /* mode   */
 282       TYPE_CHAR,  /* waitv  */
 283       TYPE_SHORT, /* relsig */
 284       TYPE_SHORT, /* acqsig */
 285       TYPE_SHORT) /* frsig  */
 286
 287STRUCT(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
 323STRUCT(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
 334STRUCT(drm_i915_getparam,
 335       TYPE_INT, /* param */
 336       TYPE_PTRVOID) /* value */
 337
 338STRUCT(file_clone_range,
 339       TYPE_LONGLONG, /* src_fd */
 340       TYPE_ULONGLONG, /* src_offset */
 341       TYPE_ULONGLONG, /* src_length */
 342       TYPE_ULONGLONG) /* dest_offset */
 343
 344STRUCT(fiemap_extent,
 345       TYPE_ULONGLONG, /* fe_logical */
 346       TYPE_ULONGLONG, /* fe_physical */
 347       TYPE_ULONGLONG, /* fe_length */
 348       MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
 349       TYPE_INT, /* fe_flags */
 350       MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
 351
 352STRUCT(fiemap,
 353       TYPE_ULONGLONG, /* fm_start */
 354       TYPE_ULONGLONG, /* fm_length */
 355       TYPE_INT, /* fm_flags */
 356       TYPE_INT, /* fm_mapped_extents */
 357       TYPE_INT, /* fm_extent_count */
 358       TYPE_INT) /* fm_reserved */
 359
 360STRUCT(blkpg_partition,
 361       TYPE_LONGLONG, /* start */
 362       TYPE_LONGLONG, /* length */
 363       TYPE_INT, /* pno */
 364       MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
 365       MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
 366
 367#if defined(BTRFS_IOC_SUBVOL_CREATE) || defined(BTRFS_IOC_SNAP_CREATE) || \
 368    defined(BTRFS_IOC_SNAP_DESTROY)  || defined(BTRFS_IOC_SCAN_DEV)  || \
 369    defined(BTRFS_IOC_FORGET_DEV)    || defined(BTRFS_IOC_ADD_DEV) || \
 370    defined(BTRFS_IOC_RM_DEV)        || defined(BTRFS_IOC_DEV_INFO)
 371STRUCT(btrfs_ioctl_vol_args,
 372       TYPE_LONGLONG, /* fd */
 373       MK_ARRAY(TYPE_CHAR, BTRFS_PATH_NAME_MAX + 1)) /* name */
 374#endif
 375
 376#ifdef BTRFS_IOC_GET_SUBVOL_INFO
 377STRUCT(btrfs_ioctl_timespec,
 378       TYPE_ULONGLONG, /* sec */
 379       TYPE_INT) /* nsec */
 380
 381STRUCT(btrfs_ioctl_get_subvol_info_args,
 382       TYPE_ULONGLONG, /* treeid */
 383       MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1),
 384       TYPE_ULONGLONG, /* parentid */
 385       TYPE_ULONGLONG, /* dirid */
 386       TYPE_ULONGLONG, /* generation */
 387       TYPE_ULONGLONG, /* flags */
 388       MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
 389       MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* parent_uuid */
 390       MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* received_uuid */
 391       TYPE_ULONGLONG, /* ctransid */
 392       TYPE_ULONGLONG, /* otransid */
 393       TYPE_ULONGLONG, /* stransid */
 394       TYPE_ULONGLONG, /* rtransid */
 395       MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* ctime */
 396       MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* otime */
 397       MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* stime */
 398       MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* rtime */
 399       MK_ARRAY(TYPE_ULONGLONG, 8)) /* reserved */
 400#endif
 401
 402#ifdef BTRFS_IOC_INO_LOOKUP
 403STRUCT(btrfs_ioctl_ino_lookup_args,
 404       TYPE_ULONGLONG, /* treeid */
 405       TYPE_ULONGLONG, /* objectid */
 406       MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_PATH_MAX)) /* name */
 407#endif
 408
 409#ifdef BTRFS_IOC_INO_PATHS
 410STRUCT(btrfs_ioctl_ino_path_args,
 411       TYPE_ULONGLONG, /* inum */
 412       TYPE_ULONGLONG, /* size */
 413       MK_ARRAY(TYPE_ULONGLONG, 4), /* reserved */
 414       TYPE_ULONGLONG) /* fspath */
 415#endif
 416
 417#if defined(BTRFS_IOC_LOGICAL_INO) || defined(BTRFS_IOC_LOGICAL_INO_V2)
 418STRUCT(btrfs_ioctl_logical_ino_args,
 419       TYPE_ULONGLONG, /* logical */
 420       TYPE_ULONGLONG, /* size */
 421       MK_ARRAY(TYPE_ULONGLONG, 3), /* reserved */
 422       TYPE_ULONGLONG, /* flags */
 423       TYPE_ULONGLONG) /* inodes */
 424#endif
 425
 426#ifdef BTRFS_IOC_INO_LOOKUP_USER
 427STRUCT(btrfs_ioctl_ino_lookup_user_args,
 428       TYPE_ULONGLONG, /* dirid */
 429       TYPE_ULONGLONG, /* treeid */
 430       MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1), /* name */
 431       MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
 432#endif
 433
 434#if defined(BTRFS_IOC_SCRUB) || defined(BTRFS_IOC_SCRUB_PROGRESS)
 435STRUCT(btrfs_scrub_progress,
 436       TYPE_ULONGLONG, /* data_extents_scrubbed */
 437       TYPE_ULONGLONG, /* tree_extents_scrubbed */
 438       TYPE_ULONGLONG, /* data_bytes_scrubbed */
 439       TYPE_ULONGLONG, /* tree_bytes_scrubbed */
 440       TYPE_ULONGLONG, /* read_errors */
 441       TYPE_ULONGLONG, /* csum_errors */
 442       TYPE_ULONGLONG, /* verify_errors */
 443       TYPE_ULONGLONG, /* no_csum */
 444       TYPE_ULONGLONG, /* csum_discards */
 445       TYPE_ULONGLONG, /* super_errors */
 446       TYPE_ULONGLONG, /* malloc_errors */
 447       TYPE_ULONGLONG, /* uncorrectable_errors */
 448       TYPE_ULONGLONG, /* corrected_er */
 449       TYPE_ULONGLONG, /* last_physical */
 450       TYPE_ULONGLONG) /* unverified_errors */
 451
 452STRUCT(btrfs_ioctl_scrub_args,
 453       TYPE_ULONGLONG, /* devid */
 454       TYPE_ULONGLONG, /* start */
 455       TYPE_ULONGLONG, /* end */
 456       TYPE_ULONGLONG, /* flags */
 457       MK_STRUCT(STRUCT_btrfs_scrub_progress), /* progress */
 458       MK_ARRAY(TYPE_ULONGLONG,
 459                (1024 - 32 -
 460                 sizeof(struct btrfs_scrub_progress)) / 8)) /* unused */
 461#endif
 462
 463#ifdef BTRFS_IOC_DEV_INFO
 464STRUCT(btrfs_ioctl_dev_info_args,
 465       TYPE_ULONGLONG, /* devid */
 466       MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
 467       TYPE_ULONGLONG, /* bytes_used */
 468       TYPE_ULONGLONG, /* total_bytes */
 469       MK_ARRAY(TYPE_ULONGLONG, 379), /* unused */
 470       MK_ARRAY(TYPE_CHAR, BTRFS_DEVICE_PATH_NAME_MAX)) /* path */
 471#endif
 472
 473#ifdef BTRFS_IOC_GET_SUBVOL_ROOTREF
 474STRUCT(rootref,
 475       TYPE_ULONGLONG, /* treeid */
 476       TYPE_ULONGLONG) /* dirid */
 477
 478STRUCT(btrfs_ioctl_get_subvol_rootref_args,
 479       TYPE_ULONGLONG, /* min_treeid */
 480       MK_ARRAY(MK_STRUCT(STRUCT_rootref),
 481                BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
 482       TYPE_CHAR, /* num_items */
 483       MK_ARRAY(TYPE_CHAR, 7)) /* align */
 484#endif
 485
 486#ifdef BTRFS_IOC_GET_DEV_STATS
 487STRUCT(btrfs_ioctl_get_dev_stats,
 488       TYPE_ULONGLONG, /* devid */
 489       TYPE_ULONGLONG, /* nr_items */
 490       TYPE_ULONGLONG, /* flags */
 491       MK_ARRAY(TYPE_ULONGLONG, BTRFS_DEV_STAT_VALUES_MAX), /* values */
 492       MK_ARRAY(TYPE_ULONGLONG,
 493                128 - 2 - BTRFS_DEV_STAT_VALUES_MAX)) /* unused */
 494#endif
 495
 496STRUCT(btrfs_ioctl_quota_ctl_args,
 497       TYPE_ULONGLONG, /* cmd */
 498       TYPE_ULONGLONG) /* status */
 499
 500STRUCT(btrfs_ioctl_quota_rescan_args,
 501       TYPE_ULONGLONG, /* flags */
 502       TYPE_ULONGLONG, /* progress */
 503       MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
 504
 505STRUCT(btrfs_ioctl_qgroup_assign_args,
 506       TYPE_ULONGLONG, /* assign */
 507       TYPE_ULONGLONG, /* src */
 508       TYPE_ULONGLONG) /* dst */
 509
 510STRUCT(btrfs_ioctl_qgroup_create_args,
 511       TYPE_ULONGLONG, /* create */
 512       TYPE_ULONGLONG) /* qgroupid */
 513
 514STRUCT(btrfs_qgroup_limit,
 515       TYPE_ULONGLONG, /* flags */
 516       TYPE_ULONGLONG, /* max_rfer */
 517       TYPE_ULONGLONG, /* max_excl */
 518       TYPE_ULONGLONG, /* rsv_rfer */
 519       TYPE_ULONGLONG) /* rsv_excl */
 520
 521STRUCT(btrfs_ioctl_qgroup_limit_args,
 522       TYPE_ULONGLONG, /* qgroupid */
 523       MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
 524
 525STRUCT(btrfs_ioctl_feature_flags,
 526       TYPE_ULONGLONG, /* compat_flags */
 527       TYPE_ULONGLONG, /* compat_ro_flags */
 528       TYPE_ULONGLONG) /* incompat_flags */
 529
 530STRUCT(rtc_time,
 531       TYPE_INT, /* tm_sec */
 532       TYPE_INT, /* tm_min */
 533       TYPE_INT, /* tm_hour */
 534       TYPE_INT, /* tm_mday */
 535       TYPE_INT, /* tm_mon */
 536       TYPE_INT, /* tm_year */
 537       TYPE_INT, /* tm_wday */
 538       TYPE_INT, /* tm_yday */
 539       TYPE_INT) /* tm_isdst */
 540
 541STRUCT(rtc_wkalrm,
 542       TYPE_CHAR, /* enabled */
 543       TYPE_CHAR, /* pending */
 544       MK_STRUCT(STRUCT_rtc_time)) /* time */
 545
 546STRUCT(rtc_pll_info,
 547       TYPE_INT, /* pll_ctrl */
 548       TYPE_INT, /* pll_value */
 549       TYPE_INT, /* pll_max */
 550       TYPE_INT, /* pll_min */
 551       TYPE_INT, /* pll_posmult */
 552       TYPE_INT, /* pll_negmult */
 553       TYPE_LONG) /* pll_clock */
 554
 555STRUCT(blkpg_ioctl_arg,
 556       TYPE_INT, /* op */
 557       TYPE_INT, /* flags */
 558       TYPE_INT, /* datalen */
 559       TYPE_PTRVOID) /* data */
 560
 561STRUCT(format_descr,
 562       TYPE_INT,     /* device */
 563       TYPE_INT,     /* head */
 564       TYPE_INT)     /* track */
 565
 566STRUCT(floppy_max_errors,
 567       TYPE_INT, /* abort */
 568       TYPE_INT, /* read_track */
 569       TYPE_INT, /* reset */
 570       TYPE_INT, /* recal */
 571       TYPE_INT) /* reporting */
 572
 573#if defined(CONFIG_USBFS)
 574/* usb device ioctls */
 575STRUCT(usbdevfs_ctrltransfer,
 576        TYPE_CHAR, /* bRequestType */
 577        TYPE_CHAR, /* bRequest */
 578        TYPE_SHORT, /* wValue */
 579        TYPE_SHORT, /* wIndex */
 580        TYPE_SHORT, /* wLength */
 581        TYPE_INT, /* timeout */
 582        TYPE_PTRVOID) /* data */
 583
 584STRUCT(usbdevfs_bulktransfer,
 585        TYPE_INT, /* ep */
 586        TYPE_INT, /* len */
 587        TYPE_INT, /* timeout */
 588        TYPE_PTRVOID) /* data */
 589
 590STRUCT(usbdevfs_setinterface,
 591        TYPE_INT, /* interface */
 592        TYPE_INT) /* altsetting */
 593
 594STRUCT(usbdevfs_disconnectsignal,
 595        TYPE_INT, /* signr */
 596        TYPE_PTRVOID) /* context */
 597
 598STRUCT(usbdevfs_getdriver,
 599        TYPE_INT, /* interface */
 600        MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
 601
 602STRUCT(usbdevfs_connectinfo,
 603        TYPE_INT, /* devnum */
 604        TYPE_CHAR) /* slow */
 605
 606STRUCT(usbdevfs_iso_packet_desc,
 607        TYPE_INT, /* length */
 608        TYPE_INT, /* actual_length */
 609        TYPE_INT) /* status */
 610
 611STRUCT(usbdevfs_urb,
 612        TYPE_CHAR, /* type */
 613        TYPE_CHAR, /* endpoint */
 614        TYPE_INT, /* status */
 615        TYPE_INT, /* flags */
 616        TYPE_PTRVOID, /* buffer */
 617        TYPE_INT, /* buffer_length */
 618        TYPE_INT, /* actual_length */
 619        TYPE_INT, /* start_frame */
 620        TYPE_INT, /* union number_of_packets stream_id */
 621        TYPE_INT, /* error_count */
 622        TYPE_INT, /* signr */
 623        TYPE_PTRVOID, /* usercontext */
 624        MK_ARRAY(MK_STRUCT(STRUCT_usbdevfs_iso_packet_desc), 0)) /* desc */
 625
 626STRUCT(usbdevfs_ioctl,
 627        TYPE_INT, /* ifno */
 628        TYPE_INT, /* ioctl_code */
 629        TYPE_PTRVOID) /* data */
 630
 631STRUCT(usbdevfs_hub_portinfo,
 632        TYPE_CHAR, /* nports */
 633        MK_ARRAY(TYPE_CHAR, 127)) /* port */
 634
 635STRUCT(usbdevfs_disconnect_claim,
 636        TYPE_INT, /* interface */
 637        TYPE_INT, /* flags */
 638        MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
 639#endif /* CONFIG_USBFS */
 640