1da2e3ebdSchinhdr	time
2da2e3ebdSchinlib	clock_settime,gettimeofday,settimeofday,stime,utimes
3da2e3ebdSchinlib	nanosleep,usleep
43e14f97fSRoger A. Faulknerlib	utimensat -D_ATFILE_SOURCE sys/stat.h note{ complete utimensat implementation }end link{
53e14f97fSRoger A. Faulkner	#include <fcntl.h>
63e14f97fSRoger A. Faulkner	static struct timespec	ts[2];
73e14f97fSRoger A. Faulkner	int
83e14f97fSRoger A. Faulkner	main()
93e14f97fSRoger A. Faulkner	{
103e14f97fSRoger A. Faulkner		ts[0].tv_nsec = UTIME_NOW;
113e14f97fSRoger A. Faulkner		ts[1].tv_nsec = UTIME_OMIT;
123e14f97fSRoger A. Faulkner		return utimensat(AT_FDCWD, ".", ts, AT_SYMLINK_NOFOLLOW) != 0;
133e14f97fSRoger A. Faulkner	}
143e14f97fSRoger A. Faulkner}end
15da2e3ebdSchin
16da2e3ebdSchinif ! mem timeval.tv_sec sys/time.h {
17da2e3ebdSchin	struct timeval
18da2e3ebdSchin	{
19da2e3ebdSchin		time_t	tv_sec;
20da2e3ebdSchin		time_t	tv_usec;
21da2e3ebdSchin	};
22da2e3ebdSchin}
23da2e3ebdSchinendif
24da2e3ebdSchin
25da2e3ebdSchinlib	clock_gettime execute{
26da2e3ebdSchin	#include <time.h>
273e14f97fSRoger A. Faulkner	int
28da2e3ebdSchin	main()
29da2e3ebdSchin	{
30da2e3ebdSchin		struct timespec	tv;
31da2e3ebdSchin		return clock_gettime(CLOCK_REALTIME, &tv) != 0;
32da2e3ebdSchin	}
33da2e3ebdSchin}end
34da2e3ebdSchin
35da2e3ebdSchinlib	utimets link{
36da2e3ebdSchin	#include <time.h>
37da2e3ebdSchin	#include <sys/time.h>
38da2e3ebdSchin	static struct timespec	tv;
393e14f97fSRoger A. Faulkner	int
40da2e3ebdSchin	main()
41da2e3ebdSchin	{
42da2e3ebdSchin		return utimets(".", &tv) != 0;
43da2e3ebdSchin	}
44da2e3ebdSchin}end
45da2e3ebdSchin
46da2e3ebdSchintst	- -DN=1 - -DN=2 - -DN=3 - -DN=4 output{
47da2e3ebdSchin	#include <sys/types.h>
48da2e3ebdSchin	#include <sys/time.h>
49da2e3ebdSchin	int
50da2e3ebdSchin	main()
51da2e3ebdSchin	{
52da2e3ebdSchin		struct timeval	tv;
53da2e3ebdSchin#if N == 1
54da2e3ebdSchin		struct timezone	tz;
55da2e3ebdSchin		if (gettimeofday(&tv, (struct timezone*)0) < 0)
56da2e3ebdSchin			return 1;
57da2e3ebdSchin		printf("#define tmgettimeofday(p)	gettimeofday(p,(struct timezone*)0)\n");
58da2e3ebdSchin#if _lib_settimeofday
59da2e3ebdSchin		printf("#define tmsettimeofday(p)	settimeofday(p,(struct timezone*)0)\n");
60da2e3ebdSchin#endif
61da2e3ebdSchin#endif
62da2e3ebdSchin#if N == 2
63da2e3ebdSchin		if (gettimeofday(&tv, (void*)0) < 0)
64da2e3ebdSchin			return 1;
65da2e3ebdSchin		printf("#define tmgettimeofday(p)	gettimeofday(p,(void*)0)\n");
66da2e3ebdSchin#if _lib_settimeofday
67da2e3ebdSchin		printf("#define tmsettimeofday(p)	gettimeofday(p,(void*)0)\n");
68da2e3ebdSchin#endif
69da2e3ebdSchin#endif
70da2e3ebdSchin#if N == 3
71da2e3ebdSchin		if (gettimeofday(&tv) < 0)
72da2e3ebdSchin			return 1;
73da2e3ebdSchin		printf("#define tmgettimeofday(p)	gettimeofday(p)\n");
74da2e3ebdSchin#if _lib_settimeofday
75da2e3ebdSchin		printf("#define tmsettimeofday(p)	settimeofday(p)\n");
76da2e3ebdSchin#endif
77da2e3ebdSchin#endif
78da2e3ebdSchin		return 0;
79da2e3ebdSchin	}
80da2e3ebdSchin}end
81