blob: d1b195e29079eeea173c65058d4b2663d1aa818b [file] [log] [blame]
Dmitry V. Levin58dd2cf2014-12-11 19:25:02 +00001#include "defs.h"
2
3#include <sys/utsname.h>
4
5int
6sys_uname(struct tcb *tcp)
7{
8 struct utsname uname;
9
10 if (exiting(tcp)) {
11 if (syserror(tcp) || !verbose(tcp))
12 tprintf("%#lx", tcp->u_arg[0]);
13 else if (umove(tcp, tcp->u_arg[0], &uname) < 0)
14 tprints("{...}");
15 else if (!abbrev(tcp)) {
16 tprintf("{sysname=\"%s\", nodename=\"%s\", ",
17 uname.sysname, uname.nodename);
18 tprintf("release=\"%s\", version=\"%s\", ",
19 uname.release, uname.version);
20 tprintf("machine=\"%s\"", uname.machine);
21#ifdef HAVE_STRUCT_UTSNAME_DOMAINNAME
22 tprintf(", domainname=\"%s\"", uname.domainname);
23#endif
24 tprints("}");
25 }
26 else
27 tprintf("{sys=\"%s\", node=\"%s\", ...}",
28 uname.sysname, uname.nodename);
29 }
30 return 0;
31}