diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00001.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00001.html
deleted file mode 100644
index 35010a5ceb..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00001.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Terms and Definitions
-
-
-
-
-
-
-
-
-
-
-Object
-Interesting kind of part of the system, such as a Core, a Cache, a Memory node, etc. The different types detected by hwloc are detailed in the hwloc_obj_type_t enumeration.
-They are topologically sorted by CPU set into a tree.
-
-
-CPU set
-The set of logical processors (or processing units) logically included in an object (if it makes sense). They are always expressed using physical logical processor numbers (as announced by the OS). They are just masks, they do not have any relation with an operating system actual binding notion like Linux' cpusets.
-
-
-Parent object
-The object logically containing the current object, for example because its CPU set includes the CPU set of the current object.
-
-
-Ancestor object
-The parent object, or its own parent object, and so on.
-
-
-Children object(s)
-The object (or objects) contained in the current object because their CPU set is included in the CPU set of the current object.
-
-
-Arity
-The number of children of an object.
-
-
-Sibling objects
-Objects of the same type which have the same parent.
-
-
-Sibling rank
-Index to uniquely identify objects of the same type which have the same parent, and is always in the range [0, parent_arity).
-
-
-Cousin objects
-Objects of the same type as the current object.
-
-
-Level
-Set of objects of the same type.
-
-
-OS index
-The index that the operating system (OS) uses to identify the object. This may be completely arbitrary, or it may depend on the BIOS configuration.
-
-
-Depth
-Nesting level in the object tree, starting from the 0th object.
-
-
-Logical index
-Index to uniquely identify objects of the same type. It expresses proximity in a generic way. This index is always linear and in the range [0, num_objs_same_type_same_level). Think of it as ``cousin rank.'' The ordering is based on topology first, and then on OS CPU numbers, so it is stable across everything except firmware CPU renumbering.
-
-
-Logical processor
-
-Processing unit
-The smallest processing element that can be represented by a hwloc object. It may be a single-core processor, a core of a multicore processor, or a single thread in SMT processor.
-
-
-
-
The following diagram can help to understand the vocabulary of the relationships by showing the example of a machine with two dual core sockets (with no hardware threads); thus, a topology with 4 levels. Each box with rounded corner corresponds to one hwloc_obj_t, containing the values of the different integer fields (depth, logical_index, etc.), and arrows show to which other hwloc_obj_t pointers point to (first_child, parent, etc.)
-
-
-
-
It should be noted that for PU objects, the logical index -- as computed linearly by hwloc -- is not the same as the OS index.
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00002.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00002.html
deleted file mode 100644
index 98eb677893..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00002.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Command-line tools
-
-
-
-
-
-
-
-
-
-
hwloc comes with an extensive C programming interface and several command line utilities. Each of them is fully documented in its own manual page; the following is a summary of the available command line tools.
-
-
lstopo (also known as hwloc-info and hwloc-ls) displays the hierarchical topology map of the current system. The output may be graphic or textual, and can also be exported to numerous file formats such as PDF, PNG, XML, and others.
-
Note that lstopo can read XML files and/or alternate chroot filesystems and display topological maps representing those systems (e.g., use lstopo to output an XML file on one system, and then use lstopo to read in that XML file and display it on a different system).
-
-
hwloc-bind binds processes to specific hardware objects through a flexible syntax. A simple example is binding an executable to specific cores (or sockets or cpusets or ...). The hwloc-bind(1) man page provides much more detail on what is possible.
-
hwloc-bind can also be used to retrieve the current process' binding.
-
-
hwloc-calc is generally used to create cpuset strings to pass to hwloc-bind. Although hwloc-bind accepts many forms of object specification (i.e., cpuset strings are one of many forms that hwloc-bind understands), they can be useful, compact representations in shell scripts, for example.
-
hwloc-calc generates cpuset strings from given hardware objects with the ability to aggregate them, intersect them, and more. hwloc-calc generally uses the same syntax than hwloc-bind, but multiple instances may be composed to generate complex combinations.
-
Note that hwloc-calc can also generate lists of logical processors or NUMA nodes that are convenient to pass to some external tools such as taskset or numactl.
-
-
hwloc-distrib generates a set of cpuset strings that are uniformly distributed across the machine for the given number of processes. These strings may be used with hwloc-bind to run processes to maximize their memory bandwidth by properly distributing them across the machine.
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00003.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00003.html
deleted file mode 100644
index ca6a36bd58..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00003.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Environment variables
-
-
-
-
-
-
-
-
-
-
The behavior of the hwloc library and tools may be tuned thanks to the following environment variables.
-
-HWLOC_XMLFILE=/path/to/file.xml
-enforces the discovery from the given XML file as if hwloc_topology_set_xml() had been called. This file may have been generated earlier with lstopo file.xml. For convenience, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, HWLOC_THISSYSTEM should be set 1 in the environment too, to assert that the loaded file is really the underlying system.
-
-
-HWLOC_FSROOT=/path/to/linux/filesystem-root/
-switches to reading the topology from the specified Linux filesystem root instead of the main file-system root, as if hwloc_topology_set_fsroot() had been called. Not using the main file-system root causes hwloc_topology_is_thissystem() to return 0. For convenience, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, HWLOC_THISSYSTEM should be set 1 in the environment too, to assert that the loaded file is really the underlying system.
-
-
-HWLOC_THISSYSTEM=1
-enforces the return value of hwloc_topology_is_thissystem() . It means that it makes hwloc assume that the selected backend provides the topology for the system on which we are running, even if it is not the OS-specific backend but the XML backend for instance. This means making the binding functions actually call the OS-specific system calls and really do binding, while the XML backend would otherwise provide empty hooks just returning success. This can be used for efficiency reasons to first detect the topology once, save it to an XML file, and quickly reload it later through the XML backend, but still having binding functions actually do bind.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00004.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00004.html
deleted file mode 100644
index e749d72524..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00004.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Interoperability with other software
-
-
-
-
-
-
-
-
-
-
Although hwloc offers its own portable interface, it still may have to interoperate with specific or non-portable libraries that manipulate similar kinds of objects. hwloc therefore offers several specific "helpers" to assist converting between those specific interfaces and hwloc.
-
Some external libraries may be specific to a particular OS; others may not always be available. The hwloc core therefore generally does not explicitly depend on these types of libraries. However, when a custom application uses or otherwise depends on such a library, it may optionally include the corresponding hwloc helper to extend the hwloc interface with dedicated helpers.
-
-Linux specific features
-hwloc/linux.h offers Linux-specific helpers that utilize some non-portable features of the Linux system, such as binding threads through their thread ID ("tid") or parsing kernel CPU mask files.
-
-
-Linux libnuma
-hwloc/linux-libnuma.h provides conversion helpers between hwloc CPU sets and libnuma-specific types, such as nodemasks and bitmasks. It helps you use libnuma memory-binding functions with hwloc CPU sets.
-
-
-Glibc
-hwloc/glibc-sched.h offers conversion routines between Glibc and hwloc CPU sets in order to use hwloc with functions such as sched_setaffinity().
-
-
-OpenFabrics Verbs
-hwloc/openfabrics-verbs.h helps interoperability with the OpenFabrics Verbs interface. For example, it can return a list of processors near an OpenFabrics device.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00005.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00005.html
deleted file mode 100644
index 8fd203c3f3..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00005.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Thread safety
-
-
-
-
-
-
-
-
-
-
Like most libraries that mainly fill data structures, hwloc is not thread safe but rather reentrant: all state is held in a hwloc_topology_t instance without mutex protection. That means, for example, that two threads can safely operate on and modify two different hwloc_topology_t instances, but they should not simultaneously invoke functions that modify the same instance. Similarly, one thread should not modify a hwloc_topology_t instance while another thread is reading or traversing it. However, two threads can safely read or traverse the same hwloc_topology_t instance concurrently.
-
When running in multiprocessor environments, be aware that proper thread synchronization and/or memory coherency protection is needed to pass hwloc data (such as hwloc_topology_t pointers) from one processor to another (e.g., a mutex, semaphore, or a memory barrier). Note that this is not a hwloc-specific requirement, but it is worth mentioning.
-
For reference, hwloc_topology_t modification operations include (but may not be limited to):
-
-Creation and destruction
-hwloc_topology_init() , hwloc_topology_load() , hwloc_topology_destroy()
(see Create and Destroy Topologies ) imply major modifications of the structure, including freeing some objects. No other thread cannot access the topology or any of its objects at the same time.
-Also references to objects inside the topology are not valid anymore after these functions return.
-
-
-Runtime topology modifications
-hwloc_topology_insert_misc_object_by_*
(see Tinker with topologies. ) may modify the topology significantly by adding objects inside the tree, changing the topology depth, etc.
-Although references to former objects may still be valid after insertion, it is strongly advised to not rely on any such guarantee and always re-consult the topology to reacquire new instances of objects.
-
-
-Locating topologies
-hwloc_topology_ignore*
, hwloc_topology_set*
(see Configure Topology Detection ) do not modify the topology directly, but they do modify internal structures describing the behavior of the next invocation of hwloc_topology_load()
. Hence, all of these functions should not be used concurrently.
-Note that these functions do not modify the current topology until it is actually reloaded; it is possible to use them while other threads are only read the current topology.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00006.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00006.html
deleted file mode 100644
index 353298744a..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00006.html
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Embedding hwloc in other software
-
-
-
-
-
-
-
-
-
-
It can be desirable to include hwloc in a larger software package (be sure to check out the LICENSE file) so that users don't have to separately download and install it before installing your software. This can be advantageous to ensure that your software uses a known-tested/good version of hwloc, or for use on systems that do not have hwloc pre-installed.
-
When used in "embedded" mode, hwloc will:
-
-not install any header files
-not build any documentation files
-not build or install any executables or tests
-not build libhwloc.*
-- instead, it will build libhwloc_embedded.*
-
-
There are two ways to put hwloc into "embedded" mode. The first is directly from the configure command line:
-
-shell$ ./configure --enable-embedded-mode ...
- The second requires that your software project uses the GNU Autoconf / Automake / Libtool tool chain to build your software. If you do this, you can directly integrate hwloc's m4 configure macro into your configure script. You can then invoke hwloc's configuration tests and build setup by calling an m4 macro (see below).
-
-
Every project is different, and there are many different ways of integrating hwloc into yours. What follows is one example of how to do it.
-
If your project uses recent versions Autoconf, Automake, and Libtool to build, you can use hwloc's embedded m4 capabilities. We have tested the embedded m4 with projects that use Autoconf 2.65, Automake 1.11.1, and Libtool 2.2.6b. Slightly earlier versions of may also work but are untested. Autoconf versions prior to 2.63 are almost certain to not work because hwloc uses macros that were introduced in 2.63.
-
You can either copy all the config/hwloc*m4 files from the hwloc source tree to the directory where your project's m4 files reside, or you can tell aclocal to find more m4 files in the embedded hwloc's "config" subdirectory (e.g., add "-Ipath/to/embedded/hwloc/config" to your Makefile.am's ACLOCAL_AMFLAGS).
-
The following macros can then be used from your configure script (only HWLOC_INIT must be invoked if using the m4 macros):
-
-HWLOC_INIT(config-dir-prefix, action-upon-success, action-upon-failure): Invoke the hwloc configuration tests and setup the hwloc tree to build. The first argument is the prefix to use for AC_OUTPUT files -- it's where the hwloc tree is located relative to $top_srcdir
. Hence, if your embedded hwloc is located in the source tree at contrib/hwloc, you should pass [contrib/hwloc]
as the first argument. If HWLOC_INIT and the rest of configure
completes successfully, then "make" traversals of the hwloc tree with standard Automake targets (all, clean, install, etc.) should behave as expected. For example, it is safe to list the hwloc directory in the SUBDIRS of a higher-level Makefile.am. NOTE: If the HWLOC_SET_SYMBOL_PREFIX macro is used, it must be invoked before HWLOC_INIT.
-
-
-HWLOC_SET_SYMBOL_PREFIX(foo_): Tells the hwloc to prefix all of hwloc's types and public symbols with "foo_"; meaning that function hwloc_init() becomes foo_hwloc_init(). Enum values are prefixed with an upper-case translation if the prefix supplied; HWLOC_OBJ_SYSTEM becomes FOO_HWLOC_OBJ_SYSTEM. This is recommended behavior if you are including hwloc in middleware -- it is possible that your software will be combined with other software that links to another copy of hwloc. If both uses of hwloc utilize different symbol prefixes, there will be no type/symbol clashes, and everything will compile, link, and run successfully. If you both embed hwloc without changing the symbol prefix and also link against an external hwloc, you may get multiple symbol definitions when linking your final library or application.
-
-
-HWLOC_DO_AM_CONDITIONALS: If you embed hwloc in a larger project and build it conditionally (e.g., if HWLOC_INIT is invoked conditionally), you must unconditionally invoke HWLOC_DO_AM_CONDITIONALS to avoid warnings from Automake (for the cases where hwloc is not selected to be built). This macro is necessary because hwloc uses some AM_CONDITIONALs to build itself, and AM_CONDITIONALs cannot be defined conditionally. Note that it is safe (but unnecessary) to call HWLOC_DO_AM_CONDITIONALS even if HWLOC_INIT is invoked unconditionally.
-
-
NOTE: When using the HWLOC_INIT m4 macro, it may be necessary to explicitly invoke AC_CANONICAL_TARGET and/or AC_USE_SYSTEM_EXTENSIONS macros early in the configure script (e.g., after AC_INIT but before AM_INIT_AUTOMAKE). See the Autoconf documentation for further information.
-
-
Here's an example of integrating with a larger project named sandbox that already uses Autoconf, Automake, and Libtool to build itself:
-
-# First, cd into the sandbox project source tree
-shell$ cd sandbox
-shell$ cp -r /somewhere/else/hwloc-<version> my-embedded-hwloc
-shell$ edit Makefile.am
- 1. Add "-Imy-embedded-hwloc/config" to ACLOCAL_AMFLAGS
- 2. Add "my-embedded-hwloc" to SUBDIRS
- 3. Add "$(HWLOC_EMBEDDED_LDADD)" to sandbox's executable's LDADD line
- 4. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
-shell$ edit configure.ac
- 1. Add "HWLOC_SET_SYMBOL_PREFIX(sandbox_hwloc_)" line
- 2. Add "HWLOC_INIT([my-embedded-hwloc], [happy=yes], [happy=no])" line
- 3. Add error checking for happy=no case
-shell$ edit sandbox.c
- 1. Add #include <hwloc.h>
- 2. Add calls to sandbox_hwloc_init() and other hwloc API functions
- Now you can bootstrap, configure, build, and run the sandbox as normal -- all calls to "sandbox_hwloc_*" will use the embedded hwloc rather than any system-provided copy of hwloc.
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00007.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00007.html
deleted file mode 100644
index 831d171dbd..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00007.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Switching from PLPA to hwloc
-
-
-
-
-
-
-
-
-
-
Although PLPA and hwloc share some of the same ideas, their programming interfaces are quite different. After much debate, it was decided not to emulate the PLPA API with hwloc's API because hwloc's API is already far more rich than PLPA's.
-
More specifically, exploiting modern computing architecture requires the flexible functionality provided by the hwloc API -- the PLPA API is too rigid in its definitions and practices to handle the evolving server hardware landscape (e.g., PLPA only understands cores and sockets; hwloc understands a much larger set of hardware objects).
-
As such, even though it is fully possible to emulate the PLPA API with hwloc (e.g., only deal with sockets and cores), and while the documentation below describes how to do this, we encourage any existing PLPA application authors to actually re-think their application in terms of more than just sockets and cores. In short, we encourage you to use the full hwloc API to exploit all the hardware.
-
-
First, all hwloc functions take a topology
parameter. This parameter serves as an internal storage for the result of the topology discovery. It replaces PLPA's caching abilities and even lets you manipulate multiple topologies as the same time, if needed.
-
Thus, all programs should first run hwloc_topology_init() and hwloc_topology_destroy() as they did plpa_init() and plpa_finalize() in the past.
-
-
PLPA was designed to understand only cores and sockets. hwloc offers many more different types of objects (e.g., cores, sockets, hardware threads, NUMA nodes, and others) and stores them within a tree of resources.
-
To emulate the PLPA model, it is possible to find sockets using functions such as hwloc_get_obj_by_type() . Iterating over sockets is also possible using hwloc_get_next_obj_by_type() . Then, finding a core within a socket may be done using hwloc_get_obj_inside_cpuset_by_type() or hwloc_get_next_obj_inside_cpuset_by_type() .
-
It is also possible to directly find an object "below" another object using hwloc_get_obj_below_by_type() (or hwloc_get_obj_below_array_by_type() ).
-
-
hwloc manipulates logical indexes, meaning indexes specified with regard to the ordering of objects in the hwloc-provided hierarchical tree. Physical or OS indexes may be entirely hidden if not strictly required. The reason for this is that physical/OS indexes may change with the OS or with the BIOS version. They may be non-consecutive, multiple objects may have the same physical/OS indexes, making their manipulation tricky and highly non-portable.
-
Note that hwloc tries very hard to always present a hierarchical tree with the same logical ordering, regardless of physical or OS index ordering.
-
It is still possible to retrieve physical/OS indexes through the os_index
field of objects, but such practice should be avoided as much as possible for the reasons described above (except perhaps for prettyprinting / debugging purposes).
-
HWLOC_OBJ_PU objects are supposed to have different physical/OS indexes since the OS uses them for binding. The os_index
field of these objects provides the identifier that may be used for such binding, and hwloc_get_proc_obj_by_os_index() finds the object associated with a specific OS index.
-
But as mentioned above, we discourage the use of these conversion methods for actual binding. Instead, hwloc offers its own binding model using the cpuset
field of objects. These cpusets may be duplicated, modified, combined, etc. (see hwloc/cpuset.h for details) and then passed to hwloc_set_cpubind() for binding.
-
-
PLPA offers a countspec parameter to specify whether counting all CPUs, only the online ones or only the offline ones. However, some operating systems do not expose the topology of offline CPUs (i.e., offline CPUs are not reported at all by the OS). Also, some processors may not be visible to the current application due to administrative restrictions. Finally, some processors let you shutdown a single hardware thread in a core, making some of the PLPA features irrelevant.
-
hwloc stores in the hierarchical tree of objects all CPUs that have known topology information. It then provides the applications with several cpusets that contain the list of CPUs that are actually known, that have topology information, that are online, or that are available to the application. These cpusets may be retrieved with hwloc_topology_get_online_cpuset() and other similar functions to filter the object that are relevant or not.
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00008.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00008.html
deleted file mode 100644
index 94b96441f6..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00008.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_cache_attr_s Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj_attr_u::hwloc_cache_attr_s Struct Reference
-
Cache-specific Object Attributes.
-More...
-
-
#include <hwloc.h >
-
-Data Fields
-uint64_t size
- Size of cache in bytes.
-unsigned depth
- Depth of cache.
-
-
Detailed Description
-
Cache-specific Object Attributes.
-
Field Documentation
-
-
-
-
-
-
-
-
Size of cache in bytes.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00009.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00009.html
deleted file mode 100644
index dc6ebbdae4..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00009.html
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_group_attr_s Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj_attr_u::hwloc_group_attr_s Struct Reference
-
Group-specific Object Attributes.
-More...
-
-
#include <hwloc.h >
-
-Data Fields
-unsigned depth
- Depth of group object.
-
-
Detailed Description
-
Group-specific Object Attributes.
-
Field Documentation
-
-
-
-
-
-
Depth of group object.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00010.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00010.html
deleted file mode 100644
index a345b97dbd..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00010.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_machine_attr_s Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj_attr_u::hwloc_machine_attr_s Struct Reference
-
Machine-specific Object Attributes.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Machine-specific Object Attributes.
-
Field Documentation
-
-
-
-
-
-
DMI board model name.
-
-
-
-
-
-
-
-
-
DMI board vendor name.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00011.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00011.html
deleted file mode 100644
index 8a9fb9f648..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00011.html
+++ /dev/null
@@ -1,510 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj Struct Reference
-
-[Topology Objects ]
-
-
Structure of a topology object.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Structure of a topology object.
-
Applications mustn't modify any field except userdata .
-
Field Documentation
-
-
-
-
-
-
The CPU set of allowed logical processors.
-
This includes the CPUs contained in this object which are allowed for binding, i.e. passing them to the hwloc binding functions should not return permission errors. This is usually restricted by administration rules. Some of them may however be offline so binding to them may still not be possible, see online_cpuset.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
The set of allowed NUMA memory nodes.
-
This includes the NUMA memory nodes contained in this object which are allowed for memory allocation, i.e. passing them to NUMA node-directed memory allocation should not return permission errors. This is usually restricted by administration rules.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
Number of children.
-
-
-
-
-
-
-
-
-
Object type-specific Attributes.
-
-
-
-
-
-
-
-
-
Children, children
[0 .. arity -1].
-
-
-
-
-
-
-
-
-
The complete CPU set of logical processors of this object,.
-
This includes not only the same as the cpuset field, but also the CPUs for which topology information is unknown or incomplete, and the CPUs that are ignored when the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM flag is not set. Thus no corresponding PU object may be found in the topology, because the precise position is undefined. It is however known that it would be somewhere under this object.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
The complete NUMA node set of this object,.
-
This includes not only the same as the nodeset field, but also the NUMA nodes for which topology information is unknown or incomplete, and the nodes that are ignored when the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM flag is not set. Thus no corresponding NODE object may be found in the topology, because the precise position is undefined. It is however known that it would be somewhere under this object.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
CPUs covered by this object.
-
This is the set of CPUs for which there are PU objects in the topology under this object, i.e. which are known to be physically contained in this object and known how (the children path between this object and the PU objects).
-
If the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM configuration flag is set, some of these CPUs may be offline, or not allowed for binding, see online_cpuset and allowed_cpuset.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
Vertical index in the hierarchy.
-
-
-
-
-
-
-
-
-
-
-
-
-
Horizontal index in the whole list of similar objects, could be a "cousin_rank" since it's the rank within the "cousin" list below.
-
-
-
-
-
-
-
-
-
Memory attributes.
-
-
-
-
-
-
-
-
-
Object description if any.
-
-
-
-
-
-
-
-
-
Next object of same type.
-
-
-
-
-
-
-
-
-
Next object below the same parent.
-
-
-
-
-
-
-
-
-
NUMA nodes covered by this object or containing this object.
-
This is the set of NUMA nodes for which there are NODE objects in the topology under or above this object, i.e. which are known to be physically contained in this object or containing it and known how (the children path between this object and the NODE objects).
-
If the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM configuration flag is set, some of these nodes may not be allowed for allocation, see allowed_nodeset.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
The CPU set of online logical processors.
-
This includes the CPUs contained in this object that are online, i.e. draw power and can execute threads. It may however not be allowed to bind to them due to administration rules, see allowed_cpuset.
-
Note: Its value must not be changed, hwloc_cpuset_dup must be used instead.
-
-
-
-
-
-
-
-
-
OS-provided physical index number.
-
-
-
-
-
-
-
-
-
OS-provided physical level, -1 if unknown or meaningless.
-
-
-
-
-
-
-
-
-
Parent, NULL
if root (system object).
-
-
-
-
-
-
-
-
-
Previous object of same type.
-
-
-
-
-
-
-
-
-
Previous object below the same parent.
-
-
-
-
-
-
-
-
-
Index in parent's children
[] array.
-
-
-
-
-
-
-
-
-
-
-
Application-given private data pointer, initialized to NULL
, use it as you wish.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00012.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00012.html
deleted file mode 100644
index 92d8189ca6..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00012.html
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_attr_u Union Reference
-
-
-
-
-
-
-
-
hwloc_obj_attr_u Union Reference
-
-[Topology Objects ]
-
-
Object type-specific Attributes.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Object type-specific Attributes.
-
Field Documentation
-
-
-
-
-
-
Cache-specific Object Attributes.
-
-
-
-
-
-
-
-
-
Group-specific Object Attributes.
-
-
-
-
-
-
-
-
-
Machine-specific Object Attributes.
-
-
-
-
The documentation for this union was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00013.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00013.html
deleted file mode 100644
index e0c192b92b..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00013.html
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_memory_s::hwloc_obj_memory_page_type_s Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj_memory_s::hwloc_obj_memory_page_type_s Struct Reference
-
Array of local memory page types, NULL
if no local memory and page_types
is 0.
-More...
-
-
#include <hwloc.h >
-
-Data Fields
-uint64_t size
- Size of pages.
-uint64_t count
- Number of pages of this size.
-
-
Detailed Description
-
Array of local memory page types, NULL
if no local memory and page_types
is 0.
-
The array is sorted by increasing size
fields. It contains page_types_len
slots.
-
Field Documentation
-
-
-
-
-
-
Number of pages of this size.
-
-
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00014.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00014.html
deleted file mode 100644
index 9cbb11c262..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00014.html
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_obj_memory_s Struct Reference
-
-
-
-
-
-
-
-
hwloc_obj_memory_s Struct Reference
-
-[Topology Objects ]
-
-
Object memory.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Object memory.
-
Field Documentation
-
-
-
-
-
-
Local memory (in bytes).
-
-
-
-
-
-
-
-
-
Array of local memory page types, NULL
if no local memory and page_types
is 0.
-
The array is sorted by increasing size
fields. It contains page_types_len
slots.
-
-
-
-
-
-
-
-
-
Size of array page_types
.
-
-
-
-
-
-
-
-
-
Total memory (in bytes) in this object and its children.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00015.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00015.html
deleted file mode 100644
index ed306d58f2..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00015.html
+++ /dev/null
@@ -1,171 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_topology_cpubind_support Struct Reference
-
-
-
-
-
-
-
-
-
Flags describing actual binding support for this topology.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Flags describing actual binding support for this topology.
-
Field Documentation
-
-
-
-
-
Getting the binding of a whole given process is supported.
-
-
-
-
-
-
-
-
Getting the binding of the whole current process is supported.
-
-
-
-
-
-
-
-
Getting the binding of the current thread only is supported.
-
-
-
-
-
-
-
-
Getting the binding of a given thread only is supported.
-
-
-
-
-
-
-
-
Binding a whole given process is supported.
-
-
-
-
-
-
-
-
Binding the whole current process is supported.
-
-
-
-
-
-
-
-
Binding the current thread only is supported.
-
-
-
-
-
-
-
-
Binding a given thread only is supported.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00016.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00016.html
deleted file mode 100644
index 4d22c7ec49..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00016.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_topology_discovery_support Struct Reference
-
-
-
-
-
-
-
-
hwloc_topology_discovery_support Struct Reference
-
-[Configure Topology Detection ]
-
-
Flags describing actual discovery support for this topology.
-More...
-
-
#include <hwloc.h >
-
-Data Fields
-unsigned char pu
- Detecting the number of PU objects is supported.
-
-
Detailed Description
-
Flags describing actual discovery support for this topology.
-
Field Documentation
-
-
-
-
-
-
Detecting the number of PU objects is supported.
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00017.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00017.html
deleted file mode 100644
index 546895f2d6..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00017.html
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc_topology_support Struct Reference
-
-
-
-
-
-
-
-
-
Set of flags describing actual support for this topology.
-More...
-
-
#include <hwloc.h >
-
-
Detailed Description
-
Set of flags describing actual support for this topology.
-
This is retrieved with hwloc_topology_get_support() and will be valid until the topology object is destroyed. Note: the values are correct only after discovery.
-
Field Documentation
-
-
-
-
-
The documentation for this struct was generated from the following file:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00018_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00018_source.html
deleted file mode 100644
index e5dbd2f6bb..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00018_source.html
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): cpuset.h Source File
-
-
-
-
-
-
-
-
-
cpuset.h 00001
- 00002
- 00003
- 00004
- 00005
- 00006
- 00011 #ifndef HWLOC_CPUSET_H
- 00012 #define HWLOC_CPUSET_H
- 00013
- 00014 #include <hwloc/config.h>
- 00015
- 00016
-00030 typedef struct hwloc_cpuset_s * hwloc_cpuset_t ;
-00031 typedef const struct hwloc_cpuset_s * hwloc_const_cpuset_t ;
- 00032
- 00033
- 00034
- 00035
- 00036
- 00037
- 00044 HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_alloc (void ) __hwloc_attribute_malloc;
- 00045
- 00047 HWLOC_DECLSPEC void hwloc_cpuset_free (hwloc_cpuset_t set);
- 00048
- 00050 HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_dup (hwloc_const_cpuset_t set) __hwloc_attribute_malloc;
- 00051
- 00053 HWLOC_DECLSPEC void hwloc_cpuset_copy (hwloc_cpuset_t dst, hwloc_const_cpuset_t src);
- 00054
- 00055
- 00056
- 00057
- 00058
- 00059
- 00067 HWLOC_DECLSPEC int hwloc_cpuset_snprintf (char * __hwloc_restrict buf, size_t buflen, hwloc_const_cpuset_t set);
- 00068
- 00074 HWLOC_DECLSPEC int hwloc_cpuset_asprintf (char ** strp, hwloc_const_cpuset_t set);
- 00075
- 00080 HWLOC_DECLSPEC int hwloc_cpuset_from_string (hwloc_cpuset_t set, const char * __hwloc_restrict string );
- 00081
- 00082
- 00083
- 00084
- 00085
- 00086
- 00088 HWLOC_DECLSPEC void hwloc_cpuset_zero (hwloc_cpuset_t set);
- 00089
- 00091 HWLOC_DECLSPEC void hwloc_cpuset_fill (hwloc_cpuset_t set);
- 00092
- 00094 HWLOC_DECLSPEC void hwloc_cpuset_from_ulong (hwloc_cpuset_t set, unsigned long mask);
- 00095
- 00097 HWLOC_DECLSPEC void hwloc_cpuset_from_ith_ulong (hwloc_cpuset_t set, unsigned i, unsigned long mask);
- 00098
- 00100 HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ulong (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00101
- 00103 HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ith_ulong (hwloc_const_cpuset_t set, unsigned i) __hwloc_attribute_pure;
- 00104
- 00106 HWLOC_DECLSPEC void hwloc_cpuset_cpu (hwloc_cpuset_t set, unsigned cpu);
- 00107
- 00109 HWLOC_DECLSPEC void hwloc_cpuset_all_but_cpu (hwloc_cpuset_t set, unsigned cpu);
- 00110
- 00112 HWLOC_DECLSPEC void hwloc_cpuset_set (hwloc_cpuset_t set, unsigned cpu);
- 00113
- 00115 HWLOC_DECLSPEC void hwloc_cpuset_set_range (hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
- 00116
- 00118 HWLOC_DECLSPEC void hwloc_cpuset_clr (hwloc_cpuset_t set, unsigned cpu);
- 00119
- 00121 HWLOC_DECLSPEC void hwloc_cpuset_clr_range (hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
- 00122
- 00124 HWLOC_DECLSPEC int hwloc_cpuset_isset (hwloc_const_cpuset_t set, unsigned cpu) __hwloc_attribute_pure;
- 00125
- 00127 HWLOC_DECLSPEC int hwloc_cpuset_iszero (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00128
- 00130 HWLOC_DECLSPEC int hwloc_cpuset_isfull (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00131
- 00133 HWLOC_DECLSPEC int hwloc_cpuset_isequal (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
- 00134
- 00136 HWLOC_DECLSPEC int hwloc_cpuset_intersects (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
- 00137
- 00139 HWLOC_DECLSPEC int hwloc_cpuset_isincluded (hwloc_const_cpuset_t sub_set, hwloc_const_cpuset_t super_set) __hwloc_attribute_pure;
- 00140
- 00142 HWLOC_DECLSPEC void hwloc_cpuset_or (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
- 00143
- 00145 HWLOC_DECLSPEC void hwloc_cpuset_and (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
- 00146
- 00148 HWLOC_DECLSPEC void hwloc_cpuset_andnot (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
- 00149
- 00151 HWLOC_DECLSPEC void hwloc_cpuset_xor (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
- 00152
- 00154 HWLOC_DECLSPEC void hwloc_cpuset_not (hwloc_cpuset_t res, hwloc_const_cpuset_t set);
- 00155
- 00160 HWLOC_DECLSPEC int hwloc_cpuset_first (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00161
- 00166 HWLOC_DECLSPEC int hwloc_cpuset_last (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00167
- 00172 HWLOC_DECLSPEC int hwloc_cpuset_next (hwloc_const_cpuset_t set, unsigned prev_cpu) __hwloc_attribute_pure;
- 00173
- 00180 HWLOC_DECLSPEC void hwloc_cpuset_singlify (hwloc_cpuset_t set);
- 00181
- 00187 HWLOC_DECLSPEC int hwloc_cpuset_compare_first (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
- 00188
- 00194 HWLOC_DECLSPEC int hwloc_cpuset_compare (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
- 00195
- 00201 HWLOC_DECLSPEC int hwloc_cpuset_weight (hwloc_const_cpuset_t set) __hwloc_attribute_pure;
- 00202
-00212 #define hwloc_cpuset_foreach_begin(cpu, set) \
- 00213 do { \
- 00214 for (cpu = hwloc_cpuset_first(set); \
- 00215 (unsigned) cpu != (unsigned) -1; \
- 00216 cpu = hwloc_cpuset_next(set, cpu)) { \
- 00217
-00221 #define hwloc_cpuset_foreach_end() \
- 00222 } \
- 00223 } while (0)
- 00224
- 00227 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00019_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00019_source.html
deleted file mode 100644
index 9c6aaeb640..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00019_source.html
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): glibc-sched.h Source File
-
-
-
-
-
-
-
-
-
glibc-sched.h 00001
- 00002
- 00003
- 00004
- 00005
- 00014 #ifndef HWLOC_GLIBC_SCHED_H
- 00015 #define HWLOC_GLIBC_SCHED_H
- 00016
- 00017 #include <hwloc.h>
- 00018 #include <hwloc/helper.h>
- 00019 #include <assert.h>
- 00020
- 00021 #if !defined _GNU_SOURCE || !defined _SCHED_H
- 00022 #error sched.h must be included with _GNU_SOURCE defined
- 00023 #endif
- 00024
- 00025 #ifdef HWLOC_HAVE_CPU_SET
- 00026
- 00027
- 00040 static __hwloc_inline int
-00041 hwloc_cpuset_to_glibc_sched_affinity (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t hwlocset,
- 00042 cpu_set_t *schedset, size_t schedsetsize)
- 00043 {
- 00044 #ifdef CPU_ZERO_S
- 00045 unsigned cpu;
- 00046 CPU_ZERO_S(schedsetsize, schedset);
- 00047 hwloc_cpuset_foreach_begin (cpu, hwlocset)
- 00048 CPU_SET_S(cpu, schedsetsize, schedset);
- 00049 hwloc_cpuset_foreach_end ();
- 00050 #else
- 00051 unsigned cpu;
- 00052 CPU_ZERO(schedset);
- 00053 assert(schedsetsize == sizeof (cpu_set_t));
- 00054 hwloc_cpuset_foreach_begin (cpu, hwlocset)
- 00055 CPU_SET(cpu, schedset);
- 00056 hwloc_cpuset_foreach_end ();
- 00057 #endif
- 00058 return 0;
- 00059 }
- 00060
- 00068 static __hwloc_inline int
-00069 hwloc_cpuset_from_glibc_sched_affinity (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t hwlocset,
- 00070 const cpu_set_t *schedset, size_t schedsetsize)
- 00071 {
- 00072 hwloc_cpuset_zero (hwlocset);
- 00073 #ifdef CPU_ZERO_S
- 00074 int cpu, count;
- 00075 count = CPU_COUNT_S(schedsetsize, schedset);
- 00076 cpu = 0;
- 00077 while (count) {
- 00078 if (CPU_ISSET_S(cpu, schedsetsize, schedset)) {
- 00079 hwloc_cpuset_set (hwlocset, cpu);
- 00080 count--;
- 00081 }
- 00082 cpu++;
- 00083 if (cpu > HWLOC_NBMAXCPUS)
- 00084 break ;
- 00085 }
- 00086 #else
- 00087
- 00088
- 00089
- 00090 int cpu;
- 00091 assert(schedsetsize == sizeof (cpu_set_t));
- 00092 for (cpu=0; cpu<CPU_SETSIZE && cpu<HWLOC_NBMAXCPUS; cpu++)
- 00093 if (CPU_ISSET(cpu, schedset))
- 00094 hwloc_cpuset_set (hwlocset, cpu);
- 00095 #endif
- 00096 return 0;
- 00097 }
- 00098
- 00102 #endif
- 00103
- 00104 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00020_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00020_source.html
deleted file mode 100644
index 73c9f52ba5..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00020_source.html
+++ /dev/null
@@ -1,461 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): helper.h Source File
-
-
-
-
-
-
-
-
-
helper.h 00001
- 00002
- 00003
- 00004
- 00005
- 00006
- 00011 #ifndef HWLOC_HELPER_H
- 00012 #define HWLOC_HELPER_H
- 00013
- 00014 #ifndef HWLOC_H
- 00015 #error Please include the main hwloc.h instead
- 00016 #endif
- 00017
- 00018 #include <stdlib.h>
- 00019 #include <errno.h>
- 00020
- 00021
- 00032 static __hwloc_inline int __hwloc_attribute_pure
-00033 hwloc_get_type_or_below_depth (hwloc_topology_t topology, hwloc_obj_type_t type)
- 00034 {
- 00035 int depth = hwloc_get_type_depth (topology, type);
- 00036
- 00037 if (depth != HWLOC_TYPE_DEPTH_UNKNOWN )
- 00038 return depth;
- 00039
- 00040
- 00041 for (depth = hwloc_get_type_depth (topology, HWLOC_OBJ_PU ); ; depth--)
- 00042 if (hwloc_compare_types (hwloc_get_depth_type (topology, depth), type) < 0)
- 00043 return depth+1;
- 00044
- 00045
- 00046
- 00047 }
- 00048
- 00055 static __hwloc_inline int __hwloc_attribute_pure
-00056 hwloc_get_type_or_above_depth (hwloc_topology_t topology, hwloc_obj_type_t type)
- 00057 {
- 00058 int depth = hwloc_get_type_depth (topology, type);
- 00059
- 00060 if (depth != HWLOC_TYPE_DEPTH_UNKNOWN )
- 00061 return depth;
- 00062
- 00063
- 00064 for (depth = 0; ; depth++)
- 00065 if (hwloc_compare_types (hwloc_get_depth_type (topology, depth), type) > 0)
- 00066 return depth-1;
- 00067
- 00068
- 00069
- 00070 }
- 00071
- 00086 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00087 hwloc_get_root_obj (hwloc_topology_t topology)
- 00088 {
- 00089 return hwloc_get_obj_by_depth (topology, 0, 0);
- 00090 }
- 00091
- 00093 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00094 hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology __hwloc_attribute_unused, unsigned depth, hwloc_obj_t obj)
- 00095 {
- 00096 hwloc_obj_t ancestor = obj;
- 00097 if (obj->depth < depth)
- 00098 return NULL;
- 00099 while (ancestor && ancestor->depth > depth)
- 00100 ancestor = ancestor->parent ;
- 00101 return ancestor;
- 00102 }
- 00103
- 00105 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00106 hwloc_get_ancestor_obj_by_type (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_type_t type, hwloc_obj_t obj)
- 00107 {
- 00108 hwloc_obj_t ancestor = obj->parent ;
- 00109 while (ancestor && ancestor->type != type)
- 00110 ancestor = ancestor->parent ;
- 00111 return ancestor;
- 00112 }
- 00113
- 00118 static __hwloc_inline hwloc_obj_t
-00119 hwloc_get_next_obj_by_depth (hwloc_topology_t topology, unsigned depth, hwloc_obj_t prev)
- 00120 {
- 00121 if (!prev)
- 00122 return hwloc_get_obj_by_depth (topology, depth, 0);
- 00123 if (prev->depth != depth)
- 00124 return NULL;
- 00125 return prev->next_cousin ;
- 00126 }
- 00127
- 00134 static __hwloc_inline hwloc_obj_t
-00135 hwloc_get_next_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type,
- 00136 hwloc_obj_t prev)
- 00137 {
- 00138 int depth = hwloc_get_type_depth (topology, type);
- 00139 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN || depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00140 return NULL;
- 00141 return hwloc_get_next_obj_by_depth (topology, depth, prev);
- 00142 }
- 00143
- 00152 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00153 hwloc_get_pu_obj_by_os_index (hwloc_topology_t topology, unsigned os_index)
- 00154 {
- 00155 hwloc_obj_t obj = NULL;
- 00156 while ((obj = hwloc_get_next_obj_by_type (topology, HWLOC_OBJ_PU , obj)) != NULL)
- 00157 if (obj->os_index == os_index)
- 00158 return obj;
- 00159 return NULL;
- 00160 }
- 00161
- 00166 static __hwloc_inline hwloc_obj_t
-00167 hwloc_get_next_child (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t parent, hwloc_obj_t prev)
- 00168 {
- 00169 if (!prev)
- 00170 return parent->first_child ;
- 00171 if (prev->parent != parent)
- 00172 return NULL;
- 00173 return prev->next_sibling ;
- 00174 }
- 00175
- 00177 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00178 hwloc_get_common_ancestor_obj (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj1, hwloc_obj_t obj2)
- 00179 {
- 00180 while (obj1->depth > obj2->depth )
- 00181 obj1 = obj1->parent ;
- 00182 while (obj2->depth > obj1->depth )
- 00183 obj2 = obj2->parent ;
- 00184 while (obj1 != obj2) {
- 00185 obj1 = obj1->parent ;
- 00186 obj2 = obj2->parent ;
- 00187 }
- 00188 return obj1;
- 00189 }
- 00190
- 00193 static __hwloc_inline int __hwloc_attribute_pure
-00194 hwloc_obj_is_in_subtree (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)
- 00195 {
- 00196 return hwloc_cpuset_isincluded (obj->cpuset , subtree_root->cpuset );
- 00197 }
- 00198
- 00215 static __hwloc_inline hwloc_obj_t
-00216 hwloc_get_first_largest_obj_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set )
- 00217 {
- 00218 hwloc_obj_t obj = hwloc_get_root_obj (topology);
- 00219 if (!hwloc_cpuset_intersects (obj->cpuset , set ))
- 00220 return NULL;
- 00221 while (!hwloc_cpuset_isincluded (obj->cpuset , set )) {
- 00222
- 00223 hwloc_obj_t child = NULL;
- 00224 while ((child = hwloc_get_next_child (topology, obj, child)) != NULL) {
- 00225 if (hwloc_cpuset_intersects (child->cpuset , set ))
- 00226 break ;
- 00227 }
- 00228 if (!child)
- 00229
- 00230 return obj;
- 00231
- 00232 obj = child;
- 00233 }
- 00234
- 00235 return obj;
- 00236 }
- 00237
- 00242 HWLOC_DECLSPEC int hwloc_get_largest_objs_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00243 hwloc_obj_t * __hwloc_restrict objs, int max);
- 00244
- 00251 static __hwloc_inline hwloc_obj_t
-00252 hwloc_get_next_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00253 unsigned depth, hwloc_obj_t prev)
- 00254 {
- 00255 hwloc_obj_t next = hwloc_get_next_obj_by_depth (topology, depth, prev);
- 00256 while (next && !hwloc_cpuset_isincluded (next->cpuset , set ))
- 00257 next = next->next_cousin ;
- 00258 return next;
- 00259 }
- 00260
- 00267 static __hwloc_inline hwloc_obj_t
-00268 hwloc_get_next_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00269 hwloc_obj_type_t type, hwloc_obj_t prev)
- 00270 {
- 00271 int depth = hwloc_get_type_depth (topology, type);
- 00272 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN || depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00273 return NULL;
- 00274 return hwloc_get_next_obj_inside_cpuset_by_depth (topology, set , depth, prev);
- 00275 }
- 00276
- 00279 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00280 hwloc_get_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00281 unsigned depth, unsigned idx)
- 00282 {
- 00283 unsigned count = 0;
- 00284 hwloc_obj_t obj = hwloc_get_obj_by_depth (topology, depth, 0);
- 00285 while (obj) {
- 00286 if (hwloc_cpuset_isincluded (obj->cpuset , set )) {
- 00287 if (count == idx)
- 00288 return obj;
- 00289 count++;
- 00290 }
- 00291 obj = obj->next_cousin ;
- 00292 }
- 00293 return NULL;
- 00294 }
- 00295
- 00302 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00303 hwloc_get_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00304 hwloc_obj_type_t type, unsigned idx)
- 00305 {
- 00306 int depth = hwloc_get_type_depth (topology, type);
- 00307 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN || depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00308 return NULL;
- 00309 return hwloc_get_obj_inside_cpuset_by_depth (topology, set , depth, idx);
- 00310 }
- 00311
- 00313 static __hwloc_inline unsigned __hwloc_attribute_pure
-00314 hwloc_get_nbobjs_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00315 unsigned depth)
- 00316 {
- 00317 hwloc_obj_t obj = hwloc_get_obj_by_depth (topology, depth, 0);
- 00318 int count = 0;
- 00319 while (obj) {
- 00320 if (hwloc_cpuset_isincluded (obj->cpuset , set ))
- 00321 count++;
- 00322 obj = obj->next_cousin ;
- 00323 }
- 00324 return count;
- 00325 }
- 00326
- 00333 static __hwloc_inline int __hwloc_attribute_pure
-00334 hwloc_get_nbobjs_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00335 hwloc_obj_type_t type)
- 00336 {
- 00337 int depth = hwloc_get_type_depth (topology, type);
- 00338 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN )
- 00339 return 0;
- 00340 if (depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00341 return -1;
- 00342 return hwloc_get_nbobjs_inside_cpuset_by_depth (topology, set , depth);
- 00343 }
- 00344
- 00357 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00358 hwloc_get_child_covering_cpuset (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t set ,
- 00359 hwloc_obj_t parent)
- 00360 {
- 00361 hwloc_obj_t child;
- 00362
- 00363 if (hwloc_cpuset_iszero (set ))
- 00364 return NULL;
- 00365
- 00366 child = parent->first_child ;
- 00367 while (child) {
- 00368 if (hwloc_cpuset_isincluded (set , child->cpuset ))
- 00369 return child;
- 00370 child = child->next_sibling ;
- 00371 }
- 00372 return NULL;
- 00373 }
- 00374
- 00379 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00380 hwloc_get_obj_covering_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set )
- 00381 {
- 00382 struct hwloc_obj *current = hwloc_get_root_obj (topology);
- 00383
- 00384 if (hwloc_cpuset_iszero (set ))
- 00385 return NULL;
- 00386
- 00387 if (!hwloc_cpuset_isincluded (set , current->cpuset ))
- 00388 return NULL;
- 00389
- 00390 while (1) {
- 00391 hwloc_obj_t child = hwloc_get_child_covering_cpuset (topology, set , current);
- 00392 if (!child)
- 00393 return current;
- 00394 current = child;
- 00395 }
- 00396 }
- 00397
- 00398
- 00414 static __hwloc_inline hwloc_obj_t
-00415 hwloc_get_next_obj_covering_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00416 unsigned depth , hwloc_obj_t prev)
- 00417 {
- 00418 hwloc_obj_t next = hwloc_get_next_obj_by_depth (topology, depth, prev);
- 00419 while (next && !hwloc_cpuset_intersects (set , next->cpuset ))
- 00420 next = next->next_cousin ;
- 00421 return next;
- 00422 }
- 00423
- 00436 static __hwloc_inline hwloc_obj_t
-00437 hwloc_get_next_obj_covering_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00438 hwloc_obj_type_t type , hwloc_obj_t prev)
- 00439 {
- 00440 int depth = hwloc_get_type_depth (topology, type);
- 00441 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN || depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00442 return NULL;
- 00443 return hwloc_get_next_obj_covering_cpuset_by_depth (topology, set , depth, prev);
- 00444 }
- 00445
- 00458 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00459 hwloc_get_cache_covering_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set )
- 00460 {
- 00461 hwloc_obj_t current = hwloc_get_obj_covering_cpuset (topology, set );
- 00462 while (current) {
- 00463 if (current->type == HWLOC_OBJ_CACHE )
- 00464 return current;
- 00465 current = current->parent ;
- 00466 }
- 00467 return NULL;
- 00468 }
- 00469
- 00474 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00475 hwloc_get_shared_cache_covering_obj (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj)
- 00476 {
- 00477 hwloc_obj_t current = obj->parent ;
- 00478 while (current) {
- 00479 if (!hwloc_cpuset_isequal (current->cpuset , obj->cpuset )
- 00480 && current->type == HWLOC_OBJ_CACHE )
- 00481 return current;
- 00482 current = current->parent ;
- 00483 }
- 00484 return NULL;
- 00485 }
- 00486
- 00502
- 00503 HWLOC_DECLSPEC unsigned hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t src, hwloc_obj_t * __hwloc_restrict objs, unsigned max);
- 00504
- 00515 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00516 hwloc_get_obj_below_by_type (hwloc_topology_t topology,
- 00517 hwloc_obj_type_t type1, unsigned idx1,
- 00518 hwloc_obj_type_t type2, unsigned idx2)
- 00519 {
- 00520 hwloc_obj_t obj;
- 00521
- 00522 obj = hwloc_get_obj_by_type (topology, type1, idx1);
- 00523 if (!obj)
- 00524 return NULL;
- 00525
- 00526 return hwloc_get_obj_inside_cpuset_by_type (topology, obj->cpuset , type2, idx2);
- 00527 }
- 00528
- 00544 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00545 hwloc_get_obj_below_array_by_type (hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv)
- 00546 {
- 00547 hwloc_obj_t obj = hwloc_get_root_obj (topology);
- 00548 int i;
- 00549
- 00550 for (i=0; i<nr; i++) {
- 00551 obj = hwloc_get_obj_inside_cpuset_by_type (topology, obj->cpuset , typev[i], idxv[i]);
- 00552 if (!obj)
- 00553 return NULL;
- 00554 }
- 00555
- 00556 return obj;
- 00557 }
- 00558
- 00579 static __hwloc_inline void
-00580 hwloc_distribute (hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset , unsigned n)
- 00581 {
- 00582 unsigned i;
- 00583 unsigned u;
- 00584 unsigned chunk_size, complete_chunks;
- 00585 hwloc_cpuset_t *cpusetp;
- 00586
- 00587 if (!root->arity || n == 1) {
- 00588
- 00589 for (i=0; i<n; i++)
- 00590 cpuset[i] = hwloc_cpuset_dup (root->cpuset );
- 00591 return ;
- 00592 }
- 00593
- 00594
- 00595 chunk_size = (n + root->arity - 1) / root->arity ;
- 00596 complete_chunks = n % root->arity ;
- 00597 if (!complete_chunks)
- 00598 complete_chunks = root->arity ;
- 00599
- 00600
- 00601 for (cpusetp = cpuset, i = 0;
- 00602 i < complete_chunks;
- 00603 i ++, cpusetp += chunk_size)
- 00604 hwloc_distribute (topology, root->children [i], cpusetp, chunk_size);
- 00605
- 00606
- 00607 for (u = i;
- 00608 u < root->arity ;
- 00609 u++, cpusetp += chunk_size-1)
- 00610 hwloc_distribute (topology, root->children [u], cpusetp, chunk_size-1);
- 00611 }
- 00612
- 00618
- 00619
- 00620
- 00621
- 00622
- 00623
- 00624
- 00625
- 00626
- 00627 static __hwloc_inline hwloc_const_cpuset_t __hwloc_attribute_pure
-00628 hwloc_topology_get_complete_cpuset (hwloc_topology_t topology)
- 00629 {
- 00630 return hwloc_get_root_obj (topology)->complete_cpuset ;
- 00631 }
- 00632
- 00633
- 00634
- 00635
- 00636
- 00637
- 00638
- 00639
- 00640
- 00641
- 00642
- 00643 static __hwloc_inline hwloc_const_cpuset_t __hwloc_attribute_pure
-00644 hwloc_topology_get_topology_cpuset (hwloc_topology_t topology)
- 00645 {
- 00646 return hwloc_get_root_obj (topology)->cpuset ;
- 00647 }
- 00648
- 00658 static __hwloc_inline hwloc_const_cpuset_t __hwloc_attribute_pure
-00659 hwloc_topology_get_online_cpuset (hwloc_topology_t topology)
- 00660 {
- 00661 return hwloc_get_root_obj (topology)->online_cpuset ;
- 00662 }
- 00663
- 00673 static __hwloc_inline hwloc_const_cpuset_t __hwloc_attribute_pure
-00674 hwloc_topology_get_allowed_cpuset (hwloc_topology_t topology)
- 00675 {
- 00676 return hwloc_get_root_obj (topology)->allowed_cpuset ;
- 00677 }
- 00678
- 00679
- 00682 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00022_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00022_source.html
deleted file mode 100644
index 3a90eb6bf9..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00022_source.html
+++ /dev/null
@@ -1,285 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): hwloc.h Source File
-
-
-
-
-
-
-
-
-
hwloc.h 00001
- 00002
- 00003
- 00004
- 00005
- 00006
- 00014 #ifndef HWLOC_H
- 00015 #define HWLOC_H
- 00016
- 00017 #include <sys/types.h>
- 00018 #include <stdio.h>
- 00019 #include <limits.h>
- 00020 #include <stdint.h>
- 00021
- 00022
- 00023
- 00024
- 00025 #include <hwloc/rename.h>
- 00026
- 00027
- 00028
- 00029
- 00030
- 00031 #include <hwloc/cpuset.h>
- 00032
- 00033
- 00034
-00040 #define HWLOC_API_VERSION 0x00010000
- 00041
- 00050 struct hwloc_topology;
-00055 typedef struct hwloc_topology * hwloc_topology_t ;
- 00056
-00071 typedef enum {
-00072 HWLOC_OBJ_SYSTEM ,
-00077 HWLOC_OBJ_MACHINE ,
-00082 HWLOC_OBJ_NODE ,
-00086 HWLOC_OBJ_SOCKET ,
-00090 HWLOC_OBJ_CACHE ,
-00093 HWLOC_OBJ_CORE ,
-00097 HWLOC_OBJ_PU ,
-00106 HWLOC_OBJ_GROUP ,
-00118 HWLOC_OBJ_MISC
- 00122 } hwloc_obj_type_t ;
- 00123
- 00141 HWLOC_DECLSPEC int hwloc_compare_types (hwloc_obj_type_t type1, hwloc_obj_type_t type2) __hwloc_attribute_const;
- 00142
-00143 enum hwloc_compare_types_e {
-00144 HWLOC_TYPE_UNORDERED = INT_MAX
- 00145 };
- 00146
- 00155 union hwloc_obj_attr_u ;
- 00156
-00158 struct hwloc_obj_memory_s {
-00159 uint64_t total_memory ;
-00160 uint64_t local_memory ;
-00162 unsigned page_types_len ;
-00168 struct hwloc_obj_memory_page_type_s {
-00169 uint64_t size ;
-00170 uint64_t count ;
- 00171 } * page_types ;
- 00172 };
- 00173
-00178 struct hwloc_obj {
- 00179
-00180 hwloc_obj_type_t type ;
-00181 unsigned os_index ;
-00182 char *name ;
-00185 struct hwloc_obj_memory_s memory ;
- 00186
-00188 union hwloc_obj_attr_u *attr ;
- 00189
- 00190
-00191 unsigned depth ;
-00192 unsigned logical_index ;
-00194 signed os_level ;
-00196 struct hwloc_obj *next_cousin ;
-00197 struct hwloc_obj *prev_cousin ;
- 00199
-00200 struct hwloc_obj *parent ;
-00201 unsigned sibling_rank ;
-00202 struct hwloc_obj *next_sibling ;
-00203 struct hwloc_obj *prev_sibling ;
- 00205
-00206 unsigned arity ;
-00207 struct hwloc_obj **children ;
-00208 struct hwloc_obj *first_child ;
-00209 struct hwloc_obj *last_child ;
- 00211
-00212 void *userdata ;
- 00214
-00215 hwloc_cpuset_t cpuset ;
-00228 hwloc_cpuset_t complete_cpuset ;
-00239 hwloc_cpuset_t online_cpuset ;
-00247 hwloc_cpuset_t allowed_cpuset ;
-00258 hwloc_cpuset_t nodeset ;
-00270 hwloc_cpuset_t complete_nodeset ;
-00281 hwloc_cpuset_t allowed_nodeset ;
- 00290 };
-00294 typedef struct hwloc_obj * hwloc_obj_t ;
- 00295
-00297 union hwloc_obj_attr_u {
-00299 struct hwloc_cache_attr_s {
-00300 uint64_t size ;
-00301 unsigned depth ;
- 00302 } cache ;
-00304 struct hwloc_machine_attr_s {
-00305 char *dmi_board_vendor ;
-00306 char *dmi_board_name ;
- 00307 } machine ;
-00309 struct hwloc_group_attr_s {
-00310 unsigned depth ;
- 00311 } group ;
- 00312 };
- 00313
- 00328 HWLOC_DECLSPEC int hwloc_topology_init (hwloc_topology_t *topologyp);
- 00329
- 00342 HWLOC_DECLSPEC int hwloc_topology_load (hwloc_topology_t topology);
- 00343
- 00348 HWLOC_DECLSPEC void hwloc_topology_destroy (hwloc_topology_t topology);
- 00349
- 00354 HWLOC_DECLSPEC void hwloc_topology_check (hwloc_topology_t topology);
- 00355
- 00388 HWLOC_DECLSPEC int hwloc_topology_ignore_type (hwloc_topology_t topology, hwloc_obj_type_t type);
- 00389
- 00396 HWLOC_DECLSPEC int hwloc_topology_ignore_type_keep_structure (hwloc_topology_t topology, hwloc_obj_type_t type);
- 00397
- 00403 HWLOC_DECLSPEC int hwloc_topology_ignore_all_keep_structure (hwloc_topology_t topology);
- 00404
-00409 enum hwloc_topology_flags_e {
-00410 HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM = (1<<0),
-00419 HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM = (1<<1)
- 00438 };
- 00439
- 00444 HWLOC_DECLSPEC int hwloc_topology_set_flags (hwloc_topology_t topology, unsigned long flags);
- 00445
- 00459 HWLOC_DECLSPEC int hwloc_topology_set_fsroot (hwloc_topology_t __hwloc_restrict topology, const char * __hwloc_restrict fsroot_path);
- 00460
- 00474 HWLOC_DECLSPEC int hwloc_topology_set_pid (hwloc_topology_t __hwloc_restrict topology, hwloc_pid_t pid);
- 00475
- 00489 HWLOC_DECLSPEC int hwloc_topology_set_synthetic (hwloc_topology_t __hwloc_restrict topology, const char * __hwloc_restrict description);
- 00490
- 00502 HWLOC_DECLSPEC int hwloc_topology_set_xml (hwloc_topology_t __hwloc_restrict topology, const char * __hwloc_restrict xmlpath);
- 00503
-00505 struct hwloc_topology_discovery_support {
-00507 unsigned char pu ;
- 00508 };
- 00509
-00511 struct hwloc_topology_cpubind_support {
-00513 unsigned char set_thisproc_cpubind ;
-00515 unsigned char get_thisproc_cpubind ;
-00517 unsigned char set_proc_cpubind ;
-00519 unsigned char get_proc_cpubind ;
-00521 unsigned char set_thisthread_cpubind ;
-00523 unsigned char get_thisthread_cpubind ;
-00525 unsigned char set_thread_cpubind ;
-00527 unsigned char get_thread_cpubind ;
- 00528 };
- 00529
-00536 struct hwloc_topology_support {
-00537 struct hwloc_topology_discovery_support *discovery ;
-00538 struct hwloc_topology_cpubind_support *cpubind ;
- 00539 };
- 00540
- 00542 HWLOC_DECLSPEC const struct hwloc_topology_support *hwloc_topology_get_support (hwloc_topology_t __hwloc_restrict topology);
- 00543
- 00556 HWLOC_DECLSPEC void hwloc_topology_export_xml (hwloc_topology_t topology, const char *xmlpath);
- 00557
- 00567 HWLOC_DECLSPEC hwloc_obj_t hwloc_topology_insert_misc_object_by_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, const char *name);
- 00568
- 00578 HWLOC_DECLSPEC hwloc_obj_t hwloc_topology_insert_misc_object_by_parent (hwloc_topology_t topology, hwloc_obj_t parent, const char *name);
- 00579
- 00592 HWLOC_DECLSPEC unsigned hwloc_topology_get_depth (hwloc_topology_t __hwloc_restrict topology) __hwloc_attribute_pure;
- 00593
- 00603 HWLOC_DECLSPEC int hwloc_get_type_depth (hwloc_topology_t topology, hwloc_obj_type_t type);
- 00604
-00605 enum hwloc_get_type_depth_e {
-00606 HWLOC_TYPE_DEPTH_UNKNOWN = -1,
-00607 HWLOC_TYPE_DEPTH_MULTIPLE = -2
- 00608 };
- 00609
- 00614 HWLOC_DECLSPEC hwloc_obj_type_t hwloc_get_depth_type (hwloc_topology_t topology, unsigned depth) __hwloc_attribute_pure;
- 00615
- 00617 HWLOC_DECLSPEC unsigned hwloc_get_nbobjs_by_depth (hwloc_topology_t topology, unsigned depth) __hwloc_attribute_pure;
- 00618
- 00624 static __hwloc_inline int __hwloc_attribute_pure
-00625 hwloc_get_nbobjs_by_type (hwloc_topology_t topology, hwloc_obj_type_t type)
- 00626 {
- 00627 int depth = hwloc_get_type_depth (topology, type);
- 00628 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN )
- 00629 return 0;
- 00630 if (depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00631 return -1;
- 00632 return hwloc_get_nbobjs_by_depth (topology, depth);
- 00633 }
- 00634
- 00642 HWLOC_DECLSPEC int hwloc_topology_is_thissystem (hwloc_topology_t __hwloc_restrict topology) __hwloc_attribute_pure;
- 00643
- 00653 HWLOC_DECLSPEC hwloc_obj_t hwloc_get_obj_by_depth (hwloc_topology_t topology, unsigned depth, unsigned idx) __hwloc_attribute_pure;
- 00654
- 00661 static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure
-00662 hwloc_get_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type, unsigned idx)
- 00663 {
- 00664 int depth = hwloc_get_type_depth (topology, type);
- 00665 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN )
- 00666 return NULL;
- 00667 if (depth == HWLOC_TYPE_DEPTH_MULTIPLE )
- 00668 return NULL;
- 00669 return hwloc_get_obj_by_depth (topology, depth, idx);
- 00670 }
- 00671
- 00681 HWLOC_DECLSPEC const char * hwloc_obj_type_string (hwloc_obj_type_t type) __hwloc_attribute_const;
- 00682
- 00687 HWLOC_DECLSPEC hwloc_obj_type_t hwloc_obj_type_of_string (const char * string ) __hwloc_attribute_pure;
- 00688
- 00696 HWLOC_DECLSPEC int hwloc_obj_type_snprintf (char * __hwloc_restrict string , size_t size, hwloc_obj_t obj,
- 00697 int verbose);
- 00698
- 00707 HWLOC_DECLSPEC int hwloc_obj_attr_snprintf (char * __hwloc_restrict string , size_t size, hwloc_obj_t obj, const char * __hwloc_restrict separator,
- 00708 int verbose);
- 00709
- 00727 HWLOC_DECLSPEC int hwloc_obj_snprintf (char * __hwloc_restrict string , size_t size,
- 00728 hwloc_topology_t topology, hwloc_obj_t obj,
- 00729 const char * __hwloc_restrict indexprefix, int verbose);
- 00730
- 00734 HWLOC_DECLSPEC int hwloc_obj_cpuset_snprintf (char * __hwloc_restrict str, size_t size, size_t nobj, const hwloc_obj_t * __hwloc_restrict objs);
- 00735
-00781 typedef enum {
-00782 HWLOC_CPUBIND_PROCESS = (1<<0),
-00785 HWLOC_CPUBIND_THREAD = (1<<1),
-00787 HWLOC_CPUBIND_STRICT = (1<<2)
- 00815 } hwloc_cpubind_policy_t ;
- 00816
- 00822 HWLOC_DECLSPEC int hwloc_set_cpubind (hwloc_topology_t topology, hwloc_const_cpuset_t set ,
- 00823 int policy);
- 00824
- 00827 HWLOC_DECLSPEC int hwloc_get_cpubind (hwloc_topology_t topology, hwloc_cpuset_t set , int policy);
- 00828
- 00836 HWLOC_DECLSPEC int hwloc_set_proc_cpubind (hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set , int policy);
- 00837
- 00845 HWLOC_DECLSPEC int hwloc_get_proc_cpubind (hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set , int policy);
- 00846
- 00854 #ifdef hwloc_thread_t
- 00855 HWLOC_DECLSPEC int hwloc_set_thread_cpubind (hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set , int policy);
- 00856 #endif
- 00857
- 00865 #ifdef hwloc_thread_t
- 00866 HWLOC_DECLSPEC int hwloc_get_thread_cpubind (hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set , int policy);
- 00867 #endif
- 00868
- 00872
- 00873 #include <hwloc/helper.h>
- 00874
- 00875
- 00876 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00023_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00023_source.html
deleted file mode 100644
index 079c96f637..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00023_source.html
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): linux-libnuma.h Source File
-
-
-
-
-
-
-
-
-
linux-libnuma.h 00001
- 00002
- 00003
- 00004
- 00005
- 00013 #ifndef HWLOC_LINUX_LIBNUMA_H
- 00014 #define HWLOC_LINUX_LIBNUMA_H
- 00015
- 00016 #include <hwloc.h>
- 00017 #include <numa.h>
- 00018
- 00019
- 00035 static __hwloc_inline int
-00036 hwloc_cpuset_to_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
- 00037 unsigned long *mask, unsigned long *maxnode)
- 00038 {
- 00039 unsigned long outmaxnode = -1;
- 00040 hwloc_obj_t node = NULL;
- 00041 unsigned nbnodes = hwloc_get_nbobjs_by_type (topology, HWLOC_OBJ_NODE );
- 00042 unsigned i;
- 00043
- 00044 for (i=0; i<*maxnode/HWLOC_BITS_PER_LONG; i++)
- 00045 mask[i] = 0;
- 00046
- 00047 if (nbnodes) {
- 00048 while ((node = hwloc_get_next_obj_covering_cpuset_by_type (topology, cpuset, HWLOC_OBJ_NODE , node)) != NULL) {
- 00049 if (node->os_index >= *maxnode)
- 00050 break ;
- 00051 mask[node->os_index /HWLOC_BITS_PER_LONG] |= 1 << (node->os_index % HWLOC_BITS_PER_LONG);
- 00052 outmaxnode = node->os_index ;
- 00053 }
- 00054
- 00055 } else {
- 00056
- 00057 if (!hwloc_cpuset_iszero (cpuset)) {
- 00058 mask[0] = 1;
- 00059 outmaxnode = 0;
- 00060 }
- 00061 }
- 00062
- 00063 *maxnode = outmaxnode+1;
- 00064 return 0;
- 00065 }
- 00066
- 00076 static __hwloc_inline int
-00077 hwloc_cpuset_from_linux_libnuma_ulongs (hwloc_topology_t topology, hwloc_cpuset_t cpuset,
- 00078 const unsigned long *mask, unsigned long maxnode)
- 00079 {
- 00080 hwloc_obj_t node;
- 00081 int depth;
- 00082 unsigned i;
- 00083
- 00084 depth = hwloc_get_type_depth (topology, HWLOC_OBJ_NODE );
- 00085
- 00086
- 00087 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN ) {
- 00088
- 00089 if (mask[0] & 1)
- 00090 hwloc_cpuset_copy (cpuset, hwloc_topology_get_complete_cpuset (topology));
- 00091 else
- 00092 hwloc_cpuset_zero (cpuset);
- 00093
- 00094 } else {
- 00095 hwloc_cpuset_zero (cpuset);
- 00096 for (i=0; i<maxnode; i++)
- 00097 if (mask[i/HWLOC_BITS_PER_LONG] & (1 << (i% HWLOC_BITS_PER_LONG))) {
- 00098 node = hwloc_get_obj_by_depth (topology, depth, i);
- 00099 if (node)
- 00100 hwloc_cpuset_or (cpuset, cpuset, node->cpuset );
- 00101 }
- 00102 }
- 00103
- 00104 return 0;
- 00105 }
- 00106
- 00125 static __hwloc_inline struct bitmask * __hwloc_attribute_malloc
-00126 hwloc_cpuset_to_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset)
- 00127 {
- 00128 struct bitmask *bitmask;
- 00129 hwloc_obj_t node = NULL;
- 00130 unsigned nbnodes = hwloc_get_nbobjs_by_type (topology, HWLOC_OBJ_NODE );
- 00131
- 00132 if (nbnodes) {
- 00133 bitmask = numa_bitmask_alloc(nbnodes);
- 00134 if (!bitmask)
- 00135 return NULL;
- 00136 while ((node = hwloc_get_next_obj_covering_cpuset_by_type (topology, cpuset, HWLOC_OBJ_NODE , node)) != NULL)
- 00137 numa_bitmask_setbit(bitmask, node->os_index );
- 00138
- 00139 } else {
- 00140
- 00141 bitmask = numa_bitmask_alloc(1);
- 00142 if (!bitmask)
- 00143 return NULL;
- 00144 if (!hwloc_cpuset_iszero (cpuset))
- 00145 numa_bitmask_setbit(bitmask, 0);
- 00146 }
- 00147
- 00148 return bitmask;
- 00149 }
- 00150
- 00156 static __hwloc_inline int
-00157 hwloc_cpuset_from_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_cpuset_t cpuset,
- 00158 const struct bitmask *bitmask)
- 00159 {
- 00160 hwloc_obj_t node;
- 00161 int depth;
- 00162 int i;
- 00163
- 00164 depth = hwloc_get_type_depth (topology, HWLOC_OBJ_NODE );
- 00165
- 00166
- 00167 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN ) {
- 00168
- 00169 if (numa_bitmask_isbitset(bitmask, 0))
- 00170 hwloc_cpuset_copy (cpuset, hwloc_topology_get_complete_cpuset (topology));
- 00171 else
- 00172 hwloc_cpuset_zero (cpuset);
- 00173
- 00174 } else {
- 00175 hwloc_cpuset_zero (cpuset);
- 00176 for (i=0; i<NUMA_NUM_NODES; i++)
- 00177 if (numa_bitmask_isbitset(bitmask, i)) {
- 00178 node = hwloc_get_obj_by_depth (topology, depth, i);
- 00179 if (node)
- 00180 hwloc_cpuset_or (cpuset, cpuset, node->cpuset );
- 00181 }
- 00182 }
- 00183
- 00184 return 0;
- 00185 }
- 00186
- 00191 #ifdef NUMA_VERSION1_COMPATIBILITY
- 00192
- 00202 static __hwloc_inline int
-00203 hwloc_cpuset_to_linux_libnuma_nodemask (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
- 00204 nodemask_t *nodemask)
- 00205 {
- 00206 hwloc_obj_t node = NULL;
- 00207 unsigned nbnodes = hwloc_get_nbobjs_by_type (topology, HWLOC_OBJ_NODE );
- 00208
- 00209 nodemask_zero(nodemask);
- 00210 if (nbnodes) {
- 00211 while ((node = hwloc_get_next_obj_covering_cpuset_by_type (topology, cpuset, HWLOC_OBJ_NODE , node)) != NULL)
- 00212 nodemask_set(nodemask, node->os_index );
- 00213
- 00214 } else {
- 00215
- 00216 if (!hwloc_cpuset_iszero (cpuset))
- 00217 nodemask_set(nodemask, 0);
- 00218 }
- 00219
- 00220 return 0;
- 00221 }
- 00222
- 00228 static __hwloc_inline int
-00229 hwloc_cpuset_from_linux_libnuma_nodemask (hwloc_topology_t topology, hwloc_cpuset_t cpuset,
- 00230 const nodemask_t *nodemask)
- 00231 {
- 00232 hwloc_obj_t node;
- 00233 int depth;
- 00234 int i;
- 00235
- 00236 depth = hwloc_get_type_depth (topology, HWLOC_OBJ_NODE );
- 00237
- 00238
- 00239 if (depth == HWLOC_TYPE_DEPTH_UNKNOWN ) {
- 00240
- 00241 if (nodemask_isset(nodemask, 0))
- 00242 hwloc_cpuset_copy (cpuset, hwloc_topology_get_complete_cpuset (topology));
- 00243 else
- 00244 hwloc_cpuset_zero (cpuset);
- 00245
- 00246 } else {
- 00247 hwloc_cpuset_zero (cpuset);
- 00248 for (i=0; i<NUMA_NUM_NODES; i++)
- 00249 if (nodemask_isset(nodemask, i)) {
- 00250 node = hwloc_get_obj_by_depth (topology, depth, i);
- 00251 if (node)
- 00252 hwloc_cpuset_or (cpuset, cpuset, node->cpuset );
- 00253 }
- 00254 }
- 00255
- 00256 return 0;
- 00257 }
- 00258
- 00260 #endif
- 00261
- 00262
- 00263 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00024_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00024_source.html
deleted file mode 100644
index 376a35287c..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00024_source.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): linux.h Source File
-
-
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00025_source.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00025_source.html
deleted file mode 100644
index 0ea87e3bb7..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00025_source.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): openfabrics-verbs.h Source File
-
-
-
-
-
-
-
-
-
openfabrics-verbs.h 00001
- 00002
- 00003
- 00004
- 00005
- 00006
- 00017 #ifndef HWLOC_OPENFABRICS_VERBS_H
- 00018 #define HWLOC_OPENFABRICS_VERBS_H
- 00019
- 00020 #include <hwloc.h>
- 00021 #include <hwloc/config.h>
- 00022 #include <hwloc/linux.h>
- 00023
- 00024 #include <infiniband/verbs.h>
- 00025
- 00038 static __hwloc_inline int
-00039 hwloc_ibv_get_device_cpuset (hwloc_topology_t topology __hwloc_attribute_unused,
- 00040 struct ibv_device *ibdev, hwloc_cpuset_t set )
- 00041 {
- 00042 #ifdef HWLOC_LINUX_SYS
- 00043
- 00044
- 00045 #define HWLOC_OPENFABRICS_VERBS_SYSFS_PATH_MAX 128
- 00046 char path[HWLOC_OPENFABRICS_VERBS_SYSFS_PATH_MAX];
- 00047 FILE *sysfile = NULL;
- 00048
- 00049 sprintf(path, "/sys/class/infiniband/%s/device/local_cpus" ,
- 00050 ibv_get_device_name(ibdev));
- 00051 sysfile = fopen(path, "r" );
- 00052 if (!sysfile)
- 00053 return -1;
- 00054
- 00055 hwloc_linux_parse_cpumap_file (sysfile, set );
- 00056
- 00057 fclose(sysfile);
- 00058 #else
- 00059
- 00060 hwloc_cpuset_copy (set , hwloc_topology_get_complete_cpuset (topology));
- 00061 #endif
- 00062 return 0;
- 00063 }
- 00064
- 00067 #endif
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00026.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00026.html
deleted file mode 100644
index 778e501e57..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00026.html
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): API version
-
-
-
-
-
-
-
-
API version
-Defines
-#define HWLOC_API_VERSION 0x00010000
- Indicate at build time which hwloc API version is being used.
-
-
Define Documentation
-
-
-
-
-
- #define HWLOC_API_VERSION 0x00010000
-
-
-
-
-
-
Indicate at build time which hwloc API version is being used.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00027.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00027.html
deleted file mode 100644
index 744a3b4f8b..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00027.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Topology context
-
-
-
-
-
-
-
-
Topology context
-Typedefs
-typedef struct hwloc_topology * hwloc_topology_t
- Topology context.
-
-
Typedef Documentation
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00028.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00028.html
deleted file mode 100644
index 9f2cd40f6b..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00028.html
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Topology Object Types
-
-
-
-
-
-
-
-
Topology Object Types
-
Enumeration Type Documentation
-
-
-
-
-
Enumerator:
- HWLOC_TYPE_UNORDERED
-Value returned by hwloc_compare_types when types can not be compared.
-
-
-
-
-
-
-
-
-
-
-
-
-
Type of topology object.
-
Note: Do not rely on the ordering or completeness of the values as new ones may be defined in the future! If you need to compare types, use hwloc_compare_types() instead.
-
Enumerator:
- HWLOC_OBJ_SYSTEM
-Whole system (may be a cluster of machines). The whole system that is accessible to hwloc. That may comprise several machines in SSI systems like Kerrighed.
-
- HWLOC_OBJ_MACHINE
-Machine. The typical root object type. A set of processors and memory with cache coherency.
-
- HWLOC_OBJ_NODE
-NUMA node. A set of processors around memory which the processors can directly access.
-
- HWLOC_OBJ_SOCKET
-Socket, physical package, or chip. In the physical meaning, i.e. that you can add or remove physically.
-
- HWLOC_OBJ_CACHE
-Data cache. Can be L1, L2, L3, ...
-
- HWLOC_OBJ_CORE
-Core. A computation unit (may be shared by several logical processors).
-
- HWLOC_OBJ_PU
-Processing Unit, or (Logical) Processor. An execution unit (may share a core with some other logical processors, e.g. in the case of an SMT core).
-Objects of this kind are always reported and can thus be used as fallback when others are not.
-
- HWLOC_OBJ_GROUP
-Group objects. Objects which do not fit in the above but are detected by hwloc and are useful to take into account for affinity. For instance, some OSes expose their arbitrary processors aggregation this way. And hwloc may insert such objects to group NUMA nodes according to their distances.
-These objects are ignored when they do not bring any structure.
-
- HWLOC_OBJ_MISC
-Miscellaneous objects. Objects without particular meaning, that can e.g. be added by the application for its own use.
-
-
-
-
-
-
-
-
Function Documentation
-
-
-
-
-
-
Compare the depth of two object types.
-
Types shouldn't be compared as they are, since newer ones may be added in the future. This function returns less than, equal to, or greater than zero respectively if type1
objects usually include type2
objects, are the same as type2
objects, or are included in type2
objects. If the types can not be compared (because neither is usually contained in the other), HWLOC_TYPE_UNORDERED is returned. Object types containing CPUs can always be compared (usually, a system contains machines which contain nodes which contain sockets which contain caches, which contain cores, which contain processors).
-
Note: HWLOC_OBJ_PU will always be the deepest.
-
-This does not mean that the actual topology will respect that order: e.g. as of today cores may also contain caches, and sockets may also contain nodes. This is thus just to be seen as a fallback comparison method.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00029.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00029.html
deleted file mode 100644
index db35a8007e..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00029.html
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Topology Objects
-
-
-
-
-
-
-
-
Topology Objects
-
Typedef Documentation
-
-
-
-
-
-
Convenience typedef; a pointer to a struct hwloc_obj .
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00030.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00030.html
deleted file mode 100644
index 6cd0c82525..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00030.html
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Create and Destroy Topologies
-
-
-
-
-
-
-
-
Create and Destroy Topologies
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_topology_check
- (
- hwloc_topology_t
- topology
- )
-
-
-
-
-
-
-
Run internal checks on a topology structure.
-
Parameters:
-
- topology is the topology to be checked
-
-
-
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_topology_destroy
- (
- hwloc_topology_t
- topology
- )
-
-
-
-
-
-
-
Terminate and free a topology context.
-
Parameters:
-
- topology is the topology to be freed
-
-
-
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_init
- (
- hwloc_topology_t *
- topologyp
- )
-
-
-
-
-
-
-
Allocate a topology context.
-
Parameters:
-
- [out] topologyp is assigned a pointer to the new allocated context.
-
-
-
-
Returns: 0 on success, -1 on error.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_load
- (
- hwloc_topology_t
- topology
- )
-
-
-
-
-
-
-
Build the actual topology.
-
Build the actual topology once initialized with hwloc_topology_init() and tuned with hwlocality_configuration routine. No other routine may be called earlier using this topology context.
-
Parameters:
-
- topology is the topology to be loaded with objects.
-
-
-
-
Returns: 0 on success, -1 on error.
-
See also: Configure Topology Detection
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00031.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00031.html
deleted file mode 100644
index bc151efec0..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00031.html
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Configure Topology Detection
-
-
-
-
-
-
-
-
Configure Topology Detection
-
Detailed Description
-
These functions can optionally be called between hwloc_topology_init() and hwloc_topology_load() to configure how the detection should be performed, e.g. to ignore some objects types, define a synthetic topology, etc.
-
If none of them is called, the default is to detect all the objects of the machine that the caller is allowed to access.
-
This default behavior may also be modified through environment variables if the application did not modify it already. Setting HWLOC_XMLFILE in the environment enforces the discovery from a XML file as if hwloc_topology_set_xml() had been called. HWLOC_FSROOT switches to reading the topology from the specified Linux filesystem root as if hwloc_topology_set_fsroot() had been called. Finally, HWLOC_THISSYSTEM enforces the return value of hwloc_topology_is_thissystem() .
-
Enumeration Type Documentation
-
-
-
-
-
-
Flags to be set onto a topology context before load.
-
Flags should be given to hwloc_topology_set_flags() .
-
Enumerator:
- HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM
-Detect the whole system, ignore reservations and offline settings.
-Gather all resources, even if some were disabled by the administrator. For instance, ignore Linux Cpusets and gather all processors and memory nodes, and ignore the fact that some resources may be offline.
-
- HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM
-Assume that the selected backend provides the topology for the system on which we are running.
-This forces hwloc_topology_is_thissystem to return 1, i.e. makes hwloc assume that the selected backend provides the topology for the system on which we are running, even if it is not the OS-specific backend but the XML backend for instance. This means making the binding functions actually call the OS-specific system calls and really do binding, while the XML backend would otherwise provide empty hooks just returning success.
-Setting the environment variable HWLOC_THISSYSTEM may also result in the same behavior.
-This can be used for efficiency reasons to first detect the topology once, save it to an XML file, and quickly reload it later through the XML backend, but still having binding functions actually do bind.
-
-
-
-
-
-
-
-
Function Documentation
-
-
-
-
-
-
Retrieve the topology support.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_ignore_all_keep_structure
- (
- hwloc_topology_t
- topology
- )
-
-
-
-
-
-
-
Ignore all objects that do not bring any structure.
-
Ignore all objects that do not bring any structure: Each ignored object should have a single children or be the only child of its parent.
-
-
-
-
-
-
-
-
-
Ignore an object type.
-
Ignore all objects from the given type. The bottom-level type HWLOC_OBJ_PU may not be ignored. The top-level object of the hierarchy will never be ignored, even if this function succeeds.
-
-
-
-
-
-
-
-
-
Ignore an object type if it does not bring any structure.
-
Ignore all objects from the given type as long as they do not bring any structure: Each ignored object should have a single children or be the only child of its parent. The bottom-level type HWLOC_OBJ_PU may not be ignored.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_set_flags
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- unsigned long
- flags
-
-
-
- )
-
-
-
-
-
-
-
Set OR'ed flags to non-yet-loaded topology.
-
Set a OR'ed set of hwloc_topology_flags_e onto a topology that was not yet loaded.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_set_fsroot
- (
- hwloc_topology_t __hwloc_restrict
- topology ,
-
-
-
-
- const char *__hwloc_restrict
- fsroot_path
-
-
-
- )
-
-
-
-
-
-
-
Change the file-system root path when building the topology from sysfs/procfs.
-
On Linux system, use sysfs and procfs files as if they were mounted on the given fsroot_path
instead of the main file-system root. Setting the environment variable HWLOC_FSROOT may also result in this behavior. Not using the main file-system root causes hwloc_topology_is_thissystem() to return 0.
-
Note: For conveniency, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, the HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM has to be set to assert that the loaded file is really the underlying system.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_set_pid
- (
- hwloc_topology_t __hwloc_restrict
- topology ,
-
-
-
-
- hwloc_pid_t
- pid
-
-
-
- )
-
-
-
-
-
-
-
Change which pid the topology is viewed from.
-
On some systems, processes may have different views of the machine, for instance the set of allowed CPUs. By default, hwloc exposes the view from the current process. Calling hwloc_topology_set_pid() permits to make it expose the topology of the machine from the point of view of another process.
-
Note: hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms
-
-The ENOSYS error is returned on platforms that does not support this feature.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_set_synthetic
- (
- hwloc_topology_t __hwloc_restrict
- topology ,
-
-
-
-
- const char *__hwloc_restrict
- description
-
-
-
- )
-
-
-
-
-
-
-
Enable synthetic topology.
-
Gather topology information from the given description
which should be a comma separated string of numbers describing the arity of each level. Each number may be prefixed with a type and a colon to enforce the type of a level. If only some level types are enforced, hwloc will try to choose the other types according to usual topologies, but it may fail and you may have to specify more level types manually.
-
Note: For conveniency, this backend provides empty binding hooks which just return success.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_set_xml
- (
- hwloc_topology_t __hwloc_restrict
- topology ,
-
-
-
-
- const char *__hwloc_restrict
- xmlpath
-
-
-
- )
-
-
-
-
-
-
-
Enable XML-file based topology.
-
Gather topology information the XML file given at xmlpath
. Setting the environment variable HWLOC_XMLFILE may also result in this behavior. This file may have been generated earlier with lstopo file.xml.
-
Note: For conveniency, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, the HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM has to be set to assert that the loaded file is really the underlying system.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00032.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00032.html
deleted file mode 100644
index dcd9fba410..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00032.html
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Tinker with topologies.
-
-
-
-
-
-
-
-
Tinker with topologies.
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_topology_export_xml
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- const char *
- xmlpath
-
-
-
- )
-
-
-
-
-
-
-
-
-
-
-
-
Add a MISC object to the topology.
-
A new MISC object will be created and inserted into the topology at the position given by cpuset.
-
cpuset and name will be copied.
-
Returns: the newly-created object
-
-
-
-
-
-
-
-
-
Add a MISC object to the topology.
-
A new MISC object will be created and inserted into the topology at the position given by parent.
-
name will be copied.
-
Returns: the newly-created object
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00033.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00033.html
deleted file mode 100644
index 8351f34a98..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00033.html
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Get some Topology Information
-
-
-
-
-
-
-
-
Get some Topology Information
-
Enumeration Type Documentation
-
-
-
-
-
Enumerator:
- HWLOC_TYPE_DEPTH_UNKNOWN
-No object of given type exists in the topology.
-
- HWLOC_TYPE_DEPTH_MULTIPLE
-Objects of given type exist at different depth in the topology.
-
-
-
-
-
-
-
-
Function Documentation
-
-
-
-
-
-
Returns the type of objects at depth depth
.
-
Returns: -1 if depth depth
does not exist.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC unsigned hwloc_get_nbobjs_by_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- unsigned
- depth
-
-
-
- )
-
-
-
-
-
-
-
Returns the width of level at depth depth
.
-
-
-
-
-
-
-
-
- static __hwloc_inline int __hwloc_attribute_pure hwloc_get_nbobjs_by_type
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_obj_type_t
- type
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns the width of level type type
.
-
If no object for that type exists, 0 is returned. If there are several levels with objects of that type, -1 is returned.
-
-
-
-
-
-
-
-
-
Returns the depth of objects of type type
.
-
If no object of this type is present on the underlying architecture, or if the OS doesn't provide this kind of information, the function returns HWLOC_TYPE_DEPTH_UNKNOWN.
-
If type is absent but a similar type is acceptable, see also hwloc_get_type_or_below_depth() and hwloc_get_type_or_above_depth() .
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC unsigned hwloc_topology_get_depth
- (
- hwloc_topology_t __hwloc_restrict
- topology
- )
-
-
-
-
-
-
-
Get the depth of the hierachical tree of objects.
-
This is the depth of HWLOC_OBJ_PU objects plus one.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_topology_is_thissystem
- (
- hwloc_topology_t __hwloc_restrict
- topology
- )
-
-
-
-
-
-
-
Does the topology context come from this system?
-
Returns: 1 if this topology context was built using the system running this program.
-
-0 instead (for instance if using another file-system root, a XML topology file, or a synthetic topology).
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00034.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00034.html
deleted file mode 100644
index 6aa9b1b5db..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00034.html
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Retrieve Objects
-
-
-
-
-
-
-
-
Retrieve Objects
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC hwloc_obj_t hwloc_get_obj_by_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- unsigned
- depth ,
-
-
-
-
- unsigned
- idx
-
-
-
- )
-
-
-
-
-
-
-
Returns the topology object at index index
from depth depth
.
-
-
-
-
-
-
-
-
-
Returns the topology object at index index
with type type
.
-
If no object for that type exists, NULL
is returned. If there are several levels with objects of that type, NULL
is returned and ther caller may fallback to hwloc_get_obj_by_depth() .
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00035.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00035.html
deleted file mode 100644
index d0a87591b6..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00035.html
+++ /dev/null
@@ -1,278 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Object/String Conversion
-
-
-
-
-
-
-
-
Object/String Conversion
-Functions
-HWLOC_DECLSPEC const char * hwloc_obj_type_string (hwloc_obj_type_t type) __hwloc_attribute_const
- Return a stringified topology object type.
-HWLOC_DECLSPEC hwloc_obj_type_t hwloc_obj_type_of_string (const char *string) __hwloc_attribute_pure
- Return an object type from the string.
-HWLOC_DECLSPEC int hwloc_obj_type_snprintf (char *__hwloc_restrict string, size_t size, hwloc_obj_t obj, int verbose)
- Stringify the type of a given topology object into a human-readable form.
-HWLOC_DECLSPEC int hwloc_obj_attr_snprintf (char *__hwloc_restrict string, size_t size, hwloc_obj_t obj, const char *__hwloc_restrict separator, int verbose)
- Stringify the attributes of a given topology object into a human-readable form.
-HWLOC_DECLSPEC int hwloc_obj_snprintf (char *__hwloc_restrict string, size_t size, hwloc_topology_t topology, hwloc_obj_t obj, const char *__hwloc_restrict indexprefix, int verbose)
- Stringify a given topology object into a human-readable form.
-HWLOC_DECLSPEC int hwloc_obj_cpuset_snprintf (char *__hwloc_restrict str, size_t size, size_t nobj, const hwloc_obj_t *__hwloc_restrict objs)
- Stringify the cpuset containing a set of objects.
-
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_obj_attr_snprintf
- (
- char *__hwloc_restrict
- string ,
-
-
-
-
- size_t
- size ,
-
-
-
-
- hwloc_obj_t
- obj ,
-
-
-
-
- const char *__hwloc_restrict
- separator ,
-
-
-
-
- int
- verbose
-
-
-
- )
-
-
-
-
-
-
-
Stringify the attributes of a given topology object into a human-readable form.
-
Attribute values are separated by separator
.
-
Only the major attributes are printed in non-verbose mode.
-
Returns: how many characters were actually written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_obj_cpuset_snprintf
- (
- char *__hwloc_restrict
- str ,
-
-
-
-
- size_t
- size ,
-
-
-
-
- size_t
- nobj ,
-
-
-
-
- const hwloc_obj_t *__hwloc_restrict
- objs
-
-
-
- )
-
-
-
-
-
-
-
Stringify the cpuset containing a set of objects.
-
Returns: how many characters were actually written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_obj_snprintf
- (
- char *__hwloc_restrict
- string ,
-
-
-
-
- size_t
- size ,
-
-
-
-
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_obj_t
- obj ,
-
-
-
-
- const char *__hwloc_restrict
- indexprefix ,
-
-
-
-
- int
- verbose
-
-
-
- )
-
-
-
-
-
-
-
Stringify a given topology object into a human-readable form.
-
Note: This function is deprecated in favor of hwloc_obj_type_snprintf() and hwloc_obj_attr_snprintf() since it is not very flexible and only prints physical/OS indexes.
-
Fill string string
up to size
characters with the description of topology object obj
in topology topology
.
-
If verbose
is set, a longer description is used. Otherwise a short description is used.
-
indexprefix
is used to prefix the os_index
attribute number of the object in the description. If NULL
, the #
character is used.
-
Returns: how many characters were actually written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC hwloc_obj_type_t hwloc_obj_type_of_string
- (
- const char *
- string
- )
-
-
-
-
-
-
-
Return an object type from the string.
-
Returns: -1 if unrecognized.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_obj_type_snprintf
- (
- char *__hwloc_restrict
- string ,
-
-
-
-
- size_t
- size ,
-
-
-
-
- hwloc_obj_t
- obj ,
-
-
-
-
- int
- verbose
-
-
-
- )
-
-
-
-
-
-
-
Stringify the type of a given topology object into a human-readable form.
-
It differs from hwloc_obj_type_string() because it prints type attributes such as cache depth.
-
Returns: how many characters were actually written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC const char* hwloc_obj_type_string
- (
- hwloc_obj_type_t
- type
- )
- const
-
-
-
-
-
-
Return a stringified topology object type.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00036.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00036.html
deleted file mode 100644
index 61fc164155..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00036.html
+++ /dev/null
@@ -1,344 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Binding
-
-
-
-
-
-
-
-
Binding
-Enumerations
-enum hwloc_cpubind_policy_t { HWLOC_CPUBIND_PROCESS ,
-HWLOC_CPUBIND_THREAD ,
-HWLOC_CPUBIND_STRICT
- }
- Process/Thread binding policy.
- More...
-Functions
-HWLOC_DECLSPEC int hwloc_set_cpubind (hwloc_topology_t topology, hwloc_const_cpuset_t set, int policy)
- Bind current process or thread on cpus given in cpuset set
.
-HWLOC_DECLSPEC int hwloc_get_cpubind (hwloc_topology_t topology, hwloc_cpuset_t set, int policy)
- Get current process or thread binding.
-HWLOC_DECLSPEC int hwloc_set_proc_cpubind (hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int policy)
- Bind a process pid
on cpus given in cpuset set
.
-HWLOC_DECLSPEC int hwloc_get_proc_cpubind (hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int policy)
- Get the current binding of process pid
.
-HWLOC_DECLSPEC int hwloc_set_thread_cpubind (hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int policy)
- Bind a thread tid
on cpus given in cpuset set
.
-HWLOC_DECLSPEC int hwloc_get_thread_cpubind (hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int policy)
- Get the current binding of thread tid
.
-
-
Detailed Description
-
It is often useful to call hwloc_cpuset_singlify() first so that a single CPU remains in the set. This way, the process will not even migrate between different CPUs. Some OSes also only support that kind of binding.
-
Note: Some OSes do not provide all ways to bind processes, threads, etc and the corresponding binding functions may fail. ENOSYS is returned when it is not possible to bind the requested kind of object processes/threads). EXDEV is returned when the requested cpuset can not be enforced (e.g. some systems only allow one CPU, and some other systems only allow one NUMA node)
-
The most portable version that should be preferred over the others, whenever possible, is
-
as it just binds the current program, assuming it is monothread, or
-
which binds the current thread of the current program (which may be multithreaded).
-
Note: To unbind, just call the binding function with either a full cpuset or a cpuset equal to the system cpuset.
-
Enumeration Type Documentation
-
-
-
-
-
-
Process/Thread binding policy.
-
These flags can be used to refine the binding policy.
-
The default (0) is to bind the current process, assumed to be mono-thread, in a non-strict way. This is the most portable way to bind as all OSes usually provide it.
-
Enumerator:
- HWLOC_CPUBIND_PROCESS
-Bind all threads of the current multithreaded process. This may not be supported by some OSes (e.g. Linux).
-
- HWLOC_CPUBIND_THREAD
-Bind current thread of current process.
-
- HWLOC_CPUBIND_STRICT
-Request for strict binding from the OS.
-By default, when the designated CPUs are all busy while other CPUs are idle, OSes may execute the thread/process on those other CPUs instead of the designated CPUs, to let them progress anyway. Strict binding means that the thread/process will _never_ execute on other cpus than the designated CPUs, even when those are busy with other tasks and other CPUs are idle.
-Note: Depending on OSes and implementations, strict binding may not be possible (implementation reason) or not allowed (administrative reasons), and the function will fail in that case.
-When retrieving the binding of a process, this flag checks whether all its threads actually have the same binding. If the flag is not given, the binding of each thread will be accumulated.
-Note: This flag is meaningless when retrieving the binding of a thread.
-
-
-
-
-
-
-
-
Function Documentation
-
-
-
-
-
-
Get current process or thread binding.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_get_proc_cpubind
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_pid_t
- pid ,
-
-
-
-
- hwloc_cpuset_t
- set ,
-
-
-
-
- int
- policy
-
-
-
- )
-
-
-
-
-
-
-
Get the current binding of process pid
.
-
Note: hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms
-
-HWLOC_CPUBIND_THREAD can not be used in policy
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_get_thread_cpubind
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_thread_t
- tid ,
-
-
-
-
- hwloc_cpuset_t
- set ,
-
-
-
-
- int
- policy
-
-
-
- )
-
-
-
-
-
-
-
Get the current binding of thread tid
.
-
Note: hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native Windows platforms
-
-HWLOC_CPUBIND_PROCESS can not be used in policy
.
-
-
-
-
-
-
-
-
-
Bind current process or thread on cpus given in cpuset set
.
-
Returns: ENOSYS if the action is not supported
-
-EXDEV if the binding cannot be enforced
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_set_proc_cpubind
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_pid_t
- pid ,
-
-
-
-
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- int
- policy
-
-
-
- )
-
-
-
-
-
-
-
Bind a process pid
on cpus given in cpuset set
.
-
Note: hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms
-
-HWLOC_CPUBIND_THREAD can not be used in policy
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_set_thread_cpubind
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_thread_t
- tid ,
-
-
-
-
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- int
- policy
-
-
-
- )
-
-
-
-
-
-
-
Bind a thread tid
on cpus given in cpuset set
.
-
Note: hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native Windows platforms
-
-HWLOC_CPUBIND_PROCESS can not be used in policy
.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00037.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00037.html
deleted file mode 100644
index 1b2a71c5e2..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00037.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Object Type Helpers
-
-
-
-
-
-
-
-
Object Type Helpers
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int __hwloc_attribute_pure hwloc_get_type_or_above_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_obj_type_t
- type
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns the depth of objects of type type
or above.
-
If no object of this type is present on the underlying architecture, the function returns the depth of the first "present" object typically containing type
.
-
-
-
-
-
-
-
-
- static __hwloc_inline int __hwloc_attribute_pure hwloc_get_type_or_below_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_obj_type_t
- type
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns the depth of objects of type type
or below.
-
If no object of this type is present on the underlying architecture, the function returns the depth of the first "present" object typically found inside type
.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00038.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00038.html
deleted file mode 100644
index cd23a42345..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00038.html
+++ /dev/null
@@ -1,360 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Basic Traversal Helpers
-
-
-
-
-
-
-
-
Basic Traversal Helpers
-Functions
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_root_obj (hwloc_topology_t topology)
- Returns the top-object of the topology-tree.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology __hwloc_attribute_unused, unsigned depth, hwloc_obj_t obj)
- Returns the ancestor object of obj
at depth depth
.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_ancestor_obj_by_type (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_type_t type, hwloc_obj_t obj)
- Returns the ancestor object of obj
with type type
.
-static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_by_depth (hwloc_topology_t topology, unsigned depth, hwloc_obj_t prev)
- Returns the next object at depth depth
.
-static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t prev)
- Returns the next object of type type
.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_pu_obj_by_os_index (hwloc_topology_t topology, unsigned os_index)
- Returns the object of type HWLOC_OBJ_PU with os_index
.
-static __hwloc_inline hwloc_obj_t hwloc_get_next_child (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t parent, hwloc_obj_t prev)
- Return the next child.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_common_ancestor_obj (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj1, hwloc_obj_t obj2)
- Returns the common parent object to objects lvl1 and lvl2.
-static __hwloc_inline int
-__hwloc_attribute_pure hwloc_obj_is_in_subtree (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)
- Returns true if _obj_ is inside the subtree beginning with subtree_root
.
-
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_ancestor_obj_by_depth
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- unsigned
- depth ,
-
-
-
-
- hwloc_obj_t
- obj
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns the ancestor object of obj
at depth depth
.
-
-
-
-
-
-
-
-
-
Returns the ancestor object of obj
with type type
.
-
-
-
-
-
-
-
-
-
Returns the common parent object to objects lvl1 and lvl2.
-
-
-
-
-
-
-
-
-
Return the next child.
-
If prev
is NULL
, return the first child.
-
-
-
-
-
-
-
-
-
Returns the next object at depth depth
.
-
If prev
is NULL
, return the first object at depth depth
.
-
-
-
-
-
-
-
-
-
Returns the next object of type type
.
-
If prev
is NULL
, return the first object at type type
. If there are multiple or no depth for given type, return NULL
and let the caller fallback to hwloc_get_next_obj_by_depth() .
-
-
-
-
-
-
-
-
- static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_pu_obj_by_os_index
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- unsigned
- os_index
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns the object of type HWLOC_OBJ_PU with os_index
.
-
Note: The os_index
field of object should most of the times only be used for pretty-printing purpose. Type HWLOC_OBJ_PU is the only case where os_index
could actually be useful, when manually binding to processors. However, using CPU sets to hide this complexity should often be preferred.
-
-
-
-
-
-
-
-
-
Returns the top-object of the topology-tree.
-
Its type is typically HWLOC_OBJ_MACHINE but it could be different for complex topologies. This function replaces the old deprecated hwloc_get_system_obj().
-
-
-
-
-
-
-
-
- static __hwloc_inline int __hwloc_attribute_pure hwloc_obj_is_in_subtree
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- hwloc_obj_t
- obj ,
-
-
-
-
- hwloc_obj_t
- subtree_root
-
-
-
- )
- [static]
-
-
-
-
-
-
Returns true if _obj_ is inside the subtree beginning with subtree_root
.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00039.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00039.html
deleted file mode 100644
index fbed8e88c3..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00039.html
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Finding Objects Inside a CPU set
-
-
-
-
-
-
-
-
Finding Objects Inside a CPU set
-Functions
-static __hwloc_inline hwloc_obj_t hwloc_get_first_largest_obj_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
- Get the first largest object included in the given cpuset set
.
-HWLOC_DECLSPEC int hwloc_get_largest_objs_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_t *__hwloc_restrict objs, int max)
- Get the set of largest objects covering exactly a given cpuset set
.
-static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)
- Return the next object at depth depth
included in CPU set set
.
-static __hwloc_inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)
- Return the next object of type type
included in CPU set set
.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, unsigned idx)
- Return the index
-th object at depth depth
included in CPU set set
.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, unsigned idx)
- Return the idx
-th object of type type
included in CPU set set
.
-static __hwloc_inline unsigned
-__hwloc_attribute_pure hwloc_get_nbobjs_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth)
- Return the number of objects at depth depth
included in CPU set set
.
-static __hwloc_inline int
-__hwloc_attribute_pure hwloc_get_nbobjs_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type)
- Return the number of objects of type type
included in CPU set set
.
-
-
Function Documentation
-
-
-
-
-
-
Get the first largest object included in the given cpuset set
.
-
Returns: the first object that is included in set
and whose parent is not.
-
This is convenient for iterating over all largest objects within a CPU set by doing a loop getting the first largest object and clearing its CPU set from the remaining CPU set.
-
-
-
-
-
-
-
-
-
Get the set of largest objects covering exactly a given cpuset set
.
-
Returns: the number of objects returned in objs
.
-
-
-
-
-
-
-
-
- static __hwloc_inline unsigned __hwloc_attribute_pure hwloc_get_nbobjs_inside_cpuset_by_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- unsigned
- depth
-
-
-
- )
- [static]
-
-
-
-
-
-
Return the number of objects at depth depth
included in CPU set set
.
-
-
-
-
-
-
-
-
-
Return the number of objects of type type
included in CPU set set
.
-
If no object for that type exists inside CPU set set
, 0 is returned. If there are several levels with objects of that type inside CPU set set
, -1 is returned.
-
-
-
-
-
-
-
-
-
Return the next object at depth depth
included in CPU set set
.
-
If prev
is NULL
, return the first object at depth depth
included in set
. The next invokation should pass the previous return value in prev
so as to obtain the next object in set
.
-
-
-
-
-
-
-
-
-
-
- static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_obj_inside_cpuset_by_depth
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- unsigned
- depth ,
-
-
-
-
- unsigned
- idx
-
-
-
- )
- [static]
-
-
-
-
-
-
Return the index
-th object at depth depth
included in CPU set set
.
-
-
-
-
-
-
-
-
-
Return the idx
-th object of type type
included in CPU set set
.
-
If there are multiple or no depth for given type, return NULL
and let the caller fallback to hwloc_get_obj_inside_cpuset_by_depth() .
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00040.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00040.html
deleted file mode 100644
index 1d7871ec0a..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00040.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Finding a single Object covering at least CPU set
-
-
-
-
-
-
-
-
Finding a single Object covering at least CPU set
-
Function Documentation
-
-
-
-
-
-
Get the child covering at least CPU set set
.
-
Returns: NULL
if no child matches or if set
is empty.
-
-
-
-
-
-
-
-
-
Get the lowest object covering at least CPU set set
.
-
Returns: NULL
if no object matches or if set
is empty.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00041.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00041.html
deleted file mode 100644
index 9d3687bfde..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00041.html
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Finding a set of similar Objects covering at least a CPU set
-
-
-
-
-
-
-
-
Finding a set of similar Objects covering at least a CPU set
-
Function Documentation
-
-
-
-
-
-
Iterate through same-depth objects covering at least CPU set set
.
-
If object prev
is NULL
, return the first object at depth depth
covering at least part of CPU set set
. The next invokation should pass the previous return value in prev
so as to obtain the next object covering at least another part of set
.
-
-
-
-
-
-
-
-
-
Iterate through same-type objects covering at least CPU set set
.
-
If object prev
is NULL
, return the first object of type type
covering at least part of CPU set set
. The next invokation should pass the previous return value in prev
so as to obtain the next object of type type
covering at least another part of set
.
-
If there are no or multiple depths for type type
, NULL
is returned. The caller may fallback to hwloc_get_next_obj_covering_cpuset_by_depth() for each depth.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00042.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00042.html
deleted file mode 100644
index e7dbaea339..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00042.html
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Cache-specific Finding Helpers
-
-
-
-
-
-
-
-
Cache-specific Finding Helpers
-
Function Documentation
-
-
-
-
-
-
Get the first cache covering a cpuset set
.
-
Returns: NULL
if no cache matches
-
-
-
-
-
-
-
-
- static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_shared_cache_covering_obj
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- hwloc_obj_t
- obj
-
-
-
- )
- [static]
-
-
-
-
-
-
Get the first cache shared between an object and somebody else.
-
Returns: NULL
if no cache matches
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00043.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00043.html
deleted file mode 100644
index c8d6b330db..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00043.html
+++ /dev/null
@@ -1,179 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Advanced Traversal Helpers
-
-
-
-
-
-
-
-
Advanced Traversal Helpers
-Functions
-HWLOC_DECLSPEC unsigned hwloc_get_closest_objs (hwloc_topology_t topology, hwloc_obj_t src, hwloc_obj_t *__hwloc_restrict objs, unsigned max)
- Do a depth-first traversal of the topology to find and sort.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_obj_below_by_type (hwloc_topology_t topology, hwloc_obj_type_t type1, unsigned idx1, hwloc_obj_type_t type2, unsigned idx2)
- Find an object below another object, both specified by types and indexes.
-static __hwloc_inline
-hwloc_obj_t
-__hwloc_attribute_pure hwloc_get_obj_below_array_by_type (hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv)
- Find an object below a chain of objects specified by types and indexes.
-
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC unsigned hwloc_get_closest_objs
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_obj_t
- src ,
-
-
-
-
- hwloc_obj_t *__hwloc_restrict
- objs ,
-
-
-
-
- unsigned
- max
-
-
-
- )
-
-
-
-
-
-
-
Do a depth-first traversal of the topology to find and sort.
-
all objects that are at the same depth than src
. Report in objs
up to max
physically closest ones to src
.
-
Returns: the number of objects returned in objs
.
-
-
-
-
-
-
-
-
- static __hwloc_inline hwloc_obj_t __hwloc_attribute_pure hwloc_get_obj_below_array_by_type
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- int
- nr ,
-
-
-
-
- hwloc_obj_type_t *
- typev ,
-
-
-
-
- unsigned *
- idxv
-
-
-
- )
- [static]
-
-
-
-
-
-
Find an object below a chain of objects specified by types and indexes.
-
This is a generalized version of hwloc_get_obj_below_by_type() .
-
Arrays typev
and idxv
must contain nr
types and indexes.
-
Start from the top system object and walk the arrays typev
and idxv
. For each type and index couple in the arrays, look under the previously found object to find the index-th object of the given type. Indexes are specified within the parent, not withing the entire system.
-
For instance, if nr is 3, typev contains NODE, SOCKET and CORE, and idxv contains 0, 1 and 2, return the third core object below the second socket below the first NUMA node.
-
-
-
-
-
-
-
-
-
Find an object below another object, both specified by types and indexes.
-
Start from the top system object and find object of type type1
and index idx1
. Then look below this object and find another object of type type2
and index idx2
. Indexes are specified within the parent, not withing the entire system.
-
For instance, if type1 is SOCKET, idx1 is 2, type2 is CORE and idx2 is 3, return the fourth core object below the third socket.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00044.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00044.html
deleted file mode 100644
index 4b16b6cb25..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00044.html
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Binding Helpers
-
-
-
-
-
-
-
-
Binding Helpers
-
Function Documentation
-
-
-
-
-
-
Distribute n
items over the topology under root
.
-
Array cpuset
will be filled with n
cpusets distributed linearly over the topology under root
.
-
This is typically useful when an application wants to distribute n
threads over a machine, giving each of them as much private cache as possible and keeping them locally in number order.
-
The caller may typically want to also call hwloc_cpuset_singlify() before binding a thread so that it does not move at all.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00045.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00045.html
deleted file mode 100644
index 1682c7f698..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00045.html
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Cpuset Helpers
-
-
-
-
-
-
-
-
Cpuset Helpers
-
Function Documentation
-
-
-
-
-
-
Get allowed CPU set.
-
Returns: the CPU set of allowed logical processors of the system. If the topology is the result of a combination of several systems, NULL is returned.
-
Note: The returned cpuset is not newly allocated and should thus not be changed or freed, hwloc_cpuset_dup must be used to obtain a local copy.
-
-
-
-
-
-
-
-
-
-
-
Get online CPU set.
-
Returns: the CPU set of online logical processors of the system. If the topology is the result of a combination of several systems, NULL is returned.
-
Note: The returned cpuset is not newly allocated and should thus not be changed or freed; hwloc_cpuset_dup must be used to obtain a local copy.
-
-
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00046.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00046.html
deleted file mode 100644
index 628be89d2c..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00046.html
+++ /dev/null
@@ -1,1221 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): The Cpuset API
-
-
-
-
-
-
-
-
The Cpuset API
-Defines
-#define hwloc_cpuset_foreach_begin (cpu, set)
- Loop macro iterating on CPU set set
.
-#define hwloc_cpuset_foreach_end ()
- End of loop. Needs a terminating ';'.
-Typedefs
-typedef struct hwloc_cpuset_s * hwloc_cpuset_t
- Set of CPUs represented as an opaque pointer to an internal bitmask.
-typedef struct hwloc_cpuset_s * hwloc_const_cpuset_t
-Functions
-HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_alloc (void) __hwloc_attribute_malloc
- Allocate a new empty CPU set.
-HWLOC_DECLSPEC void hwloc_cpuset_free (hwloc_cpuset_t set)
- Free CPU set set
.
-HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_dup (hwloc_const_cpuset_t set) __hwloc_attribute_malloc
- Duplicate CPU set set
by allocating a new CPU set and copying set's
contents.
-HWLOC_DECLSPEC void hwloc_cpuset_copy (hwloc_cpuset_t dst, hwloc_const_cpuset_t src)
- Copy the contents of CPU set src
into the already allocated CPU set dst
.
-HWLOC_DECLSPEC int hwloc_cpuset_snprintf (char *__hwloc_restrict buf, size_t buflen, hwloc_const_cpuset_t set)
- Stringify a cpuset.
-HWLOC_DECLSPEC int hwloc_cpuset_asprintf (char **strp, hwloc_const_cpuset_t set)
- Stringify a cpuset into a newly allocated string.
-HWLOC_DECLSPEC int hwloc_cpuset_from_string (hwloc_cpuset_t set, const char *__hwloc_restrict string)
- Parse a cpuset string and stores it in CPU set set
.
-HWLOC_DECLSPEC void hwloc_cpuset_zero (hwloc_cpuset_t set)
- Empty the CPU set set
.
-HWLOC_DECLSPEC void hwloc_cpuset_fill (hwloc_cpuset_t set)
- Fill CPU set set
with all possible CPUs (even if those CPUs don't exist or are otherwise unavailable).
-HWLOC_DECLSPEC void hwloc_cpuset_from_ulong (hwloc_cpuset_t set, unsigned long mask)
- Setup CPU set set
from unsigned long mask
.
-HWLOC_DECLSPEC void hwloc_cpuset_from_ith_ulong (hwloc_cpuset_t set, unsigned i, unsigned long mask)
- Setup CPU set set
from unsigned long mask
used as i
-th subset.
-HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ulong (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Convert the beginning part of CPU set set
into unsigned long mask
.
-HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ith_ulong (hwloc_const_cpuset_t set, unsigned i) __hwloc_attribute_pure
- Convert the i
-th subset of CPU set set
into unsigned long mask.
-HWLOC_DECLSPEC void hwloc_cpuset_cpu (hwloc_cpuset_t set, unsigned cpu)
- Empty the CPU set set
and add CPU cpu
.
-HWLOC_DECLSPEC void hwloc_cpuset_all_but_cpu (hwloc_cpuset_t set, unsigned cpu)
- Empty the CPU set set
and add all but the CPU cpu
.
-HWLOC_DECLSPEC void hwloc_cpuset_set (hwloc_cpuset_t set, unsigned cpu)
- Add CPU cpu
in CPU set set
.
-HWLOC_DECLSPEC void hwloc_cpuset_set_range (hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu)
- Add CPUs from begincpu
to endcpu
in CPU set set
.
-HWLOC_DECLSPEC void hwloc_cpuset_clr (hwloc_cpuset_t set, unsigned cpu)
- Remove CPU cpu
from CPU set set
.
-HWLOC_DECLSPEC void hwloc_cpuset_clr_range (hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu)
- Remove CPUs from begincpu
to endcpu
in CPU set set
.
-HWLOC_DECLSPEC int hwloc_cpuset_isset (hwloc_const_cpuset_t set, unsigned cpu) __hwloc_attribute_pure
- Test whether CPU cpu
is part of set set
.
-HWLOC_DECLSPEC int hwloc_cpuset_iszero (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Test whether set set
is empty.
-HWLOC_DECLSPEC int hwloc_cpuset_isfull (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Test whether set set
is completely full.
-HWLOC_DECLSPEC int hwloc_cpuset_isequal (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure
- Test whether set set1
is equal to set set2
.
-HWLOC_DECLSPEC int hwloc_cpuset_intersects (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure
- Test whether sets set1
and set2
intersects.
-HWLOC_DECLSPEC int hwloc_cpuset_isincluded (hwloc_const_cpuset_t sub_set, hwloc_const_cpuset_t super_set) __hwloc_attribute_pure
- Test whether set sub_set
is part of set super_set
.
-HWLOC_DECLSPEC void hwloc_cpuset_or (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2)
- Or sets set1
and set2
and store the result in set res
.
-HWLOC_DECLSPEC void hwloc_cpuset_and (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2)
- And sets set1
and set2
and store the result in set res
.
-HWLOC_DECLSPEC void hwloc_cpuset_andnot (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2)
- And set set1
and the negation of set2
and store the result in set res
.
-HWLOC_DECLSPEC void hwloc_cpuset_xor (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2)
- Xor sets set1
and set2
and store the result in set res
.
-HWLOC_DECLSPEC void hwloc_cpuset_not (hwloc_cpuset_t res, hwloc_const_cpuset_t set)
- Negate set set
and store the result in set res
.
-HWLOC_DECLSPEC int hwloc_cpuset_first (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Compute the first CPU (least significant bit) in CPU set set
.
-HWLOC_DECLSPEC int hwloc_cpuset_last (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Compute the last CPU (most significant bit) in CPU set set
.
-HWLOC_DECLSPEC int hwloc_cpuset_next (hwloc_const_cpuset_t set, unsigned prev_cpu) __hwloc_attribute_pure
- Compute the next CPU in CPU set set
which is after CPU prev_cpu
.
-HWLOC_DECLSPEC void hwloc_cpuset_singlify (hwloc_cpuset_t set)
- Keep a single CPU among those set in CPU set set
.
-HWLOC_DECLSPEC int hwloc_cpuset_compare_first (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure
- Compare CPU sets set1
and set2
using their lowest index CPU.
-HWLOC_DECLSPEC int hwloc_cpuset_compare (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure
- Compare CPU sets set1
and set2
using their highest index CPU.
-HWLOC_DECLSPEC int hwloc_cpuset_weight (hwloc_const_cpuset_t set) __hwloc_attribute_pure
- Compute the "weight" of CPU set set
(i.e., number of CPUs that are in the set).
-
-
Detailed Description
-
For use in hwloc itself, a hwloc_cpuset_t represents a set of logical processors.
-
Note: cpusets are indexed by OS logical processor number.
-
Define Documentation
-
-
-
-
-
- #define hwloc_cpuset_foreach_begin
- (
- cpu,
-
-
-
-
- set
-
- )
-
-
-
-
-
-
-
Loop macro iterating on CPU set set
.
-
cpu
is the loop variable; it should be an unsigned int. The first iteration will set cpu
to the lowest index CPU in the set. Successive iterations will iterate through, in order, all remaining CPUs that in the set. To be specific: each iteration will return a value for cpu
such that hwloc_cpuset_isset(set, cpu) is true.
-
-
-
-
-
-
-
-
- #define hwloc_cpuset_foreach_end
- (
-
-
- )
-
-
-
-
-
-
-
Typedef Documentation
-
-
-
-
-
-
-
-
Set of CPUs represented as an opaque pointer to an internal bitmask.
-
-
-
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_all_but_cpu
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- cpu
-
-
-
- )
-
-
-
-
-
-
-
Empty the CPU set set
and add all but the CPU cpu
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_alloc
- (
- void
-
- )
-
-
-
-
-
-
-
Allocate a new empty CPU set.
-
Returns: A valid CPU set or NULL.
-
The CPU set should be freed by a corresponding call to hwloc_cpuset_free() .
-
-
-
-
-
-
-
-
-
And sets set1
and set2
and store the result in set res
.
-
-
-
-
-
-
-
-
-
And set set1
and the negation of set2
and store the result in set res
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_cpuset_asprintf
- (
- char **
- strp ,
-
-
-
-
- hwloc_const_cpuset_t
- set
-
-
-
- )
-
-
-
-
-
-
-
Stringify a cpuset into a newly allocated string.
-
Returns: the number of character that were actually written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_clr
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- cpu
-
-
-
- )
-
-
-
-
-
-
-
Remove CPU cpu
from CPU set set
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_clr_range
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- begincpu ,
-
-
-
-
- unsigned
- endcpu
-
-
-
- )
-
-
-
-
-
-
-
Remove CPUs from begincpu
to endcpu
in CPU set set
.
-
-
-
-
-
-
-
-
-
Compare CPU sets set1
and set2
using their highest index CPU.
-
Higher most significant bit is higher. The empty CPU set is considered lower than anything.
-
-
-
-
-
-
-
-
-
Compare CPU sets set1
and set2
using their lowest index CPU.
-
Smaller least significant bit is smaller. The empty CPU set is considered higher than anything.
-
-
-
-
-
-
-
-
-
Copy the contents of CPU set src
into the already allocated CPU set dst
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_cpu
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- cpu
-
-
-
- )
-
-
-
-
-
-
-
Empty the CPU set set
and add CPU cpu
.
-
-
-
-
-
-
-
-
-
Duplicate CPU set set
by allocating a new CPU set and copying set's
contents.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_fill
- (
- hwloc_cpuset_t
- set
- )
-
-
-
-
-
-
-
Fill CPU set set
with all possible CPUs (even if those CPUs don't exist or are otherwise unavailable).
-
-
-
-
-
-
-
-
-
Compute the first CPU (least significant bit) in CPU set set
.
-
Returns: -1 if no CPU is set.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_free
- (
- hwloc_cpuset_t
- set
- )
-
-
-
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_from_ith_ulong
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- i ,
-
-
-
-
- unsigned long
- mask
-
-
-
- )
-
-
-
-
-
-
-
Setup CPU set set
from unsigned long mask
used as i
-th subset.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_cpuset_from_string
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- const char *__hwloc_restrict
- string
-
-
-
- )
-
-
-
-
-
-
-
Parse a cpuset string and stores it in CPU set set
.
-
Must start and end with a digit.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_from_ulong
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned long
- mask
-
-
-
- )
-
-
-
-
-
-
-
Setup CPU set set
from unsigned long mask
.
-
-
-
-
-
-
-
-
-
Test whether sets set1
and set2
intersects.
-
-
-
-
-
-
-
-
-
Test whether set set1
is equal to set set2
.
-
-
-
-
-
-
-
-
-
Test whether set set
is completely full.
-
-
-
-
-
-
-
-
-
Test whether set sub_set
is part of set super_set
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_cpuset_isset
- (
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- unsigned
- cpu
-
-
-
- )
-
-
-
-
-
-
-
Test whether CPU cpu
is part of set set
.
-
-
-
-
-
-
-
-
-
Test whether set set
is empty.
-
-
-
-
-
-
-
-
-
Compute the last CPU (most significant bit) in CPU set set
.
-
Returns: -1 if no CPU is set.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_cpuset_next
- (
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- unsigned
- prev_cpu
-
-
-
- )
-
-
-
-
-
-
-
Compute the next CPU in CPU set set
which is after CPU prev_cpu
.
-
Returns: -1 if no CPU with higher index is set.
-
-
-
-
-
-
-
-
-
Negate set set
and store the result in set res
.
-
-
-
-
-
-
-
-
-
Or sets set1
and set2
and store the result in set res
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_set
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- cpu
-
-
-
- )
-
-
-
-
-
-
-
Add CPU cpu
in CPU set set
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_set_range
- (
- hwloc_cpuset_t
- set ,
-
-
-
-
- unsigned
- begincpu ,
-
-
-
-
- unsigned
- endcpu
-
-
-
- )
-
-
-
-
-
-
-
Add CPUs from begincpu
to endcpu
in CPU set set
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_singlify
- (
- hwloc_cpuset_t
- set
- )
-
-
-
-
-
-
-
Keep a single CPU among those set in CPU set set
.
-
May be useful before binding so that the process does not have a chance of migrating between multiple logical CPUs in the original mask.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_cpuset_snprintf
- (
- char *__hwloc_restrict
- buf ,
-
-
-
-
- size_t
- buflen ,
-
-
-
-
- hwloc_const_cpuset_t
- set
-
-
-
- )
-
-
-
-
-
-
-
Stringify a cpuset.
-
Up to buflen
characters may be written in buffer buf
.
-
Returns: the number of character that were actually written if not truncating, or that would have been written (not including the ending \0).
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ith_ulong
- (
- hwloc_const_cpuset_t
- set ,
-
-
-
-
- unsigned
- i
-
-
-
- )
-
-
-
-
-
-
-
Convert the i
-th subset of CPU set set
into unsigned long mask.
-
-
-
-
-
-
-
-
-
Convert the beginning part of CPU set set
into unsigned long mask
.
-
-
-
-
-
-
-
-
-
Compute the "weight" of CPU set set
(i.e., number of CPUs that are in the set).
-
Returns: the number of CPUs that are in the set.
-
-
-
-
-
-
-
-
-
Xor sets set1
and set2
and store the result in set res
.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC void hwloc_cpuset_zero
- (
- hwloc_cpuset_t
- set
- )
-
-
-
-
-
-
-
Empty the CPU set set
.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00047.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00047.html
deleted file mode 100644
index f6f8b49850..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00047.html
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Helpers for manipulating glibc sched affinity
-
-
-
-
-
-
-
-
Helpers for manipulating glibc sched affinity
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_from_glibc_sched_affinity
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- hwloc_cpuset_t
- hwlocset ,
-
-
-
-
- const cpu_set_t *
- schedset ,
-
-
-
-
- size_t
- schedsetsize
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert glibc sched affinity CPU set schedset
into hwloc CPU set.
-
This function may be used before calling sched_setaffinity or any other function that takes a cpu_set_t as input parameter.
-
schedsetsize
should be sizeof(cpu_set_t) unless schedset
was dynamically allocated with CPU_ALLOC
-
-
-
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_to_glibc_sched_affinity
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- hwloc_const_cpuset_t
- hwlocset ,
-
-
-
-
- cpu_set_t *
- schedset ,
-
-
-
-
- size_t
- schedsetsize
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert hwloc CPU set toposet
into glibc sched affinity CPU set schedset
.
-
This function may be used before calling sched_setaffinity or any other function that takes a cpu_set_t as input parameter.
-
schedsetsize
should be sizeof(cpu_set_t) unless schedset
was dynamically allocated with CPU_ALLOC
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00048.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00048.html
deleted file mode 100644
index 2de68bd56e..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00048.html
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Linux-only helpers
-
-
-
-
-
-
-
-
Linux-only helpers
-
Detailed Description
-
This includes helpers for manipulating linux kernel cpumap files, and hwloc equivalents of the Linux sched_setaffinity and sched_getaffinity system calls.
-
Function Documentation
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_linux_get_tid_cpubind
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- pid_t
- tid ,
-
-
-
-
- hwloc_cpuset_t
- set
-
-
-
- )
-
-
-
-
-
-
-
Get the current binding of thread tid
.
-
The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset.
-
-
-
-
-
-
-
-
- HWLOC_DECLSPEC int hwloc_linux_parse_cpumap_file
- (
- FILE *
- file ,
-
-
-
-
- hwloc_cpuset_t
- set
-
-
-
- )
-
-
-
-
-
-
-
Convert a linux kernel cpumap file file
into hwloc CPU set.
-
Might be used when reading CPU set from sysfs attributes such as topology and caches for processors, or local_cpus for devices.
-
-
-
-
-
-
-
-
-
Bind a thread tid
on cpus given in cpuset set
.
-
The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00049.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00049.html
deleted file mode 100644
index c4e49c527a..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00049.html
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Helpers for manipulating Linux libnuma unsigned long masks
-
-
-
-
-
-
-
-
Helpers for manipulating Linux libnuma unsigned long masks
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_from_linux_libnuma_ulongs
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_cpuset_t
- cpuset ,
-
-
-
-
- const unsigned long *
- mask ,
-
-
-
-
- unsigned long
- maxnode
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert the array of unsigned long mask
into hwloc CPU set.
-
mask
is a array of unsigned long that will be read. maxnode
contains the maximal node number that may be read in mask
.
-
This function may be used after calling get_mempolicy or any other function that takes an array of unsigned long as output parameter (and possibly a maximal node number as input parameter).
-
-
-
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_to_linux_libnuma_ulongs
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_const_cpuset_t
- cpuset ,
-
-
-
-
- unsigned long *
- mask ,
-
-
-
-
- unsigned long *
- maxnode
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert hwloc CPU set cpuset
into the array of unsigned long mask
.
-
mask
is the array of unsigned long that will be filled. maxnode
contains the maximal node number that may be stored in mask
. maxnode
will be set to the maximal node number that was found, plus one.
-
This function may be used before calling set_mempolicy, mbind, migrate_pages or any other function that takes an array of unsigned long and a maximal node number as input parameter.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00050.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00050.html
deleted file mode 100644
index d0d62c2604..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00050.html
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Helpers for manipulating Linux libnuma bitmask
-
-
-
-
-
-
-
-
Helpers for manipulating Linux libnuma bitmask
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_from_linux_libnuma_bitmask
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_cpuset_t
- cpuset ,
-
-
-
-
- const struct bitmask *
- bitmask
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert libnuma bitmask bitmask
into hwloc CPU set cpuset
.
-
This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter.
-
-
-
-
-
-
-
-
- static __hwloc_inline struct bitmask* __hwloc_attribute_malloc hwloc_cpuset_to_linux_libnuma_bitmask
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_const_cpuset_t
- cpuset
-
-
-
- )
- [static, read]
-
-
-
-
-
-
Convert hwloc CPU set cpuset
into the returned libnuma bitmask.
-
The returned bitmask should later be freed with numa_bitmask_free.
-
This function may be used before calling many numa_ functions that use a struct bitmask as an input parameter.
-
Returns: newly allocated struct bitmask.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00051.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00051.html
deleted file mode 100644
index 9b063efe7b..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00051.html
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Helpers for manipulating Linux libnuma nodemask_t
-
-
-
-
-
-
-
-
Helpers for manipulating Linux libnuma nodemask_t
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_from_linux_libnuma_nodemask
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_cpuset_t
- cpuset ,
-
-
-
-
- const nodemask_t *
- nodemask
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert libnuma nodemask nodemask
into hwloc CPU set cpuset
.
-
This function may be used before calling some old libnuma functions that use a nodemask_t as an output parameter.
-
-
-
-
-
-
-
-
- static __hwloc_inline int hwloc_cpuset_to_linux_libnuma_nodemask
- (
- hwloc_topology_t
- topology ,
-
-
-
-
- hwloc_const_cpuset_t
- cpuset ,
-
-
-
-
- nodemask_t *
- nodemask
-
-
-
- )
- [static]
-
-
-
-
-
-
Convert hwloc CPU set cpuset
into libnuma nodemask nodemask
.
-
This function may be used before calling some old libnuma functions that use a nodemask_t as an input parameter.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00052.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00052.html
deleted file mode 100644
index f1e0882616..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00052.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): OpenFabrics-Specific Functions
-
-
-
-
-
-
-
-
OpenFabrics-Specific Functions
-
Function Documentation
-
-
-
-
-
- static __hwloc_inline int hwloc_ibv_get_device_cpuset
- (
- hwloc_topology_t topology
- __hwloc_attribute_unused ,
-
-
-
-
- struct ibv_device *
- ibdev ,
-
-
-
-
- hwloc_cpuset_t
- set
-
-
-
- )
- [static]
-
-
-
-
-
-
Get the CPU set of logical processors that are physically close to device ibdev
.
-
For the given OpenFabrics device ibdev
, read the corresponding kernel-provided cpumap file and return the corresponding CPU set. This function is currently only implemented in a meaningful way for Linux; other systems will simply get a full cpuset.
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/annotated.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/annotated.html
deleted file mode 100644
index 9b7adb9b56..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/annotated.html
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Data Structures
-
-
-
-
-
-
-
-
Data Structures Here are the data structures with brief descriptions:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/classes.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/classes.html
deleted file mode 100644
index 44f319a0aa..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/classes.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Alphabetical List
-
-
-
-
-
-
-
-
Data Structure Index
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/diagram.png b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/diagram.png
deleted file mode 100644
index 0bed1e2afc..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/diagram.png and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.css b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.css
deleted file mode 100644
index ba8c9fbc4a..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.css
+++ /dev/null
@@ -1,108 +0,0 @@
-body {
- font-size: 13px;
-/* margin-top: 0px; */
-}
-
-div.menu {
- text-align: center;
- margin-top: 12px;
- margin-bottom: 3px;
- background: #eeeeff;
- font-variant: small-caps;
-/* position: fixed;*/
- width: 100%;
-}
-div.menu a {
- text-decoration: none;
- color: #0020a0;
-}
-div.menu hr.menu {
- height: 4px;
- background: #fe0;
- border: 0px;
- margin-top: 0px;
- margin-bottom: 0px;
-}
-
-h1 {
- font: bold normal 2.5em sans-serif ;
- margin: 0px;
- color: #0020a0;
-}
-h1.sub {
- font: bold normal 2em sans-serif ;
- text-align: right ;
- color: #0020a0;
-}
-h1 a {
- color: #0020a0;
- text-decoration: none;
-}
-
-h2 {
- font: bold normal small-caps 1.5em sans-serif ;
- color: #0020a0;
- margin-top: 8px;
- margin-bottom: 8px;
-}
-
-h4 {
- font: bold normal small-caps 1em sans-serif ;
- color: #0020a0;
- margin-top: 8px;
- margin-bottom: 4px;
-}
-
-h6.mirrors {
- text-align: right;
- margin: 0px;
- font-size: 10px;
-}
-
-div.section {
- background: #eeeeff;
- padding-left: 2px;
- padding-bottom: 2px;
- margin-top: 12px;
- margin-bottom: 12px;
-}
-
-p {
- margin-top: 8px;
- margin-bottom: 4px;
- margin-left: 6px;
- margin-right: 6px;
-}
-
-hr {
- height: 8px;
- background: #fe0;
- border: 0px;
- margin-top: 6px;
- margin-bottom: 6px;
-}
-
-pre {
- font-size: 12px;
- background: #dddddd;
- padding: 3px;
- padding-left: 0px;
- margin-left: 12px;
-}
-
-a {
- font-weight: bold;
-}
-
-div.publis-desc {
- text-align: right;
- font-style: italic;
- font-size: 12px;
- padding-left: 15%;
-}
-
-p.updated {
- text-align: right;
- font-size: 10px;
- font-style: italic;
-}
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.png b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.png
deleted file mode 100644
index f0a274bbaf..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.png and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/dudley.png b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/dudley.png
deleted file mode 100644
index a9d0c464fc..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/dudley.png and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/emmett.png b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/emmett.png
deleted file mode 100644
index cd01aaedce..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/emmett.png and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/files.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/files.html
deleted file mode 100644
index 7ab1edb41e..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/files.html
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): File Index
-
-
-
-
-
-
-
-
File List Here is a list of all files with brief descriptions:
- cpuset.h [code] The Cpuset API, for use in hwloc itself
- glibc-sched.h [code] Macros to help interaction between hwloc and glibc scheduling routines
- helper.h [code] High-level hwloc traversal helpers
- hwloc.h [code] The hwloc API
- linux-libnuma.h [code] Macros to help interaction between hwloc and Linux libnuma
- linux.h [code] Macros to help interaction between hwloc and Linux
- openfabrics-verbs.h [code] Macros to help interaction between hwloc and OpenFabrics verbs
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions.html
deleted file mode 100644
index 9d0ce4c76d..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Data Fields
-
-
-
-
-
-
-
-Here is a list of all struct and union fields with links to the structures/unions they belong to:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions_vars.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions_vars.html
deleted file mode 100644
index 019a02c1e8..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions_vars.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Data Fields - Variables
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/hagrid.png b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/hagrid.png
deleted file mode 100644
index a972a3c54d..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/hagrid.png and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/index.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/index.html
deleted file mode 100644
index 3f64e34090..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/index.html
+++ /dev/null
@@ -1,374 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Hardware Locality
-
-
-
-
-
-
-
-
Hardware Locality 1.0rc2 Portable abstraction of hierarchical architectures for high-performance computing
-
-
-
-
-
hwloc provides command line tools and a C API to obtain the hierarchical map of key computing elements, such as: NUMA memory nodes, shared caches, processor sockets, processor cores, and processing units (logical processors or "threads"). hwloc also gathers various attributes such as cache and memory information, and is portable across a variety of different operating systems and platforms.
-
hwloc primarily aims at helping high-performance computing (HPC) applications, but is also applicable to any project seeking to exploit code and/or data locality on modern computing platforms.
-
Note that the hwloc project represents the merger of the libtopology project from INRIA and the Portable Linux Processor Affinity (PLPA) sub-project from Open MPI. Both of these prior projects are now deprecated. The first hwloc release is essentially a "re-branding" of the libtopology code base, but with both a few genuinely new features and a few PLPA-like features added in. More new features and more PLPA-like features will be added to hwloc over time. See Switching from PLPA to hwloc for more details about converting your application from PLPA to hwloc.
-
hwloc supports the following operating systems:
-
-
-Linux (including old kernels not having sysfs topology information, with knowledge of cpusets, offline cpus, ScaleMP vSMP, and Kerrighed support)
-
-Solaris
-
-AIX
-
-Darwin / OS X
-
-FreeBSD and its variants, such as kFreeBSD/GNU
-
-OSF/1 (a.k.a., Tru64)
-
-HP-UX
-
-Microsoft Windows
-
-
hwloc only reports the number of processors on unsupported operating systems; no topology information is available.
-
For development and debugging purposes, hwloc also offers the ability to work on "fake" topologies:
-
-
-Symmetrical tree of resources generated from a list of level arities
-
-Remote machine simulation through the gathering of Linux sysfs topology files
-
-
hwloc can display the topology in a human-readable format, either in graphical mode (X11), or by exporting in one of several different formats, including: plain text, PDF, PNG, and FIG (see Examples below). Note that some of the export formats require additional support libraries.
-
hwloc offers a programming interface for manipulating topologies and objects. It also brings a powerful CPU bitmap API that is used to describe topology objects location on physical/logical processors. See the Programming interface below. It may also be used to binding applications onto certain cores or memory nodes. Several utility programs are also provided to ease command-line manipulation of topology objects, binding of processes, and so on.
-
-
-
-
hwloc (http://www.open-mpi.org/projects/hwloc/ ) is available under the BSD license. It is hosted as a sub-project of the overall Open MPI project (http://www.open-mpi.org/ ). Note that hwloc does not require any functionality from Open MPI -- it is a wholly separate (and much smaller!) project and code base. It just happens to be hosted as part of the overall Open MPI project.
-
Nightly development snapshots are available on the web site. Additionally, the code can be directly checked out of Subversion:
-
shell$ svn checkout http:
-shell$ cd hwloc-trunk
-shell$ ./autogen.sh
- Note that GNU Autoconf >=2.63, Automake >=1.10 and Libtool >=2.2.6 are required when building from a Subversion checkout.
-
Installation by itself is the fairly common GNU-based process:
-
shell$ ./configure --prefix=...
-shell$ make
-shell$ make install
- The hwloc command-line tool "lstopo" produces human-readable topology maps, as mentioned above. It can also export maps to the "fig" file format. Support for PDF, Postscript, and PNG exporting is provided if the "Cairo" development package can be found when hwloc is configured and build. Similarly, lstopo's XML support requires the libxml2 development package.
-
-
-
-
On a 4-socket 2-core machine with hyperthreading, the lstopo
tool may show the following outputs:
-
-
-
-
-Machine (16GB)
- Socket #0 + L3 #0 (4096KB)
- L2 #0 (1024KB) + L1 #0 (16KB) + Core #0
- PU #0 (phys=0)
- PU #1 (phys=8)
- L2 #1 (1024KB) + L1 #1 (16KB) + Core #1
- PU #2 (phys=4)
- PU #3 (phys=12)
- Socket #1 + L3 #1 (4096KB)
- L2 #2 (1024KB) + L1 #2 (16KB) + Core #2
- PU #4 (phys=1)
- PU #5 (phys=9)
- L2 #3 (1024KB) + L1 #3 (16KB) + Core #3
- PU #6 (phys=5)
- PU #7 (phys=13)
- Socket #2 + L3 #2 (4096KB)
- L2 #4 (1024KB) + L1 #4 (16KB) + Core #4
- PU #8 (phys=2)
- PU #9 (phys=10)
- L2 #5 (1024KB) + L1 #5 (16KB) + Core #5
- PU #10 (phys=6)
- PU #11 (phys=14)
- Socket #3 + L3 #3 (4096KB)
- L2 #6 (1024KB) + L1 #6 (16KB) + Core #6
- PU #12 (phys=3)
- PU #13 (phys=11)
- L2 #7 (1024KB) + L1 #7 (16KB) + Core #7
- PU #14 (phys=7)
- PU #15 (phys=15)
- On a 4-socket 2-core Opteron NUMA machine, the lstopo
tool may show the following outputs:
-
-
-
-
-Machine (64GB)
- NUMANode #0 (phys=0 8190MB) + Socket #0
- L2 #0 (1024KB) + L1 #0 (64KB) + Core #0 + PU #0 (phys=0)
- L2 #1 (1024KB) + L1 #1 (64KB) + Core #1 + PU #1 (phys=1)
- NUMANode #1 (phys=1 8192MB) + Socket #1
- L2 #2 (1024KB) + L1 #2 (64KB) + Core #2 + PU #2 (phys=2)
- L2 #3 (1024KB) + L1 #3 (64KB) + Core #3 + PU #3 (phys=3)
- NUMANode #2 (phys=2 8192MB) + Socket #2
- L2 #4 (1024KB) + L1 #4 (64KB) + Core #4 + PU #4 (phys=4)
- L2 #5 (1024KB) + L1 #5 (64KB) + Core #5 + PU #5 (phys=5)
- NUMANode #3 (phys=3 8192MB) + Socket #3
- L2 #6 (1024KB) + L1 #6 (64KB) + Core #6 + PU #6 (phys=6)
- L2 #7 (1024KB) + L1 #7 (64KB) + Core #7 + PU #7 (phys=7)
- NUMANode #4 (phys=4 8192MB) + Socket #4
- L2 #8 (1024KB) + L1 #8 (64KB) + Core #8 + PU #8 (phys=8)
- L2 #9 (1024KB) + L1 #9 (64KB) + Core #9 + PU #9 (phys=9)
- NUMANode #5 (phys=5 8192MB) + Socket #5
- L2 #10 (1024KB) + L1 #10 (64KB) + Core #10 + PU #10 (phys=10)
- L2 #11 (1024KB) + L1 #11 (64KB) + Core #11 + PU #11 (phys=11)
- NUMANode #6 (phys=6 8192MB) + Socket #6
- L2 #12 (1024KB) + L1 #12 (64KB) + Core #12 + PU #12 (phys=12)
- L2 #13 (1024KB) + L1 #13 (64KB) + Core #13 + PU #13 (phys=13)
- NUMANode #7 (phys=7 8192MB) + Socket #7
- L2 #14 (1024KB) + L1 #14 (64KB) + Core #14 + PU #14 (phys=14)
- L2 #15 (1024KB) + L1 #15 (64KB) + Core #15 + PU #15 (phys=15)
- On a 2-socket quad-core Xeon (pre-Nehalem, with 2 dual-core dies into each socket):
-
-
-
-
-Machine (16GB)
- Socket #0
- L2 #0 (4096KB)
- L1 #0 (32KB) + Core #0 + PU #0 (phys=0)
- L1 #1 (32KB) + Core #1 + PU #1 (phys=4)
- L2 #1 (4096KB)
- L1 #2 (32KB) + Core #2 + PU #2 (phys=2)
- L1 #3 (32KB) + Core #3 + PU #3 (phys=6)
- Socket #1
- L2 #2 (4096KB)
- L1 #4 (32KB) + Core #4 + PU #4 (phys=1)
- L1 #5 (32KB) + Core #5 + PU #5 (phys=5)
- L2 #3 (4096KB)
- L1 #6 (32KB) + Core #6 + PU #6 (phys=3)
- L1 #7 (32KB) + Core #7 + PU #7 (phys=7)
-
-
-
-
The basic interface is available in hwloc.h . It essentially offers low-level routines for advanced programmers that want to manually manipulate objects and follow links between them. Developers should also look at hwloc/helper.h , which provides good higher-level topology traversal examples.
-
Each object contains a cpuset describing the list of processing units that it contains. These cpusets may be used for Binding . hwloc offers an extensive cpuset manipulation interface in hwloc/cpuset.h .
-
Moreover, hwloc also comes with additional helpers for interoperability with several commonly used environments. See the Interoperability with other software section for details.
-
To precisely define the vocabulary used by hwloc, a Terms and Definitions section is available and should probably be read first.
-
Further documentation is available in a full set of HTML pages, man pages, and self-contained PDF files (formatted for both both US letter and A4 formats) in the source tarball in doc/doxygen-doc/. If you are building from a Subversion checkout, you will need to have Doxygen and pdflatex installed -- the documentation will be built during the normal "make" process. The documentation is installed during "make
-install" to $prefix/share/doc/hwloc/ and your systems default man page tree (under $prefix, of course).
-
The following section presents an example of API usage.
-
-
The following small C example (named ``hwloc-hello.c'') prints the topology of the machine and bring the process to the first logical processor of the second core of the machine.
-
-
-
-
-
-
-
-
-#include <hwloc.h>
-
-static void print_children(hwloc_topology_t topology, hwloc_obj_t obj,
- int depth)
-{
- char string [128];
- unsigned i;
-
- hwloc_obj_snprintf (string , sizeof (string ), topology, obj, "#" , 0);
- printf("%*s%s\n" , 2*depth, "" , string );
- for (i = 0; i < obj->arity ; i++) {
- print_children(topology, obj->children [i], depth + 1);
- }
-}
-
-int main(void )
-{
- int depth;
- unsigned i;
- unsigned long size;
- int levels;
- char string [128];
- int topodepth;
- hwloc_topology_t topology;
- hwloc_cpuset_t cpuset;
- hwloc_obj_t obj;
-
-
- hwloc_topology_init (&topology);
-
-
-
-
-
-
-
-
-
- hwloc_topology_load (topology);
-
-
-
- topodepth = hwloc_topology_get_depth (topology);
-
-
-
-
-
-
- for (depth = 0; depth < topodepth; depth++) {
- printf("*** Objects at level %d\n" , depth);
- for (i = 0; i < hwloc_get_nbobjs_by_depth (topology, depth);
- i++) {
- hwloc_obj_snprintf (string , sizeof (string ), topology,
- hwloc_get_obj_by_depth (topology, depth, i),
- "#" , 0);
- printf("Index %u: %s\n" , i, string );
- }
- }
-
-
-
-
-
- printf("*** Printing overall tree\n" );
- print_children(topology, hwloc_get_root_obj (topology), 0);
-
-
-
-
-
- depth = hwloc_get_type_depth (topology, HWLOC_OBJ_SOCKET );
- if (depth == HWLOC_TYPE_DEPTH_UNKNOWN ) {
- printf("*** The number of sockets is unknown\n" );
- } else {
- printf("*** %u socket(s)\n" ,
- hwloc_get_nbobjs_by_depth (topology, depth));
- }
-
-
-
-
-
-
- levels = 0;
- size = 0;
- for (obj = hwloc_get_obj_by_type (topology, HWLOC_OBJ_PU , 0);
- obj;
- obj = obj->parent )
- if (obj->type == HWLOC_OBJ_CACHE ) {
- levels++;
- size += obj->attr ->cache .size ;
- }
- printf("*** Logical processor 0 has %u caches totaling %luKB\n" ,
- levels, size / 1024);
-
-
-
-
-
-
-
-
- depth = hwloc_get_type_or_below_depth (topology, HWLOC_OBJ_CORE );
-
-
- obj = hwloc_get_obj_by_depth (topology, depth,
- hwloc_get_nbobjs_by_depth (topology, depth) - 1);
- if (obj) {
-
- cpuset = hwloc_cpuset_dup (obj->cpuset );
-
-
-
- hwloc_cpuset_singlify (cpuset);
-
-
- if (hwloc_set_cpubind (topology, cpuset, 0)) {
- char *str;
- hwloc_cpuset_asprintf (&str, obj->cpuset );
- printf("Couldn't bind to cpuset %s\n" , str);
- free(str);
- }
-
-
- hwloc_cpuset_free (cpuset);
- }
-
-
- hwloc_topology_destroy (topology);
-
- return 0;
-}
- hwloc provides a pkg-config
executable to obtain relevant compiler and linker flags. For example, it can be used thusly to compile applications that utilize the hwloc library (assuming GNU Make):
-
-CFLAGS += $(pkg-config --cflags hwloc)
-LDLIBS += $(pkg-config --libs hwloc)
-cc hwloc-hello.c $(CFLAGS) -o hwloc-hello $(LDLIBS)
- On a machine with 4GB of RAM and 2 processor sockets -- each socket of which has two processing cores -- the output from running hwloc-hello
could be something like the following:
-
-shell$ ./hwloc-hello
-*** Objects at level 0
-Index 0: Machine(3938MB)
-*** Objects at level 1
-Index 0: Socket#0
-Index 1: Socket#1
-*** Objects at level 2
-Index 0: Core#0
-Index 1: Core#1
-Index 2: Core#3
-Index 3: Core#2
-*** Objects at level 3
-Index 0: PU#0
-Index 1: PU#1
-Index 2: PU#2
-Index 3: PU#3
-*** Printing overall tree
-Machine(3938MB)
- Socket#0
- Core#0
- PU#0
- Core#1
- PU#1
- Socket#1
- Core#3
- PU#2
- Core#2
- PU#3
-*** 2 socket(s)
-shell$
-
-
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/modules.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/modules.html
deleted file mode 100644
index 6a3cd94b4f..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/modules.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Module Index
-
-
-
-
-
-
-
-
Modules Here is a list of all modules:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/pages.html b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/pages.html
deleted file mode 100644
index fd2737d906..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/pages.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-Hardware Locality (hwloc): Page Index
-
-
-
-
-
-
-
-
Related Pages Here is a list of all related documentation pages:
-
-Generated by
-
- 1.6.2
-
-
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_b.gif b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_b.gif
deleted file mode 100644
index 0d623483ff..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_b.gif and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_l.gif b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_l.gif
deleted file mode 100644
index 9b1e6337c9..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_l.gif and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_r.gif b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_r.gif
deleted file mode 100644
index ce9dd9f533..0000000000
Binary files a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_r.gif and /dev/null differ
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tabs.css b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tabs.css
deleted file mode 100644
index a444163416..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tabs.css
+++ /dev/null
@@ -1,105 +0,0 @@
-/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
-
-DIV.tabs
-{
- float : left;
- width : 100%;
- background : url("tab_b.gif") repeat-x bottom;
- margin-bottom : 4px;
-}
-
-DIV.tabs UL
-{
- margin : 0px;
- padding-left : 10px;
- list-style : none;
-}
-
-DIV.tabs LI, DIV.tabs FORM
-{
- display : inline;
- margin : 0px;
- padding : 0px;
-}
-
-DIV.tabs FORM
-{
- float : right;
-}
-
-DIV.tabs A
-{
- float : left;
- background : url("tab_r.gif") no-repeat right top;
- border-bottom : 1px solid #84B0C7;
- font-size : 80%;
- font-weight : bold;
- text-decoration : none;
-}
-
-DIV.tabs A:hover
-{
- background-position: 100% -150px;
-}
-
-DIV.tabs A:link, DIV.tabs A:visited,
-DIV.tabs A:active, DIV.tabs A:hover
-{
- color: #1A419D;
-}
-
-DIV.tabs SPAN
-{
- float : left;
- display : block;
- background : url("tab_l.gif") no-repeat left top;
- padding : 5px 9px;
- white-space : nowrap;
-}
-
-DIV.tabs #MSearchBox
-{
- float : right;
- display : inline;
- font-size : 1em;
-}
-
-DIV.tabs TD
-{
- font-size : 80%;
- font-weight : bold;
- text-decoration : none;
-}
-
-
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-DIV.tabs SPAN {float : none;}
-/* End IE5-Mac hack */
-
-DIV.tabs A:hover SPAN
-{
- background-position: 0% -150px;
-}
-
-DIV.tabs LI.current A
-{
- background-position: 100% -150px;
- border-width : 0px;
-}
-
-DIV.tabs LI.current SPAN
-{
- background-position: 0% -150px;
- padding-bottom : 6px;
-}
-
-DIV.navpath
-{
- background : none;
- border : none;
- border-bottom : 1px solid #84B0C7;
- text-align : center;
- margin : 2px;
- padding : 2px;
-}
diff --git a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/hwloc-a4.pdf b/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/hwloc-a4.pdf
deleted file mode 100644
index 68cc765657..0000000000
--- a/opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/hwloc-a4.pdf
+++ /dev/null
@@ -1,23570 +0,0 @@
-%PDF-1.4
-5 0 obj
-<< /S /GoTo /D (chapter.1) >>
-endobj
-8 0 obj
-(\376\377\000H\000a\000r\000d\000w\000a\000r\000e\000\040\000L\000o\000c\000a\000l\000i\000t\000y)
-endobj
-9 0 obj
-<< /S /GoTo /D (section.1.1) >>
-endobj
-12 0 obj
-(\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n)
-endobj
-13 0 obj
-<< /S /GoTo /D (section.1.2) >>
-endobj
-16 0 obj
-(\376\377\000I\000n\000s\000t\000a\000l\000l\000a\000t\000i\000o\000n)
-endobj
-17 0 obj
-<< /S /GoTo /D (section.1.3) >>
-endobj
-20 0 obj
-(\376\377\000E\000x\000a\000m\000p\000l\000e\000s)
-endobj
-21 0 obj
-<< /S /GoTo /D (section.1.4) >>
-endobj
-24 0 obj
-(\376\377\000P\000r\000o\000g\000r\000a\000m\000m\000i\000n\000g\000\040\000i\000n\000t\000e\000r\000f\000a\000c\000e)
-endobj
-25 0 obj
-<< /S /GoTo /D (section.1.5) >>
-endobj
-28 0 obj
-(\376\377\000A\000P\000I\000\040\000e\000x\000a\000m\000p\000l\000e)
-endobj
-29 0 obj
-<< /S /GoTo /D (section.1.6) >>
-endobj
-32 0 obj
-(\376\377\000Q\000u\000e\000s\000t\000i\000o\000n\000s\000\040\000a\000n\000d\000\040\000b\000u\000g\000s)
-endobj
-33 0 obj
-<< /S /GoTo /D (section.1.7) >>
-endobj
-36 0 obj
-(\376\377\000H\000i\000s\000t\000o\000r\000y\000\040\000/\000\040\000c\000r\000e\000d\000i\000t\000s)
-endobj
-37 0 obj
-<< /S /GoTo /D (chapter.2) >>
-endobj
-40 0 obj
-(\376\377\000T\000e\000r\000m\000s\000\040\000a\000n\000d\000\040\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000s)
-endobj
-41 0 obj
-<< /S /GoTo /D (chapter.3) >>
-endobj
-44 0 obj
-(\376\377\000C\000o\000m\000m\000a\000n\000d\000-\000l\000i\000n\000e\000\040\000t\000o\000o\000l\000s)
-endobj
-45 0 obj
-<< /S /GoTo /D (section.3.1) >>
-endobj
-48 0 obj
-(\376\377\000l\000s\000t\000o\000p\000o)
-endobj
-49 0 obj
-<< /S /GoTo /D (section.3.2) >>
-endobj
-52 0 obj
-(\376\377\000h\000w\000l\000o\000c\000-\000b\000i\000n\000d)
-endobj
-53 0 obj
-<< /S /GoTo /D (section.3.3) >>
-endobj
-56 0 obj
-(\376\377\000h\000w\000l\000o\000c\000-\000c\000a\000l\000c)
-endobj
-57 0 obj
-<< /S /GoTo /D (section.3.4) >>
-endobj
-60 0 obj
-(\376\377\000h\000w\000l\000o\000c\000-\000d\000i\000s\000t\000r\000i\000b)
-endobj
-61 0 obj
-<< /S /GoTo /D (chapter.4) >>
-endobj
-64 0 obj
-(\376\377\000E\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000\040\000v\000a\000r\000i\000a\000b\000l\000e\000s)
-endobj
-65 0 obj
-<< /S /GoTo /D (chapter.5) >>
-endobj
-68 0 obj
-(\376\377\000I\000n\000t\000e\000r\000o\000p\000e\000r\000a\000b\000i\000l\000i\000t\000y\000\040\000w\000i\000t\000h\000\040\000o\000t\000h\000e\000r\000\040\000s\000o\000f\000t\000w\000a\000r\000e)
-endobj
-69 0 obj
-<< /S /GoTo /D (chapter.6) >>
-endobj
-72 0 obj
-(\376\377\000T\000h\000r\000e\000a\000d\000\040\000s\000a\000f\000e\000t\000y)
-endobj
-73 0 obj
-<< /S /GoTo /D (chapter.7) >>
-endobj
-76 0 obj
-(\376\377\000E\000m\000b\000e\000d\000d\000i\000n\000g\000\040\000h\000w\000l\000o\000c\000\040\000i\000n\000\040\000o\000t\000h\000e\000r\000\040\000s\000o\000f\000t\000w\000a\000r\000e)
-endobj
-77 0 obj
-<< /S /GoTo /D (section.7.1) >>
-endobj
-80 0 obj
-(\376\377\000U\000s\000i\000n\000g\000\040\000h\000w\000l\000o\000c\000'\000s\000\040\000m\0004\000\040\000e\000m\000b\000e\000d\000d\000i\000n\000g\000\040\000c\000a\000p\000a\000b\000i\000l\000i\000t\000i\000e\000s)
-endobj
-81 0 obj
-<< /S /GoTo /D (section.7.2) >>
-endobj
-84 0 obj
-(\376\377\000E\000x\000a\000m\000p\000l\000e\000\040\000e\000m\000b\000e\000d\000d\000i\000n\000g\000\040\000h\000w\000l\000o\000c)
-endobj
-85 0 obj
-<< /S /GoTo /D (chapter.8) >>
-endobj
-88 0 obj
-(\376\377\000S\000w\000i\000t\000c\000h\000i\000n\000g\000\040\000f\000r\000o\000m\000\040\000P\000L\000P\000A\000\040\000t\000o\000\040\000h\000w\000l\000o\000c)
-endobj
-89 0 obj
-<< /S /GoTo /D (section.8.1) >>
-endobj
-92 0 obj
-(\376\377\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000c\000o\000n\000t\000e\000x\000t\000\040\000v\000s\000.\000\040\000c\000a\000c\000h\000i\000n\000g)
-endobj
-93 0 obj
-<< /S /GoTo /D (section.8.2) >>
-endobj
-96 0 obj
-(\376\377\000H\000i\000e\000r\000a\000r\000c\000h\000y\000\040\000v\000s\000.\000\040\000C\000o\000r\000e\000@\000S\000o\000c\000k\000e\000t)
-endobj
-97 0 obj
-<< /S /GoTo /D (section.8.3) >>
-endobj
-100 0 obj
-(\376\377\000L\000o\000g\000i\000c\000a\000l\000\040\000v\000s\000.\000\040\000P\000h\000y\000s\000i\000c\000a\000l\000/\000O\000S\000\040\000i\000n\000d\000e\000x\000e\000s)
-endobj
-101 0 obj
-<< /S /GoTo /D (section.8.4) >>
-endobj
-104 0 obj
-(\376\377\000C\000o\000u\000n\000t\000i\000n\000g\000\040\000s\000p\000e\000c\000i\000f\000i\000c\000a\000t\000i\000o\000n)
-endobj
-105 0 obj
-<< /S /GoTo /D (chapter.9) >>
-endobj
-108 0 obj
-(\376\377\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x)
-endobj
-109 0 obj
-<< /S /GoTo /D (section.9.1) >>
-endobj
-112 0 obj
-(\376\377\000M\000o\000d\000u\000l\000e\000s)
-endobj
-113 0 obj
-<< /S /GoTo /D (chapter.10) >>
-endobj
-116 0 obj
-(\376\377\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000I\000n\000d\000e\000x)
-endobj
-117 0 obj
-<< /S /GoTo /D (section.10.1) >>
-endobj
-120 0 obj
-(\376\377\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000s)
-endobj
-121 0 obj
-<< /S /GoTo /D (chapter.11) >>
-endobj
-124 0 obj
-(\376\377\000M\000o\000d\000u\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-125 0 obj
-<< /S /GoTo /D (section.11.1) >>
-endobj
-128 0 obj
-(\376\377\000A\000P\000I\000\040\000v\000e\000r\000s\000i\000o\000n)
-endobj
-129 0 obj
-<< /S /GoTo /D (subsection.11.1.1) >>
-endobj
-132 0 obj
-(\376\377\000D\000e\000f\000i\000n\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-133 0 obj
-<< /S /GoTo /D (subsubsection.11.1.1.1) >>
-endobj
-136 0 obj
-(\376\377\000H\000W\000L\000O\000C\000\137\000A\000P\000I\000\137\000V\000E\000R\000S\000I\000O\000N)
-endobj
-137 0 obj
-<< /S /GoTo /D (section.11.2) >>
-endobj
-140 0 obj
-(\376\377\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000c\000o\000n\000t\000e\000x\000t)
-endobj
-141 0 obj
-<< /S /GoTo /D (subsection.11.2.1) >>
-endobj
-144 0 obj
-(\376\377\000T\000y\000p\000e\000d\000e\000f\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-145 0 obj
-<< /S /GoTo /D (subsubsection.11.2.1.1) >>
-endobj
-148 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000t)
-endobj
-149 0 obj
-<< /S /GoTo /D (section.11.3) >>
-endobj
-152 0 obj
-(\376\377\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000O\000b\000j\000e\000c\000t\000\040\000T\000y\000p\000e\000s)
-endobj
-153 0 obj
-<< /S /GoTo /D (subsection.11.3.1) >>
-endobj
-156 0 obj
-(\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-157 0 obj
-<< /S /GoTo /D (subsubsection.11.3.1.1) >>
-endobj
-160 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000o\000m\000p\000a\000r\000e\000\137\000t\000y\000p\000e\000s\000\137\000e)
-endobj
-161 0 obj
-<< /S /GoTo /D (subsubsection.11.3.1.2) >>
-endobj
-164 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000t\000y\000p\000e\000\137\000t)
-endobj
-165 0 obj
-<< /S /GoTo /D (subsection.11.3.2) >>
-endobj
-168 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-169 0 obj
-<< /S /GoTo /D (subsubsection.11.3.2.1) >>
-endobj
-172 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000o\000m\000p\000a\000r\000e\000\137\000t\000y\000p\000e\000s)
-endobj
-173 0 obj
-<< /S /GoTo /D (section.11.4) >>
-endobj
-176 0 obj
-(\376\377\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000O\000b\000j\000e\000c\000t\000s)
-endobj
-177 0 obj
-<< /S /GoTo /D (subsection.11.4.1) >>
-endobj
-180 0 obj
-(\376\377\000T\000y\000p\000e\000d\000e\000f\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-181 0 obj
-<< /S /GoTo /D (subsubsection.11.4.1.1) >>
-endobj
-184 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000t)
-endobj
-185 0 obj
-<< /S /GoTo /D (section.11.5) >>
-endobj
-188 0 obj
-(\376\377\000C\000r\000e\000a\000t\000e\000\040\000a\000n\000d\000\040\000D\000e\000s\000t\000r\000o\000y\000\040\000T\000o\000p\000o\000l\000o\000g\000i\000e\000s)
-endobj
-189 0 obj
-<< /S /GoTo /D (subsection.11.5.1) >>
-endobj
-192 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-193 0 obj
-<< /S /GoTo /D (subsubsection.11.5.1.1) >>
-endobj
-196 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000c\000h\000e\000c\000k)
-endobj
-197 0 obj
-<< /S /GoTo /D (subsubsection.11.5.1.2) >>
-endobj
-200 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000d\000e\000s\000t\000r\000o\000y)
-endobj
-201 0 obj
-<< /S /GoTo /D (subsubsection.11.5.1.3) >>
-endobj
-204 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000n\000i\000t)
-endobj
-205 0 obj
-<< /S /GoTo /D (subsubsection.11.5.1.4) >>
-endobj
-208 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000l\000o\000a\000d)
-endobj
-209 0 obj
-<< /S /GoTo /D (section.11.6) >>
-endobj
-212 0 obj
-(\376\377\000C\000o\000n\000f\000i\000g\000u\000r\000e\000\040\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000D\000e\000t\000e\000c\000t\000i\000o\000n)
-endobj
-213 0 obj
-<< /S /GoTo /D (subsection.11.6.1) >>
-endobj
-216 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-217 0 obj
-<< /S /GoTo /D (subsection.11.6.2) >>
-endobj
-220 0 obj
-(\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-221 0 obj
-<< /S /GoTo /D (subsubsection.11.6.2.1) >>
-endobj
-224 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000f\000l\000a\000g\000s\000\137\000e)
-endobj
-225 0 obj
-<< /S /GoTo /D (subsection.11.6.3) >>
-endobj
-228 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-229 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.1) >>
-endobj
-232 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000s\000u\000p\000p\000o\000r\000t)
-endobj
-233 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.2) >>
-endobj
-236 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000g\000n\000o\000r\000e\000\137\000a\000l\000l\000\137\000k\000e\000e\000p\000\137\000s\000t\000r\000u\000c\000t\000u\000r\000e)
-endobj
-237 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.3) >>
-endobj
-240 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000g\000n\000o\000r\000e\000\137\000t\000y\000p\000e)
-endobj
-241 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.4) >>
-endobj
-244 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000g\000n\000o\000r\000e\000\137\000t\000y\000p\000e\000\137\000k\000e\000e\000p\000\137\000s\000t\000r\000u\000c\000t\000u\000r\000e)
-endobj
-245 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.5) >>
-endobj
-248 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000e\000t\000\137\000f\000l\000a\000g\000s)
-endobj
-249 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.6) >>
-endobj
-252 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000e\000t\000\137\000f\000s\000r\000o\000o\000t)
-endobj
-253 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.7) >>
-endobj
-256 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000e\000t\000\137\000p\000i\000d)
-endobj
-257 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.8) >>
-endobj
-260 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000e\000t\000\137\000s\000y\000n\000t\000h\000e\000t\000i\000c)
-endobj
-261 0 obj
-<< /S /GoTo /D (subsubsection.11.6.3.9) >>
-endobj
-264 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000e\000t\000\137\000x\000m\000l)
-endobj
-265 0 obj
-<< /S /GoTo /D (section.11.7) >>
-endobj
-268 0 obj
-(\376\377\000T\000i\000n\000k\000e\000r\000\040\000w\000i\000t\000h\000\040\000t\000o\000p\000o\000l\000o\000g\000i\000e\000s\000.)
-endobj
-269 0 obj
-<< /S /GoTo /D (subsection.11.7.1) >>
-endobj
-272 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-273 0 obj
-<< /S /GoTo /D (subsubsection.11.7.1.1) >>
-endobj
-276 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000e\000x\000p\000o\000r\000t\000\137\000x\000m\000l)
-endobj
-277 0 obj
-<< /S /GoTo /D (subsubsection.11.7.1.2) >>
-endobj
-280 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000n\000s\000e\000r\000t\000\137\000m\000i\000s\000c\000\137\000o\000b\000j\000e\000c\000t\000\137\000b\000y\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-281 0 obj
-<< /S /GoTo /D (subsubsection.11.7.1.3) >>
-endobj
-284 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000n\000s\000e\000r\000t\000\137\000m\000i\000s\000c\000\137\000o\000b\000j\000e\000c\000t\000\137\000b\000y\000\137\000p\000a\000r\000e\000n\000t)
-endobj
-285 0 obj
-<< /S /GoTo /D (section.11.8) >>
-endobj
-288 0 obj
-(\376\377\000G\000e\000t\000\040\000s\000o\000m\000e\000\040\000T\000o\000p\000o\000l\000o\000g\000y\000\040\000I\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n)
-endobj
-289 0 obj
-<< /S /GoTo /D (subsection.11.8.1) >>
-endobj
-292 0 obj
-(\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-293 0 obj
-<< /S /GoTo /D (subsubsection.11.8.1.1) >>
-endobj
-296 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000t\000y\000p\000e\000\137\000d\000e\000p\000t\000h\000\137\000e)
-endobj
-297 0 obj
-<< /S /GoTo /D (subsection.11.8.2) >>
-endobj
-300 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-301 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.1) >>
-endobj
-304 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000d\000e\000p\000t\000h\000\137\000t\000y\000p\000e)
-endobj
-305 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.2) >>
-endobj
-308 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000b\000o\000b\000j\000s\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-309 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.3) >>
-endobj
-312 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000b\000o\000b\000j\000s\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-313 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.4) >>
-endobj
-316 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000t\000y\000p\000e\000\137\000d\000e\000p\000t\000h)
-endobj
-317 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.5) >>
-endobj
-320 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000d\000e\000p\000t\000h)
-endobj
-321 0 obj
-<< /S /GoTo /D (subsubsection.11.8.2.6) >>
-endobj
-324 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000i\000s\000\137\000t\000h\000i\000s\000s\000y\000s\000t\000e\000m)
-endobj
-325 0 obj
-<< /S /GoTo /D (section.11.9) >>
-endobj
-328 0 obj
-(\376\377\000R\000e\000t\000r\000i\000e\000v\000e\000\040\000O\000b\000j\000e\000c\000t\000s)
-endobj
-329 0 obj
-<< /S /GoTo /D (subsection.11.9.1) >>
-endobj
-332 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-333 0 obj
-<< /S /GoTo /D (subsubsection.11.9.1.1) >>
-endobj
-336 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-337 0 obj
-<< /S /GoTo /D (subsubsection.11.9.1.2) >>
-endobj
-340 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-341 0 obj
-<< /S /GoTo /D (section.11.10) >>
-endobj
-344 0 obj
-(\376\377\000O\000b\000j\000e\000c\000t\000/\000S\000t\000r\000i\000n\000g\000\040\000C\000o\000n\000v\000e\000r\000s\000i\000o\000n)
-endobj
-345 0 obj
-<< /S /GoTo /D (subsection.11.10.1) >>
-endobj
-348 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-349 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.1) >>
-endobj
-352 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000a\000t\000t\000r\000\137\000s\000n\000p\000r\000i\000n\000t\000f)
-endobj
-353 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.2) >>
-endobj
-356 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000c\000p\000u\000s\000e\000t\000\137\000s\000n\000p\000r\000i\000n\000t\000f)
-endobj
-357 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.3) >>
-endobj
-360 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000s\000n\000p\000r\000i\000n\000t\000f)
-endobj
-361 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.4) >>
-endobj
-364 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000t\000y\000p\000e\000\137\000o\000f\000\137\000s\000t\000r\000i\000n\000g)
-endobj
-365 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.5) >>
-endobj
-368 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000t\000y\000p\000e\000\137\000s\000n\000p\000r\000i\000n\000t\000f)
-endobj
-369 0 obj
-<< /S /GoTo /D (subsubsection.11.10.1.6) >>
-endobj
-372 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000t\000y\000p\000e\000\137\000s\000t\000r\000i\000n\000g)
-endobj
-373 0 obj
-<< /S /GoTo /D (section.11.11) >>
-endobj
-376 0 obj
-(\376\377\000B\000i\000n\000d\000i\000n\000g)
-endobj
-377 0 obj
-<< /S /GoTo /D (subsection.11.11.1) >>
-endobj
-380 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-381 0 obj
-<< /S /GoTo /D (subsection.11.11.2) >>
-endobj
-384 0 obj
-(\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000\040\000T\000y\000p\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-385 0 obj
-<< /S /GoTo /D (subsubsection.11.11.2.1) >>
-endobj
-388 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d\000\137\000p\000o\000l\000i\000c\000y\000\137\000t)
-endobj
-389 0 obj
-<< /S /GoTo /D (subsection.11.11.3) >>
-endobj
-392 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-393 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.1) >>
-endobj
-396 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-397 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.2) >>
-endobj
-400 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-401 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.3) >>
-endobj
-404 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-405 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.4) >>
-endobj
-408 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000s\000e\000t\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-409 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.5) >>
-endobj
-412 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000s\000e\000t\000\137\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-413 0 obj
-<< /S /GoTo /D (subsubsection.11.11.3.6) >>
-endobj
-416 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000s\000e\000t\000\137\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-417 0 obj
-<< /S /GoTo /D (section.11.12) >>
-endobj
-420 0 obj
-(\376\377\000O\000b\000j\000e\000c\000t\000\040\000T\000y\000p\000e\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-421 0 obj
-<< /S /GoTo /D (subsection.11.12.1) >>
-endobj
-424 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-425 0 obj
-<< /S /GoTo /D (subsubsection.11.12.1.1) >>
-endobj
-428 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000t\000y\000p\000e\000\137\000o\000r\000\137\000a\000b\000o\000v\000e\000\137\000d\000e\000p\000t\000h)
-endobj
-429 0 obj
-<< /S /GoTo /D (subsubsection.11.12.1.2) >>
-endobj
-432 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000t\000y\000p\000e\000\137\000o\000r\000\137\000b\000e\000l\000o\000w\000\137\000d\000e\000p\000t\000h)
-endobj
-433 0 obj
-<< /S /GoTo /D (section.11.13) >>
-endobj
-436 0 obj
-(\376\377\000B\000a\000s\000i\000c\000\040\000T\000r\000a\000v\000e\000r\000s\000a\000l\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-437 0 obj
-<< /S /GoTo /D (subsection.11.13.1) >>
-endobj
-440 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-441 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.1) >>
-endobj
-444 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000a\000n\000c\000e\000s\000t\000o\000r\000\137\000o\000b\000j\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-445 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.2) >>
-endobj
-448 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000a\000n\000c\000e\000s\000t\000o\000r\000\137\000o\000b\000j\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-449 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.3) >>
-endobj
-452 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000c\000o\000m\000m\000o\000n\000\137\000a\000n\000c\000e\000s\000t\000o\000r\000\137\000o\000b\000j)
-endobj
-453 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.4) >>
-endobj
-456 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000c\000h\000i\000l\000d)
-endobj
-457 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.5) >>
-endobj
-460 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-461 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.6) >>
-endobj
-464 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-465 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.7) >>
-endobj
-468 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000p\000u\000\137\000o\000b\000j\000\137\000b\000y\000\137\000o\000s\000\137\000i\000n\000d\000e\000x)
-endobj
-469 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.8) >>
-endobj
-472 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000r\000o\000o\000t\000\137\000o\000b\000j)
-endobj
-473 0 obj
-<< /S /GoTo /D (subsubsection.11.13.1.9) >>
-endobj
-476 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000i\000s\000\137\000i\000n\000\137\000s\000u\000b\000t\000r\000e\000e)
-endobj
-477 0 obj
-<< /S /GoTo /D (section.11.14) >>
-endobj
-480 0 obj
-(\376\377\000F\000i\000n\000d\000i\000n\000g\000\040\000O\000b\000j\000e\000c\000t\000s\000\040\000I\000n\000s\000i\000d\000e\000\040\000a\000\040\000C\000P\000U\000\040\000s\000e\000t)
-endobj
-481 0 obj
-<< /S /GoTo /D (subsection.11.14.1) >>
-endobj
-484 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-485 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.1) >>
-endobj
-488 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000f\000i\000r\000s\000t\000\137\000l\000a\000r\000g\000e\000s\000t\000\137\000o\000b\000j\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-489 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.2) >>
-endobj
-492 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000l\000a\000r\000g\000e\000s\000t\000\137\000o\000b\000j\000s\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-493 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.3) >>
-endobj
-496 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000b\000o\000b\000j\000s\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-497 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.4) >>
-endobj
-500 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000b\000o\000b\000j\000s\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-501 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.5) >>
-endobj
-504 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-505 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.6) >>
-endobj
-508 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-509 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.7) >>
-endobj
-512 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-513 0 obj
-<< /S /GoTo /D (subsubsection.11.14.1.8) >>
-endobj
-516 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000i\000n\000s\000i\000d\000e\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-517 0 obj
-<< /S /GoTo /D (section.11.15) >>
-endobj
-520 0 obj
-(\376\377\000F\000i\000n\000d\000i\000n\000g\000\040\000a\000\040\000s\000i\000n\000g\000l\000e\000\040\000O\000b\000j\000e\000c\000t\000\040\000c\000o\000v\000e\000r\000i\000n\000g\000\040\000a\000t\000\040\000l\000e\000a\000s\000t\000\040\000C\000P\000U\000\040\000s\000e\000t)
-endobj
-521 0 obj
-<< /S /GoTo /D (subsection.11.15.1) >>
-endobj
-524 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-525 0 obj
-<< /S /GoTo /D (subsubsection.11.15.1.1) >>
-endobj
-528 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000c\000h\000i\000l\000d\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-529 0 obj
-<< /S /GoTo /D (subsubsection.11.15.1.2) >>
-endobj
-532 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-533 0 obj
-<< /S /GoTo /D (section.11.16) >>
-endobj
-536 0 obj
-(\376\377\000F\000i\000n\000d\000i\000n\000g\000\040\000a\000\040\000s\000e\000t\000\040\000o\000f\000\040\000s\000i\000m\000i\000l\000a\000r\000\040\000O\000b\000j\000e\000c\000t\000s\000\040\000c\000o\000v\000e\000r\000i\000n\000g\000\040\000a\000t\000\040\000l\000e\000a\000s\000t\000\040\000a\000\040\000C\000P\000U\000\040\000s\000e\000t)
-endobj
-537 0 obj
-<< /S /GoTo /D (subsection.11.16.1) >>
-endobj
-540 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-541 0 obj
-<< /S /GoTo /D (subsubsection.11.16.1.1) >>
-endobj
-544 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000d\000e\000p\000t\000h)
-endobj
-545 0 obj
-<< /S /GoTo /D (subsubsection.11.16.1.2) >>
-endobj
-548 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000n\000e\000x\000t\000\137\000o\000b\000j\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000c\000p\000u\000s\000e\000t\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-549 0 obj
-<< /S /GoTo /D (section.11.17) >>
-endobj
-552 0 obj
-(\376\377\000C\000a\000c\000h\000e\000-\000s\000p\000e\000c\000i\000f\000i\000c\000\040\000F\000i\000n\000d\000i\000n\000g\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-553 0 obj
-<< /S /GoTo /D (subsection.11.17.1) >>
-endobj
-556 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-557 0 obj
-<< /S /GoTo /D (subsubsection.11.17.1.1) >>
-endobj
-560 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000c\000a\000c\000h\000e\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-561 0 obj
-<< /S /GoTo /D (subsubsection.11.17.1.2) >>
-endobj
-564 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000s\000h\000a\000r\000e\000d\000\137\000c\000a\000c\000h\000e\000\137\000c\000o\000v\000e\000r\000i\000n\000g\000\137\000o\000b\000j)
-endobj
-565 0 obj
-<< /S /GoTo /D (section.11.18) >>
-endobj
-568 0 obj
-(\376\377\000A\000d\000v\000a\000n\000c\000e\000d\000\040\000T\000r\000a\000v\000e\000r\000s\000a\000l\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-569 0 obj
-<< /S /GoTo /D (subsection.11.18.1) >>
-endobj
-572 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-573 0 obj
-<< /S /GoTo /D (subsubsection.11.18.1.1) >>
-endobj
-576 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000c\000l\000o\000s\000e\000s\000t\000\137\000o\000b\000j\000s)
-endobj
-577 0 obj
-<< /S /GoTo /D (subsubsection.11.18.1.2) >>
-endobj
-580 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000b\000e\000l\000o\000w\000\137\000a\000r\000r\000a\000y\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-581 0 obj
-<< /S /GoTo /D (subsubsection.11.18.1.3) >>
-endobj
-584 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000g\000e\000t\000\137\000o\000b\000j\000\137\000b\000e\000l\000o\000w\000\137\000b\000y\000\137\000t\000y\000p\000e)
-endobj
-585 0 obj
-<< /S /GoTo /D (section.11.19) >>
-endobj
-588 0 obj
-(\376\377\000B\000i\000n\000d\000i\000n\000g\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-589 0 obj
-<< /S /GoTo /D (subsection.11.19.1) >>
-endobj
-592 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-593 0 obj
-<< /S /GoTo /D (subsubsection.11.19.1.1) >>
-endobj
-596 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000d\000i\000s\000t\000r\000i\000b\000u\000t\000e)
-endobj
-597 0 obj
-<< /S /GoTo /D (section.11.20) >>
-endobj
-600 0 obj
-(\376\377\000C\000p\000u\000s\000e\000t\000\040\000H\000e\000l\000p\000e\000r\000s)
-endobj
-601 0 obj
-<< /S /GoTo /D (subsection.11.20.1) >>
-endobj
-604 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-605 0 obj
-<< /S /GoTo /D (subsubsection.11.20.1.1) >>
-endobj
-608 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000a\000l\000l\000o\000w\000e\000d\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-609 0 obj
-<< /S /GoTo /D (subsubsection.11.20.1.2) >>
-endobj
-612 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000c\000o\000m\000p\000l\000e\000t\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-613 0 obj
-<< /S /GoTo /D (subsubsection.11.20.1.3) >>
-endobj
-616 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000o\000n\000l\000i\000n\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-617 0 obj
-<< /S /GoTo /D (subsubsection.11.20.1.4) >>
-endobj
-620 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000g\000e\000t\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-621 0 obj
-<< /S /GoTo /D (section.11.21) >>
-endobj
-624 0 obj
-(\376\377\000T\000h\000e\000\040\000C\000p\000u\000s\000e\000t\000\040\000A\000P\000I)
-endobj
-625 0 obj
-<< /S /GoTo /D (subsection.11.21.1) >>
-endobj
-628 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-629 0 obj
-<< /S /GoTo /D (subsection.11.21.2) >>
-endobj
-632 0 obj
-(\376\377\000D\000e\000f\000i\000n\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-633 0 obj
-<< /S /GoTo /D (subsubsection.11.21.2.1) >>
-endobj
-636 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000o\000r\000e\000a\000c\000h\000\137\000b\000e\000g\000i\000n)
-endobj
-637 0 obj
-<< /S /GoTo /D (subsubsection.11.21.2.2) >>
-endobj
-640 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000o\000r\000e\000a\000c\000h\000\137\000e\000n\000d)
-endobj
-641 0 obj
-<< /S /GoTo /D (subsection.11.21.3) >>
-endobj
-644 0 obj
-(\376\377\000T\000y\000p\000e\000d\000e\000f\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-645 0 obj
-<< /S /GoTo /D (subsubsection.11.21.3.1) >>
-endobj
-648 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000o\000n\000s\000t\000\137\000c\000p\000u\000s\000e\000t\000\137\000t)
-endobj
-649 0 obj
-<< /S /GoTo /D (subsubsection.11.21.3.2) >>
-endobj
-652 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t)
-endobj
-653 0 obj
-<< /S /GoTo /D (subsection.11.21.4) >>
-endobj
-656 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-657 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.1) >>
-endobj
-660 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000a\000l\000l\000\137\000b\000u\000t\000\137\000c\000p\000u)
-endobj
-661 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.2) >>
-endobj
-664 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000a\000l\000l\000o\000c)
-endobj
-665 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.3) >>
-endobj
-668 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000a\000n\000d)
-endobj
-669 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.4) >>
-endobj
-672 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000a\000n\000d\000n\000o\000t)
-endobj
-673 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.5) >>
-endobj
-676 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000a\000s\000p\000r\000i\000n\000t\000f)
-endobj
-677 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.6) >>
-endobj
-680 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000l\000r)
-endobj
-681 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.7) >>
-endobj
-684 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000l\000r\000\137\000r\000a\000n\000g\000e)
-endobj
-685 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.8) >>
-endobj
-688 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000o\000m\000p\000a\000r\000e)
-endobj
-689 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.9) >>
-endobj
-692 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000o\000m\000p\000a\000r\000e\000\137\000f\000i\000r\000s\000t)
-endobj
-693 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.10) >>
-endobj
-696 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000o\000p\000y)
-endobj
-697 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.11) >>
-endobj
-700 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000c\000p\000u)
-endobj
-701 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.12) >>
-endobj
-704 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000d\000u\000p)
-endobj
-705 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.13) >>
-endobj
-708 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000i\000l\000l)
-endobj
-709 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.14) >>
-endobj
-712 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000i\000r\000s\000t)
-endobj
-713 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.15) >>
-endobj
-716 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000e\000e)
-endobj
-717 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.16) >>
-endobj
-720 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000i\000t\000h\000\137\000u\000l\000o\000n\000g)
-endobj
-721 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.17) >>
-endobj
-724 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000s\000t\000r\000i\000n\000g)
-endobj
-725 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.18) >>
-endobj
-728 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000u\000l\000o\000n\000g)
-endobj
-729 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.19) >>
-endobj
-732 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000n\000t\000e\000r\000s\000e\000c\000t\000s)
-endobj
-733 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.20) >>
-endobj
-736 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000s\000e\000q\000u\000a\000l)
-endobj
-737 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.21) >>
-endobj
-740 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000s\000f\000u\000l\000l)
-endobj
-741 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.22) >>
-endobj
-744 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000s\000i\000n\000c\000l\000u\000d\000e\000d)
-endobj
-745 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.23) >>
-endobj
-748 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000s\000s\000e\000t)
-endobj
-749 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.24) >>
-endobj
-752 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000i\000s\000z\000e\000r\000o)
-endobj
-753 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.25) >>
-endobj
-756 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000l\000a\000s\000t)
-endobj
-757 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.26) >>
-endobj
-760 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000n\000e\000x\000t)
-endobj
-761 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.27) >>
-endobj
-764 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000n\000o\000t)
-endobj
-765 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.28) >>
-endobj
-768 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000o\000r)
-endobj
-769 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.29) >>
-endobj
-772 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000s\000e\000t)
-endobj
-773 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.30) >>
-endobj
-776 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000s\000e\000t\000\137\000r\000a\000n\000g\000e)
-endobj
-777 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.31) >>
-endobj
-780 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000s\000i\000n\000g\000l\000i\000f\000y)
-endobj
-781 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.32) >>
-endobj
-784 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000s\000n\000p\000r\000i\000n\000t\000f)
-endobj
-785 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.33) >>
-endobj
-788 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000i\000t\000h\000\137\000u\000l\000o\000n\000g)
-endobj
-789 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.34) >>
-endobj
-792 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000u\000l\000o\000n\000g)
-endobj
-793 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.35) >>
-endobj
-796 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000w\000e\000i\000g\000h\000t)
-endobj
-797 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.36) >>
-endobj
-800 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000x\000o\000r)
-endobj
-801 0 obj
-<< /S /GoTo /D (subsubsection.11.21.4.37) >>
-endobj
-804 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000z\000e\000r\000o)
-endobj
-805 0 obj
-<< /S /GoTo /D (section.11.22) >>
-endobj
-808 0 obj
-(\376\377\000H\000e\000l\000p\000e\000r\000s\000\040\000f\000o\000r\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000g\000l\000i\000b\000c\000\040\000s\000c\000h\000e\000d\000\040\000a\000f\000f\000i\000n\000i\000t\000y)
-endobj
-809 0 obj
-<< /S /GoTo /D (subsection.11.22.1) >>
-endobj
-812 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-813 0 obj
-<< /S /GoTo /D (subsubsection.11.22.1.1) >>
-endobj
-816 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000g\000l\000i\000b\000c\000\137\000s\000c\000h\000e\000d\000\137\000a\000f\000f\000i\000n\000i\000t\000y)
-endobj
-817 0 obj
-<< /S /GoTo /D (subsubsection.11.22.1.2) >>
-endobj
-820 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000g\000l\000i\000b\000c\000\137\000s\000c\000h\000e\000d\000\137\000a\000f\000f\000i\000n\000i\000t\000y)
-endobj
-821 0 obj
-<< /S /GoTo /D (section.11.23) >>
-endobj
-824 0 obj
-(\376\377\000L\000i\000n\000u\000x\000-\000o\000n\000l\000y\000\040\000h\000e\000l\000p\000e\000r\000s)
-endobj
-825 0 obj
-<< /S /GoTo /D (subsection.11.23.1) >>
-endobj
-828 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-829 0 obj
-<< /S /GoTo /D (subsection.11.23.2) >>
-endobj
-832 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-833 0 obj
-<< /S /GoTo /D (subsubsection.11.23.2.1) >>
-endobj
-836 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000l\000i\000n\000u\000x\000\137\000g\000e\000t\000\137\000t\000i\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-837 0 obj
-<< /S /GoTo /D (subsubsection.11.23.2.2) >>
-endobj
-840 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000l\000i\000n\000u\000x\000\137\000p\000a\000r\000s\000e\000\137\000c\000p\000u\000m\000a\000p\000\137\000f\000i\000l\000e)
-endobj
-841 0 obj
-<< /S /GoTo /D (subsubsection.11.23.2.3) >>
-endobj
-844 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000l\000i\000n\000u\000x\000\137\000s\000e\000t\000\137\000t\000i\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-845 0 obj
-<< /S /GoTo /D (section.11.24) >>
-endobj
-848 0 obj
-(\376\377\000H\000e\000l\000p\000e\000r\000s\000\040\000f\000o\000r\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000L\000i\000n\000u\000x\000\040\000l\000i\000b\000n\000u\000m\000a\000\040\000u\000n\000s\000i\000g\000n\000e\000d\000\040\000l\000o\000n\000g\000\040\000m\000a\000s\000k\000s)
-endobj
-849 0 obj
-<< /S /GoTo /D (subsection.11.24.1) >>
-endobj
-852 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-853 0 obj
-<< /S /GoTo /D (subsubsection.11.24.1.1) >>
-endobj
-856 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000u\000l\000o\000n\000g\000s)
-endobj
-857 0 obj
-<< /S /GoTo /D (subsubsection.11.24.1.2) >>
-endobj
-860 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000u\000l\000o\000n\000g\000s)
-endobj
-861 0 obj
-<< /S /GoTo /D (section.11.25) >>
-endobj
-864 0 obj
-(\376\377\000H\000e\000l\000p\000e\000r\000s\000\040\000f\000o\000r\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000L\000i\000n\000u\000x\000\040\000l\000i\000b\000n\000u\000m\000a\000\040\000b\000i\000t\000m\000a\000s\000k)
-endobj
-865 0 obj
-<< /S /GoTo /D (subsection.11.25.1) >>
-endobj
-868 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-869 0 obj
-<< /S /GoTo /D (subsubsection.11.25.1.1) >>
-endobj
-872 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000b\000i\000t\000m\000a\000s\000k)
-endobj
-873 0 obj
-<< /S /GoTo /D (subsubsection.11.25.1.2) >>
-endobj
-876 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000b\000i\000t\000m\000a\000s\000k)
-endobj
-877 0 obj
-<< /S /GoTo /D (section.11.26) >>
-endobj
-880 0 obj
-(\376\377\000H\000e\000l\000p\000e\000r\000s\000\040\000f\000o\000r\000\040\000m\000a\000n\000i\000p\000u\000l\000a\000t\000i\000n\000g\000\040\000L\000i\000n\000u\000x\000\040\000l\000i\000b\000n\000u\000m\000a\000\040\000n\000o\000d\000e\000m\000a\000s\000k\000\137\000t)
-endobj
-881 0 obj
-<< /S /GoTo /D (subsection.11.26.1) >>
-endobj
-884 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-885 0 obj
-<< /S /GoTo /D (subsubsection.11.26.1.1) >>
-endobj
-888 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000f\000r\000o\000m\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000n\000o\000d\000e\000m\000a\000s\000k)
-endobj
-889 0 obj
-<< /S /GoTo /D (subsubsection.11.26.1.2) >>
-endobj
-892 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000c\000p\000u\000s\000e\000t\000\137\000t\000o\000\137\000l\000i\000n\000u\000x\000\137\000l\000i\000b\000n\000u\000m\000a\000\137\000n\000o\000d\000e\000m\000a\000s\000k)
-endobj
-893 0 obj
-<< /S /GoTo /D (section.11.27) >>
-endobj
-896 0 obj
-(\376\377\000O\000p\000e\000n\000F\000a\000b\000r\000i\000c\000s\000-\000S\000p\000e\000c\000i\000f\000i\000c\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000s)
-endobj
-897 0 obj
-<< /S /GoTo /D (subsection.11.27.1) >>
-endobj
-900 0 obj
-(\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-901 0 obj
-<< /S /GoTo /D (subsubsection.11.27.1.1) >>
-endobj
-904 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000i\000b\000v\000\137\000g\000e\000t\000\137\000d\000e\000v\000i\000c\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-905 0 obj
-<< /S /GoTo /D (chapter.12) >>
-endobj
-908 0 obj
-(\376\377\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-909 0 obj
-<< /S /GoTo /D (section.12.1) >>
-endobj
-912 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000a\000t\000t\000r\000\137\000u\000:\000:\000h\000w\000l\000o\000c\000\137\000c\000a\000c\000h\000e\000\137\000a\000t\000t\000r\000\137\000s\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-913 0 obj
-<< /S /GoTo /D (subsection.12.1.1) >>
-endobj
-916 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-917 0 obj
-<< /S /GoTo /D (subsection.12.1.2) >>
-endobj
-920 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-921 0 obj
-<< /S /GoTo /D (subsubsection.12.1.2.1) >>
-endobj
-924 0 obj
-(\376\377\000d\000e\000p\000t\000h)
-endobj
-925 0 obj
-<< /S /GoTo /D (subsubsection.12.1.2.2) >>
-endobj
-928 0 obj
-(\376\377\000s\000i\000z\000e)
-endobj
-929 0 obj
-<< /S /GoTo /D (section.12.2) >>
-endobj
-932 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000a\000t\000t\000r\000\137\000u\000:\000:\000h\000w\000l\000o\000c\000\137\000g\000r\000o\000u\000p\000\137\000a\000t\000t\000r\000\137\000s\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-933 0 obj
-<< /S /GoTo /D (subsection.12.2.1) >>
-endobj
-936 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-937 0 obj
-<< /S /GoTo /D (subsection.12.2.2) >>
-endobj
-940 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-941 0 obj
-<< /S /GoTo /D (subsubsection.12.2.2.1) >>
-endobj
-944 0 obj
-(\376\377\000d\000e\000p\000t\000h)
-endobj
-945 0 obj
-<< /S /GoTo /D (section.12.3) >>
-endobj
-948 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000a\000t\000t\000r\000\137\000u\000:\000:\000h\000w\000l\000o\000c\000\137\000m\000a\000c\000h\000i\000n\000e\000\137\000a\000t\000t\000r\000\137\000s\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-949 0 obj
-<< /S /GoTo /D (subsection.12.3.1) >>
-endobj
-952 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-953 0 obj
-<< /S /GoTo /D (subsection.12.3.2) >>
-endobj
-956 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-957 0 obj
-<< /S /GoTo /D (subsubsection.12.3.2.1) >>
-endobj
-960 0 obj
-(\376\377\000d\000m\000i\000\137\000b\000o\000a\000r\000d\000\137\000n\000a\000m\000e)
-endobj
-961 0 obj
-<< /S /GoTo /D (subsubsection.12.3.2.2) >>
-endobj
-964 0 obj
-(\376\377\000d\000m\000i\000\137\000b\000o\000a\000r\000d\000\137\000v\000e\000n\000d\000o\000r)
-endobj
-965 0 obj
-<< /S /GoTo /D (section.12.4) >>
-endobj
-968 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-969 0 obj
-<< /S /GoTo /D (subsection.12.4.1) >>
-endobj
-972 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-973 0 obj
-<< /S /GoTo /D (subsection.12.4.2) >>
-endobj
-976 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-977 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.1) >>
-endobj
-980 0 obj
-(\376\377\000a\000l\000l\000o\000w\000e\000d\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-981 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.2) >>
-endobj
-984 0 obj
-(\376\377\000a\000l\000l\000o\000w\000e\000d\000\137\000n\000o\000d\000e\000s\000e\000t)
-endobj
-985 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.3) >>
-endobj
-988 0 obj
-(\376\377\000a\000r\000i\000t\000y)
-endobj
-989 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.4) >>
-endobj
-992 0 obj
-(\376\377\000a\000t\000t\000r)
-endobj
-993 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.5) >>
-endobj
-996 0 obj
-(\376\377\000c\000h\000i\000l\000d\000r\000e\000n)
-endobj
-997 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.6) >>
-endobj
-1000 0 obj
-(\376\377\000c\000o\000m\000p\000l\000e\000t\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-1001 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.7) >>
-endobj
-1004 0 obj
-(\376\377\000c\000o\000m\000p\000l\000e\000t\000e\000\137\000n\000o\000d\000e\000s\000e\000t)
-endobj
-1005 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.8) >>
-endobj
-1008 0 obj
-(\376\377\000c\000p\000u\000s\000e\000t)
-endobj
-1009 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.9) >>
-endobj
-1012 0 obj
-(\376\377\000d\000e\000p\000t\000h)
-endobj
-1013 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.10) >>
-endobj
-1016 0 obj
-(\376\377\000f\000i\000r\000s\000t\000\137\000c\000h\000i\000l\000d)
-endobj
-1017 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.11) >>
-endobj
-1020 0 obj
-(\376\377\000l\000a\000s\000t\000\137\000c\000h\000i\000l\000d)
-endobj
-1021 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.12) >>
-endobj
-1024 0 obj
-(\376\377\000l\000o\000g\000i\000c\000a\000l\000\137\000i\000n\000d\000e\000x)
-endobj
-1025 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.13) >>
-endobj
-1028 0 obj
-(\376\377\000m\000e\000m\000o\000r\000y)
-endobj
-1029 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.14) >>
-endobj
-1032 0 obj
-(\376\377\000n\000a\000m\000e)
-endobj
-1033 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.15) >>
-endobj
-1036 0 obj
-(\376\377\000n\000e\000x\000t\000\137\000c\000o\000u\000s\000i\000n)
-endobj
-1037 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.16) >>
-endobj
-1040 0 obj
-(\376\377\000n\000e\000x\000t\000\137\000s\000i\000b\000l\000i\000n\000g)
-endobj
-1041 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.17) >>
-endobj
-1044 0 obj
-(\376\377\000n\000o\000d\000e\000s\000e\000t)
-endobj
-1045 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.18) >>
-endobj
-1048 0 obj
-(\376\377\000o\000n\000l\000i\000n\000e\000\137\000c\000p\000u\000s\000e\000t)
-endobj
-1049 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.19) >>
-endobj
-1052 0 obj
-(\376\377\000o\000s\000\137\000i\000n\000d\000e\000x)
-endobj
-1053 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.20) >>
-endobj
-1056 0 obj
-(\376\377\000o\000s\000\137\000l\000e\000v\000e\000l)
-endobj
-1057 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.21) >>
-endobj
-1060 0 obj
-(\376\377\000p\000a\000r\000e\000n\000t)
-endobj
-1061 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.22) >>
-endobj
-1064 0 obj
-(\376\377\000p\000r\000e\000v\000\137\000c\000o\000u\000s\000i\000n)
-endobj
-1065 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.23) >>
-endobj
-1068 0 obj
-(\376\377\000p\000r\000e\000v\000\137\000s\000i\000b\000l\000i\000n\000g)
-endobj
-1069 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.24) >>
-endobj
-1072 0 obj
-(\376\377\000s\000i\000b\000l\000i\000n\000g\000\137\000r\000a\000n\000k)
-endobj
-1073 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.25) >>
-endobj
-1076 0 obj
-(\376\377\000t\000y\000p\000e)
-endobj
-1077 0 obj
-<< /S /GoTo /D (subsubsection.12.4.2.26) >>
-endobj
-1080 0 obj
-(\376\377\000u\000s\000e\000r\000d\000a\000t\000a)
-endobj
-1081 0 obj
-<< /S /GoTo /D (section.12.5) >>
-endobj
-1084 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000a\000t\000t\000r\000\137\000u\000\040\000U\000n\000i\000o\000n\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1085 0 obj
-<< /S /GoTo /D (subsection.12.5.1) >>
-endobj
-1088 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1089 0 obj
-<< /S /GoTo /D (subsection.12.5.2) >>
-endobj
-1092 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1093 0 obj
-<< /S /GoTo /D (subsubsection.12.5.2.1) >>
-endobj
-1096 0 obj
-(\376\377\000c\000a\000c\000h\000e)
-endobj
-1097 0 obj
-<< /S /GoTo /D (subsubsection.12.5.2.2) >>
-endobj
-1100 0 obj
-(\376\377\000g\000r\000o\000u\000p)
-endobj
-1101 0 obj
-<< /S /GoTo /D (subsubsection.12.5.2.3) >>
-endobj
-1104 0 obj
-(\376\377\000m\000a\000c\000h\000i\000n\000e)
-endobj
-1105 0 obj
-<< /S /GoTo /D (section.12.6) >>
-endobj
-1108 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000m\000e\000m\000o\000r\000y\000\137\000s\000:\000:\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000m\000e\000m\000o\000r\000y\000\137\000p\000a\000g\000e\000\137\000t\000y\000p\000e\000\137\000s\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1109 0 obj
-<< /S /GoTo /D (subsection.12.6.1) >>
-endobj
-1112 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1113 0 obj
-<< /S /GoTo /D (subsection.12.6.2) >>
-endobj
-1116 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1117 0 obj
-<< /S /GoTo /D (subsubsection.12.6.2.1) >>
-endobj
-1120 0 obj
-(\376\377\000c\000o\000u\000n\000t)
-endobj
-1121 0 obj
-<< /S /GoTo /D (subsubsection.12.6.2.2) >>
-endobj
-1124 0 obj
-(\376\377\000s\000i\000z\000e)
-endobj
-1125 0 obj
-<< /S /GoTo /D (section.12.7) >>
-endobj
-1128 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000o\000b\000j\000\137\000m\000e\000m\000o\000r\000y\000\137\000s\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1129 0 obj
-<< /S /GoTo /D (subsection.12.7.1) >>
-endobj
-1132 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1133 0 obj
-<< /S /GoTo /D (subsection.12.7.2) >>
-endobj
-1136 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1137 0 obj
-<< /S /GoTo /D (subsubsection.12.7.2.1) >>
-endobj
-1140 0 obj
-(\376\377\000l\000o\000c\000a\000l\000\137\000m\000e\000m\000o\000r\000y)
-endobj
-1141 0 obj
-<< /S /GoTo /D (subsubsection.12.7.2.2) >>
-endobj
-1144 0 obj
-(\376\377\000p\000a\000g\000e\000\137\000t\000y\000p\000e\000s)
-endobj
-1145 0 obj
-<< /S /GoTo /D (subsubsection.12.7.2.3) >>
-endobj
-1148 0 obj
-(\376\377\000p\000a\000g\000e\000\137\000t\000y\000p\000e\000s\000\137\000l\000e\000n)
-endobj
-1149 0 obj
-<< /S /GoTo /D (subsubsection.12.7.2.4) >>
-endobj
-1152 0 obj
-(\376\377\000t\000o\000t\000a\000l\000\137\000m\000e\000m\000o\000r\000y)
-endobj
-1153 0 obj
-<< /S /GoTo /D (section.12.8) >>
-endobj
-1156 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000c\000p\000u\000b\000i\000n\000d\000\137\000s\000u\000p\000p\000o\000r\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1157 0 obj
-<< /S /GoTo /D (subsection.12.8.1) >>
-endobj
-1160 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1161 0 obj
-<< /S /GoTo /D (subsection.12.8.2) >>
-endobj
-1164 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1165 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.1) >>
-endobj
-1168 0 obj
-(\376\377\000g\000e\000t\000\137\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1169 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.2) >>
-endobj
-1172 0 obj
-(\376\377\000g\000e\000t\000\137\000t\000h\000i\000s\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1173 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.3) >>
-endobj
-1176 0 obj
-(\376\377\000g\000e\000t\000\137\000t\000h\000i\000s\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1177 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.4) >>
-endobj
-1180 0 obj
-(\376\377\000g\000e\000t\000\137\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1181 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.5) >>
-endobj
-1184 0 obj
-(\376\377\000s\000e\000t\000\137\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1185 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.6) >>
-endobj
-1188 0 obj
-(\376\377\000s\000e\000t\000\137\000t\000h\000i\000s\000p\000r\000o\000c\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1189 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.7) >>
-endobj
-1192 0 obj
-(\376\377\000s\000e\000t\000\137\000t\000h\000i\000s\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1193 0 obj
-<< /S /GoTo /D (subsubsection.12.8.2.8) >>
-endobj
-1196 0 obj
-(\376\377\000s\000e\000t\000\137\000t\000h\000r\000e\000a\000d\000\137\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1197 0 obj
-<< /S /GoTo /D (section.12.9) >>
-endobj
-1200 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000d\000i\000s\000c\000o\000v\000e\000r\000y\000\137\000s\000u\000p\000p\000o\000r\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1201 0 obj
-<< /S /GoTo /D (subsection.12.9.1) >>
-endobj
-1204 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1205 0 obj
-<< /S /GoTo /D (subsection.12.9.2) >>
-endobj
-1208 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1209 0 obj
-<< /S /GoTo /D (subsubsection.12.9.2.1) >>
-endobj
-1212 0 obj
-(\376\377\000p\000u)
-endobj
-1213 0 obj
-<< /S /GoTo /D (section.12.10) >>
-endobj
-1216 0 obj
-(\376\377\000h\000w\000l\000o\000c\000\137\000t\000o\000p\000o\000l\000o\000g\000y\000\137\000s\000u\000p\000p\000o\000r\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e)
-endobj
-1217 0 obj
-<< /S /GoTo /D (subsection.12.10.1) >>
-endobj
-1220 0 obj
-(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n)
-endobj
-1221 0 obj
-<< /S /GoTo /D (subsection.12.10.2) >>
-endobj
-1224 0 obj
-(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n)
-endobj
-1225 0 obj
-<< /S /GoTo /D (subsubsection.12.10.2.1) >>
-endobj
-1228 0 obj
-(\376\377\000c\000p\000u\000b\000i\000n\000d)
-endobj
-1229 0 obj
-<< /S /GoTo /D (subsubsection.12.10.2.2) >>
-endobj
-1232 0 obj
-(\376\377\000d\000i\000s\000c\000o\000v\000e\000r\000y)
-endobj
-1233 0 obj
-<< /S /GoTo /D [1234 0 R /Fit ] >>
-endobj
-1236 0 obj <<
-/Length 268
-/Filter /FlateDecode
->>
-stream
-xÚ‘MOÃ0†ïý9®‡Ûq¾vCn½Á¥-i¬¨š4öïq?T!Áå×ñ›÷±2¨‹LB\€dÅ›ú#C³ÓãMFs[ØêþG£à$ 1ªp ’cùéúí¦ŽØ’™÷U™]ܪ$ų)_
³IÖšÅW6O«»ªoN9áªêÛ\¸zèêjÿ~> endobj
-1237 0 obj <<
-/D [1234 0 R /XYZ 90 739.9346 null]
->> endobj
-1235 0 obj <<
-/Font << /F22 1240 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1244 0 obj <<
-/Length 59
-/Filter /FlateDecode
->>
-stream
-xÚ3T0 BCKsSs=Kc3…ä\.…t °;—!TÚÄÈHc‘ÐÉèšY˜é™[˜¥ È^endstream
-endobj
-1243 0 obj <<
-/Type /Page
-/Contents 1244 0 R
-/Resources 1242 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
->> endobj
-1242 0 obj <<
-/ProcSet [ /PDF ]
->> endobj
-1247 0 obj <<
-/Length 1844
-/Filter /FlateDecode
->>
-stream
-xÚí[MsÛ6¼ûWðVé ß nMÓ´I'3uõÔö@K´Í©$z(¥iþ} @d¥§Zã™H±VxËÅòááFT?¨°L I(/VÛX<¨_ÿxƒìÇõù`Á)þW¿[Þ¼ú—¦@”Ë{=8§pˆx±\ÿ>{Óîõî°Ÿÿ¹üéæírLá˜à€3bIè_vöÓ_½¨
-¹ð¡.¨’cnc ÍB8{Wuë9b³ÏU7G嬞/0ƒ³íªÚ4‡/SF¨d€KÈ&¼&¨'K Q)¦Ì¦A!’Ò‚±H,pF_øx{ÁƒQûØ ×E)ð~wèÚõ§Õ¡iw!! BXNMUp¨‘ÄüÑ40_05=×—S/“99z)5'*3'áhQgê›=êq×f sv¶u)B‘±®CëâÁºûCµÙTqëbÀK‰
-?Bĺ•#2X×grµç¥ÖM͉gÝ䜄£é9ÁQë¦âM¬K϶.&€
-J2Ö5(—u‰µîÛªíÓ¦VBÄU.e¿µC-|X„„P‹o‰Ð˜ÅÕš_éÞÔÔxîMNM8Úi÷¦â]ì^È€ ¢Ì¸×¡Œ{©uïm×>tÕvÛìLÕ¨º®»Ÿ#8«Võô0’@åXYø1ƒPjs KŠÆÜ®[4¥´gѤÒáhZiµh*Þ¥µ-Õ÷0Ê$Øe,ʬE_ß¾7Ö¬uÑo²mXäC Õw?R¤È·¨¡RŽi9ftͤÏõnr2ŽÞMOF8šžón2Þ¥é•
-°¤2ã]‡2ÞåÖ»¿|ª÷º¦ÝW»µys7Çpöé!(0ÔÛPÆ
-?j˜`*C# UÅňÝÕ²)˦t÷,›Ô=Më^F-›Šwqºe0^ÒŒeÊXVX˾kö‡¶ûb|úʼ¬ºzÝ„Í$±æG
-?`˜u*ÇK
- %çcbW·žïÝÔ,xÞMÎB8šžõn*žn7.°K
-vF'bª*c(Ov€)®M'p9—xVwÛizý¾þCó»Æ¤ÞÀµ¥ÞJÑÂqEe¨©½€D1A„"Q"9PÈsäð¡Q9€ŽF¬oÚíVi°Ø4;Û=´í&" RS¬–…1¡@ ‹ÊQBìTK”%,çæ2~:•9P/ÆÐݨDöÔ<”k1â"Ó‹w L|&è¯Ý#pÍQÿIRs®JÌÒ JÏR0VoÐh™ŠviI8Cž±°C»ÆèãçM»ZÜ5*³mQ…"‚þø‘¶¨Eåh¸¶èˆÇÕ™¹–¦çd@eæ$-aÜTÀKëHBU2•eœëPƹdäÜUµY…ÎU›{NDáq®Eåh¸ÎèˆÇÕ_iàÔÔxNNM8ZÂÀ©€§^Ì å"W=8”10x¶C]sk8ɲD…"ÚpêQ9&®á4¢r5賋…ÔdxÕBr2ÂÑ®M|æ«ý/Ÿ¬ù€æCmÍÿv7§pöwÓ?
-Ñî¶õî`Jÿ¿û~×Tw‘Ã)LâÂé3YT†Û ؈!‘=æ`Å9zxи`šÙF÷úü¢×â©îª»¦$¤ässx4ïÚãÂôo÷íýaxŽd*+Òð1é©H•!|ɧdL$Š Œœ#’‹ä ¦kj÷ÍæŠ+»_ÞW÷uäÉN€€Mø'˜•ár¼~ŸŽm”1RPáÎ Ò×ïAã×ï :šp7Íö®^¯‡3¯>Ó»ã¯gZ„Š(›P,bQºG‰|Ò˜œÚJ#É aˆœ»úøÓËá€êvÓ¿íÇz}3glf/[jOhƺ®ª's6‘$U4)§1UΡ2܉ÊT*ïð1ùÿͺ–Ô踮¥5
-GëÝEcëZ2à¥Õ˜~ºLU9™“”eì‡ÇYD}fîß©Á¥(½£s¨;´$VwäˆÞ‹ß&$µ=nÒÚ†£õÆŒO'>³àBT†=¹v s|cÖŽªŽX=Þ»7ÅÆÖüïöÃí\ÐÙk×}Íø“@H
-ŸFÔŸ=*Ãöxsûœ±8¹tJˆÎ¾uðÄkA½Zú±œ—j9}j7íƒ-ÄVúÙáþ,ß•ª{e4‚ô‚a”JEU6*9³ž*å@i²Ê;€HÉGl_îŽ)¥¨·°¤
Æê=íLE»´I…Uµeo:”1';Õ&¡[=ÎÙìËÄ‹oÚ®þöc»úKï£êCèIæ¨ðãGLiQšGWú<_ðº’Õ[W’¢†£%œ™
-x©5õÍ<—g1Æ–®wú¡}hVÕfâÈÛÞ¦{ýÉ«Ÿ?ºýÊÚ¤RýO¤Êf@®–Å#•ÈîÄb’|U§>$#Â/É‘ ~L 8é´¡L…Ãô#Ðô¬?òùd7endstream
-endobj
-1246 0 obj <<
-/Type /Page
-/Contents 1247 0 R
-/Resources 1245 0 R
-/MediaBox [0 0 595.2756 841.8898]
-/Parent 1241 0 R
-/Annots [ 1252 0 R 1253 0 R 1254 0 R 1255 0 R 1256 0 R 1257 0 R 1258 0 R 1259 0 R 1260 0 R 1261 0 R 1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R 1268 0 R 1269 0 R 1270 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1275 0 R ]
->> endobj
-1252 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 573.635 186.6868 584.5141]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.1) >>
->> endobj
-1253 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 557.8314 178.1091 566.678]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.1) >>
->> endobj
-1254 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 540.1049 173.6854 548.9515]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.2) >>
->> endobj
-1255 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 520.3211 168.1465 531.2251]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.3) >>
->> endobj
-1256 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 502.5947 220.8881 513.4986]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.4) >>
->> endobj
-1257 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 484.8682 180.9983 495.7722]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.5) >>
->> endobj
-1258 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 467.1418 206.6918 478.0457]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.6) >>
->> endobj
-1259 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 449.4153 193.0526 460.3192]
-/Subtype /Link
-/A << /S /GoTo /D (section.1.7) >>
->> endobj
-1260 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 423.3552 199.6776 432.3314]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.2) >>
->> endobj
-1261 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 395.2577 192.0066 404.234]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.3) >>
->> endobj
-1262 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 375.4939 153.2127 386.3979]
-/Subtype /Link
-/A << /S /GoTo /D (section.3.1) >>
->> endobj
-1263 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 359.8248 174.2338 368.6714]
-/Subtype /Link
-/A << /S /GoTo /D (section.3.2) >>
->> endobj
-1264 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 342.0983 172.5599 350.9449]
-/Subtype /Link
-/A << /S /GoTo /D (section.3.3) >>
->> endobj
-1265 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 324.3718 181.9844 333.2185]
-/Subtype /Link
-/A << /S /GoTo /D (section.3.4) >>
->> endobj
-1266 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 296.2544 202.9555 305.2307]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.4) >>
->> endobj
-1267 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 266.2541 259.1441 277.1332]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.5) >>
->> endobj
-1268 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 238.1566 164.6994 249.0357]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.6) >>
->> endobj
-1269 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 210.0592 257.4107 220.9383]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.7) >>
->> endobj
-1270 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 192.1982 295.9957 203.1022]
-/Subtype /Link
-/A << /S /GoTo /D (section.7.1) >>
->> endobj
-1271 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 174.4718 237.8746 185.3757]
-/Subtype /Link
-/A << /S /GoTo /D (section.7.2) >>
->> endobj
-1272 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [89.0037 146.5088 237.2966 157.3879]
-/Subtype /Link
-/A << /S /GoTo /D (chapter.8) >>
->> endobj
-1273 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 128.6479 246.3829 139.5518]
-/Subtype /Link
-/A << /S /GoTo /D (section.8.1) >>
->> endobj
-1274 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 110.9214 241.1223 121.8254]
-/Subtype /Link
-/A << /S /GoTo /D (section.8.2) >>
->> endobj
-1275 0 obj <<
-/Type /Annot
-/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [103.9477 93.195 258.0585 104.0989]
-/Subtype /Link
-/A << /S /GoTo /D (section.8.3) >>
->> endobj
-1251 0 obj <<
-/D [1246 0 R /XYZ 90 604.4538 null]
->> endobj
-1245 0 obj <<
-/Font << /F28 1250 0 R /F22 1240 0 R >>
-/ProcSet [ /PDF /Text ]
->> endobj
-1278 0 obj <<
-/Length 2593
-/Filter /FlateDecode
->>
-stream
-xÚí\MsÛ¶ÝûWpi/Œâû£»6MÛtÚ¤¯ñ¼.ÚŽF‘W#º²Ü$ÿ¾ I€ ^èÑyÉ“E$ëøÞãsï Z¤Âö©®”PÈ0.«Õ»3\ÝØsFú—/íë—1àË«³Ï¾¦º2ÈH*««·mI „VW׿œ¯×¿]}W1©1ÒFq?|öêåÕó—W¯ÝKgϯBü>½`’¸èýò®®-ïÎ0bF‹ê½}‚m$C«wgœ2ÿäöìõÙBœî…örWÁ±FXÈê’ªŽwr/mozÌOœ`ŽçöÊ©½NE‡§Ñ…{”¹ëÔˆ_Ø_øüYó°Ù77—Ô>»¿«Wë_1¦«ånÝlöe D!eŒ®¢„ÉEL‹R‰ŒædÄ]\
-ŒOî¿=™f3ÅA™–9‰åd¦&II˜Í÷’Zw*U0e[‰˜ mÄt!ö¯;.ÆѪðCsýp[w6|±¹®?ìS$’#.0¢è Ï ‚9ôª°F’”}éHÍQ‡×cŒŸ.È€je@¤¯ÈNˆûôò)²`³G&¹þUâ ¢Øö§‰-¿·lüTáJ£å=ê*L8”®µE¹v¥¡&‹7 ‚;1¾Zî–]í¾ÞmV»‡íÑç`9a‡1Uœ0õ³Gx
jÅ웬h¦‘…³ƒ+:ÂíQ4®¤…ȉ“)omBï1ۗãJ„Œ²*H9fôT´‡—0ô.D%¾i´¼)Û†þ¯%lGäÓ%ìOI'F<€¿jVïêÍ.¿
-ÄÂ.a%«â<é2У
-t‘bRLLU®0 Å-Ü>]·ÔÉáËö‹_tjü}AÄy½½ÏhA”íOJ«1ýªõ MÔŒè