1 /*
2 * Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
3 * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
4 * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
5 * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
6 * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
7 * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@strace.io>
8 * Copyright (c) 2015-2021 The strace developers.
9 * All rights reserved.
10 *
11 * SPDX-License-Identifier: LGPL-2.1-or-later
12 */
13
14 #include "defs.h"
15 #include "ipc_defs.h"
16
17 #include MSG_H_PROVIDER
18
19 #include DEF_MPERS_TYPE(msgbuf_t)
20 typedef struct msgbuf msgbuf_t;
21 #include MPERS_DEFS
22
23 MPERS_PRINTER_DECL(void, tprint_msgbuf, struct tcb *const tcp,
24 const kernel_ulong_t addr, const kernel_ulong_t count)
25 {
26 msgbuf_t msg;
27
28 if (!umove_or_printaddr(tcp, addr, &msg)) {
29 tprint_struct_begin();
30 PRINT_FIELD_D(msg, mtype);
31 tprint_struct_next();
32 tprints_field_name("mtext");
33 printstrn(tcp, addr + sizeof(msg.mtype), count);
34 tprint_struct_end();
35 }
36 }