Module Name: src
Committed By: christos
Date: Fri Jun 10 23:29:20 UTC 2016
Modified Files:
src/include: limits.h
src/lib/libc/gen: sysconf.3 sysconf.c
src/sys/kern: kern_time.c
src/sys/sys: unistd.h
Log Message:
GSoC 2016: Charles Cui: Add timer related macros
_POSIX_CPUTIME
_POSIX_THREAD_CPUTIME
_POSIX_DELAYTIMER_MAX
To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/include/limits.h
cvs rdiff -u -r1.47 -r1.48 src/lib/libc/gen/sysconf.3
cvs rdiff -u -r1.38 -r1.39 src/lib/libc/gen/sysconf.c
cvs rdiff -u -r1.186 -r1.187 src/sys/kern/kern_time.c
cvs rdiff -u -r1.57 -r1.58 src/sys/sys/unistd.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/include/limits.h
diff -u src/include/limits.h:1.37 src/include/limits.h:1.38
--- src/include/limits.h:1.37 Fri Jun 10 19:24:33 2016
+++ src/include/limits.h Fri Jun 10 19:29:20 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: limits.h,v 1.37 2016/06/10 23:24:33 christos Exp $ */
+/* $NetBSD: limits.h,v 1.38 2016/06/10 23:29:20 christos Exp $ */
/*
* Copyright (c) 1988, 1993
@@ -94,6 +94,9 @@
#define _POSIX_TIMER_MAX 32
#define _POSIX_SEM_NSEMS_MAX 256
+#define _POSIX_CPUTIME 200112L
+#define _POSIX_THREAD_CPUTIME 200112L
+#define _POSIX_DELAYTIMER_MAX 32
#define _POSIX_TTY_NAME_MAX 9
#define _POSIX_TZNAME_MAX 6
Index: src/lib/libc/gen/sysconf.3
diff -u src/lib/libc/gen/sysconf.3:1.47 src/lib/libc/gen/sysconf.3:1.48
--- src/lib/libc/gen/sysconf.3:1.47 Fri Jun 10 19:26:43 2016
+++ src/lib/libc/gen/sysconf.3 Fri Jun 10 19:29:20 2016
@@ -1,4 +1,4 @@
-.\" $NetBSD: sysconf.3,v 1.47 2016/06/10 23:26:43 wiz Exp $
+.\" $NetBSD: sysconf.3,v 1.48 2016/06/10 23:29:20 christos Exp $
.\"
.\" Copyright (c) 1993
.\" The Regents of the University of California. All rights reserved.
@@ -185,6 +185,15 @@ and its
Timers
option to which the system attempts to conform,
otherwise \-1.
+.It Li _SC_CPUTIME
+The clockID CLOCK_PROCESS_CPUTIME_ID is supported,
+otherwise \-1.
+.It Li _SC_THREAD_CPUTIME
+The clockID CLOCK_THREAD_CPUTIME_ID is supported,
+otherwise \-1.
+.It Li _SC_DELAYTIMER_MAX
+The maximum number of overrun for a specific timer,
+otherwise \-1.
.It Li _SC_TZNAME_MAX
The minimum maximum number of types supported for the name of a
timezone.
Index: src/lib/libc/gen/sysconf.c
diff -u src/lib/libc/gen/sysconf.c:1.38 src/lib/libc/gen/sysconf.c:1.39
--- src/lib/libc/gen/sysconf.c:1.38 Fri Jun 10 19:24:33 2016
+++ src/lib/libc/gen/sysconf.c Fri Jun 10 19:29:20 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: sysconf.c,v 1.38 2016/06/10 23:24:33 christos Exp $ */
+/* $NetBSD: sysconf.c,v 1.39 2016/06/10 23:29:20 christos Exp $ */
/*-
* Copyright (c) 1993
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)sysconf.c 8.2 (Berkeley) 3/20/94";
#else
-__RCSID("$NetBSD: sysconf.c,v 1.38 2016/06/10 23:24:33 christos Exp $");
+__RCSID("$NetBSD: sysconf.c,v 1.39 2016/06/10 23:29:20 christos Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -422,6 +422,12 @@ yesno: if (sysctl(mib, mib_len, &value,
return _POSIX_TIMER_MAX;
case _SC_SEM_NSEMS_MAX:
return _POSIX_SEM_NSEMS_MAX;
+ case _SC_CPUTIME:
+ return _POSIX_CPUTIME;
+ case _SC_THREAD_CPUTIME:
+ return _POSIX_THREAD_CPUTIME;
+ case _SC_DELAYTIMER_MAX:
+ return _POSIX_DELAYTIMER_MAX;
default:
errno = EINVAL;
return (-1);
Index: src/sys/kern/kern_time.c
diff -u src/sys/kern/kern_time.c:1.186 src/sys/kern/kern_time.c:1.187
--- src/sys/kern/kern_time.c:1.186 Sat Apr 23 19:08:26 2016
+++ src/sys/kern/kern_time.c Fri Jun 10 19:29:20 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_time.c,v 1.186 2016/04/23 23:08:26 christos Exp $ */
+/* $NetBSD: kern_time.c,v 1.187 2016/06/10 23:29:20 christos Exp $ */
/*-
* Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.186 2016/04/23 23:08:26 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.187 2016/06/10 23:29:20 christos Exp $");
#include <sys/param.h>
#include <sys/resourcevar.h>
@@ -97,6 +97,7 @@ CTASSERT(ITIMER_VIRTUAL == CLOCK_VIRTUAL
CTASSERT(ITIMER_PROF == CLOCK_PROF);
CTASSERT(ITIMER_MONOTONIC == CLOCK_MONOTONIC);
+#define DELAYTIMER_MAX 32
/*
* Initialize timekeeping.
@@ -980,6 +981,8 @@ sys_timer_getoverrun(struct lwp *l, cons
return (EINVAL);
}
*retval = pt->pt_poverruns;
+ if (*retval >= DELAYTIMER_MAX)
+ *retval = DELAYTIMER_MAX;
mutex_spin_exit(&timer_lock);
return (0);
Index: src/sys/sys/unistd.h
diff -u src/sys/sys/unistd.h:1.57 src/sys/sys/unistd.h:1.58
--- src/sys/sys/unistd.h:1.57 Fri Jun 10 19:24:33 2016
+++ src/sys/sys/unistd.h Fri Jun 10 19:29:20 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: unistd.h,v 1.57 2016/06/10 23:24:33 christos Exp $ */
+/* $NetBSD: unistd.h,v 1.58 2016/06/10 23:29:20 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -309,6 +309,9 @@
#define _SC_TIMER_MAX 88
#define _SC_SEM_NSEMS_MAX 89
+#define _SC_CPUTIME 90
+#define _SC_THREAD_CPUTIME 91
+#define _SC_DELAYTIMER_MAX 92
/* Extensions found in Solaris and Linux. */
#define _SC_PHYS_PAGES 121