]> granicus.if.org Git - strace/log
strace
7 years agofadvise: use getarg_ull for obtaining len argument of fadvise64 syscall
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:35 +0000 (00:21 +0300)]
fadvise: use getarg_ull for obtaining len argument of fadvise64 syscall

Since its type is size_t, it is 64-bit wide on x32 and special care
should be taken in order to obtain it.

* fadvise.c (SYS_FUNC(fadvise64)): Use getarg_ull for obtaining value
of "len" syscall argument.

7 years agoutil: add getarg_ll and getarg_ull functions
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:27 +0000 (00:21 +0300)]
util: add getarg_ll and getarg_ull functions

These allow retrieving specific argument in full taking into account
peculiarities of runtimes which employ tcp->ext_arg (e.g. x32).

* defs.h (getarg_ll, getarg_ull): New prototypes.
* util.c (getarg_ll, getarg_ull): New functions.
(printargs): Use getarg_ull.

7 years agofadvise: change printing of len argument to unsigned in fadvise64 syscall
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:20 +0000 (00:21 +0300)]
fadvise: change printing of len argument to unsigned in fadvise64 syscall

The kernel declares fadvise64 as
long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);

* fadvise.c (SYS_FUNC(fadvise64)): Change conversion specifier from
"%ld" to "%lu" for printing len argument since kernel expects argument
of type size_t.

7 years agosh64, sparc64: use proper decoder for fadvise64_64 syscall
Dmitry V. Levin [Tue, 27 Sep 2016 18:11:10 +0000 (18:11 +0000)]
sh64, sparc64: use proper decoder for fadvise64_64 syscall

This change is no-op yet, but things will change when decoder
of fadvise64 syscall get fixed.

* linux/sh64/syscallent.h (fadvise64_64): Replace SEN(fadvise64)
with SEN(fadvise64_64).
* linux/sparc64/syscallent.h (fadvise64_64): Likewise.

7 years agotests: check decoding of fallocate syscall
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:50 +0000 (00:21 +0300)]
tests: check decoding of fallocate syscall

* configure.ac (AC_CHECK_FUNCS): Add fallocate.
* tests/fallocate.c: New file.
* tests/fallocate.test: New test.
* tests/.gitignore: Add fallocate.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add fallocate.test.

7 years agofallocate: change print format of offset and len arguments to signed
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:14 +0000 (00:21 +0300)]
fallocate: change print format of offset and len arguments to signed

Since types of these arguments are off_t and kernel actually expects
signed values in order to fail when negative values are provided,
lets display these values as signed.

* fallocate.c (SYS_FUNC(fallocate)): Change conversion specifier for
printing "offset" and "len" syscall arguments from %llu to %lld.

7 years agoxlat: add default values for falloc_flags constants
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:07 +0000 (00:21 +0300)]
xlat: add default values for falloc_flags constants

In order to avoid dependence of declared constants to headers available
on build system.

* xlat/falloc_flags.in: Add default values for constants.

7 years agotests: check decoding of getcpu syscall
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:21:01 +0000 (00:21 +0300)]
tests: check decoding of getcpu syscall

* tests/getcpu.c: New file.
* tests/getcpu.test: New test.
* tests/.gitignore: Add getcpu.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getcpu.test.

7 years agotests: make magic values in ioctl_block test distinctive
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:20:53 +0000 (00:20 +0300)]
tests: make magic values in ioctl_block test distinctive

* tests/ioctl.block (init_magic): Add iterator value to magic value
in order to enable detection of potential 4-byte aligned shifts.

7 years agotests: additional getcwd decoding checks
Eugene Syromyatnikov [Wed, 21 Sep 2016 21:20:45 +0000 (00:20 +0300)]
tests: additional getcwd decoding checks

* tests/getcwd.c (main): Add more checks for getcwd arguments decoding.

7 years agotests: check decoding of quotactl syscall
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:12:37 +0000 (06:12 +0300)]
tests: check decoding of quotactl syscall

* configure.ac (AC_CHECK_HEADERS): Add linux/dqblk_xfs.h, linux/quota.h,
and sys/quota.h.
* tests/.gitignore: Add quotactl, quotactl-v, quotactl-xfs,
and quotactl-xfs-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add quotactl.test, quotactl-v.test,
quotactl-xfs.test, and quotactl-xfs-v.test.
(EXTRA_DIST): Add quotactl.h
* quotactl.h: New file.
* quotactl.c: Likewise.
* quotactl-v.c: Likewise.
* quotactl-xfs.c: Likewise.
* quotactl-xfs-v.c: Likewise.
* quotactl.test: New test.
* quotactl-v.test: Likewise.
* quotactl-xfs.test: Likewise.
* quotactl-xfs-v.test: Likewise.

7 years agoquota: ensure that names of structure fields are printed properly
Dmitry V. Levin [Tue, 27 Sep 2016 01:08:38 +0000 (01:08 +0000)]
quota: ensure that names of structure fields are printed properly

