Module Name: src Committed By: christos Date: Fri Feb 26 17:08:58 UTC 2016
Modified Files: src/sys/kern: kern_time.c src/sys/sys: timevar.h Log Message: Make comments and code match reality; there are 4 reserved timers. To generate a diff of this commit: cvs rdiff -u -r1.182 -r1.183 src/sys/kern/kern_time.c cvs rdiff -u -r1.34 -r1.35 src/sys/sys/timevar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_time.c diff -u src/sys/kern/kern_time.c:1.182 src/sys/kern/kern_time.c:1.183 --- src/sys/kern/kern_time.c:1.182 Tue Oct 6 11:03:34 2015 +++ src/sys/kern/kern_time.c Fri Feb 26 12:08:58 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_time.c,v 1.182 2015/10/06 15:03:34 christos Exp $ */ +/* $NetBSD: kern_time.c,v 1.183 2016/02/26 17:08:58 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.182 2015/10/06 15:03:34 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.183 2016/02/26 17:08:58 christos Exp $"); #include <sys/param.h> #include <sys/resourcevar.h> @@ -512,7 +512,7 @@ adjtime1(const struct timeval *delta, st * * All timers are kept in an array pointed to by p_timers, which is * allocated on demand - many processes don't use timers at all. The - * first three elements in this array are reserved for the BSD timers: + * first four elements in this array are reserved for the BSD timers: * element 0 is ITIMER_REAL, element 1 is ITIMER_VIRTUAL, element * 2 is ITIMER_PROF, and element 3 is ITIMER_MONOTONIC. The rest may be * allocated by the timer_create() syscall. @@ -578,7 +578,7 @@ timer_create1(timer_t *tid, clockid_t id /* Find a free timer slot, skipping those reserved for setitimer(). */ mutex_spin_enter(&timer_lock); - for (timerid = 3; timerid < TIMER_MAX; timerid++) + for (timerid = TIMER_MIN; timerid < TIMER_MAX; timerid++) if (pts->pts_timers[timerid] == NULL) break; if (timerid == TIMER_MAX) { @@ -1258,7 +1258,7 @@ timers_free(struct proc *p, int which) &ptn->pt_time.it_value); LIST_INSERT_HEAD(&pts->pts_prof, ptn, pt_list); } - i = 3; + i = TIMER_MIN; } for ( ; i < TIMER_MAX; i++) { if (pts->pts_timers[i] != NULL) { @@ -1267,7 +1267,7 @@ timers_free(struct proc *p, int which) } } if (pts->pts_timers[0] == NULL && pts->pts_timers[1] == NULL && - pts->pts_timers[2] == NULL) { + pts->pts_timers[2] == NULL && pts->pts_timers[3] == NULL) { p->p_timers = NULL; mutex_spin_exit(&timer_lock); pool_put(&ptimers_pool, pts); Index: src/sys/sys/timevar.h diff -u src/sys/sys/timevar.h:1.34 src/sys/sys/timevar.h:1.35 --- src/sys/sys/timevar.h:1.34 Fri Aug 7 04:11:33 2015 +++ src/sys/sys/timevar.h Fri Feb 26 12:08:58 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: timevar.h,v 1.34 2015/08/07 08:11:33 ozaki-r Exp $ */ +/* $NetBSD: timevar.h,v 1.35 2016/02/26 17:08:58 christos Exp $ */ /* * Copyright (c) 2005, 2008 The NetBSD Foundation. @@ -92,6 +92,8 @@ struct ptimer { #define pt_list pt_data.pt_nonreal.pt_list #define pt_active pt_data.pt_nonreal.pt_active +#define TIMER_MIN 4 /* [0..3] are reserved for setitimer(2) */ + /* REAL=0,VIRTUAL=1,PROF=2,MONOTONIC=3 */ #define TIMER_MAX 32 /* See ptimers->pts_fired if you enlarge this */ #define TIMERS_ALL 0 #define TIMERS_POSIX 1