unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-6.1.5)
Page:
Section:
Apropos / Subsearch:
optional field

_LWP_CTL(2)                   System Calls Manual                  _LWP_CTL(2)

NAME
     _lwp_ctl -- prepare per-LWP communication area between kernel and
     userland

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <&lt;lwp.h>&gt;

     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)

NetBSD 6.1.5                      May 5, 2008                     NetBSD 6.1.5