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