clockintr: add clockqueue_intrclock_install()
authorcheloha <cheloha@openbsd.org>
Sat, 26 Aug 2023 22:21:00 +0000 (22:21 +0000)
committercheloha <cheloha@openbsd.org>
Sat, 26 Aug 2023 22:21:00 +0000 (22:21 +0000)
commitd3ae44b763b5cf66b136960bb6f4ddd6a7b7bbe3
tree50069272a02672d9f8c3b81af0cab163fde3e090
parentc37e9688766ff2fea30b6bfe8ddee01775aa1814
clockintr: add clockqueue_intrclock_install()

At some point, clockintr_cpu_init() is going to go away.  However,
there will still need to be a way to add an intrclock to a struct
clockintr_queue.

Add a new internal interface, clockqueue_intrclock_install().  If the
given clockintr_queue does not yet have an intrclock installed, it
copies the contents of the given intrclock to the clockintr_queue's
private intrclock (cq_intrclock) and sets CQ_INTRCLOCK in cq_flags.

I'm using the verb "install" here instead of "attach" because an
intrclock is really just a vtable that we copy into the
clockintr_queue.  The original intrclock is in no way "bound" or
"affixed" to a particular clockintr_queue: it's more akin to a stamp
that can be reused to initialize any number of individual
clockintr_queue structs.
sys/kern/kern_clockintr.c