LGRP_INIT(3LGRP)      Locality Group Library Functions      LGRP_INIT(3LGRP)
NAME
       lgrp_init - initialize lgroup interface
SYNOPSIS
       cc [ 
flag... ] 
file... 
-llgrp [ 
library... ]
       #include <sys/lgrp_user.h>       
lgrp_cookie_t lgrp_init(
lgrp_view_t view);
DESCRIPTION
       The 
lgrp_init() function initializes the lgroup interface and takes a
       snapshot of the lgroup hierarchy with the given 
view.  If the given       
view is 
LGRP_VIEW_CALLER, the snapshot contains only the resources
       that are available to the caller (for example, with respect to
       processor sets).  When the 
view is 
LGRP_VIEW_OS, the snapshot
       contains what is available to the operating system.
       Given the 
view, 
lgrp_init() returns a cookie representing this
       snapshot of the lgroup hierarchy. This cookie should be used with
       other routines in the lgroup interface needing the lgroup hierarchy.
       The 
lgrp_fini(3LGRP) function should be called with the cookie when
       it is no longer needed.
       The lgroup hiearchy represents the latency topology of the machine.
       The hierarchy is simplified to be a tree and can be used to find the
       nearest resources.
       The lgroup hiearchy consists of a root lgroup, which is the maximum
       bounding locality group of the system, contains all the CPU and
       memory resources of the machine, and may contain  other locality
       groups that contain CPUs and memory within a smaller locality. The
       leaf lgroups contain resources within the smallest latency.
       The resources of a given lgroup come directly from the lgroup itself
       or from leaf lgroups contained within the lgroup. Leaf lgroups
       directly contain their own resources and do not encapsulate any other
       lgroups.
       The lgroup hierarchy can be used to find the nearest resources. From
       a given lgroup, the closest resources can be found in the lgroup
       itself. After that, the next nearest resources can be found in its
       parent lgroup, and so on until the root lgroup is reached where all
       the resources of the machine are located.
RETURN VALUES
       Upon successful completion, 
lgrp_init() returns a cookie. Otherwise
       it returns 
LGRP_COOKIE_NONE and sets 
errno to indicate the error.
ERRORS
       The 
lgrp_init() function will fail if:       
EINVAL                 The view is not valid.       
ENOMEM                 There was not enough memory to allocate the snapshot of the
                 lgroup hierarchy.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Evolving        |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       lgrp_children(3LGRP), 
lgrp_cookie_stale(3LGRP), 
lgrp_cpus(3LGRP),       
lgrp_fini(3LGRP), 
lgrp_mem_size(3LGRP), 
lgrp_nlgrps(3LGRP),       
lgrp_parents(3LGRP), 
lgrp_resources(3LGRP), 
lgrp_root(3LGRP),       
lgrp_view(3LGRP), 
liblgrp(3LIB), 
attributes(7)                              January 26, 2005              LGRP_INIT(3LGRP)