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

Reply via email to