syscall_types.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. STRUCT_SPECIAL(termios)
  2. STRUCT(winsize,
  3. TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT)
  4. STRUCT(serial_multiport_struct,
  5. TYPE_INT, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR,
  6. TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_CHAR, TYPE_CHAR, TYPE_INT,
  7. MK_ARRAY(TYPE_INT, 32))
  8. STRUCT(serial_icounter_struct,
  9. TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, MK_ARRAY(TYPE_INT, 16))
  10. STRUCT(sockaddr,
  11. TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
  12. STRUCT(rtentry,
  13. TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
  14. TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
  15. TYPE_ULONG, TYPE_ULONG, TYPE_SHORT)
  16. STRUCT(ifmap,
  17. TYPE_ULONG, TYPE_ULONG, TYPE_SHORT, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR,
  18. /* Spare 3 bytes */
  19. TYPE_CHAR, TYPE_CHAR, TYPE_CHAR)
  20. /* The *_ifreq_list arrays deal with the fact that struct ifreq has unions */
  21. STRUCT(sockaddr_ifreq,
  22. MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr))
  23. STRUCT(short_ifreq,
  24. MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_SHORT)
  25. STRUCT(int_ifreq,
  26. MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT)
  27. STRUCT(ifmap_ifreq,
  28. MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_ifmap))
  29. STRUCT(char_ifreq,
  30. MK_ARRAY(TYPE_CHAR, IFNAMSIZ),
  31. MK_ARRAY(TYPE_CHAR, IFNAMSIZ))
  32. STRUCT(ptr_ifreq,
  33. MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID)
  34. STRUCT(ifconf,
  35. TYPE_INT, TYPE_PTRVOID)
  36. STRUCT(arpreq,
  37. MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr),
  38. MK_ARRAY(TYPE_CHAR, 16))
  39. STRUCT(arpreq_old,
  40. MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), TYPE_INT, MK_STRUCT(STRUCT_sockaddr))
  41. STRUCT(cdrom_read_audio,
  42. TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_CHAR, TYPE_INT, TYPE_PTRVOID,
  43. TYPE_NULL)
  44. STRUCT(hd_geometry,
  45. TYPE_CHAR, TYPE_CHAR, TYPE_SHORT, TYPE_ULONG)
  46. STRUCT(dirent,
  47. TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256))
  48. STRUCT(kbentry,
  49. TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)
  50. STRUCT(kbsentry,
  51. TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
  52. STRUCT(audio_buf_info,
  53. TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
  54. STRUCT(count_info,
  55. TYPE_INT, TYPE_INT, TYPE_INT)
  56. STRUCT(buffmem_desc,
  57. TYPE_PTRVOID, TYPE_INT)
  58. STRUCT(mixer_info,
  59. MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
  60. STRUCT(snd_timer_id,
  61. TYPE_INT, /* dev_class */
  62. TYPE_INT, /* dev_sclass */
  63. TYPE_INT, /* card */
  64. TYPE_INT, /* device */
  65. TYPE_INT) /* subdevice */
  66. STRUCT(snd_timer_ginfo,
  67. MK_STRUCT(STRUCT_snd_timer_id), /* tid */
  68. TYPE_INT, /* flags */
  69. TYPE_INT, /* card */
  70. MK_ARRAY(TYPE_CHAR, 64), /* id */
  71. MK_ARRAY(TYPE_CHAR, 80), /* name */
  72. TYPE_ULONG, /* reserved0 */
  73. TYPE_ULONG, /* resolution */
  74. TYPE_ULONG, /* resolution_min */
  75. TYPE_ULONG, /* resolution_max */
  76. TYPE_INT, /* clients */
  77. MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
  78. STRUCT(snd_timer_gparams,
  79. MK_STRUCT(STRUCT_snd_timer_id), /* tid */
  80. TYPE_ULONG, /* period_num */
  81. TYPE_ULONG, /* period_den */
  82. MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
  83. STRUCT(snd_timer_gstatus,
  84. MK_STRUCT(STRUCT_snd_timer_id), /* tid */
  85. TYPE_ULONG, /* resolution */
  86. TYPE_ULONG, /* resolution_num */
  87. TYPE_ULONG, /* resolution_den */
  88. MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
  89. STRUCT(snd_timer_select,
  90. MK_STRUCT(STRUCT_snd_timer_id), /* id */
  91. MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
  92. STRUCT(snd_timer_info,
  93. TYPE_INT, /* flags */
  94. TYPE_INT, /* card */
  95. MK_ARRAY(TYPE_CHAR, 64), /* id */
  96. MK_ARRAY(TYPE_CHAR, 80), /* name */
  97. TYPE_ULONG, /* reserved0 */
  98. TYPE_ULONG, /* resolution */
  99. MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
  100. STRUCT(snd_timer_params,
  101. TYPE_INT, /* flags */
  102. TYPE_INT, /* ticks */
  103. TYPE_INT, /* queue_size */
  104. TYPE_INT, /* reserved0 */
  105. TYPE_INT, /* filter */
  106. MK_ARRAY(TYPE_CHAR, 60)) /* reserved */
  107. #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
  108. STRUCT(timeval,
  109. TYPE_LONG, /* tv_sec */
  110. TYPE_INT) /* tv_usec */
  111. STRUCT(_kernel_sock_timeval,
  112. TYPE_LONG, /* tv_sec */
  113. TYPE_INT) /* tv_usec */
  114. #else
  115. STRUCT(timeval,
  116. TYPE_LONG, /* tv_sec */
  117. TYPE_LONG) /* tv_usec */
  118. STRUCT(_kernel_sock_timeval,
  119. TYPE_LONGLONG, /* tv_sec */
  120. TYPE_LONGLONG) /* tv_usec */
  121. #endif
  122. STRUCT(timespec,
  123. TYPE_LONG, /* tv_sec */
  124. TYPE_LONG) /* tv_nsec */
  125. STRUCT(_kernel_timespec,
  126. TYPE_LONGLONG, /* tv_sec */
  127. TYPE_LONGLONG) /* tv_nsec */
  128. STRUCT(snd_timer_status,
  129. MK_STRUCT(STRUCT_timespec), /* tstamp */
  130. TYPE_INT, /* resolution */
  131. TYPE_INT, /* lost */
  132. TYPE_INT, /* overrun */
  133. TYPE_INT, /* queue */
  134. MK_ARRAY(TYPE_CHAR, 64)) /* reserved */
  135. /* loop device ioctls */
  136. STRUCT(loop_info,
  137. TYPE_INT, /* lo_number */
  138. TYPE_OLDDEVT, /* lo_device */
  139. TYPE_ULONG, /* lo_inode */
  140. TYPE_OLDDEVT, /* lo_rdevice */
  141. TYPE_INT, /* lo_offset */
  142. TYPE_INT, /* lo_encrypt_type */
  143. TYPE_INT, /* lo_encrypt_key_size */
  144. TYPE_INT, /* lo_flags */
  145. MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
  146. MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
  147. MK_ARRAY(TYPE_ULONG, 2), /* lo_init */
  148. MK_ARRAY(TYPE_CHAR, 4)) /* reserved */
  149. STRUCT(loop_info64,
  150. TYPE_ULONGLONG, /* lo_device */
  151. TYPE_ULONGLONG, /* lo_inode */
  152. TYPE_ULONGLONG, /* lo_rdevice */
  153. TYPE_ULONGLONG, /* lo_offset */
  154. TYPE_ULONGLONG, /* lo_sizelimit */
  155. TYPE_INT, /* lo_number */
  156. TYPE_INT, /* lo_encrypt_type */
  157. TYPE_INT, /* lo_encrypt_key_size */
  158. TYPE_INT, /* lo_flags */
  159. MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
  160. MK_ARRAY(TYPE_CHAR, 64), /* lo_crypt_name */
  161. MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
  162. MK_ARRAY(TYPE_ULONGLONG, 2)) /* lo_init */
  163. STRUCT(loop_config,
  164. TYPE_INT, /* fd */
  165. TYPE_INT, /* block_size */
  166. MK_STRUCT(STRUCT_loop_info64), /* info */
  167. MK_ARRAY(TYPE_ULONGLONG, 8)) /* __reserved */
  168. /* mag tape ioctls */
  169. STRUCT(mtop, TYPE_SHORT, TYPE_INT)
  170. STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
  171. TYPE_INT, TYPE_INT)
  172. STRUCT(mtpos, TYPE_LONG)
  173. STRUCT(fb_fix_screeninfo,
  174. MK_ARRAY(TYPE_CHAR, 16), /* id */
  175. TYPE_ULONG, /* smem_start */
  176. TYPE_INT, /* smem_len */
  177. TYPE_INT, /* type */
  178. TYPE_INT, /* type_aux */
  179. TYPE_INT, /* visual */
  180. TYPE_SHORT, /* xpanstep */
  181. TYPE_SHORT, /* ypanstep */
  182. TYPE_SHORT, /* ywrapstep */
  183. TYPE_INT, /* line_length */
  184. TYPE_ULONG, /* mmio_start */
  185. TYPE_INT, /* mmio_len */
  186. TYPE_INT, /* accel */
  187. MK_ARRAY(TYPE_CHAR, 3)) /* reserved */
  188. STRUCT(fb_var_screeninfo,
  189. TYPE_INT, /* xres */
  190. TYPE_INT, /* yres */
  191. TYPE_INT, /* xres_virtual */
  192. TYPE_INT, /* yres_virtual */
  193. TYPE_INT, /* xoffset */
  194. TYPE_INT, /* yoffset */
  195. TYPE_INT, /* bits_per_pixel */
  196. TYPE_INT, /* grayscale */
  197. MK_ARRAY(TYPE_INT, 3), /* red */
  198. MK_ARRAY(TYPE_INT, 3), /* green */
  199. MK_ARRAY(TYPE_INT, 3), /* blue */
  200. MK_ARRAY(TYPE_INT, 3), /* transp */
  201. TYPE_INT, /* nonstd */
  202. TYPE_INT, /* activate */
  203. TYPE_INT, /* height */
  204. TYPE_INT, /* width */
  205. TYPE_INT, /* accel_flags */
  206. TYPE_INT, /* pixclock */
  207. TYPE_INT, /* left_margin */
  208. TYPE_INT, /* right_margin */
  209. TYPE_INT, /* upper_margin */
  210. TYPE_INT, /* lower_margin */
  211. TYPE_INT, /* hsync_len */
  212. TYPE_INT, /* vsync_len */
  213. TYPE_INT, /* sync */
  214. TYPE_INT, /* vmode */
  215. TYPE_INT, /* rotate */
  216. MK_ARRAY(TYPE_INT, 5)) /* reserved */
  217. STRUCT(fb_cmap,
  218. TYPE_INT, /* start */
  219. TYPE_INT, /* len */
  220. TYPE_PTRVOID, /* red */
  221. TYPE_PTRVOID, /* green */
  222. TYPE_PTRVOID, /* blue */
  223. TYPE_PTRVOID) /* transp */
  224. STRUCT(fb_con2fbmap,
  225. TYPE_INT, /* console */
  226. TYPE_INT) /* framebuffer */
  227. STRUCT(vt_stat,
  228. TYPE_SHORT, /* v_active */
  229. TYPE_SHORT, /* v_signal */
  230. TYPE_SHORT) /* v_state */
  231. STRUCT(vt_mode,
  232. TYPE_CHAR, /* mode */
  233. TYPE_CHAR, /* waitv */
  234. TYPE_SHORT, /* relsig */
  235. TYPE_SHORT, /* acqsig */
  236. TYPE_SHORT) /* frsig */
  237. STRUCT(dm_ioctl,
  238. MK_ARRAY(TYPE_INT, 3), /* version */
  239. TYPE_INT, /* data_size */
  240. TYPE_INT, /* data_start */
  241. TYPE_INT, /* target_count*/
  242. TYPE_INT, /* open_count */
  243. TYPE_INT, /* flags */
  244. TYPE_INT, /* event_nr */
  245. TYPE_INT, /* padding */
  246. TYPE_ULONGLONG, /* dev */
  247. MK_ARRAY(TYPE_CHAR, 128), /* name */
  248. MK_ARRAY(TYPE_CHAR, 129), /* uuid */
  249. MK_ARRAY(TYPE_CHAR, 7)) /* data */
  250. STRUCT(dm_target_spec,
  251. TYPE_ULONGLONG, /* sector_start */
  252. TYPE_ULONGLONG, /* length */
  253. TYPE_INT, /* status */
  254. TYPE_INT, /* next */
  255. MK_ARRAY(TYPE_CHAR, 16)) /* target_type */
  256. STRUCT(dm_target_deps,
  257. TYPE_INT, /* count */
  258. TYPE_INT) /* padding */
  259. STRUCT(dm_name_list,
  260. TYPE_ULONGLONG, /* dev */
  261. TYPE_INT) /* next */
  262. STRUCT(dm_target_versions,
  263. TYPE_INT, /* next */
  264. MK_ARRAY(TYPE_INT, 3)) /* version*/
  265. STRUCT(dm_target_msg,
  266. TYPE_ULONGLONG) /* sector */
  267. STRUCT(drm_version,
  268. TYPE_INT, /* version_major */
  269. TYPE_INT, /* version_minor */
  270. TYPE_INT, /* version_patchlevel */
  271. TYPE_ULONG, /* name_len */
  272. TYPE_PTRVOID, /* name */
  273. TYPE_ULONG, /* date_len */
  274. TYPE_PTRVOID, /* date */
  275. TYPE_ULONG, /* desc_len */
  276. TYPE_PTRVOID) /* desc */
  277. STRUCT(drm_i915_getparam,
  278. TYPE_INT, /* param */
  279. TYPE_PTRVOID) /* value */
  280. STRUCT(file_clone_range,
  281. TYPE_LONGLONG, /* src_fd */
  282. TYPE_ULONGLONG, /* src_offset */
  283. TYPE_ULONGLONG, /* src_length */
  284. TYPE_ULONGLONG) /* dest_offset */
  285. STRUCT(fiemap_extent,
  286. TYPE_ULONGLONG, /* fe_logical */
  287. TYPE_ULONGLONG, /* fe_physical */
  288. TYPE_ULONGLONG, /* fe_length */
  289. MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
  290. TYPE_INT, /* fe_flags */
  291. MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
  292. STRUCT(fiemap,
  293. TYPE_ULONGLONG, /* fm_start */
  294. TYPE_ULONGLONG, /* fm_length */
  295. TYPE_INT, /* fm_flags */
  296. TYPE_INT, /* fm_mapped_extents */
  297. TYPE_INT, /* fm_extent_count */
  298. TYPE_INT) /* fm_reserved */
  299. STRUCT(blkpg_partition,
  300. TYPE_LONGLONG, /* start */
  301. TYPE_LONGLONG, /* length */
  302. TYPE_INT, /* pno */
  303. MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
  304. MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
  305. #if defined(BTRFS_IOC_SUBVOL_CREATE) || defined(BTRFS_IOC_SNAP_CREATE) || \
  306. defined(BTRFS_IOC_SNAP_DESTROY) || defined(BTRFS_IOC_SCAN_DEV) || \
  307. defined(BTRFS_IOC_FORGET_DEV) || defined(BTRFS_IOC_ADD_DEV) || \
  308. defined(BTRFS_IOC_RM_DEV) || defined(BTRFS_IOC_DEV_INFO)
  309. STRUCT(btrfs_ioctl_vol_args,
  310. TYPE_LONGLONG, /* fd */
  311. MK_ARRAY(TYPE_CHAR, BTRFS_PATH_NAME_MAX + 1)) /* name */
  312. #endif
  313. #ifdef BTRFS_IOC_GET_SUBVOL_INFO
  314. STRUCT(btrfs_ioctl_timespec,
  315. TYPE_ULONGLONG, /* sec */
  316. TYPE_INT) /* nsec */
  317. STRUCT(btrfs_ioctl_get_subvol_info_args,
  318. TYPE_ULONGLONG, /* treeid */
  319. MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1),
  320. TYPE_ULONGLONG, /* parentid */
  321. TYPE_ULONGLONG, /* dirid */
  322. TYPE_ULONGLONG, /* generation */
  323. TYPE_ULONGLONG, /* flags */
  324. MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
  325. MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* parent_uuid */
  326. MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* received_uuid */
  327. TYPE_ULONGLONG, /* ctransid */
  328. TYPE_ULONGLONG, /* otransid */
  329. TYPE_ULONGLONG, /* stransid */
  330. TYPE_ULONGLONG, /* rtransid */
  331. MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* ctime */
  332. MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* otime */
  333. MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* stime */
  334. MK_STRUCT(STRUCT_btrfs_ioctl_timespec), /* rtime */
  335. MK_ARRAY(TYPE_ULONGLONG, 8)) /* reserved */
  336. #endif
  337. #ifdef BTRFS_IOC_INO_LOOKUP
  338. STRUCT(btrfs_ioctl_ino_lookup_args,
  339. TYPE_ULONGLONG, /* treeid */
  340. TYPE_ULONGLONG, /* objectid */
  341. MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_PATH_MAX)) /* name */
  342. #endif
  343. #ifdef BTRFS_IOC_INO_PATHS
  344. STRUCT(btrfs_ioctl_ino_path_args,
  345. TYPE_ULONGLONG, /* inum */
  346. TYPE_ULONGLONG, /* size */
  347. MK_ARRAY(TYPE_ULONGLONG, 4), /* reserved */
  348. TYPE_ULONGLONG) /* fspath */
  349. #endif
  350. #if defined(BTRFS_IOC_LOGICAL_INO) || defined(BTRFS_IOC_LOGICAL_INO_V2)
  351. STRUCT(btrfs_ioctl_logical_ino_args,
  352. TYPE_ULONGLONG, /* logical */
  353. TYPE_ULONGLONG, /* size */
  354. MK_ARRAY(TYPE_ULONGLONG, 3), /* reserved */
  355. TYPE_ULONGLONG, /* flags */
  356. TYPE_ULONGLONG) /* inodes */
  357. #endif
  358. #ifdef BTRFS_IOC_INO_LOOKUP_USER
  359. STRUCT(btrfs_ioctl_ino_lookup_user_args,
  360. TYPE_ULONGLONG, /* dirid */
  361. TYPE_ULONGLONG, /* treeid */
  362. MK_ARRAY(TYPE_CHAR, BTRFS_VOL_NAME_MAX + 1), /* name */
  363. MK_ARRAY(TYPE_CHAR, BTRFS_INO_LOOKUP_USER_PATH_MAX)) /* path */
  364. #endif
  365. #if defined(BTRFS_IOC_SCRUB) || defined(BTRFS_IOC_SCRUB_PROGRESS)
  366. STRUCT(btrfs_scrub_progress,
  367. TYPE_ULONGLONG, /* data_extents_scrubbed */
  368. TYPE_ULONGLONG, /* tree_extents_scrubbed */
  369. TYPE_ULONGLONG, /* data_bytes_scrubbed */
  370. TYPE_ULONGLONG, /* tree_bytes_scrubbed */
  371. TYPE_ULONGLONG, /* read_errors */
  372. TYPE_ULONGLONG, /* csum_errors */
  373. TYPE_ULONGLONG, /* verify_errors */
  374. TYPE_ULONGLONG, /* no_csum */
  375. TYPE_ULONGLONG, /* csum_discards */
  376. TYPE_ULONGLONG, /* super_errors */
  377. TYPE_ULONGLONG, /* malloc_errors */
  378. TYPE_ULONGLONG, /* uncorrectable_errors */
  379. TYPE_ULONGLONG, /* corrected_er */
  380. TYPE_ULONGLONG, /* last_physical */
  381. TYPE_ULONGLONG) /* unverified_errors */
  382. STRUCT(btrfs_ioctl_scrub_args,
  383. TYPE_ULONGLONG, /* devid */
  384. TYPE_ULONGLONG, /* start */
  385. TYPE_ULONGLONG, /* end */
  386. TYPE_ULONGLONG, /* flags */
  387. MK_STRUCT(STRUCT_btrfs_scrub_progress), /* progress */
  388. MK_ARRAY(TYPE_ULONGLONG,
  389. (1024 - 32 -
  390. sizeof(struct btrfs_scrub_progress)) / 8)) /* unused */
  391. #endif
  392. #ifdef BTRFS_IOC_DEV_INFO
  393. STRUCT(btrfs_ioctl_dev_info_args,
  394. TYPE_ULONGLONG, /* devid */
  395. MK_ARRAY(TYPE_CHAR, BTRFS_UUID_SIZE), /* uuid */
  396. TYPE_ULONGLONG, /* bytes_used */
  397. TYPE_ULONGLONG, /* total_bytes */
  398. MK_ARRAY(TYPE_ULONGLONG, 379), /* unused */
  399. MK_ARRAY(TYPE_CHAR, BTRFS_DEVICE_PATH_NAME_MAX)) /* path */
  400. #endif
  401. #ifdef BTRFS_IOC_GET_SUBVOL_ROOTREF
  402. STRUCT(rootref,
  403. TYPE_ULONGLONG, /* treeid */
  404. TYPE_ULONGLONG) /* dirid */
  405. STRUCT(btrfs_ioctl_get_subvol_rootref_args,
  406. TYPE_ULONGLONG, /* min_treeid */
  407. MK_ARRAY(MK_STRUCT(STRUCT_rootref),
  408. BTRFS_MAX_ROOTREF_BUFFER_NUM), /* rootref */
  409. TYPE_CHAR, /* num_items */
  410. MK_ARRAY(TYPE_CHAR, 7)) /* align */
  411. #endif
  412. #ifdef BTRFS_IOC_GET_DEV_STATS
  413. STRUCT(btrfs_ioctl_get_dev_stats,
  414. TYPE_ULONGLONG, /* devid */
  415. TYPE_ULONGLONG, /* nr_items */
  416. TYPE_ULONGLONG, /* flags */
  417. MK_ARRAY(TYPE_ULONGLONG, BTRFS_DEV_STAT_VALUES_MAX), /* values */
  418. MK_ARRAY(TYPE_ULONGLONG,
  419. 128 - 2 - BTRFS_DEV_STAT_VALUES_MAX)) /* unused */
  420. #endif
  421. STRUCT(btrfs_ioctl_quota_ctl_args,
  422. TYPE_ULONGLONG, /* cmd */
  423. TYPE_ULONGLONG) /* status */
  424. STRUCT(btrfs_ioctl_quota_rescan_args,
  425. TYPE_ULONGLONG, /* flags */
  426. TYPE_ULONGLONG, /* progress */
  427. MK_ARRAY(TYPE_ULONGLONG, 6)) /* reserved */
  428. STRUCT(btrfs_ioctl_qgroup_assign_args,
  429. TYPE_ULONGLONG, /* assign */
  430. TYPE_ULONGLONG, /* src */
  431. TYPE_ULONGLONG) /* dst */
  432. STRUCT(btrfs_ioctl_qgroup_create_args,
  433. TYPE_ULONGLONG, /* create */
  434. TYPE_ULONGLONG) /* qgroupid */
  435. STRUCT(btrfs_qgroup_limit,
  436. TYPE_ULONGLONG, /* flags */
  437. TYPE_ULONGLONG, /* max_rfer */
  438. TYPE_ULONGLONG, /* max_excl */
  439. TYPE_ULONGLONG, /* rsv_rfer */
  440. TYPE_ULONGLONG) /* rsv_excl */
  441. STRUCT(btrfs_ioctl_qgroup_limit_args,
  442. TYPE_ULONGLONG, /* qgroupid */
  443. MK_STRUCT(STRUCT_btrfs_qgroup_limit)) /* lim */
  444. STRUCT(btrfs_ioctl_feature_flags,
  445. TYPE_ULONGLONG, /* compat_flags */
  446. TYPE_ULONGLONG, /* compat_ro_flags */
  447. TYPE_ULONGLONG) /* incompat_flags */
  448. STRUCT(rtc_time,
  449. TYPE_INT, /* tm_sec */
  450. TYPE_INT, /* tm_min */
  451. TYPE_INT, /* tm_hour */
  452. TYPE_INT, /* tm_mday */
  453. TYPE_INT, /* tm_mon */
  454. TYPE_INT, /* tm_year */
  455. TYPE_INT, /* tm_wday */
  456. TYPE_INT, /* tm_yday */
  457. TYPE_INT) /* tm_isdst */
  458. STRUCT(rtc_wkalrm,
  459. TYPE_CHAR, /* enabled */
  460. TYPE_CHAR, /* pending */
  461. MK_STRUCT(STRUCT_rtc_time)) /* time */
  462. STRUCT(rtc_pll_info,
  463. TYPE_INT, /* pll_ctrl */
  464. TYPE_INT, /* pll_value */
  465. TYPE_INT, /* pll_max */
  466. TYPE_INT, /* pll_min */
  467. TYPE_INT, /* pll_posmult */
  468. TYPE_INT, /* pll_negmult */
  469. TYPE_LONG) /* pll_clock */
  470. STRUCT(blkpg_ioctl_arg,
  471. TYPE_INT, /* op */
  472. TYPE_INT, /* flags */
  473. TYPE_INT, /* datalen */
  474. TYPE_PTRVOID) /* data */
  475. STRUCT(format_descr,
  476. TYPE_INT, /* device */
  477. TYPE_INT, /* head */
  478. TYPE_INT) /* track */
  479. STRUCT(floppy_max_errors,
  480. TYPE_INT, /* abort */
  481. TYPE_INT, /* read_track */
  482. TYPE_INT, /* reset */
  483. TYPE_INT, /* recal */
  484. TYPE_INT) /* reporting */
  485. #if defined(CONFIG_USBFS)
  486. /* usb device ioctls */
  487. STRUCT(usbdevfs_ctrltransfer,
  488. TYPE_CHAR, /* bRequestType */
  489. TYPE_CHAR, /* bRequest */
  490. TYPE_SHORT, /* wValue */
  491. TYPE_SHORT, /* wIndex */
  492. TYPE_SHORT, /* wLength */
  493. TYPE_INT, /* timeout */
  494. TYPE_PTRVOID) /* data */
  495. STRUCT(usbdevfs_bulktransfer,
  496. TYPE_INT, /* ep */
  497. TYPE_INT, /* len */
  498. TYPE_INT, /* timeout */
  499. TYPE_PTRVOID) /* data */
  500. STRUCT(usbdevfs_setinterface,
  501. TYPE_INT, /* interface */
  502. TYPE_INT) /* altsetting */
  503. STRUCT(usbdevfs_disconnectsignal,
  504. TYPE_INT, /* signr */
  505. TYPE_PTRVOID) /* context */
  506. STRUCT(usbdevfs_getdriver,
  507. TYPE_INT, /* interface */
  508. MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
  509. STRUCT(usbdevfs_connectinfo,
  510. TYPE_INT, /* devnum */
  511. TYPE_CHAR) /* slow */
  512. STRUCT(usbdevfs_iso_packet_desc,
  513. TYPE_INT, /* length */
  514. TYPE_INT, /* actual_length */
  515. TYPE_INT) /* status */
  516. STRUCT(usbdevfs_urb,
  517. TYPE_CHAR, /* type */
  518. TYPE_CHAR, /* endpoint */
  519. TYPE_INT, /* status */
  520. TYPE_INT, /* flags */
  521. TYPE_PTRVOID, /* buffer */
  522. TYPE_INT, /* buffer_length */
  523. TYPE_INT, /* actual_length */
  524. TYPE_INT, /* start_frame */
  525. TYPE_INT, /* union number_of_packets stream_id */
  526. TYPE_INT, /* error_count */
  527. TYPE_INT, /* signr */
  528. TYPE_PTRVOID, /* usercontext */
  529. MK_ARRAY(MK_STRUCT(STRUCT_usbdevfs_iso_packet_desc), 0)) /* desc */
  530. STRUCT(usbdevfs_ioctl,
  531. TYPE_INT, /* ifno */
  532. TYPE_INT, /* ioctl_code */
  533. TYPE_PTRVOID) /* data */
  534. STRUCT(usbdevfs_hub_portinfo,
  535. TYPE_CHAR, /* nports */
  536. MK_ARRAY(TYPE_CHAR, 127)) /* port */
  537. STRUCT(usbdevfs_disconnect_claim,
  538. TYPE_INT, /* interface */
  539. TYPE_INT, /* flags */
  540. MK_ARRAY(TYPE_CHAR, USBDEVFS_MAXDRIVERNAME + 1)) /* driver */
  541. #endif /* CONFIG_USBFS */