| CPU_SWITCHTO(9) | Kernel Developer's Manual | CPU_SWITCHTO(9) |
cpu_switchto —
machine-dependent LWP context switching
interface
#include
<sys/cpu.h>
lwp_t *
cpu_switchto(lwp_t
*oldlwp, lwp_t
*newlwp, bool
returning);
The
cpu_switchto()
function saves the context of the LWP which is currently running on the
processor, and restores the context of the LWP specified by
newlwp.
Remarks:
cpu_switchto()
does not switch address spaces.cpu_switchto() sets
curlwp(9) to
newlwp. If the architecture does non-interlocked
adaptive mutex release, cpu_switchto() does an
equivalent of
membar_producer(3),
before and after the modification of
curlwp(9).cpu_switchto() should be called at
IPL_SCHED. When the function returns, the caller
should lower the priority level as soon as possible.cpu_switchto() might be called with spin mutexes
held.The function takes the following arguments.
NULL, the context of the
LWP currently running on this processor is not saved.NULL.The cpu_switchto() function does not
return until another LWP calls cpu_switchto(). It
returns the oldlwp argument of the
cpu_switchto() which is called to switch back to our
LWP. It is either a LWP which called cpu_switchto()
to switch to us or NULL in case the LWP was
exiting.
membar_producer(3), swapcontext(3), intro(9), mutex(9), spl(9)
| June 2, 2011 | NetBSD 11.0 |