diff options
author | avg <avg@FreeBSD.org> | 2014-12-08 13:13:17 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2014-12-08 13:13:17 +0000 |
commit | 36fdb56baa99212563c1b7bc1d6dd227efbe41c0 (patch) | |
tree | b50c93c293484654db3b4593cd20af1ed4c9902f | |
parent | c07a7147dfe34345d865f4505c5ed1b54f7561d5 (diff) | |
download | FreeBSD-src-36fdb56baa99212563c1b7bc1d6dd227efbe41c0.zip FreeBSD-src-36fdb56baa99212563c1b7bc1d6dd227efbe41c0.tar.gz |
MFC r275045: callout(9): add sbt flavors of callout_schedule
Not applicable to earlier releases.
-rw-r--r-- | share/man/man9/Makefile | 6 | ||||
-rw-r--r-- | share/man/man9/timeout.9 | 21 | ||||
-rw-r--r-- | sys/sys/callout.h | 7 |
3 files changed, 30 insertions, 4 deletions
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index c7140e2..76e8314 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1385,10 +1385,14 @@ MLINKS+=timeout.9 callout.9 \ timeout.9 callout_init_rw.9 \ timeout.9 callout_pending.9 \ timeout.9 callout_reset.9 \ - timeout.9 callout_reset_sbt.9 \ timeout.9 callout_reset_on.9 \ + timeout.9 callout_reset_sbt.9 \ + timeout.9 callout_reset_sbt_curcpu.9 \ timeout.9 callout_reset_sbt_on.9 \ timeout.9 callout_schedule.9 \ + timeout.9 callout_schedule_sbt.9 \ + timeout.9 callout_schedule_sbt_curcpu.9 \ + timeout.9 callout_schedule_sbt_on.9 \ timeout.9 callout_stop.9 \ timeout.9 untimeout.9 MLINKS+=ucred.9 crcopy.9 \ diff --git a/share/man/man9/timeout.9 b/share/man/man9/timeout.9 index fad8690..7202815 100644 --- a/share/man/man9/timeout.9 +++ b/share/man/man9/timeout.9 @@ -51,6 +51,9 @@ .Nm callout_schedule , .Nm callout_schedule_curcpu , .Nm callout_schedule_on , +.Nm callout_schedule_sbt , +.Nm callout_schedule_sbt_curcpu , +.Nm callout_schedule_sbt_on , .Nm callout_stop , .Nm timeout , .Nm untimeout @@ -106,6 +109,15 @@ struct callout_handle handle = CALLOUT_HANDLE_INITIALIZER(&handle); .Ft int .Fn callout_schedule_on "struct callout *c" "int ticks" "int cpu" .Ft int +.Fn callout_schedule_sbt "struct callout *c" "sbintime_t sbt" \ +"sbintime_t pr" "int flags" +.Ft int +.Fn callout_schedule_sbt_curcpu "struct callout *c" "sbintime_t sbt" \ +"sbintime_t pr" "int flags" +.Ft int +.Fn callout_schedule_sbt_on "struct callout *c" "sbintime_t sbt" \ +"sbintime_t pr" "int cpu" "int flags" +.Ft int .Fn callout_stop "struct callout *c" .Ft struct callout_handle .Fn timeout "timeout_t *func" "void *arg" "int ticks" @@ -386,21 +398,24 @@ callouts are assigned to CPU 0. The .Fn callout_reset_on , .Fn callout_reset_sbt_on , -and .Fn callout_schedule_on +and +.Fn callout_schedule_sbt_on functions assign the callout to CPU .Fa cpu . The .Fn callout_reset_curcpu , .Fn callout_reset_sbt_curpu , -and .Fn callout_schedule_curcpu +and +.Fn callout_schedule_sbt_curcpu functions assign the callout to the current CPU. The .Fn callout_reset , .Fn callout_reset_sbt , -and .Fn callout_schedule +and +.Fn callout_schedule_sbt functions schedule the callout to execute in the softclock thread of the CPU to which it is currently assigned. .Pp diff --git a/sys/sys/callout.h b/sys/sys/callout.h index 8b51440..0c6bbea 100644 --- a/sys/sys/callout.h +++ b/sys/sys/callout.h @@ -91,6 +91,13 @@ int callout_reset_sbt_on(struct callout *, sbintime_t, sbintime_t, callout_reset_on((c), (on_tick), (fn), (arg), (c)->c_cpu) #define callout_reset_curcpu(c, on_tick, fn, arg) \ callout_reset_on((c), (on_tick), (fn), (arg), PCPU_GET(cpuid)) +#define callout_schedule_sbt_on(c, sbt, pr, cpu, flags) \ + callout_reset_sbt_on((c), (sbt), (pr), (c)->c_func, (c)->c_arg, \ + (cpu), (flags)) +#define callout_schedule_sbt(c, sbt, pr, flags) \ + callout_schedule_sbt_on((c), (sbt), (pr), (c)->c_cpu, (flags)) +#define callout_schedule_sbt_curcpu(c, sbt, pr, flags) \ + callout_schedule_sbt_on((c), (sbt), (pr), PCPU_GET(cpuid), (flags)) int callout_schedule(struct callout *, int); int callout_schedule_on(struct callout *, int, int); #define callout_schedule_curcpu(c, on_tick) \ |