2 * Copyright (c) 2004 Ulrich Drepper <drepper@redhat.com>
3 * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
4 * Copyright (c) 2015-2018 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 SYS_FUNC(mq_timedsend)
43 return do_mq_timedsend(tcp, print_timespec);
47 do_mq_timedreceive(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
50 printfd(tcp, tcp->u_arg[0]);
54 printaddr(tcp->u_arg[1]);
56 printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
57 tprintf(", %" PRI_klu ", ", tcp->u_arg[2]);
58 printnum_int(tcp, tcp->u_arg[3], "%u");
61 * Since the timeout parameter is read by the kernel
62 * on entering syscall, it has to be decoded the same way
63 * whether the syscall has failed or not.
65 temporarily_clear_syserror(tcp);
66 print_ts(tcp, tcp->u_arg[4]);
67 restore_cleared_syserror(tcp);
72 SYS_FUNC(mq_timedreceive)
74 return do_mq_timedreceive(tcp, print_timespec);
79 printfd(tcp, tcp->u_arg[0]);
81 print_sigevent(tcp, tcp->u_arg[1]);
85 SYS_FUNC(mq_getsetattr)
88 printfd(tcp, tcp->u_arg[0]);
90 printmqattr(tcp, tcp->u_arg[1], true);
93 printmqattr(tcp, tcp->u_arg[2], true);