/*
+ * This file is part of sysinfo strace test.
+ *
* Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
+ * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#include <sys/sysinfo.h>
int
-main (void)
+main(void)
{
- struct sysinfo si;
- if (sysinfo(&si))
+ sysinfo(NULL);
+ printf("sysinfo(NULL) = -1 EFAULT (%m)\n");
+
+ struct sysinfo * const si = tail_alloc(sizeof(*si));
+
+ if (sysinfo(si))
perror_msg_and_skip("sysinfo");
printf("sysinfo({uptime=%llu"
", loads=[%llu, %llu, %llu]"
", totalhigh=%llu"
", freehigh=%llu"
", mem_unit=%u"
- "}) = 0\n",
- (unsigned long long) si.uptime
- , (unsigned long long) si.loads[0]
- , (unsigned long long) si.loads[1]
- , (unsigned long long) si.loads[2]
- , (unsigned long long) si.totalram
- , (unsigned long long) si.freeram
- , (unsigned long long) si.sharedram
- , (unsigned long long) si.bufferram
- , (unsigned long long) si.totalswap
- , (unsigned long long) si.freeswap
- , (unsigned) si.procs
- , (unsigned long long) si.totalhigh
- , (unsigned long long) si.freehigh
- , si.mem_unit
+ "}) = 0\n"
+ , (unsigned long long) si->uptime
+ , (unsigned long long) si->loads[0]
+ , (unsigned long long) si->loads[1]
+ , (unsigned long long) si->loads[2]
+ , (unsigned long long) si->totalram
+ , (unsigned long long) si->freeram
+ , (unsigned long long) si->sharedram
+ , (unsigned long long) si->bufferram
+ , (unsigned long long) si->totalswap
+ , (unsigned long long) si->freeswap
+ , (unsigned) si->procs
+ , (unsigned long long) si->totalhigh
+ , (unsigned long long) si->freehigh
+ , si->mem_unit
);
+
puts("+++ exited with 0 +++");
return 0;
}