* quota.c (PRINT_FIELD_D, PRINT_FIELD_U, PRINT_FIELD_X): New macros.
(decode_cmd_data): Use them to print structure fields.

7 years agoEnhance zero_extend_signed_to_ull and sign_extend_unsigned_to_ll macros
Dmitry V. Levin [Mon, 26 Sep 2016 20:27:53 +0000 (20:27 +0000)]
Enhance zero_extend_signed_to_ull and sign_extend_unsigned_to_ll macros

* defs.h (zero_extend_signed_to_ull, sign_extend_unsigned_to_ll):
Add support of char types.
* tests/tests.h (zero_extend_signed_to_ull, sign_extend_unsigned_to_ll):
Likewise.

7 years agoquota: move Q_QUOTAON handling to subcommand switch statement
Dmitry V. Levin [Mon, 26 Sep 2016 19:03:52 +0000 (19:03 +0000)]
quota: move Q_QUOTAON handling to subcommand switch statement

* quota.c (SYS_FUNC(quotactl)): Move handling of Q_QUOTAON subcommand ...
(decode_cmd_data): ... here.

7 years agoquota: remove legacy subcommand decoding support code
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:12:10 +0000 (06:12 +0300)]
quota: remove legacy subcommand decoding support code

Support for these quota subcommands by linux kernels has been dropped
long time ago (between 2.5.16 and 2.5.17), so lets drop it in order
to minimize amount of code which should be subjected to testing and
structured conversion.

* quota.c (struct v1_dqblk, struct v2_dqblk, struct v2_dqinfo,
struct v1_dqstats, struct v2_dqstats): Remove.
(decode_cmd_data): Remove handling of Q_V1_GETQUOTA, Q_V1_SETQUOTA,
Q_V2_GETQUOTA, Q_V2_SETQUOTA, Q_V2_GETINFO, Q_V2_SETINFO, Q_V1_GETSTATS,
and Q_V2_GETSTATS subcommands.
(SYS_FUNC(quotactl)): Remove handling of Q_V1_QUOTAON subcommand.

7 years agoquota: add realtime block limits fields to XFS disk quota printing code
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:12:20 +0000 (06:12 +0300)]
quota: add realtime block limits fields to XFS disk quota printing code

* quota.c (decode_cmd_data): Add printing of d_rtb_hardlimit
and d_rtb_softlimit fields to struct xfs_dqblk printing code.

7 years agoquota: add packed attribute to struct if_dqblk definition
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:12:01 +0000 (06:12 +0300)]
quota: add packed attribute to struct if_dqblk definition

Since the only difference between 32-bit and 64-bit environments
regarding this structure is its padding, lets just add packed attribute
to its definition instead of going full mpers.

* quota.c (struct if_dqblk): Add ATTRIBUTE_PACKED.

7 years agoquota: Add decoding for Q_XQUOTARM subcommand
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:11:52 +0000 (06:11 +0300)]
quota: Add decoding for Q_XQUOTARM subcommand

* quota.c (decode_cmd_data): Add Q_XQUOTARM handling to subcommand
  switch.

7 years agoquota: add dispatch of SYNC subcommands
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:11:38 +0000 (06:11 +0300)]
quota: add dispatch of SYNC subcommands

Q_XQUOTASYNC is no-op, but it does not require id/addr arguments anyway.

* quota.c (decode_cmd_data): Add Q_SYNC and Q_XQUOTASYNC to subcommand
dispatch switch since id/addr arguments for these subcommands are known
to be ignored.

7 years agoquota: add missing prefixes to struct field names
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:11:28 +0000 (06:11 +0300)]
quota: add missing prefixes to struct field names

* quota.c (decode_cmd_data): Print field names in accordance with
their definition.

7 years agoquota: fix indentation inside subcommand dispatching switch statement
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:11:17 +0000 (06:11 +0300)]
quota: fix indentation inside subcommand dispatching switch statement

7 years agoquota: avoid printing id argument for those commands that ignore it
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:11:09 +0000 (06:11 +0300)]
quota: avoid printing id argument for those commands that ignore it

As id argument is not used for Q_QUOTAOFF, Q_GETFMT, Q_V2_GETINFO,
Q_GETINFO, Q_V2_SEETINFO, Q_SETINFO, Q_SYNC, Q_XQUOTAON, Q_XQUOTAOFF,
Q_XQUOTARM, Q_XGETQSTAT, Q_XGETQSTATV, Q_XQUOTASYNC, Q_V1_GETSTATS, and
Q_V2_GETSTATS subcommands, do not print it for these subcommands.

* quota.c (decode_cmd_data): Add id argument parameter, add printing
of id argument for Q_GETQUOTA, Q_SETQUOTA, Q_GETNEXTQUOTA,
Q_V1_GETQUOTA, Q_V1_SETQUOTA, Q_V2_GETQUOTA, Q_V2_SETQUOTA,
Q_XGETQUOTA, Q_XGETNEXTQUOTA, Q_XSETQLIM, and unknown subcommands.
(SYS_FUNC(quotactl)): Remove printing of id argument, pass it
to decode_cmd_data.

