aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAndrew Turner <andrew@fubar.geek.nz>2019-06-11 10:22:40 +0000
committerDmitry Vyukov <dvyukov@google.com>2019-06-11 12:31:30 +0200
commit28a6eb7203393ca5789d971e64c19ee0c6d6bd3f (patch)
tree247a7c387ceeda91e0ef9f6b1ac88970edb8229e /tools
parentd2f63c9b494cffdb8e2a2d3bc9ad682b417a501e (diff)
tools/kcovtrace: Fix cover type on FreeBSD and NetBSD
It should be uint64_t as a 32 bit tool may be tracing a 64 bit kernel.
Diffstat (limited to 'tools')
-rw-r--r--tools/kcovtrace/kcovtrace.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/kcovtrace/kcovtrace.c b/tools/kcovtrace/kcovtrace.c
index 5f98aac19..119345394 100644
--- a/tools/kcovtrace/kcovtrace.c
+++ b/tools/kcovtrace/kcovtrace.c
@@ -21,6 +21,7 @@
#if defined(__FreeBSD__) || defined(__NetBSD__)
#include <sys/kcov.h>
#define KCOV_PATH "/dev/kcov"
+typedef uint64_t cover_t;
#else
#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
#define KCOV_ENABLE _IO('c', 100)
@@ -28,13 +29,14 @@
#define KCOV_ENTRY_SIZE sizeof(unsigned long)
#define KCOV_PATH "/sys/kernel/debug/kcov"
#define KCOV_TRACE_PC 0
+typedef unsigned long cover_t;
#endif
#define COVER_SIZE (16 << 20)
int main(int argc, char** argv, char** envp)
{
int fd, pid, status;
- unsigned long *cover, n, i;
+ cover_t *cover, n, i;
if (argc == 1)
fprintf(stderr, "usage: kcovtrace program [args...]\n"), exit(1);
@@ -50,7 +52,7 @@ int main(int argc, char** argv, char** envp)
if (ioctl(fd, KCOV_INIT_TRACE, COVER_SIZE))
#endif
perror("ioctl"), exit(1);
- cover = (unsigned long*)mmap(NULL, COVER_SIZE * KCOV_ENTRY_SIZE,
+ cover = (cover_t*)mmap(NULL, COVER_SIZE * KCOV_ENTRY_SIZE,
PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if ((void*)cover == MAP_FAILED)
perror("mmap"), exit(1);
@@ -80,7 +82,7 @@ int main(int argc, char** argv, char** envp)
}
n = __atomic_load_n(&cover[0], __ATOMIC_RELAXED);
for (i = 0; i < n; i++)
- printf("0x%lx\n", cover[i + 1]);
+ printf("0x%jx\n", (uintmax_t)cover[i + 1]);
if (munmap(cover, COVER_SIZE * KCOV_ENTRY_SIZE))
perror("munmap"), exit(1);
if (close(fd))