clockintr: move callback-specific API behaviors to "clockrequest" namespace
authorcheloha <cheloha@openbsd.org>
Tue, 17 Oct 2023 00:04:02 +0000 (00:04 +0000)
committercheloha <cheloha@openbsd.org>
Tue, 17 Oct 2023 00:04:02 +0000 (00:04 +0000)
commit106c68c47e20736b207a9473162ce188a63d16e7
treef58a85dd0bcaa426e94d79255aa610dabe0cca3e
parentbe52159e4037a1b3df70363fef1588ea999ea1e1
clockintr: move callback-specific API behaviors to "clockrequest" namespace

The API's behavior when invoked from a callback function is impossible
to document.  Move the special behavior into a distinct namespace,
"clockrequest".

- Add a 'struct clockrequest'.  Basically a stripped-down 'struct clockintr'
  for exclusive use during clockintr_dispatch().
- In clockintr_queue, replace the "cq_shadow" clockintr with a "cq_request"
  clockrequest.  They serve the same purpose.
- CLST_SHADOW_PENDING -> CR_RESCHEDULE; different namespace, same meaning.
- CLST_IGNORE_SHADOW -> CLST_IGNORE_REQUEST; same meaning.
- Move shadow branch in clockintr_advance() to clockrequest_advance().
- clockintr_request_random() becomes clockrequest_advance_random().
- Delete dead shadow branches in clockintr_cancel(), clockintr_schedule().
- Callback functions now get a clockrequest pointer instead of a special
  clockintr pointer: update all prototypes, callers.

No functional change intended.
sys/kern/kern_clock.c
sys/kern/kern_clockintr.c
sys/kern/kern_time.c
sys/kern/sched_bsd.c
sys/kern/subr_prof.c
sys/sys/clockintr.h
sys/sys/resourcevar.h
sys/sys/sched.h
sys/sys/systm.h
sys/sys/time.h