ioctl: add decoding support for btrfs ioctls

* btrfs.c: New file.
* file_ioctl.c: Likewise.
* Makefile.am (strace_SOURCES): Add them.
* configure.ac (AC_CHECK_HEADERS): Add linux/btrfs.h.
(AC_CHECK_MEMBERS): Add struct btrfs_ioctl_feature_flags.compat_flags,
struct btrfs_ioctl_fs_info_args.nodesize,
struct btrfs_ioctl_defrag_range_args.start,
and struct btrfs_ioctl_search_args_v2.buf_size.
(AC_CHECK_DECLS): Add BTRFS_COMPRESS_* enums.
* defs.h (btrfs_ioctl, file_ioctl): New prototypes.
* ioctl.c (ioctl_decode) [HAVE_LINUX_BTRFS_H]: Use btrfs_ioctl.
* xlat/btrfs_balance_args.in: New file.
* xlat/btrfs_balance_ctl_cmds.in: Likewise.
* xlat/btrfs_balance_flags.in: Likewise.
* xlat/btrfs_balance_state.in: Likewise.
* xlat/btrfs_compress_types.in: Likewise.
* xlat/btrfs_defrag_flags.in: Likewise.
* xlat/btrfs_dev_replace_cmds.in: Likewise.
* xlat/btrfs_dev_replace_results.in: Likewise.
* xlat/btrfs_dev_replace_state.in: Likewise.
* xlat/btrfs_dev_stats_flags.in: Likewise.
* xlat/btrfs_dev_stats_values.in: Likewise.
* xlat/btrfs_features_compat.in: Likewise.
* xlat/btrfs_features_compat_ro.in: Likewise.
* xlat/btrfs_features_incompat.in: Likewise.
* xlat/btrfs_key_types.in: Likewise.
* xlat/btrfs_qgroup_ctl_cmds.in: Likewise.
* xlat/btrfs_qgroup_inherit_flags.in: Likewise.
* xlat/btrfs_qgroup_limit_flags.in: Likewise.
* xlat/btrfs_qgroup_status_flags.in: Likewise.
* xlat/btrfs_scrub_flags.in: Likewise.
* xlat/btrfs_send_flags.in: Likewise.
* xlat/btrfs_snap_flags_v2.in: Likewise.
* xlat/btrfs_space_info_flags.in: Likewise.
* xlat/btrfs_tree_objectids.in: Likewise.
30 files changed
tree: b2b59fbd008dc5cc02a23a551b982c9ed73ac58a
  1. .gitignore
  2. .mailmap
  3. .travis.yml
  4. AUTHORS
  5. COPYING
  6. CREDITS.in
  7. ChangeLog-CVS
  8. HACKING-scripts
  9. INSTALL
  10. Makefile.am
  11. NEWS
  12. README
  13. README-hacking
  14. README-linux-ptrace
  15. README-mpers
  16. README.md
  17. access.c
  18. affinity.c
  19. aio.c
  20. alpha.c
  21. bjm.c
  22. block.c
  23. bootstrap
  24. bpf.c
  25. btrfs.c
  26. build_static_example.sh
  27. cacheflush.c
  28. capability.c
  29. caps0.h
  30. caps1.h
  31. chdir.c
  32. chmod.c
  33. clone.c
  34. configure.ac
  35. copy_file_range.c
  36. count.c
  37. debian/
  38. defs.h
  39. desc.c
  40. dirent.c
  41. dirent64.c
  42. empty.h
  43. epoll.c
  44. errnoent.sh
  45. evdev.c
  46. eventfd.c
  47. execve.c
  48. exit.c
  49. fadvise.c
  50. fallocate.c
  51. fanotify.c
  52. fchownat.c
  53. fcntl.c
  54. fetch_seccomp_fprog.c
  55. fetch_struct_flock.c
  56. fetch_struct_statfs.c
  57. file.c
  58. file_handle.c
  59. file_ioctl.c
  60. flock.c
  61. flock.h
  62. fstatfs.c
  63. fstatfs64.c
  64. futex.c
  65. gcc_compat.h
  66. generate_mpers_am.sh
  67. generate_sen.sh
  68. generate_xlat_in.sh
  69. get_robust_list.c
  70. getcpu.c
  71. getcwd.c
  72. getrandom.c
  73. git-set-file-times
  74. git-version-gen
  75. gitlog-to-changelog
  76. hostname.c
  77. inotify.c
  78. io.c
  79. ioctl.c
  80. ioctlsort.c
  81. ioperm.c
  82. iopl.c
  83. ioprio.c
  84. ipc_defs.h
  85. ipc_msg.c
  86. ipc_msgctl.c
  87. ipc_sem.c
  88. ipc_shm.c
  89. ipc_shmctl.c
  90. kcmp.c
  91. kernel_types.h
  92. kexec.c
  93. keyctl.c
  94. ldt.c
  95. link.c
  96. linux/
  97. lookup_dcookie.c
  98. loop.c
  99. lseek.c
  100. m4/
  101. maint/
  102. make-dist
  103. mem.c
  104. membarrier.c
  105. memfd_create.c
  106. mknod.c
  107. mount.c
  108. mpers.awk
  109. mpers.sh
  110. mpers_test.sh
  111. mpers_type.h
  112. mq.c
  113. mtd.c
  114. native_defs.h
  115. net.c
  116. numa.c
  117. open.c
  118. or1k_atomic.c
  119. pathtrace.c
  120. perf.c
  121. personality.c
  122. poll.c
  123. prctl.c
  124. print_mq_attr.c
  125. print_msgbuf.c
  126. print_sigevent.c
  127. print_statfs.c
  128. print_time.c
  129. print_timex.c
  130. printmode.c
  131. printrusage.c
  132. printsiginfo.c
  133. printsiginfo.h
  134. printstat.h
  135. process.c
  136. process_vm.c
  137. ptp.c
  138. ptrace.h
  139. qemu_multiarch_testing/
  140. quota.c
  141. readahead.c
  142. readlink.c
  143. reboot.c
  144. regs.h
  145. renameat.c
  146. resource.c
  147. rtc.c
  148. sched.c
  149. scsi.c
  150. seccomp.c
  151. seccomp_fprog.h
  152. sendfile.c
  153. sigaltstack.c
  154. sigevent.h
  155. signal.c
  156. signalent.sh
  157. signalfd.c
  158. sigreturn.c
  159. sock.c
  160. socketutils.c
  161. sram_alloc.c
  162. statfs.c
  163. statfs.h
  164. statfs64.c
  165. strace-graph
  166. strace-log-merge
  167. strace.1
  168. strace.c
  169. strace.spec
  170. swapon.c
  171. sync_file_range.c
  172. sync_file_range2.c
  173. syscall.c
  174. syscallent.sh
  175. sysctl.c
  176. sysinfo.c
  177. syslog.c
  178. sysmips.c
  179. term.c
  180. test/
  181. tests/
  182. time.c
  183. times.c
  184. travis-ci.sh
  185. truncate.c
  186. uid.c
  187. uid16.c
  188. umask.c
  189. umount.c
  190. uname.c
  191. unwind.c
  192. upeek.c
  193. userfaultfd.c
  194. util.c
  195. utime.c
  196. utimes.c
  197. v4l2.c
  198. vsprintf.c
  199. wait.c
  200. xattr.c
  201. xlat.h
  202. xlat/
  203. xlate.el
  204. xmalloc.c
README.md

This is strace -- a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as ptrace.

strace is released under a Berkeley-style license at the request of Paul Kranenburg; see the file COPYING for details.

See the file NEWS for information on what has changed in recent versions.

Please send bug reports and enhancements to the strace mailing list.

Build Status Code Coverage