Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144509770
D22751.1775117633.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D22751.1775117633.diff
View Options
Index: head/share/man/man9/timeout.9
===================================================================
--- head/share/man/man9/timeout.9
+++ head/share/man/man9/timeout.9
@@ -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 @@
.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 @@
.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 @@
.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 @@
.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 @@
.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"
Index: head/sys/kern/kern_timeout.c
===================================================================
--- head/sys/kern/kern_timeout.c
+++ head/sys/kern/kern_timeout.c
@@ -145,11 +145,11 @@
*/
struct cc_exec {
struct callout *cc_curr;
- void (*cc_drain)(void *);
+ callout_func_t *cc_drain;
void *cc_last_func;
void *cc_last_arg;
#ifdef SMP
- void (*ce_migration_func)(void *);
+ callout_func_t *ce_migration_func;
void *ce_migration_arg;
sbintime_t ce_migration_time;
sbintime_t ce_migration_prec;
@@ -656,7 +656,7 @@
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;
@@ -664,7 +664,7 @@
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;
@@ -673,7 +673,7 @@
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,
@@ -768,8 +768,6 @@
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);
@@ -1031,7 +1029,7 @@
*/
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;
@@ -1190,7 +1188,7 @@
}
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;
Index: head/sys/sys/_callout.h
===================================================================
--- head/sys/sys/_callout.h
+++ head/sys/sys/_callout.h
@@ -48,6 +48,8 @@
SLIST_HEAD(callout_slist, callout);
TAILQ_HEAD(callout_tailq, callout);
+typedef void callout_func_t(void *);
+
struct callout {
union {
LIST_ENTRY(callout) le;
@@ -57,7 +59,7 @@
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 */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Apr 2, 8:13 AM (11 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28243628
Default Alt Text
D22751.1775117633.diff (4 KB)
Attached To
Mode
D22751: Add a callout_func_t typedef for functions used with callout_*().
Attached
Detach File
Event Timeline
Log In to Comment