cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

syscall_types.h (19837B)


      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
    204/* mag tape ioctls */
    205STRUCT(mtop, TYPE_SHORT, TYPE_INT)
    206STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
    207       TYPE_INT, TYPE_INT)
    208STRUCT(mtpos, TYPE_LONG)
    209
    210STRUCT(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
    226STRUCT(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
    256STRUCT(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
    264STRUCT(fb_con2fbmap,
    265       TYPE_INT, /* console     */
    266       TYPE_INT) /* framebuffer */
    267
    268
    269STRUCT(vt_stat,
    270       TYPE_SHORT, /* v_active */
    271       TYPE_SHORT, /* v_signal */
    272       TYPE_SHORT) /* v_state */
    273
    274STRUCT(vt_mode,
    275       TYPE_CHAR,  /* mode   */
    276       TYPE_CHAR,  /* waitv  */
    277       TYPE_SHORT, /* relsig */
    278       TYPE_SHORT, /* acqsig */
    279       TYPE_SHORT) /* frsig  */
    280
    281STRUCT(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
    295STRUCT(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
    302STRUCT(dm_target_deps,
    303       TYPE_INT, /* count */
    304       TYPE_INT) /* padding */
    305
    306STRUCT(dm_name_list,
    307       TYPE_ULONGLONG, /* dev */
    308       TYPE_INT) /* next */
    309
    310STRUCT(dm_target_versions,
    311       TYPE_INT, /* next */
    312       MK_ARRAY(TYPE_INT, 3)) /* version*/
    313
    314STRUCT(dm_target_msg,
    315       TYPE_ULONGLONG) /* sector */
    316
    317STRUCT(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
    328STRUCT(drm_i915_getparam,
    329       TYPE_INT, /* param */
    330       TYPE_PTRVOID) /* value */
    331
    332STRUCT(file_clone_range,
    333       TYPE_LONGLONG, /* src_fd */
    334       TYPE_ULONGLONG, /* src_offset */
    335       TYPE_ULONGLONG, /* src_length */
    336       TYPE_ULONGLONG) /* dest_offset */
    337
    338STRUCT(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
    346STRUCT(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
    354STRUCT(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)
    365STRUCT(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
    371STRUCT(btrfs_ioctl_timespec,
    372       TYPE_ULONGLONG, /* sec */
    373       TYPE_INT) /* nsec */
    374
    375STRUCT(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
    397STRUCT(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
    404STRUCT(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)
    412STRUCT(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
    421STRUCT(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)
    429STRUCT(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
    446STRUCT(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
    458STRUCT(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
    468STRUCT(rootref,
    469       TYPE_ULONGLONG, /* treeid */
    470       TYPE_ULONGLONG) /* dirid */
    471
    472STRUCT(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
    481STRUCT(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
    490STRUCT(btrfs_ioctl_quota_ctl_args,
    491       TYPE_ULONGLONG, /* cmd */
    492       TYPE_ULONGLONG) /* status */
    493
    494STRUCT(btrfs_ioctl_quota_rescan_args,
    495       TYPE_ULONGLONG, /* flags */
    496       TYPE_ULONGLONG, /* progress */
    497       MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
    498
    499STRUCT(btrfs_ioctl_qgroup_assign_args,
    500       TYPE_ULONGLONG, /* assign */
    501       TYPE_ULONGLONG, /* src */
    502       TYPE_ULONGLONG) /* dst */
    503
    504STRUCT(btrfs_ioctl_qgroup_create_args,
    505       TYPE_ULONGLONG, /* create */
    506       TYPE_ULONGLONG) /* qgroupid */
    507
    508STRUCT(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
    515STRUCT(btrfs_ioctl_qgroup_limit_args,
    516       TYPE_ULONGLONG, /* qgroupid */
    517       MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
    518
    519STRUCT(btrfs_ioctl_feature_flags,
    520       TYPE_ULONGLONG, /* compat_flags */
    521       TYPE_ULONGLONG, /* compat_ro_flags */
    522       TYPE_ULONGLONG) /* incompat_flags */
    523
    524STRUCT(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
    535STRUCT(rtc_wkalrm,
    536       TYPE_CHAR, /* enabled */
    537       TYPE_CHAR, /* pending */
    538       MK_STRUCT(STRUCT_rtc_time)) /* time */
    539
    540STRUCT(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
    549STRUCT(blkpg_ioctl_arg,
    550       TYPE_INT, /* op */
    551       TYPE_INT, /* flags */
    552       TYPE_INT, /* datalen */
    553       TYPE_PTRVOID) /* data */
    554
    555STRUCT(format_descr,
    556       TYPE_INT,     /* device */
    557       TYPE_INT,     /* head */
    558       TYPE_INT)     /* track */
    559
    560STRUCT(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 */
    569STRUCT(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
    578STRUCT(usbdevfs_bulktransfer,
    579        TYPE_INT, /* ep */
    580        TYPE_INT, /* len */
    581        TYPE_INT, /* timeout */
    582        TYPE_PTRVOID) /* data */
    583
    584STRUCT(usbdevfs_setinterface,
    585        TYPE_INT, /* interface */
    586        TYPE_INT) /* altsetting */
    587
    588STRUCT(usbdevfs_disconnectsignal,
    589        TYPE_INT, /* signr */
    590        TYPE_PTRVOID) /* context */
    591
    592STRUCT(usbdevfs_getdriver,
    593        TYPE_INT, /* interface */
    594        MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
    595
    596STRUCT(usbdevfs_connectinfo,
    597        TYPE_INT, /* devnum */
    598        TYPE_CHAR) /* slow */
    599
    600STRUCT(usbdevfs_iso_packet_desc,
    601        TYPE_INT, /* length */
    602        TYPE_INT, /* actual_length */
    603        TYPE_INT) /* status */
    604
    605STRUCT(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
    620STRUCT(usbdevfs_ioctl,
    621        TYPE_INT, /* ifno */
    622        TYPE_INT, /* ioctl_code */
    623        TYPE_PTRVOID) /* data */
    624
    625STRUCT(usbdevfs_hub_portinfo,
    626        TYPE_CHAR, /* nports */
    627        MK_ARRAY(TYPE_CHAR, 127)) /* port */
    628
    629STRUCT(usbdevfs_disconnect_claim,
    630        TYPE_INT, /* interface */
    631        TYPE_INT, /* flags */
    632        MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
    633#endif /* CONFIG_USBFS */