summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@strace.io>2021-04-14 08:00:00 +0000
committerDmitry V. Levin <ldv@strace.io>2021-04-14 08:00:00 +0000
commitcef1b25c7d8f908704bce6848258b14d91c1e0ca (patch)
tree95bf64645b1af4332426693a1ae8fab630e1e18d
parent9a0c6c32f9776aa3c99376c4dd934df6e8ca4050 (diff)
downloadstrace-cef1b25c7d8f908704bce6848258b14d91c1e0ca.tar.gz
ipc_msg: use print_fields.h helpers
* src/ipc_msg.c (tprint_msgsnd, tprint_msgrcv, SYS_FUNC(msgget), SYS_FUNC(msgrcv)): Use tprint_arg_next, PRINT_VAL_U, and PRINT_VAL_D.
-rw-r--r--src/ipc_msg.c48
1 files changed, 39 insertions, 9 deletions
diff --git a/src/ipc_msg.c b/src/ipc_msg.c
index ac1a88b5c..d90b17024 100644
--- a/src/ipc_msg.c
+++ b/src/ipc_msg.c
@@ -22,8 +22,11 @@
SYS_FUNC(msgget)
{
+ /* key */
printxval(ipc_private, (unsigned int) tcp->u_arg[0], NULL);
- tprints(", ");
+ tprint_arg_next();
+
+ /* msgflg */
if (printflags(resource_flags, tcp->u_arg[1] & ~0777, NULL) != 0)
tprints("|");
print_numeric_umode_t(tcp->u_arg[1] & 0777);
@@ -34,14 +37,24 @@ static void
tprint_msgsnd(struct tcb *const tcp, const kernel_ulong_t addr,
const kernel_ulong_t count, const unsigned int flags)
{
+ /* msqid */
tprint_msgbuf(tcp, addr, count);
- tprintf(", %" PRI_klu ", ", count);
+ tprint_arg_next();
+
+ /* msgsz */
+ PRINT_VAL_U(count);
+ tprint_arg_next();
+
+ /* msgflg */
printflags(ipc_msg_flags, flags, "MSG_???");
}
SYS_FUNC(msgsnd)
{
- tprintf("%d, ", (int) tcp->u_arg[0]);
+ /* msqid */
+ PRINT_VAL_D((int) tcp->u_arg[0]);
+ tprint_arg_next();
+
if (indirect_ipccall(tcp)) {
tprint_msgsnd(tcp, tcp->u_arg[3], tcp->u_arg[1],
tcp->u_arg[2]);
@@ -56,9 +69,16 @@ static void
tprint_msgrcv(struct tcb *const tcp, const kernel_ulong_t addr,
const kernel_ulong_t count, const kernel_ulong_t msgtyp)
{
+ /* msqid */
tprint_msgbuf(tcp, addr, count);
- tprintf(", %" PRI_klu ", ", count);
- tprintf("%" PRI_kld ", ", msgtyp);
+ tprint_arg_next();
+
+ /* msgsz */
+ PRINT_VAL_U(count);
+ tprint_arg_next();
+
+ /* msgtyp */
+ PRINT_VAL_D(msgtyp);
}
static int
@@ -82,7 +102,9 @@ fetch_msgrcv_args(struct tcb *const tcp, const kernel_ulong_t addr,
SYS_FUNC(msgrcv)
{
if (entering(tcp)) {
- tprintf("%d, ", (int) tcp->u_arg[0]);
+ /* msqid */
+ PRINT_VAL_D((int) tcp->u_arg[0]);
+ tprint_arg_next();
} else {
if (indirect_ipccall(tcp)) {
const bool direct =
@@ -96,16 +118,24 @@ SYS_FUNC(msgrcv)
} else {
kernel_ulong_t pair[2];
- if (fetch_msgrcv_args(tcp, tcp->u_arg[3], pair))
- tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
- else
+ if (fetch_msgrcv_args(tcp, tcp->u_arg[3], pair)) {
+ tprint_arg_next();
+ PRINT_VAL_U(tcp->u_arg[1]);
+ } else {
tprint_msgrcv(tcp, pair[0],
tcp->u_arg[1], pair[1]);
+ }
}
+ tprint_arg_next();
+
+ /* msgflg */
printflags(ipc_msg_flags, tcp->u_arg[2], "MSG_???");
} else {
tprint_msgrcv(tcp, tcp->u_arg[1],
tcp->u_arg[2], tcp->u_arg[3]);
+ tprint_arg_next();
+
+ /* msgflg */
printflags(ipc_msg_flags, tcp->u_arg[4], "MSG_???");
}
}