Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 May 2020 16:30:37 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r360633 - in stable: 11/share/man/man9 11/sys/kern 11/sys/sys 12/share/man/man9 12/sys/kern 12/sys/sys
Message-ID:  <202005041630.044GUb3a099688@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Mon May  4 16:30:36 2020
New Revision: 360633
URL: https://svnweb.freebsd.org/changeset/base/360633

Log:
  MFC 355600: Add a callout_func_t typedef for functions used with callout_*().
  
  This typedef is the same as timeout_t except that it is in the callout
  namespace and header.
  
  Use this typedef in various places of the callout implementation that
  were either using the raw type or timeout_t.
  
  While here, add <sys/callout.h> to the manpage.

Modified:
  stable/11/share/man/man9/timeout.9
  stable/11/sys/kern/kern_timeout.c
  stable/11/sys/sys/_callout.h
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/12/share/man/man9/timeout.9
  stable/12/sys/kern/kern_timeout.c
  stable/12/sys/sys/_callout.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/11/share/man/man9/timeout.9
==============================================================================
--- stable/11/share/man/man9/timeout.9	Mon May  4 15:57:13 2020	(r360632)
+++ stable/11/share/man/man9/timeout.9	Mon May  4 16:30:36 2020	(r360633)
@@ -29,7 +29,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 27, 2016
+.Dd December 10, 2019
 .Dt TIMEOUT 9
 .Os
 .Sh NAME
@@ -62,8 +62,10 @@
 .Nd execute a function after a specified length of time
 .Sh SYNOPSIS
 .In sys/types.h
+.In sys/callout.h
 .In sys/systm.h
 .Bd -literal
+typedef void callout_func_t (void *);
 typedef void timeout_t (void *);
 .Ed
 .Ft int
@@ -71,7 +73,7 @@ typedef void timeout_t (void *);
 .Ft void
 .Fn callout_deactivate "struct callout *c"
 .Ft int
-.Fn callout_async_drain "struct callout *c" "timeout_t *drain"
+.Fn callout_async_drain "struct callout *c" "callout_func_t *drain"
 .Ft int
 .Fn callout_drain "struct callout *c"
 .Ft void
@@ -90,19 +92,24 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALI
 .Ft int
 .Fn callout_pending "struct callout *c"
 .Ft int
-.Fn callout_reset "struct callout *c" "int ticks" "timeout_t *func" "void *arg"
+.Fo callout_reset
+.Fa "struct callout *c"
+.Fa "int ticks"
+.Fa "callout_func_t *func"
+.Fa "void *arg"
+.Fc
 .Ft int
 .Fo callout_reset_curcpu
 .Fa "struct callout *c"
 .Fa "int ticks"
-.Fa "timeout_t *func"
+.Fa "callout_func_t *func"
 .Fa "void *arg"
 .Fc
 .Ft int
 .Fo callout_reset_on
 .Fa "struct callout *c"
 .Fa "int ticks"
-.Fa "timeout_t *func"
+.Fa "callout_func_t *func"
 .Fa "void *arg"
 .Fa "int cpu"
 .Fc
@@ -111,7 +118,7 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALI
 .Fa "struct callout *c"
 .Fa "sbintime_t sbt"
 .Fa "sbintime_t pr"
-.Fa "timeout_t *func"
+.Fa "callout_func_t *func"
 .Fa "void *arg"
 .Fa "int flags"
 .Fc
@@ -120,7 +127,7 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALI
 .Fa "struct callout *c"
 .Fa "sbintime_t sbt"
 .Fa "sbintime_t pr"
-.Fa "timeout_t *func"
+.Fa "callout_func_t *func"
 .Fa "void *arg"
 .Fa "int flags"
 .Fc
@@ -129,7 +136,7 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALI
 .Fa "struct callout *c"
 .Fa "sbintime_t sbt"
 .Fa "sbintime_t pr"
-.Fa "timeout_t *func"
+.Fa "callout_func_t *func"
 .Fa "void *arg"
 .Fa "int cpu"
 .Fa "int flags"