7 years agoquota: use printuid for id parameter printing
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:10:57 +0000 (06:10 +0300)]
quota: use printuid for id parameter printing

* quota.c (SYS_FUNC(quotactl)): Since id call argument is used for
user/group/project ID which all have special semantics for -1,
print it the same way as UIDs are printed.

7 years agoquota: display quota subcommand as a macro
Eugene Syromyatnikov [Wed, 21 Sep 2016 03:10:46 +0000 (06:10 +0300)]
quota: display quota subcommand as a macro

* quota.c (SYS_FUNC(quotactl)): Replace disjunction of two xlat values
(which also lacks shift of the left part) with QCMD macro call.

7 years agotests: use VERBOSE macro in waitid and waitid-v tests
Dmitry V. Levin [Mon, 26 Sep 2016 15:21:22 +0000 (15:21 +0000)]
tests: use VERBOSE macro in waitid and waitid-v tests

* tests/waitid-v.c (VERBOSE_RUSAGE): Remove.
(VERBOSE): Define to 1.
* tests/waitid.c (sprint_rusage): Check VERBOSE instead
of VERBOSE_RUSAGE.

7 years agotests: use VERBOSE macro in wait4 and wait4-v tests
Dmitry V. Levin [Mon, 26 Sep 2016 15:20:26 +0000 (15:20 +0000)]
tests: use VERBOSE macro in wait4 and wait4-v tests

* tests/wait4-v.c (VERBOSE_RUSAGE): Remove.
(VERBOSE): Define to 1.
* tests/wait4.c (sprint_rusage): Check VERBOSE instead
of VERBOSE_RUSAGE.

7 years agotests: use VERBOSE macro in msg_control and msg_control-v tests
Dmitry V. Levin [Mon, 26 Sep 2016 15:19:05 +0000 (15:19 +0000)]
tests: use VERBOSE macro in msg_control and msg_control-v tests

* tests/msg_control-v.c (VERBOSE_MSGHDR): Remove.
(VERBOSE): Define to 1.
* tests/msg_control.c (print_fds, print_ip_opts): Check VERBOSE instead
of VERBOSE_MSGHDR.

7 years agotests: use VERBOSE macro in mmsg_name and mmsg_name-v tests
Dmitry V. Levin [Mon, 26 Sep 2016 15:16:50 +0000 (15:16 +0000)]
tests: use VERBOSE macro in mmsg_name and mmsg_name-v tests

* tests/mmsg_name-v.c (VERBOSE_MMSGHDR): Remove.
(VERBOSE): Define to 1.
* tests/mmsg_name.c (test_mmsg_name): Check VERBOSE instead
of VERBOSE_MMSGHDR.

7 years agotests: use VERBOSE macro in ioctl_rtc and ioctl_rtc-v tests
Dmitry V. Levin [Sun, 25 Sep 2016 00:10:27 +0000 (00:10 +0000)]
tests: use VERBOSE macro in ioctl_rtc and ioctl_rtc-v tests

* tests/ioctl_rtc-v.c (VERBOSE_IOCTL): Remove.
(VERBOSE): Define to 1.
* tests/ioctl_rtc.c (print_rtc_time): Check VERBOSE instead
of VERBOSE_IOCTL.

7 years agotests: use VERBOSE macro in ioctl_evdev and ioctl_evdev-v tests
Dmitry V. Levin [Sat, 24 Sep 2016 23:58:51 +0000 (23:58 +0000)]
tests: use VERBOSE macro in ioctl_evdev and ioctl_evdev-v tests

* tests/ioctl_evdev-v.c (VERBOSE_IOCTL): Remove.
(VERBOSE): Define to 1.
* tests/ioctl_evdev.c: Check VERBOSE instead of VERBOSE_IOCTL.

7 years agotests: use VERBOSE macro in execveat and execveat-v tests
Dmitry V. Levin [Fri, 23 Sep 2016 00:11:54 +0000 (00:11 +0000)]
tests: use VERBOSE macro in execveat and execveat-v tests

* tests/execveat-v.c (VERBOSE_EXECVEAT): Remove.
(VERBOSE): Define to 1.
* tests/execveat.c (main): Check VERBOSE instead of VERBOSE_EXECVEAT.

7 years agotests: use VERBOSE macro in execve and execve-v tests
Dmitry V. Levin [Thu, 22 Sep 2016 23:58:25 +0000 (23:58 +0000)]
tests: use VERBOSE macro in execve and execve-v tests

* tests/execve-v.c (VERBOSE_EXECVE): Remove.
(VERBOSE): Define to 1.
* tests/execve.c (main): Check VERBOSE instead of VERBOSE_EXECVE.

7 years agotests: add VERBOSE macro
Dmitry V. Levin [Wed, 21 Sep 2016 00:35:30 +0000 (00:35 +0000)]
tests: add VERBOSE macro

Introduce VERBOSE macro (defaults to 0) that is expected to be defined
to 1 by code testing "strace -v" output.

