Page MenuHomeFreeBSD

D22751.id65463.diff
No OneTemporary

D22751.id65463.diff

Index: share/man/man9/timeout.9
===================================================================
--- share/man/man9/timeout.9
+++ share/man/man9/timeout.9
@@ -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: sys/kern/kern_timeout.c
===================================================================
--- sys/kern/kern_timeout.c
+++ 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;
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,7 +768,7 @@
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 *);
+ callout_func_t *drain;
drain = cc_exec_drain(cc, direct);
cc_exec_drain(cc, direct) = NULL;
@@ -1031,7 +1031,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 +1190,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: sys/sys/_callout.h
===================================================================
--- sys/sys/_callout.h
+++ 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

Mime Type
text/plain
Expires
Fri, Mar 6, 4:49 PM (13 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29332340
Default Alt Text
D22751.id65463.diff (4 KB)

Event Timeline