Modified: stable/11/sys/kern/kern_timeout.c
==============================================================================
--- stable/11/sys/kern/kern_timeout.c	Mon May  4 15:57:13 2020	(r360632)
+++ stable/11/sys/kern/kern_timeout.c	Mon May  4 16:30:36 2020	(r360633)
@@ -140,9 +140,9 @@ u_int callwheelsize, callwheelmask;
  */
 struct cc_exec {
 	struct callout		*cc_curr;
-	void			(*cc_drain)(void *);
+	callout_func_t		*cc_drain;
 #ifdef SMP
-	void			(*ce_migration_func)(void *);
+	callout_func_t		*ce_migration_func;
 	void			*ce_migration_arg;
 	int			ce_migration_cpu;
 	sbintime_t		ce_migration_time;
@@ -642,7 +642,7 @@ softclock_call_cc(struct callout *c, struct callout_cp
     int direct)
 {
 	struct rm_priotracker tracker;
-	void (*c_func)(void *);
+	callout_func_t *c_func, *drain;
 	void *c_arg;
 	struct lock_class *class;
 	struct lock_object *c_lock;
@@ -650,7 +650,7 @@ softclock_call_cc(struct callout *c, struct callout_cp
 	int c_iflags;
 #ifdef SMP
 	struct callout_cpu *new_cc;
-	void (*new_func)(void *);
+	callout_func_t *new_func;
 	void *new_arg;
 	int flags, new_cpu;
 	sbintime_t new_prec, new_time;
@@ -659,7 +659,7 @@ softclock_call_cc(struct callout *c, struct callout_cp
 	sbintime_t sbt1, sbt2;
 	struct timespec ts2;
 	static sbintime_t maxdt = 2 * SBT_1MS;	/* 2 msec */
-	static timeout_t *lastfunc;
+	static callout_func_t *lastfunc;
 #endif
 
 	KASSERT((c->c_iflags & CALLOUT_PENDING) == CALLOUT_PENDING,
@@ -752,8 +752,6 @@ skip:
 	KASSERT(cc_exec_curr(cc, direct) == c, ("mishandled cc_curr"));
 	cc_exec_curr(cc, direct) = NULL;
 	if (cc_exec_drain(cc, direct)) {
-		void (*drain)(void *);
-		
 		drain = cc_exec_drain(cc, direct);
 		cc_exec_drain(cc, direct) = NULL;
 		CC_UNLOCK(cc);
@@ -1015,7 +1013,7 @@ callout_when(sbintime_t sbt, sbintime_t precision, int
  */
 int
 callout_reset_sbt_on(struct callout *c, sbintime_t sbt, sbintime_t prec,
-    void (*ftn)(void *), void *arg, int cpu, int flags)
+    callout_func_t *ftn, void *arg, int cpu, int flags)
 {
 	sbintime_t to_sbt, precision;
 	struct callout_cpu *cc;
@@ -1174,7 +1172,7 @@ callout_schedule(struct callout *c, int to_ticks)
 }
 
 int
-_callout_stop_safe(struct callout *c, int flags, void (*drain)(void *))
+_callout_stop_safe(struct callout *c, int flags, callout_func_t *drain)
 {
 	struct callout_cpu *cc, *old_cc;
 	struct lock_class *class;

Modified: stable/11/sys/sys/_callout.h
==============================================================================
--- stable/11/sys/sys/_callout.h	Mon May  4 15:57:13 2020	(r360632)
+++ stable/11/sys/sys/_callout.h	Mon May  4 16:30:36 2020	(r360633)
@@ -46,6 +46,8 @@ LIST_HEAD(callout_list, callout);
 SLIST_HEAD(callout_slist, callout);
 TAILQ_HEAD(callout_tailq, callout);
 
+typedef void callout_func_t(void *);
+
 struct callout {
 	union {
 		LIST_ENTRY(callout) le;
@@ -55,7 +57,7 @@ struct callout {
 	sbintime_t c_time;			/* ticks to the event */
 	sbintime_t c_precision;			/* delta allowed wrt opt */
 	void	*c_arg;				/* function argument */
-	void	(*c_func)(void *);		/* function to call */
+	callout_func_t *c_func;			/* function to call */
 	struct lock_object *c_lock;		/* lock to handle */
 	short	c_flags;			/* User State */
 	short	c_iflags;			/* Internal State */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202005041630.044GUb3a099688>