xref: /openbmc/linux/tools/perf/trace/beauty/timespec.c (revision 6ac73820)
1*6ac73820SArnaldo Carvalho de Melo // SPDX-License-Identifier: LGPL-2.1
2*6ac73820SArnaldo Carvalho de Melo // Copyright (C) 2022, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
3*6ac73820SArnaldo Carvalho de Melo 
4*6ac73820SArnaldo Carvalho de Melo #include "trace/beauty/beauty.h"
5*6ac73820SArnaldo Carvalho de Melo #include <inttypes.h>
6*6ac73820SArnaldo Carvalho de Melo #include <time.h>
7*6ac73820SArnaldo Carvalho de Melo 
syscall_arg__scnprintf_augmented_timespec(struct syscall_arg * arg,char * bf,size_t size)8*6ac73820SArnaldo Carvalho de Melo static size_t syscall_arg__scnprintf_augmented_timespec(struct syscall_arg *arg, char *bf, size_t size)
9*6ac73820SArnaldo Carvalho de Melo {
10*6ac73820SArnaldo Carvalho de Melo 	struct timespec *ts = (struct timespec *)arg->augmented.args;
11*6ac73820SArnaldo Carvalho de Melo 
12*6ac73820SArnaldo Carvalho de Melo 	return scnprintf(bf, size, "{ .tv_sec: %" PRIu64 ", .tv_nsec: %" PRIu64 " }", ts->tv_sec, ts->tv_nsec);
13*6ac73820SArnaldo Carvalho de Melo }
14*6ac73820SArnaldo Carvalho de Melo 
syscall_arg__scnprintf_timespec(char * bf,size_t size,struct syscall_arg * arg)15*6ac73820SArnaldo Carvalho de Melo size_t syscall_arg__scnprintf_timespec(char *bf, size_t size, struct syscall_arg *arg)
16*6ac73820SArnaldo Carvalho de Melo {
17*6ac73820SArnaldo Carvalho de Melo 	if (arg->augmented.args)
18*6ac73820SArnaldo Carvalho de Melo 		return syscall_arg__scnprintf_augmented_timespec(arg, bf, size);
19*6ac73820SArnaldo Carvalho de Melo 
20*6ac73820SArnaldo Carvalho de Melo 	return scnprintf(bf, size, "%#lx", arg->val);
21*6ac73820SArnaldo Carvalho de Melo }
22