]> granicus.if.org Git - strace/blob - uname.c
rtnl_link: print pad field in the struct ifla_port_vsi decoder
[strace] / uname.c
1 /*
2  * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
3  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
4  * Copyright (c) 1993-1996 Rick Sladkey <jrs@world.std.com>
5  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
6  * Copyright (c) 2012-2015 Dmitry V. Levin <ldv@altlinux.org>
7  * Copyright (c) 2014-2018 The strace developers.
8  * All rights reserved.
9  *
10  * SPDX-License-Identifier: LGPL-2.1-or-later
11  */
12
13 #include "defs.h"
14 #include "print_fields.h"
15 #include <sys/utsname.h>
16
17 SYS_FUNC(uname)
18 {
19         struct utsname uname;
20
21         if (entering(tcp))
22                 return 0;
23
24         if (!umove_or_printaddr(tcp, tcp->u_arg[0], &uname)) {
25                 PRINT_FIELD_CSTRING("{", uname, sysname);
26                 PRINT_FIELD_CSTRING(", ", uname, nodename);
27                 if (abbrev(tcp)) {
28                         tprints(", ...}");
29                         return 0;
30                 }
31                 PRINT_FIELD_CSTRING(", ", uname, release);
32                 PRINT_FIELD_CSTRING(", ", uname, version);
33                 PRINT_FIELD_CSTRING(", ", uname, machine);
34 #ifdef HAVE_STRUCT_UTSNAME_DOMAINNAME
35                 PRINT_FIELD_CSTRING(", ", uname, domainname);
36 #endif
37                 tprints("}");
38         }
39
40         return 0;
41 }