]>
granicus.if.org Git - strace/log
Dmitry V. Levin [Sat, 28 May 2016 19:55:01 +0000 (19:55 +0000)]
tests/ioctl_mtd.c: fix build with musl
* tests/ioctl_mtd.c: Include <linux/ioctl.h>.
Dmitry V. Levin [Sat, 28 May 2016 18:49:47 +0000 (18:49 +0000)]
tests: check decoding of 'M' type ioctls
* tests/ioctl_mtd.c: New file.
* tests/ioctl_mtd.test: New test.
* tests/.gitignore: Add ioctl_mtd.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_mtd.test.
Dmitry V. Levin [Sat, 28 May 2016 18:46:39 +0000 (18:46 +0000)]
Mpersify mtd.c
* defs.h (mtd_ioctl): Remove.
* mtd.c: Mpersify struct mtd_oob_buf and ioctl numbers.
(mtd_ioctl): Mpersify.
Dmitry V. Levin [Sat, 28 May 2016 18:42:50 +0000 (18:42 +0000)]
mtd.c: refactor
* mtd.c (mtd_ioctl): Move parsers of structures to separate functions.
Dmitry V. Levin [Sat, 28 May 2016 10:29:30 +0000 (10:29 +0000)]
Move parser of UBI_* ioctls to a separate file
* mtd.c (ubi_ioctl): Move to ...
* ubi.c: ... new file.
* Makefile.am (strace_SOURCES): Add it.
Dmitry V. Levin [Sat, 28 May 2016 00:51:45 +0000 (00:51 +0000)]
tests: check decoding of EVIOC* ioctls
* tests/ioctl_evdev.c: New file.
* tests/ioctl_evdev-v.c: Likewise.
* tests/ioctl_evdev.test: New test.
* tests/ioctl_evdev-v.test: Likewise.
* tests/.gitignore: Add ioctl_evdev and ioctl_evdev-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_evdev.test and ioctl_evdev-v.test.
Dmitry V. Levin [Fri, 27 May 2016 00:49:08 +0000 (00:49 +0000)]
Mpersify EVIOC* ioctl parser
* defs.h (evdev_abs): New xlat prototype.
(evdev_ioctl): Remove.
* evdev.c: Do not include "xlat/evdev_abs.h".
Mpersify struct ff_effect and ioctl numbers.
(evdev_ioctl): Mpersify.
* NEWS: Mention this enhancement.
Dmitry V. Levin [Sat, 28 May 2016 00:49:17 +0000 (00:49 +0000)]
evdev.c: fix printing of unrecognized event type passed to EVIOCGBIT
* evdev.c (bit_ioctl): If event type is not unrecognized,
print the argument as an address.
Dmitry V. Levin [Sat, 28 May 2016 00:12:01 +0000 (00:12 +0000)]
evdev.c: fix printing of EV_PWR's argument
* evdev.c (bit_ioctl): Fix printing of comma before EV_PWR's argument.
Dmitry V. Levin [Fri, 27 May 2016 00:42:25 +0000 (00:42 +0000)]
evdev.c: fix indentation
* evdev.c: Fix indentation of print formats.
Dmitry V. Levin [Fri, 27 May 2016 00:42:18 +0000 (00:42 +0000)]
evdev.c: fix decoding of EVIOCGNAME, EVIOCGPHYS, and EVIOCGUNIQ
* evdev.c (evdev_read_ioctl): Fix printing of the string returned
in response to EVIOCGNAME, EVIOCGPHYS, and EVIOCGUNIQ requests.
Dmitry V. Levin [Fri, 27 May 2016 00:42:07 +0000 (00:42 +0000)]
evdev.c: fix EVIOCGVERSION decoding
* evdev.c (evdev_read_ioctl): Print EVIOCGVERSION's argument
using #x format.
Dmitry V. Levin [Fri, 27 May 2016 00:41:59 +0000 (00:41 +0000)]
evdev.c: fix EVIOCGMTSLOTS decoding
* evdev.c (mtslots_ioctl): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:51 +0000 (00:41 +0000)]
evdev.c: fix bitset decoding
* evdev.c (decode_bitset): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:43 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_id
* evdev.c (getid_ioctl): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:34 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_keymap_entry
* evdev.c (keycode_V2_ioctl): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:25 +0000 (00:41 +0000)]
evdev.c: fix decoding of EVIOCGKEYCODE/EVIOCSKEYCODE
* evdev.c (keycode_ioctl): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:14 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_absinfo
* evdev.c (abs_ioctl): Use umove_or_printaddr.
Dmitry V. Levin [Fri, 27 May 2016 00:41:02 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct ff_effect
* evdev.c (ff_effect_ioctl): Use umove_or_printaddr.
Fix printing of struct ff_effect.u member names.
Dmitry V. Levin [Fri, 27 May 2016 00:40:53 +0000 (00:40 +0000)]
evdev.c: fix printing of struct ff_envelope.fade_level
* evdev.c (decode_envelope): Print struct ff_envelope.fade_level
using #x format.
Dmitry V. Levin [Fri, 27 May 2016 00:40:45 +0000 (00:40 +0000)]
evdev.c: fix decoding of EVIOCGRAB and EVIOCREVOKE
* evdev.c (evdev_write_ioctl): Print argument of EVIOCGRAB
and EVIOCREVOKE as unsigned long.
Dmitry V. Levin [Fri, 27 May 2016 00:40:27 +0000 (00:40 +0000)]
evdev.c: fix EVIOCRMFF decoding
* evdev.c (evdev_write_ioctl): Print EVIOCRMFF's argument as int.
Dmitry V. Levin [Fri, 27 May 2016 00:40:18 +0000 (00:40 +0000)]
evdev.c: move handling of EVIOCGBIT to a separate function
* evdev.c (evdev_read_ioctl): Move EVIOCGBIT handling to ...
(bit_ioctl): ... new function.
Dmitry V. Levin [Fri, 27 May 2016 00:40:10 +0000 (00:40 +0000)]
evdev.c: reorder ioctl command checks
Change the order of ioctl command cheks to match the kernel:
1st, check for fixed-number fixed-length commands,
2nd, check for fixed-number variable-length commands,
3rd, check for multi-number fixed-length commands,
4thm check for multi-number variable-length commands.
* evdev.c (evdev_read_ioctl, evdev_write_ioctl): Reorder
ioctl command checks.
Dmitry V. Levin [Fri, 27 May 2016 00:40:02 +0000 (00:40 +0000)]
evdev.c: decode all directions except _IOC_READ on entering syscall
* evdev.c (evdev_write_ioctl): Remove exiting check.
(evdev_read_ioctl): Move entering check ...
(evdev_ioctl): ... here. Add RVAL_DECODED to return code in _IOC_WRITE
and default cases.
Dmitry V. Levin [Fri, 27 May 2016 00:39:33 +0000 (00:39 +0000)]
evdev.c: fix indentation of preprocessor directives
* evdev.c: Fix indentation of preprocessor directives.
Move inclusion of <linux/ioctl.h> into [HAVE_LINUX_INPUT_H].
Jeff Mahoney [Fri, 27 May 2016 20:07:22 +0000 (16:07 -0400)]
file_ioctl.c: print first two extents for FIDEDUPERANGE in abbrev mode
* file_ioctl.c (file_ioctl, print_file_dedupe_range_info): Print first
two elements of info array in abbrev mode.
* tests/btrfs.c (btrfs_test_extent_same_ioctl): Handle newly
printed elements.
Dmitry V. Levin [Fri, 27 May 2016 01:11:40 +0000 (01:11 +0000)]
ioctl.c: fix typo in decoding of EVIOCSABS's parameter
* ioctl.c (evdev_decode_number): Fix typo in printxval default value.
Jeff Mahoney [Fri, 27 May 2016 03:33:06 +0000 (23:33 -0400)]
tests: check decoding of btrfs RDWR ioctls returned data
* tests/btrfs-vw.test: New file.
* tests/btrfs-w.test: New file.
* tests/Makefile.am (DECODER_TESTS): Add them.
Jeff Mahoney [Fri, 27 May 2016 03:33:05 +0000 (23:33 -0400)]
tests/btrfs.c: fix live btrfs_test_search_ioctls output
* tests/btrfs.c (btrfs_test_search_ioctls): Use print_tree_search_buf
for BTRFS_IOC_TREE_SEARCH and fix missing whitespace.
Jeff Mahoney [Fri, 27 May 2016 03:33:04 +0000 (23:33 -0400)]
btrfs.c: don't use print_array in btrfs_print_tree_search
* btrfs.c (btrfs_print_tree_search): Don't use print_array. The buffer
represents a series of variable sized records, not an array.
Jeff Mahoney [Fri, 27 May 2016 03:33:03 +0000 (23:33 -0400)]
btrfs.c: fix print_array usage in btrfs_print_logical_ino_container
* btrfs.c: (btrfs_print_logical_ino_container) Fix the element count
to reflect the number of records rather than the number of items.
Jeff Mahoney [Thu, 26 May 2016 20:09:28 +0000 (16:09 -0400)]
tests/btrfs.c: fix btrfs-v for BTRFS_IOC_TREE_SEARCH
* tests/btrfs.c (btrfs_test_send_ioctl): Assign key_reference
to search_args for BTRFS_IOC_TREE_SEARCH ioctl tests.
Fabien Siron [Thu, 26 May 2016 15:29:41 +0000 (15:29 +0000)]
Fix -yy documentation
* strace.c (usage): Fix description of -yy option.
* strace.1: Likewise.
Dmitry V. Levin [Thu, 26 May 2016 15:16:31 +0000 (15:16 +0000)]
tests/ioctl_block.c: tweak magic constants to make the test more reliable
* tests/ioctl_block.c (main): Change bad pointer to make
its lower 32-bit part closer to -1U.
Dmitry V. Levin [Thu, 26 May 2016 14:26:15 +0000 (14:26 +0000)]
tests/btrfs.c: check basic decoding of read-only ioctls
* tests/btrfs.c (btrfs_test_read_ioctls): New function.
(main): Use it.
Dmitry V. Levin [Thu, 26 May 2016 12:55:41 +0000 (12:55 +0000)]
tests: check decoding of BLK* ioctls
* configure.ac (AC_CHECK_TYPES): Add struct blk_user_trace_setup.
* tests/ioctl_block.c: New file.
* tests/ioctl_block.test: New test.
* tests/.gitignore: Add ioctl_block.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_block.test.
Dmitry V. Levin [Thu, 26 May 2016 10:43:51 +0000 (10:43 +0000)]
Mpersify BLK* ioctl parser
* defs.h (block_ioctl): Remove.
* block.c: Mpersify struct blk_user_trace_setup,
struct blkpg_ioctl_arg, struct blkpg_partition, and ioctl numbers.
(block_ioctl): Mpersify.
* NEWS: Mention this enhancement.
Dmitry V. Levin [Thu, 26 May 2016 12:36:56 +0000 (12:36 +0000)]
block.c: optimize decoding of paired ioctls
* block.c (block_ioctl): Optimize decoding of commands that return
a signed int.
Dmitry V. Levin [Thu, 26 May 2016 12:33:21 +0000 (12:33 +0000)]
block.c: fix printing of uint64_t pairs
* block.c (block_ioctl): Print uint64_t values using PRIu64 format.
Dmitry V. Levin [Thu, 26 May 2016 10:04:39 +0000 (10:04 +0000)]
block.c: fix printing of struct blk_user_trace_setup
* block.c (block_ioctl): Fix printing of comma before
struct blk_user_trace_setup.name on exiting syscall.
Dmitry V. Levin [Thu, 26 May 2016 00:37:26 +0000 (00:37 +0000)]
Move parser of 'X' type ioctls to a separate file
* fs_x_ioctl.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* block.c: (block_ioctl): Move parser of FITRIM, FIFREEZE, and FITHAW
to fs_x_ioctl.c.
* defs.h (fs_x_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call fs_x_ioctl for ioctl type 'X'.
Dmitry V. Levin [Thu, 26 May 2016 00:07:17 +0000 (00:07 +0000)]
Move parser of HDIO_* ioctls to a separate file
* hdio.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* block.c: Do not include <linux/hdreg.h>.
(block_ioctl): Move parser of HDIO_GETGEO to hdio.c.
* defs.h (hdio_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call hdio_ioctl for ioctl type 0x03.
Dmitry V. Levin [Thu, 26 May 2016 10:12:17 +0000 (10:12 +0000)]
Fix explicit casts of signed integer types to unsigned long long
* defs.h (widen_to_ull): New macro.
* dirent.c (print_old_dirent, SYS_FUNC(getdents)): Use it in place
of explicit casts to unsigned long long.
* io.c (print_lld_from_low_high_val): Likewise.
* lseek.c (SYS_FUNC(llseek)): Likewise.
* printsiginfo.c (print_si_info): Likewise.
* printstat.h (DO_PRINTSTAT): Likewise.
* sysinfo.c (SYS_FUNC(sysinfo)): Likewise.
* times.c (SYS_FUNC(times)): Likewise.
* fetch_struct_statfs.c (ASSIGN_NUMBER): Remove.
(fetch_struct_statfs, fetch_struct_statfs64): Replace ASSIGN_NUMBER
with widen_to_ull.
Dmitry V. Levin [Thu, 26 May 2016 10:07:36 +0000 (10:07 +0000)]
scsi.c: print __u64 types using PRI__u64 format
* scsi.c (print_sg_io_v4_req, print_sg_io_v4_res): Remove explicit casts
to unsigned long long, print fields of type __u64 using PRI__u64 format.
Dmitry V. Levin [Wed, 25 May 2016 15:44:32 +0000 (15:44 +0000)]
tests: check decoding of RTC_* ioctls
* configure.ac (AC_CHECK_FUNCS): Add ioctl_rtc.
* tests/ioctl_rtc.c: New file.
* tests/ioctl_rtc-v.c: Likewise.
* tests/ioctl_rtc.test: New test.
* tests/ioctl_rtc-v.test: Likewise.
* tests/.gitignore: Add ioctl_rtc and ioctl_rtc-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_rtc.test and ioctl_rtc-v.test.
Dmitry V. Levin [Wed, 25 May 2016 15:59:27 +0000 (15:59 +0000)]
Mpersify RTC_* ioctl parser
* defs.h (rtc_ioctl): Remove.
* rtc.c: Mpersify struct rtc_pll_info and ioctl numbers.
(rtc_ioctl): Mpersify.
* NEWS: Mention this enhancement.
Dmitry V. Levin [Wed, 25 May 2016 15:28:23 +0000 (15:28 +0000)]
rtc.c: fix decoding of struct rtc_wkalrm
* rtc.c (decode_rtc_wkalrm): Print field name of struct rtc_wkalrm.time.
Dmitry V. Levin [Wed, 25 May 2016 07:59:13 +0000 (07:59 +0000)]
file_ioctl.c: print file descriptors using printfd
* file_ioctl.c (print_file_dedupe_range_info): Print
struct file_dedupe_range_info.dest_fd using printfd.
(file_ioctl): Print struct file_clone_range.src_fd using printfd.
Dmitry V. Levin [Wed, 25 May 2016 07:44:19 +0000 (07:44 +0000)]
rtc.c: do not print argument of ioctls that have no arguments
* rtc.c (rtc_ioctl): Do not print argument of RTC_{A,U,P,W}IE_{ON,OFF}
and RTC_VL_CLR ioctls.
Dmitry V. Levin [Wed, 25 May 2016 07:43:15 +0000 (07:43 +0000)]
rtc.c: decode RTC_PLL_GET and RTC_PLL_SET
* rtc.c (rtc_ioctl): Decode RTC_PLL_GET and RTC_PLL_SET
Dmitry V. Levin [Wed, 25 May 2016 07:37:44 +0000 (07:37 +0000)]
rtc.c: optimize decoding of paired ioctls
* rtc.c (rtc_ioctl): Optimize decoding of RTC_ALM_READ/RTC_ALM_SET,
RTC_RD_TIME/RTC_SET_TIME, and RTC_WKALM_RD/RTC_WKALM_SET ioctl pairs.
Dmitry V. Levin [Wed, 25 May 2016 07:33:02 +0000 (07:33 +0000)]
block.c: handle BLKDAXGET
* block.c [!BLKDAXGET] (BLKDAXGET): Define.
(block_ioctl): Handle it.
Dmitry V. Levin [Wed, 25 May 2016 00:11:37 +0000 (00:11 +0000)]
tests: check decoding of mount syscall
* tests/mount.c: New file.
* tests/mount.test: New test.
* tests/.gitignore: Add mount.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add mount.
Dmitry V. Levin [Tue, 24 May 2016 20:12:25 +0000 (20:12 +0000)]
tests/vhangup.c: diassociate from the controlling terminal first
* tests/vhangup.c (main): Call setsid before vhangup.
Fei Jie [Thu, 19 May 2016 07:58:37 +0000 (15:58 +0800)]
tests: add vhangup.test
* tests/vhangup.c: New file.
* tests/vhangup.test: New test.
* tests/.gitignore: Add vhangup.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add vhangup.test.
Dmitry V. Levin [Tue, 24 May 2016 18:11:47 +0000 (18:11 +0000)]
NEWS: Prepare for 4.12 release
Gleb Fotengauer-Malinovskiy [Tue, 24 May 2016 15:09:46 +0000 (18:09 +0300)]
tests/btrfs.c: fix build on x32
* tests/btrfs.c (btrfs_test_ino_path_ioctls): Fix printing of st_ino.
Dmitry V. Levin [Tue, 24 May 2016 02:56:39 +0000 (02:56 +0000)]
tests/btrfs.c: fix build with u64 based BTRFS_IOC_DEFAULT_SUBVOL
* tests/btrfs.c: Fix build on systems where BTRFS_IOC_DEFAULT_SUBVOL
is defined using unexported type "u64".
Dmitry V. Levin [Tue, 24 May 2016 02:40:13 +0000 (02:40 +0000)]
btrfs.c: fix build on systems without BTRFS_IOC_FILE_EXTENT_SAME
* btrfs.c (btrfs_ioctl): Skip BTRFS_IOC_FILE_EXTENT_SAME case
if this constant is not defined.
* tests/btrfs.c (btrfs_test_extent_same_ioctl): Skip this part
of the test if BTRFS_IOC_FILE_EXTENT_SAME is not defined.
Dmitry V. Levin [Tue, 24 May 2016 02:17:49 +0000 (02:17 +0000)]
tests/btrfs.c: fix printing struct btrfs_ioctl_clone_range_args
* tests/btrfs.c (btrfs_test_clone_ioctls): Print __u64 members
of struct btrfs_ioctl_clone_range_args using PRI__u64 format.
Dmitry V. Levin [Tue, 24 May 2016 02:07:47 +0000 (02:07 +0000)]
tests/btrfs.c: tweak magic constants to make the test more reliable
* tests/btrfs.c (btrfs_test_sync_ioctls): Change u64val
to 0xdeadbeefbadc0ded.
(btrfs_test_subvol_ioctls): Likewise. Change bad_pointer
to make their lower 32-bit parts closer to -1U.
Dmitry V. Levin [Tue, 24 May 2016 01:53:02 +0000 (01:53 +0000)]
btrfs.c: print file descriptors using printfd
* btrfs.c (btrfs_ioctl): Print struct btrfs_ioctl_send_args.send_fd,
struct btrfs_ioctl_vol_args.fd, and struct btrfs_ioctl_vol_args_v2.fd
using printfd.
* tests/btrfs.c (btrfs_print_vol_args_v2, btrfs_test_subvol_ioctls,
btrfs_test_device_ioctls, btrfs_test_clone_ioctls,
btrfs_test_send_ioctl): Update.
Dmitry V. Levin [Tue, 24 May 2016 01:33:08 +0000 (01:33 +0000)]
tests/btrfs.c: do not print errno in case of fs type mismatch
* tests/btrfs.c (main): Use error_msg_and_fail instead of
perror_msg_and_fail when the fs type of the given directory
is not BTRFS_SUPER_MAGIC.
Dmitry V. Levin [Tue, 24 May 2016 01:32:55 +0000 (01:32 +0000)]
tests/btrfs.c: fix indentation
* tests/btrfs.c: Fix indentation of preprocessor directives
and function prototypes.
Dmitry V. Levin [Tue, 24 May 2016 01:32:41 +0000 (01:32 +0000)]
tests/btrfs.c: sort included headers
* tests/btrfs.c: Sort included headers.
Dmitry V. Levin [Tue, 24 May 2016 01:32:27 +0000 (01:32 +0000)]
tests/btrfs.c: do not use alloca
* tests/btrfs.c: Don't include <alloca.h>.
(btrfs_test_subvol_ioctls): Allocate
struct btrfs_ioctl_vol_args_v2.qgroup_inherit using tail_alloc.
Dmitry V. Levin [Tue, 24 May 2016 01:32:09 +0000 (01:32 +0000)]
tests/btrfs.c: fix build on systems without <linux/btrfs.h> or <linux/fiemap.h>
* tests/btrfs.c: Include "tests.h" first.
Skip the test if [!HAVE_LINUX_BTRFS_H]. Skip parts of the test
that use struct fiemap if [!HAVE_LINUX_FIEMAP_H].
Jeff Mahoney [Wed, 18 May 2016 22:09:42 +0000 (18:09 -0400)]
tests: add testing for btrfs ioctls
* tests/btrfs.c: New file.
* tests/btrfs.test: New test.
* tests/btrfs-v.test: Likewise.
* tests/.gitignore: Add btrfs.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add btrfs.test and btrfs-v.test.
Dmitry V. Levin [Tue, 24 May 2016 01:29:49 +0000 (01:29 +0000)]
tests/file_ioctl.c: use tail_alloc
* tests/file_ioctl.c (main): Allocate struct fiemap using tail_alloc.
Dmitry V. Levin [Tue, 24 May 2016 01:29:38 +0000 (01:29 +0000)]
tests/file_ioctl.c: fix build on systems without <linux/fiemap.h>
* tests/file_ioctl.c: Include "tests.h" first.
Skip the test if [!HAVE_LINUX_FIEMAP_H].
Jeff Mahoney [Wed, 18 May 2016 22:09:41 +0000 (18:09 -0400)]
tests: add testing for FS_IOC_FIEMAP
This is limited to FIEMAP. FICLONE* and FIDEDUPERANGE originated in
btrfs and will be tested there.
* tests/file_ioctl.c: New file.
* tests/file_ioctl.test: New test.
* tests/.gitignore: Add file_ioctl.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add file_ioctl.test.
Dmitry V. Levin [Tue, 24 May 2016 01:28:26 +0000 (01:28 +0000)]
Mpersify btrfs.c
* btrfs.c: Mpersify 3 arch-specific structures
and corresponding ioctl numbers.
(btrfs_ioctl): Mpersify.
* defs.h (btrfs_ioctl): Remove.
Dmitry V. Levin [Tue, 24 May 2016 01:15:18 +0000 (01:15 +0000)]
btrfs.c: use print_array
* btrfs.c (print_btrfs_data_container_logical_ino,
print_btrfs_data_container_ino_path, print_uint64,
print_btrfs_ioctl_search_header, print_objectid_callback,
print_btrfs_ioctl_space_info): New functions.
(btrfs_print_logical_ino_container, btrfs_print_ino_path_container):
Rewrite printers of struct btrfs_data_container.val array
using print_array.
(btrfs_print_qgroup_inherit): Rewrite printer of
struct btrfs_qgroup_inherit.qgroups array using print_array.
(btrfs_print_tree_search): Rewrite printer of
struct btrfs_ioctl_search_header array using print_array.
(btrfs_ioctl): Rewrite printer of
struct btrfs_ioctl_send_args.clone_sources and
struct btrfs_ioctl_space_args.spaces using print_array.
Dmitry V. Levin [Tue, 24 May 2016 01:12:41 +0000 (01:12 +0000)]
btrfs.c: simplify BTRFS_IOC_GET_FSLABEL parser
* btrfs.c (btrfs_ioctl): Share code of parser of BTRFS_IOC_SET_FSLABEL
with parser of BTRFS_IOC_GET_FSLABEL only on BTRFS_IOC_GET_FSLABEL's
entering.
Dmitry V. Levin [Tue, 24 May 2016 01:10:53 +0000 (01:10 +0000)]
btrfs.c: fix BTRFS_IOC_TREE_SEARCH_V2 output
* btrfs.c (btrfs_ioctl): Fix BTRFS_IOC_TREE_SEARCH_V2 output
in case of EOVERFLOW and failed umove.
Dmitry V. Levin [Tue, 24 May 2016 01:09:04 +0000 (01:09 +0000)]
btrfs.c: cleanup use of tcp->auxstr
* btrfs.c (btrfs_ioctl): Reset tcp->auxstr only if it is set.
Dmitry V. Levin [Tue, 24 May 2016 01:04:56 +0000 (01:04 +0000)]
btrfs.c: cleanup struct btrfs_ioctl_get_dev_stats.nr_items check
* btrfs.c (btrfs_ioctl): Cleanup check of iterator of
btrfs_ioctl_get_dev_stats.values array.
Dmitry V. Levin [Tue, 24 May 2016 00:59:40 +0000 (00:59 +0000)]
btrfs.c: do not use BTRFS_SUBVOL_NAME_MAX
* btrfs.c [BTRFS_SUBVOL_NAME_MAX]: Remove.
(btrfs_ioctl): Use sizeof(struct btrfs_ioctl_vol_args_v2.name)
instead of BTRFS_SUBVOL_NAME_MAX + 1.
Dmitry V. Levin [Tue, 24 May 2016 00:56:08 +0000 (00:56 +0000)]
btrfs.c: mark some function arguments as const
* btrfs.c (btrfs_print_balance_args, btrfs_print_features,
btrfs_print_qgroup_limit, btrfs_print_data_container_header,
btrfs_print_logical_ino_container, btrfs_print_ino_path_container,
btrfs_print_qgroup_inherit): Mark some function arguments as const.
Dmitry V. Levin [Tue, 24 May 2016 00:49:50 +0000 (00:49 +0000)]
btrfs.c: use umove instead of umoven
* btrfs.c: Use umove instead of umoven and umove_or_printaddr
instead of umoven_or_printaddr.
Dmitry V. Levin [Tue, 24 May 2016 00:45:05 +0000 (00:45 +0000)]
btrfs.c: remove unused variable
* btrfs.c (btrfs_ioctl): Remove "ret" variable.
Dmitry V. Levin [Tue, 24 May 2016 00:35:49 +0000 (00:35 +0000)]
btrfs.c: use printxval/printxval64 instead of printxvals
* btrfs.c (btrfs_ioctl): Do not call printxvals directly,
use printxval/printxval64 wrappers that do the right thing.
Dmitry V. Levin [Tue, 24 May 2016 00:23:31 +0000 (00:23 +0000)]
btrfs.c: fix indentation
* btrfs.c: Fix indentation of preprocessor directives and print formats.
Dmitry V. Levin [Tue, 24 May 2016 00:20:23 +0000 (00:20 +0000)]
xlat/btrfs_dev_stats_values.in: cleanup
* xlat/btrfs_dev_stats_values.in: Remove HAVE_DECL_* defines,
use #unconditional instead.
Dmitry V. Levin [Tue, 24 May 2016 00:20:07 +0000 (00:20 +0000)]
file_ioctl.c: use print_array
* file_ioctl.c (file_ioctl): Rewrite printers of
struct file_dedupe_range_info and struct fiemap_extent arrays
using print_array.
Dmitry V. Levin [Tue, 24 May 2016 00:19:53 +0000 (00:19 +0000)]
file_ioctl.c: fix indentation
* file_ioctl.c: Fix indentation of preprocessor directives
and print formats.
Dmitry V. Levin [Tue, 24 May 2016 00:19:40 +0000 (00:19 +0000)]
file_ioctl.c: include <linux/ioctl.h> instead of <sys/ioctl.h>
Being a wrapper around <linux/ioctl.h>, <sys/ioctl.h> brings
no benefits for this parser.
* file_ioctl.c: Include <linux/ioctl.h> instead of <sys/ioctl.h>.
Dmitry V. Levin [Tue, 24 May 2016 00:19:17 +0000 (00:19 +0000)]
file_ioctl.c: fix build on systems without <linux/fiemap.h>
* configure.ac (AC_CHECK_HEADERS): Add linux/fiemap.h.
* file_ioctl.c: Do not include <linux/fiemap.h> and xlat/fiemap_*.h
if [!HAVE_LINUX_FIEMAP_H].
(file_ioctl): Do not parse FS_IOC_FIEMAP if [!HAVE_LINUX_FIEMAP_H].
Dmitry V. Levin [Tue, 24 May 2016 00:19:03 +0000 (00:19 +0000)]
ioctl.c: fix build
* ioctl.c (ioctl_decode): Move definition of "ret" variable
to [ALPHA || POWERPC] case.
[ALPHA || POWERPC]: Fix syntax error.
Jeff Mahoney [Wed, 18 May 2016 22:09:40 +0000 (18:09 -0400)]
ioctl: add decoding for FS_IOC_FIEMAP
* file_ioctl.c: Include <linux/fiemap.h>, "xlat/fiemap_flags.h",
and "xlat/fiemap_extent_flags.h".
(file_ioctl): Handle FS_IOC_FIEMAP.
* ioctl.c (ioctl_decode): Use file_ioctl for decoding 'f' code ioctls.
Dmitry V. Levin [Tue, 24 May 2016 00:18:39 +0000 (00:18 +0000)]
Add xlat/fiemap_flags.in and xlat/fiemap_extent_flags.in
* xlat/fiemap_flags.in: New file.
* xlat/fiemap_extent_flags.in: Likewise.
Jeff Mahoney [Wed, 18 May 2016 22:09:39 +0000 (18:09 -0400)]
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.
Gleb Fotengauer-Malinovskiy [Tue, 24 May 2016 14:49:46 +0000 (17:49 +0300)]
x32: update ioctl entries from linux 4.6
* linux/x32/ioctls_inc0.h: Update from linux v4.6 using ioctls_gen.sh.
Dmitry V. Levin [Tue, 24 May 2016 11:10:22 +0000 (11:10 +0000)]
tests/attach-f-p.c: sleep a bit more to let the tracer catch up
On noticeably lagging systems, the parent process may invoke its chdir
call before the tracer gets notified about completion of its last child
process. Add extra sleep in the parent process to win the race.
* tests/attach-f-p.c (main): Change timerid into a static array.
Arm a timer in the parent process and wait for it.
Dmitry V. Levin [Mon, 23 May 2016 16:39:23 +0000 (16:39 +0000)]
tests/attach-p-cmd-cmd.c: fix potential errno clobbering
* tests/attach-p-cmd-cmd.c (main): Call getpid before chdir.
Dmitry V. Levin [Mon, 23 May 2016 10:26:46 +0000 (10:26 +0000)]
tests/net-yy-netlink.c: robustify against libc specific issues
* tests/net-yy-netlink.c (main): Use getsockname instead of recvmsg
as the latter has notible implementation differences that make
the test unreliable.
Dmitry V. Levin [Mon, 23 May 2016 10:26:46 +0000 (10:26 +0000)]
tests/net-yy-netlink.c: robustify against os specific issues
* tests/net-yy-netlink.c (main): Pass a pointer to a real struct msghdr
as NULL doesn't work well on some systems.
Dmitry V. Levin [Mon, 23 May 2016 10:12:48 +0000 (10:12 +0000)]
tests/net-yy-{inet,netlink}.test: cleanup
* tests/net-yy-inet.test: Do not pass arguments to net-yy-inet
as the latter does not accept them.
* tests/net-yy-netlink.test: Do not pass arguments to net-yy-netlink
as the latter does not accept them.
Jeff Mahoney [Wed, 18 May 2016 22:09:41 +0000 (18:09 -0400)]
tests: define PRI__[dux]64 macros to print __s64 and __u64 values
Rather than cast every __u64 or __s64 before printing,
define printing helpers for those types directly.
This complements commit
1f3482bedad505a41caf1d61b3a4e7e09a2f4330 .
* tests/tests.h (PRI__d64, PRI__u64, PRI__x64): New macros.