2 * Copyright (c) 2004 Ulrich Drepper <drepper@redhat.com>
3 * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
4 * Copyright (c) 2015-2019 The strace developers.
7 * SPDX-License-Identifier: LGPL-2.1-or-later
15 printpath(tcp, tcp->u_arg[0]);
18 tprint_open_modes(tcp->u_arg[1]);
19 if (tcp->u_arg[1] & O_CREAT) {
22 print_numeric_umode_t(tcp->u_arg[2]);
24 printmqattr(tcp, tcp->u_arg[3], false);
26 return RVAL_DECODED | RVAL_FD;
30 do_mq_timedsend(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
32 printfd(tcp, tcp->u_arg[0]);
34 printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
35 tprintf(", %" PRI_klu ", %u, ", tcp->u_arg[2],
36 (unsigned int) tcp->u_arg[3]);
37 print_ts(tcp, tcp->u_arg[4]);
41 #if HAVE_ARCH_TIME32_SYSCALLS
42 SYS_FUNC(mq_timedsend_time32)
44 return do_mq_timedsend(tcp, print_timespec32);
48 SYS_FUNC(mq_timedsend_time64)
50 return do_mq_timedsend(tcp, print_timespec64);
54 do_mq_timedreceive(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
57 printfd(tcp, tcp->u_arg[0]);
61 printaddr(tcp->u_arg[1]);
63 printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
64 tprintf(", %" PRI_klu ", ", tcp->u_arg[2]);
65 printnum_int(tcp, tcp->u_arg[3], "%u");
68 * Since the timeout parameter is read by the kernel
69 * on entering syscall, it has to be decoded the same way
70 * whether the syscall has failed or not.
72 temporarily_clear_syserror(tcp);
73 print_ts(tcp, tcp->u_arg[4]);
74 restore_cleared_syserror(tcp);
79 #if HAVE_ARCH_TIME32_SYSCALLS
80 SYS_FUNC(mq_timedreceive_time32)
82 return do_mq_timedreceive(tcp, print_timespec32);
86 SYS_FUNC(mq_timedreceive_time64)
88 return do_mq_timedreceive(tcp, print_timespec64);
93 printfd(tcp, tcp->u_arg[0]);
95 print_sigevent(tcp, tcp->u_arg[1]);
99 SYS_FUNC(mq_getsetattr)
102 printfd(tcp, tcp->u_arg[0]);
104 printmqattr(tcp, tcp->u_arg[1], true);
107 printmqattr(tcp, tcp->u_arg[2], true);