Remove the dummy IPI messaging routines for UP builds and properly
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 25 Oct 2005 17:26:58 +0000 (17:26 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 25 Oct 2005 17:26:58 +0000 (17:26 +0000)
commitb8a984736bb3703f3c4bf2ec018f86beef40d7dc
tree20166c508e64b21affba5221e75c4338bbfa6c1f
parent807d43a0160b62aa6f0a703f900209f01b83278e
Remove the dummy IPI messaging routines for UP builds and properly
conditionalize the use of IPI messages in various core kernel modules.

Change the callback from func(arg, frameptr) to func(arg1, arg2, frameptr),
where the new argument (arg2) is an integer supplied by the originator.

Create wrappers for simpler versions of the callback: func(arg1), and
func(arg1, arg2) (for the moment we presume that GCC will generate code
for the full-sized three-argument callback which is compatible with one
and two-argument function pointers).

This extension to the IPI messaging code is needed to properly implement
MP-safe tsleep/wakeup code.  Although the extra argument is superfluous in
most cases, the overhead of doing an IPI is such that there should be no
noticeable impact on performance.
sys/i386/isa/clock.c
sys/kern/kern_intr.c
sys/kern/kern_systimer.c
sys/kern/lwkt_ipiq.c
sys/kern/lwkt_msgport.c
sys/kern/lwkt_thread.c
sys/platform/pc32/isa/clock.c
sys/sys/systimer.h
sys/sys/thread.h
sys/sys/thread2.h