* tests/tests.h [!VERBOSE] (VERBOSE): New macro.

7 years agodecode_open: print the mode argument when O_TMPFILE flag is set
Dmitry V. Levin [Tue, 20 Sep 2016 18:41:50 +0000 (18:41 +0000)]
decode_open: print the mode argument when O_TMPFILE flag is set

O_TMPFILE reqires the mode argument (just like O_CREAT), so print it.

* open.c (STRACE_O_TMPFILE): New macro.
(decode_open): Print the mode argument when O_TMPFILE flag is set.
* tests/open.c (main): Check it.
Fixes RH#1377846.

7 years agotests: use sprintrc in tests/ptrace.c
Dmitry V. Levin [Tue, 20 Sep 2016 15:17:37 +0000 (15:17 +0000)]
tests: use sprintrc in tests/ptrace.c

* tests/ptrace.c (errstr): New static variable.
(do_ptrace): Initialize it using sprintrc.
(test_peeksiginfo, main): Use errstr.

7 years agotests: use sprintrc in tests/netlink_protocol.c
Dmitry V. Levin [Tue, 20 Sep 2016 12:02:06 +0000 (12:02 +0000)]
tests: use sprintrc in tests/netlink_protocol.c

* tests/netlink_protocol.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/fchownat.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:48:57 +0000 (00:48 +0000)]
tests: use sprintrc in tests/fchownat.c

* tests/fchownat.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/fchmodat.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:19:20 +0000 (00:19 +0000)]
tests: use sprintrc in tests/fchmodat.c

* tests/fchmodat.c (main): Use sprintrc.  Add more fchmodat decoding tests.

7 years agotests: use sprintrc in tests/fchmod.c
Dmitry V. Levin [Tue, 20 Sep 2016 00:19:20 +0000 (00:19 +0000)]
tests: use sprintrc in tests/fchmod.c

* tests/fchmod.c (main): Use sprintrc.  Add more fchmod decoding tests.
* tests/fchmod.test: Update the value specified for strace -a parameter.

7 years agotests: use sprintrc in tests/getgroups.c
Dmitry V. Levin [Mon, 19 Sep 2016 23:08:36 +0000 (23:08 +0000)]
tests: use sprintrc in tests/getgroups.c

* tests/getgroups.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/setgroups.c
Dmitry V. Levin [Mon, 19 Sep 2016 23:08:36 +0000 (23:08 +0000)]
tests: use sprintrc in tests/setgroups.c

* tests/setgroups.c (main): Use sprintrc.

7 years agotests/utime.c: rewrite without assert
Dmitry V. Levin [Mon, 19 Sep 2016 19:49:59 +0000 (19:49 +0000)]
tests/utime.c: rewrite without assert

* tests/utime.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

7 years agotests/xattr.c: rewrite without assert
Dmitry V. Levin [Sun, 18 Sep 2016 00:00:53 +0000 (00:00 +0000)]
tests/xattr.c: rewrite without assert

* tests/xattr.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

7 years agotests: use sprintrc in tests/xchownx.c
Dmitry V. Levin [Sat, 17 Sep 2016 23:30:01 +0000 (23:30 +0000)]
tests: use sprintrc in tests/xchownx.c

* tests/xchownx.c (main): Do not include <errno.h>.  Use sprintrc.

7 years agotests/xstatfsx.c: fix potential errno clobbering
Dmitry V. Levin [Fri, 16 Sep 2016 23:14:40 +0000 (23:14 +0000)]
tests/xstatfsx.c: fix potential errno clobbering

* tests/xstatfsx.c (main): Use sprintrc.

7 years agoAdd more fs magic constants
Dmitry V. Levin [Thu, 15 Sep 2016 23:55:17 +0000 (23:55 +0000)]
Add more fs magic constants

Add *_MAGIC constants defined for some relatively widespread
non-mainline filesystems.

* xlat/fsmagic.in: Add AUFS_SUPER_MAGIC, GPFS_SUPER_MAGIC,
VZFS_SUPER_MAGIC, and ZFS_SUPER_MAGIC constants.

7 years agotests: fix whitespace for explicit type casts in futex test
Eugene Syromyatnikov [Thu, 15 Sep 2016 20:04:07 +0000 (23:04 +0300)]
tests: fix whitespace for explicit type casts in futex test

7 years agoAdd more fs magic constants
Dmitry V. Levin [Wed, 14 Sep 2016 23:52:36 +0000 (23:52 +0000)]
Add more fs magic constants

Add *_MAGIC constants defined inside linux fs but not explicitly
exported via linux uapi.

* xlat/fsmagic.in: Add HFS_SUPER_MAGIC, HFSPLUS_SUPER_MAGIC,
EXOFS_SUPER_MAGIC, CEPH_SUPER_MAGIC, UBIFS_SUPER_MAGIC, JFS_SUPER_MAGIC,
BEFS_SUPER_MAGIC, NTFS_SB_MAGIC, XFS_SB_MAGIC, CONFIGFS_MAGIC,
FUSE_CTL_SUPER_MAGIC, FUSE_SUPER_MAGIC, AFS_FS_MAGIC, OCFS2_SUPER_MAGIC,
VXFS_SUPER_MAGIC, LOGFS_MAGIC, SMB2_MAGIC_NUMBER, and CIFS_MAGIC_NUMBER
constants.

