NAME
_lwp_ctl —
prepare per-LWP
communication area between kernel and userland
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/lwpctl.h>
#include <lwp.h>
int
_lwp_ctl(
int
features,
struct lwpctl
**address);
DESCRIPTION
_lwp_ctl() prepares per-LWP communication area for the calling
LWP, and maps it into the calling process' address space. It takes the
following arguments.
-
-
- 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 calling LWP.
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
LWPCTL_FEATURE_PCTR
flag.
RETURN VALUES
_lwp_ctl() returns 0 on success. Otherwise, -1 is returned and
errno is set to indicate the error.
SEE ALSO
errno(2)