_LWP_CTL(2) System Calls Manual _LWP_CTL(2)
_lwp_ctl -- prepare per-LWP communication area between kernel and
Standard C Library (libc, -lc)
_lwp_ctl(int features, struct lwpctl **address);
_lwp_ctl() prepares per-LWP communication area for the calling LWP, and
maps it into the calling process' address space. It takes the following
features The bitwise-OR of the following flags.
LWPCTL_FEATURE_CURCPU Request lc_curcpu.
LWPCTL_FEATURE_PCTR Request lc_pctr.
address The address to store a pointer to lwpctl structure for the
The per-LWP communication area is described by an lwpctl structure. It
has following members, depending on features.
int lc_curcpu The integral identifier of the CPU on which the LWP is
running, or LWPCTL_CPU_NONE when the LWP is not running on
any CPU. It's updated by the kernel and should be
considered as read-only for userland. It's available only
if requested with the LWPCTL_FEATURE_CURCPU flag.
int lc_pctr The integer which is incremented on every context switches
to the LWP. It can be used to detect preemption of the
LWP. (thus its name "preemption counter".) It's updated
by the kernel and should be considered as read-only for
userland. It's available only if requested with the
_lwp_ctl() returns 0 on success. Otherwise, -1 is returned and errno is
set to indicate the error.
NetBSD 6.1.5 May 5, 2008 NetBSD 6.1.5