7 years agoUpdate fs *_MAGIC constants
Dmitry V. Levin [Wed, 14 Sep 2016 23:41:19 +0000 (23:41 +0000)]
Update fs *_MAGIC constants

Add fs *_MAGIC constants exported by linux uapi.

* xlat/fsmagic.in: Add BFS_MAGIC, GFS2_MAGIC, and ROMFS_MAGIC constants
defined in linux/bfs_fs.h, linux/gfs2_ondisk.h, and linux/romfs_fs.h,
respectively.

7 years agotests: workaround limited semctl implementation in musl
Dmitry V. Levin [Tue, 13 Sep 2016 20:33:04 +0000 (20:33 +0000)]
tests: workaround limited semctl implementation in musl

musl libc forwards semctl command argument for 8 known commands only,
for all the rest it passes 0 instead.

* tests/ipc_sem.c (main): Update semctl expected output.

7 years agotests: add more IPC decoding checks
Eugene Syromyatnikov [Tue, 13 Sep 2016 16:18:42 +0000 (19:18 +0300)]
tests: add more IPC decoding checks

* tests/ipc_msg.c: Additional msgget (parameter format) and msgctl
(parameter format, decoding of struct msqid_ds in IPC_SET/IPC_STAT
commands) checks.
* tests/ipc_sem.c: Additional semget and semctl checks.
* tests/ipc_shm.c: Additional shmget and shmctl checks.
* tests/semop.c: Additional semop checks.  Add checks for semtimedop.
* tests/semop.test: Add explicit -e parameter in order to trace both
semop and semtimedop.
* tests/shmxt.c: Additional shmat and shmdt checks.

7 years ago.mailmap: add addresses of Dr. David Alan Gilbert
Dmitry V. Levin [Mon, 12 Sep 2016 23:38:20 +0000 (23:38 +0000)]
.mailmap: add addresses of Dr. David Alan Gilbert

* .mailmap: Add both addresses of Dr. David Alan Gilbert here to avoid
duplications in CREDITS file.

7 years ago.mailmap: add canonical name for Eugene Syromyatnikov
Eugene Syromyatnikov [Mon, 12 Sep 2016 23:10:53 +0000 (02:10 +0300)]
.mailmap: add canonical name for Eugene Syromyatnikov

This is needed due to apparent deviation in spelling of commit author
name in several commits.

* .mailmap: Add canonical name for Eugene Syromyatnikov.

7 years agoUpdate generic ioctl entries from linux 4.8
Dmitry V. Levin [Mon, 12 Sep 2016 15:19:31 +0000 (15:19 +0000)]
Update generic ioctl entries from linux 4.8

* linux/64/ioctls_inc.h: Update from linux v4.8 using ioctls_gen.sh.
* linux/32/ioctls_inc_align32.h: Likewise.
* linux/32/ioctls_inc_align64.h: Likewise.

7 years agox32: update ioctl entries from linux 4.8
Gleb Fotengauer-Malinovskiy [Mon, 12 Sep 2016 13:30:18 +0000 (16:30 +0300)]
x32: update ioctl entries from linux 4.8

* linux/x32/ioctls_inc0.h: Update from linux v4.8 using ioctls_gen.sh.

7 years agomaint: update for linux 4.8
Gleb Fotengauer-Malinovskiy [Mon, 12 Sep 2016 13:29:38 +0000 (16:29 +0300)]
maint: update for linux 4.8

* maint/ioctls_sym.sh: Add workarounds for linux/atm_zatm.h and
xen/evtchn.h files.

7 years agotests: use sprintrc_grep in tests/ipc_shm.c
Dmitry V. Levin [Mon, 12 Sep 2016 10:30:22 +0000 (10:30 +0000)]
tests: use sprintrc_grep in tests/ipc_shm.c

* tests/ipc_shm.c (main): Use sprintrc_grep.

7 years agotests: use sprintrc_grep in tests/ipc_sem.c
Dmitry V. Levin [Mon, 12 Sep 2016 09:27:58 +0000 (09:27 +0000)]
tests: use sprintrc_grep in tests/ipc_sem.c

* tests/ipc_sem.c (main): Use sprintrc_grep.

7 years agotests: use sprintrc_grep in tests/ipc_msg.c
Dmitry V. Levin [Sun, 11 Sep 2016 00:04:16 +0000 (00:04 +0000)]
tests: use sprintrc_grep in tests/ipc_msg.c

* tests/ipc_msg.c (main): Use sprintrc_grep.

7 years agotests: use sprintrc in tests/chmod.c
Dmitry V. Levin [Sat, 10 Sep 2016 22:58:40 +0000 (22:58 +0000)]
tests: use sprintrc in tests/chmod.c

