blob: d1b195e29079eeea173c65058d4b2663d1aa818b [file] [log] [blame]
#include "defs.h"
#include <sys/utsname.h>
int
sys_uname(struct tcb *tcp)
{
struct utsname uname;
if (exiting(tcp)) {
if (syserror(tcp) || !verbose(tcp))
tprintf("%#lx", tcp->u_arg[0]);
else if (umove(tcp, tcp->u_arg[0], &uname) < 0)
tprints("{...}");
else if (!abbrev(tcp)) {
tprintf("{sysname=\"%s\", nodename=\"%s\", ",
uname.sysname, uname.nodename);
tprintf("release=\"%s\", version=\"%s\", ",
uname.release, uname.version);
tprintf("machine=\"%s\"", uname.machine);
#ifdef HAVE_STRUCT_UTSNAME_DOMAINNAME
tprintf(", domainname=\"%s\"", uname.domainname);
#endif
tprints("}");
}
else
tprintf("{sys=\"%s\", node=\"%s\", ...}",
uname.sysname, uname.nodename);
}
return 0;
}