* tests/chmod.c (main): Use sprintrc.  Add more chmod decoding tests.

7 years agoipc: fix printing of nsops argument of semop and semtimedop syscalls
Dmitry V. Levin [Fri, 9 Sep 2016 19:13:54 +0000 (19:13 +0000)]
ipc: fix printing of nsops argument of semop and semtimedop syscalls

According to POSIX, nsops argument of semop syscall has type size_t,
but the kernel treats nsops argument of semop and semtimedop syscalls
as unsigned int.

* ipc_sem.c (tprint_sembuf_array): Change type of "count" argument
from unsigned long to unsigned int, print it using %u format.

7 years agotests/aio.c: bring indentation in conformance with the rest of the file
Eugene Syromyatnikov [Fri, 9 Sep 2016 07:54:54 +0000 (10:54 +0300)]
tests/aio.c: bring indentation in conformance with the rest of the file

7 years agotests: use predefined constant in aio_context_t checks in aio test
Eugene Syromyatnikov [Fri, 9 Sep 2016 07:54:38 +0000 (10:54 +0300)]
tests: use predefined constant in aio_context_t checks in aio test

Also fix io_cancel and io_destroy checks which did not check correct
printing of context argument properly.

* tests/aio.c (main): Update syscall checks in order to use newly
defined bogus_ctx constant.

7 years agoMark io_setup and io_destroy as memory mapping related syscalls
Dmitry V. Levin [Fri, 9 Sep 2016 02:38:32 +0000 (02:38 +0000)]
Mark io_setup and io_destroy as memory mapping related syscalls

As io_setup syscall allocates some memory using do_mmap_pgoff, and
io_destroy deallocates this memory using vm_munmap, set TRACE_MEMORY
flag for all sysentries of io_setup and io_destroy using the following
oneliner:
sed -ri '/io_setup|io_destroy/ s/0,/TM,/' linux/*/syscallent*.h

* linux/*/syscallent*.h (io_setup, io_destroy): Change sys_flags to TM.

7 years agotravis: add x86 musl
Dmitry V. Levin [Thu, 8 Sep 2016 17:11:51 +0000 (17:11 +0000)]
travis: add x86 musl

* .travis.yml (matric): Add musl-gcc/x86.
* travis-build.sh [TARGET == x86]: Specify --target along with --build
to configure.
* travis-install.sh [CC == musl-gcc && TARGET == x32]: Add -mx32 to $CC.
[CC == musl-gcc && TARGET == x86]: Add -m32 to $CC.  Specify --build
and --target to musl configure invocation.

7 years agotests: use PRI__*64 macros in aio test
Eugene Syromyatnikov [Thu, 8 Sep 2016 18:26:17 +0000 (21:26 +0300)]
tests: use PRI__*64 macros in aio test

It was incorrectly assumed that __*64 types are long long on all
platforms, despite strace having specially crafted macros in order
to handle precisely this architecture discrepancy.
The commit fixes this oversight.

* tests/aio.c (main): Use PRI__*64 macros for correct format conversion
specifiers for __*64-typed values.

7 years agoipc: fix printing of integer arguments
Eugene Syromyatnikov [Wed, 7 Sep 2016 12:41:17 +0000 (15:41 +0300)]
ipc: fix printing of integer arguments

* ipc_msgctl.c (SYS_FUNC(msgctl)): As msqid argument is treated as int
by the kernel, cast it to int and print it using %d format.
* ipc_sem.c (SYS_FUNC(semop), SYS_FUNC(semtimedop)): Likewise,
for semid argument.
(SYS_FUNC(semget)): Likewise, for nsems argument.
(SYS_FUNC(semctl)): Likewise, for semid and semnum arguments.
* ipc_shm.c (SYS_FUNC(shmat)): Likewise, for shmid argument.
* ipc_shmctl.c (SYS_FUNC(shmctl)): Likewise.

7 years agoipc: fix printing key_t arguments of msgget, semget, and shmget syscalls
Dmitry V. Levin [Thu, 8 Sep 2016 12:49:35 +0000 (12:49 +0000)]
ipc: fix printing key_t arguments of msgget, semget, and shmget syscalls

* ipc_msg.c (SYS_FUNC(msgget)): As key_t type in the kernel
is __kernel_key_t (i.e. int), cast key_t argument to int
and print it using %#x format.
* ipc_sem.c (SYS_FUNC(semget)): Likewise.
* ipc_shm.c (SYS_FUNC(shmget)): Likewise.
* tests/ipc_msg.c (main): Test it.
* tests/ipc_sem.c (main): Likewise.
* tests/ipc_shm.c (main): Likewise.

7 years agotests: add more sched_getattr and sched_setattr decoding checks
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:09:10 +0000 (05:09 +0300)]
tests: add more sched_getattr and sched_setattr decoding checks

* tests/sched_xetattr.c (main): Add more sched_getattr and sched_setattr
decoding checks.

7 years agotests: change type of sched_nice field to signed in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:47 +0000 (05:08 +0300)]
tests: change type of sched_nice field to signed in sched_xetattr test

Kernel headers declare this field as s32, and strace prints it with %d
specifier.

* tests/sched_xetattr.c (main): Change type of sched_nice field of struct
sched_attr to int32_t, update format specifiers accordingly.

7 years agotests: add sprintrc_grep function to libtests
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:24 +0000 (05:08 +0300)]
tests: add sprintrc_grep function to libtests

New sprintrc_grep function is sprintrc function equivalent suitable for
tests where grep-base pattern matching is employed.

* tests/tests.h (sprintrc_grep): New prototype.
* tests/sprintrc.c (enum sprintrc_fmt): New sprintrc format enumeration.
(sprintrc_ex): New function, renamed from sprintrc and updated to
support different formats.
(sprintrc): Change to use sprintrc_ex with SPRINTRC_FMT_RAW.
(sprintrc_grep): New function, calls sprintrc_ex with SPRINTRC_FMT_GREP.

7 years agotests: perform more strict structure allocation in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:08:10 +0000 (05:08 +0300)]
tests: perform more strict structure allocation in sched_xetattr test

Use tail_alloc with precise size of the structure.

* tests/sched_xetattr.c (main): Eliminate usage of anonymous union type.
Rename sched to sched_attr.  Change type of sched_attr to struct
pointer.  Use tail_alloc for sched_attr allocation, update printf
statements accrodingly.

7 years agotests: split long lines in sched_xetattr test
Eugene Syromyatnikov [Tue, 6 Sep 2016 02:07:57 +0000 (05:07 +0300)]
tests: split long lines in sched_xetattr test

* tests/sched_xetattr.c (main): Split long lines.

7 years agotests/aio.c: fix for x32 personality
Dmitry V. Levin [Wed, 7 Sep 2016 13:17:59 +0000 (13:17 +0000)]
tests/aio.c: fix for x32 personality

* tests/aio.c (main): Do not pass 64-bit aio_context_t to io_submit
and io_getevents until strace learns how to print 64-bit pointers on x32
and on x86_64 for x32 personality.

7 years agoaio: print aio_context_t as a pointer type
Dmitry V. Levin [Wed, 7 Sep 2016 11:22:51 +0000 (11:22 +0000)]
aio: print aio_context_t as a pointer type

As aio_context_t is treated by the kernel as a pointer,
print it using printaddr.

* aio.c (SYS_FUNC(io_setup)): Print the pointer to aio_context_t
argument using printnum_ptr.
(SYS_FUNC(io_destroy), SYS_FUNC(io_submit), SYS_FUNC(io_cancel),
SYS_FUNC(io_getevents)): Print aio_context_t argument using printaddr.
* tests/aio.c (sprint_aio_context_t): Remove.
(main): Update expected output.

7 years agotests/aio.c: rewrite without assert
Dmitry V. Levin [Tue, 6 Sep 2016 16:11:51 +0000 (16:11 +0000)]
tests/aio.c: rewrite without assert

* tests/aio.c: Do not include <assert.h>.
(main): Use sprintrc instead of assert.

7 years agotests: add more aio decoding checks
Eugene Syromyatnikov [Tue, 6 Sep 2016 09:03:14 +0000 (12:03 +0300)]
tests: add more aio decoding checks

* tests/aio.c (sprint_aio_context_t): New function.
(main): Use it; add more checks.

7 years agotests: add suffix and cast to 64-bit constants in aio test
Eugene Syromyatnikov [Tue, 6 Sep 2016 09:02:44 +0000 (12:02 +0300)]
tests: add suffix and cast to 64-bit constants in aio test

This helps to avoid warnings like
"integer constant is too large for ‘long’ type"
reported by some versions of gcc on 32-bit platforms.

* tests/aio.c (main): Add ULL suffix to 64-bit constants
and cast them to unsigned long.

7 years agotests: check decoding of perf_event_open syscall
Eugene Syromyatnikov [Mon, 5 Sep 2016 17:39:04 +0000 (20:39 +0300)]
tests: check decoding of perf_event_open syscall

* tests/perf_event_open.c: New file.
* tests/perf_event_open.test: New test.
* tests/.gitignore: Add perf_event_open.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add perf_event_open.test.

7 years agoMakefile.am: use pwd instead of realpath
Eugene Syromyatnikov [Mon, 5 Sep 2016 17:35:20 +0000 (20:35 +0300)]
Makefile.am: use pwd instead of realpath

* Makefile.am (CODE_COVERAGE_GENHTML_OPTIONS): Use standard pwd(1)
instead of less widespread realpath(1) utility from GNU coreutils.

7 years agotests: use sprintrc in tests/xetpriority.c
Dmitry V. Levin [Mon, 5 Sep 2016 14:00:46 +0000 (14:00 +0000)]
tests: use sprintrc in tests/xetpriority.c

* tests/xetpriority.c (main): Use sprintrc.

7 years agotests: use sprintrc in vhangup.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:59:08 +0000 (13:59 +0000)]
tests: use sprintrc in vhangup.test

* tests/vhangup.c (main): Use sprintrc.

7 years agotests: use sprintrc in tests/sockname.c
Dmitry V. Levin [Mon, 5 Sep 2016 13:58:02 +0000 (13:58 +0000)]
tests: use sprintrc in tests/sockname.c

* tests/sockname.c (test_sockname_syscall): Use sprintrc.

7 years agotests: use sprintrc in signalfd4.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:53:52 +0000 (13:53 +0000)]
tests: use sprintrc in signalfd4.test

* tests/signalfd4.c (main): Use sprintrc.

7 years agotests: use sprintrc in setrlimit.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:50:39 +0000 (13:50 +0000)]
tests: use sprintrc in setrlimit.test

* tests/setrlimit.c (main): Use sprintrc.

7 years agotests: use sprintrc in set_mempolicy.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:43:36 +0000 (13:43 +0000)]
tests: use sprintrc in set_mempolicy.test

* tests/set_mempolicy.c (main, print_nodes): Use sprintrc.

7 years agotests: use sprintrc in openat.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:37:33 +0000 (13:37 +0000)]
tests: use sprintrc in openat.test

* tests/openat.c (main): Use sprintrc.

7 years agotests: use sprintrc in open.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:34:06 +0000 (13:34 +0000)]
tests: use sprintrc in open.test

* tests/open.c (main): Use sprintrc.

7 years agotests: use sprintrc in move_pages.test
Dmitry V. Levin [Mon, 5 Sep 2016 13:30:06 +0000 (13:30 +0000)]
tests: use sprintrc in move_pages.test

* tests/move_pages.c (print_stat_pages, print_move_pages): Use sprintrc.

7 years agotests: use sprintrc in mlockall.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:24:03 +0000 (22:24 +0000)]
tests: use sprintrc in mlockall.test

* tests/mlockall.c (main): Use sprintrc.

7 years agotests: use sprintrc in mlock.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:22:37 +0000 (22:22 +0000)]
tests: use sprintrc in mlock.test

* tests/mlock.c (main): Use sprintrc.

7 years agotests: use sprintrc in epoll_create1.test
Dmitry V. Levin [Sun, 4 Sep 2016 22:16:46 +0000 (22:16 +0000)]
tests: use sprintrc in epoll_create1.test

* tests/epoll_create1.c (main): Use sprintrc.

7 years agotests: fix printing of min_nr and nr arguments of io_getevents syscall
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:40 +0000 (04:32 +0300)]
tests: fix printing of min_nr and nr arguments of io_getevents syscall

* tests/aio.c (main): Change output format for min_nr and nr arguments
in io_getevents check to %ld, cast these arguments to long.

7 years agotests: use sprintrc for return code output in aio test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:29 +0000 (04:32 +0300)]
tests: use sprintrc for return code output in aio test

* tests/aio.c (main): Use sprintrc for return code output.

7 years agotests: add more tests for ched_rr_get_interval decoding
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:02 +0000 (04:32 +0300)]
tests: add more tests for ched_rr_get_interval decoding

* tests/sched_rr_get_interval.c (main): Check decoding of invalid
timespec pointer and successful syscall invocation.

7 years agotests: use sprintrc for return code output in sched_rr_get_interval test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:31:48 +0000 (04:31 +0300)]
tests: use sprintrc for return code output in sched_rr_get_interval test

* tests/sched_rr_get_interval.c (main): Use sprintrc for return code
output.

7 years agotests: add more tests for sched_getscheduler and sched_xetscheduler
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:31:35 +0000 (04:31 +0300)]
tests: add more tests for sched_getscheduler and sched_xetscheduler

* tests/sched_xetscheduler.c (main): Check for decoding of invalid PID
in sched_getscheduler and sched_setscheduler, invalid address
of sched_param structure, and invalid policy value.

7 years agotests: use sprintrc for return code output in sched_xetscheduler test
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:33:16 +0000 (04:33 +0300)]
tests: use sprintrc for return code output in sched_xetscheduler test

* tests/sched_xetscheduler.c (main): Use sprintrc for return code output.

7 years agoaio: use printfd for fd printing
Eugene Syromyatnikov [Mon, 5 Sep 2016 01:32:16 +0000 (04:32 +0300)]
aio: use printfd for fd printing

struct iocb contains two fields with fd semantics: aio_fildes and
aio_resfd.  It is quite reasonable to use the appropriate function for
printing them (apart from just "%d").

* aio.c (print_common_flags): Add struct tcb pointer to parameter list;
use printfd for printing aio_resfd field.
(print_iocb_header): Add struct tcb pointer to parameter list;
use printfd for printing aio_fildes field.
(print_iocb): Provide tcp argument to print_iocb_header
and print_common_flags.
(SYS_FUNC(io_cancel)): Likewise.

7 years agosh64: wire up new syscalls
Dmitry V. Levin [Sat, 3 Sep 2016 22:05:10 +0000 (22:05 +0000)]
sh64: wire up new syscalls

* linux/sh64/syscallent.h [380..393]: New entries.