Codebase list hwloc / 4118b1b
Imported Upstream version 1.1.2 Samuel Thibault 10 years ago
218 changed file(s) with 5079 addition(s) and 4125 deletion(s). Raw diff Collapse all Expand all
4343 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
4444 $(srcdir)/Makefile.in $(srcdir)/hwloc.pc.in \
4545 $(top_srcdir)/configure \
46 $(top_srcdir)/include/hwloc/config.h.in \
47 $(top_srcdir)/include/private/config.h.in ./config/compile \
48 ./config/config.guess ./config/config.sub ./config/depcomp \
49 ./config/install-sh ./config/ltmain.sh ./config/missing \
50 AUTHORS COPYING NEWS
46 $(top_srcdir)/include/hwloc/autogen/config.h.in \
47 $(top_srcdir)/include/private/autogen/config.h.in \
48 ./config/compile ./config/config.guess ./config/config.sub \
49 ./config/depcomp ./config/install-sh ./config/ltmain.sh \
50 ./config/missing AUTHORS COPYING NEWS
5151 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
5252 am__aclocal_m4_deps = $(top_srcdir)/config/hwloc.m4 \
5353 $(top_srcdir)/config/hwloc_check_attributes.m4 \
6464 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
6565 configure.lineno config.status.lineno
6666 mkinstalldirs = $(install_sh) -d
67 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
68 $(top_builddir)/include/hwloc/config.h
67 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
68 $(top_builddir)/include/hwloc/autogen/config.h
6969 CONFIG_CLEAN_FILES = hwloc.pc
7070 CONFIG_CLEAN_VPATH_FILES =
7171 AM_V_GEN = $(am__v_GEN_$(V))
376376 $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
377377 $(am__aclocal_m4_deps):
378378
379 include/private/config.h: include/private/stamp-h1
379 include/private/autogen/config.h: include/private/autogen/stamp-h1
380380 @if test ! -f $@; then \
381 rm -f include/private/stamp-h1; \
382 $(MAKE) $(AM_MAKEFLAGS) include/private/stamp-h1; \
381 rm -f include/private/autogen/stamp-h1; \
382 $(MAKE) $(AM_MAKEFLAGS) include/private/autogen/stamp-h1; \
383383 else :; fi
384384
385 include/private/stamp-h1: $(top_srcdir)/include/private/config.h.in $(top_builddir)/config.status
386 @rm -f include/private/stamp-h1
387 cd $(top_builddir) && $(SHELL) ./config.status include/private/config.h
388 $(top_srcdir)/include/private/config.h.in: $(am__configure_deps)
385 include/private/autogen/stamp-h1: $(top_srcdir)/include/private/autogen/config.h.in $(top_builddir)/config.status
386 @rm -f include/private/autogen/stamp-h1
387 cd $(top_builddir) && $(SHELL) ./config.status include/private/autogen/config.h
388 $(top_srcdir)/include/private/autogen/config.h.in: $(am__configure_deps)
389389 ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
390 rm -f include/private/stamp-h1
390 rm -f include/private/autogen/stamp-h1
391391 touch $@
392392
393 include/hwloc/config.h: include/hwloc/stamp-h2
393 include/hwloc/autogen/config.h: include/hwloc/autogen/stamp-h2
394394 @if test ! -f $@; then \
395 rm -f include/hwloc/stamp-h2; \
396 $(MAKE) $(AM_MAKEFLAGS) include/hwloc/stamp-h2; \
395 rm -f include/hwloc/autogen/stamp-h2; \
396 $(MAKE) $(AM_MAKEFLAGS) include/hwloc/autogen/stamp-h2; \
397397 else :; fi
398398
399 include/hwloc/stamp-h2: $(top_srcdir)/include/hwloc/config.h.in $(top_builddir)/config.status
400 @rm -f include/hwloc/stamp-h2
401 cd $(top_builddir) && $(SHELL) ./config.status include/hwloc/config.h
399 include/hwloc/autogen/stamp-h2: $(top_srcdir)/include/hwloc/autogen/config.h.in $(top_builddir)/config.status
400 @rm -f include/hwloc/autogen/stamp-h2
401 cd $(top_builddir) && $(SHELL) ./config.status include/hwloc/autogen/config.h
402402
403403 distclean-hdr:
404 -rm -f include/private/config.h include/private/stamp-h1 include/hwloc/config.h include/hwloc/stamp-h2
404 -rm -f include/private/autogen/config.h include/private/autogen/stamp-h1 include/hwloc/autogen/config.h include/hwloc/autogen/stamp-h2
405405 hwloc.pc: $(top_builddir)/config.status $(srcdir)/hwloc.pc.in
406406 cd $(top_builddir) && $(SHELL) ./config.status $@
407407
1414 bug fixes (and other actions) for each version of hwloc since version
1515 0.9 (as initially released as "libtopology", then re-branded to "hwloc"
1616 in v0.9.1).
17
18
19 Version 1.1.2
20 -------------
21 * Fix a segfault in the distance-based grouping code when some objects
22 are not placed in any group. Thanks to Bernd Kallies for reporting
23 the problem and providing a patch.
24 * Fix the command-line parsing of hwloc-bind --mempolicy interleave.
25 Thanks to Guy Streeter for reporting the problem.
26 * Stop truncating the output in hwloc_obj_attr_snprintf() and in the
27 corresponding lstopo output. Thanks to Guy Streeter for reporting the
28 problem.
29 * Fix object levels ordering in synthetic topologies.
30 * Fix potential incoherency between device tree and kernel information,
31 when SMT is disabled on Power machines.
32 * Fix and document the behavior of hwloc_topology_set_synthetic() in case
33 of invalid argument. Thanks to Guy Streeter for reporting the problem.
34 * Add some verbose error message reporting when it looks like the OS
35 gives erroneous information.
36 * Do not include unistd.h and stdint.h in public headers on Windows.
37 * Move config.h files into their own subdirectories to avoid name
38 conflicts when AC_CONFIG_HEADERS adds -I's for them.
39 * Remove the use of declaring variables inside "for" loops.
40 * Some other minor fixes.
41 * Many minor documentation fixes.
1742
1843
1944 Version 1.1.1
424424 /* Example hwloc API program.
425425 *
426426 * Copyright ? 2009-2010 INRIA
427 * Copyright ? 2009-2010 Universit? Bordeaux 1
427 * Copyright ? 2009-2011 Universit? Bordeaux 1
428428 * Copyright ? 2009-2010 Cisco Systems, Inc. All rights reserved.
429429 *
430430 * hwloc-hello.c
464464 hwloc_topology_init(&topology);
465465
466466 /* ... Optionally, put detection configuration here to ignore
467 some objects types, define a synthetic topology, etc....
467 some objects types, define a synthetic topology, etc....
468468
469469 The default is to detect all the objects of the machine that
470470 the caller is allowed to access. See Configure Topology
571571 n = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
572572 if (n) {
573573 void *m;
574 size_t size = 1024*1024;
574 size = 1024*1024;
575575
576576 obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, n - 1);
577577 m = hwloc_alloc_membind_nodeset(topology, size, obj->nodeset,
683683
684684 -------------------------------------------------------------------------------
685685
686 Generated on Mon Jan 24 2011 17:12:06 for Hardware Locality (hwloc) by doxygen
687 1.7.2
686 Generated on Wed Apr 6 2011 17:31:39 for Hardware Locality (hwloc) by doxygen
687 1.7.3
66
77 major=1
88 minor=1
9 release=1
9 release=2
1010
1111 # greek is used for alpha or beta release tags. If it is non-empty,
1212 # it will be appended to the version number. It does not have to be
3232 # distribution tarball is being made from an SVN checkout, the value
3333 # of svn_r in this file is replaced with the output of "svnversion".
3434
35 svn_r=r3129
35 svn_r=r3393
3636
3737 # The date when this release was created
3838
39 date="Jan 24, 2011"
39 date="avril 06, 2011"
4040
4141 # The shared library version of hwloc's public library. This version
4242 # is maintained in accordance with the "Library Interface Versions"
4949 # 2. Version numbers are described in the Libtool current:revision:age
5050 # format.
5151
52 libhwloc_so_version=2:0:2
52 libhwloc_so_version=2:1:2
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
22 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011 Free Software Foundation, Inc.
5
6 timestamp='2011-01-23'
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 # Free Software Foundation, Inc.
5
6 timestamp='2009-11-20'
77
88 # This file is free software; you can redistribute it and/or modify it
99 # under the terms of the GNU General Public License as published by
5555 GNU config.guess ($timestamp)
5656
5757 Originally written by Per Bothner.
58 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
59 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
60 Software Foundation, Inc.
58 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
59 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
6160
6261 This is free software; see the source for copying conditions. There is NO
6362 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
269268 # A Xn.n version is an unreleased experimental baselevel.
270269 # 1.2 uses "1.2" for uname -r.
271270 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
272 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
273 exitcode=$?
274 trap '' 0
275 exit $exitcode ;;
271 exit ;;
276272 Alpha\ *:Windows_NT*:*)
277273 # How do we know it's Interix rather than the generic POSIX subsystem?
278274 # Should we change UNAME_MACHINE based on the output of uname instead
554550 echo rs6000-ibm-aix3.2
555551 fi
556552 exit ;;
557 *:AIX:*:[4567])
553 *:AIX:*:[456])
558554 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
559555 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
560556 IBM_ARCH=rs6000
970966 sparc:Linux:*:* | sparc64:Linux:*:*)
971967 echo ${UNAME_MACHINE}-unknown-linux-gnu
972968 exit ;;
973 tile*:Linux:*:*)
974 echo ${UNAME_MACHINE}-tilera-linux-gnu
975 exit ;;
976969 vax:Linux:*:*)
977970 echo ${UNAME_MACHINE}-dec-linux-gnu
978971 exit ;;
12361229 *:QNX:*:4*)
12371230 echo i386-pc-qnx
12381231 exit ;;
1239 NEO-?:NONSTOP_KERNEL:*:*)
1240 echo neo-tandem-nsk${UNAME_RELEASE}
1241 exit ;;
12421232 NSE-?:NONSTOP_KERNEL:*:*)
12431233 echo nse-tandem-nsk${UNAME_RELEASE}
12441234 exit ;;
00 #! /bin/sh
11 # Configuration validation subroutine script.
22 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011 Free Software Foundation, Inc.
5
6 timestamp='2011-01-01'
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 # Free Software Foundation, Inc.
5
6 timestamp='2009-11-20'
77
88 # This file is (in principle) common to ALL GNU software.
99 # The presence of a machine in this file suggests that SOME GNU software
7474 version="\
7575 GNU config.sub ($timestamp)
7676
77 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
78 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
79 Software Foundation, Inc.
77 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
78 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
8079
8180 This is free software; see the source for copying conditions. There is NO
8281 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
123122 # Here we must recognize all the valid KERNEL-OS combinations.
124123 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
125124 case $maybe_os in
126 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
127 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
128 knetbsd*-gnu* | netbsd*-gnu* | \
125 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
126 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
129127 kopensolaris*-gnu* | \
130128 storm-chaos* | os2-emx* | rtmk-nova*)
131129 os=-$maybe_os
282280 | moxie \
283281 | mt \
284282 | msp430 \
285 | nds32 | nds32le | nds32be \
286283 | nios | nios2 \
287284 | ns16k | ns32k \
288285 | or32 \
296293 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
297294 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
298295 | spu | strongarm \
299 | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
296 | tahoe | thumb | tic4x | tic80 | tron \
300297 | ubicom32 \
301298 | v850 | v850e \
302299 | we32k \
303300 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
304301 | z8k | z80)
305302 basic_machine=$basic_machine-unknown
306 ;;
307 c54x)
308 basic_machine=tic54x-unknown
309 ;;
310 c55x)
311 basic_machine=tic55x-unknown
312 ;;
313 c6x)
314 basic_machine=tic6x-unknown
315303 ;;
316304 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
317305 # Motorola 68HC11/12.
344332 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
345333 | avr-* | avr32-* \
346334 | bfin-* | bs2000-* \
347 | c[123]* | c30-* | [cjt]90-* | c4x-* \
335 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
348336 | clipper-* | craynv-* | cydra-* \
349337 | d10v-* | d30v-* | dlx-* \
350338 | elxsi-* \
378366 | mmix-* \
379367 | mt-* \
380368 | msp430-* \
381 | nds32-* | nds32le-* | nds32be-* \
382369 | nios-* | nios2-* \
383370 | none-* | np1-* | ns16k-* | ns32k-* \
384371 | orion-* \
392379 | sparclite-* \
393380 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
394381 | tahoe-* | thumb-* \
395 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
396 | tile-* | tilegx-* \
382 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
397383 | tron-* \
398384 | ubicom32-* \
399385 | v850-* | v850e-* | vax-* \
493479 basic_machine=powerpc-ibm
494480 os=-cnk
495481 ;;
496 c54x-*)
497 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
498 ;;
499 c55x-*)
500 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
501 ;;
502 c6x-*)
503 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
504 ;;
505482 c90)
506483 basic_machine=c90-cray
507484 os=-unicos
538515 basic_machine=craynv-cray
539516 os=-unicosmp
540517 ;;
541 cr16 | cr16-*)
518 cr16)
542519 basic_machine=cr16-unknown
543520 os=-elf
544521 ;;
861838 np1)
862839 basic_machine=np1-gould
863840 ;;
864 neo-tandem)
865 basic_machine=neo-tandem
866 ;;
867 nse-tandem)
868 basic_machine=nse-tandem
869 ;;
870841 nsr-tandem)
871842 basic_machine=nsr-tandem
872843 ;;
11011072 basic_machine=t90-cray
11021073 os=-unicos
11031074 ;;
1104 # This must be matched before tile*.
1105 tilegx*)
1106 basic_machine=tilegx-unknown
1107 os=-linux-gnu
1075 tic54x | c54x*)
1076 basic_machine=tic54x-unknown
1077 os=-coff
1078 ;;
1079 tic55x | c55x*)
1080 basic_machine=tic55x-unknown
1081 os=-coff
1082 ;;
1083 tic6x | c6x*)
1084 basic_machine=tic6x-unknown
1085 os=-coff
11081086 ;;
11091087 tile*)
11101088 basic_machine=tile-unknown
13151293 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13161294 | -chorusos* | -chorusrdb* | -cegcc* \
13171295 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1318 | -mingw32* | -linux-gnu* | -linux-android* \
1319 | -linux-newlib* | -linux-uclibc* \
1296 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
13201297 | -uxpv* | -beos* | -mpeix* | -udk* \
13211298 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
13221299 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
14571434 -dicos*)
14581435 os=-dicos
14591436 ;;
1460 -nacl*)
1461 ;;
14621437 -none)
14631438 ;;
14641439 *)
14981473 ;;
14991474 c4x-* | tic4x-*)
15001475 os=-coff
1501 ;;
1502 tic54x-*)
1503 os=-coff
1504 ;;
1505 tic55x-*)
1506 os=-coff
1507 ;;
1508 tic6x-*)
1509 os=-coff
15101476 ;;
15111477 # This must come before the *-dec entry.
15121478 pdp10-*)
88 dnl All rights reserved.
99 dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
1010 dnl University of Stuttgart. All rights reserved.
11 dnl Copyright © 2006-2010 Cisco Systems, Inc. All rights reserved.
11 dnl Copyright © 2006-2011 Cisco Systems, Inc. All rights reserved.
12 dnl See COPYING in top-level directory.
1213
1314 # Main hwloc m4 macro, to be invoked by the user
1415 #
107108 # becomes the "main" config header file. Any AC_CONFIG_HEADERs
108109 # after that (hwloc/config.h) will only have selective #defines
109110 # replaced, not the entire file.
110 AC_CONFIG_HEADER(hwloc_config_prefix[include/private/config.h])
111 AC_CONFIG_HEADER(hwloc_config_prefix[include/hwloc/config.h])
111 AC_CONFIG_HEADERS(hwloc_config_prefix[include/private/autogen/config.h])
112 AC_CONFIG_HEADERS(hwloc_config_prefix[include/hwloc/autogen/config.h])
112113
113114 # What prefix are we using?
114115 AC_MSG_CHECKING([for hwloc symbol prefix])
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for hwloc 1.1.1.
2 # Generated by GNU Autoconf 2.68 for hwloc 1.1.2.
33 #
44 # Report bugs to <http://www.open-mpi.org/community/help/>.
55 #
569569 # Identity of this package.
570570 PACKAGE_NAME='hwloc'
571571 PACKAGE_TARNAME='hwloc'
572 PACKAGE_VERSION='1.1.1'
573 PACKAGE_STRING='hwloc 1.1.1'
572 PACKAGE_VERSION='1.1.2'
573 PACKAGE_STRING='hwloc 1.1.2'
574574 PACKAGE_BUGREPORT='http://www.open-mpi.org/community/help/'
575575 PACKAGE_URL=''
576576
874874 LIBS
875875 CPPFLAGS
876876 CPP
877 CPPFLAGS
878877 HWLOC_PKG_CONFIG
879878 HWLOC_KERRIGHED_CFLAGS
880879 HWLOC_KERRIGHED_LIBS
14341433 # Omit some internal or obsolete options to make the list less imposing.
14351434 # This message is too long to be a string in the A/UX 3.1 sh.
14361435 cat <<_ACEOF
1437 \`configure' configures hwloc 1.1.1 to adapt to many kinds of systems.
1436 \`configure' configures hwloc 1.1.2 to adapt to many kinds of systems.
14381437
14391438 Usage: $0 [OPTION]... [VAR=VALUE]...
14401439
15091508
15101509 if test -n "$ac_init_help"; then
15111510 case $ac_init_help in
1512 short | recursive ) echo "Configuration of hwloc 1.1.1:";;
1511 short | recursive ) echo "Configuration of hwloc 1.1.2:";;
15131512 esac
15141513 cat <<\_ACEOF
15151514
16691668 test -n "$ac_init_help" && exit $ac_status
16701669 if $ac_init_version; then
16711670 cat <<\_ACEOF
1672 hwloc configure 1.1.1
1671 hwloc configure 1.1.2
16731672 generated by GNU Autoconf 2.68
16741673
16751674 Copyright (C) 2010 Free Software Foundation, Inc.
23162315 This file contains any messages produced by compilers while
23172316 running configure, to aid debugging if configure makes a mistake.
23182317
2319 It was created by hwloc $as_me 1.1.1, which was
2318 It was created by hwloc $as_me 1.1.2, which was
23202319 generated by GNU Autoconf 2.68. Invocation command line was
23212320
23222321 $ $0 $@
32573256
32583257 # Define the identity of the package.
32593258 PACKAGE='hwloc'
3260 VERSION='1.1.1'
3259 VERSION='1.1.2'
32613260
32623261
32633262 cat >>confdefs.h <<_ACEOF
46294628 # standalone mode
46304629 if test "$enable_embedded_mode" != "yes"; then :
46314630 if test ! -d "$srcdir/doc"; then :
4632 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The hwloc source tree looks incomplete for a standalobe" >&5
4633 $as_echo "$as_me: WARNING: The hwloc source tree looks incomplete for a standalobe" >&2;}
4631 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The hwloc source tree looks incomplete for a standalone" >&5
4632 $as_echo "$as_me: WARNING: The hwloc source tree looks incomplete for a standalone" >&2;}
46344633 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: build. Perhaps this hwloc tree is intended for an embedded" >&5
46354634 $as_echo "$as_me: WARNING: build. Perhaps this hwloc tree is intended for an embedded" >&2;}
46364635 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: build? Try using the --enable-embedded-mode switch." >&5
53245323 # becomes the "main" config header file. Any AC_CONFIG_HEADERs
53255324 # after that (hwloc/config.h) will only have selective #defines
53265325 # replaced, not the entire file.
5327 ac_config_headers="$ac_config_headers include/private/config.h"
5328
5329 ac_config_headers="$ac_config_headers include/hwloc/config.h"
5326 ac_config_headers="$ac_config_headers include/private/autogen/config.h"
5327
5328 ac_config_headers="$ac_config_headers include/hwloc/autogen/config.h"
53305329
53315330
53325331 # What prefix are we using?
2112421123 # report actual input values of CONFIG_FILES etc. instead of their
2112521124 # values after options handling.
2112621125 ac_log="
21127 This file was extended by hwloc $as_me 1.1.1, which was
21126 This file was extended by hwloc $as_me 1.1.2, which was
2112821127 generated by GNU Autoconf 2.68. Invocation command line was
2112921128
2113021129 CONFIG_FILES = $CONFIG_FILES
2119421193 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
2119521194 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
2119621195 ac_cs_version="\\
21197 hwloc config.status 1.1.1
21196 hwloc config.status 1.1.2
2119821197 configured by $0, generated by GNU Autoconf 2.68,
2119921198 with options \\"\$ac_cs_config\\"
2120021199
2160321602 do
2160421603 case $ac_config_target in
2160521604 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
21606 "include/private/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/private/config.h" ;;
21607 "include/hwloc/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/hwloc/config.h" ;;
21605 "include/private/autogen/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/private/autogen/config.h" ;;
21606 "include/hwloc/autogen/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/hwloc/autogen/config.h" ;;
2160821607 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
2160921608 "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
2161021609 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
11 #
22 # Copyright © 2009 CNRS
33 # Copyright © 2009-2010 INRIA
4 # Copyright © 2009 Université Bordeaux 1
4 # Copyright © 2009, 2011 Université Bordeaux 1
55 # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
66 #
77 # See COPYING in top-level directory.
121121 # standalone mode
122122 AS_IF([test "$enable_embedded_mode" != "yes"],
123123 [AS_IF([test ! -d "$srcdir/doc"],
124 [AC_MSG_WARN([The hwloc source tree looks incomplete for a standalobe])
124 [AC_MSG_WARN([The hwloc source tree looks incomplete for a standalone])
125125 AC_MSG_WARN([build. Perhaps this hwloc tree is intended for an embedded])
126126 AC_MSG_WARN([build? Try using the --enable-embedded-mode switch.])
127127 AC_MSG_ERROR([Cannot build standalone hwloc])],
142142 -@mv -f $(DOX_DIR)/latex/tools.tex $(DOX_DIR)/latex/a00002.tex
143143 -@mv -f $(DOX_DIR)/html/envvar.html $(DOX_DIR)/html/a00003.html
144144 -@mv -f $(DOX_DIR)/latex/envvar.tex $(DOX_DIR)/latex/a00003.tex
145 -@mv -f $(DOX_DIR)/html/interoperability.html $(DOX_DIR)/html/a00004.html
146 -@mv -f $(DOX_DIR)/latex/interoperability.tex $(DOX_DIR)/latex/a00004.tex
147 -@mv -f $(DOX_DIR)/html/threadsafety.html $(DOX_DIR)/html/a00005.html
148 -@mv -f $(DOX_DIR)/latex/threadsafety.tex $(DOX_DIR)/latex/a00005.tex
149 -@mv -f $(DOX_DIR)/html/embed.html $(DOX_DIR)/html/a00006.html
150 -@mv -f $(DOX_DIR)/latex/embed.tex $(DOX_DIR)/latex/a00006.tex
151 -@mv -f $(DOX_DIR)/html/switchfromplpa.html $(DOX_DIR)/html/a00007.html
152 -@mv -f $(DOX_DIR)/latex/switchfromplpa.tex $(DOX_DIR)/latex/a00007.tex
145 -@mv -f $(DOX_DIR)/html/cpu_mem_bind.html $(DOX_DIR)/html/a00004.html
146 -@mv -f $(DOX_DIR)/latex/cpu_mem_bind.tex $(DOX_DIR)/latex/a00004.tex
147 -@mv -f $(DOX_DIR)/html/interoperability.html $(DOX_DIR)/html/a00005.html
148 -@mv -f $(DOX_DIR)/latex/interoperability.tex $(DOX_DIR)/latex/a00005.tex
149 -@mv -f $(DOX_DIR)/html/threadsafety.html $(DOX_DIR)/html/a00006.html
150 -@mv -f $(DOX_DIR)/latex/threadsafety.tex $(DOX_DIR)/latex/a00006.tex
151 -@mv -f $(DOX_DIR)/html/embed.html $(DOX_DIR)/html/a00007.html
152 -@mv -f $(DOX_DIR)/latex/embed.tex $(DOX_DIR)/latex/a00007.tex
153 -@mv -f $(DOX_DIR)/html/switchfromplpa.html $(DOX_DIR)/html/a00008.html
154 -@mv -f $(DOX_DIR)/latex/switchfromplpa.tex $(DOX_DIR)/latex/a00008.tex
155 -@mv -f $(DOX_DIR)/html/faq.html $(DOX_DIR)/html/a00009.html
156 -@mv -f $(DOX_DIR)/latex/faq.tex $(DOX_DIR)/latex/a00009.tex
153157 endif
154158 endif
155159
5757 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5858 $(ACLOCAL_M4)
5959 mkinstalldirs = $(install_sh) -d
60 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
61 $(top_builddir)/include/hwloc/config.h
60 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
61 $(top_builddir)/include/hwloc/autogen/config.h
6262 CONFIG_CLEAN_FILES = doxygen-config.cfg
6363 CONFIG_CLEAN_VPATH_FILES =
6464 @HWLOC_BUILD_TESTS_TRUE@am__EXEEXT_1 = hwloc-hello$(EXEEXT)
6767 AM_V_lt = $(am__v_lt_$(V))
6868 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
6969 am__v_lt_0 = --silent
70 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private -I$(top_builddir)/include/hwloc
70 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private/autogen -I$(top_builddir)/include/hwloc/autogen
7171 depcomp = $(SHELL) $(top_srcdir)/./config/depcomp
7272 am__depfiles_maybe = depfiles
7373 am__mv = mv -f
11751175 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/tools.tex $(DOX_DIR)/latex/a00002.tex
11761176 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/envvar.html $(DOX_DIR)/html/a00003.html
11771177 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/envvar.tex $(DOX_DIR)/latex/a00003.tex
1178 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/interoperability.html $(DOX_DIR)/html/a00004.html
1179 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/interoperability.tex $(DOX_DIR)/latex/a00004.tex
1180 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/threadsafety.html $(DOX_DIR)/html/a00005.html
1181 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/threadsafety.tex $(DOX_DIR)/latex/a00005.tex
1182 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/embed.html $(DOX_DIR)/html/a00006.html
1183 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/embed.tex $(DOX_DIR)/latex/a00006.tex
1184 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/switchfromplpa.html $(DOX_DIR)/html/a00007.html
1185 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/switchfromplpa.tex $(DOX_DIR)/latex/a00007.tex
1178 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/cpu_mem_bind.html $(DOX_DIR)/html/a00004.html
1179 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/cpu_mem_bind.tex $(DOX_DIR)/latex/a00004.tex
1180 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/interoperability.html $(DOX_DIR)/html/a00005.html
1181 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/interoperability.tex $(DOX_DIR)/latex/a00005.tex
1182 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/threadsafety.html $(DOX_DIR)/html/a00006.html
1183 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/threadsafety.tex $(DOX_DIR)/latex/a00006.tex
1184 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/embed.html $(DOX_DIR)/html/a00007.html
1185 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/embed.tex $(DOX_DIR)/latex/a00007.tex
1186 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/switchfromplpa.html $(DOX_DIR)/html/a00008.html
1187 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/switchfromplpa.tex $(DOX_DIR)/latex/a00008.tex
1188 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/html/faq.html $(DOX_DIR)/html/a00009.html
1189 @HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_DOXYGEN_BROKEN_SHORT_NAMES_TRUE@ -@mv -f $(DOX_DIR)/latex/faq.tex $(DOX_DIR)/latex/a00009.tex
11861190
11871191 #
11881192 # Rules for building the PDF
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Terms and Definitions </h1> </div>
2435 </div>
2536 <div class="contents">
26 <dl>
37 <div class="textblock"><dl>
2738 <dt>Object </dt>
2839 <dd><p class="startdd">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 <a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> enumeration.</p>
2940 <p>They are topologically sorted by CPU set into a tree. </p>
97108 <img src="diagram.png" alt="diagram.png"/>
98109 </div>
99110 <p>It should be noted that for PU objects, the logical index -- as computed linearly by hwloc -- is not the same as the OS index. </p>
100 </div>
101 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
111 </div></div>
112 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
102113 <a href="http://www.doxygen.org/index.html">
103 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
114 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
104115 </body>
105116 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Command-Line Tools </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>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.</p>
37 <div class="textblock"><p>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.</p>
2738 <h2><a class="anchor" id="cli_lstopo"></a>
2839 lstopo</h2>
2940 <p>lstopo (also known as hwloc-info and hwloc-ls) displays the hierarchical topology map of the current system. The output may be graphical or textual, and can also be exported to numerous file formats such as PDF, PNG, XML, and others.</p>
41 <p>It can also display the processes currently bound to a part of the machine (--ps option).</p>
3042 <p>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).</p>
3143 <h2><a class="anchor" id="cli_hwloc_bind"></a>
3244 hwloc-bind</h2>
4355 <h2><a class="anchor" id="cli_hwloc_ps"></a>
4456 hwloc-ps</h2>
4557 <p>hwloc-ps is a tool to display the bindings of processes that are currently running on the local machine. By default, hwloc-ps only lists processes that are bound; unbound process (and Linux kernel threads) are not displayed. </p>
46 </div>
47 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
58 </div></div>
59 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4860 <a href="http://www.doxygen.org/index.html">
49 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
61 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5062 </body>
5163 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Environment Variables </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>The behavior of the hwloc library and tools may be tuned thanks to the following environment variables.</p>
37 <div class="textblock"><p>The behavior of the hwloc library and tools may be tuned thanks to the following environment variables.</p>
2738 <dl>
2839 <dt>HWLOC_XMLFILE=/path/to/file.xml </dt>
2940 <dd><p class="startdd">enforces the discovery from the given XML file as if <a class="el" href="a00038.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml()</a> 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. </p>
3748 <dd><p class="startdd">enforces the return value of <a class="el" href="a00040.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem()</a>. 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. </p>
3849 <p class="enddd"></p>
3950 </dd>
51 <dt>HWLOC_IGNORE_DISTANCES=0 </dt>
52 <dd><p class="startdd">disables objects grouping based on distances. By default, hwloc uses distance matrices between objects (read from the OS) to find groups of close objects. These groups are described by adding intermediate Group objects in the topology. Setting this environment variable to 1 will disable this grouping. </p>
53 <p class="enddd"></p>
54 </dd>
4055 </dl>
41 </div>
42 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
56 </div></div>
57 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4358 <a href="http://www.doxygen.org/index.html">
44 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
59 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4560 </body>
4661 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>CPU and Memory Binding Overview </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>Some operating systems do not systematically provide separate functions for CPU and memory binding. This means that CPU binding functions may have have effects on the memory binding policy. Likewise, changing the memory binding policy may change the CPU binding of the current thread. This is often not a problem for applications, so by default hwloc will make use of these functions when they provide better binding support.</p>
37 <div class="textblock"><p>Some operating systems do not systematically provide separate functions for CPU and memory binding. This means that CPU binding functions may have have effects on the memory binding policy. Likewise, changing the memory binding policy may change the CPU binding of the current thread. This is often not a problem for applications, so by default hwloc will make use of these functions when they provide better binding support.</p>
2738 <p>If the application does not want the CPU binding to change when changing the memory policy, it needs to use the HWLOC_MEMBIND_NOCPUBIND flag to prevent hwloc from using OS functions which would change the CPU binding. Additionally, HWLOC_CPUBIND_NOMEMBIND can be passed to CPU binding function to prevent hwloc from using OS functions would change the memory binding policy. Of course, using these flags will reduce hwloc's overall support for binding, so their use is discouraged.</p>
2839 <p>One can avoid using these flags but still closely control both memory and CPU binding by allocating memory, touching each page in the allocated memory, and then changing the CPU binding. The already-really-allocated memory will then be "locked" to physical memory and will not be migrated. Thus, even if the memory binding policy gets changed by the CPU binding order, the already-allocated memory will not change with it. When binding and allocating further memory, the CPU binding should be performed again in case the memory binding altered the previously-selected CPU binding.</p>
2940 <p>Not all operating systems support the notion of a "current" memory binding policy for the current process, but such operating systems often still provide a way to allocate data on a given node set. Conversely, some operating systems support the notion of a "current" memory binding policy and do not permit allocating data on a specific node set without changing the current policy and allocate the data. To provide the most powerful coverage of these facilities, hwloc provides:</p>
3748 </ul>
3849 <p>An application can thus use the two first sets of functions if it wants to manage separately the global process binding policy and directed allocation, or use the third set of functions if it does not care about the process memory binding policy.</p>
3950 <p>See <a class="el" href="a00043.html">CPU binding</a> and <a class="el" href="a00044.html">Memory binding</a> for hwloc's API functions regarding CPU and memory binding, respectively. </p>
40 </div>
41 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
51 </div></div>
52 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4253 <a href="http://www.doxygen.org/index.html">
43 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
54 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4455 </body>
4556 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Interoperability With Other Software </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>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.</p>
37 <div class="textblock"><p>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.</p>
2738 <p>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.</p>
2839 <dl>
2940 <dt>Linux specific features </dt>
5566 <p class="enddd"></p>
5667 </dd>
5768 </dl>
58 </div>
59 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
69 </div></div>
70 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
6071 <a href="http://www.doxygen.org/index.html">
61 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
72 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
6273 </body>
6374 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Thread Safety </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>Like most libraries that mainly fill data structures, hwloc is not thread safe but rather reentrant: all state is held in a <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance without mutex protection. That means, for example, that two threads can safely operate on and modify two different <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instances, but they should not simultaneously invoke functions that modify the <em>same</em> instance. Similarly, one thread should not modify a <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance while another thread is reading or traversing it. However, two threads can safely read or traverse the same <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance concurrently.</p>
37 <div class="textblock"><p>Like most libraries that mainly fill data structures, hwloc is not thread safe but rather reentrant: all state is held in a <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance without mutex protection. That means, for example, that two threads can safely operate on and modify two different <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instances, but they should not simultaneously invoke functions that modify the <em>same</em> instance. Similarly, one thread should not modify a <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance while another thread is reading or traversing it. However, two threads can safely read or traverse the same <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance concurrently.</p>
2738 <p>When running in multiprocessor environments, be aware that proper thread synchronization and/or memory coherency protection is needed to pass hwloc data (such as <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> 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.</p>
2839 <p>For reference, <a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> modification operations include (but may not be limited to):</p>
2940 <dl>
4354 <p class="enddd"></p>
4455 </dd>
4556 </dl>
46 </div>
47 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
57 </div></div>
58 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4859 <a href="http://www.doxygen.org/index.html">
49 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
60 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5061 </body>
5162 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Embedding hwloc in Other Software </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>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.</p>
37 <div class="textblock"><p>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.</p>
2738 <p>When used in "embedded" mode, hwloc will:</p>
2839 <ul>
2940 <li>not install any header files</li>
8697 1. Add #include &lt;hwloc.h&gt;
8798 2. Add calls to sandbox_hwloc_init() and other hwloc API functions
8899 </pre></div><p>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. </p>
89 </div>
90 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
100 </div></div>
101 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
91102 <a href="http://www.doxygen.org/index.html">
92 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
103 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
93104 </body>
94105 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Switching from PLPA to hwloc </h1> </div>
2435 </div>
2536 <div class="contents">
26 <p>Although PLPA and hwloc share some of the same ideas, their programming interfaces are quite different. After much debate, it was decided <em>not</em> to emulate the PLPA API with hwloc's API because hwloc's API is already far more rich than PLPA's.</p>
37 <div class="textblock"><p>Although PLPA and hwloc share some of the same ideas, their programming interfaces are quite different. After much debate, it was decided <em>not</em> to emulate the PLPA API with hwloc's API because hwloc's API is already far more rich than PLPA's.</p>
2738 <p>More specifically, exploiting modern computing architecture <em>requires</em> 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).</p>
2839 <p>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 <em>all</em> the hardware.</p>
2940 <h2><a class="anchor" id="switchfromplpa_caching"></a>
4657 Counting Specification</h2>
4758 <p>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.</p>
4859 <p>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 <a class="el" href="a00053.html#gad00abc77f1670049a5b2139471d0c8db" title="Get online CPU set.">hwloc_topology_get_online_cpuset()</a> and other similar functions to filter the object that are relevant or not. </p>
49 </div>
50 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
60 </div></div>
61 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
5162 <a href="http://www.doxygen.org/index.html">
52 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
63 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5364 </body>
5465 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Frequently Asked Questions </h1> </div>
2435 </div>
2536 <div class="contents">
26 <h2><a class="anchor" id="faq_xml"></a>
37 <div class="textblock"><h2><a class="anchor" id="faq_xml"></a>
2738 I do not want hwloc to rediscover my enormous machine topology every time I rerun a process</h2>
2839 <p>Although the topology discovery is not expensive on common machines, its overhead may become significant when multiple processes repeat the discovery on large machines (for instance when starting one process per core in a parallel application). The machine topology usually does not vary much, except if some cores are stopped/restarted or if the administrator restrictions are modified. Thus rediscovering the whole topology again and again may look useless.</p>
2940 <p>For this purpose, hwloc offers XML import/export features. It lets you save the discovered topology to a file (for instance with the lstopo program) and reload it later by setting the HWLOC_XMLFILE environment variable. Loading a XML topology is usually much faster than querying multiple files or calling multiple functions of the operating system. It is also possible to manipulate such XML files with the C programming interface, and the import/export may also be directed to memory buffer (that may for instance be transmitted between applications through a socket).</p>
4455 #endif
4556 </pre></div><p>Similarly, the hwloc 1.0 interface may be detected by comparing <code>HWLOC_API_VERSION</code> with <code>0x00010000</code>.</p>
4657 <p>hwloc 0.9 did not define any <code>HWLOC_API_VERSION</code> but this very old release probably does not deserve support from your application anymore. </p>
47 </div>
48 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
58 </div></div>
59 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4960 <a href="http://www.doxygen.org/index.html">
50 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
61 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5162 </body>
5263 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2435 </ul>
2536 </div>
26 <div class="navpath">
37 <div id="nav-path" class="navpath">
2738 <ul>
28 <li><a class="el" href="a00013.html">hwloc_obj_attr_u</a> </li>
29 <li><a class="el" href="a00010.html">hwloc_cache_attr_s</a> </li>
39 <li class="navelem"><a class="el" href="a00013.html">hwloc_obj_attr_u</a> </li>
40 <li class="navelem"><a class="el" href="a00010.html">hwloc_cache_attr_s</a> </li>
3041 </ul>
3142 </div>
3243 </div>
4556 <table class="memberdecls">
4657 <tr><td colspan="2"><h2><a name="pub-attribs"></a>
4758 Data Fields</h2></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a3c68235220554308f89768f281ad1e62">size</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#abe5e788943ed04302976740c829674c0">size</a></td></tr>
4960 <tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a5c8f7f39193736c2187ed626940835d5">depth</a></td></tr>
5061 <tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db">linesize</a></td></tr>
5162 </table>
5263 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>Cache-specific Object Attributes. </p>
54 <hr/><h2>Field Documentation</h2>
64 <div class="textblock"><p>Cache-specific Object Attributes. </p>
65 </div><hr/><h2>Field Documentation</h2>
5566 <a class="anchor" id="a5c8f7f39193736c2187ed626940835d5"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_cache_attr_s::depth" ref="a5c8f7f39193736c2187ed626940835d5" args="" -->
5667 <div class="memitem">
5768 <div class="memproto">
8293
8394 </div>
8495 </div>
85 <a class="anchor" id="a3c68235220554308f89768f281ad1e62"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_cache_attr_s::size" ref="a3c68235220554308f89768f281ad1e62" args="" -->
96 <a class="anchor" id="abe5e788943ed04302976740c829674c0"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_cache_attr_s::size" ref="abe5e788943ed04302976740c829674c0" args="" -->
8697 <div class="memitem">
8798 <div class="memproto">
8899 <table class="memname">
89100 <tr>
90 <td class="memname">uint64_t <a class="el" href="a00010.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s::size</a></td>
101 <td class="memname">hwloc_uint64_t <a class="el" href="a00010.html#abe5e788943ed04302976740c829674c0">hwloc_obj_attr_u::hwloc_cache_attr_s::size</a></td>
91102 </tr>
92103 </table>
93104 </div>
101112 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
102113 </ul>
103114 </div>
104 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
115 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
105116 <a href="http://www.doxygen.org/index.html">
106 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
117 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
107118 </body>
108119 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2435 </ul>
2536 </div>
26 <div class="navpath">
37 <div id="nav-path" class="navpath">
2738 <ul>
28 <li><a class="el" href="a00013.html">hwloc_obj_attr_u</a> </li>
29 <li><a class="el" href="a00011.html">hwloc_group_attr_s</a> </li>
39 <li class="navelem"><a class="el" href="a00013.html">hwloc_obj_attr_u</a> </li>
40 <li class="navelem"><a class="el" href="a00011.html">hwloc_group_attr_s</a> </li>
3041 </ul>
3142 </div>
3243 </div>
4859 <tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ad914eac61c77481e1b7037877bcc5579">depth</a></td></tr>
4960 </table>
5061 <hr/><a name="_details"></a><h2>Detailed Description</h2>
51 <p>Group-specific Object Attributes. </p>
52 <hr/><h2>Field Documentation</h2>
62 <div class="textblock"><p>Group-specific Object Attributes. </p>
63 </div><hr/><h2>Field Documentation</h2>
5364 <a class="anchor" id="ad914eac61c77481e1b7037877bcc5579"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_group_attr_s::depth" ref="ad914eac61c77481e1b7037877bcc5579" args="" -->
5465 <div class="memitem">
5566 <div class="memproto">
6980 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
7081 </ul>
7182 </div>
72 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
83 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7384 <a href="http://www.doxygen.org/index.html">
74 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
85 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7586 </body>
7687 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_obj Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00036.html">Topology Objects</a>]</small>
34 </h1> </div>
42 <h1>hwloc_obj Struct Reference<div class="ingroups"><a class="el" href="a00036.html">Topology Objects</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_obj" -->
7280 <tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70">infos_count</a></td></tr>
7381 </table>
7482 <hr/><a name="_details"></a><h2>Detailed Description</h2>
75 <p>Structure of a topology object. </p>
83 <div class="textblock"><p>Structure of a topology object. </p>
7684 <p>Applications must not modify any field except <a class="el" href="a00012.html#a76fd3ac94401cf32dfccc3a3a8de68a5" title="Application-given private data pointer, initialized to NULL, use it as you wish.">hwloc_obj.userdata</a>. </p>
77 <hr/><h2>Field Documentation</h2>
85 </div><hr/><h2>Field Documentation</h2>
7886 <a class="anchor" id="afa3c59a6dd3da8ffa48710780a1bfb34"></a><!-- doxytag: member="hwloc_obj::allowed_cpuset" ref="afa3c59a6dd3da8ffa48710780a1bfb34" args="" -->
7987 <div class="memitem">
8088 <div class="memproto">
519527 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
520528 </ul>
521529 </div>
522 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
530 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
523531 <a href="http://www.doxygen.org/index.html">
524 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
532 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
525533 </body>
526534 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2940 <a href="#nested-classes">Data Structures</a> &#124;
3041 <a href="#pub-attribs">Data Fields</a> </div>
3142 <div class="headertitle">
32 <h1>hwloc_obj_attr_u Union Reference<br/>
33 <small>
34 [<a class="el" href="a00036.html">Topology Objects</a>]</small>
35 </h1> </div>
43 <h1>hwloc_obj_attr_u Union Reference<div class="ingroups"><a class="el" href="a00036.html">Topology Objects</a></div></h1> </div>
3644 </div>
3745 <div class="contents">
3846 <!-- doxytag: class="hwloc_obj_attr_u" -->
5563 <a class="el" href="a00011.html">hwloc_obj_attr_u::hwloc_group_attr_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">group</a></td></tr>
5664 </table>
5765 <hr/><a name="_details"></a><h2>Detailed Description</h2>
58 <p>Object type-specific Attributes. </p>
59 <hr/><h2>Field Documentation</h2>
66 <div class="textblock"><p>Object type-specific Attributes. </p>
67 </div><hr/><h2>Field Documentation</h2>
6068 <a class="anchor" id="ab5a8ae3bf490e6b1071fea53f7382836"></a><!-- doxytag: member="hwloc_obj_attr_u::cache" ref="ab5a8ae3bf490e6b1071fea53f7382836" args="" -->
6169 <div class="memitem">
6270 <div class="memproto">
8795 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
8896 </ul>
8997 </div>
90 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
98 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
9199 <a href="http://www.doxygen.org/index.html">
92 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
100 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
93101 </body>
94102 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_obj_info_s Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00036.html">Topology Objects</a>]</small>
34 </h1> </div>
42 <h1>hwloc_obj_info_s Struct Reference<div class="ingroups"><a class="el" href="a00036.html">Topology Objects</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_obj_info_s" -->
4654 <tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce">value</a></td></tr>
4755 </table>
4856 <hr/><a name="_details"></a><h2>Detailed Description</h2>
49 <p>Object info. </p>
50 <hr/><h2>Field Documentation</h2>
57 <div class="textblock"><p>Object info. </p>
58 </div><hr/><h2>Field Documentation</h2>
5159 <a class="anchor" id="a115dde58f40338a2d3276d59c099857d"></a><!-- doxytag: member="hwloc_obj_info_s::name" ref="a115dde58f40338a2d3276d59c099857d" args="" -->
5260 <div class="memitem">
5361 <div class="memproto">
8290 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
8391 </ul>
8492 </div>
85 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
93 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
8694 <a href="http://www.doxygen.org/index.html">
87 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
95 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
8896 </body>
8997 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2435 </ul>
2536 </div>
26 <div class="navpath">
37 <div id="nav-path" class="navpath">
2738 <ul>
28 <li><a class="el" href="a00016.html">hwloc_obj_memory_s</a> </li>
29 <li><a class="el" href="a00015.html">hwloc_obj_memory_page_type_s</a> </li>
39 <li class="navelem"><a class="el" href="a00016.html">hwloc_obj_memory_s</a> </li>
40 <li class="navelem"><a class="el" href="a00015.html">hwloc_obj_memory_page_type_s</a> </li>
3041 </ul>
3142 </div>
3243 </div>
4556 <table class="memberdecls">
4657 <tr><td colspan="2"><h2><a name="pub-attribs"></a>
4758 Data Fields</h2></td></tr>
48 <tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b">size</a></td></tr>
49 <tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3">count</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#a3f1d261766352288791512974665ce01">size</a></td></tr>
60 <tr><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260">count</a></td></tr>
5061 </table>
5162 <hr/><a name="_details"></a><h2>Detailed Description</h2>
52 <p>Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0. </p>
63 <div class="textblock"><p>Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0. </p>
5364 <p>The array is sorted by increasing <code>size</code> fields. It contains <code>page_types_len</code> slots. </p>
54 <hr/><h2>Field Documentation</h2>
55 <a class="anchor" id="ab5d01db7b26177a6b5361107cad152c3"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count" ref="ab5d01db7b26177a6b5361107cad152c3" args="" -->
65 </div><hr/><h2>Field Documentation</h2>
66 <a class="anchor" id="aa5b9fa36f1dc47ff3c345fe4dd06b260"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count" ref="aa5b9fa36f1dc47ff3c345fe4dd06b260" args="" -->
5667 <div class="memitem">
5768 <div class="memproto">
5869 <table class="memname">
5970 <tr>
60 <td class="memname">uint64_t <a class="el" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count</a></td>
71 <td class="memname">hwloc_uint64_t <a class="el" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count</a></td>
6172 </tr>
6273 </table>
6374 </div>
6778
6879 </div>
6980 </div>
70 <a class="anchor" id="af0619463fb5d10052b7fe3495a66d74b"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size" ref="af0619463fb5d10052b7fe3495a66d74b" args="" -->
81 <a class="anchor" id="a3f1d261766352288791512974665ce01"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size" ref="a3f1d261766352288791512974665ce01" args="" -->
7182 <div class="memitem">
7283 <div class="memproto">
7384 <table class="memname">
7485 <tr>
75 <td class="memname">uint64_t <a class="el" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size</a></td>
86 <td class="memname">hwloc_uint64_t <a class="el" href="a00015.html#a3f1d261766352288791512974665ce01">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size</a></td>
7687 </tr>
7788 </table>
7889 </div>
8697 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
8798 </ul>
8899 </div>
89 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
100 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
90101 <a href="http://www.doxygen.org/index.html">
91 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
102 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
92103 </body>
93104 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2940 <a href="#nested-classes">Data Structures</a> &#124;
3041 <a href="#pub-attribs">Data Fields</a> </div>
3142 <div class="headertitle">
32 <h1>hwloc_obj_memory_s Struct Reference<br/>
33 <small>
34 [<a class="el" href="a00036.html">Topology Objects</a>]</small>
35 </h1> </div>
43 <h1>hwloc_obj_memory_s Struct Reference<div class="ingroups"><a class="el" href="a00036.html">Topology Objects</a></div></h1> </div>
3644 </div>
3745 <div class="contents">
3846 <!-- doxytag: class="hwloc_obj_memory_s" -->
4755 <tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0. <a href="a00015.html#_details">More...</a><br/></td></tr>
4856 <tr><td colspan="2"><h2><a name="pub-attribs"></a>
4957 Data Fields</h2></td></tr>
50 <tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3">total_memory</a></td></tr>
51 <tr><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e">local_memory</a></td></tr>
58 <tr><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44">total_memory</a></td></tr>
59 <tr><td class="memItemLeft" align="right" valign="top">hwloc_uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a">local_memory</a></td></tr>
5260 <tr><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a208c27f4491077d7fb9ba5db8b29cb57">page_types_len</a></td></tr>
5361 <tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
5462 <a class="el" href="a00015.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#a865eba7b12b986d72dbe7a2cfd97c50d">page_types</a></td></tr>
5563 </table>
5664 <hr/><a name="_details"></a><h2>Detailed Description</h2>
57 <p>Object memory. </p>
58 <hr/><h2>Field Documentation</h2>
59 <a class="anchor" id="a27043a3150660f44ed84916c2d0d7e0e"></a><!-- doxytag: member="hwloc_obj_memory_s::local_memory" ref="a27043a3150660f44ed84916c2d0d7e0e" args="" -->
65 <div class="textblock"><p>Object memory. </p>
66 </div><hr/><h2>Field Documentation</h2>
67 <a class="anchor" id="aace044c7f3fd9dffe50202296bf1dc5a"></a><!-- doxytag: member="hwloc_obj_memory_s::local_memory" ref="aace044c7f3fd9dffe50202296bf1dc5a" args="" -->
6068 <div class="memitem">
6169 <div class="memproto">
6270 <table class="memname">
6371 <tr>
64 <td class="memname">uint64_t <a class="el" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s::local_memory</a></td>
72 <td class="memname">hwloc_uint64_t <a class="el" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a">hwloc_obj_memory_s::local_memory</a></td>
6573 </tr>
6674 </table>
6775 </div>
99107
100108 </div>
101109 </div>
102 <a class="anchor" id="a68c3323d2d0a248d1b7fec7af44bebe3"></a><!-- doxytag: member="hwloc_obj_memory_s::total_memory" ref="a68c3323d2d0a248d1b7fec7af44bebe3" args="" -->
110 <a class="anchor" id="a8befd0b3f4f8b695cafed04b31f36a44"></a><!-- doxytag: member="hwloc_obj_memory_s::total_memory" ref="a8befd0b3f4f8b695cafed04b31f36a44" args="" -->
103111 <div class="memitem">
104112 <div class="memproto">
105113 <table class="memname">
106114 <tr>
107 <td class="memname">uint64_t <a class="el" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s::total_memory</a></td>
115 <td class="memname">hwloc_uint64_t <a class="el" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44">hwloc_obj_memory_s::total_memory</a></td>
108116 </tr>
109117 </table>
110118 </div>
118126 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
119127 </ul>
120128 </div>
121 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
129 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
122130 <a href="http://www.doxygen.org/index.html">
123 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
131 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
124132 </body>
125133 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_topology_cpubind_support Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00038.html">Configure Topology Detection</a>]</small>
34 </h1> </div>
42 <h1>hwloc_topology_cpubind_support Struct Reference<div class="ingroups"><a class="el" href="a00038.html">Configure Topology Detection</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_topology_cpubind_support" -->
5260 <tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html#a8dd4d8531ed2eebdce1507e7d104154e">get_thread_cpubind</a></td></tr>
5361 </table>
5462 <hr/><a name="_details"></a><h2>Detailed Description</h2>
55 <p>Flags describing actual PU binding support for this topology. </p>
56 <hr/><h2>Field Documentation</h2>
63 <div class="textblock"><p>Flags describing actual PU binding support for this topology. </p>
64 </div><hr/><h2>Field Documentation</h2>
5765 <a class="anchor" id="aae705bc447adc163ead377362c4dfe9f"></a><!-- doxytag: member="hwloc_topology_cpubind_support::get_proc_cpubind" ref="aae705bc447adc163ead377362c4dfe9f" args="" -->
5866 <div class="memitem">
5967 <div class="memproto">
170178 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
171179 </ul>
172180 </div>
173 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
181 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
174182 <a href="http://www.doxygen.org/index.html">
175 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
183 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
176184 </body>
177185 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_topology_discovery_support Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00038.html">Configure Topology Detection</a>]</small>
34 </h1> </div>
42 <h1>hwloc_topology_discovery_support Struct Reference<div class="ingroups"><a class="el" href="a00038.html">Configure Topology Detection</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_topology_discovery_support" -->
4553 <tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">pu</a></td></tr>
4654 </table>
4755 <hr/><a name="_details"></a><h2>Detailed Description</h2>
48 <p>Flags describing actual discovery support for this topology. </p>
49 <hr/><h2>Field Documentation</h2>
56 <div class="textblock"><p>Flags describing actual discovery support for this topology. </p>
57 </div><hr/><h2>Field Documentation</h2>
5058 <a class="anchor" id="ad7bb4ecf7a82f5a04fc632e9592ad3ab"></a><!-- doxytag: member="hwloc_topology_discovery_support::pu" ref="ad7bb4ecf7a82f5a04fc632e9592ad3ab" args="" -->
5159 <div class="memitem">
5260 <div class="memproto">
6674 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
6775 </ul>
6876 </div>
69 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
77 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7078 <a href="http://www.doxygen.org/index.html">
71 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
79 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7280 </body>
7381 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_topology_membind_support Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00038.html">Configure Topology Detection</a>]</small>
34 </h1> </div>
42 <h1>hwloc_topology_membind_support Struct Reference<div class="ingroups"><a class="el" href="a00038.html">Configure Topology Detection</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_topology_membind_support" -->
5967 <tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html#aafa7683871a6a760246f9b35209caec5">migrate_membind</a></td></tr>
6068 </table>
6169 <hr/><a name="_details"></a><h2>Detailed Description</h2>
62 <p>Flags describing actual memory binding support for this topology. </p>
63 <hr/><h2>Field Documentation</h2>
70 <div class="textblock"><p>Flags describing actual memory binding support for this topology. </p>
71 </div><hr/><h2>Field Documentation</h2>
6472 <a class="anchor" id="ae551abb27d2aa9ce008583488b845b98"></a><!-- doxytag: member="hwloc_topology_membind_support::alloc_membind" ref="ae551abb27d2aa9ce008583488b845b98" args="" -->
6573 <div class="memitem">
6674 <div class="memproto">
275283 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
276284 </ul>
277285 </div>
278 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
286 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
279287 <a href="http://www.doxygen.org/index.html">
280 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
288 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
281289 </body>
282290 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2839 <div class="summary">
2940 <a href="#pub-attribs">Data Fields</a> </div>
3041 <div class="headertitle">
31 <h1>hwloc_topology_support Struct Reference<br/>
32 <small>
33 [<a class="el" href="a00038.html">Configure Topology Detection</a>]</small>
34 </h1> </div>
42 <h1>hwloc_topology_support Struct Reference<div class="ingroups"><a class="el" href="a00038.html">Configure Topology Detection</a></div></h1> </div>
3543 </div>
3644 <div class="contents">
3745 <!-- doxytag: class="hwloc_topology_support" -->
5058 <a class="el" href="a00019.html">hwloc_topology_membind_support</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html#ac6eb62ae8bc0a68dce679a7107a36194">membind</a></td></tr>
5159 </table>
5260 <hr/><a name="_details"></a><h2>Detailed Description</h2>
53 <p>Set of flags describing actual support for this topology. </p>
61 <div class="textblock"><p>Set of flags describing actual support for this topology. </p>
5462 <p>This is retrieved with <a class="el" href="a00038.html#gac2126e105f3ae708efca2e90d612625a" title="Retrieve the topology support.">hwloc_topology_get_support()</a> and will be valid until the topology object is destroyed. Note: the values are correct only after discovery. </p>
55 <hr/><h2>Field Documentation</h2>
63 </div><hr/><h2>Field Documentation</h2>
5664 <a class="anchor" id="adef2bb91f74c3e70a2a071393caf5f56"></a><!-- doxytag: member="hwloc_topology_support::cpubind" ref="adef2bb91f74c3e70a2a071393caf5f56" args="" -->
5765 <div class="memitem">
5866 <div class="memproto">
96104 <li><a class="el" href="a00027_source.html">hwloc.h</a></li>
97105 </ul>
98106 </div>
99 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
107 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
100108 <a href="http://www.doxygen.org/index.html">
101 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
109 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
102110 </body>
103111 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2940 <div class="contents">
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS</span>
32 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
43 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2011 INRIA. All rights reserved.</span>
3344 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2010 Université Bordeaux 1</span>
34 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
45 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.</span>
3546 <a name="l00006"></a>00006 <span class="comment"> * See COPYING in top-level directory.</span>
3647 <a name="l00007"></a>00007 <span class="comment"> */</span>
3748 <a name="l00008"></a>00008
3849 <a name="l00013"></a>00013 <span class="preprocessor">#ifndef HWLOC_BITMAP_H</span>
3950 <a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_BITMAP_H</span>
4051 <a name="l00015"></a>00015 <span class="preprocessor"></span>
41 <a name="l00016"></a>00016 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
52 <a name="l00016"></a>00016 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
4253 <a name="l00017"></a>00017 <span class="preprocessor">#include &lt;assert.h&gt;</span>
4354 <a name="l00018"></a>00018
4455 <a name="l00019"></a>00019
5566 <a name="l00051"></a>00051 <span class="comment"> * Bitmap allocation, freeing and copying.</span>
5667 <a name="l00052"></a>00052 <span class="comment"> */</span>
5768 <a name="l00053"></a>00053
58 <a name="l00060"></a>00060 hwloc_bitmap_t <a class="code" href="a00056.html#ga9fb6aedc30d4ef4998fa53e2403b6130" title="Allocate a new empty bitmap.">hwloc_bitmap_alloc</a>(<span class="keywordtype">void</span>) ;
59 <a name="l00061"></a>00061
60 <a name="l00063"></a>00063 hwloc_bitmap_t <a class="code" href="a00056.html#gadd4479485685bda179f4b8b9b70f671e" title="Allocate a new full bitmap.">hwloc_bitmap_alloc_full</a>(<span class="keywordtype">void</span>) ;
61 <a name="l00064"></a>00064
62 <a name="l00066"></a>00066 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga8e7035fe555ef96921bfb98e08519bc7" title="Free bitmap bitmap.">hwloc_bitmap_free</a>(hwloc_bitmap_t bitmap);
63 <a name="l00067"></a>00067
64 <a name="l00069"></a>00069 hwloc_bitmap_t <a class="code" href="a00056.html#gaaa4ed76211cd3694dfbea2109fc440be" title="Duplicate bitmap bitmap by allocating a new bitmap and copying bitmap contents.">hwloc_bitmap_dup</a>(hwloc_const_bitmap_t bitmap) ;
65 <a name="l00070"></a>00070
66 <a name="l00072"></a>00072 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(hwloc_bitmap_t dst, hwloc_const_bitmap_t src);
67 <a name="l00073"></a>00073
69 <a name="l00061"></a>00061 hwloc_bitmap_t <a class="code" href="a00056.html#ga9fb6aedc30d4ef4998fa53e2403b6130" title="Allocate a new empty bitmap.">hwloc_bitmap_alloc</a>(<span class="keywordtype">void</span>) ;
70 <a name="l00062"></a>00062
71 <a name="l00064"></a>00064 hwloc_bitmap_t <a class="code" href="a00056.html#gadd4479485685bda179f4b8b9b70f671e" title="Allocate a new full bitmap.">hwloc_bitmap_alloc_full</a>(<span class="keywordtype">void</span>) ;
72 <a name="l00065"></a>00065
73 <a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga8e7035fe555ef96921bfb98e08519bc7" title="Free bitmap bitmap.">hwloc_bitmap_free</a>(hwloc_bitmap_t bitmap);
74 <a name="l00071"></a>00071
75 <a name="l00073"></a>00073 hwloc_bitmap_t <a class="code" href="a00056.html#gaaa4ed76211cd3694dfbea2109fc440be" title="Duplicate bitmap bitmap by allocating a new bitmap and copying bitmap contents.">hwloc_bitmap_dup</a>(hwloc_const_bitmap_t bitmap) ;
6876 <a name="l00074"></a>00074
69 <a name="l00075"></a>00075 <span class="comment">/*</span>
70 <a name="l00076"></a>00076 <span class="comment"> * Bitmap/String Conversion</span>
71 <a name="l00077"></a>00077 <span class="comment"> */</span>
77 <a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(hwloc_bitmap_t dst, hwloc_const_bitmap_t src);
78 <a name="l00077"></a>00077
7279 <a name="l00078"></a>00078
73 <a name="l00088"></a>00088 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga6c0d60db98f27276752c1e5fafcbd7d1" title="Stringify a bitmap.">hwloc_bitmap_snprintf</a>(<span class="keywordtype">char</span> * restrict buf, <span class="keywordtype">size_t</span> buflen, hwloc_const_bitmap_t bitmap);
74 <a name="l00089"></a>00089
75 <a name="l00092"></a>00092 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gad3cf87ceb58aa91656756bbb58057320" title="Stringify a bitmap into a newly allocated string.">hwloc_bitmap_asprintf</a>(<span class="keywordtype">char</span> ** strp, hwloc_const_bitmap_t bitmap);
80 <a name="l00079"></a>00079 <span class="comment">/*</span>
81 <a name="l00080"></a>00080 <span class="comment"> * Bitmap/String Conversion</span>
82 <a name="l00081"></a>00081 <span class="comment"> */</span>
83 <a name="l00082"></a>00082
84 <a name="l00092"></a>00092 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga6c0d60db98f27276752c1e5fafcbd7d1" title="Stringify a bitmap.">hwloc_bitmap_snprintf</a>(<span class="keywordtype">char</span> * restrict buf, <span class="keywordtype">size_t</span> buflen, hwloc_const_bitmap_t bitmap);
7685 <a name="l00093"></a>00093
77 <a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga553cd5ceb1925bfd31788e70b4a46ae8" title="Parse a bitmap string and stores it in bitmap bitmap.">hwloc_bitmap_sscanf</a>(hwloc_bitmap_t bitmap, const <span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>);
86 <a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gad3cf87ceb58aa91656756bbb58057320" title="Stringify a bitmap into a newly allocated string.">hwloc_bitmap_asprintf</a>(<span class="keywordtype">char</span> ** strp, hwloc_const_bitmap_t bitmap);
7887 <a name="l00097"></a>00097
79 <a name="l00110"></a>00110 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gae0e0619f43a4af5efafb75f489c1c6ec" title="Stringify a bitmap in the taskset-specific format.">hwloc_bitmap_taskset_snprintf</a>(<span class="keywordtype">char</span> * restrict buf, <span class="keywordtype">size_t</span> buflen, hwloc_const_bitmap_t bitmap);
80 <a name="l00111"></a>00111
81 <a name="l00114"></a>00114 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaa3df92e204ffb24ceddd44d8d58f6eaa" title="Stringify a bitmap into a newly allocated taskset-specific string.">hwloc_bitmap_taskset_asprintf</a>(<span class="keywordtype">char</span> ** strp, hwloc_const_bitmap_t bitmap);
88 <a name="l00100"></a>00100 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga553cd5ceb1925bfd31788e70b4a46ae8" title="Parse a bitmap string and stores it in bitmap bitmap.">hwloc_bitmap_sscanf</a>(hwloc_bitmap_t bitmap, const <span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>);
89 <a name="l00101"></a>00101
90 <a name="l00114"></a>00114 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gae0e0619f43a4af5efafb75f489c1c6ec" title="Stringify a bitmap in the taskset-specific format.">hwloc_bitmap_taskset_snprintf</a>(<span class="keywordtype">char</span> * restrict buf, <span class="keywordtype">size_t</span> buflen, hwloc_const_bitmap_t bitmap);
8291 <a name="l00115"></a>00115
83 <a name="l00118"></a>00118 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga71b28ef0d7206e37adbb94468c03e1a9" title="Parse a taskset-specific bitmap string and stores it in bitmap bitmap.">hwloc_bitmap_taskset_sscanf</a>(hwloc_bitmap_t bitmap, const <span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>);
92 <a name="l00118"></a>00118 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaa3df92e204ffb24ceddd44d8d58f6eaa" title="Stringify a bitmap into a newly allocated taskset-specific string.">hwloc_bitmap_taskset_asprintf</a>(<span class="keywordtype">char</span> ** strp, hwloc_const_bitmap_t bitmap);
8493 <a name="l00119"></a>00119
85 <a name="l00120"></a>00120
86 <a name="l00121"></a>00121 <span class="comment">/*</span>
87 <a name="l00122"></a>00122 <span class="comment"> * Building bitmaps.</span>
88 <a name="l00123"></a>00123 <span class="comment"> */</span>
94 <a name="l00122"></a>00122 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga71b28ef0d7206e37adbb94468c03e1a9" title="Parse a taskset-specific bitmap string and stores it in bitmap bitmap.">hwloc_bitmap_taskset_sscanf</a>(hwloc_bitmap_t bitmap, const <span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>);
95 <a name="l00123"></a>00123
8996 <a name="l00124"></a>00124
90 <a name="l00126"></a>00126 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(hwloc_bitmap_t bitmap);
91 <a name="l00127"></a>00127
92 <a name="l00129"></a>00129 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(hwloc_bitmap_t bitmap);
93 <a name="l00130"></a>00130
94 <a name="l00132"></a>00132 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga8ea10f5ebaadb8418f28f953d6106190" title="Empty the bitmap bitmap and add bit id.">hwloc_bitmap_only</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
95 <a name="l00133"></a>00133
96 <a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga88204c1c313aa067da10241b5886a166" title="Fill the bitmap and clear the index id.">hwloc_bitmap_allbut</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
97 <a name="l00136"></a>00136
98 <a name="l00138"></a>00138 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga02eae57cff32b6aa55044e6609ae7d73" title="Setup bitmap bitmap from unsigned long mask.">hwloc_bitmap_from_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
99 <a name="l00139"></a>00139
100 <a name="l00141"></a>00141 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga3c44c943cb3a3e4577b32d924e4f36f2" title="Setup bitmap bitmap from unsigned long mask used as i -th subset.">hwloc_bitmap_from_ith_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
101 <a name="l00142"></a>00142
97 <a name="l00125"></a>00125 <span class="comment">/*</span>
98 <a name="l00126"></a>00126 <span class="comment"> * Building bitmaps.</span>
99 <a name="l00127"></a>00127 <span class="comment"> */</span>
100 <a name="l00128"></a>00128
101 <a name="l00130"></a>00130 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(hwloc_bitmap_t bitmap);
102 <a name="l00131"></a>00131
103 <a name="l00133"></a>00133 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(hwloc_bitmap_t bitmap);
104 <a name="l00134"></a>00134
105 <a name="l00136"></a>00136 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga8ea10f5ebaadb8418f28f953d6106190" title="Empty the bitmap bitmap and add bit id.">hwloc_bitmap_only</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
106 <a name="l00137"></a>00137
107 <a name="l00139"></a>00139 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga88204c1c313aa067da10241b5886a166" title="Fill the bitmap and clear the index id.">hwloc_bitmap_allbut</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
108 <a name="l00140"></a>00140
109 <a name="l00142"></a>00142 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga02eae57cff32b6aa55044e6609ae7d73" title="Setup bitmap bitmap from unsigned long mask.">hwloc_bitmap_from_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
102110 <a name="l00143"></a>00143
103 <a name="l00144"></a>00144 <span class="comment">/*</span>
104 <a name="l00145"></a>00145 <span class="comment"> * Modifying bitmaps.</span>
105 <a name="l00146"></a>00146 <span class="comment"> */</span>
111 <a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga3c44c943cb3a3e4577b32d924e4f36f2" title="Setup bitmap bitmap from unsigned long mask used as i -th subset.">hwloc_bitmap_from_ith_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
112 <a name="l00146"></a>00146
106113 <a name="l00147"></a>00147
107 <a name="l00149"></a>00149 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
108 <a name="l00150"></a>00150
109 <a name="l00152"></a>00152 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga371be6d389287d5b22a8034d61ccd7e3" title="Add indexess from begin to end in bitmap bitmap.">hwloc_bitmap_set_range</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> begin, <span class="keywordtype">unsigned</span> end);
110 <a name="l00153"></a>00153
111 <a name="l00155"></a>00155 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga56027d6b141a3da441925e6e999de1c1" title="Replace i -th subset of bitmap bitmap with unsigned long mask.">hwloc_bitmap_set_ith_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
112 <a name="l00156"></a>00156
113 <a name="l00158"></a>00158 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga54e89b87ba5f5c18323f16690e0e5730" title="Remove index id from bitmap bitmap.">hwloc_bitmap_clr</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
114 <a name="l00159"></a>00159
115 <a name="l00161"></a>00161 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gacddc932644e34fc2e914caf2fdaa70ce" title="Remove index from begin to end in bitmap bitmap.">hwloc_bitmap_clr_range</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> begin, <span class="keywordtype">unsigned</span> end);
116 <a name="l00162"></a>00162
117 <a name="l00169"></a>00169 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga4630aa1b7e08eac5b41be126194e84a1" title="Keep a single index among those set in bitmap bitmap.">hwloc_bitmap_singlify</a>(hwloc_bitmap_t bitmap);
118 <a name="l00170"></a>00170
119 <a name="l00171"></a>00171
120 <a name="l00172"></a>00172 <span class="comment">/*</span>
121 <a name="l00173"></a>00173 <span class="comment"> * Consulting bitmaps.</span>
122 <a name="l00174"></a>00174 <span class="comment"> */</span>
114 <a name="l00148"></a>00148 <span class="comment">/*</span>
115 <a name="l00149"></a>00149 <span class="comment"> * Modifying bitmaps.</span>
116 <a name="l00150"></a>00150 <span class="comment"> */</span>
117 <a name="l00151"></a>00151
118 <a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
119 <a name="l00154"></a>00154
120 <a name="l00156"></a>00156 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga371be6d389287d5b22a8034d61ccd7e3" title="Add indexes from begin to end in bitmap bitmap.">hwloc_bitmap_set_range</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> begin, <span class="keywordtype">unsigned</span> end);
121 <a name="l00157"></a>00157
122 <a name="l00159"></a>00159 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga56027d6b141a3da441925e6e999de1c1" title="Replace i -th subset of bitmap bitmap with unsigned long mask.">hwloc_bitmap_set_ith_ulong</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
123 <a name="l00160"></a>00160
124 <a name="l00162"></a>00162 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga54e89b87ba5f5c18323f16690e0e5730" title="Remove index id from bitmap bitmap.">hwloc_bitmap_clr</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>);
125 <a name="l00163"></a>00163
126 <a name="l00165"></a>00165 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gacddc932644e34fc2e914caf2fdaa70ce" title="Remove indexes from begin to end in bitmap bitmap.">hwloc_bitmap_clr_range</a>(hwloc_bitmap_t bitmap, <span class="keywordtype">unsigned</span> begin, <span class="keywordtype">unsigned</span> end);
127 <a name="l00166"></a>00166
128 <a name="l00173"></a>00173 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga4630aa1b7e08eac5b41be126194e84a1" title="Keep a single index among those set in bitmap bitmap.">hwloc_bitmap_singlify</a>(hwloc_bitmap_t bitmap);
129 <a name="l00174"></a>00174
123130 <a name="l00175"></a>00175
124 <a name="l00177"></a>00177 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00056.html#ga4fee4e3cea99e4a389c54a6c3f0c78ed" title="Convert the beginning part of bitmap bitmap into unsigned long mask.">hwloc_bitmap_to_ulong</a>(hwloc_const_bitmap_t bitmap) ;
125 <a name="l00178"></a>00178
126 <a name="l00180"></a>00180 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00056.html#gabc0b9f4cae56a1303c38b2380086efc2" title="Convert the i -th subset of bitmap bitmap into unsigned long mask.">hwloc_bitmap_to_ith_ulong</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i) ;
127 <a name="l00181"></a>00181
128 <a name="l00183"></a>00183 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>) ;
129 <a name="l00184"></a>00184
130 <a name="l00186"></a>00186 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(hwloc_const_bitmap_t bitmap) ;
131 <a name="l00187"></a>00187
132 <a name="l00189"></a>00189 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga59a07ecd8e74f2d4ee4271a1dbf0e4dd" title="Test whether bitmap bitmap is completely full.">hwloc_bitmap_isfull</a>(hwloc_const_bitmap_t bitmap) ;
133 <a name="l00190"></a>00190
134 <a name="l00195"></a>00195 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga42472a7b75ca79cae19f0611fdb849e6" title="Compute the first index (least significant bit) in bitmap bitmap.">hwloc_bitmap_first</a>(hwloc_const_bitmap_t bitmap) ;
135 <a name="l00196"></a>00196
136 <a name="l00201"></a>00201 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gae351afd7046295683112f0876cc782f1" title="Compute the next index in bitmap bitmap which is after index prev.">hwloc_bitmap_next</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> prev) ;
137 <a name="l00202"></a>00202
138 <a name="l00207"></a>00207 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga4d5786ea9561d9ddbf90bc0ce606c549" title="Compute the last index (most significant bit) in bitmap bitmap.">hwloc_bitmap_last</a>(hwloc_const_bitmap_t bitmap) ;
139 <a name="l00208"></a>00208
140 <a name="l00214"></a>00214 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(hwloc_const_bitmap_t bitmap) ;
141 <a name="l00215"></a>00215
142 <a name="l00227"></a><a class="code" href="a00056.html#ga3f6861045a8029ade373510ffa727d2a">00227</a> <span class="preprocessor">#define hwloc_bitmap_foreach_begin(id, bitmap) \</span>
143 <a name="l00228"></a>00228 <span class="preprocessor">do { \</span>
144 <a name="l00229"></a>00229 <span class="preprocessor"> assert(hwloc_bitmap_weight(bitmap) != -1); \</span>
145 <a name="l00230"></a>00230 <span class="preprocessor"> for (id = hwloc_bitmap_first(bitmap); \</span>
146 <a name="l00231"></a>00231 <span class="preprocessor"> (unsigned) id != (unsigned) -1; \</span>
147 <a name="l00232"></a>00232 <span class="preprocessor"> id = hwloc_bitmap_next(bitmap, id)) { \</span>
148 <a name="l00233"></a>00233 <span class="preprocessor"></span>
149 <a name="l00237"></a><a class="code" href="a00056.html#gafcf3246db406218d4e155735b3fa6528">00237</a> <span class="preprocessor">#define hwloc_bitmap_foreach_end() \</span>
150 <a name="l00238"></a>00238 <span class="preprocessor"> } \</span>
151 <a name="l00239"></a>00239 <span class="preprocessor">} while (0)</span>
152 <a name="l00240"></a>00240 <span class="preprocessor"></span>
153 <a name="l00241"></a>00241
154 <a name="l00242"></a>00242 <span class="comment">/*</span>
155 <a name="l00243"></a>00243 <span class="comment"> * Combining bitmaps.</span>
156 <a name="l00244"></a>00244 <span class="comment"> */</span>
131 <a name="l00176"></a>00176 <span class="comment">/*</span>
132 <a name="l00177"></a>00177 <span class="comment"> * Consulting bitmaps.</span>
133 <a name="l00178"></a>00178 <span class="comment"> */</span>
134 <a name="l00179"></a>00179
135 <a name="l00181"></a>00181 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00056.html#ga4fee4e3cea99e4a389c54a6c3f0c78ed" title="Convert the beginning part of bitmap bitmap into unsigned long mask.">hwloc_bitmap_to_ulong</a>(hwloc_const_bitmap_t bitmap) ;
136 <a name="l00182"></a>00182
137 <a name="l00184"></a>00184 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00056.html#gabc0b9f4cae56a1303c38b2380086efc2" title="Convert the i -th subset of bitmap bitmap into unsigned long mask.">hwloc_bitmap_to_ith_ulong</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> i) ;
138 <a name="l00185"></a>00185
139 <a name="l00187"></a>00187 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>) ;
140 <a name="l00188"></a>00188
141 <a name="l00190"></a>00190 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(hwloc_const_bitmap_t bitmap) ;
142 <a name="l00191"></a>00191
143 <a name="l00193"></a>00193 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga59a07ecd8e74f2d4ee4271a1dbf0e4dd" title="Test whether bitmap bitmap is completely full.">hwloc_bitmap_isfull</a>(hwloc_const_bitmap_t bitmap) ;
144 <a name="l00194"></a>00194
145 <a name="l00199"></a>00199 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga42472a7b75ca79cae19f0611fdb849e6" title="Compute the first index (least significant bit) in bitmap bitmap.">hwloc_bitmap_first</a>(hwloc_const_bitmap_t bitmap) ;
146 <a name="l00200"></a>00200
147 <a name="l00205"></a>00205 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gae351afd7046295683112f0876cc782f1" title="Compute the next index in bitmap bitmap which is after index prev.">hwloc_bitmap_next</a>(hwloc_const_bitmap_t bitmap, <span class="keywordtype">unsigned</span> prev) ;
148 <a name="l00206"></a>00206
149 <a name="l00211"></a>00211 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga4d5786ea9561d9ddbf90bc0ce606c549" title="Compute the last index (most significant bit) in bitmap bitmap.">hwloc_bitmap_last</a>(hwloc_const_bitmap_t bitmap) ;
150 <a name="l00212"></a>00212
151 <a name="l00218"></a>00218 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(hwloc_const_bitmap_t bitmap) ;
152 <a name="l00219"></a>00219
153 <a name="l00231"></a><a class="code" href="a00056.html#ga3f6861045a8029ade373510ffa727d2a">00231</a> <span class="preprocessor">#define hwloc_bitmap_foreach_begin(id, bitmap) \</span>
154 <a name="l00232"></a>00232 <span class="preprocessor">do { \</span>
155 <a name="l00233"></a>00233 <span class="preprocessor"> assert(hwloc_bitmap_weight(bitmap) != -1); \</span>
156 <a name="l00234"></a>00234 <span class="preprocessor"> for (id = hwloc_bitmap_first(bitmap); \</span>
157 <a name="l00235"></a>00235 <span class="preprocessor"> (unsigned) id != (unsigned) -1; \</span>
158 <a name="l00236"></a>00236 <span class="preprocessor"> id = hwloc_bitmap_next(bitmap, id)) { \</span>
159 <a name="l00237"></a>00237 <span class="preprocessor"></span>
160 <a name="l00241"></a><a class="code" href="a00056.html#gafcf3246db406218d4e155735b3fa6528">00241</a> <span class="preprocessor">#define hwloc_bitmap_foreach_end() \</span>
161 <a name="l00242"></a>00242 <span class="preprocessor"> } \</span>
162 <a name="l00243"></a>00243 <span class="preprocessor">} while (0)</span>
163 <a name="l00244"></a>00244 <span class="preprocessor"></span>
157164 <a name="l00245"></a>00245
158 <a name="l00247"></a>00247 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
159 <a name="l00248"></a>00248
160 <a name="l00250"></a>00250 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gac2f7675dcf1b664a832413d9990d1bcf" title="And bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_and</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
161 <a name="l00251"></a>00251
162 <a name="l00253"></a>00253 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga7618a962685d95564564ba07e9b2199b" title="And bitmap bitmap1 and the negation of bitmap2 and store the result in bitmap res.">hwloc_bitmap_andnot</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
163 <a name="l00254"></a>00254
164 <a name="l00256"></a>00256 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga5743af61c30758df75aec29c12444616" title="Xor bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_xor</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
165 <a name="l00257"></a>00257
166 <a name="l00259"></a>00259 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga4a8088d62755a083ffce9d592c9e3878" title="Negate bitmap bitmap and store the result in bitmap res.">hwloc_bitmap_not</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap);
167 <a name="l00260"></a>00260
165 <a name="l00246"></a>00246 <span class="comment">/*</span>
166 <a name="l00247"></a>00247 <span class="comment"> * Combining bitmaps.</span>
167 <a name="l00248"></a>00248 <span class="comment"> */</span>
168 <a name="l00249"></a>00249
169 <a name="l00251"></a>00251 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
170 <a name="l00252"></a>00252
171 <a name="l00254"></a>00254 <span class="keywordtype">void</span> <a class="code" href="a00056.html#gac2f7675dcf1b664a832413d9990d1bcf" title="And bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_and</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
172 <a name="l00255"></a>00255
173 <a name="l00257"></a>00257 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga7618a962685d95564564ba07e9b2199b" title="And bitmap bitmap1 and the negation of bitmap2 and store the result in bitmap res.">hwloc_bitmap_andnot</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
174 <a name="l00258"></a>00258
175 <a name="l00260"></a>00260 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga5743af61c30758df75aec29c12444616" title="Xor bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_xor</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
168176 <a name="l00261"></a>00261
169 <a name="l00262"></a>00262 <span class="comment">/*</span>
170 <a name="l00263"></a>00263 <span class="comment"> * Comparing bitmaps.</span>
171 <a name="l00264"></a>00264 <span class="comment"> */</span>
177 <a name="l00263"></a>00263 <span class="keywordtype">void</span> <a class="code" href="a00056.html#ga4a8088d62755a083ffce9d592c9e3878" title="Negate bitmap bitmap and store the result in bitmap res.">hwloc_bitmap_not</a> (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap);
178 <a name="l00264"></a>00264
172179 <a name="l00265"></a>00265
173 <a name="l00267"></a>00267 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a> (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
174 <a name="l00268"></a>00268
175 <a name="l00270"></a>00270 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a> (hwloc_const_bitmap_t sub_bitmap, hwloc_const_bitmap_t super_bitmap) ;
176 <a name="l00271"></a>00271
177 <a name="l00273"></a>00273 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga4dd6a75ab63d33ef33bd626b0e489388" title="Test whether bitmap bitmap1 is equal to bitmap bitmap2.">hwloc_bitmap_isequal</a> (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
178 <a name="l00274"></a>00274
179 <a name="l00280"></a>00280 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gac1cbd1e03f9986552243761e657e1752" title="Compare bitmaps bitmap1 and bitmap2 using their lowest index.">hwloc_bitmap_compare_first</a>(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
180 <a name="l00281"></a>00281
181 <a name="l00287"></a>00287 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gadd3aa325f2d6a17b5aa3b3be9c740da0" title="Compare bitmaps bitmap1 and bitmap2 using their highest index.">hwloc_bitmap_compare</a>(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
182 <a name="l00288"></a>00288
183 <a name="l00292"></a>00292 <span class="preprocessor">#ifdef __cplusplus</span>
184 <a name="l00293"></a>00293 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
185 <a name="l00294"></a>00294 <span class="preprocessor">#endif</span>
186 <a name="l00295"></a>00295 <span class="preprocessor"></span>
187 <a name="l00296"></a>00296
188 <a name="l00297"></a>00297 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_BITMAP_H */</span>
180 <a name="l00266"></a>00266 <span class="comment">/*</span>
181 <a name="l00267"></a>00267 <span class="comment"> * Comparing bitmaps.</span>
182 <a name="l00268"></a>00268 <span class="comment"> */</span>
183 <a name="l00269"></a>00269
184 <a name="l00271"></a>00271 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a> (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
185 <a name="l00272"></a>00272
186 <a name="l00274"></a>00274 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a> (hwloc_const_bitmap_t sub_bitmap, hwloc_const_bitmap_t super_bitmap) ;
187 <a name="l00275"></a>00275
188 <a name="l00277"></a>00277 <span class="keywordtype">int</span> <a class="code" href="a00056.html#ga4dd6a75ab63d33ef33bd626b0e489388" title="Test whether bitmap bitmap1 is equal to bitmap bitmap2.">hwloc_bitmap_isequal</a> (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
189 <a name="l00278"></a>00278
190 <a name="l00284"></a>00284 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gac1cbd1e03f9986552243761e657e1752" title="Compare bitmaps bitmap1 and bitmap2 using their lowest index.">hwloc_bitmap_compare_first</a>(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
191 <a name="l00285"></a>00285
192 <a name="l00291"></a>00291 <span class="keywordtype">int</span> <a class="code" href="a00056.html#gadd3aa325f2d6a17b5aa3b3be9c740da0" title="Compare bitmaps bitmap1 and bitmap2 using their highest index.">hwloc_bitmap_compare</a>(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) ;
193 <a name="l00292"></a>00292
194 <a name="l00296"></a>00296 <span class="preprocessor">#ifdef __cplusplus</span>
195 <a name="l00297"></a>00297 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
196 <a name="l00298"></a>00298 <span class="preprocessor">#endif</span>
197 <a name="l00299"></a>00299 <span class="preprocessor"></span>
198 <a name="l00300"></a>00300
199 <a name="l00301"></a>00301 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_BITMAP_H */</span>
189200 </pre></div></div>
190201 </div>
191 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
202 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
192203 <a href="http://www.doxygen.org/index.html">
193 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
204 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
194205 </body>
195206 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2010 INRIA</span>
3243 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2010 Université Bordeaux 1</span>
33 <a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
34 <a name="l00005"></a>00005 <span class="comment"> */</span>
35 <a name="l00006"></a>00006
36 <a name="l00015"></a>00015 <span class="preprocessor">#ifndef HWLOC_CUDA_H</span>
37 <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_CUDA_H</span>
38 <a name="l00017"></a>00017 <span class="preprocessor"></span>
39 <a name="l00018"></a>00018 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
40 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
41 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
42 <a name="l00021"></a>00021
43 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;cuda.h&gt;</span>
44 <a name="l00023"></a>00023
44 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2011 Cisco Systems, Inc. All rights reserved.</span>
45 <a name="l00005"></a>00005 <span class="comment"> * See COPYING in top-level directory.</span>
46 <a name="l00006"></a>00006 <span class="comment"> */</span>
47 <a name="l00007"></a>00007
48 <a name="l00016"></a>00016 <span class="preprocessor">#ifndef HWLOC_CUDA_H</span>
49 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_CUDA_H</span>
50 <a name="l00018"></a>00018 <span class="preprocessor"></span>
51 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
52 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
53 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
54 <a name="l00022"></a>00022
55 <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;cuda.h&gt;</span>
4556 <a name="l00024"></a>00024
46 <a name="l00025"></a>00025 <span class="preprocessor">#ifdef __cplusplus</span>
47 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
48 <a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
49 <a name="l00028"></a>00028 <span class="preprocessor"></span>
50 <a name="l00029"></a>00029
51 <a name="l00042"></a>00042 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
52 <a name="l00043"></a><a class="code" href="a00062.html#gae06cf330d2f0d9949feb52b146b7d136">00043</a> <a class="code" href="a00062.html#gae06cf330d2f0d9949feb52b146b7d136" title="Get the CPU set of logical processors that are physically close to device cudevice.">hwloc_cuda_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology ,
53 <a name="l00044"></a>00044 CUdevice cudevice, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
54 <a name="l00045"></a>00045 {
55 <a name="l00046"></a>00046 <span class="preprocessor">#ifdef HWLOC_LINUX_SYS</span>
56 <a name="l00047"></a>00047 <span class="preprocessor"></span> <span class="comment">/* If we&#39;re on Linux, use the sysfs mechanism to get the local cpus */</span>
57 <a name="l00048"></a>00048 <span class="preprocessor">#define HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX 128</span>
58 <a name="l00049"></a>00049 <span class="preprocessor"></span> CUresult cres;
59 <a name="l00050"></a>00050 <span class="keywordtype">int</span> deviceid;
60 <a name="l00051"></a>00051 <span class="keywordtype">int</span> busid;
61 <a name="l00052"></a>00052 <span class="keywordtype">char</span> path[HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX];
62 <a name="l00053"></a>00053 FILE *sysfile = NULL;
63 <a name="l00054"></a>00054
64 <a name="l00055"></a>00055 cres = cuDeviceGetAttribute(&amp;busid, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, cudevice);
65 <a name="l00056"></a>00056 <span class="keywordflow">if</span> (cres != CUDA_SUCCESS) {
66 <a name="l00057"></a>00057 errno = ENOSYS;
67 <a name="l00058"></a>00058 <span class="keywordflow">return</span> -1;
68 <a name="l00059"></a>00059 }
69 <a name="l00060"></a>00060 cres = cuDeviceGetAttribute(&amp;deviceid, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, cudevice);
70 <a name="l00061"></a>00061 <span class="keywordflow">if</span> (cres != CUDA_SUCCESS) {
71 <a name="l00062"></a>00062 errno = ENOSYS;
72 <a name="l00063"></a>00063 <span class="keywordflow">return</span> -1;
73 <a name="l00064"></a>00064 }
74 <a name="l00065"></a>00065
75 <a name="l00066"></a>00066 sprintf(path, <span class="stringliteral">&quot;/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus&quot;</span>, busid, deviceid);
76 <a name="l00067"></a>00067 sysfile = fopen(path, <span class="stringliteral">&quot;r&quot;</span>);
77 <a name="l00068"></a>00068 <span class="keywordflow">if</span> (!sysfile)
78 <a name="l00069"></a>00069 <span class="keywordflow">return</span> -1;
79 <a name="l00070"></a>00070
80 <a name="l00071"></a>00071 <a class="code" href="a00058.html#gaeacad897c30dbea284948374ad4b010c" title="Convert a linux kernel cpumap file file into hwloc CPU set.">hwloc_linux_parse_cpumap_file</a>(sysfile, <span class="keyword">set</span>);
81 <a name="l00072"></a>00072
82 <a name="l00073"></a>00073 fclose(sysfile);
83 <a name="l00074"></a>00074 <span class="preprocessor">#else</span>
84 <a name="l00075"></a>00075 <span class="preprocessor"></span> <span class="comment">/* Non-Linux systems simply get a full cpuset */</span>
85 <a name="l00076"></a>00076 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
86 <a name="l00077"></a>00077 <span class="preprocessor">#endif</span>
87 <a name="l00078"></a>00078 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
88 <a name="l00079"></a>00079 }
89 <a name="l00080"></a>00080
90 <a name="l00084"></a>00084 <span class="preprocessor">#ifdef __cplusplus</span>
91 <a name="l00085"></a>00085 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
92 <a name="l00086"></a>00086 <span class="preprocessor">#endif</span>
93 <a name="l00087"></a>00087 <span class="preprocessor"></span>
94 <a name="l00088"></a>00088
95 <a name="l00089"></a>00089 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_CUDA_H */</span>
57 <a name="l00025"></a>00025
58 <a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
59 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
60 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
61 <a name="l00029"></a>00029 <span class="preprocessor"></span>
62 <a name="l00030"></a>00030
63 <a name="l00043"></a>00043 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
64 <a name="l00044"></a><a class="code" href="a00062.html#gae06cf330d2f0d9949feb52b146b7d136">00044</a> <a class="code" href="a00062.html#gae06cf330d2f0d9949feb52b146b7d136" title="Get the CPU set of logical processors that are physically close to device cudevice.">hwloc_cuda_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology ,
65 <a name="l00045"></a>00045 CUdevice cudevice, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
66 <a name="l00046"></a>00046 {
67 <a name="l00047"></a>00047 <span class="preprocessor">#ifdef HWLOC_LINUX_SYS</span>
68 <a name="l00048"></a>00048 <span class="preprocessor"></span> <span class="comment">/* If we&#39;re on Linux, use the sysfs mechanism to get the local cpus */</span>
69 <a name="l00049"></a>00049 <span class="preprocessor">#define HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX 128</span>
70 <a name="l00050"></a>00050 <span class="preprocessor"></span> CUresult cres;
71 <a name="l00051"></a>00051 <span class="keywordtype">int</span> deviceid;
72 <a name="l00052"></a>00052 <span class="keywordtype">int</span> busid;
73 <a name="l00053"></a>00053 <span class="keywordtype">char</span> path[HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX];
74 <a name="l00054"></a>00054 FILE *sysfile = NULL;
75 <a name="l00055"></a>00055
76 <a name="l00056"></a>00056 cres = cuDeviceGetAttribute(&amp;busid, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, cudevice);
77 <a name="l00057"></a>00057 <span class="keywordflow">if</span> (cres != CUDA_SUCCESS) {
78 <a name="l00058"></a>00058 errno = ENOSYS;
79 <a name="l00059"></a>00059 <span class="keywordflow">return</span> -1;
80 <a name="l00060"></a>00060 }
81 <a name="l00061"></a>00061 cres = cuDeviceGetAttribute(&amp;deviceid, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, cudevice);
82 <a name="l00062"></a>00062 <span class="keywordflow">if</span> (cres != CUDA_SUCCESS) {
83 <a name="l00063"></a>00063 errno = ENOSYS;
84 <a name="l00064"></a>00064 <span class="keywordflow">return</span> -1;
85 <a name="l00065"></a>00065 }
86 <a name="l00066"></a>00066
87 <a name="l00067"></a>00067 sprintf(path, <span class="stringliteral">&quot;/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus&quot;</span>, busid, deviceid);
88 <a name="l00068"></a>00068 sysfile = fopen(path, <span class="stringliteral">&quot;r&quot;</span>);
89 <a name="l00069"></a>00069 <span class="keywordflow">if</span> (!sysfile)
90 <a name="l00070"></a>00070 <span class="keywordflow">return</span> -1;
91 <a name="l00071"></a>00071
92 <a name="l00072"></a>00072 <a class="code" href="a00058.html#gaeacad897c30dbea284948374ad4b010c" title="Convert a linux kernel cpumap file file into hwloc CPU set.">hwloc_linux_parse_cpumap_file</a>(sysfile, <span class="keyword">set</span>);
93 <a name="l00073"></a>00073
94 <a name="l00074"></a>00074 fclose(sysfile);
95 <a name="l00075"></a>00075 <span class="preprocessor">#else</span>
96 <a name="l00076"></a>00076 <span class="preprocessor"></span> <span class="comment">/* Non-Linux systems simply get a full cpuset */</span>
97 <a name="l00077"></a>00077 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
98 <a name="l00078"></a>00078 <span class="preprocessor">#endif</span>
99 <a name="l00079"></a>00079 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
100 <a name="l00080"></a>00080 }
101 <a name="l00081"></a>00081
102 <a name="l00085"></a>00085 <span class="preprocessor">#ifdef __cplusplus</span>
103 <a name="l00086"></a>00086 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
104 <a name="l00087"></a>00087 <span class="preprocessor">#endif</span>
105 <a name="l00088"></a>00088 <span class="preprocessor"></span>
106 <a name="l00089"></a>00089
107 <a name="l00090"></a>00090 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_CUDA_H */</span>
96108 </pre></div></div>
97109 </div>
98 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
110 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
99111 <a href="http://www.doxygen.org/index.html">
100 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
112 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
101113 </body>
102114 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2010 INRIA</span>
3243 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2010 Université Bordeaux 1</span>
33 <a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
34 <a name="l00005"></a>00005 <span class="comment"> */</span>
35 <a name="l00006"></a>00006
36 <a name="l00015"></a>00015 <span class="preprocessor">#ifndef HWLOC_CUDART_H</span>
37 <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_CUDART_H</span>
38 <a name="l00017"></a>00017 <span class="preprocessor"></span>
39 <a name="l00018"></a>00018 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
40 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
41 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
42 <a name="l00021"></a>00021
43 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;cuda_runtime_api.h&gt;</span>
44 <a name="l00023"></a>00023
44 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2011 Cisco Systems, Inc. All rights reserved.</span>
45 <a name="l00005"></a>00005 <span class="comment"> * See COPYING in top-level directory.</span>
46 <a name="l00006"></a>00006 <span class="comment"> */</span>
47 <a name="l00007"></a>00007
48 <a name="l00016"></a>00016 <span class="preprocessor">#ifndef HWLOC_CUDART_H</span>
49 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_CUDART_H</span>
50 <a name="l00018"></a>00018 <span class="preprocessor"></span>
51 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
52 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
53 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
54 <a name="l00022"></a>00022
55 <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;cuda_runtime_api.h&gt;</span>
4556 <a name="l00024"></a>00024
46 <a name="l00025"></a>00025 <span class="preprocessor">#ifdef __cplusplus</span>
47 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
48 <a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
49 <a name="l00028"></a>00028 <span class="preprocessor"></span>
50 <a name="l00029"></a>00029
51 <a name="l00042"></a>00042 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
52 <a name="l00043"></a><a class="code" href="a00063.html#ga2daaf1dd1a9a7f11ccbc6821374120e9">00043</a> <a class="code" href="a00063.html#ga2daaf1dd1a9a7f11ccbc6821374120e9" title="Get the CPU set of logical processors that are physically close to device cudevice.">hwloc_cudart_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology ,
53 <a name="l00044"></a>00044 <span class="keywordtype">int</span> device, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
54 <a name="l00045"></a>00045 {
55 <a name="l00046"></a>00046 <span class="preprocessor">#ifdef HWLOC_LINUX_SYS</span>
56 <a name="l00047"></a>00047 <span class="preprocessor"></span> <span class="comment">/* If we&#39;re on Linux, use the sysfs mechanism to get the local cpus */</span>
57 <a name="l00048"></a>00048 <span class="preprocessor">#define HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX 128</span>
58 <a name="l00049"></a>00049 <span class="preprocessor"></span> cudaError_t cerr;
59 <a name="l00050"></a>00050 <span class="keyword">struct </span>cudaDeviceProp prop;
60 <a name="l00051"></a>00051 <span class="keywordtype">char</span> path[HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX];
61 <a name="l00052"></a>00052 FILE *sysfile = NULL;
62 <a name="l00053"></a>00053
63 <a name="l00054"></a>00054 cerr = cudaGetDeviceProperties(&amp;prop, device);
64 <a name="l00055"></a>00055 <span class="keywordflow">if</span> (cerr) {
65 <a name="l00056"></a>00056 errno = ENOSYS;
66 <a name="l00057"></a>00057 <span class="keywordflow">return</span> -1;
67 <a name="l00058"></a>00058 }
68 <a name="l00059"></a>00059
69 <a name="l00060"></a>00060 sprintf(path, <span class="stringliteral">&quot;/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus&quot;</span>, prop.pciBusID, prop.pciDeviceID);
70 <a name="l00061"></a>00061 sysfile = fopen(path, <span class="stringliteral">&quot;r&quot;</span>);
71 <a name="l00062"></a>00062 <span class="keywordflow">if</span> (!sysfile)
72 <a name="l00063"></a>00063 <span class="keywordflow">return</span> -1;
73 <a name="l00064"></a>00064
74 <a name="l00065"></a>00065 <a class="code" href="a00058.html#gaeacad897c30dbea284948374ad4b010c" title="Convert a linux kernel cpumap file file into hwloc CPU set.">hwloc_linux_parse_cpumap_file</a>(sysfile, <span class="keyword">set</span>);
75 <a name="l00066"></a>00066
76 <a name="l00067"></a>00067 fclose(sysfile);
77 <a name="l00068"></a>00068 <span class="preprocessor">#else</span>
78 <a name="l00069"></a>00069 <span class="preprocessor"></span> <span class="comment">/* Non-Linux systems simply get a full cpuset */</span>
79 <a name="l00070"></a>00070 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
80 <a name="l00071"></a>00071 <span class="preprocessor">#endif</span>
81 <a name="l00072"></a>00072 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
82 <a name="l00073"></a>00073 }
83 <a name="l00074"></a>00074
84 <a name="l00078"></a>00078 <span class="preprocessor">#ifdef __cplusplus</span>
85 <a name="l00079"></a>00079 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
86 <a name="l00080"></a>00080 <span class="preprocessor">#endif</span>
87 <a name="l00081"></a>00081 <span class="preprocessor"></span>
88 <a name="l00082"></a>00082
89 <a name="l00083"></a>00083 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_CUDART_H */</span>
57 <a name="l00025"></a>00025
58 <a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
59 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
60 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
61 <a name="l00029"></a>00029 <span class="preprocessor"></span>
62 <a name="l00030"></a>00030
63 <a name="l00043"></a>00043 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
64 <a name="l00044"></a><a class="code" href="a00063.html#ga2daaf1dd1a9a7f11ccbc6821374120e9">00044</a> <a class="code" href="a00063.html#ga2daaf1dd1a9a7f11ccbc6821374120e9" title="Get the CPU set of logical processors that are physically close to device cudevice.">hwloc_cudart_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology ,
65 <a name="l00045"></a>00045 <span class="keywordtype">int</span> device, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
66 <a name="l00046"></a>00046 {
67 <a name="l00047"></a>00047 <span class="preprocessor">#ifdef HWLOC_LINUX_SYS</span>
68 <a name="l00048"></a>00048 <span class="preprocessor"></span> <span class="comment">/* If we&#39;re on Linux, use the sysfs mechanism to get the local cpus */</span>
69 <a name="l00049"></a>00049 <span class="preprocessor">#define HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX 128</span>
70 <a name="l00050"></a>00050 <span class="preprocessor"></span> cudaError_t cerr;
71 <a name="l00051"></a>00051 <span class="keyword">struct </span>cudaDeviceProp prop;
72 <a name="l00052"></a>00052 <span class="keywordtype">char</span> path[HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX];
73 <a name="l00053"></a>00053 FILE *sysfile = NULL;
74 <a name="l00054"></a>00054
75 <a name="l00055"></a>00055 cerr = cudaGetDeviceProperties(&amp;prop, device);
76 <a name="l00056"></a>00056 <span class="keywordflow">if</span> (cerr) {
77 <a name="l00057"></a>00057 errno = ENOSYS;
78 <a name="l00058"></a>00058 <span class="keywordflow">return</span> -1;
79 <a name="l00059"></a>00059 }
80 <a name="l00060"></a>00060
81 <a name="l00061"></a>00061 sprintf(path, <span class="stringliteral">&quot;/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus&quot;</span>, prop.pciBusID, prop.pciDeviceID);
82 <a name="l00062"></a>00062 sysfile = fopen(path, <span class="stringliteral">&quot;r&quot;</span>);
83 <a name="l00063"></a>00063 <span class="keywordflow">if</span> (!sysfile)
84 <a name="l00064"></a>00064 <span class="keywordflow">return</span> -1;
85 <a name="l00065"></a>00065
86 <a name="l00066"></a>00066 <a class="code" href="a00058.html#gaeacad897c30dbea284948374ad4b010c" title="Convert a linux kernel cpumap file file into hwloc CPU set.">hwloc_linux_parse_cpumap_file</a>(sysfile, <span class="keyword">set</span>);
87 <a name="l00067"></a>00067
88 <a name="l00068"></a>00068 fclose(sysfile);
89 <a name="l00069"></a>00069 <span class="preprocessor">#else</span>
90 <a name="l00070"></a>00070 <span class="preprocessor"></span> <span class="comment">/* Non-Linux systems simply get a full cpuset */</span>
91 <a name="l00071"></a>00071 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
92 <a name="l00072"></a>00072 <span class="preprocessor">#endif</span>
93 <a name="l00073"></a>00073 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
94 <a name="l00074"></a>00074 }
95 <a name="l00075"></a>00075
96 <a name="l00079"></a>00079 <span class="preprocessor">#ifdef __cplusplus</span>
97 <a name="l00080"></a>00080 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
98 <a name="l00081"></a>00081 <span class="preprocessor">#endif</span>
99 <a name="l00082"></a>00082 <span class="preprocessor"></span>
100 <a name="l00083"></a>00083
101 <a name="l00084"></a>00084 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_CUDART_H */</span>
90102 </pre></div></div>
91103 </div>
92 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
104 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
93105 <a href="http://www.doxygen.org/index.html">
94 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
106 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
95107 </body>
96108 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2940 <div class="contents">
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS</span>
32 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
33 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2010 Université Bordeaux 1</span>
43 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2011 INRIA. All rights reserved.</span>
44 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2011 Université Bordeaux 1</span>
3445 <a name="l00005"></a>00005 <span class="comment"> * See COPYING in top-level directory.</span>
3546 <a name="l00006"></a>00006 <span class="comment"> */</span>
3647 <a name="l00007"></a>00007
4152 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/helper.h&gt;</span>
4253 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;assert.h&gt;</span>
4354 <a name="l00022"></a>00022
44 <a name="l00023"></a>00023 <span class="preprocessor">#if !defined _GNU_SOURCE || !defined _SCHED_H</span>
45 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#error sched.h must be included with _GNU_SOURCE defined</span>
55 <a name="l00023"></a>00023 <span class="preprocessor">#if !defined _GNU_SOURCE || !defined _SCHED_H || !defined CPU_SETSIZE</span>
56 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#error Please make sure to include sched.h before including glibc-sched.h, and define _GNU_SOURCE before any inclusion of sched.h</span>
4657 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
4758 <a name="l00026"></a>00026 <span class="preprocessor"></span>
4859 <a name="l00027"></a>00027
115126 <a name="l00116"></a>00116 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_GLIBC_SCHED_H */</span>
116127 </pre></div></div>
117128 </div>
118 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
129 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
119130 <a href="http://www.doxygen.org/index.html">
120 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
131 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
121132 </body>
122133 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2940 <div class="contents">
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS</span>
32 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
43 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2011 INRIA. All rights reserved.</span>
3344 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2010 Université Bordeaux 1</span>
3445 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
3546 <a name="l00006"></a>00006 <span class="comment"> * See COPYING in top-level directory.</span>
172183 <a name="l00202"></a>00202 <span class="keywordflow">return</span> obj1;
173184 <a name="l00203"></a>00203 }
174185 <a name="l00204"></a>00204
175 <a name="l00207"></a>00207 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
176 <a name="l00208"></a><a class="code" href="a00046.html#ga38d9bd3a7566d0e6b0ab95d652557707">00208</a> <a class="code" href="a00046.html#ga38d9bd3a7566d0e6b0ab95d652557707" title="Returns true if _obj_ is inside the subtree beginning with subtree_root.">hwloc_obj_is_in_subtree</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> subtree_root)
177 <a name="l00209"></a>00209 {
178 <a name="l00210"></a>00210 <span class="keywordflow">return</span> <a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, subtree_root-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
179 <a name="l00211"></a>00211 }
180 <a name="l00212"></a>00212
181 <a name="l00229"></a>00229 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
182 <a name="l00230"></a><a class="code" href="a00047.html#gabcd5fa81a95fa5335950cae092277d5b">00230</a> <a class="code" href="a00047.html#gabcd5fa81a95fa5335950cae092277d5b" title="Get the first largest object included in the given cpuset set.">hwloc_get_first_largest_obj_inside_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
183 <a name="l00231"></a>00231 {
184 <a name="l00232"></a>00232 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
185 <a name="l00233"></a>00233 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
186 <a name="l00234"></a>00234 <span class="keywordflow">return</span> NULL;
187 <a name="l00235"></a>00235 <span class="keywordflow">while</span> (!<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
188 <a name="l00236"></a>00236 <span class="comment">/* while the object intersects without being included, look at its children */</span>
189 <a name="l00237"></a>00237 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child = NULL;
190 <a name="l00238"></a>00238 <span class="keywordflow">while</span> ((child = <a class="code" href="a00046.html#gae5ef1af636849f77714e1584ba78cf9c" title="Return the next child.">hwloc_get_next_child</a>(topology, obj, child)) != NULL) {
191 <a name="l00239"></a>00239 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(child-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
192 <a name="l00240"></a>00240 <span class="keywordflow">break</span>;
193 <a name="l00241"></a>00241 }
194 <a name="l00242"></a>00242 <span class="keywordflow">if</span> (!child)
195 <a name="l00243"></a>00243 <span class="comment">/* no child intersects, return their father */</span>
196 <a name="l00244"></a>00244 <span class="keywordflow">return</span> obj;
197 <a name="l00245"></a>00245 <span class="comment">/* found one intersecting child, look at its children */</span>
198 <a name="l00246"></a>00246 obj = child;
199 <a name="l00247"></a>00247 }
200 <a name="l00248"></a>00248 <span class="comment">/* obj is included, return it */</span>
201 <a name="l00249"></a>00249 <span class="keywordflow">return</span> obj;
202 <a name="l00250"></a>00250 }
203 <a name="l00251"></a>00251
204 <a name="l00256"></a>00256 <span class="keywordtype">int</span> <a class="code" href="a00047.html#gaab04c89623662e63a48ed2cd48eb601c" title="Get the set of largest objects covering exactly a given cpuset set.">hwloc_get_largest_objs_inside_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
205 <a name="l00257"></a>00257 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> * restrict objs, <span class="keywordtype">int</span> max);
206 <a name="l00258"></a>00258
207 <a name="l00265"></a>00265 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
208 <a name="l00266"></a><a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6">00266</a> <a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6" title="Return the next object at depth depth included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
209 <a name="l00267"></a>00267 <span class="keywordtype">unsigned</span> depth, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
210 <a name="l00268"></a>00268 {
211 <a name="l00269"></a>00269 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
212 <a name="l00270"></a>00270 <span class="keywordflow">while</span> (next &amp;&amp; !<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(next-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
213 <a name="l00271"></a>00271 next = next-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
214 <a name="l00272"></a>00272 <span class="keywordflow">return</span> next;
215 <a name="l00273"></a>00273 }
216 <a name="l00274"></a>00274
217 <a name="l00281"></a>00281 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
218 <a name="l00282"></a><a class="code" href="a00047.html#ga934e7ecd68b33403e0c0be779d9ed1e6">00282</a> <a class="code" href="a00047.html#ga934e7ecd68b33403e0c0be779d9ed1e6" title="Return the next object of type type included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
219 <a name="l00283"></a>00283 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
220 <a name="l00284"></a>00284 {
221 <a name="l00285"></a>00285 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
222 <a name="l00286"></a>00286 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
223 <a name="l00287"></a>00287 <span class="keywordflow">return</span> NULL;
224 <a name="l00288"></a>00288 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6" title="Return the next object at depth depth included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, prev);
225 <a name="l00289"></a>00289 }
226 <a name="l00290"></a>00290
227 <a name="l00293"></a>00293 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
228 <a name="l00294"></a><a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a">00294</a> <a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a" title="Return the index -th object at depth depth included in CPU set set.">hwloc_get_obj_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
229 <a name="l00295"></a>00295 <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx)
230 <a name="l00296"></a>00296 {
231 <a name="l00297"></a>00297 <span class="keywordtype">unsigned</span> count = 0;
232 <a name="l00298"></a>00298 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
233 <a name="l00299"></a>00299 <span class="keywordflow">while</span> (obj) {
234 <a name="l00300"></a>00300 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
235 <a name="l00301"></a>00301 <span class="keywordflow">if</span> (count == idx)
236 <a name="l00302"></a>00302 <span class="keywordflow">return</span> obj;
237 <a name="l00303"></a>00303 count++;
238 <a name="l00304"></a>00304 }
239 <a name="l00305"></a>00305 obj = obj-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
240 <a name="l00306"></a>00306 }
241 <a name="l00307"></a>00307 <span class="keywordflow">return</span> NULL;
242 <a name="l00308"></a>00308 }
243 <a name="l00309"></a>00309
244 <a name="l00316"></a>00316 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
245 <a name="l00317"></a><a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b">00317</a> <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
246 <a name="l00318"></a>00318 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
247 <a name="l00319"></a>00319 {
248 <a name="l00320"></a>00320 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
249 <a name="l00321"></a>00321 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
250 <a name="l00322"></a>00322 <span class="keywordflow">return</span> NULL;
251 <a name="l00323"></a>00323 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a" title="Return the index -th object at depth depth included in CPU set set.">hwloc_get_obj_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, idx);
252 <a name="l00324"></a>00324 }
253 <a name="l00325"></a>00325
254 <a name="l00327"></a>00327 <span class="keyword">static</span> inline <span class="keywordtype">unsigned</span>
255 <a name="l00328"></a><a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493">00328</a> <a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493" title="Return the number of objects at depth depth included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
256 <a name="l00329"></a>00329 <span class="keywordtype">unsigned</span> depth)
257 <a name="l00330"></a>00330 {
258 <a name="l00331"></a>00331 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
259 <a name="l00332"></a>00332 <span class="keywordtype">int</span> count = 0;
260 <a name="l00333"></a>00333 <span class="keywordflow">while</span> (obj) {
261 <a name="l00334"></a>00334 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
262 <a name="l00335"></a>00335 count++;
263 <a name="l00336"></a>00336 obj = obj-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
264 <a name="l00337"></a>00337 }
265 <a name="l00338"></a>00338 <span class="keywordflow">return</span> count;
266 <a name="l00339"></a>00339 }
267 <a name="l00340"></a>00340
268 <a name="l00347"></a>00347 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
269 <a name="l00348"></a><a class="code" href="a00047.html#ga72c5bc4317a4c3938e32447b769813a0">00348</a> <a class="code" href="a00047.html#ga72c5bc4317a4c3938e32447b769813a0" title="Return the number of objects of type type included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
270 <a name="l00349"></a>00349 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
271 <a name="l00350"></a>00350 {
272 <a name="l00351"></a>00351 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
273 <a name="l00352"></a>00352 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
274 <a name="l00353"></a>00353 <span class="keywordflow">return</span> 0;
275 <a name="l00354"></a>00354 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
276 <a name="l00355"></a>00355 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
277 <a name="l00356"></a>00356 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493" title="Return the number of objects at depth depth included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth);
278 <a name="l00357"></a>00357 }
279 <a name="l00358"></a>00358
280 <a name="l00371"></a>00371 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
281 <a name="l00372"></a><a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7">00372</a> <a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
282 <a name="l00373"></a>00373 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> parent)
283 <a name="l00374"></a>00374 {
284 <a name="l00375"></a>00375 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child;
285 <a name="l00376"></a>00376
286 <a name="l00377"></a>00377 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(<span class="keyword">set</span>))
287 <a name="l00378"></a>00378 <span class="keywordflow">return</span> NULL;
288 <a name="l00379"></a>00379
289 <a name="l00380"></a>00380 child = parent-&gt;<a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
290 <a name="l00381"></a>00381 <span class="keywordflow">while</span> (child) {
291 <a name="l00382"></a>00382 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(<span class="keyword">set</span>, child-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
292 <a name="l00383"></a>00383 <span class="keywordflow">return</span> child;
293 <a name="l00384"></a>00384 child = child-&gt;<a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
294 <a name="l00385"></a>00385 }
295 <a name="l00386"></a>00386 <span class="keywordflow">return</span> NULL;
296 <a name="l00387"></a>00387 }
297 <a name="l00388"></a>00388
298 <a name="l00393"></a>00393 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
299 <a name="l00394"></a><a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582">00394</a> <a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
300 <a name="l00395"></a>00395 {
301 <a name="l00396"></a>00396 <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *current = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
302 <a name="l00397"></a>00397
303 <a name="l00398"></a>00398 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(<span class="keyword">set</span>))
304 <a name="l00399"></a>00399 <span class="keywordflow">return</span> NULL;
305 <a name="l00400"></a>00400
306 <a name="l00401"></a>00401 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(<span class="keyword">set</span>, current-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
307 <a name="l00402"></a>00402 <span class="keywordflow">return</span> NULL;
308 <a name="l00403"></a>00403
309 <a name="l00404"></a>00404 <span class="keywordflow">while</span> (1) {
310 <a name="l00405"></a>00405 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child = <a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a>(topology, <span class="keyword">set</span>, current);
311 <a name="l00406"></a>00406 <span class="keywordflow">if</span> (!child)
312 <a name="l00407"></a>00407 <span class="keywordflow">return</span> current;
313 <a name="l00408"></a>00408 current = child;
314 <a name="l00409"></a>00409 }
315 <a name="l00410"></a>00410 }
316 <a name="l00411"></a>00411
317 <a name="l00412"></a>00412
318 <a name="l00428"></a>00428 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
319 <a name="l00429"></a><a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b">00429</a> <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
320 <a name="l00430"></a>00430 <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
321 <a name="l00431"></a>00431 {
322 <a name="l00432"></a>00432 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
323 <a name="l00433"></a>00433 <span class="keywordflow">while</span> (next &amp;&amp; !<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(<span class="keyword">set</span>, next-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
324 <a name="l00434"></a>00434 next = next-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
325 <a name="l00435"></a>00435 <span class="keywordflow">return</span> next;
326 <a name="l00436"></a>00436 }
327 <a name="l00437"></a>00437
328 <a name="l00450"></a>00450 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
329 <a name="l00451"></a><a class="code" href="a00049.html#ga5915ea30f326676b3a4cfff371ce04d1">00451</a> <a class="code" href="a00049.html#ga5915ea30f326676b3a4cfff371ce04d1" title="Iterate through same-type objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_type</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
330 <a name="l00452"></a>00452 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
331 <a name="l00453"></a>00453 {
332 <a name="l00454"></a>00454 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
333 <a name="l00455"></a>00455 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
334 <a name="l00456"></a>00456 <span class="keywordflow">return</span> NULL;
335 <a name="l00457"></a>00457 <span class="keywordflow">return</span> <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, prev);
336 <a name="l00458"></a>00458 }
337 <a name="l00459"></a>00459
338 <a name="l00472"></a>00472 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
339 <a name="l00473"></a><a class="code" href="a00050.html#gae744419648117cbd613a038074aa0627">00473</a> <a class="code" href="a00050.html#gae744419648117cbd613a038074aa0627" title="Get the first cache covering a cpuset set.">hwloc_get_cache_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
340 <a name="l00474"></a>00474 {
341 <a name="l00475"></a>00475 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> current = <a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a>(topology, <span class="keyword">set</span>);
342 <a name="l00476"></a>00476 <span class="keywordflow">while</span> (current) {
343 <a name="l00477"></a>00477 <span class="keywordflow">if</span> (current-&gt;<a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
344 <a name="l00478"></a>00478 <span class="keywordflow">return</span> current;
345 <a name="l00479"></a>00479 current = current-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
346 <a name="l00480"></a>00480 }
347 <a name="l00481"></a>00481 <span class="keywordflow">return</span> NULL;
348 <a name="l00482"></a>00482 }
349 <a name="l00483"></a>00483
350 <a name="l00488"></a>00488 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
351 <a name="l00489"></a><a class="code" href="a00050.html#ga75e961873d4b976ab10bc4739248c96d">00489</a> <a class="code" href="a00050.html#ga75e961873d4b976ab10bc4739248c96d" title="Get the first cache shared between an object and somebody else.">hwloc_get_shared_cache_covering_obj</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj)
352 <a name="l00490"></a>00490 {
353 <a name="l00491"></a>00491 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> current = obj-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
354 <a name="l00492"></a>00492 <span class="keywordflow">while</span> (current) {
355 <a name="l00493"></a>00493 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#ga4dd6a75ab63d33ef33bd626b0e489388" title="Test whether bitmap bitmap1 is equal to bitmap bitmap2.">hwloc_bitmap_isequal</a>(current-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>)
356 <a name="l00494"></a>00494 &amp;&amp; current-&gt;<a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
357 <a name="l00495"></a>00495 <span class="keywordflow">return</span> current;
358 <a name="l00496"></a>00496 current = current-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
359 <a name="l00497"></a>00497 }
360 <a name="l00498"></a>00498 <span class="keywordflow">return</span> NULL;
361 <a name="l00499"></a>00499 }
362 <a name="l00500"></a>00500
363 <a name="l00516"></a>00516 <span class="comment">/* TODO: rather provide an iterator? Provide a way to know how much should be allocated? By returning the total number of objects instead? */</span>
364 <a name="l00517"></a>00517 <span class="keywordtype">unsigned</span> <a class="code" href="a00051.html#ga26c2ac4f25b1ed293249c88e232f1bea" title="Do a depth-first traversal of the topology to find and sort.">hwloc_get_closest_objs</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> src, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> * restrict objs, <span class="keywordtype">unsigned</span> max);
365 <a name="l00518"></a>00518
366 <a name="l00529"></a>00529 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
367 <a name="l00530"></a><a class="code" href="a00051.html#ga3d32c128aa36b5c9d56f6bf9e70d0e78">00530</a> <a class="code" href="a00051.html#ga3d32c128aa36b5c9d56f6bf9e70d0e78" title="Find an object below another object, both specified by types and indexes.">hwloc_get_obj_below_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
368 <a name="l00531"></a>00531 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <span class="keywordtype">unsigned</span> idx1,
369 <a name="l00532"></a>00532 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2, <span class="keywordtype">unsigned</span> idx2)
370 <a name="l00533"></a>00533 {
371 <a name="l00534"></a>00534 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
372 <a name="l00535"></a>00535
373 <a name="l00536"></a>00536 obj = <a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (topology, type1, idx1);
374 <a name="l00537"></a>00537 <span class="keywordflow">if</span> (!obj)
375 <a name="l00538"></a>00538 <span class="keywordflow">return</span> NULL;
376 <a name="l00539"></a>00539
377 <a name="l00540"></a>00540 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, type2, idx2);
378 <a name="l00541"></a>00541 }
379 <a name="l00542"></a>00542
380 <a name="l00558"></a>00558 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
381 <a name="l00559"></a><a class="code" href="a00051.html#ga340bb7021204078c30382ea77d38bde9">00559</a> <a class="code" href="a00051.html#ga340bb7021204078c30382ea77d38bde9" title="Find an object below a chain of objects specified by types and indexes.">hwloc_get_obj_below_array_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">int</span> nr, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> *typev, <span class="keywordtype">unsigned</span> *idxv)
382 <a name="l00560"></a>00560 {
383 <a name="l00561"></a>00561 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
384 <a name="l00562"></a>00562 <span class="keywordtype">int</span> i;
385 <a name="l00563"></a>00563
386 <a name="l00564"></a>00564 <span class="keywordflow">for</span>(i=0; i&lt;nr; i++) {
387 <a name="l00565"></a>00565 obj = <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, typev[i], idxv[i]);
388 <a name="l00566"></a>00566 <span class="keywordflow">if</span> (!obj)
389 <a name="l00567"></a>00567 <span class="keywordflow">return</span> NULL;
390 <a name="l00568"></a>00568 }
391 <a name="l00569"></a>00569
392 <a name="l00570"></a>00570 <span class="keywordflow">return</span> obj;
393 <a name="l00571"></a>00571 }
394 <a name="l00572"></a>00572
395 <a name="l00594"></a>00594 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
396 <a name="l00595"></a>00595 <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> *root, <span class="keywordtype">unsigned</span> n_roots, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until);
186 <a name="l00209"></a>00209 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
187 <a name="l00210"></a><a class="code" href="a00046.html#ga38d9bd3a7566d0e6b0ab95d652557707">00210</a> <a class="code" href="a00046.html#ga38d9bd3a7566d0e6b0ab95d652557707" title="Returns true if obj is inside the subtree beginning with subtree_root.">hwloc_obj_is_in_subtree</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> subtree_root)
188 <a name="l00211"></a>00211 {
189 <a name="l00212"></a>00212 <span class="keywordflow">return</span> <a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, subtree_root-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
190 <a name="l00213"></a>00213 }
191 <a name="l00214"></a>00214
192 <a name="l00231"></a>00231 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
193 <a name="l00232"></a><a class="code" href="a00047.html#gabcd5fa81a95fa5335950cae092277d5b">00232</a> <a class="code" href="a00047.html#gabcd5fa81a95fa5335950cae092277d5b" title="Get the first largest object included in the given cpuset set.">hwloc_get_first_largest_obj_inside_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
194 <a name="l00233"></a>00233 {
195 <a name="l00234"></a>00234 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
196 <a name="l00235"></a>00235 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
197 <a name="l00236"></a>00236 <span class="keywordflow">return</span> NULL;
198 <a name="l00237"></a>00237 <span class="keywordflow">while</span> (!<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
199 <a name="l00238"></a>00238 <span class="comment">/* while the object intersects without being included, look at its children */</span>
200 <a name="l00239"></a>00239 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child = NULL;
201 <a name="l00240"></a>00240 <span class="keywordflow">while</span> ((child = <a class="code" href="a00046.html#gae5ef1af636849f77714e1584ba78cf9c" title="Return the next child.">hwloc_get_next_child</a>(topology, obj, child)) != NULL) {
202 <a name="l00241"></a>00241 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(child-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
203 <a name="l00242"></a>00242 <span class="keywordflow">break</span>;
204 <a name="l00243"></a>00243 }
205 <a name="l00244"></a>00244 <span class="keywordflow">if</span> (!child)
206 <a name="l00245"></a>00245 <span class="comment">/* no child intersects, return their father */</span>
207 <a name="l00246"></a>00246 <span class="keywordflow">return</span> obj;
208 <a name="l00247"></a>00247 <span class="comment">/* found one intersecting child, look at its children */</span>
209 <a name="l00248"></a>00248 obj = child;
210 <a name="l00249"></a>00249 }
211 <a name="l00250"></a>00250 <span class="comment">/* obj is included, return it */</span>
212 <a name="l00251"></a>00251 <span class="keywordflow">return</span> obj;
213 <a name="l00252"></a>00252 }
214 <a name="l00253"></a>00253
215 <a name="l00258"></a>00258 <span class="keywordtype">int</span> <a class="code" href="a00047.html#gaab04c89623662e63a48ed2cd48eb601c" title="Get the set of largest objects covering exactly a given cpuset set.">hwloc_get_largest_objs_inside_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
216 <a name="l00259"></a>00259 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> * restrict objs, <span class="keywordtype">int</span> max);
217 <a name="l00260"></a>00260
218 <a name="l00267"></a>00267 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
219 <a name="l00268"></a><a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6">00268</a> <a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6" title="Return the next object at depth depth included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
220 <a name="l00269"></a>00269 <span class="keywordtype">unsigned</span> depth, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
221 <a name="l00270"></a>00270 {
222 <a name="l00271"></a>00271 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
223 <a name="l00272"></a>00272 <span class="keywordflow">while</span> (next &amp;&amp; !<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(next-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
224 <a name="l00273"></a>00273 next = next-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
225 <a name="l00274"></a>00274 <span class="keywordflow">return</span> next;
226 <a name="l00275"></a>00275 }
227 <a name="l00276"></a>00276
228 <a name="l00283"></a>00283 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
229 <a name="l00284"></a><a class="code" href="a00047.html#ga934e7ecd68b33403e0c0be779d9ed1e6">00284</a> <a class="code" href="a00047.html#ga934e7ecd68b33403e0c0be779d9ed1e6" title="Return the next object of type type included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
230 <a name="l00285"></a>00285 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
231 <a name="l00286"></a>00286 {
232 <a name="l00287"></a>00287 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
233 <a name="l00288"></a>00288 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
234 <a name="l00289"></a>00289 <span class="keywordflow">return</span> NULL;
235 <a name="l00290"></a>00290 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga8af256c2572f16520f95440b884c1bd6" title="Return the next object at depth depth included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, prev);
236 <a name="l00291"></a>00291 }
237 <a name="l00292"></a>00292
238 <a name="l00295"></a>00295 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
239 <a name="l00296"></a><a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a">00296</a> <a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a" title="Return the index -th object at depth depth included in CPU set set.">hwloc_get_obj_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
240 <a name="l00297"></a>00297 <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx)
241 <a name="l00298"></a>00298 {
242 <a name="l00299"></a>00299 <span class="keywordtype">unsigned</span> count = 0;
243 <a name="l00300"></a>00300 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
244 <a name="l00301"></a>00301 <span class="keywordflow">while</span> (obj) {
245 <a name="l00302"></a>00302 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
246 <a name="l00303"></a>00303 <span class="keywordflow">if</span> (count == idx)
247 <a name="l00304"></a>00304 <span class="keywordflow">return</span> obj;
248 <a name="l00305"></a>00305 count++;
249 <a name="l00306"></a>00306 }
250 <a name="l00307"></a>00307 obj = obj-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
251 <a name="l00308"></a>00308 }
252 <a name="l00309"></a>00309 <span class="keywordflow">return</span> NULL;
253 <a name="l00310"></a>00310 }
254 <a name="l00311"></a>00311
255 <a name="l00318"></a>00318 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
256 <a name="l00319"></a><a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b">00319</a> <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
257 <a name="l00320"></a>00320 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
258 <a name="l00321"></a>00321 {
259 <a name="l00322"></a>00322 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
260 <a name="l00323"></a>00323 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
261 <a name="l00324"></a>00324 <span class="keywordflow">return</span> NULL;
262 <a name="l00325"></a>00325 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga20703980008f82379f98f56857611a1a" title="Return the index -th object at depth depth included in CPU set set.">hwloc_get_obj_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, idx);
263 <a name="l00326"></a>00326 }
264 <a name="l00327"></a>00327
265 <a name="l00329"></a>00329 <span class="keyword">static</span> inline <span class="keywordtype">unsigned</span>
266 <a name="l00330"></a><a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493">00330</a> <a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493" title="Return the number of objects at depth depth included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_depth</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
267 <a name="l00331"></a>00331 <span class="keywordtype">unsigned</span> depth)
268 <a name="l00332"></a>00332 {
269 <a name="l00333"></a>00333 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
270 <a name="l00334"></a>00334 <span class="keywordtype">int</span> count = 0;
271 <a name="l00335"></a>00335 <span class="keywordflow">while</span> (obj) {
272 <a name="l00336"></a>00336 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
273 <a name="l00337"></a>00337 count++;
274 <a name="l00338"></a>00338 obj = obj-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
275 <a name="l00339"></a>00339 }
276 <a name="l00340"></a>00340 <span class="keywordflow">return</span> count;
277 <a name="l00341"></a>00341 }
278 <a name="l00342"></a>00342
279 <a name="l00349"></a>00349 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
280 <a name="l00350"></a><a class="code" href="a00047.html#ga72c5bc4317a4c3938e32447b769813a0">00350</a> <a class="code" href="a00047.html#ga72c5bc4317a4c3938e32447b769813a0" title="Return the number of objects of type type included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
281 <a name="l00351"></a>00351 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
282 <a name="l00352"></a>00352 {
283 <a name="l00353"></a>00353 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
284 <a name="l00354"></a>00354 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
285 <a name="l00355"></a>00355 <span class="keywordflow">return</span> 0;
286 <a name="l00356"></a>00356 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
287 <a name="l00357"></a>00357 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
288 <a name="l00358"></a>00358 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga6807db0012369efe19b8d3dcee235493" title="Return the number of objects at depth depth included in CPU set set.">hwloc_get_nbobjs_inside_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth);
289 <a name="l00359"></a>00359 }
290 <a name="l00360"></a>00360
291 <a name="l00373"></a>00373 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
292 <a name="l00374"></a><a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7">00374</a> <a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
293 <a name="l00375"></a>00375 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> parent)
294 <a name="l00376"></a>00376 {
295 <a name="l00377"></a>00377 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child;
296 <a name="l00378"></a>00378
297 <a name="l00379"></a>00379 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(<span class="keyword">set</span>))
298 <a name="l00380"></a>00380 <span class="keywordflow">return</span> NULL;
299 <a name="l00381"></a>00381
300 <a name="l00382"></a>00382 child = parent-&gt;<a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
301 <a name="l00383"></a>00383 <span class="keywordflow">while</span> (child) {
302 <a name="l00384"></a>00384 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(<span class="keyword">set</span>, child-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
303 <a name="l00385"></a>00385 <span class="keywordflow">return</span> child;
304 <a name="l00386"></a>00386 child = child-&gt;<a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
305 <a name="l00387"></a>00387 }
306 <a name="l00388"></a>00388 <span class="keywordflow">return</span> NULL;
307 <a name="l00389"></a>00389 }
308 <a name="l00390"></a>00390
309 <a name="l00395"></a>00395 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
310 <a name="l00396"></a><a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582">00396</a> <a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
311 <a name="l00397"></a>00397 {
312 <a name="l00398"></a>00398 <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *current = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
313 <a name="l00399"></a>00399
314 <a name="l00400"></a>00400 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(<span class="keyword">set</span>))
315 <a name="l00401"></a>00401 <span class="keywordflow">return</span> NULL;
316 <a name="l00402"></a>00402
317 <a name="l00403"></a>00403 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#gaae29e14a926c198e8f91e6e4790621e7" title="Test whether bitmap sub_bitmap is part of bitmap super_bitmap.">hwloc_bitmap_isincluded</a>(<span class="keyword">set</span>, current-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
318 <a name="l00404"></a>00404 <span class="keywordflow">return</span> NULL;
319 <a name="l00405"></a>00405
320 <a name="l00406"></a>00406 <span class="keywordflow">while</span> (1) {
321 <a name="l00407"></a>00407 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> child = <a class="code" href="a00048.html#gab56b99460194bbcb36016d36d55132a7" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a>(topology, <span class="keyword">set</span>, current);
322 <a name="l00408"></a>00408 <span class="keywordflow">if</span> (!child)
323 <a name="l00409"></a>00409 <span class="keywordflow">return</span> current;
324 <a name="l00410"></a>00410 current = child;
325 <a name="l00411"></a>00411 }
326 <a name="l00412"></a>00412 }
327 <a name="l00413"></a>00413
328 <a name="l00414"></a>00414
329 <a name="l00430"></a>00430 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
330 <a name="l00431"></a><a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b">00431</a> <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
331 <a name="l00432"></a>00432 <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
332 <a name="l00433"></a>00433 {
333 <a name="l00434"></a>00434 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
334 <a name="l00435"></a>00435 <span class="keywordflow">while</span> (next &amp;&amp; !<a class="code" href="a00056.html#ga575c27953709a8cb9a047aae65157526" title="Test whether bitmaps bitmap1 and bitmap2 intersects.">hwloc_bitmap_intersects</a>(<span class="keyword">set</span>, next-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
335 <a name="l00436"></a>00436 next = next-&gt;<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
336 <a name="l00437"></a>00437 <span class="keywordflow">return</span> next;
337 <a name="l00438"></a>00438 }
338 <a name="l00439"></a>00439
339 <a name="l00452"></a>00452 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
340 <a name="l00453"></a><a class="code" href="a00049.html#ga5915ea30f326676b3a4cfff371ce04d1">00453</a> <a class="code" href="a00049.html#ga5915ea30f326676b3a4cfff371ce04d1" title="Iterate through same-type objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_type</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
341 <a name="l00454"></a>00454 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
342 <a name="l00455"></a>00455 {
343 <a name="l00456"></a>00456 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
344 <a name="l00457"></a>00457 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
345 <a name="l00458"></a>00458 <span class="keywordflow">return</span> NULL;
346 <a name="l00459"></a>00459 <span class="keywordflow">return</span> <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, <span class="keyword">set</span>, depth, prev);
347 <a name="l00460"></a>00460 }
348 <a name="l00461"></a>00461
349 <a name="l00474"></a>00474 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
350 <a name="l00475"></a><a class="code" href="a00050.html#gae744419648117cbd613a038074aa0627">00475</a> <a class="code" href="a00050.html#gae744419648117cbd613a038074aa0627" title="Get the first cache covering a cpuset set.">hwloc_get_cache_covering_cpuset</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
351 <a name="l00476"></a>00476 {
352 <a name="l00477"></a>00477 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> current = <a class="code" href="a00048.html#ga2a0de36ea0c3c70fb5f4cba0bb192582" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a>(topology, <span class="keyword">set</span>);
353 <a name="l00478"></a>00478 <span class="keywordflow">while</span> (current) {
354 <a name="l00479"></a>00479 <span class="keywordflow">if</span> (current-&gt;<a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
355 <a name="l00480"></a>00480 <span class="keywordflow">return</span> current;
356 <a name="l00481"></a>00481 current = current-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
357 <a name="l00482"></a>00482 }
358 <a name="l00483"></a>00483 <span class="keywordflow">return</span> NULL;
359 <a name="l00484"></a>00484 }
360 <a name="l00485"></a>00485
361 <a name="l00490"></a>00490 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
362 <a name="l00491"></a><a class="code" href="a00050.html#ga75e961873d4b976ab10bc4739248c96d">00491</a> <a class="code" href="a00050.html#ga75e961873d4b976ab10bc4739248c96d" title="Get the first cache shared between an object and somebody else.">hwloc_get_shared_cache_covering_obj</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology , <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj)
363 <a name="l00492"></a>00492 {
364 <a name="l00493"></a>00493 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> current = obj-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
365 <a name="l00494"></a>00494 <span class="keywordflow">while</span> (current) {
366 <a name="l00495"></a>00495 <span class="keywordflow">if</span> (!<a class="code" href="a00056.html#ga4dd6a75ab63d33ef33bd626b0e489388" title="Test whether bitmap bitmap1 is equal to bitmap bitmap2.">hwloc_bitmap_isequal</a>(current-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>)
367 <a name="l00496"></a>00496 &amp;&amp; current-&gt;<a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
368 <a name="l00497"></a>00497 <span class="keywordflow">return</span> current;
369 <a name="l00498"></a>00498 current = current-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
370 <a name="l00499"></a>00499 }
371 <a name="l00500"></a>00500 <span class="keywordflow">return</span> NULL;
372 <a name="l00501"></a>00501 }
373 <a name="l00502"></a>00502
374 <a name="l00518"></a>00518 <span class="comment">/* TODO: rather provide an iterator? Provide a way to know how much should be allocated? By returning the total number of objects instead? */</span>
375 <a name="l00519"></a>00519 <span class="keywordtype">unsigned</span> <a class="code" href="a00051.html#ga26c2ac4f25b1ed293249c88e232f1bea" title="Do a depth-first traversal of the topology to find and sort.">hwloc_get_closest_objs</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> src, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> * restrict objs, <span class="keywordtype">unsigned</span> max);
376 <a name="l00520"></a>00520
377 <a name="l00531"></a>00531 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
378 <a name="l00532"></a><a class="code" href="a00051.html#ga3d32c128aa36b5c9d56f6bf9e70d0e78">00532</a> <a class="code" href="a00051.html#ga3d32c128aa36b5c9d56f6bf9e70d0e78" title="Find an object below another object, both specified by types and indexes.">hwloc_get_obj_below_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
379 <a name="l00533"></a>00533 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <span class="keywordtype">unsigned</span> idx1,
380 <a name="l00534"></a>00534 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2, <span class="keywordtype">unsigned</span> idx2)
381 <a name="l00535"></a>00535 {
382 <a name="l00536"></a>00536 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
383 <a name="l00537"></a>00537
384 <a name="l00538"></a>00538 obj = <a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (topology, type1, idx1);
385 <a name="l00539"></a>00539 <span class="keywordflow">if</span> (!obj)
386 <a name="l00540"></a>00540 <span class="keywordflow">return</span> NULL;
387 <a name="l00541"></a>00541
388 <a name="l00542"></a>00542 <span class="keywordflow">return</span> <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, type2, idx2);
389 <a name="l00543"></a>00543 }
390 <a name="l00544"></a>00544
391 <a name="l00560"></a>00560 <span class="keyword">static</span> inline <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a>
392 <a name="l00561"></a><a class="code" href="a00051.html#ga340bb7021204078c30382ea77d38bde9">00561</a> <a class="code" href="a00051.html#ga340bb7021204078c30382ea77d38bde9" title="Find an object below a chain of objects specified by types and indexes.">hwloc_get_obj_below_array_by_type</a> (<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">int</span> nr, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> *typev, <span class="keywordtype">unsigned</span> *idxv)
393 <a name="l00562"></a>00562 {
394 <a name="l00563"></a>00563 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
395 <a name="l00564"></a>00564 <span class="keywordtype">int</span> i;
396 <a name="l00565"></a>00565
397 <a name="l00566"></a>00566 <span class="keywordflow">for</span>(i=0; i&lt;nr; i++) {
398 <a name="l00567"></a>00567 obj = <a class="code" href="a00047.html#ga50a80a0021e5843d968c3b97aebaad9b" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, typev[i], idxv[i]);
399 <a name="l00568"></a>00568 <span class="keywordflow">if</span> (!obj)
400 <a name="l00569"></a>00569 <span class="keywordflow">return</span> NULL;
401 <a name="l00570"></a>00570 }
402 <a name="l00571"></a>00571
403 <a name="l00572"></a>00572 <span class="keywordflow">return</span> obj;
404 <a name="l00573"></a>00573 }
405 <a name="l00574"></a>00574
397406 <a name="l00596"></a>00596 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
398 <a name="l00597"></a><a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">00597</a> <a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">hwloc_distribute</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> root, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until)
399 <a name="l00598"></a>00598 {
400 <a name="l00599"></a>00599 <span class="keywordtype">unsigned</span> i;
401 <a name="l00600"></a>00600
402 <a name="l00601"></a>00601 <span class="keywordflow">if</span> (!root-&gt;<a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a> || n == 1 || root-&gt;<a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> &gt;= until) {
403 <a name="l00602"></a>00602 <span class="comment">/* Got to the bottom, we can&#39;t split any more, put everything there. */</span>
404 <a name="l00603"></a>00603 <span class="keywordflow">for</span> (i=0; i&lt;n; i++)
405 <a name="l00604"></a>00604 cpuset[i] = <a class="code" href="a00056.html#gaaa4ed76211cd3694dfbea2109fc440be" title="Duplicate bitmap bitmap by allocating a new bitmap and copying bitmap contents.">hwloc_bitmap_dup</a>(root-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
406 <a name="l00605"></a>00605 <span class="keywordflow">return</span>;
407 <a name="l00606"></a>00606 }
408 <a name="l00607"></a>00607
409 <a name="l00608"></a>00608 <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(topology, root-&gt;<a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>, root-&gt;<a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>, cpuset, n, until);
410 <a name="l00609"></a>00609 }
411 <a name="l00610"></a>00610
412 <a name="l00616"></a>00616 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
413 <a name="l00617"></a><a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619">00617</a> <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> *roots, <span class="keywordtype">unsigned</span> n_roots, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until)
414 <a name="l00618"></a>00618 {
415 <a name="l00619"></a>00619 <span class="keywordtype">unsigned</span> i;
416 <a name="l00620"></a>00620 <span class="keywordtype">unsigned</span> tot_weight;
417 <a name="l00621"></a>00621 <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *cpusetp = <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
418 <a name="l00622"></a>00622
419 <a name="l00623"></a>00623 tot_weight = 0;
420 <a name="l00624"></a>00624 <span class="keywordflow">for</span> (i = 0; i &lt; n_roots; i++)
421 <a name="l00625"></a>00625 tot_weight += <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(roots[i]-&gt;cpuset);
422 <a name="l00626"></a>00626
423 <a name="l00627"></a>00627 <span class="keywordflow">for</span> (i = 0; i &lt; n_roots; i++) {
424 <a name="l00628"></a>00628 <span class="comment">/* Give to roots[i] a portion proportional to its weight */</span>
425 <a name="l00629"></a>00629 <span class="keywordtype">unsigned</span> weight = <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(roots[i]-&gt;cpuset);
426 <a name="l00630"></a>00630 <span class="keywordtype">unsigned</span> chunk = (n * weight + tot_weight-1) / tot_weight;
427 <a name="l00631"></a>00631 <a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">hwloc_distribute</a>(topology, roots[i], cpusetp, chunk, until);
428 <a name="l00632"></a>00632 cpusetp += chunk;
429 <a name="l00633"></a>00633 tot_weight -= weight;
430 <a name="l00634"></a>00634 n -= chunk;
431 <a name="l00635"></a>00635 }
432 <a name="l00636"></a>00636 }
433 <a name="l00637"></a>00637
434 <a name="l00644"></a>00644 <span class="keyword">static</span> inline <span class="keywordtype">void</span> *
435 <a name="l00645"></a><a class="code" href="a00052.html#ga3e772fbc4de626ed80f13d332b7d4d03">00645</a> <a class="code" href="a00052.html#ga3e772fbc4de626ed80f13d332b7d4d03" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_policy_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">size_t</span> len, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags)
436 <a name="l00646"></a>00646 {
437 <a name="l00647"></a>00647 <span class="keywordtype">void</span> *p = <a class="code" href="a00044.html#gaeaa00714a9c4319bda0a74ca6f8720e8" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_nodeset</a>(topology, len, nodeset, policy, flags);
438 <a name="l00648"></a>00648 <span class="keywordflow">if</span> (p)
439 <a name="l00649"></a>00649 <span class="keywordflow">return</span> p;
440 <a name="l00650"></a>00650 <a class="code" href="a00044.html#ga747962cbb16fd12ad6d126011c734a27" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...">hwloc_set_membind_nodeset</a>(topology, nodeset, policy, flags);
441 <a name="l00651"></a>00651 p = <a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(topology, len);
442 <a name="l00652"></a>00652 <span class="keywordflow">if</span> (p &amp;&amp; policy != <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a>)
443 <a name="l00653"></a>00653 <span class="comment">/* Enforce the binding by touching the data */</span>
444 <a name="l00654"></a>00654 memset(p, 0, len);
445 <a name="l00655"></a>00655 <span class="keywordflow">return</span> p;
446 <a name="l00656"></a>00656 }
447 <a name="l00657"></a>00657
448 <a name="l00662"></a>00662 <span class="keyword">static</span> inline <span class="keywordtype">void</span> *
449 <a name="l00663"></a><a class="code" href="a00052.html#ga6178c6a9ec1dd88ec9f6a9fcdcc7d634">00663</a> <a class="code" href="a00052.html#ga6178c6a9ec1dd88ec9f6a9fcdcc7d634" title="Allocate some memory on the memory nodes near given cpuset cpuset.">hwloc_alloc_membind_policy</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">size_t</span> len, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags)
450 <a name="l00664"></a>00664 {
451 <a name="l00665"></a>00665 <span class="keywordtype">void</span> *p = <a class="code" href="a00044.html#ga221a7edc5d436300374fa16463f607e5" title="Allocate some memory on memory nodes near the given cpuset cpuset.">hwloc_alloc_membind</a>(topology, len, cpuset, policy, flags);
452 <a name="l00666"></a>00666 <span class="keywordflow">if</span> (p)
453 <a name="l00667"></a>00667 <span class="keywordflow">return</span> p;
454 <a name="l00668"></a>00668 <a class="code" href="a00044.html#ga8b6d1d90227aff8e44ef26bc1f8a8f95" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) nea...">hwloc_set_membind</a>(topology, cpuset, policy, flags);
455 <a name="l00669"></a>00669 p = <a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(topology, len);
456 <a name="l00670"></a>00670 <span class="keywordflow">if</span> (p &amp;&amp; policy != <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a>)
457 <a name="l00671"></a>00671 <span class="comment">/* Enforce the binding by touching the data */</span>
458 <a name="l00672"></a>00672 memset(p, 0, len);
459 <a name="l00673"></a>00673 <span class="keywordflow">return</span> p;
460 <a name="l00674"></a>00674 }
461 <a name="l00675"></a>00675
462 <a name="l00692"></a>00692 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
463 <a name="l00693"></a><a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26">00693</a> <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
464 <a name="l00694"></a>00694 {
465 <a name="l00695"></a>00695 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
466 <a name="l00696"></a>00696 }
467 <a name="l00697"></a>00697
468 <a name="l00708"></a>00708 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
469 <a name="l00709"></a><a class="code" href="a00053.html#ga4497338d1cbae6f8a6d68cb14234d5d8">00709</a> <a class="code" href="a00053.html#ga4497338d1cbae6f8a6d68cb14234d5d8" title="Get topology CPU set.">hwloc_topology_get_topology_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
470 <a name="l00710"></a>00710 {
471 <a name="l00711"></a>00711 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
472 <a name="l00712"></a>00712 }
473 <a name="l00713"></a>00713
474 <a name="l00723"></a>00723 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
475 <a name="l00724"></a><a class="code" href="a00053.html#gad00abc77f1670049a5b2139471d0c8db">00724</a> <a class="code" href="a00053.html#gad00abc77f1670049a5b2139471d0c8db" title="Get online CPU set.">hwloc_topology_get_online_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
476 <a name="l00725"></a>00725 {
477 <a name="l00726"></a>00726 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
478 <a name="l00727"></a>00727 }
479 <a name="l00728"></a>00728
480 <a name="l00738"></a>00738 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
481 <a name="l00739"></a><a class="code" href="a00053.html#ga95f116c4c0b1ff2c6418c16341fc2e57">00739</a> <a class="code" href="a00053.html#ga95f116c4c0b1ff2c6418c16341fc2e57" title="Get allowed CPU set.">hwloc_topology_get_allowed_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
482 <a name="l00740"></a>00740 {
483 <a name="l00741"></a>00741 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
484 <a name="l00742"></a>00742 }
485 <a name="l00743"></a>00743
486 <a name="l00760"></a>00760 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
487 <a name="l00761"></a><a class="code" href="a00054.html#gaf8331b6d5e60c463f7ebe21a878561d4">00761</a> <a class="code" href="a00054.html#gaf8331b6d5e60c463f7ebe21a878561d4" title="Get complete node set.">hwloc_topology_get_complete_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
488 <a name="l00762"></a>00762 {
489 <a name="l00763"></a>00763 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e" title="The complete NUMA node set of this object,.">complete_nodeset</a>;
490 <a name="l00764"></a>00764 }
491 <a name="l00765"></a>00765
492 <a name="l00776"></a>00776 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
493 <a name="l00777"></a><a class="code" href="a00054.html#gae6821ede7676dfac0515a4b7b04b0397">00777</a> <a class="code" href="a00054.html#gae6821ede7676dfac0515a4b7b04b0397" title="Get topology node set.">hwloc_topology_get_topology_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
494 <a name="l00778"></a>00778 {
495 <a name="l00779"></a>00779 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>;
496 <a name="l00780"></a>00780 }
497 <a name="l00781"></a>00781
498 <a name="l00791"></a>00791 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
499 <a name="l00792"></a><a class="code" href="a00054.html#ga5d829323f8d283687be43ea8c894eb3b">00792</a> <a class="code" href="a00054.html#ga5d829323f8d283687be43ea8c894eb3b" title="Get allowed node set.">hwloc_topology_get_allowed_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
500 <a name="l00793"></a>00793 {
501 <a name="l00794"></a>00794 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531" title="The set of allowed NUMA memory nodes.">allowed_nodeset</a>;
502 <a name="l00795"></a>00795 }
503 <a name="l00796"></a>00796
504 <a name="l00827"></a>00827 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
505 <a name="l00828"></a><a class="code" href="a00055.html#ga60ecc4ae480c28b5fbd34aca4fc37daa">00828</a> <a class="code" href="a00055.html#ga60ecc4ae480c28b5fbd34aca4fc37daa" title="Convert a CPU set into a NUMA node set and handle non-NUMA cases.">hwloc_cpuset_to_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
506 <a name="l00829"></a>00829 {
507 <a name="l00830"></a>00830 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
508 <a name="l00831"></a>00831 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
509 <a name="l00832"></a>00832
510 <a name="l00833"></a>00833 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
511 <a name="l00834"></a>00834 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(cpuset))
512 <a name="l00835"></a>00835 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
513 <a name="l00836"></a>00836 <span class="keywordflow">else</span>
514 <a name="l00837"></a>00837 <span class="comment">/* Assume the whole system */</span>
515 <a name="l00838"></a>00838 <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(nodeset);
516 <a name="l00839"></a>00839 <span class="keywordflow">return</span>;
517 <a name="l00840"></a>00840 }
518 <a name="l00841"></a>00841
519 <a name="l00842"></a>00842 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
520 <a name="l00843"></a>00843 obj = NULL;
521 <a name="l00844"></a>00844 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, cpuset, depth, obj)) != NULL)
522 <a name="l00845"></a>00845 <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
523 <a name="l00846"></a>00846 }
524 <a name="l00847"></a>00847
525 <a name="l00855"></a>00855 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
526 <a name="l00856"></a><a class="code" href="a00055.html#ga9162785e39d7c697f76f99524c4a2fb4">00856</a> <a class="code" href="a00055.html#ga9162785e39d7c697f76f99524c4a2fb4" title="Convert a CPU set into a NUMA node set without handling non-NUMA cases.">hwloc_cpuset_to_nodeset_strict</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
527 <a name="l00857"></a>00857 {
528 <a name="l00858"></a>00858 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
529 <a name="l00859"></a>00859 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
530 <a name="l00860"></a>00860 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> )
531 <a name="l00861"></a>00861 <span class="keywordflow">return</span>;
532 <a name="l00862"></a>00862 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
533 <a name="l00863"></a>00863 obj = NULL;
534 <a name="l00864"></a>00864 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, cpuset, depth, obj)) != NULL)
535 <a name="l00865"></a>00865 <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
536 <a name="l00866"></a>00866 }
537 <a name="l00867"></a>00867
538 <a name="l00876"></a>00876 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
539 <a name="l00877"></a><a class="code" href="a00055.html#gaa677fd588304b5615de4ea78104adfb5">00877</a> <a class="code" href="a00055.html#gaa677fd588304b5615de4ea78104adfb5" title="Convert a NUMA node set into a CPU set and handle non-NUMA cases.">hwloc_cpuset_from_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
540 <a name="l00878"></a>00878 {
541 <a name="l00879"></a>00879 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
542 <a name="l00880"></a>00880 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
543 <a name="l00881"></a>00881
544 <a name="l00882"></a>00882 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> ) {
545 <a name="l00883"></a>00883 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(nodeset))
546 <a name="l00884"></a>00884 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
547 <a name="l00885"></a>00885 <span class="keywordflow">else</span>
548 <a name="l00886"></a>00886 <span class="comment">/* Assume the whole system */</span>
549 <a name="l00887"></a>00887 <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(cpuset);
550 <a name="l00888"></a>00888 <span class="keywordflow">return</span>;
551 <a name="l00889"></a>00889 }
552 <a name="l00890"></a>00890
553 <a name="l00891"></a>00891 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
554 <a name="l00892"></a>00892 obj = NULL;
555 <a name="l00893"></a>00893 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, obj)) != NULL) {
556 <a name="l00894"></a>00894 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>))
557 <a name="l00895"></a>00895 <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a>(cpuset, cpuset, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
558 <a name="l00896"></a>00896 }
559 <a name="l00897"></a>00897 }
560 <a name="l00898"></a>00898
561 <a name="l00906"></a>00906 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
562 <a name="l00907"></a><a class="code" href="a00055.html#gaa7c3f39802b00a758c58e024a8119979">00907</a> <a class="code" href="a00055.html#gaa7c3f39802b00a758c58e024a8119979" title="Convert a NUMA node set into a CPU set without handling non-NUMA cases.">hwloc_cpuset_from_nodeset_strict</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
563 <a name="l00908"></a>00908 {
564 <a name="l00909"></a>00909 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
565 <a name="l00910"></a>00910 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
566 <a name="l00911"></a>00911 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> )
567 <a name="l00912"></a>00912 <span class="keywordflow">return</span>;
568 <a name="l00913"></a>00913 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
569 <a name="l00914"></a>00914 obj = NULL;
570 <a name="l00915"></a>00915 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, obj)) != NULL)
571 <a name="l00916"></a>00916 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>))
572 <a name="l00917"></a>00917 <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a>(cpuset, cpuset, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
573 <a name="l00918"></a>00918 }
574 <a name="l00919"></a>00919
575 <a name="l00924"></a>00924 <span class="preprocessor">#ifdef __cplusplus</span>
576 <a name="l00925"></a>00925 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
577 <a name="l00926"></a>00926 <span class="preprocessor">#endif</span>
578 <a name="l00927"></a>00927 <span class="preprocessor"></span>
579 <a name="l00928"></a>00928
580 <a name="l00929"></a>00929 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_HELPER_H */</span>
407 <a name="l00597"></a>00597 <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> *root, <span class="keywordtype">unsigned</span> n_roots, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until);
408 <a name="l00598"></a>00598 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
409 <a name="l00599"></a><a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">00599</a> <a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">hwloc_distribute</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> root, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until)
410 <a name="l00600"></a>00600 {
411 <a name="l00601"></a>00601 <span class="keywordtype">unsigned</span> i;
412 <a name="l00602"></a>00602
413 <a name="l00603"></a>00603 <span class="keywordflow">if</span> (!root-&gt;<a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a> || n == 1 || root-&gt;<a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> &gt;= until) {
414 <a name="l00604"></a>00604 <span class="comment">/* Got to the bottom, we can&#39;t split any more, put everything there. */</span>
415 <a name="l00605"></a>00605 <span class="keywordflow">for</span> (i=0; i&lt;n; i++)
416 <a name="l00606"></a>00606 cpuset[i] = <a class="code" href="a00056.html#gaaa4ed76211cd3694dfbea2109fc440be" title="Duplicate bitmap bitmap by allocating a new bitmap and copying bitmap contents.">hwloc_bitmap_dup</a>(root-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
417 <a name="l00607"></a>00607 <span class="keywordflow">return</span>;
418 <a name="l00608"></a>00608 }
419 <a name="l00609"></a>00609
420 <a name="l00610"></a>00610 <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(topology, root-&gt;<a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>, root-&gt;<a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>, cpuset, n, until);
421 <a name="l00611"></a>00611 }
422 <a name="l00612"></a>00612
423 <a name="l00618"></a>00618 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
424 <a name="l00619"></a><a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619">00619</a> <a class="code" href="a00052.html#gaf057d7c5e3cb3df897ce527258537619" title="Distribute n items over the topology under root.">hwloc_distributev</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> *roots, <span class="keywordtype">unsigned</span> n_roots, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n, <span class="keywordtype">unsigned</span> until)
425 <a name="l00620"></a>00620 {
426 <a name="l00621"></a>00621 <span class="keywordtype">unsigned</span> i;
427 <a name="l00622"></a>00622 <span class="keywordtype">unsigned</span> tot_weight;
428 <a name="l00623"></a>00623 <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> *cpusetp = <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
429 <a name="l00624"></a>00624
430 <a name="l00625"></a>00625 tot_weight = 0;
431 <a name="l00626"></a>00626 <span class="keywordflow">for</span> (i = 0; i &lt; n_roots; i++)
432 <a name="l00627"></a>00627 tot_weight += <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(roots[i]-&gt;cpuset);
433 <a name="l00628"></a>00628
434 <a name="l00629"></a>00629 <span class="keywordflow">for</span> (i = 0; i &lt; n_roots; i++) {
435 <a name="l00630"></a>00630 <span class="comment">/* Give to roots[i] a portion proportional to its weight */</span>
436 <a name="l00631"></a>00631 <span class="keywordtype">unsigned</span> weight = <a class="code" href="a00056.html#ga12d520387be74f849f191d7a06ac325c" title="Compute the &amp;quot;weight&amp;quot; of bitmap bitmap (i.e., number of indexes that are in the bitmap)...">hwloc_bitmap_weight</a>(roots[i]-&gt;cpuset);
437 <a name="l00632"></a>00632 <span class="keywordtype">unsigned</span> chunk = (n * weight + tot_weight-1) / tot_weight;
438 <a name="l00633"></a>00633 <a class="code" href="a00052.html#ga6d5c88292ad5aa062c1bebc99369c042">hwloc_distribute</a>(topology, roots[i], cpusetp, chunk, until);
439 <a name="l00634"></a>00634 cpusetp += chunk;
440 <a name="l00635"></a>00635 tot_weight -= weight;
441 <a name="l00636"></a>00636 n -= chunk;
442 <a name="l00637"></a>00637 }
443 <a name="l00638"></a>00638 }
444 <a name="l00639"></a>00639
445 <a name="l00646"></a>00646 <span class="keyword">static</span> inline <span class="keywordtype">void</span> *
446 <a name="l00647"></a><a class="code" href="a00052.html#ga3e772fbc4de626ed80f13d332b7d4d03">00647</a> <a class="code" href="a00052.html#ga3e772fbc4de626ed80f13d332b7d4d03" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_policy_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">size_t</span> len, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags)
447 <a name="l00648"></a>00648 {
448 <a name="l00649"></a>00649 <span class="keywordtype">void</span> *p = <a class="code" href="a00044.html#gaeaa00714a9c4319bda0a74ca6f8720e8" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_nodeset</a>(topology, len, nodeset, policy, flags);
449 <a name="l00650"></a>00650 <span class="keywordflow">if</span> (p)
450 <a name="l00651"></a>00651 <span class="keywordflow">return</span> p;
451 <a name="l00652"></a>00652 <a class="code" href="a00044.html#ga747962cbb16fd12ad6d126011c734a27" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...">hwloc_set_membind_nodeset</a>(topology, nodeset, policy, flags);
452 <a name="l00653"></a>00653 p = <a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(topology, len);
453 <a name="l00654"></a>00654 <span class="keywordflow">if</span> (p &amp;&amp; policy != <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a>)
454 <a name="l00655"></a>00655 <span class="comment">/* Enforce the binding by touching the data */</span>
455 <a name="l00656"></a>00656 memset(p, 0, len);
456 <a name="l00657"></a>00657 <span class="keywordflow">return</span> p;
457 <a name="l00658"></a>00658 }
458 <a name="l00659"></a>00659
459 <a name="l00664"></a>00664 <span class="keyword">static</span> inline <span class="keywordtype">void</span> *
460 <a name="l00665"></a><a class="code" href="a00052.html#ga6178c6a9ec1dd88ec9f6a9fcdcc7d634">00665</a> <a class="code" href="a00052.html#ga6178c6a9ec1dd88ec9f6a9fcdcc7d634" title="Allocate some memory on the memory nodes near given cpuset cpuset.">hwloc_alloc_membind_policy</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">size_t</span> len, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags)
461 <a name="l00666"></a>00666 {
462 <a name="l00667"></a>00667 <span class="keywordtype">void</span> *p = <a class="code" href="a00044.html#ga221a7edc5d436300374fa16463f607e5" title="Allocate some memory on memory nodes near the given cpuset cpuset.">hwloc_alloc_membind</a>(topology, len, cpuset, policy, flags);
463 <a name="l00668"></a>00668 <span class="keywordflow">if</span> (p)
464 <a name="l00669"></a>00669 <span class="keywordflow">return</span> p;
465 <a name="l00670"></a>00670 <a class="code" href="a00044.html#ga8b6d1d90227aff8e44ef26bc1f8a8f95" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) nea...">hwloc_set_membind</a>(topology, cpuset, policy, flags);
466 <a name="l00671"></a>00671 p = <a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(topology, len);
467 <a name="l00672"></a>00672 <span class="keywordflow">if</span> (p &amp;&amp; policy != <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a>)
468 <a name="l00673"></a>00673 <span class="comment">/* Enforce the binding by touching the data */</span>
469 <a name="l00674"></a>00674 memset(p, 0, len);
470 <a name="l00675"></a>00675 <span class="keywordflow">return</span> p;
471 <a name="l00676"></a>00676 }
472 <a name="l00677"></a>00677
473 <a name="l00694"></a>00694 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
474 <a name="l00695"></a><a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26">00695</a> <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
475 <a name="l00696"></a>00696 {
476 <a name="l00697"></a>00697 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
477 <a name="l00698"></a>00698 }
478 <a name="l00699"></a>00699
479 <a name="l00710"></a>00710 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
480 <a name="l00711"></a><a class="code" href="a00053.html#ga4497338d1cbae6f8a6d68cb14234d5d8">00711</a> <a class="code" href="a00053.html#ga4497338d1cbae6f8a6d68cb14234d5d8" title="Get topology CPU set.">hwloc_topology_get_topology_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
481 <a name="l00712"></a>00712 {
482 <a name="l00713"></a>00713 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
483 <a name="l00714"></a>00714 }
484 <a name="l00715"></a>00715
485 <a name="l00725"></a>00725 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
486 <a name="l00726"></a><a class="code" href="a00053.html#gad00abc77f1670049a5b2139471d0c8db">00726</a> <a class="code" href="a00053.html#gad00abc77f1670049a5b2139471d0c8db" title="Get online CPU set.">hwloc_topology_get_online_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
487 <a name="l00727"></a>00727 {
488 <a name="l00728"></a>00728 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
489 <a name="l00729"></a>00729 }
490 <a name="l00730"></a>00730
491 <a name="l00740"></a>00740 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>
492 <a name="l00741"></a><a class="code" href="a00053.html#ga95f116c4c0b1ff2c6418c16341fc2e57">00741</a> <a class="code" href="a00053.html#ga95f116c4c0b1ff2c6418c16341fc2e57" title="Get allowed CPU set.">hwloc_topology_get_allowed_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
493 <a name="l00742"></a>00742 {
494 <a name="l00743"></a>00743 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
495 <a name="l00744"></a>00744 }
496 <a name="l00745"></a>00745
497 <a name="l00762"></a>00762 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
498 <a name="l00763"></a><a class="code" href="a00054.html#gaf8331b6d5e60c463f7ebe21a878561d4">00763</a> <a class="code" href="a00054.html#gaf8331b6d5e60c463f7ebe21a878561d4" title="Get complete node set.">hwloc_topology_get_complete_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
499 <a name="l00764"></a>00764 {
500 <a name="l00765"></a>00765 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e" title="The complete NUMA node set of this object,.">complete_nodeset</a>;
501 <a name="l00766"></a>00766 }
502 <a name="l00767"></a>00767
503 <a name="l00778"></a>00778 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
504 <a name="l00779"></a><a class="code" href="a00054.html#gae6821ede7676dfac0515a4b7b04b0397">00779</a> <a class="code" href="a00054.html#gae6821ede7676dfac0515a4b7b04b0397" title="Get topology node set.">hwloc_topology_get_topology_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
505 <a name="l00780"></a>00780 {
506 <a name="l00781"></a>00781 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>;
507 <a name="l00782"></a>00782 }
508 <a name="l00783"></a>00783
509 <a name="l00793"></a>00793 <span class="keyword">static</span> inline <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>
510 <a name="l00794"></a><a class="code" href="a00054.html#ga5d829323f8d283687be43ea8c894eb3b">00794</a> <a class="code" href="a00054.html#ga5d829323f8d283687be43ea8c894eb3b" title="Get allowed node set.">hwloc_topology_get_allowed_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
511 <a name="l00795"></a>00795 {
512 <a name="l00796"></a>00796 <span class="keywordflow">return</span> <a class="code" href="a00046.html#ga632edae4a651996895ebde85ea2c1264" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-&gt;<a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531" title="The set of allowed NUMA memory nodes.">allowed_nodeset</a>;
513 <a name="l00797"></a>00797 }
514 <a name="l00798"></a>00798
515 <a name="l00829"></a>00829 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
516 <a name="l00830"></a><a class="code" href="a00055.html#ga60ecc4ae480c28b5fbd34aca4fc37daa">00830</a> <a class="code" href="a00055.html#ga60ecc4ae480c28b5fbd34aca4fc37daa" title="Convert a CPU set into a NUMA node set and handle non-NUMA cases.">hwloc_cpuset_to_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
517 <a name="l00831"></a>00831 {
518 <a name="l00832"></a>00832 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
519 <a name="l00833"></a>00833 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
520 <a name="l00834"></a>00834
521 <a name="l00835"></a>00835 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
522 <a name="l00836"></a>00836 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(cpuset))
523 <a name="l00837"></a>00837 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
524 <a name="l00838"></a>00838 <span class="keywordflow">else</span>
525 <a name="l00839"></a>00839 <span class="comment">/* Assume the whole system */</span>
526 <a name="l00840"></a>00840 <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(nodeset);
527 <a name="l00841"></a>00841 <span class="keywordflow">return</span>;
528 <a name="l00842"></a>00842 }
529 <a name="l00843"></a>00843
530 <a name="l00844"></a>00844 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
531 <a name="l00845"></a>00845 obj = NULL;
532 <a name="l00846"></a>00846 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, cpuset, depth, obj)) != NULL)
533 <a name="l00847"></a>00847 <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
534 <a name="l00848"></a>00848 }
535 <a name="l00849"></a>00849
536 <a name="l00857"></a>00857 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
537 <a name="l00858"></a><a class="code" href="a00055.html#ga9162785e39d7c697f76f99524c4a2fb4">00858</a> <a class="code" href="a00055.html#ga9162785e39d7c697f76f99524c4a2fb4" title="Convert a CPU set into a NUMA node set without handling non-NUMA cases.">hwloc_cpuset_to_nodeset_strict</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
538 <a name="l00859"></a>00859 {
539 <a name="l00860"></a>00860 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
540 <a name="l00861"></a>00861 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
541 <a name="l00862"></a>00862 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> )
542 <a name="l00863"></a>00863 <span class="keywordflow">return</span>;
543 <a name="l00864"></a>00864 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(nodeset);
544 <a name="l00865"></a>00865 obj = NULL;
545 <a name="l00866"></a>00866 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00049.html#ga2f9a4ec15e9cfae8c21501257a51ce5b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth</a>(topology, cpuset, depth, obj)) != NULL)
546 <a name="l00867"></a>00867 <a class="code" href="a00056.html#ga497556af0cc34f109ae0277999c074d3" title="Add index id in bitmap bitmap.">hwloc_bitmap_set</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
547 <a name="l00868"></a>00868 }
548 <a name="l00869"></a>00869
549 <a name="l00878"></a>00878 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
550 <a name="l00879"></a><a class="code" href="a00055.html#gaa677fd588304b5615de4ea78104adfb5">00879</a> <a class="code" href="a00055.html#gaa677fd588304b5615de4ea78104adfb5" title="Convert a NUMA node set into a CPU set and handle non-NUMA cases.">hwloc_cpuset_from_nodeset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
551 <a name="l00880"></a>00880 {
552 <a name="l00881"></a>00881 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
553 <a name="l00882"></a>00882 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
554 <a name="l00883"></a>00883
555 <a name="l00884"></a>00884 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> ) {
556 <a name="l00885"></a>00885 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#gaa94fed35d2a598bc4a8657b6955b7bf5" title="Test whether bitmap bitmap is empty.">hwloc_bitmap_iszero</a>(nodeset))
557 <a name="l00886"></a>00886 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
558 <a name="l00887"></a>00887 <span class="keywordflow">else</span>
559 <a name="l00888"></a>00888 <span class="comment">/* Assume the whole system */</span>
560 <a name="l00889"></a>00889 <a class="code" href="a00056.html#ga52456f7ef79d68e610cb65e3f7ffafad" title="Fill bitmap bitmap with all possible indexes (even if those objects don&amp;#39;t exist or are otherwise ...">hwloc_bitmap_fill</a>(cpuset);
561 <a name="l00890"></a>00890 <span class="keywordflow">return</span>;
562 <a name="l00891"></a>00891 }
563 <a name="l00892"></a>00892
564 <a name="l00893"></a>00893 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
565 <a name="l00894"></a>00894 obj = NULL;
566 <a name="l00895"></a>00895 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, obj)) != NULL) {
567 <a name="l00896"></a>00896 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>))
568 <a name="l00897"></a>00897 <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a>(cpuset, cpuset, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
569 <a name="l00898"></a>00898 }
570 <a name="l00899"></a>00899 }
571 <a name="l00900"></a>00900
572 <a name="l00908"></a>00908 <span class="keyword">static</span> inline <span class="keywordtype">void</span>
573 <a name="l00909"></a><a class="code" href="a00055.html#gaa7c3f39802b00a758c58e024a8119979">00909</a> <a class="code" href="a00055.html#gaa7c3f39802b00a758c58e024a8119979" title="Convert a NUMA node set into a CPU set without handling non-NUMA cases.">hwloc_cpuset_from_nodeset_strict</a>(<span class="keyword">struct</span> hwloc_topology *topology, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a> <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>)
574 <a name="l00910"></a>00910 {
575 <a name="l00911"></a>00911 <span class="keywordtype">int</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
576 <a name="l00912"></a>00912 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
577 <a name="l00913"></a>00913 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> )
578 <a name="l00914"></a>00914 <span class="keywordflow">return</span>;
579 <a name="l00915"></a>00915 <a class="code" href="a00056.html#ga6c540b9fe63b8223b6aba46d56dd63b8" title="Empty the bitmap bitmap.">hwloc_bitmap_zero</a>(cpuset);
580 <a name="l00916"></a>00916 obj = NULL;
581 <a name="l00917"></a>00917 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#gab7c1dce3f42ece5bfa621e87cf332418" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, obj)) != NULL)
582 <a name="l00918"></a>00918 <span class="keywordflow">if</span> (<a class="code" href="a00056.html#ga2583f44cbdb5fff2ea40efdcf3975d3f" title="Test whether index id is part of bitmap bitmap.">hwloc_bitmap_isset</a>(nodeset, obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>))
583 <a name="l00919"></a>00919 <a class="code" href="a00056.html#ga1ba1de709ee9a7cf5cc8ad2d9a1a81d4" title="Or bitmaps bitmap1 and bitmap2 and store the result in bitmap res.">hwloc_bitmap_or</a>(cpuset, cpuset, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
584 <a name="l00920"></a>00920 }
585 <a name="l00921"></a>00921
586 <a name="l00926"></a>00926 <span class="preprocessor">#ifdef __cplusplus</span>
587 <a name="l00927"></a>00927 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
588 <a name="l00928"></a>00928 <span class="preprocessor">#endif</span>
589 <a name="l00929"></a>00929 <span class="preprocessor"></span>
590 <a name="l00930"></a>00930
591 <a name="l00931"></a>00931 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_HELPER_H */</span>
581592 </pre></div></div>
582593 </div>
583 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
594 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
584595 <a href="http://www.doxygen.org/index.html">
585 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
596 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
586597 </body>
587598 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2940 <div class="contents">
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS</span>
32 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
43 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2011 INRIA. All rights reserved.</span>
3344 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2011 Université Bordeaux 1</span>
3445 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.</span>
3546 <a name="l00006"></a>00006 <span class="comment"> * See COPYING in top-level directory.</span>
3849 <a name="l00016"></a>00016 <span class="preprocessor">#ifndef HWLOC_H</span>
3950 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_H</span>
4051 <a name="l00018"></a>00018 <span class="preprocessor"></span>
41 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
52 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
4253 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
4354 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
4455 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;string.h&gt;</span>
4556 <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;limits.h&gt;</span>
46 <a name="l00024"></a>00024 <span class="preprocessor">#ifdef HWLOC_HAVE_STDINT_H</span>
47 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdint.h&gt;</span>
48 <a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
49 <a name="l00027"></a>00027 <span class="preprocessor"></span>
50 <a name="l00028"></a>00028 <span class="comment">/*</span>
51 <a name="l00029"></a>00029 <span class="comment"> * Symbol transforms</span>
52 <a name="l00030"></a>00030 <span class="comment"> */</span>
53 <a name="l00031"></a>00031 <span class="preprocessor">#include &lt;hwloc/rename.h&gt;</span>
54 <a name="l00032"></a>00032
55 <a name="l00033"></a>00033 <span class="comment">/*</span>
56 <a name="l00034"></a>00034 <span class="comment"> * Bitmap definitions</span>
57 <a name="l00035"></a>00035 <span class="comment"> */</span>
57 <a name="l00024"></a>00024
58 <a name="l00025"></a>00025 <span class="comment">/*</span>
59 <a name="l00026"></a>00026 <span class="comment"> * Symbol transforms</span>
60 <a name="l00027"></a>00027 <span class="comment"> */</span>
61 <a name="l00028"></a>00028 <span class="preprocessor">#include &lt;hwloc/rename.h&gt;</span>
62 <a name="l00029"></a>00029
63 <a name="l00030"></a>00030 <span class="comment">/*</span>
64 <a name="l00031"></a>00031 <span class="comment"> * Bitmap definitions</span>
65 <a name="l00032"></a>00032 <span class="comment"> */</span>
66 <a name="l00033"></a>00033
67 <a name="l00034"></a>00034 <span class="preprocessor">#include &lt;hwloc/bitmap.h&gt;</span>
68 <a name="l00035"></a>00035 <span class="preprocessor">#include &lt;hwloc/cpuset.h&gt;</span>
5869 <a name="l00036"></a>00036
59 <a name="l00037"></a>00037 <span class="preprocessor">#include &lt;hwloc/bitmap.h&gt;</span>
60 <a name="l00038"></a>00038 <span class="preprocessor">#include &lt;hwloc/cpuset.h&gt;</span>
61 <a name="l00039"></a>00039
62 <a name="l00040"></a>00040
63 <a name="l00041"></a>00041 <span class="preprocessor">#ifdef __cplusplus</span>
64 <a name="l00042"></a>00042 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
65 <a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
66 <a name="l00044"></a>00044 <span class="preprocessor"></span>
67 <a name="l00045"></a>00045
68 <a name="l00051"></a><a class="code" href="a00032.html#ga8f4dfb8eef138af55dd1a0fa802e5476">00051</a> <span class="preprocessor">#define HWLOC_API_VERSION 0x00010100</span>
69 <a name="l00052"></a>00052 <span class="preprocessor"></span>
70 <a name="l00054"></a>00054 <span class="keywordtype">unsigned</span> <a class="code" href="a00032.html#ga61ef7566efe550d314b0ce4f3421ec5d" title="Indicate at runtime which hwloc API version was used at build time.">hwloc_get_api_version</a>(<span class="keywordtype">void</span>);
71 <a name="l00055"></a>00055
72 <a name="l00064"></a>00064 <span class="keyword">struct </span>hwloc_topology;
73 <a name="l00069"></a><a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">00069</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>hwloc_topology * <a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a>;
74 <a name="l00070"></a>00070
75 <a name="l00101"></a><a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">00101</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84" title="Set of bits represented as an opaque pointer to an internal bitmap.">hwloc_bitmap_t</a> <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a>;
76 <a name="l00103"></a><a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">00103</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48" title="a non-modifiable hwloc_bitmap_t">hwloc_const_bitmap_t</a> <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>;
77 <a name="l00104"></a>00104
78 <a name="l00118"></a><a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">00118</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84" title="Set of bits represented as an opaque pointer to an internal bitmap.">hwloc_bitmap_t</a> <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a>;
79 <a name="l00121"></a><a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">00121</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48" title="a non-modifiable hwloc_bitmap_t">hwloc_const_bitmap_t</a> <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>;
80 <a name="l00122"></a>00122
81 <a name="l00137"></a><a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">00137</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
82 <a name="l00138"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec">00138</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec" title="Whole system (may be a cluster of machines). The whole system that is accessible to hwloc...">HWLOC_OBJ_SYSTEM</a>,
83 <a name="l00143"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80">00143</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80" title="Machine. The typical root object type. A set of processors and memory with cache coherency.">HWLOC_OBJ_MACHINE</a>,
84 <a name="l00148"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd">00148</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>,
85 <a name="l00152"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec">00152</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec" title="Socket, physical package, or chip. In the physical meaning, i.e. that you can add or remove physicall...">HWLOC_OBJ_SOCKET</a>,
86 <a name="l00156"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc">00156</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>,
87 <a name="l00159"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f">00159</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f" title="Core. A computation unit (may be shared by several logical processors).">HWLOC_OBJ_CORE</a>,
88 <a name="l00163"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661">00163</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with some other logical ...">HWLOC_OBJ_PU</a>,
89 <a name="l00172"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56">00172</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56" title="Group objects. Objects which do not fit in the above but are detected by hwloc and are useful to take...">HWLOC_OBJ_GROUP</a>,
90 <a name="l00184"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d">00184</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d" title="Miscellaneous objects. Objects without particular meaning, that can e.g. be added by the application ...">HWLOC_OBJ_MISC</a>
91 <a name="l00188"></a>00188 } <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a>;
92 <a name="l00189"></a>00189
93 <a name="l00207"></a>00207 <span class="keywordtype">int</span> <a class="code" href="a00035.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types</a> (<a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2) ;
94 <a name="l00208"></a>00208
95 <a name="l00209"></a><a class="code" href="a00035.html#ga46323568968005137c32f6a1cd405b74">00209</a> <span class="keyword">enum</span> <a class="code" href="a00035.html#ga46323568968005137c32f6a1cd405b74">hwloc_compare_types_e</a> {
96 <a name="l00210"></a><a class="code" href="a00035.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb">00210</a> <a class="code" href="a00035.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb" title="Value returned by hwloc_compare_types when types can not be compared.">HWLOC_TYPE_UNORDERED</a> = INT_MAX
97 <a name="l00211"></a>00211 };
98 <a name="l00212"></a>00212
99 <a name="l00221"></a>00221 <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a>;
100 <a name="l00222"></a>00222
101 <a name="l00224"></a><a class="code" href="a00016.html">00224</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Object memory.">hwloc_obj_memory_s</a> {
102 <a name="l00225"></a><a class="code" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3">00225</a> uint64_t <a class="code" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3" title="Total memory (in bytes) in this object and its children.">total_memory</a>;
103 <a name="l00226"></a><a class="code" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e">00226</a> uint64_t <a class="code" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e" title="Local memory (in bytes)">local_memory</a>;
104 <a name="l00228"></a><a class="code" href="a00016.html#a208c27f4491077d7fb9ba5db8b29cb57">00228</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00016.html#a208c27f4491077d7fb9ba5db8b29cb57" title="Size of array page_types.">page_types_len</a>;
105 <a name="l00234"></a><a class="code" href="a00015.html">00234</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Array of local memory page types, NULL if no local memory and page_types is 0.">hwloc_obj_memory_page_type_s</a> {
106 <a name="l00235"></a><a class="code" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b">00235</a> uint64_t <a class="code" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b" title="Size of pages.">size</a>;
107 <a name="l00236"></a><a class="code" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3">00236</a> uint64_t <a class="code" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3" title="Number of pages of this size.">count</a>;
108 <a name="l00237"></a>00237 } * <a class="code" href="a00016.html#a865eba7b12b986d72dbe7a2cfd97c50d">page_types</a>;
109 <a name="l00238"></a>00238 };
110 <a name="l00239"></a>00239
111 <a name="l00244"></a><a class="code" href="a00012.html">00244</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> {
112 <a name="l00245"></a>00245 <span class="comment">/* physical information */</span>
113 <a name="l00246"></a><a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de">00246</a> <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>;
114 <a name="l00247"></a><a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9">00247</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>;
115 <a name="l00248"></a><a class="code" href="a00012.html#abb709ec38f2970677e4e57d1d30be96d">00248</a> <span class="keywordtype">char</span> *<a class="code" href="a00012.html#abb709ec38f2970677e4e57d1d30be96d" title="Object description if any.">name</a>;
116 <a name="l00250"></a><a class="code" href="a00012.html#a1dc830816716213b5f797e4052487864">00250</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Object memory.">hwloc_obj_memory_s</a> <a class="code" href="a00012.html#a1dc830816716213b5f797e4052487864" title="Memory attributes.">memory</a>;
117 <a name="l00252"></a><a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8">00252</a> <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> *<a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes, may be NULL if no attribute value was found.">attr</a>;
118 <a name="l00255"></a>00255 <span class="comment">/* global position */</span>
119 <a name="l00256"></a><a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5">00256</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>;
120 <a name="l00257"></a><a class="code" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9">00257</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9" title="Horizontal index in the whole list of similar objects, could be a &amp;quot;cousin_rank&amp;quot; since it&amp;#3...">logical_index</a>;
121 <a name="l00259"></a><a class="code" href="a00012.html#a68766f0b1c4d61b5bad87e3b81dacfde">00259</a> <span class="keywordtype">signed</span> <a class="code" href="a00012.html#a68766f0b1c4d61b5bad87e3b81dacfde" title="OS-provided physical level, -1 if unknown or meaningless.">os_level</a>;
122 <a name="l00261"></a><a class="code" href="a00012.html#a85a788017457129589318b6c39451acf">00261</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
123 <a name="l00262"></a><a class="code" href="a00012.html#ac715989f55ff5a0eb6be2969ee477ec0">00262</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#ac715989f55ff5a0eb6be2969ee477ec0" title="Previous object of same type.">prev_cousin</a>;
124 <a name="l00264"></a>00264 <span class="comment">/* parent */</span>
125 <a name="l00265"></a><a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900">00265</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
126 <a name="l00266"></a><a class="code" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd">00266</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd" title="Index in parent&amp;#39;s children[] array.">sibling_rank</a>;
127 <a name="l00267"></a><a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40">00267</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
128 <a name="l00268"></a><a class="code" href="a00012.html#a7b89e8c189876c0158a9282aaaf17f50">00268</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a7b89e8c189876c0158a9282aaaf17f50" title="Previous object below the same parent.">prev_sibling</a>;
129 <a name="l00270"></a>00270 <span class="comment">/* children */</span>
130 <a name="l00271"></a><a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1">00271</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
131 <a name="l00272"></a><a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f">00272</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> **<a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>;
132 <a name="l00273"></a><a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc">00273</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
133 <a name="l00274"></a><a class="code" href="a00012.html#a84bd65634dbc55f4158b74443a9bd04f">00274</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a84bd65634dbc55f4158b74443a9bd04f" title="Last child.">last_child</a>;
134 <a name="l00276"></a>00276 <span class="comment">/* misc */</span>
135 <a name="l00277"></a><a class="code" href="a00012.html#a76fd3ac94401cf32dfccc3a3a8de68a5">00277</a> <span class="keywordtype">void</span> *<a class="code" href="a00012.html#a76fd3ac94401cf32dfccc3a3a8de68a5" title="Application-given private data pointer, initialized to NULL, use it as you wish.">userdata</a>;
136 <a name="l00279"></a>00279 <span class="comment">/* cpusets and nodesets */</span>
137 <a name="l00280"></a><a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f">00280</a> hwloc_cpuset_t <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
138 <a name="l00293"></a><a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c">00293</a> hwloc_cpuset_t <a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
139 <a name="l00304"></a><a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564">00304</a> hwloc_cpuset_t <a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
140 <a name="l00312"></a><a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34">00312</a> hwloc_cpuset_t <a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
141 <a name="l00323"></a><a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3">00323</a> hwloc_nodeset_t <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>;
142 <a name="l00340"></a><a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e">00340</a> hwloc_nodeset_t <a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e" title="The complete NUMA node set of this object,.">complete_nodeset</a>;
143 <a name="l00354"></a><a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531">00354</a> hwloc_nodeset_t <a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531" title="The set of allowed NUMA memory nodes.">allowed_nodeset</a>;
144 <a name="l00367"></a><a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb">00367</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Object info.">hwloc_obj_info_s</a> *<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>;
145 <a name="l00368"></a><a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70">00368</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70" title="Size of infos array.">infos_count</a>;
146 <a name="l00369"></a>00369 };
147 <a name="l00373"></a><a class="code" href="a00036.html#ga79b8ab56877ef99ac59b833203391c7d">00373</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> * <a class="code" href="a00036.html#ga79b8ab56877ef99ac59b833203391c7d" title="Convenience typedef; a pointer to a struct hwloc_obj.">hwloc_obj_t</a>;
148 <a name="l00374"></a>00374
149 <a name="l00376"></a><a class="code" href="a00013.html">00376</a> <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> {
150 <a name="l00378"></a><a class="code" href="a00010.html">00378</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Cache-specific Object Attributes.">hwloc_cache_attr_s</a> {
151 <a name="l00379"></a><a class="code" href="a00010.html#a3c68235220554308f89768f281ad1e62">00379</a> uint64_t <a class="code" href="a00010.html#a3c68235220554308f89768f281ad1e62" title="Size of cache in bytes.">size</a>;
152 <a name="l00380"></a><a class="code" href="a00010.html#a5c8f7f39193736c2187ed626940835d5">00380</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a5c8f7f39193736c2187ed626940835d5" title="Depth of cache.">depth</a>;
153 <a name="l00381"></a><a class="code" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db">00381</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db" title="Cache-line size in bytes.">linesize</a>;
154 <a name="l00382"></a>00382 } <a class="code" href="a00013.html#ab5a8ae3bf490e6b1071fea53f7382836">cache</a>;
155 <a name="l00384"></a><a class="code" href="a00011.html">00384</a> <span class="keyword">struct </span><a class="code" href="a00011.html" title="Group-specific Object Attributes.">hwloc_group_attr_s</a> {
156 <a name="l00385"></a><a class="code" href="a00011.html#ad914eac61c77481e1b7037877bcc5579">00385</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00011.html#ad914eac61c77481e1b7037877bcc5579" title="Depth of group object.">depth</a>;
157 <a name="l00386"></a>00386 } <a class="code" href="a00013.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">group</a>;
158 <a name="l00387"></a>00387 };
159 <a name="l00388"></a>00388
160 <a name="l00390"></a><a class="code" href="a00014.html">00390</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Object info.">hwloc_obj_info_s</a> {
161 <a name="l00391"></a><a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d">00391</a> <span class="keywordtype">char</span> *<a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d" title="Info name.">name</a>;
162 <a name="l00392"></a><a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce">00392</a> <span class="keywordtype">char</span> *<a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce" title="Info value.">value</a>;
163 <a name="l00393"></a>00393 };
164 <a name="l00394"></a>00394
165 <a name="l00409"></a>00409 <span class="keywordtype">int</span> <a class="code" href="a00037.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init</a> (hwloc_topology_t *topologyp);
166 <a name="l00410"></a>00410
167 <a name="l00423"></a>00423 <span class="keywordtype">int</span> <a class="code" href="a00037.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load</a>(hwloc_topology_t topology);
168 <a name="l00424"></a>00424
169 <a name="l00429"></a>00429 <span class="keywordtype">void</span> <a class="code" href="a00037.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy</a> (hwloc_topology_t topology);
170 <a name="l00430"></a>00430
171 <a name="l00435"></a>00435 <span class="keywordtype">void</span> <a class="code" href="a00037.html#gab3628b2a540a5a08e8cf724ef829e70a" title="Run internal checks on a topology structure.">hwloc_topology_check</a>(hwloc_topology_t topology);
172 <a name="l00436"></a>00436
173 <a name="l00469"></a>00469 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gaf2071c8621fddc53649c245d87835b47" title="Ignore an object type.">hwloc_topology_ignore_type</a>(hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
174 <a name="l00470"></a>00470
175 <a name="l00477"></a>00477 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga6ddd4213d95bd1c30555b294a60efa6b" title="Ignore an object type if it does not bring any structure.">hwloc_topology_ignore_type_keep_structure</a>(hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
176 <a name="l00478"></a>00478
177 <a name="l00484"></a>00484 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gaec6fb00050f50cd41007f1ae580d2106" title="Ignore all objects that do not bring any structure.">hwloc_topology_ignore_all_keep_structure</a>(hwloc_topology_t topology);
178 <a name="l00485"></a>00485
179 <a name="l00490"></a><a class="code" href="a00038.html#gada025d3ec20b4b420f8038d23d6e7bde">00490</a> <span class="keyword">enum</span> <a class="code" href="a00038.html#gada025d3ec20b4b420f8038d23d6e7bde" title="Flags to be set onto a topology context before load.">hwloc_topology_flags_e</a> {
180 <a name="l00491"></a><a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8">00491</a> <a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8" title="Detect the whole system, ignore reservations and offline settings.">HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM</a> = (1&lt;&lt;0),
181 <a name="l00500"></a><a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b">00500</a> <a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b" title="Assume that the selected backend provides the topology for the system on which we are running...">HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM</a> = (1&lt;&lt;1)
182 <a name="l00519"></a>00519 };
183 <a name="l00520"></a>00520
184 <a name="l00525"></a>00525 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga6d11e53db143ac39c32cdb3912b71f99" title="Set OR&amp;#39;ed flags to non-yet-loaded topology.">hwloc_topology_set_flags</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
185 <a name="l00526"></a>00526
186 <a name="l00540"></a>00540 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga2f6bfb6958d8b508ea1d7d5bb266432c" title="Change the file-system root path when building the topology from sysfs/procfs.">hwloc_topology_set_fsroot</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict fsroot_path);
187 <a name="l00541"></a>00541
188 <a name="l00555"></a>00555 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gae1100de0162b3c6a9db750ac14629c05" title="Change which pid the topology is viewed from.">hwloc_topology_set_pid</a>(hwloc_topology_t restrict topology, hwloc_pid_t pid);
189 <a name="l00556"></a>00556
190 <a name="l00570"></a>00570 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga2fcb52181b586c20f001b7a999550324" title="Enable synthetic topology.">hwloc_topology_set_synthetic</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict description);
191 <a name="l00571"></a>00571
192 <a name="l00583"></a>00583 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict xmlpath);
193 <a name="l00584"></a>00584
194 <a name="l00590"></a>00590 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gae7e4bade144652a2b48f5eaf0309b4ec" title="Enable XML based topology using a memory buffer instead of a file.">hwloc_topology_set_xmlbuffer</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict buffer, <span class="keywordtype">int</span> size);
195 <a name="l00591"></a>00591
196 <a name="l00593"></a><a class="code" href="a00018.html">00593</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> {
197 <a name="l00595"></a><a class="code" href="a00018.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">00595</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00018.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab" title="Detecting the number of PU objects is supported.">pu</a>;
198 <a name="l00596"></a>00596 };
199 <a name="l00597"></a>00597
200 <a name="l00599"></a><a class="code" href="a00017.html">00599</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Flags describing actual PU binding support for this topology.">hwloc_topology_cpubind_support</a> {
201 <a name="l00601"></a><a class="code" href="a00017.html#a9403d51657a4d546b3ea9553a2973a27">00601</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a9403d51657a4d546b3ea9553a2973a27">set_thisproc_cpubind</a>;
202 <a name="l00603"></a><a class="code" href="a00017.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">00603</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">get_thisproc_cpubind</a>;
203 <a name="l00605"></a><a class="code" href="a00017.html#aa166223d1c2a6de7256ab2d8b675a87e">00605</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#aa166223d1c2a6de7256ab2d8b675a87e">set_proc_cpubind</a>;
204 <a name="l00607"></a><a class="code" href="a00017.html#aae705bc447adc163ead377362c4dfe9f">00607</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#aae705bc447adc163ead377362c4dfe9f">get_proc_cpubind</a>;
205 <a name="l00609"></a><a class="code" href="a00017.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">00609</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">set_thisthread_cpubind</a>;
206 <a name="l00611"></a><a class="code" href="a00017.html#a80d762e532d677dff262d83cc7bb1c60">00611</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a80d762e532d677dff262d83cc7bb1c60">get_thisthread_cpubind</a>;
207 <a name="l00613"></a><a class="code" href="a00017.html#a46fba33e307909ce256624687799dd6d">00613</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a46fba33e307909ce256624687799dd6d">set_thread_cpubind</a>;
208 <a name="l00615"></a><a class="code" href="a00017.html#a8dd4d8531ed2eebdce1507e7d104154e">00615</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a8dd4d8531ed2eebdce1507e7d104154e">get_thread_cpubind</a>;
209 <a name="l00616"></a>00616 };
210 <a name="l00617"></a>00617
211 <a name="l00619"></a><a class="code" href="a00019.html">00619</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Flags describing actual memory binding support for this topology.">hwloc_topology_membind_support</a> {
212 <a name="l00621"></a><a class="code" href="a00019.html#a36b3e388df9c6a249427cab7e3724749">00621</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a36b3e388df9c6a249427cab7e3724749">set_thisproc_membind</a>;
213 <a name="l00623"></a><a class="code" href="a00019.html#a3fd51e6fa5f0dd800322301b46b08559">00623</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a3fd51e6fa5f0dd800322301b46b08559">get_thisproc_membind</a>;
214 <a name="l00625"></a><a class="code" href="a00019.html#a756f44912894b176bf979a1b65f12aac">00625</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a756f44912894b176bf979a1b65f12aac">set_proc_membind</a>;
215 <a name="l00627"></a><a class="code" href="a00019.html#a9880cd2d605e316fc020167c49ca69ad">00627</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a9880cd2d605e316fc020167c49ca69ad">get_proc_membind</a>;
216 <a name="l00629"></a><a class="code" href="a00019.html#a0697af2e41f2e82b8ce71e3cc13f7eac">00629</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a0697af2e41f2e82b8ce71e3cc13f7eac">set_thisthread_membind</a>;
217 <a name="l00631"></a><a class="code" href="a00019.html#a63b0b2e26157b472f5717ee93cc7c535">00631</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a63b0b2e26157b472f5717ee93cc7c535">get_thisthread_membind</a>;
218 <a name="l00633"></a><a class="code" href="a00019.html#a476c06f96b65c08b287cf2369966123b">00633</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a476c06f96b65c08b287cf2369966123b">set_area_membind</a>;
219 <a name="l00635"></a><a class="code" href="a00019.html#a0a84e24a06f2fa487fe8c9605c6f68b3">00635</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a0a84e24a06f2fa487fe8c9605c6f68b3">get_area_membind</a>;
220 <a name="l00637"></a><a class="code" href="a00019.html#ae551abb27d2aa9ce008583488b845b98">00637</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ae551abb27d2aa9ce008583488b845b98">alloc_membind</a>;
221 <a name="l00639"></a><a class="code" href="a00019.html#a221098c339dbfab27bd2c9f5d32f123b">00639</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a221098c339dbfab27bd2c9f5d32f123b">firsttouch_membind</a>;
222 <a name="l00641"></a><a class="code" href="a00019.html#ae7cdb1f1b5f0242a69f85b5a5538c764">00641</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ae7cdb1f1b5f0242a69f85b5a5538c764">bind_membind</a>;
223 <a name="l00643"></a><a class="code" href="a00019.html#a3c44c6012860bbeba8a0f4c19710858d">00643</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a3c44c6012860bbeba8a0f4c19710858d">interleave_membind</a>;
224 <a name="l00645"></a><a class="code" href="a00019.html#afe608fb85eb2aa9706221ccb5fc4d415">00645</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#afe608fb85eb2aa9706221ccb5fc4d415">replicate_membind</a>;
225 <a name="l00647"></a><a class="code" href="a00019.html#ab0921af6e0cd6975812a80b8e5c7435c">00647</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ab0921af6e0cd6975812a80b8e5c7435c">nexttouch_membind</a>;
226 <a name="l00648"></a>00648
227 <a name="l00650"></a><a class="code" href="a00019.html#aafa7683871a6a760246f9b35209caec5">00650</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#aafa7683871a6a760246f9b35209caec5">migrate_membind</a>;
228 <a name="l00651"></a>00651 };
229 <a name="l00652"></a>00652
230 <a name="l00659"></a><a class="code" href="a00020.html">00659</a> <span class="keyword">struct </span><a class="code" href="a00020.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> {
231 <a name="l00660"></a><a class="code" href="a00020.html#aea3fbd7653d987d81f848636c420504d">00660</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> *<a class="code" href="a00020.html#aea3fbd7653d987d81f848636c420504d">discovery</a>;
232 <a name="l00661"></a><a class="code" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">00661</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Flags describing actual PU binding support for this topology.">hwloc_topology_cpubind_support</a> *<a class="code" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">cpubind</a>;
233 <a name="l00662"></a><a class="code" href="a00020.html#ac6eb62ae8bc0a68dce679a7107a36194">00662</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Flags describing actual memory binding support for this topology.">hwloc_topology_membind_support</a> *<a class="code" href="a00020.html#ac6eb62ae8bc0a68dce679a7107a36194">membind</a>;
234 <a name="l00663"></a>00663 };
235 <a name="l00664"></a>00664
236 <a name="l00666"></a>00666 <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="a00020.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> *<a class="code" href="a00038.html#gac2126e105f3ae708efca2e90d612625a" title="Retrieve the topology support.">hwloc_topology_get_support</a>(hwloc_topology_t restrict topology);
237 <a name="l00667"></a>00667
238 <a name="l00680"></a>00680 <span class="keywordtype">void</span> <a class="code" href="a00039.html#ga1c9d8e608232206ce2142fe806a6835b" title="Export the topology into an XML file.">hwloc_topology_export_xml</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">char</span> *xmlpath);
239 <a name="l00681"></a>00681
240 <a name="l00688"></a>00688 <span class="keywordtype">void</span> <a class="code" href="a00039.html#gad77e72a2ccf32825511818988a09e5c1" title="Export the topology into a newly-allocated XML memory buffer.">hwloc_topology_export_xmlbuffer</a>(hwloc_topology_t topology, <span class="keywordtype">char</span> **xmlbuffer, <span class="keywordtype">int</span> *buflen);
241 <a name="l00689"></a>00689
242 <a name="l00699"></a>00699 hwloc_obj_t <a class="code" href="a00039.html#ga017a9ba16d554326c6e3812d545d7230" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_cpuset</a>(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
243 <a name="l00700"></a>00700
244 <a name="l00710"></a>00710 hwloc_obj_t <a class="code" href="a00039.html#gadacd7a3d21220fbb30c3256d8b22a294" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_parent</a>(hwloc_topology_t topology, hwloc_obj_t parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
245 <a name="l00711"></a>00711
246 <a name="l00724"></a>00724 <span class="keywordtype">unsigned</span> <a class="code" href="a00040.html#ga8c30b0cec55074eb3ed34e4f2a1a9937" title="Get the depth of the hierachical tree of objects.">hwloc_topology_get_depth</a>(hwloc_topology_t restrict topology) ;
247 <a name="l00725"></a>00725
248 <a name="l00735"></a>00735 <span class="keywordtype">int</span> <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
249 <a name="l00736"></a>00736
250 <a name="l00737"></a><a class="code" href="a00040.html#gaf4e663cf42bbe20756b849c6293ef575">00737</a> <span class="keyword">enum</span> <a class="code" href="a00040.html#gaf4e663cf42bbe20756b849c6293ef575">hwloc_get_type_depth_e</a> {
251 <a name="l00738"></a><a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad">00738</a> <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> = -1,
252 <a name="l00739"></a><a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c">00739</a> <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a> = -2
253 <a name="l00740"></a>00740 };
254 <a name="l00741"></a>00741
255 <a name="l00746"></a>00746 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00040.html#gadd4964764ae7e49231065d58a553fd31" title="Returns the type of objects at depth depth.">hwloc_get_depth_type</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth) ;
256 <a name="l00747"></a>00747
257 <a name="l00749"></a>00749 <span class="keywordtype">unsigned</span> <a class="code" href="a00040.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth) ;
258 <a name="l00750"></a>00750
259 <a name="l00756"></a>00756 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
260 <a name="l00757"></a><a class="code" href="a00040.html#ga0131ab1051011fabfa69d7c1853e716c">00757</a> <a class="code" href="a00040.html#ga0131ab1051011fabfa69d7c1853e716c" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
261 <a name="l00758"></a>00758 {
262 <a name="l00759"></a>00759 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
263 <a name="l00760"></a>00760 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
264 <a name="l00761"></a>00761 <span class="keywordflow">return</span> 0;
265 <a name="l00762"></a>00762 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
266 <a name="l00763"></a>00763 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
267 <a name="l00764"></a>00764 <span class="keywordflow">return</span> <a class="code" href="a00040.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth);
268 <a name="l00765"></a>00765 }
269 <a name="l00766"></a>00766
270 <a name="l00774"></a>00774 <span class="keywordtype">int</span> <a class="code" href="a00040.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem</a>(hwloc_topology_t restrict topology) ;
271 <a name="l00775"></a>00775
272 <a name="l00785"></a>00785 hwloc_obj_t <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx) ;
273 <a name="l00786"></a>00786
274 <a name="l00793"></a>00793 <span class="keyword">static</span> inline hwloc_obj_t
275 <a name="l00794"></a><a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2">00794</a> <a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
276 <a name="l00795"></a>00795 {
277 <a name="l00796"></a>00796 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
278 <a name="l00797"></a>00797 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
279 <a name="l00798"></a>00798 <span class="keywordflow">return</span> NULL;
280 <a name="l00799"></a>00799 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
281 <a name="l00800"></a>00800 <span class="keywordflow">return</span> NULL;
282 <a name="l00801"></a>00801 <span class="keywordflow">return</span> <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, idx);
283 <a name="l00802"></a>00802 }
284 <a name="l00803"></a>00803
285 <a name="l00813"></a>00813 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="a00042.html#ga7c61920feca6fd9006d930dabfc09058" title="Return a stringified topology object type.">hwloc_obj_type_string</a> (<a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type) ;
286 <a name="l00814"></a>00814
287 <a name="l00819"></a>00819 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00042.html#gade722091ae392fdc79557e797a16c370" title="Return an object type from the string.">hwloc_obj_type_of_string</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keywordtype">string</span>) ;
288 <a name="l00820"></a>00820
289 <a name="l00831"></a>00831 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga3ad856e8f3487d340c82a23b8a2a0351" title="Stringify the type of a given topology object into a human-readable form.">hwloc_obj_type_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size, hwloc_obj_t obj,
290 <a name="l00832"></a>00832 <span class="keywordtype">int</span> verbose);
291 <a name="l00833"></a>00833
292 <a name="l00845"></a>00845 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga0db8286d7f3ceda8defd76e3e1e2b284" title="Stringify the attributes of a given topology object into a human-readable form.">hwloc_obj_attr_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size, hwloc_obj_t obj, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict separator,
293 <a name="l00846"></a>00846 <span class="keywordtype">int</span> verbose);
294 <a name="l00847"></a>00847
295 <a name="l00868"></a>00868 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga5c6a61a83f4790b421e2f62e9088446f" title="Stringify a given topology object into a human-readable form.">hwloc_obj_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size,
296 <a name="l00869"></a>00869 hwloc_topology_t topology, hwloc_obj_t obj,
297 <a name="l00870"></a>00870 <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict indexprefix, <span class="keywordtype">int</span> verbose);
298 <a name="l00871"></a>00871
299 <a name="l00879"></a>00879 <span class="keywordtype">int</span> <a class="code" href="a00042.html#gabbfb92224c992c0e2ecef6b6e45260f2" title="Stringify the cpuset containing a set of objects.">hwloc_obj_cpuset_snprintf</a>(<span class="keywordtype">char</span> * restrict str, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> nobj, <span class="keyword">const</span> hwloc_obj_t * restrict objs);
300 <a name="l00880"></a>00880
301 <a name="l00885"></a>00885 <span class="keyword">static</span> inline <span class="keywordtype">char</span> *
302 <a name="l00886"></a><a class="code" href="a00042.html#ga1f41387433f4c9e9c14b9f2e522919e4">00886</a> <a class="code" href="a00042.html#ga1f41387433f4c9e9c14b9f2e522919e4" title="Search the given key name in object infos and return the corresponding value.">hwloc_obj_get_info_by_name</a>(hwloc_obj_t obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
303 <a name="l00887"></a>00887 {
304 <a name="l00888"></a>00888 <span class="keywordtype">unsigned</span> i;
305 <a name="l00889"></a>00889 <span class="keywordflow">for</span>(i=0; i&lt;obj-&gt;<a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70" title="Size of infos array.">infos_count</a>; i++)
306 <a name="l00890"></a>00890 <span class="keywordflow">if</span> (!strcmp(obj-&gt;<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>[i].<a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d" title="Info name.">name</a>, name))
307 <a name="l00891"></a>00891 <span class="keywordflow">return</span> obj-&gt;<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>[i].<a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce" title="Info value.">value</a>;
308 <a name="l00892"></a>00892 <span class="keywordflow">return</span> NULL;
309 <a name="l00893"></a>00893 }
310 <a name="l00894"></a>00894
311 <a name="l00949"></a><a class="code" href="a00043.html#ga217dc8d373f8958cc93c154ebce1c71c">00949</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
312 <a name="l00950"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca2e0dd0128dac6b03408c7dd170477fdc">00950</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca2e0dd0128dac6b03408c7dd170477fdc" title="Bind all threads of the current (possibly) multithreaded process.">HWLOC_CPUBIND_PROCESS</a> = (1&lt;&lt;0),
313 <a name="l00953"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71caf1b6bbad00d7b1017b918e3719f4d421">00953</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71caf1b6bbad00d7b1017b918e3719f4d421" title="Bind current thread of current process.">HWLOC_CPUBIND_THREAD</a> = (1&lt;&lt;1),
314 <a name="l00955"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca679a7e0f0c7ee06b123565f90d98e7fa">00955</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca679a7e0f0c7ee06b123565f90d98e7fa" title="Request for strict binding from the OS.">HWLOC_CPUBIND_STRICT</a> = (1&lt;&lt;2),
315 <a name="l00983"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca41ce440443cc3087caed95ab60edcad6">00983</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca41ce440443cc3087caed95ab60edcad6" title="Avoid any effect on memory binding.">HWLOC_CPUBIND_NOMEMBIND</a> = (1&lt;&lt;3)
316 <a name="l00997"></a>00997 } <a class="code" href="a00043.html#ga217dc8d373f8958cc93c154ebce1c71c" title="Process/Thread binding flags.">hwloc_cpubind_flags_t</a>;
317 <a name="l00998"></a>00998
318 <a name="l01004"></a>01004 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gaf4cc194d5c0d38004a21b9f03522a7e3" title="Bind current process or thread on cpus given in bitmap set.">hwloc_set_cpubind</a>(hwloc_topology_t topology, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
319 <a name="l01005"></a>01005
320 <a name="l01008"></a>01008 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gab52f83ab16eac465da55e16bdd30df77" title="Get current process or thread binding.">hwloc_get_cpubind</a>(hwloc_topology_t topology, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
70 <a name="l00037"></a>00037
71 <a name="l00038"></a>00038 <span class="preprocessor">#ifdef __cplusplus</span>
72 <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
73 <a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
74 <a name="l00041"></a>00041 <span class="preprocessor"></span>
75 <a name="l00042"></a>00042
76 <a name="l00048"></a><a class="code" href="a00032.html#ga8f4dfb8eef138af55dd1a0fa802e5476">00048</a> <span class="preprocessor">#define HWLOC_API_VERSION 0x00010100</span>
77 <a name="l00049"></a>00049 <span class="preprocessor"></span>
78 <a name="l00051"></a>00051 <span class="keywordtype">unsigned</span> <a class="code" href="a00032.html#ga61ef7566efe550d314b0ce4f3421ec5d" title="Indicate at runtime which hwloc API version was used at build time.">hwloc_get_api_version</a>(<span class="keywordtype">void</span>);
79 <a name="l00052"></a>00052
80 <a name="l00061"></a>00061 <span class="keyword">struct </span>hwloc_topology;
81 <a name="l00066"></a><a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">00066</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>hwloc_topology * <a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a>;
82 <a name="l00067"></a>00067
83 <a name="l00098"></a><a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">00098</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84" title="Set of bits represented as an opaque pointer to an internal bitmap.">hwloc_bitmap_t</a> <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a>;
84 <a name="l00100"></a><a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">00100</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48" title="a non-modifiable hwloc_bitmap_t">hwloc_const_bitmap_t</a> <a class="code" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25" title="A non-modifiable hwloc_cpuset_t.">hwloc_const_cpuset_t</a>;
85 <a name="l00101"></a>00101
86 <a name="l00115"></a><a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">00115</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84" title="Set of bits represented as an opaque pointer to an internal bitmap.">hwloc_bitmap_t</a> <a class="code" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508" title="A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes...">hwloc_nodeset_t</a>;
87 <a name="l00118"></a><a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">00118</a> <span class="keyword">typedef</span> <a class="code" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48" title="a non-modifiable hwloc_bitmap_t">hwloc_const_bitmap_t</a> <a class="code" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c" title="A non-modifiable hwloc_nodeset_t.">hwloc_const_nodeset_t</a>;
88 <a name="l00119"></a>00119
89 <a name="l00134"></a><a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">00134</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
90 <a name="l00135"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec">00135</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec" title="Whole system (may be a cluster of machines). The whole system that is accessible to hwloc...">HWLOC_OBJ_SYSTEM</a>,
91 <a name="l00140"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80">00140</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80" title="Machine. The typical root object type. A set of processors and memory with cache coherency.">HWLOC_OBJ_MACHINE</a>,
92 <a name="l00145"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd">00145</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>,
93 <a name="l00149"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec">00149</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec" title="Socket, physical package, or chip. In the physical meaning, i.e. that you can add or remove physicall...">HWLOC_OBJ_SOCKET</a>,
94 <a name="l00153"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc">00153</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>,
95 <a name="l00156"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f">00156</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f" title="Core. A computation unit (may be shared by several logical processors).">HWLOC_OBJ_CORE</a>,
96 <a name="l00160"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661">00160</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with some other logical ...">HWLOC_OBJ_PU</a>,
97 <a name="l00169"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56">00169</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56" title="Group objects. Objects which do not fit in the above but are detected by hwloc and are useful to take...">HWLOC_OBJ_GROUP</a>,
98 <a name="l00181"></a><a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d">00181</a> <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d" title="Miscellaneous objects. Objects without particular meaning, that can e.g. be added by the application ...">HWLOC_OBJ_MISC</a>
99 <a name="l00185"></a>00185 } <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a>;
100 <a name="l00186"></a>00186
101 <a name="l00204"></a>00204 <span class="keywordtype">int</span> <a class="code" href="a00035.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types</a> (<a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2) ;
102 <a name="l00205"></a>00205
103 <a name="l00206"></a><a class="code" href="a00035.html#ga46323568968005137c32f6a1cd405b74">00206</a> <span class="keyword">enum</span> <a class="code" href="a00035.html#ga46323568968005137c32f6a1cd405b74">hwloc_compare_types_e</a> {
104 <a name="l00207"></a><a class="code" href="a00035.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb">00207</a> <a class="code" href="a00035.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb" title="Value returned by hwloc_compare_types when types can not be compared.">HWLOC_TYPE_UNORDERED</a> = INT_MAX
105 <a name="l00208"></a>00208 };
106 <a name="l00209"></a>00209
107 <a name="l00218"></a>00218 <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a>;
108 <a name="l00219"></a>00219
109 <a name="l00221"></a><a class="code" href="a00016.html">00221</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Object memory.">hwloc_obj_memory_s</a> {
110 <a name="l00222"></a><a class="code" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44">00222</a> hwloc_uint64_t <a class="code" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44" title="Total memory (in bytes) in this object and its children.">total_memory</a>;
111 <a name="l00223"></a><a class="code" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a">00223</a> hwloc_uint64_t <a class="code" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a" title="Local memory (in bytes)">local_memory</a>;
112 <a name="l00225"></a><a class="code" href="a00016.html#a208c27f4491077d7fb9ba5db8b29cb57">00225</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00016.html#a208c27f4491077d7fb9ba5db8b29cb57" title="Size of array page_types.">page_types_len</a>;
113 <a name="l00231"></a><a class="code" href="a00015.html">00231</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Array of local memory page types, NULL if no local memory and page_types is 0.">hwloc_obj_memory_page_type_s</a> {
114 <a name="l00232"></a><a class="code" href="a00015.html#a3f1d261766352288791512974665ce01">00232</a> hwloc_uint64_t <a class="code" href="a00015.html#a3f1d261766352288791512974665ce01" title="Size of pages.">size</a>;
115 <a name="l00233"></a><a class="code" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260">00233</a> hwloc_uint64_t <a class="code" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260" title="Number of pages of this size.">count</a>;
116 <a name="l00234"></a>00234 } * <a class="code" href="a00016.html#a865eba7b12b986d72dbe7a2cfd97c50d">page_types</a>;
117 <a name="l00235"></a>00235 };
118 <a name="l00236"></a>00236
119 <a name="l00241"></a><a class="code" href="a00012.html">00241</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> {
120 <a name="l00242"></a>00242 <span class="comment">/* physical information */</span>
121 <a name="l00243"></a><a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de">00243</a> <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>;
122 <a name="l00244"></a><a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9">00244</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>;
123 <a name="l00245"></a><a class="code" href="a00012.html#abb709ec38f2970677e4e57d1d30be96d">00245</a> <span class="keywordtype">char</span> *<a class="code" href="a00012.html#abb709ec38f2970677e4e57d1d30be96d" title="Object description if any.">name</a>;
124 <a name="l00247"></a><a class="code" href="a00012.html#a1dc830816716213b5f797e4052487864">00247</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Object memory.">hwloc_obj_memory_s</a> <a class="code" href="a00012.html#a1dc830816716213b5f797e4052487864" title="Memory attributes.">memory</a>;
125 <a name="l00249"></a><a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8">00249</a> <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> *<a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes, may be NULL if no attribute value was found.">attr</a>;
126 <a name="l00252"></a>00252 <span class="comment">/* global position */</span>
127 <a name="l00253"></a><a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5">00253</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>;
128 <a name="l00254"></a><a class="code" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9">00254</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9" title="Horizontal index in the whole list of similar objects, could be a &amp;quot;cousin_rank&amp;quot; since it&amp;#3...">logical_index</a>;
129 <a name="l00256"></a><a class="code" href="a00012.html#a68766f0b1c4d61b5bad87e3b81dacfde">00256</a> <span class="keywordtype">signed</span> <a class="code" href="a00012.html#a68766f0b1c4d61b5bad87e3b81dacfde" title="OS-provided physical level, -1 if unknown or meaningless.">os_level</a>;
130 <a name="l00258"></a><a class="code" href="a00012.html#a85a788017457129589318b6c39451acf">00258</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
131 <a name="l00259"></a><a class="code" href="a00012.html#ac715989f55ff5a0eb6be2969ee477ec0">00259</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#ac715989f55ff5a0eb6be2969ee477ec0" title="Previous object of same type.">prev_cousin</a>;
132 <a name="l00261"></a>00261 <span class="comment">/* parent */</span>
133 <a name="l00262"></a><a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900">00262</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>;
134 <a name="l00263"></a><a class="code" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd">00263</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd" title="Index in parent&amp;#39;s children[] array.">sibling_rank</a>;
135 <a name="l00264"></a><a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40">00264</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
136 <a name="l00265"></a><a class="code" href="a00012.html#a7b89e8c189876c0158a9282aaaf17f50">00265</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a7b89e8c189876c0158a9282aaaf17f50" title="Previous object below the same parent.">prev_sibling</a>;
137 <a name="l00267"></a>00267 <span class="comment">/* children */</span>
138 <a name="l00268"></a><a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1">00268</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
139 <a name="l00269"></a><a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f">00269</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> **<a class="code" href="a00012.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>;
140 <a name="l00270"></a><a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc">00270</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
141 <a name="l00271"></a><a class="code" href="a00012.html#a84bd65634dbc55f4158b74443a9bd04f">00271</a> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00012.html#a84bd65634dbc55f4158b74443a9bd04f" title="Last child.">last_child</a>;
142 <a name="l00273"></a>00273 <span class="comment">/* misc */</span>
143 <a name="l00274"></a><a class="code" href="a00012.html#a76fd3ac94401cf32dfccc3a3a8de68a5">00274</a> <span class="keywordtype">void</span> *<a class="code" href="a00012.html#a76fd3ac94401cf32dfccc3a3a8de68a5" title="Application-given private data pointer, initialized to NULL, use it as you wish.">userdata</a>;
144 <a name="l00276"></a>00276 <span class="comment">/* cpusets and nodesets */</span>
145 <a name="l00277"></a><a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f">00277</a> hwloc_cpuset_t <a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
146 <a name="l00290"></a><a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c">00290</a> hwloc_cpuset_t <a class="code" href="a00012.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
147 <a name="l00301"></a><a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564">00301</a> hwloc_cpuset_t <a class="code" href="a00012.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
148 <a name="l00309"></a><a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34">00309</a> hwloc_cpuset_t <a class="code" href="a00012.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
149 <a name="l00320"></a><a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3">00320</a> hwloc_nodeset_t <a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>;
150 <a name="l00337"></a><a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e">00337</a> hwloc_nodeset_t <a class="code" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e" title="The complete NUMA node set of this object,.">complete_nodeset</a>;
151 <a name="l00351"></a><a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531">00351</a> hwloc_nodeset_t <a class="code" href="a00012.html#a19e3d0a5951a7510fc4fc4722a9bf531" title="The set of allowed NUMA memory nodes.">allowed_nodeset</a>;
152 <a name="l00364"></a><a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb">00364</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Object info.">hwloc_obj_info_s</a> *<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>;
153 <a name="l00365"></a><a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70">00365</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70" title="Size of infos array.">infos_count</a>;
154 <a name="l00366"></a>00366 };
155 <a name="l00370"></a><a class="code" href="a00036.html#ga79b8ab56877ef99ac59b833203391c7d">00370</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj</a> * <a class="code" href="a00036.html#ga79b8ab56877ef99ac59b833203391c7d" title="Convenience typedef; a pointer to a struct hwloc_obj.">hwloc_obj_t</a>;
156 <a name="l00371"></a>00371
157 <a name="l00373"></a><a class="code" href="a00013.html">00373</a> <span class="keyword">union </span><a class="code" href="a00013.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> {
158 <a name="l00375"></a><a class="code" href="a00010.html">00375</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Cache-specific Object Attributes.">hwloc_cache_attr_s</a> {
159 <a name="l00376"></a><a class="code" href="a00010.html#abe5e788943ed04302976740c829674c0">00376</a> hwloc_uint64_t <a class="code" href="a00010.html#abe5e788943ed04302976740c829674c0" title="Size of cache in bytes.">size</a>;
160 <a name="l00377"></a><a class="code" href="a00010.html#a5c8f7f39193736c2187ed626940835d5">00377</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a5c8f7f39193736c2187ed626940835d5" title="Depth of cache.">depth</a>;
161 <a name="l00378"></a><a class="code" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db">00378</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db" title="Cache-line size in bytes.">linesize</a>;
162 <a name="l00379"></a>00379 } <a class="code" href="a00013.html#ab5a8ae3bf490e6b1071fea53f7382836">cache</a>;
163 <a name="l00381"></a><a class="code" href="a00011.html">00381</a> <span class="keyword">struct </span><a class="code" href="a00011.html" title="Group-specific Object Attributes.">hwloc_group_attr_s</a> {
164 <a name="l00382"></a><a class="code" href="a00011.html#ad914eac61c77481e1b7037877bcc5579">00382</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00011.html#ad914eac61c77481e1b7037877bcc5579" title="Depth of group object.">depth</a>;
165 <a name="l00383"></a>00383 } <a class="code" href="a00013.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">group</a>;
166 <a name="l00384"></a>00384 };
167 <a name="l00385"></a>00385
168 <a name="l00387"></a><a class="code" href="a00014.html">00387</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Object info.">hwloc_obj_info_s</a> {
169 <a name="l00388"></a><a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d">00388</a> <span class="keywordtype">char</span> *<a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d" title="Info name.">name</a>;
170 <a name="l00389"></a><a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce">00389</a> <span class="keywordtype">char</span> *<a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce" title="Info value.">value</a>;
171 <a name="l00390"></a>00390 };
172 <a name="l00391"></a>00391
173 <a name="l00406"></a>00406 <span class="keywordtype">int</span> <a class="code" href="a00037.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init</a> (hwloc_topology_t *topologyp);
174 <a name="l00407"></a>00407
175 <a name="l00420"></a>00420 <span class="keywordtype">int</span> <a class="code" href="a00037.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load</a>(hwloc_topology_t topology);
176 <a name="l00421"></a>00421
177 <a name="l00426"></a>00426 <span class="keywordtype">void</span> <a class="code" href="a00037.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy</a> (hwloc_topology_t topology);
178 <a name="l00427"></a>00427
179 <a name="l00432"></a>00432 <span class="keywordtype">void</span> <a class="code" href="a00037.html#gab3628b2a540a5a08e8cf724ef829e70a" title="Run internal checks on a topology structure.">hwloc_topology_check</a>(hwloc_topology_t topology);
180 <a name="l00433"></a>00433
181 <a name="l00466"></a>00466 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gaf2071c8621fddc53649c245d87835b47" title="Ignore an object type.">hwloc_topology_ignore_type</a>(hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
182 <a name="l00467"></a>00467
183 <a name="l00474"></a>00474 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga6ddd4213d95bd1c30555b294a60efa6b" title="Ignore an object type if it does not bring any structure.">hwloc_topology_ignore_type_keep_structure</a>(hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
184 <a name="l00475"></a>00475
185 <a name="l00481"></a>00481 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gaec6fb00050f50cd41007f1ae580d2106" title="Ignore all objects that do not bring any structure.">hwloc_topology_ignore_all_keep_structure</a>(hwloc_topology_t topology);
186 <a name="l00482"></a>00482
187 <a name="l00487"></a><a class="code" href="a00038.html#gada025d3ec20b4b420f8038d23d6e7bde">00487</a> <span class="keyword">enum</span> <a class="code" href="a00038.html#gada025d3ec20b4b420f8038d23d6e7bde" title="Flags to be set onto a topology context before load.">hwloc_topology_flags_e</a> {
188 <a name="l00488"></a><a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8">00488</a> <a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8" title="Detect the whole system, ignore reservations and offline settings.">HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM</a> = (1&lt;&lt;0),
189 <a name="l00497"></a><a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b">00497</a> <a class="code" href="a00038.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b" title="Assume that the selected backend provides the topology for the system on which we are running...">HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM</a> = (1&lt;&lt;1)
190 <a name="l00516"></a>00516 };
191 <a name="l00517"></a>00517
192 <a name="l00522"></a>00522 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga6d11e53db143ac39c32cdb3912b71f99" title="Set OR&amp;#39;ed flags to non-yet-loaded topology.">hwloc_topology_set_flags</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
193 <a name="l00523"></a>00523
194 <a name="l00537"></a>00537 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga2f6bfb6958d8b508ea1d7d5bb266432c" title="Change the file-system root path when building the topology from sysfs/procfs.">hwloc_topology_set_fsroot</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict fsroot_path);
195 <a name="l00538"></a>00538
196 <a name="l00552"></a>00552 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gae1100de0162b3c6a9db750ac14629c05" title="Change which pid the topology is viewed from.">hwloc_topology_set_pid</a>(hwloc_topology_t restrict topology, hwloc_pid_t pid);
197 <a name="l00553"></a>00553
198 <a name="l00571"></a>00571 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga2fcb52181b586c20f001b7a999550324" title="Enable synthetic topology.">hwloc_topology_set_synthetic</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict description);
199 <a name="l00572"></a>00572
200 <a name="l00584"></a>00584 <span class="keywordtype">int</span> <a class="code" href="a00038.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict xmlpath);
201 <a name="l00585"></a>00585
202 <a name="l00591"></a>00591 <span class="keywordtype">int</span> <a class="code" href="a00038.html#gae7e4bade144652a2b48f5eaf0309b4ec" title="Enable XML based topology using a memory buffer instead of a file.">hwloc_topology_set_xmlbuffer</a>(hwloc_topology_t restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict buffer, <span class="keywordtype">int</span> size);
203 <a name="l00592"></a>00592
204 <a name="l00594"></a><a class="code" href="a00018.html">00594</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> {
205 <a name="l00596"></a><a class="code" href="a00018.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">00596</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00018.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab" title="Detecting the number of PU objects is supported.">pu</a>;
206 <a name="l00597"></a>00597 };
207 <a name="l00598"></a>00598
208 <a name="l00600"></a><a class="code" href="a00017.html">00600</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Flags describing actual PU binding support for this topology.">hwloc_topology_cpubind_support</a> {
209 <a name="l00602"></a><a class="code" href="a00017.html#a9403d51657a4d546b3ea9553a2973a27">00602</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a9403d51657a4d546b3ea9553a2973a27">set_thisproc_cpubind</a>;
210 <a name="l00604"></a><a class="code" href="a00017.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">00604</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">get_thisproc_cpubind</a>;
211 <a name="l00606"></a><a class="code" href="a00017.html#aa166223d1c2a6de7256ab2d8b675a87e">00606</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#aa166223d1c2a6de7256ab2d8b675a87e">set_proc_cpubind</a>;
212 <a name="l00608"></a><a class="code" href="a00017.html#aae705bc447adc163ead377362c4dfe9f">00608</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#aae705bc447adc163ead377362c4dfe9f">get_proc_cpubind</a>;
213 <a name="l00610"></a><a class="code" href="a00017.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">00610</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">set_thisthread_cpubind</a>;
214 <a name="l00612"></a><a class="code" href="a00017.html#a80d762e532d677dff262d83cc7bb1c60">00612</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a80d762e532d677dff262d83cc7bb1c60">get_thisthread_cpubind</a>;
215 <a name="l00614"></a><a class="code" href="a00017.html#a46fba33e307909ce256624687799dd6d">00614</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a46fba33e307909ce256624687799dd6d">set_thread_cpubind</a>;
216 <a name="l00616"></a><a class="code" href="a00017.html#a8dd4d8531ed2eebdce1507e7d104154e">00616</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00017.html#a8dd4d8531ed2eebdce1507e7d104154e">get_thread_cpubind</a>;
217 <a name="l00617"></a>00617 };
218 <a name="l00618"></a>00618
219 <a name="l00620"></a><a class="code" href="a00019.html">00620</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Flags describing actual memory binding support for this topology.">hwloc_topology_membind_support</a> {
220 <a name="l00622"></a><a class="code" href="a00019.html#a36b3e388df9c6a249427cab7e3724749">00622</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a36b3e388df9c6a249427cab7e3724749">set_thisproc_membind</a>;
221 <a name="l00624"></a><a class="code" href="a00019.html#a3fd51e6fa5f0dd800322301b46b08559">00624</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a3fd51e6fa5f0dd800322301b46b08559">get_thisproc_membind</a>;
222 <a name="l00626"></a><a class="code" href="a00019.html#a756f44912894b176bf979a1b65f12aac">00626</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a756f44912894b176bf979a1b65f12aac">set_proc_membind</a>;
223 <a name="l00628"></a><a class="code" href="a00019.html#a9880cd2d605e316fc020167c49ca69ad">00628</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a9880cd2d605e316fc020167c49ca69ad">get_proc_membind</a>;
224 <a name="l00630"></a><a class="code" href="a00019.html#a0697af2e41f2e82b8ce71e3cc13f7eac">00630</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a0697af2e41f2e82b8ce71e3cc13f7eac">set_thisthread_membind</a>;
225 <a name="l00632"></a><a class="code" href="a00019.html#a63b0b2e26157b472f5717ee93cc7c535">00632</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a63b0b2e26157b472f5717ee93cc7c535">get_thisthread_membind</a>;
226 <a name="l00634"></a><a class="code" href="a00019.html#a476c06f96b65c08b287cf2369966123b">00634</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a476c06f96b65c08b287cf2369966123b">set_area_membind</a>;
227 <a name="l00636"></a><a class="code" href="a00019.html#a0a84e24a06f2fa487fe8c9605c6f68b3">00636</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a0a84e24a06f2fa487fe8c9605c6f68b3">get_area_membind</a>;
228 <a name="l00638"></a><a class="code" href="a00019.html#ae551abb27d2aa9ce008583488b845b98">00638</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ae551abb27d2aa9ce008583488b845b98">alloc_membind</a>;
229 <a name="l00640"></a><a class="code" href="a00019.html#a221098c339dbfab27bd2c9f5d32f123b">00640</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a221098c339dbfab27bd2c9f5d32f123b">firsttouch_membind</a>;
230 <a name="l00642"></a><a class="code" href="a00019.html#ae7cdb1f1b5f0242a69f85b5a5538c764">00642</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ae7cdb1f1b5f0242a69f85b5a5538c764">bind_membind</a>;
231 <a name="l00644"></a><a class="code" href="a00019.html#a3c44c6012860bbeba8a0f4c19710858d">00644</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#a3c44c6012860bbeba8a0f4c19710858d">interleave_membind</a>;
232 <a name="l00646"></a><a class="code" href="a00019.html#afe608fb85eb2aa9706221ccb5fc4d415">00646</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#afe608fb85eb2aa9706221ccb5fc4d415">replicate_membind</a>;
233 <a name="l00648"></a><a class="code" href="a00019.html#ab0921af6e0cd6975812a80b8e5c7435c">00648</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#ab0921af6e0cd6975812a80b8e5c7435c">nexttouch_membind</a>;
234 <a name="l00649"></a>00649
235 <a name="l00651"></a><a class="code" href="a00019.html#aafa7683871a6a760246f9b35209caec5">00651</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00019.html#aafa7683871a6a760246f9b35209caec5">migrate_membind</a>;
236 <a name="l00652"></a>00652 };
237 <a name="l00653"></a>00653
238 <a name="l00660"></a><a class="code" href="a00020.html">00660</a> <span class="keyword">struct </span><a class="code" href="a00020.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> {
239 <a name="l00661"></a><a class="code" href="a00020.html#aea3fbd7653d987d81f848636c420504d">00661</a> <span class="keyword">struct </span><a class="code" href="a00018.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> *<a class="code" href="a00020.html#aea3fbd7653d987d81f848636c420504d">discovery</a>;
240 <a name="l00662"></a><a class="code" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">00662</a> <span class="keyword">struct </span><a class="code" href="a00017.html" title="Flags describing actual PU binding support for this topology.">hwloc_topology_cpubind_support</a> *<a class="code" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">cpubind</a>;
241 <a name="l00663"></a><a class="code" href="a00020.html#ac6eb62ae8bc0a68dce679a7107a36194">00663</a> <span class="keyword">struct </span><a class="code" href="a00019.html" title="Flags describing actual memory binding support for this topology.">hwloc_topology_membind_support</a> *<a class="code" href="a00020.html#ac6eb62ae8bc0a68dce679a7107a36194">membind</a>;
242 <a name="l00664"></a>00664 };
243 <a name="l00665"></a>00665
244 <a name="l00667"></a>00667 <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="a00020.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> *<a class="code" href="a00038.html#gac2126e105f3ae708efca2e90d612625a" title="Retrieve the topology support.">hwloc_topology_get_support</a>(hwloc_topology_t restrict topology);
245 <a name="l00668"></a>00668
246 <a name="l00681"></a>00681 <span class="keywordtype">void</span> <a class="code" href="a00039.html#ga1c9d8e608232206ce2142fe806a6835b" title="Export the topology into an XML file.">hwloc_topology_export_xml</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">char</span> *xmlpath);
247 <a name="l00682"></a>00682
248 <a name="l00689"></a>00689 <span class="keywordtype">void</span> <a class="code" href="a00039.html#gad77e72a2ccf32825511818988a09e5c1" title="Export the topology into a newly-allocated XML memory buffer.">hwloc_topology_export_xmlbuffer</a>(hwloc_topology_t topology, <span class="keywordtype">char</span> **xmlbuffer, <span class="keywordtype">int</span> *buflen);
249 <a name="l00690"></a>00690
250 <a name="l00700"></a>00700 hwloc_obj_t <a class="code" href="a00039.html#ga017a9ba16d554326c6e3812d545d7230" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_cpuset</a>(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
251 <a name="l00701"></a>00701
252 <a name="l00711"></a>00711 hwloc_obj_t <a class="code" href="a00039.html#gadacd7a3d21220fbb30c3256d8b22a294" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_parent</a>(hwloc_topology_t topology, hwloc_obj_t parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
253 <a name="l00712"></a>00712
254 <a name="l00725"></a>00725 <span class="keywordtype">unsigned</span> <a class="code" href="a00040.html#ga8c30b0cec55074eb3ed34e4f2a1a9937" title="Get the depth of the hierachical tree of objects.">hwloc_topology_get_depth</a>(hwloc_topology_t restrict topology) ;
255 <a name="l00726"></a>00726
256 <a name="l00739"></a>00739 <span class="keywordtype">int</span> <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
257 <a name="l00740"></a>00740
258 <a name="l00741"></a><a class="code" href="a00040.html#gaf4e663cf42bbe20756b849c6293ef575">00741</a> <span class="keyword">enum</span> <a class="code" href="a00040.html#gaf4e663cf42bbe20756b849c6293ef575">hwloc_get_type_depth_e</a> {
259 <a name="l00742"></a><a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad">00742</a> <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> = -1,
260 <a name="l00743"></a><a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c">00743</a> <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a> = -2
261 <a name="l00744"></a>00744 };
262 <a name="l00745"></a>00745
263 <a name="l00750"></a>00750 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00040.html#gadd4964764ae7e49231065d58a553fd31" title="Returns the type of objects at depth depth.">hwloc_get_depth_type</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth) ;
264 <a name="l00751"></a>00751
265 <a name="l00753"></a>00753 <span class="keywordtype">unsigned</span> <a class="code" href="a00040.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth) ;
266 <a name="l00754"></a>00754
267 <a name="l00760"></a>00760 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
268 <a name="l00761"></a><a class="code" href="a00040.html#ga0131ab1051011fabfa69d7c1853e716c">00761</a> <a class="code" href="a00040.html#ga0131ab1051011fabfa69d7c1853e716c" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
269 <a name="l00762"></a>00762 {
270 <a name="l00763"></a>00763 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
271 <a name="l00764"></a>00764 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
272 <a name="l00765"></a>00765 <span class="keywordflow">return</span> 0;
273 <a name="l00766"></a>00766 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
274 <a name="l00767"></a>00767 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
275 <a name="l00768"></a>00768 <span class="keywordflow">return</span> <a class="code" href="a00040.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth);
276 <a name="l00769"></a>00769 }
277 <a name="l00770"></a>00770
278 <a name="l00778"></a>00778 <span class="keywordtype">int</span> <a class="code" href="a00040.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem</a>(hwloc_topology_t restrict topology) ;
279 <a name="l00779"></a>00779
280 <a name="l00789"></a>00789 hwloc_obj_t <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (hwloc_topology_t topology, <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx) ;
281 <a name="l00790"></a>00790
282 <a name="l00797"></a>00797 <span class="keyword">static</span> inline hwloc_obj_t
283 <a name="l00798"></a><a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2">00798</a> <a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (hwloc_topology_t topology, <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
284 <a name="l00799"></a>00799 {
285 <a name="l00800"></a>00800 <span class="keywordtype">int</span> depth = <a class="code" href="a00040.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
286 <a name="l00801"></a>00801 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
287 <a name="l00802"></a>00802 <span class="keywordflow">return</span> NULL;
288 <a name="l00803"></a>00803 <span class="keywordflow">if</span> (depth == <a class="code" href="a00040.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
289 <a name="l00804"></a>00804 <span class="keywordflow">return</span> NULL;
290 <a name="l00805"></a>00805 <span class="keywordflow">return</span> <a class="code" href="a00041.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, idx);
291 <a name="l00806"></a>00806 }
292 <a name="l00807"></a>00807
293 <a name="l00817"></a>00817 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="a00042.html#ga7c61920feca6fd9006d930dabfc09058" title="Return a stringified topology object type.">hwloc_obj_type_string</a> (<a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type) ;
294 <a name="l00818"></a>00818
295 <a name="l00823"></a>00823 <a class="code" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00042.html#gade722091ae392fdc79557e797a16c370" title="Return an object type from the string.">hwloc_obj_type_of_string</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keywordtype">string</span>) ;
296 <a name="l00824"></a>00824
297 <a name="l00835"></a>00835 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga3ad856e8f3487d340c82a23b8a2a0351" title="Stringify the type of a given topology object into a human-readable form.">hwloc_obj_type_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size, hwloc_obj_t obj,
298 <a name="l00836"></a>00836 <span class="keywordtype">int</span> verbose);
299 <a name="l00837"></a>00837
300 <a name="l00849"></a>00849 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga0db8286d7f3ceda8defd76e3e1e2b284" title="Stringify the attributes of a given topology object into a human-readable form.">hwloc_obj_attr_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size, hwloc_obj_t obj, <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict separator,
301 <a name="l00850"></a>00850 <span class="keywordtype">int</span> verbose);
302 <a name="l00851"></a>00851
303 <a name="l00872"></a>00872 <span class="keywordtype">int</span> <a class="code" href="a00042.html#ga5c6a61a83f4790b421e2f62e9088446f" title="Stringify a given topology object into a human-readable form.">hwloc_obj_snprintf</a>(<span class="keywordtype">char</span> * restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size,
304 <a name="l00873"></a>00873 hwloc_topology_t topology, hwloc_obj_t obj,
305 <a name="l00874"></a>00874 <span class="keyword">const</span> <span class="keywordtype">char</span> * restrict indexprefix, <span class="keywordtype">int</span> verbose);
306 <a name="l00875"></a>00875
307 <a name="l00883"></a>00883 <span class="keywordtype">int</span> <a class="code" href="a00042.html#gabbfb92224c992c0e2ecef6b6e45260f2" title="Stringify the cpuset containing a set of objects.">hwloc_obj_cpuset_snprintf</a>(<span class="keywordtype">char</span> * restrict str, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> nobj, <span class="keyword">const</span> hwloc_obj_t * restrict objs);
308 <a name="l00884"></a>00884
309 <a name="l00889"></a>00889 <span class="keyword">static</span> inline <span class="keywordtype">char</span> *
310 <a name="l00890"></a><a class="code" href="a00042.html#ga1f41387433f4c9e9c14b9f2e522919e4">00890</a> <a class="code" href="a00042.html#ga1f41387433f4c9e9c14b9f2e522919e4" title="Search the given key name in object infos and return the corresponding value.">hwloc_obj_get_info_by_name</a>(hwloc_obj_t obj, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
311 <a name="l00891"></a>00891 {
312 <a name="l00892"></a>00892 <span class="keywordtype">unsigned</span> i;
313 <a name="l00893"></a>00893 <span class="keywordflow">for</span>(i=0; i&lt;obj-&gt;<a class="code" href="a00012.html#a9843acc28cfbba903b63ea14b137ff70" title="Size of infos array.">infos_count</a>; i++)
314 <a name="l00894"></a>00894 <span class="keywordflow">if</span> (!strcmp(obj-&gt;<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>[i].<a class="code" href="a00014.html#a115dde58f40338a2d3276d59c099857d" title="Info name.">name</a>, name))
315 <a name="l00895"></a>00895 <span class="keywordflow">return</span> obj-&gt;<a class="code" href="a00012.html#ad59bcd73a10260a0e239be5c4b5888bb" title="Array of stringified info type=name.">infos</a>[i].<a class="code" href="a00014.html#a522efd7f5262a4493a73fa3476a041ce" title="Info value.">value</a>;
316 <a name="l00896"></a>00896 <span class="keywordflow">return</span> NULL;
317 <a name="l00897"></a>00897 }
318 <a name="l00898"></a>00898
319 <a name="l00953"></a><a class="code" href="a00043.html#ga217dc8d373f8958cc93c154ebce1c71c">00953</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
320 <a name="l00954"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca2e0dd0128dac6b03408c7dd170477fdc">00954</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca2e0dd0128dac6b03408c7dd170477fdc" title="Bind all threads of the current (possibly) multithreaded process.">HWLOC_CPUBIND_PROCESS</a> = (1&lt;&lt;0),
321 <a name="l00957"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71caf1b6bbad00d7b1017b918e3719f4d421">00957</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71caf1b6bbad00d7b1017b918e3719f4d421" title="Bind current thread of current process.">HWLOC_CPUBIND_THREAD</a> = (1&lt;&lt;1),
322 <a name="l00959"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca679a7e0f0c7ee06b123565f90d98e7fa">00959</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca679a7e0f0c7ee06b123565f90d98e7fa" title="Request for strict binding from the OS.">HWLOC_CPUBIND_STRICT</a> = (1&lt;&lt;2),
323 <a name="l00987"></a><a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca41ce440443cc3087caed95ab60edcad6">00987</a> <a class="code" href="a00043.html#gga217dc8d373f8958cc93c154ebce1c71ca41ce440443cc3087caed95ab60edcad6" title="Avoid any effect on memory binding.">HWLOC_CPUBIND_NOMEMBIND</a> = (1&lt;&lt;3)
324 <a name="l01001"></a>01001 } <a class="code" href="a00043.html#ga217dc8d373f8958cc93c154ebce1c71c" title="Process/Thread binding flags.">hwloc_cpubind_flags_t</a>;
325 <a name="l01002"></a>01002
326 <a name="l01008"></a>01008 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gaf4cc194d5c0d38004a21b9f03522a7e3" title="Bind current process or thread on cpus given in bitmap set.">hwloc_set_cpubind</a>(hwloc_topology_t topology, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
321327 <a name="l01009"></a>01009
322 <a name="l01017"></a>01017 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gac0ef3510b4e9c1273029ecf94e8c9686" title="Bind a process pid on cpus given in bitmap set.">hwloc_set_proc_cpubind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
323 <a name="l01018"></a>01018
324 <a name="l01026"></a>01026 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gaa1373a002b9a0a87eb002e26c590f2da" title="Get the current binding of process pid.">hwloc_get_proc_cpubind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
325 <a name="l01027"></a>01027
326 <a name="l01028"></a>01028 <span class="preprocessor">#ifdef hwloc_thread_t</span>
327 <a name="l01029"></a>01029 <span class="preprocessor"></span>
328 <a name="l01036"></a>01036 <span class="keywordtype">int</span> <a class="code" href="a00043.html#ga2d6cca51524108966752609b6e725243" title="Bind a thread tid on cpus given in bitmap set.">hwloc_set_thread_cpubind</a>(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
329 <a name="l01037"></a>01037 <span class="preprocessor">#endif</span>
330 <a name="l01038"></a>01038 <span class="preprocessor"></span>
331 <a name="l01039"></a>01039 <span class="preprocessor">#ifdef hwloc_thread_t</span>
332 <a name="l01040"></a>01040 <span class="preprocessor"></span>
333 <a name="l01047"></a>01047 <span class="keywordtype">int</span> <a class="code" href="a00043.html#ga58c49328c4213c9fbf8d80d5188d4c1e" title="Get the current binding of thread tid.">hwloc_get_thread_cpubind</a>(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
334 <a name="l01048"></a>01048 <span class="preprocessor">#endif</span>
335 <a name="l01049"></a>01049 <span class="preprocessor"></span>
336 <a name="l01108"></a><a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">01108</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
337 <a name="l01109"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a18675bb80ebc1bce5b652e9de8f3998c">01109</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a18675bb80ebc1bce5b652e9de8f3998c" title="Reset the memory allocation policy to the system default.">HWLOC_MEMBIND_DEFAULT</a> = 0,
338 <a name="l01111"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0">01111</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a> = 1,
339 <a name="l01122"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ad811fa4b2a6002c4d63695a408ffde2c">01122</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ad811fa4b2a6002c4d63695a408ffde2c" title="Allocate memory on the specified nodes.">HWLOC_MEMBIND_BIND</a> = 2,
340 <a name="l01124"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ae370075e5af016d42310f87ea5af236b">01124</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ae370075e5af016d42310f87ea5af236b" title="Allocate memory on the given nodes in an interleaved / round-robin manner. The precise layout of the ...">HWLOC_MEMBIND_INTERLEAVE</a> = 3,
341 <a name="l01139"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8afb37480fe5f4236eb7dd4aef26f691e9">01139</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8afb37480fe5f4236eb7dd4aef26f691e9" title="Replicate memory on the given nodes; reads from this memory will attempt to be serviced from the NUMA...">HWLOC_MEMBIND_REPLICATE</a> = 4,
342 <a name="l01161"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8aecdd4164d647708fbb51a00d98dbb138">01161</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8aecdd4164d647708fbb51a00d98dbb138" title="For each page bound with this policy, by next time it is touched (and next time only), it is moved from its current location to the local NUMA node of the thread where the memory reference occurred (if it needs to be moved at all).">HWLOC_MEMBIND_NEXTTOUCH</a> = 5,
343 <a name="l01171"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a3185bd869b67817fb2bd5164bf360402">01171</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a3185bd869b67817fb2bd5164bf360402" title="Returned by hwloc_get_membind*() functions when multiple threads or parts of a memory area have diffe...">HWLOC_MEMBIND_MIXED</a> = -1
344 <a name="l01176"></a>01176 } <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a>;
345 <a name="l01177"></a>01177
346 <a name="l01189"></a><a class="code" href="a00044.html#gab00475fd98815bf4fb9aaf752030e7d2">01189</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
347 <a name="l01190"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1b1b74aef138f64aff214a8cbdfe8eb4">01190</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1b1b74aef138f64aff214a8cbdfe8eb4" title="Set policy for all threads of the specified (possibly multithreaded) process. This flag is mutually e...">HWLOC_MEMBIND_PROCESS</a> = (1&lt;&lt;0),
348 <a name="l01197"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1dc7dd5cdcd5796893a325a524555298">01197</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1dc7dd5cdcd5796893a325a524555298" title="Set policy for a specific thread of the current process. This flag is mutually exclusive with HWLOC_M...">HWLOC_MEMBIND_THREAD</a> = (1&lt;&lt;1),
349 <a name="l01203"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a0335311a0ee04166df2888d52b4a42c6">01203</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a0335311a0ee04166df2888d52b4a42c6">HWLOC_MEMBIND_STRICT</a> = (1&lt;&lt;2),
350 <a name="l01214"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aa6e49e54f52827cb143cc869cfd748af">01214</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aa6e49e54f52827cb143cc869cfd748af" title="Migrate existing allocated memory. If the memory cannot be migrated and the HWLOC_MEMBIND_STRICT flag...">HWLOC_MEMBIND_MIGRATE</a> = (1&lt;&lt;3),
351 <a name="l01222"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aad6b9eaf2ee324ca58dc8f58094b9997">01222</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aad6b9eaf2ee324ca58dc8f58094b9997" title="Avoid any effect on CPU binding.">HWLOC_MEMBIND_NOCPUBIND</a> = (1&lt;&lt;4)
352 <a name="l01245"></a>01245 } <a class="code" href="a00044.html#gab00475fd98815bf4fb9aaf752030e7d2" title="Memory binding flags.">hwloc_membind_flags_t</a>;
353 <a name="l01246"></a>01246
354 <a name="l01259"></a>01259 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga747962cbb16fd12ad6d126011c734a27" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...">hwloc_set_membind_nodeset</a>(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
355 <a name="l01260"></a>01260
356 <a name="l01274"></a>01274 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga8b6d1d90227aff8e44ef26bc1f8a8f95" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) nea...">hwloc_set_membind</a>(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
357 <a name="l01275"></a>01275
358 <a name="l01316"></a>01316 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga7b46a4ca0b2db9723ca73b0c148ccd93" title="Query the default memory binding policy and locality of the current process or thread.">hwloc_get_membind_nodeset</a>(hwloc_topology_t topology, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
359 <a name="l01317"></a>01317
360 <a name="l01363"></a>01363 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gab07aedba1119f99130e5f0b796b7d8a5" title="Query the default memory binding policy and locality of the current process or thread (the locality i...">hwloc_get_membind</a>(hwloc_topology_t topology, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
361 <a name="l01364"></a>01364
362 <a name="l01371"></a>01371 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gaf10d18cd4703ec980d7440a1c23fa07f" title="Set the default memory binding policy of the specified process to prefer the NUMA node(s) specified b...">hwloc_set_proc_membind_nodeset</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
363 <a name="l01372"></a>01372
364 <a name="l01379"></a>01379 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gac63c4517e71b3f0d41b3dee3e83dc55c" title="Set the default memory binding policy of the specified process to prefer the NUMA node(s) near the sp...">hwloc_set_proc_membind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
365 <a name="l01380"></a>01380
366 <a name="l01414"></a>01414 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga22074ed072e1039f74f17f7b16e9e39d" title="Query the default memory binding policy and locality of the specified process.">hwloc_get_proc_membind_nodeset</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
367 <a name="l01415"></a>01415
368 <a name="l01452"></a>01452 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gabaf9c13f1fa301d6895594cec52226e2" title="Query the default memory binding policy and locality of the specified process (the locality is return...">hwloc_get_proc_membind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
369 <a name="l01453"></a>01453
370 <a name="l01460"></a>01460 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gade5e2c28ea8475a479bf2b1df36c6ccd" title="Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) in nodeset...">hwloc_set_area_membind_nodeset</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
371 <a name="l01461"></a>01461
372 <a name="l01468"></a>01468 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga06594edeb4728cb9e014aed924d1e74a" title="Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) near cpuset...">hwloc_set_area_membind</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
373 <a name="l01469"></a>01469
374 <a name="l01492"></a>01492 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga106e6fcd764d17be682faf7a5bc95720" title="Query the NUMA node(s) and binding policy of the memory identified by (addr, len ).">hwloc_get_area_membind_nodeset</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
375 <a name="l01493"></a>01493
376 <a name="l01518"></a>01518 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gac02ee8f7606382ea7855ae4e1656ed0f" title="Query the CPUs near the NUMA node(s) and binding policy of the memory identified by (addr...">hwloc_get_area_membind</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
377 <a name="l01519"></a>01519
378 <a name="l01527"></a>01527 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len);
379 <a name="l01528"></a>01528
380 <a name="l01538"></a>01538 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#gaeaa00714a9c4319bda0a74ca6f8720e8" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_nodeset</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags) ;
381 <a name="l01539"></a>01539
382 <a name="l01549"></a>01549 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#ga221a7edc5d436300374fa16463f607e5" title="Allocate some memory on memory nodes near the given cpuset cpuset.">hwloc_alloc_membind</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags) ;
383 <a name="l01550"></a>01550
384 <a name="l01554"></a>01554 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga986d9b4cc76da592c4b937c6cb7d9d56" title="Free memory that was previously allocated by hwloc_alloc() or hwloc_alloc_membind().">hwloc_free</a>(hwloc_topology_t topology, <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len);
385 <a name="l01555"></a>01555
386 <a name="l01559"></a>01559 <span class="preprocessor">#ifdef __cplusplus</span>
387 <a name="l01560"></a>01560 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
388 <a name="l01561"></a>01561 <span class="preprocessor">#endif</span>
389 <a name="l01562"></a>01562 <span class="preprocessor"></span>
390 <a name="l01563"></a>01563
391 <a name="l01564"></a>01564 <span class="comment">/* high-level helpers */</span>
392 <a name="l01565"></a>01565 <span class="preprocessor">#include &lt;hwloc/helper.h&gt;</span>
393 <a name="l01566"></a>01566
328 <a name="l01012"></a>01012 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gab52f83ab16eac465da55e16bdd30df77" title="Get current process or thread binding.">hwloc_get_cpubind</a>(hwloc_topology_t topology, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
329 <a name="l01013"></a>01013
330 <a name="l01021"></a>01021 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gac0ef3510b4e9c1273029ecf94e8c9686" title="Bind a process pid on cpus given in bitmap set.">hwloc_set_proc_cpubind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
331 <a name="l01022"></a>01022
332 <a name="l01030"></a>01030 <span class="keywordtype">int</span> <a class="code" href="a00043.html#gaa1373a002b9a0a87eb002e26c590f2da" title="Get the current binding of process pid.">hwloc_get_proc_cpubind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
333 <a name="l01031"></a>01031
334 <a name="l01032"></a>01032 <span class="preprocessor">#ifdef hwloc_thread_t</span>
335 <a name="l01033"></a>01033 <span class="preprocessor"></span>
336 <a name="l01040"></a>01040 <span class="keywordtype">int</span> <a class="code" href="a00043.html#ga2d6cca51524108966752609b6e725243" title="Bind a thread tid on cpus given in bitmap set.">hwloc_set_thread_cpubind</a>(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
337 <a name="l01041"></a>01041 <span class="preprocessor">#endif</span>
338 <a name="l01042"></a>01042 <span class="preprocessor"></span>
339 <a name="l01043"></a>01043 <span class="preprocessor">#ifdef hwloc_thread_t</span>
340 <a name="l01044"></a>01044 <span class="preprocessor"></span>
341 <a name="l01051"></a>01051 <span class="keywordtype">int</span> <a class="code" href="a00043.html#ga58c49328c4213c9fbf8d80d5188d4c1e" title="Get the current binding of thread tid.">hwloc_get_thread_cpubind</a>(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t <span class="keyword">set</span>, <span class="keywordtype">int</span> flags);
342 <a name="l01052"></a>01052 <span class="preprocessor">#endif</span>
343 <a name="l01053"></a>01053 <span class="preprocessor"></span>
344 <a name="l01112"></a><a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">01112</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
345 <a name="l01113"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a18675bb80ebc1bce5b652e9de8f3998c">01113</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a18675bb80ebc1bce5b652e9de8f3998c" title="Reset the memory allocation policy to the system default.">HWLOC_MEMBIND_DEFAULT</a> = 0,
346 <a name="l01115"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0">01115</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a979c7aa78dd32780858f30f47a72cca0" title="Allocate memory but do not immediately bind it to a specific locality. Instead, each page in the allo...">HWLOC_MEMBIND_FIRSTTOUCH</a> = 1,
347 <a name="l01126"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ad811fa4b2a6002c4d63695a408ffde2c">01126</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ad811fa4b2a6002c4d63695a408ffde2c" title="Allocate memory on the specified nodes.">HWLOC_MEMBIND_BIND</a> = 2,
348 <a name="l01128"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ae370075e5af016d42310f87ea5af236b">01128</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8ae370075e5af016d42310f87ea5af236b" title="Allocate memory on the given nodes in an interleaved / round-robin manner. The precise layout of the ...">HWLOC_MEMBIND_INTERLEAVE</a> = 3,
349 <a name="l01143"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8afb37480fe5f4236eb7dd4aef26f691e9">01143</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8afb37480fe5f4236eb7dd4aef26f691e9" title="Replicate memory on the given nodes; reads from this memory will attempt to be serviced from the NUMA...">HWLOC_MEMBIND_REPLICATE</a> = 4,
350 <a name="l01165"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8aecdd4164d647708fbb51a00d98dbb138">01165</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8aecdd4164d647708fbb51a00d98dbb138" title="For each page bound with this policy, by next time it is touched (and next time only), it is moved from its current location to the local NUMA node of the thread where the memory reference occurred (if it needs to be moved at all).">HWLOC_MEMBIND_NEXTTOUCH</a> = 5,
351 <a name="l01175"></a><a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a3185bd869b67817fb2bd5164bf360402">01175</a> <a class="code" href="a00044.html#ggac9764f79505775d06407b40f5e4661e8a3185bd869b67817fb2bd5164bf360402" title="Returned by hwloc_get_membind*() functions when multiple threads or parts of a memory area have diffe...">HWLOC_MEMBIND_MIXED</a> = -1
352 <a name="l01180"></a>01180 } <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a>;
353 <a name="l01181"></a>01181
354 <a name="l01193"></a><a class="code" href="a00044.html#gab00475fd98815bf4fb9aaf752030e7d2">01193</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
355 <a name="l01194"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1b1b74aef138f64aff214a8cbdfe8eb4">01194</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1b1b74aef138f64aff214a8cbdfe8eb4" title="Set policy for all threads of the specified (possibly multithreaded) process. This flag is mutually e...">HWLOC_MEMBIND_PROCESS</a> = (1&lt;&lt;0),
356 <a name="l01201"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1dc7dd5cdcd5796893a325a524555298">01201</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a1dc7dd5cdcd5796893a325a524555298" title="Set policy for a specific thread of the current process. This flag is mutually exclusive with HWLOC_M...">HWLOC_MEMBIND_THREAD</a> = (1&lt;&lt;1),
357 <a name="l01207"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a0335311a0ee04166df2888d52b4a42c6">01207</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2a0335311a0ee04166df2888d52b4a42c6">HWLOC_MEMBIND_STRICT</a> = (1&lt;&lt;2),
358 <a name="l01218"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aa6e49e54f52827cb143cc869cfd748af">01218</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aa6e49e54f52827cb143cc869cfd748af" title="Migrate existing allocated memory. If the memory cannot be migrated and the HWLOC_MEMBIND_STRICT flag...">HWLOC_MEMBIND_MIGRATE</a> = (1&lt;&lt;3),
359 <a name="l01226"></a><a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aad6b9eaf2ee324ca58dc8f58094b9997">01226</a> <a class="code" href="a00044.html#ggab00475fd98815bf4fb9aaf752030e7d2aad6b9eaf2ee324ca58dc8f58094b9997" title="Avoid any effect on CPU binding.">HWLOC_MEMBIND_NOCPUBIND</a> = (1&lt;&lt;4)
360 <a name="l01249"></a>01249 } <a class="code" href="a00044.html#gab00475fd98815bf4fb9aaf752030e7d2" title="Memory binding flags.">hwloc_membind_flags_t</a>;
361 <a name="l01250"></a>01250
362 <a name="l01263"></a>01263 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga747962cbb16fd12ad6d126011c734a27" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...">hwloc_set_membind_nodeset</a>(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
363 <a name="l01264"></a>01264
364 <a name="l01278"></a>01278 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga8b6d1d90227aff8e44ef26bc1f8a8f95" title="Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) nea...">hwloc_set_membind</a>(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
365 <a name="l01279"></a>01279
366 <a name="l01320"></a>01320 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga7b46a4ca0b2db9723ca73b0c148ccd93" title="Query the default memory binding policy and locality of the current process or thread.">hwloc_get_membind_nodeset</a>(hwloc_topology_t topology, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
367 <a name="l01321"></a>01321
368 <a name="l01367"></a>01367 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gab07aedba1119f99130e5f0b796b7d8a5" title="Query the default memory binding policy and locality of the current process or thread (the locality i...">hwloc_get_membind</a>(hwloc_topology_t topology, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
369 <a name="l01368"></a>01368
370 <a name="l01375"></a>01375 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gaf10d18cd4703ec980d7440a1c23fa07f" title="Set the default memory binding policy of the specified process to prefer the NUMA node(s) specified b...">hwloc_set_proc_membind_nodeset</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
371 <a name="l01376"></a>01376
372 <a name="l01383"></a>01383 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gac63c4517e71b3f0d41b3dee3e83dc55c" title="Set the default memory binding policy of the specified process to prefer the NUMA node(s) near the sp...">hwloc_set_proc_membind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
373 <a name="l01384"></a>01384
374 <a name="l01418"></a>01418 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga22074ed072e1039f74f17f7b16e9e39d" title="Query the default memory binding policy and locality of the specified process.">hwloc_get_proc_membind_nodeset</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
375 <a name="l01419"></a>01419
376 <a name="l01456"></a>01456 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gabaf9c13f1fa301d6895594cec52226e2" title="Query the default memory binding policy and locality of the specified process (the locality is return...">hwloc_get_proc_membind</a>(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
377 <a name="l01457"></a>01457
378 <a name="l01464"></a>01464 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gade5e2c28ea8475a479bf2b1df36c6ccd" title="Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) in nodeset...">hwloc_set_area_membind_nodeset</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
379 <a name="l01465"></a>01465
380 <a name="l01472"></a>01472 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga06594edeb4728cb9e014aed924d1e74a" title="Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) near cpuset...">hwloc_set_area_membind</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags);
381 <a name="l01473"></a>01473
382 <a name="l01496"></a>01496 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga106e6fcd764d17be682faf7a5bc95720" title="Query the NUMA node(s) and binding policy of the memory identified by (addr, len ).">hwloc_get_area_membind_nodeset</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
383 <a name="l01497"></a>01497
384 <a name="l01522"></a>01522 <span class="keywordtype">int</span> <a class="code" href="a00044.html#gac02ee8f7606382ea7855ae4e1656ed0f" title="Query the CPUs near the NUMA node(s) and binding policy of the memory identified by (addr...">hwloc_get_area_membind</a>(hwloc_topology_t topology, <span class="keyword">const</span> <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len, hwloc_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> * policy, <span class="keywordtype">int</span> flags);
385 <a name="l01523"></a>01523
386 <a name="l01531"></a>01531 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#gac5586e58cf25c3596b7d4aa31ce13259" title="Allocate some memory.">hwloc_alloc</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len);
387 <a name="l01532"></a>01532
388 <a name="l01542"></a>01542 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#gaeaa00714a9c4319bda0a74ca6f8720e8" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_nodeset</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len, hwloc_const_nodeset_t nodeset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags) ;
389 <a name="l01543"></a>01543
390 <a name="l01553"></a>01553 <span class="keywordtype">void</span> *<a class="code" href="a00044.html#ga221a7edc5d436300374fa16463f607e5" title="Allocate some memory on memory nodes near the given cpuset cpuset.">hwloc_alloc_membind</a>(hwloc_topology_t topology, <span class="keywordtype">size_t</span> len, hwloc_const_cpuset_t cpuset, <a class="code" href="a00044.html#gac9764f79505775d06407b40f5e4661e8" title="Memory binding policy.">hwloc_membind_policy_t</a> policy, <span class="keywordtype">int</span> flags) ;
391 <a name="l01554"></a>01554
392 <a name="l01558"></a>01558 <span class="keywordtype">int</span> <a class="code" href="a00044.html#ga986d9b4cc76da592c4b937c6cb7d9d56" title="Free memory that was previously allocated by hwloc_alloc() or hwloc_alloc_membind().">hwloc_free</a>(hwloc_topology_t topology, <span class="keywordtype">void</span> *addr, <span class="keywordtype">size_t</span> len);
393 <a name="l01559"></a>01559
394 <a name="l01563"></a>01563 <span class="preprocessor">#ifdef __cplusplus</span>
395 <a name="l01564"></a>01564 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
396 <a name="l01565"></a>01565 <span class="preprocessor">#endif</span>
397 <a name="l01566"></a>01566 <span class="preprocessor"></span>
394398 <a name="l01567"></a>01567
395 <a name="l01568"></a>01568 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_H */</span>
399 <a name="l01568"></a>01568 <span class="comment">/* high-level helpers */</span>
400 <a name="l01569"></a>01569 <span class="preprocessor">#include &lt;hwloc/helper.h&gt;</span>
401 <a name="l01570"></a>01570
402 <a name="l01571"></a>01571
403 <a name="l01572"></a>01572 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_H */</span>
396404 </pre></div></div>
397405 </div>
398 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
406 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
399407 <a href="http://www.doxygen.org/index.html">
400 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
408 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
401409 </body>
402410 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
375386 <a name="l00462"></a>00462 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_LINUX_NUMA_H */</span>
376387 </pre></div></div>
377388 </div>
378 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
389 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
379390 <a href="http://www.doxygen.org/index.html">
380 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
391 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
381392 </body>
382393 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
6071 <a name="l00064"></a>00064 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_GLIBC_SCHED_H */</span>
6172 </pre></div></div>
6273 </div>
63 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
74 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
6475 <a href="http://www.doxygen.org/index.html">
65 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
76 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
6677 </body>
6778 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2940 <div class="contents">
3041 <div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2010 INRIA</span>
32 <a name="l00003"></a>00003 <span class="comment"> * See COPYING in top-level directory.</span>
33 <a name="l00004"></a>00004 <span class="comment"> */</span>
34 <a name="l00005"></a>00005
35 <a name="l00014"></a>00014 <span class="preprocessor">#ifndef HWLOC_MYRIEXPRESS_H</span>
36 <a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_MYRIEXPRESS_H</span>
37 <a name="l00016"></a>00016 <span class="preprocessor"></span>
38 <a name="l00017"></a>00017 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
39 <a name="l00018"></a>00018 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
40 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
41 <a name="l00020"></a>00020
42 <a name="l00021"></a>00021 <span class="preprocessor">#include &lt;myriexpress.h&gt;</span>
43 <a name="l00022"></a>00022
43 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2011 Cisco Systems, Inc. All rights reserved.</span>
44 <a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
45 <a name="l00005"></a>00005 <span class="comment"> */</span>
46 <a name="l00006"></a>00006
47 <a name="l00015"></a>00015 <span class="preprocessor">#ifndef HWLOC_MYRIEXPRESS_H</span>
48 <a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_MYRIEXPRESS_H</span>
49 <a name="l00017"></a>00017 <span class="preprocessor"></span>
50 <a name="l00018"></a>00018 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
51 <a name="l00019"></a>00019 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
52 <a name="l00020"></a>00020 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
53 <a name="l00021"></a>00021
54 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;myriexpress.h&gt;</span>
4455 <a name="l00023"></a>00023
45 <a name="l00024"></a>00024 <span class="preprocessor">#ifdef __cplusplus</span>
46 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
47 <a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
48 <a name="l00027"></a>00027 <span class="preprocessor"></span>
49 <a name="l00028"></a>00028
50 <a name="l00039"></a>00039 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
51 <a name="l00040"></a><a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1">00040</a> <a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1" title="Get the CPU set of logical processors that are physically close the MX board id.">hwloc_mx_board_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
52 <a name="l00041"></a>00041 <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
53 <a name="l00042"></a>00042 {
54 <a name="l00043"></a>00043 uint32_t in, out;
55 <a name="l00044"></a>00044
56 <a name="l00045"></a>00045 in = id;
57 <a name="l00046"></a>00046 <span class="keywordflow">if</span> (mx_get_info(NULL, MX_NUMA_NODE, &amp;in, <span class="keyword">sizeof</span>(in), &amp;out, <span class="keyword">sizeof</span>(out)) != MX_SUCCESS) {
58 <a name="l00047"></a>00047 errno = EINVAL;
59 <a name="l00048"></a>00048 <span class="keywordflow">return</span> -1;
60 <a name="l00049"></a>00049 }
61 <a name="l00050"></a>00050
62 <a name="l00051"></a>00051 <span class="keywordflow">if</span> (out != (uint32_t) -1) {
63 <a name="l00052"></a>00052 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = NULL;
64 <a name="l00053"></a>00053 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#ga5f08ceb69375341e73563cfe2e77534e" title="Returns the next object of type type.">hwloc_get_next_obj_by_type</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>, obj)) != NULL)
65 <a name="l00054"></a>00054 <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a> == out) {
66 <a name="l00055"></a>00055 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
67 <a name="l00056"></a>00056 <span class="keywordflow">goto</span> out;
68 <a name="l00057"></a>00057 }
69 <a name="l00058"></a>00058 }
70 <a name="l00059"></a>00059 <span class="comment">/* fallback to the full topology cpuset */</span>
71 <a name="l00060"></a>00060 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
72 <a name="l00061"></a>00061
73 <a name="l00062"></a>00062 out:
74 <a name="l00063"></a>00063 <span class="keywordflow">return</span> 0;
75 <a name="l00064"></a>00064 }
76 <a name="l00065"></a>00065
77 <a name="l00072"></a>00072 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
78 <a name="l00073"></a><a class="code" href="a00065.html#ga2ff7763b9c2c5975f9a2e3d638351535">00073</a> <a class="code" href="a00065.html#ga2ff7763b9c2c5975f9a2e3d638351535" title="Get the CPU set of logical processors that are physically close to endpoint endpoint.">hwloc_mx_endpoint_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
79 <a name="l00074"></a>00074 mx_endpoint_t endpoint, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
80 <a name="l00075"></a>00075 {
81 <a name="l00076"></a>00076 uint64_t nid;
82 <a name="l00077"></a>00077 uint32_t nindex, eid;
83 <a name="l00078"></a>00078 mx_endpoint_addr_t eaddr;
84 <a name="l00079"></a>00079
85 <a name="l00080"></a>00080 <span class="keywordflow">if</span> (mx_get_endpoint_addr(endpoint, &amp;eaddr) != MX_SUCCESS) {
86 <a name="l00081"></a>00081 errno = EINVAL;
87 <a name="l00082"></a>00082 <span class="keywordflow">return</span> -1;
88 <a name="l00083"></a>00083 }
89 <a name="l00084"></a>00084
90 <a name="l00085"></a>00085 <span class="keywordflow">if</span> (mx_decompose_endpoint_addr(eaddr, &amp;nid, &amp;eid) != MX_SUCCESS) {
91 <a name="l00086"></a>00086 errno = EINVAL;
92 <a name="l00087"></a>00087 <span class="keywordflow">return</span> -1;
93 <a name="l00088"></a>00088 }
94 <a name="l00089"></a>00089
95 <a name="l00090"></a>00090 <span class="keywordflow">if</span> (mx_nic_id_to_board_number(nid, &amp;nindex) != MX_SUCCESS) {
96 <a name="l00091"></a>00091 errno = EINVAL;
97 <a name="l00092"></a>00092 <span class="keywordflow">return</span> -1;
98 <a name="l00093"></a>00093 }
99 <a name="l00094"></a>00094
100 <a name="l00095"></a>00095 <span class="keywordflow">return</span> <a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1" title="Get the CPU set of logical processors that are physically close the MX board id.">hwloc_mx_board_get_device_cpuset</a>(topology, nindex, <span class="keyword">set</span>);
101 <a name="l00096"></a>00096 }
102 <a name="l00097"></a>00097
103 <a name="l00101"></a>00101 <span class="preprocessor">#ifdef __cplusplus</span>
104 <a name="l00102"></a>00102 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
105 <a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
106 <a name="l00104"></a>00104 <span class="preprocessor"></span>
107 <a name="l00105"></a>00105
108 <a name="l00106"></a>00106 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_MYRIEXPRESS_H */</span>
56 <a name="l00024"></a>00024
57 <a name="l00025"></a>00025 <span class="preprocessor">#ifdef __cplusplus</span>
58 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
59 <a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
60 <a name="l00028"></a>00028 <span class="preprocessor"></span>
61 <a name="l00029"></a>00029
62 <a name="l00040"></a>00040 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
63 <a name="l00041"></a><a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1">00041</a> <a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1" title="Get the CPU set of logical processors that are physically close the MX board id.">hwloc_mx_board_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
64 <a name="l00042"></a>00042 <span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
65 <a name="l00043"></a>00043 {
66 <a name="l00044"></a>00044 uint32_t in, out;
67 <a name="l00045"></a>00045
68 <a name="l00046"></a>00046 in = id;
69 <a name="l00047"></a>00047 <span class="keywordflow">if</span> (mx_get_info(NULL, MX_NUMA_NODE, &amp;in, <span class="keyword">sizeof</span>(in), &amp;out, <span class="keyword">sizeof</span>(out)) != MX_SUCCESS) {
70 <a name="l00048"></a>00048 errno = EINVAL;
71 <a name="l00049"></a>00049 <span class="keywordflow">return</span> -1;
72 <a name="l00050"></a>00050 }
73 <a name="l00051"></a>00051
74 <a name="l00052"></a>00052 <span class="keywordflow">if</span> (out != (uint32_t) -1) {
75 <a name="l00053"></a>00053 <a class="code" href="a00012.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = NULL;
76 <a name="l00054"></a>00054 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00046.html#ga5f08ceb69375341e73563cfe2e77534e" title="Returns the next object of type type.">hwloc_get_next_obj_by_type</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>, obj)) != NULL)
77 <a name="l00055"></a>00055 <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="a00012.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a> == out) {
78 <a name="l00056"></a>00056 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, obj-&gt;<a class="code" href="a00012.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
79 <a name="l00057"></a>00057 <span class="keywordflow">goto</span> out;
80 <a name="l00058"></a>00058 }
81 <a name="l00059"></a>00059 }
82 <a name="l00060"></a>00060 <span class="comment">/* fallback to the full topology cpuset */</span>
83 <a name="l00061"></a>00061 <a class="code" href="a00056.html#gab14743355fa03b36cef521cbcd2fbf64" title="Copy the contents of bitmap src into the already allocated bitmap dst.">hwloc_bitmap_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00053.html#ga75f0ac3ac41e9915541c3ae3153a6e26" title="Get complete CPU set.">hwloc_topology_get_complete_cpuset</a>(topology));
84 <a name="l00062"></a>00062
85 <a name="l00063"></a>00063 out:
86 <a name="l00064"></a>00064 <span class="keywordflow">return</span> 0;
87 <a name="l00065"></a>00065 }
88 <a name="l00066"></a>00066
89 <a name="l00073"></a>00073 <span class="keyword">static</span> inline <span class="keywordtype">int</span>
90 <a name="l00074"></a><a class="code" href="a00065.html#ga2ff7763b9c2c5975f9a2e3d638351535">00074</a> <a class="code" href="a00065.html#ga2ff7763b9c2c5975f9a2e3d638351535" title="Get the CPU set of logical processors that are physically close to endpoint endpoint.">hwloc_mx_endpoint_get_device_cpuset</a>(<a class="code" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
91 <a name="l00075"></a>00075 mx_endpoint_t endpoint, <a class="code" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801" title="A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
92 <a name="l00076"></a>00076 {
93 <a name="l00077"></a>00077 uint64_t nid;
94 <a name="l00078"></a>00078 uint32_t nindex, eid;
95 <a name="l00079"></a>00079 mx_endpoint_addr_t eaddr;
96 <a name="l00080"></a>00080
97 <a name="l00081"></a>00081 <span class="keywordflow">if</span> (mx_get_endpoint_addr(endpoint, &amp;eaddr) != MX_SUCCESS) {
98 <a name="l00082"></a>00082 errno = EINVAL;
99 <a name="l00083"></a>00083 <span class="keywordflow">return</span> -1;
100 <a name="l00084"></a>00084 }
101 <a name="l00085"></a>00085
102 <a name="l00086"></a>00086 <span class="keywordflow">if</span> (mx_decompose_endpoint_addr(eaddr, &amp;nid, &amp;eid) != MX_SUCCESS) {
103 <a name="l00087"></a>00087 errno = EINVAL;
104 <a name="l00088"></a>00088 <span class="keywordflow">return</span> -1;
105 <a name="l00089"></a>00089 }
106 <a name="l00090"></a>00090
107 <a name="l00091"></a>00091 <span class="keywordflow">if</span> (mx_nic_id_to_board_number(nid, &amp;nindex) != MX_SUCCESS) {
108 <a name="l00092"></a>00092 errno = EINVAL;
109 <a name="l00093"></a>00093 <span class="keywordflow">return</span> -1;
110 <a name="l00094"></a>00094 }
111 <a name="l00095"></a>00095
112 <a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="a00065.html#ga87f4746d0cad579ce4e86b98088f22a1" title="Get the CPU set of logical processors that are physically close the MX board id.">hwloc_mx_board_get_device_cpuset</a>(topology, nindex, <span class="keyword">set</span>);
113 <a name="l00097"></a>00097 }
114 <a name="l00098"></a>00098
115 <a name="l00102"></a>00102 <span class="preprocessor">#ifdef __cplusplus</span>
116 <a name="l00103"></a>00103 <span class="preprocessor"></span>} <span class="comment">/* extern &quot;C&quot; */</span>
117 <a name="l00104"></a>00104 <span class="preprocessor">#endif</span>
118 <a name="l00105"></a>00105 <span class="preprocessor"></span>
119 <a name="l00106"></a>00106
120 <a name="l00107"></a>00107 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_MYRIEXPRESS_H */</span>
109121 </pre></div></div>
110122 </div>
111 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
123 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
112124 <a href="http://www.doxygen.org/index.html">
113 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
125 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
114126 </body>
115127 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
3142 <a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS</span>
3243 <a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
3344 <a name="l00004"></a>00004 <span class="comment"> * Copyright © 2009-2010 Université Bordeaux 1</span>
34 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009 Cisco Systems, Inc. All rights reserved.</span>
45 <a name="l00005"></a>00005 <span class="comment"> * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.</span>
3546 <a name="l00006"></a>00006 <span class="comment"> * See COPYING in top-level directory.</span>
3647 <a name="l00007"></a>00007 <span class="comment"> */</span>
3748 <a name="l00008"></a>00008
3950 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_OPENFABRICS_VERBS_H</span>
4051 <a name="l00021"></a>00021 <span class="preprocessor"></span>
4152 <a name="l00022"></a>00022 <span class="preprocessor">#include &lt;hwloc.h&gt;</span>
42 <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;hwloc/config.h&gt;</span>
53 <a name="l00023"></a>00023 <span class="preprocessor">#include &lt;hwloc/autogen/config.h&gt;</span>
4354 <a name="l00024"></a>00024 <span class="preprocessor">#include &lt;hwloc/linux.h&gt;</span>
4455 <a name="l00025"></a>00025
4556 <a name="l00026"></a>00026 <span class="preprocessor">#include &lt;infiniband/verbs.h&gt;</span>
8596 <a name="l00081"></a>00081 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_OPENFABRICS_VERBS_H */</span>
8697 </pre></div></div>
8798 </div>
88 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
99 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
89100 <a href="http://www.doxygen.org/index.html">
90 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
101 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
91102 </body>
92103 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
5970 <td class="memname"> unsigned hwloc_get_api_version </td>
6071 <td>(</td>
6172 <td class="paramtype">void&#160;</td>
62 <td class="paramname">&#160;)</td>
73 <td class="paramname"></td><td>)</td>
6374 <td></td>
6475 </tr>
6576 </table>
7182 </div>
7283 </div>
7384 </div>
74 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
85 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7586 <a href="http://www.doxygen.org/index.html">
76 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
87 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7788 </body>
7889 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4859 </div>
4960 </div>
5061 </div>
51 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
62 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
5263 <a href="http://www.doxygen.org/index.html">
53 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
64 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5465 </body>
5566 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
102113 </div>
103114 </div>
104115 </div>
105 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
116 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
106117 <a href="http://www.doxygen.org/index.html">
107 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
118 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
108119 </body>
109120 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
128139 <td class="memname"> int hwloc_compare_types </td>
129140 <td>(</td>
130141 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
131 <td class="paramname"> <em>type1</em>, </td>
142 <td class="paramname"><em>type1</em>, </td>
132143 </tr>
133144 <tr>
134145 <td class="paramkey"></td>
135146 <td></td>
136147 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
137 <td class="paramname"> <em>type2</em>&#160;</td>
148 <td class="paramname"><em>type2</em>&#160;</td>
138149 </tr>
139150 <tr>
140151 <td></td>
154165 </div>
155166 </div>
156167 </div>
157 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
168 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
158169 <a href="http://www.doxygen.org/index.html">
159 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
170 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
160171 </body>
161172 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
5869 </div>
5970 </div>
6071 </div>
61 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
72 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
6273 <a href="http://www.doxygen.org/index.html">
63 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
74 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
6475 </body>
6576 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname"> void hwloc_topology_check </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>&#160;)</td>
56 <td class="paramname"><em>topology</em></td><td>)</td>
4657 <td></td>
4758 </tr>
4859 </table>
6778 <td class="memname"> void hwloc_topology_destroy </td>
6879 <td>(</td>
6980 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
70 <td class="paramname"> <em>topology</em>&#160;)</td>
81 <td class="paramname"><em>topology</em></td><td>)</td>
7182 <td></td>
7283 </tr>
7384 </table>
92103 <td class="memname"> int hwloc_topology_init </td>
93104 <td>(</td>
94105 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> *&#160;</td>
95 <td class="paramname"> <em>topologyp</em>&#160;)</td>
106 <td class="paramname"><em>topologyp</em></td><td>)</td>
96107 <td></td>
97108 </tr>
98109 </table>
118129 <td class="memname"> int hwloc_topology_load </td>
119130 <td>(</td>
120131 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
121 <td class="paramname"> <em>topology</em>&#160;)</td>
132 <td class="paramname"><em>topology</em></td><td>)</td>
122133 <td></td>
123134 </tr>
124135 </table>
139150 </div>
140151 </div>
141152 </div>
142 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
153 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
143154 <a href="http://www.doxygen.org/index.html">
144 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
155 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
145156 </body>
146157 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
101112 <td class="memname"> struct <a class="el" href="a00020.html">hwloc_topology_support</a>* hwloc_topology_get_support </td>
102113 <td>(</td>
103114 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
104 <td class="paramname"> <em>topology</em>&#160;)</td>
115 <td class="paramname"><em>topology</em></td><td>)</td>
105116 <td><code> [read]</code></td>
106117 </tr>
107118 </table>
120131 <td class="memname"> int hwloc_topology_ignore_all_keep_structure </td>
121132 <td>(</td>
122133 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
123 <td class="paramname"> <em>topology</em>&#160;)</td>
134 <td class="paramname"><em>topology</em></td><td>)</td>
124135 <td></td>
125136 </tr>
126137 </table>
140151 <td class="memname"> int hwloc_topology_ignore_type </td>
141152 <td>(</td>
142153 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
143 <td class="paramname"> <em>topology</em>, </td>
154 <td class="paramname"><em>topology</em>, </td>
144155 </tr>
145156 <tr>
146157 <td class="paramkey"></td>
147158 <td></td>
148159 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
149 <td class="paramname"> <em>type</em>&#160;</td>
160 <td class="paramname"><em>type</em>&#160;</td>
150161 </tr>
151162 <tr>
152163 <td></td>
170181 <td class="memname"> int hwloc_topology_ignore_type_keep_structure </td>
171182 <td>(</td>
172183 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
173 <td class="paramname"> <em>topology</em>, </td>
184 <td class="paramname"><em>topology</em>, </td>
174185 </tr>
175186 <tr>
176187 <td class="paramkey"></td>
177188 <td></td>
178189 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
179 <td class="paramname"> <em>type</em>&#160;</td>
190 <td class="paramname"><em>type</em>&#160;</td>
180191 </tr>
181192 <tr>
182193 <td></td>
200211 <td class="memname"> int hwloc_topology_set_flags </td>
201212 <td>(</td>
202213 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
203 <td class="paramname"> <em>topology</em>, </td>
214 <td class="paramname"><em>topology</em>, </td>
204215 </tr>
205216 <tr>
206217 <td class="paramkey"></td>
207218 <td></td>
208219 <td class="paramtype">unsigned long&#160;</td>
209 <td class="paramname"> <em>flags</em>&#160;</td>
220 <td class="paramname"><em>flags</em>&#160;</td>
210221 </tr>
211222 <tr>
212223 <td></td>
218229 <div class="memdoc">
219230
220231 <p>Set OR'ed flags to non-yet-loaded topology. </p>
221 <p>Set a OR'ed set of hwloc_topology_flags_e onto a topology that was not yet loaded. </p>
232 <p>Set a OR'ed set of <a class="el" href="a00038.html#gada025d3ec20b4b420f8038d23d6e7bde" title="Flags to be set onto a topology context before load.">hwloc_topology_flags_e</a> onto a topology that was not yet loaded. </p>
222233
223234 </div>
224235 </div>
230241 <td class="memname"> int hwloc_topology_set_fsroot </td>
231242 <td>(</td>
232243 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
233 <td class="paramname"> <em>topology</em>, </td>
244 <td class="paramname"><em>topology</em>, </td>
234245 </tr>
235246 <tr>
236247 <td class="paramkey"></td>
237248 <td></td>
238249 <td class="paramtype">const char *restrict&#160;</td>
239 <td class="paramname"> <em>fsroot_path</em>&#160;</td>
250 <td class="paramname"><em>fsroot_path</em>&#160;</td>
240251 </tr>
241252 <tr>
242253 <td></td>
261272 <td class="memname"> int hwloc_topology_set_pid </td>
262273 <td>(</td>
263274 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
264 <td class="paramname"> <em>topology</em>, </td>
275 <td class="paramname"><em>topology</em>, </td>
265276 </tr>
266277 <tr>
267278 <td class="paramkey"></td>
268279 <td></td>
269280 <td class="paramtype">hwloc_pid_t&#160;</td>
270 <td class="paramname"> <em>pid</em>&#160;</td>
281 <td class="paramname"><em>pid</em>&#160;</td>
271282 </tr>
272283 <tr>
273284 <td></td>
294305 <td class="memname"> int hwloc_topology_set_synthetic </td>
295306 <td>(</td>
296307 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
297 <td class="paramname"> <em>topology</em>, </td>
308 <td class="paramname"><em>topology</em>, </td>
298309 </tr>
299310 <tr>
300311 <td class="paramkey"></td>
301312 <td></td>
302313 <td class="paramtype">const char *restrict&#160;</td>
303 <td class="paramname"> <em>description</em>&#160;</td>
314 <td class="paramname"><em>description</em>&#160;</td>
304315 </tr>
305316 <tr>
306317 <td></td>
312323 <div class="memdoc">
313324
314325 <p>Enable synthetic topology. </p>
315 <p>Gather topology information from the given <code>description</code> 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.</p>
326 <p>Gather topology information from the given <code>description</code> which should be a space-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.</p>
327 <p>If <code>description</code> was properly parsed and describes a valid topology configuration, this function returns 0. Otherwise -1 is returned and errno is set to EINVAL.</p>
316328 <dl class="note"><dt><b>Note:</b></dt><dd>For conveniency, this backend provides empty binding hooks which just return success. </dd></dl>
317329
318330 </div>
325337 <td class="memname"> int hwloc_topology_set_xml </td>
326338 <td>(</td>
327339 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
328 <td class="paramname"> <em>topology</em>, </td>
340 <td class="paramname"><em>topology</em>, </td>
329341 </tr>
330342 <tr>
331343 <td class="paramkey"></td>
332344 <td></td>
333345 <td class="paramtype">const char *restrict&#160;</td>
334 <td class="paramname"> <em>xmlpath</em>&#160;</td>
346 <td class="paramname"><em>xmlpath</em>&#160;</td>
335347 </tr>
336348 <tr>
337349 <td></td>
356368 <td class="memname"> int hwloc_topology_set_xmlbuffer </td>
357369 <td>(</td>
358370 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
359 <td class="paramname"> <em>topology</em>, </td>
371 <td class="paramname"><em>topology</em>, </td>
360372 </tr>
361373 <tr>
362374 <td class="paramkey"></td>
363375 <td></td>
364376 <td class="paramtype">const char *restrict&#160;</td>
365 <td class="paramname"> <em>buffer</em>, </td>
377 <td class="paramname"><em>buffer</em>, </td>
366378 </tr>
367379 <tr>
368380 <td class="paramkey"></td>
369381 <td></td>
370382 <td class="paramtype">int&#160;</td>
371 <td class="paramname"> <em>size</em>&#160;</td>
383 <td class="paramname"><em>size</em>&#160;</td>
372384 </tr>
373385 <tr>
374386 <td></td>
385397 </div>
386398 </div>
387399 </div>
388 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
400 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
389401 <a href="http://www.doxygen.org/index.html">
390 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
402 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
391403 </body>
392404 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname"> void hwloc_topology_export_xml </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype">const char *&#160;</td>
51 <td class="paramname"> <em>xmlpath</em>&#160;</td>
62 <td class="paramname"><em>xmlpath</em>&#160;</td>
5263 </tr>
5364 <tr>
5465 <td></td>
7283 <td class="memname"> void hwloc_topology_export_xmlbuffer </td>
7384 <td>(</td>
7485 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
75 <td class="paramname"> <em>topology</em>, </td>
86 <td class="paramname"><em>topology</em>, </td>
7687 </tr>
7788 <tr>
7889 <td class="paramkey"></td>
7990 <td></td>
8091 <td class="paramtype">char **&#160;</td>
81 <td class="paramname"> <em>xmlbuffer</em>, </td>
92 <td class="paramname"><em>xmlbuffer</em>, </td>
8293 </tr>
8394 <tr>
8495 <td class="paramkey"></td>
8596 <td></td>
8697 <td class="paramtype">int *&#160;</td>
87 <td class="paramname"> <em>buflen</em>&#160;</td>
98 <td class="paramname"><em>buflen</em>&#160;</td>
8899 </tr>
89100 <tr>
90101 <td></td>
109120 <td class="memname"> <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_topology_insert_misc_object_by_cpuset </td>
110121 <td>(</td>
111122 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
112 <td class="paramname"> <em>topology</em>, </td>
123 <td class="paramname"><em>topology</em>, </td>
113124 </tr>
114125 <tr>
115126 <td class="paramkey"></td>
116127 <td></td>
117128 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
118 <td class="paramname"> <em>cpuset</em>, </td>
129 <td class="paramname"><em>cpuset</em>, </td>
119130 </tr>
120131 <tr>
121132 <td class="paramkey"></td>
122133 <td></td>
123134 <td class="paramtype">const char *&#160;</td>
124 <td class="paramname"> <em>name</em>&#160;</td>
135 <td class="paramname"><em>name</em>&#160;</td>
125136 </tr>
126137 <tr>
127138 <td></td>
147158 <td class="memname"> <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_topology_insert_misc_object_by_parent </td>
148159 <td>(</td>
149160 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
150 <td class="paramname"> <em>topology</em>, </td>
161 <td class="paramname"><em>topology</em>, </td>
151162 </tr>
152163 <tr>
153164 <td class="paramkey"></td>
154165 <td></td>
155166 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
156 <td class="paramname"> <em>parent</em>, </td>
167 <td class="paramname"><em>parent</em>, </td>
157168 </tr>
158169 <tr>
159170 <td class="paramkey"></td>
160171 <td></td>
161172 <td class="paramtype">const char *&#160;</td>
162 <td class="paramname"> <em>name</em>&#160;</td>
173 <td class="paramname"><em>name</em>&#160;</td>
163174 </tr>
164175 <tr>
165176 <td></td>
178189 </div>
179190 </div>
180191 </div>
181 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
192 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
182193 <a href="http://www.doxygen.org/index.html">
183 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
194 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
184195 </body>
185196 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
7586 <td class="memname"> <a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> hwloc_get_depth_type </td>
7687 <td>(</td>
7788 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
78 <td class="paramname"> <em>topology</em>, </td>
89 <td class="paramname"><em>topology</em>, </td>
7990 </tr>
8091 <tr>
8192 <td class="paramkey"></td>
8293 <td></td>
8394 <td class="paramtype">unsigned&#160;</td>
84 <td class="paramname"> <em>depth</em>&#160;</td>
95 <td class="paramname"><em>depth</em>&#160;</td>
8596 </tr>
8697 <tr>
8798 <td></td>
105116 <td class="memname"> unsigned hwloc_get_nbobjs_by_depth </td>
106117 <td>(</td>
107118 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
108 <td class="paramname"> <em>topology</em>, </td>
119 <td class="paramname"><em>topology</em>, </td>
109120 </tr>
110121 <tr>
111122 <td class="paramkey"></td>
112123 <td></td>
113124 <td class="paramtype">unsigned&#160;</td>
114 <td class="paramname"> <em>depth</em>&#160;</td>
125 <td class="paramname"><em>depth</em>&#160;</td>
115126 </tr>
116127 <tr>
117128 <td></td>
134145 <td class="memname">static inline int hwloc_get_nbobjs_by_type </td>
135146 <td>(</td>
136147 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
137 <td class="paramname"> <em>topology</em>, </td>
148 <td class="paramname"><em>topology</em>, </td>
138149 </tr>
139150 <tr>
140151 <td class="paramkey"></td>
141152 <td></td>
142153 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
143 <td class="paramname"> <em>type</em>&#160;</td>
154 <td class="paramname"><em>type</em>&#160;</td>
144155 </tr>
145156 <tr>
146157 <td></td>
164175 <td class="memname"> int hwloc_get_type_depth </td>
165176 <td>(</td>
166177 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
167 <td class="paramname"> <em>topology</em>, </td>
178 <td class="paramname"><em>topology</em>, </td>
168179 </tr>
169180 <tr>
170181 <td class="paramkey"></td>
171182 <td></td>
172183 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
173 <td class="paramname"> <em>type</em>&#160;</td>
184 <td class="paramname"><em>type</em>&#160;</td>
174185 </tr>
175186 <tr>
176187 <td></td>
183194
184195 <p>Returns the depth of objects of type <code>type</code>. </p>
185196 <p>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.</p>
186 <p>If type is absent but a similar type is acceptable, see also <a class="el" href="a00045.html#ga0ffafb4c0ae13b9a7541ca820ca34883" title="Returns the depth of objects of type type or below.">hwloc_get_type_or_below_depth()</a> and <a class="el" href="a00045.html#ga24b9cd5917fcebac6e45ae38d0a6cda4" title="Returns the depth of objects of type type or above.">hwloc_get_type_or_above_depth()</a>. </p>
197 <p>If type is absent but a similar type is acceptable, see also <a class="el" href="a00045.html#ga0ffafb4c0ae13b9a7541ca820ca34883" title="Returns the depth of objects of type type or below.">hwloc_get_type_or_below_depth()</a> and <a class="el" href="a00045.html#ga24b9cd5917fcebac6e45ae38d0a6cda4" title="Returns the depth of objects of type type or above.">hwloc_get_type_or_above_depth()</a>.</p>
198 <p>If some objects of the given type exist in different levels, for instance L1 and L2 caches, the function returns HWLOC_TYPE_DEPTH_MULTIPLE. </p>
187199
188200 </div>
189201 </div>
195207 <td class="memname"> unsigned hwloc_topology_get_depth </td>
196208 <td>(</td>
197209 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
198 <td class="paramname"> <em>topology</em>&#160;)</td>
210 <td class="paramname"><em>topology</em></td><td>)</td>
199211 <td></td>
200212 </tr>
201213 </table>
215227 <td class="memname"> int hwloc_topology_is_thissystem </td>
216228 <td>(</td>
217229 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> restrict&#160;</td>
218 <td class="paramname"> <em>topology</em>&#160;)</td>
230 <td class="paramname"><em>topology</em></td><td>)</td>
219231 <td></td>
220232 </tr>
221233 </table>
230242 </div>
231243 </div>
232244 </div>
233 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
245 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
234246 <a href="http://www.doxygen.org/index.html">
235 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
247 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
236248 </body>
237249 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname"> <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_by_depth </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype">unsigned&#160;</td>
51 <td class="paramname"> <em>depth</em>, </td>
62 <td class="paramname"><em>depth</em>, </td>
5263 </tr>
5364 <tr>
5465 <td class="paramkey"></td>
5566 <td></td>
5667 <td class="paramtype">unsigned&#160;</td>
57 <td class="paramname"> <em>idx</em>&#160;</td>
68 <td class="paramname"><em>idx</em>&#160;</td>
5869 </tr>
5970 <tr>
6071 <td></td>
7788 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_by_type </td>
7889 <td>(</td>
7990 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
80 <td class="paramname"> <em>topology</em>, </td>
91 <td class="paramname"><em>topology</em>, </td>
8192 </tr>
8293 <tr>
8394 <td class="paramkey"></td>
8495 <td></td>
8596 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
86 <td class="paramname"> <em>type</em>, </td>
97 <td class="paramname"><em>type</em>, </td>
8798 </tr>
8899 <tr>
89100 <td class="paramkey"></td>
90101 <td></td>
91102 <td class="paramtype">unsigned&#160;</td>
92 <td class="paramname"> <em>idx</em>&#160;</td>
103 <td class="paramname"><em>idx</em>&#160;</td>
93104 </tr>
94105 <tr>
95106 <td></td>
106117 </div>
107118 </div>
108119 </div>
109 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
120 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
110121 <a href="http://www.doxygen.org/index.html">
111 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
122 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
112123 </body>
113124 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4657 <td class="memname"> int hwloc_obj_attr_snprintf </td>
4758 <td>(</td>
4859 <td class="paramtype">char *restrict&#160;</td>
49 <td class="paramname"> <em>string</em>, </td>
50 </tr>
51 <tr>
52 <td class="paramkey"></td>
53 <td></td>
54 <td class="paramtype">size_t&#160;</td>
55 <td class="paramname"> <em>size</em>, </td>
60 <td class="paramname"><em>string</em>, </td>
61 </tr>
62 <tr>
63 <td class="paramkey"></td>
64 <td></td>
65 <td class="paramtype">size_t&#160;</td>
66 <td class="paramname"><em>size</em>, </td>
5667 </tr>
5768 <tr>
5869 <td class="paramkey"></td>
5970 <td></td>
6071 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
61 <td class="paramname"> <em>obj</em>, </td>
72 <td class="paramname"><em>obj</em>, </td>
6273 </tr>
6374 <tr>
6475 <td class="paramkey"></td>
6576 <td></td>
6677 <td class="paramtype">const char *restrict&#160;</td>
67 <td class="paramname"> <em>separator</em>, </td>
78 <td class="paramname"><em>separator</em>, </td>
6879 </tr>
6980 <tr>
7081 <td class="paramkey"></td>
7182 <td></td>
7283 <td class="paramtype">int&#160;</td>
73 <td class="paramname"> <em>verbose</em>&#160;</td>
84 <td class="paramname"><em>verbose</em>&#160;</td>
7485 </tr>
7586 <tr>
7687 <td></td>
97108 <td class="memname"> int hwloc_obj_cpuset_snprintf </td>
98109 <td>(</td>
99110 <td class="paramtype">char *restrict&#160;</td>
100 <td class="paramname"> <em>str</em>, </td>
101 </tr>
102 <tr>
103 <td class="paramkey"></td>
104 <td></td>
105 <td class="paramtype">size_t&#160;</td>
106 <td class="paramname"> <em>size</em>, </td>
107 </tr>
108 <tr>
109 <td class="paramkey"></td>
110 <td></td>
111 <td class="paramtype">size_t&#160;</td>
112 <td class="paramname"> <em>nobj</em>, </td>
111 <td class="paramname"><em>str</em>, </td>
112 </tr>
113 <tr>
114 <td class="paramkey"></td>
115 <td></td>
116 <td class="paramtype">size_t&#160;</td>
117 <td class="paramname"><em>size</em>, </td>
118 </tr>
119 <tr>
120 <td class="paramkey"></td>
121 <td></td>
122 <td class="paramtype">size_t&#160;</td>
123 <td class="paramname"><em>nobj</em>, </td>
113124 </tr>
114125 <tr>
115126 <td class="paramkey"></td>
116127 <td></td>
117128 <td class="paramtype">const <a class="el" href="a00012.html">hwloc_obj_t</a> *restrict&#160;</td>
118 <td class="paramname"> <em>objs</em>&#160;</td>
129 <td class="paramname"><em>objs</em>&#160;</td>
119130 </tr>
120131 <tr>
121132 <td></td>
140151 <td class="memname">static inline char* hwloc_obj_get_info_by_name </td>
141152 <td>(</td>
142153 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
143 <td class="paramname"> <em>obj</em>, </td>
154 <td class="paramname"><em>obj</em>, </td>
144155 </tr>
145156 <tr>
146157 <td class="paramkey"></td>
147158 <td></td>
148159 <td class="paramtype">const char *&#160;</td>
149 <td class="paramname"> <em>name</em>&#160;</td>
160 <td class="paramname"><em>name</em>&#160;</td>
150161 </tr>
151162 <tr>
152163 <td></td>
170181 <td class="memname"> int hwloc_obj_snprintf </td>
171182 <td>(</td>
172183 <td class="paramtype">char *restrict&#160;</td>
173 <td class="paramname"> <em>string</em>, </td>
174 </tr>
175 <tr>
176 <td class="paramkey"></td>
177 <td></td>
178 <td class="paramtype">size_t&#160;</td>
179 <td class="paramname"> <em>size</em>, </td>
184 <td class="paramname"><em>string</em>, </td>
185 </tr>
186 <tr>
187 <td class="paramkey"></td>
188 <td></td>
189 <td class="paramtype">size_t&#160;</td>
190 <td class="paramname"><em>size</em>, </td>
180191 </tr>
181192 <tr>
182193 <td class="paramkey"></td>
183194 <td></td>
184195 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
185 <td class="paramname"> <em>topology</em>, </td>
196 <td class="paramname"><em>topology</em>, </td>
186197 </tr>
187198 <tr>
188199 <td class="paramkey"></td>
189200 <td></td>
190201 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
191 <td class="paramname"> <em>obj</em>, </td>
202 <td class="paramname"><em>obj</em>, </td>
192203 </tr>
193204 <tr>
194205 <td class="paramkey"></td>
195206 <td></td>
196207 <td class="paramtype">const char *restrict&#160;</td>
197 <td class="paramname"> <em>indexprefix</em>, </td>
208 <td class="paramname"><em>indexprefix</em>, </td>
198209 </tr>
199210 <tr>
200211 <td class="paramkey"></td>
201212 <td></td>
202213 <td class="paramtype">int&#160;</td>
203 <td class="paramname"> <em>verbose</em>&#160;</td>
214 <td class="paramname"><em>verbose</em>&#160;</td>
204215 </tr>
205216 <tr>
206217 <td></td>
229240 <td class="memname"> <a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> hwloc_obj_type_of_string </td>
230241 <td>(</td>
231242 <td class="paramtype">const char *&#160;</td>
232 <td class="paramname"> <em>string</em>&#160;)</td>
243 <td class="paramname"><em>string</em></td><td>)</td>
233244 <td></td>
234245 </tr>
235246 </table>
249260 <td class="memname"> int hwloc_obj_type_snprintf </td>
250261 <td>(</td>
251262 <td class="paramtype">char *restrict&#160;</td>
252 <td class="paramname"> <em>string</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype">size_t&#160;</td>
258 <td class="paramname"> <em>size</em>, </td>
263 <td class="paramname"><em>string</em>, </td>
264 </tr>
265 <tr>
266 <td class="paramkey"></td>
267 <td></td>
268 <td class="paramtype">size_t&#160;</td>
269 <td class="paramname"><em>size</em>, </td>
259270 </tr>
260271 <tr>
261272 <td class="paramkey"></td>
262273 <td></td>
263274 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
264 <td class="paramname"> <em>obj</em>, </td>
275 <td class="paramname"><em>obj</em>, </td>
265276 </tr>
266277 <tr>
267278 <td class="paramkey"></td>
268279 <td></td>
269280 <td class="paramtype">int&#160;</td>
270 <td class="paramname"> <em>verbose</em>&#160;</td>
281 <td class="paramname"><em>verbose</em>&#160;</td>
271282 </tr>
272283 <tr>
273284 <td></td>
293304 <td class="memname"> const char* hwloc_obj_type_string </td>
294305 <td>(</td>
295306 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
296 <td class="paramname"> <em>type</em>&#160;)</td>
307 <td class="paramname"><em>type</em></td><td>)</td>
297308 <td> const</td>
298309 </tr>
299310 </table>
305316 </div>
306317 </div>
307318 </div>
308 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
319 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
309320 <a href="http://www.doxygen.org/index.html">
310 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
321 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
311322 </body>
312323 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
103114 <td class="memname"> int hwloc_get_cpubind </td>
104115 <td>(</td>
105116 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
106 <td class="paramname"> <em>topology</em>, </td>
117 <td class="paramname"><em>topology</em>, </td>
107118 </tr>
108119 <tr>
109120 <td class="paramkey"></td>
110121 <td></td>
111122 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
112 <td class="paramname"> <em>set</em>, </td>
113 </tr>
114 <tr>
115 <td class="paramkey"></td>
116 <td></td>
117 <td class="paramtype">int&#160;</td>
118 <td class="paramname"> <em>flags</em>&#160;</td>
123 <td class="paramname"><em>set</em>, </td>
124 </tr>
125 <tr>
126 <td class="paramkey"></td>
127 <td></td>
128 <td class="paramtype">int&#160;</td>
129 <td class="paramname"><em>flags</em>&#160;</td>
119130 </tr>
120131 <tr>
121132 <td></td>
138149 <td class="memname"> int hwloc_get_proc_cpubind </td>
139150 <td>(</td>
140151 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
141 <td class="paramname"> <em>topology</em>, </td>
152 <td class="paramname"><em>topology</em>, </td>
142153 </tr>
143154 <tr>
144155 <td class="paramkey"></td>
145156 <td></td>
146157 <td class="paramtype">hwloc_pid_t&#160;</td>
147 <td class="paramname"> <em>pid</em>, </td>
158 <td class="paramname"><em>pid</em>, </td>
148159 </tr>
149160 <tr>
150161 <td class="paramkey"></td>
151162 <td></td>
152163 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
153 <td class="paramname"> <em>set</em>, </td>
154 </tr>
155 <tr>
156 <td class="paramkey"></td>
157 <td></td>
158 <td class="paramtype">int&#160;</td>
159 <td class="paramname"> <em>flags</em>&#160;</td>
164 <td class="paramname"><em>set</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">int&#160;</td>
170 <td class="paramname"><em>flags</em>&#160;</td>
160171 </tr>
161172 <tr>
162173 <td></td>
182193 <td class="memname"> int hwloc_get_thread_cpubind </td>
183194 <td>(</td>
184195 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
185 <td class="paramname"> <em>topology</em>, </td>
196 <td class="paramname"><em>topology</em>, </td>
186197 </tr>
187198 <tr>
188199 <td class="paramkey"></td>
189200 <td></td>
190201 <td class="paramtype">hwloc_thread_t&#160;</td>
191 <td class="paramname"> <em>tid</em>, </td>
202 <td class="paramname"><em>tid</em>, </td>
192203 </tr>
193204 <tr>
194205 <td class="paramkey"></td>
195206 <td></td>
196207 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
197 <td class="paramname"> <em>set</em>, </td>
198 </tr>
199 <tr>
200 <td class="paramkey"></td>
201 <td></td>
202 <td class="paramtype">int&#160;</td>
203 <td class="paramname"> <em>flags</em>&#160;</td>
208 <td class="paramname"><em>set</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype">int&#160;</td>
214 <td class="paramname"><em>flags</em>&#160;</td>
204215 </tr>
205216 <tr>
206217 <td></td>
226237 <td class="memname"> int hwloc_set_cpubind </td>
227238 <td>(</td>
228239 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
229 <td class="paramname"> <em>topology</em>, </td>
240 <td class="paramname"><em>topology</em>, </td>
230241 </tr>
231242 <tr>
232243 <td class="paramkey"></td>
233244 <td></td>
234245 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
235 <td class="paramname"> <em>set</em>, </td>
236 </tr>
237 <tr>
238 <td class="paramkey"></td>
239 <td></td>
240 <td class="paramtype">int&#160;</td>
241 <td class="paramname"> <em>flags</em>&#160;</td>
246 <td class="paramname"><em>set</em>, </td>
247 </tr>
248 <tr>
249 <td class="paramkey"></td>
250 <td></td>
251 <td class="paramtype">int&#160;</td>
252 <td class="paramname"><em>flags</em>&#160;</td>
242253 </tr>
243254 <tr>
244255 <td></td>
264275 <td class="memname"> int hwloc_set_proc_cpubind </td>
265276 <td>(</td>
266277 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
267 <td class="paramname"> <em>topology</em>, </td>
278 <td class="paramname"><em>topology</em>, </td>
268279 </tr>
269280 <tr>
270281 <td class="paramkey"></td>
271282 <td></td>
272283 <td class="paramtype">hwloc_pid_t&#160;</td>
273 <td class="paramname"> <em>pid</em>, </td>
284 <td class="paramname"><em>pid</em>, </td>
274285 </tr>
275286 <tr>
276287 <td class="paramkey"></td>
277288 <td></td>
278289 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
279 <td class="paramname"> <em>set</em>, </td>
280 </tr>
281 <tr>
282 <td class="paramkey"></td>
283 <td></td>
284 <td class="paramtype">int&#160;</td>
285 <td class="paramname"> <em>flags</em>&#160;</td>
290 <td class="paramname"><em>set</em>, </td>
291 </tr>
292 <tr>
293 <td class="paramkey"></td>
294 <td></td>
295 <td class="paramtype">int&#160;</td>
296 <td class="paramname"><em>flags</em>&#160;</td>
286297 </tr>
287298 <tr>
288299 <td></td>
308319 <td class="memname"> int hwloc_set_thread_cpubind </td>
309320 <td>(</td>
310321 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
311 <td class="paramname"> <em>topology</em>, </td>
322 <td class="paramname"><em>topology</em>, </td>
312323 </tr>
313324 <tr>
314325 <td class="paramkey"></td>
315326 <td></td>
316327 <td class="paramtype">hwloc_thread_t&#160;</td>
317 <td class="paramname"> <em>tid</em>, </td>
328 <td class="paramname"><em>tid</em>, </td>
318329 </tr>
319330 <tr>
320331 <td class="paramkey"></td>
321332 <td></td>
322333 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
323 <td class="paramname"> <em>set</em>, </td>
324 </tr>
325 <tr>
326 <td class="paramkey"></td>
327 <td></td>
328 <td class="paramtype">int&#160;</td>
329 <td class="paramname"> <em>flags</em>&#160;</td>
334 <td class="paramname"><em>set</em>, </td>
335 </tr>
336 <tr>
337 <td class="paramkey"></td>
338 <td></td>
339 <td class="paramtype">int&#160;</td>
340 <td class="paramname"><em>flags</em>&#160;</td>
330341 </tr>
331342 <tr>
332343 <td></td>
345356 </div>
346357 </div>
347358 </div>
348 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
359 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
349360 <a href="http://www.doxygen.org/index.html">
350 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
361 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
351362 </body>
352363 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
167178 <td class="memname"> void* hwloc_alloc </td>
168179 <td>(</td>
169180 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
170 <td class="paramname"> <em>topology</em>, </td>
181 <td class="paramname"><em>topology</em>, </td>
171182 </tr>
172183 <tr>
173184 <td class="paramkey"></td>
174185 <td></td>
175186 <td class="paramtype">size_t&#160;</td>
176 <td class="paramname"> <em>len</em>&#160;</td>
187 <td class="paramname"><em>len</em>&#160;</td>
177188 </tr>
178189 <tr>
179190 <td></td>
198209 <td class="memname"> void* hwloc_alloc_membind </td>
199210 <td>(</td>
200211 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
201 <td class="paramname"> <em>topology</em>, </td>
212 <td class="paramname"><em>topology</em>, </td>
202213 </tr>
203214 <tr>
204215 <td class="paramkey"></td>
205216 <td></td>
206217 <td class="paramtype">size_t&#160;</td>
207 <td class="paramname"> <em>len</em>, </td>
218 <td class="paramname"><em>len</em>, </td>
208219 </tr>
209220 <tr>
210221 <td class="paramkey"></td>
211222 <td></td>
212223 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
213 <td class="paramname"> <em>cpuset</em>, </td>
224 <td class="paramname"><em>cpuset</em>, </td>
214225 </tr>
215226 <tr>
216227 <td class="paramkey"></td>
217228 <td></td>
218229 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
219 <td class="paramname"> <em>policy</em>, </td>
220 </tr>
221 <tr>
222 <td class="paramkey"></td>
223 <td></td>
224 <td class="paramtype">int&#160;</td>
225 <td class="paramname"> <em>flags</em>&#160;</td>
230 <td class="paramname"><em>policy</em>, </td>
231 </tr>
232 <tr>
233 <td class="paramkey"></td>
234 <td></td>
235 <td class="paramtype">int&#160;</td>
236 <td class="paramname"><em>flags</em>&#160;</td>
226237 </tr>
227238 <tr>
228239 <td></td>
249260 <td class="memname"> void* hwloc_alloc_membind_nodeset </td>
250261 <td>(</td>
251262 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
252 <td class="paramname"> <em>topology</em>, </td>
263 <td class="paramname"><em>topology</em>, </td>
253264 </tr>
254265 <tr>
255266 <td class="paramkey"></td>
256267 <td></td>
257268 <td class="paramtype">size_t&#160;</td>
258 <td class="paramname"> <em>len</em>, </td>
269 <td class="paramname"><em>len</em>, </td>
259270 </tr>
260271 <tr>
261272 <td class="paramkey"></td>
262273 <td></td>
263274 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
264 <td class="paramname"> <em>nodeset</em>, </td>
275 <td class="paramname"><em>nodeset</em>, </td>
265276 </tr>
266277 <tr>
267278 <td class="paramkey"></td>
268279 <td></td>
269280 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
270 <td class="paramname"> <em>policy</em>, </td>
271 </tr>
272 <tr>
273 <td class="paramkey"></td>
274 <td></td>
275 <td class="paramtype">int&#160;</td>
276 <td class="paramname"> <em>flags</em>&#160;</td>
281 <td class="paramname"><em>policy</em>, </td>
282 </tr>
283 <tr>
284 <td class="paramkey"></td>
285 <td></td>
286 <td class="paramtype">int&#160;</td>
287 <td class="paramname"><em>flags</em>&#160;</td>
277288 </tr>
278289 <tr>
279290 <td></td>
300311 <td class="memname"> int hwloc_free </td>
301312 <td>(</td>
302313 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
303 <td class="paramname"> <em>topology</em>, </td>
314 <td class="paramname"><em>topology</em>, </td>
304315 </tr>
305316 <tr>
306317 <td class="paramkey"></td>
307318 <td></td>
308319 <td class="paramtype">void *&#160;</td>
309 <td class="paramname"> <em>addr</em>, </td>
320 <td class="paramname"><em>addr</em>, </td>
310321 </tr>
311322 <tr>
312323 <td class="paramkey"></td>
313324 <td></td>
314325 <td class="paramtype">size_t&#160;</td>
315 <td class="paramname"> <em>len</em>&#160;</td>
326 <td class="paramname"><em>len</em>&#160;</td>
316327 </tr>
317328 <tr>
318329 <td></td>
335346 <td class="memname"> int hwloc_get_area_membind </td>
336347 <td>(</td>
337348 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
338 <td class="paramname"> <em>topology</em>, </td>
349 <td class="paramname"><em>topology</em>, </td>
339350 </tr>
340351 <tr>
341352 <td class="paramkey"></td>
342353 <td></td>
343354 <td class="paramtype">const void *&#160;</td>
344 <td class="paramname"> <em>addr</em>, </td>
355 <td class="paramname"><em>addr</em>, </td>
345356 </tr>
346357 <tr>
347358 <td class="paramkey"></td>
348359 <td></td>
349360 <td class="paramtype">size_t&#160;</td>
350 <td class="paramname"> <em>len</em>, </td>
361 <td class="paramname"><em>len</em>, </td>
351362 </tr>
352363 <tr>
353364 <td class="paramkey"></td>
354365 <td></td>
355366 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
356 <td class="paramname"> <em>cpuset</em>, </td>
367 <td class="paramname"><em>cpuset</em>, </td>
357368 </tr>
358369 <tr>
359370 <td class="paramkey"></td>
360371 <td></td>
361372 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
362 <td class="paramname"> <em>policy</em>, </td>
363 </tr>
364 <tr>
365 <td class="paramkey"></td>
366 <td></td>
367 <td class="paramtype">int&#160;</td>
368 <td class="paramname"> <em>flags</em>&#160;</td>
373 <td class="paramname"><em>policy</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">int&#160;</td>
379 <td class="paramname"><em>flags</em>&#160;</td>
369380 </tr>
370381 <tr>
371382 <td></td>
392403 <td class="memname"> int hwloc_get_area_membind_nodeset </td>
393404 <td>(</td>
394405 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
395 <td class="paramname"> <em>topology</em>, </td>
406 <td class="paramname"><em>topology</em>, </td>
396407 </tr>
397408 <tr>
398409 <td class="paramkey"></td>
399410 <td></td>
400411 <td class="paramtype">const void *&#160;</td>
401 <td class="paramname"> <em>addr</em>, </td>
412 <td class="paramname"><em>addr</em>, </td>
402413 </tr>
403414 <tr>
404415 <td class="paramkey"></td>
405416 <td></td>
406417 <td class="paramtype">size_t&#160;</td>
407 <td class="paramname"> <em>len</em>, </td>
418 <td class="paramname"><em>len</em>, </td>
408419 </tr>
409420 <tr>
410421 <td class="paramkey"></td>
411422 <td></td>
412423 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
413 <td class="paramname"> <em>nodeset</em>, </td>
424 <td class="paramname"><em>nodeset</em>, </td>
414425 </tr>
415426 <tr>
416427 <td class="paramkey"></td>
417428 <td></td>
418429 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
419 <td class="paramname"> <em>policy</em>, </td>
420 </tr>
421 <tr>
422 <td class="paramkey"></td>
423 <td></td>
424 <td class="paramtype">int&#160;</td>
425 <td class="paramname"> <em>flags</em>&#160;</td>
430 <td class="paramname"><em>policy</em>, </td>
431 </tr>
432 <tr>
433 <td class="paramkey"></td>
434 <td></td>
435 <td class="paramtype">int&#160;</td>
436 <td class="paramname"><em>flags</em>&#160;</td>
426437 </tr>
427438 <tr>
428439 <td></td>
449460 <td class="memname"> int hwloc_get_membind </td>
450461 <td>(</td>
451462 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
452 <td class="paramname"> <em>topology</em>, </td>
463 <td class="paramname"><em>topology</em>, </td>
453464 </tr>
454465 <tr>
455466 <td class="paramkey"></td>
456467 <td></td>
457468 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
458 <td class="paramname"> <em>cpuset</em>, </td>
469 <td class="paramname"><em>cpuset</em>, </td>
459470 </tr>
460471 <tr>
461472 <td class="paramkey"></td>
462473 <td></td>
463474 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
464 <td class="paramname"> <em>policy</em>, </td>
465 </tr>
466 <tr>
467 <td class="paramkey"></td>
468 <td></td>
469 <td class="paramtype">int&#160;</td>
470 <td class="paramname"> <em>flags</em>&#160;</td>
475 <td class="paramname"><em>policy</em>, </td>
476 </tr>
477 <tr>
478 <td class="paramkey"></td>
479 <td></td>
480 <td class="paramtype">int&#160;</td>
481 <td class="paramname"><em>flags</em>&#160;</td>
471482 </tr>
472483 <tr>
473484 <td></td>
497508 <td class="memname"> int hwloc_get_membind_nodeset </td>
498509 <td>(</td>
499510 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
500 <td class="paramname"> <em>topology</em>, </td>
511 <td class="paramname"><em>topology</em>, </td>
501512 </tr>
502513 <tr>
503514 <td class="paramkey"></td>
504515 <td></td>
505516 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
506 <td class="paramname"> <em>nodeset</em>, </td>
517 <td class="paramname"><em>nodeset</em>, </td>
507518 </tr>
508519 <tr>
509520 <td class="paramkey"></td>
510521 <td></td>
511522 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
512 <td class="paramname"> <em>policy</em>, </td>
513 </tr>
514 <tr>
515 <td class="paramkey"></td>
516 <td></td>
517 <td class="paramtype">int&#160;</td>
518 <td class="paramname"> <em>flags</em>&#160;</td>
523 <td class="paramname"><em>policy</em>, </td>
524 </tr>
525 <tr>
526 <td class="paramkey"></td>
527 <td></td>
528 <td class="paramtype">int&#160;</td>
529 <td class="paramname"><em>flags</em>&#160;</td>
519530 </tr>
520531 <tr>
521532 <td></td>
545556 <td class="memname"> int hwloc_get_proc_membind </td>
546557 <td>(</td>
547558 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
548 <td class="paramname"> <em>topology</em>, </td>
559 <td class="paramname"><em>topology</em>, </td>
549560 </tr>
550561 <tr>
551562 <td class="paramkey"></td>
552563 <td></td>
553564 <td class="paramtype">hwloc_pid_t&#160;</td>
554 <td class="paramname"> <em>pid</em>, </td>
565 <td class="paramname"><em>pid</em>, </td>
555566 </tr>
556567 <tr>
557568 <td class="paramkey"></td>
558569 <td></td>
559570 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
560 <td class="paramname"> <em>cpuset</em>, </td>
571 <td class="paramname"><em>cpuset</em>, </td>
561572 </tr>
562573 <tr>
563574 <td class="paramkey"></td>
564575 <td></td>
565576 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
566 <td class="paramname"> <em>policy</em>, </td>
567 </tr>
568 <tr>
569 <td class="paramkey"></td>
570 <td></td>
571 <td class="paramtype">int&#160;</td>
572 <td class="paramname"> <em>flags</em>&#160;</td>
577 <td class="paramname"><em>policy</em>, </td>
578 </tr>
579 <tr>
580 <td class="paramkey"></td>
581 <td></td>
582 <td class="paramtype">int&#160;</td>
583 <td class="paramname"><em>flags</em>&#160;</td>
573584 </tr>
574585 <tr>
575586 <td></td>
598609 <td class="memname"> int hwloc_get_proc_membind_nodeset </td>
599610 <td>(</td>
600611 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
601 <td class="paramname"> <em>topology</em>, </td>
612 <td class="paramname"><em>topology</em>, </td>
602613 </tr>
603614 <tr>
604615 <td class="paramkey"></td>
605616 <td></td>
606617 <td class="paramtype">hwloc_pid_t&#160;</td>
607 <td class="paramname"> <em>pid</em>, </td>
618 <td class="paramname"><em>pid</em>, </td>
608619 </tr>
609620 <tr>
610621 <td class="paramkey"></td>
611622 <td></td>
612623 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
613 <td class="paramname"> <em>nodeset</em>, </td>
624 <td class="paramname"><em>nodeset</em>, </td>
614625 </tr>
615626 <tr>
616627 <td class="paramkey"></td>
617628 <td></td>
618629 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a> *&#160;</td>
619 <td class="paramname"> <em>policy</em>, </td>
620 </tr>
621 <tr>
622 <td class="paramkey"></td>
623 <td></td>
624 <td class="paramtype">int&#160;</td>
625 <td class="paramname"> <em>flags</em>&#160;</td>
630 <td class="paramname"><em>policy</em>, </td>
631 </tr>
632 <tr>
633 <td class="paramkey"></td>
634 <td></td>
635 <td class="paramtype">int&#160;</td>
636 <td class="paramname"><em>flags</em>&#160;</td>
626637 </tr>
627638 <tr>
628639 <td></td>
651662 <td class="memname"> int hwloc_set_area_membind </td>
652663 <td>(</td>
653664 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
654 <td class="paramname"> <em>topology</em>, </td>
665 <td class="paramname"><em>topology</em>, </td>
655666 </tr>
656667 <tr>
657668 <td class="paramkey"></td>
658669 <td></td>
659670 <td class="paramtype">const void *&#160;</td>
660 <td class="paramname"> <em>addr</em>, </td>
671 <td class="paramname"><em>addr</em>, </td>
661672 </tr>
662673 <tr>
663674 <td class="paramkey"></td>
664675 <td></td>
665676 <td class="paramtype">size_t&#160;</td>
666 <td class="paramname"> <em>len</em>, </td>
677 <td class="paramname"><em>len</em>, </td>
667678 </tr>
668679 <tr>
669680 <td class="paramkey"></td>
670681 <td></td>
671682 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
672 <td class="paramname"> <em>cpuset</em>, </td>
683 <td class="paramname"><em>cpuset</em>, </td>
673684 </tr>
674685 <tr>
675686 <td class="paramkey"></td>
676687 <td></td>
677688 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
678 <td class="paramname"> <em>policy</em>, </td>
679 </tr>
680 <tr>
681 <td class="paramkey"></td>
682 <td></td>
683 <td class="paramtype">int&#160;</td>
684 <td class="paramname"> <em>flags</em>&#160;</td>
689 <td class="paramname"><em>policy</em>, </td>
690 </tr>
691 <tr>
692 <td class="paramkey"></td>
693 <td></td>
694 <td class="paramtype">int&#160;</td>
695 <td class="paramname"><em>flags</em>&#160;</td>
685696 </tr>
686697 <tr>
687698 <td></td>
707718 <td class="memname"> int hwloc_set_area_membind_nodeset </td>
708719 <td>(</td>
709720 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
710 <td class="paramname"> <em>topology</em>, </td>
721 <td class="paramname"><em>topology</em>, </td>
711722 </tr>
712723 <tr>
713724 <td class="paramkey"></td>
714725 <td></td>
715726 <td class="paramtype">const void *&#160;</td>
716 <td class="paramname"> <em>addr</em>, </td>
727 <td class="paramname"><em>addr</em>, </td>
717728 </tr>
718729 <tr>
719730 <td class="paramkey"></td>
720731 <td></td>
721732 <td class="paramtype">size_t&#160;</td>
722 <td class="paramname"> <em>len</em>, </td>
733 <td class="paramname"><em>len</em>, </td>
723734 </tr>
724735 <tr>
725736 <td class="paramkey"></td>
726737 <td></td>
727738 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
728 <td class="paramname"> <em>nodeset</em>, </td>
739 <td class="paramname"><em>nodeset</em>, </td>
729740 </tr>
730741 <tr>
731742 <td class="paramkey"></td>
732743 <td></td>
733744 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
734 <td class="paramname"> <em>policy</em>, </td>
735 </tr>
736 <tr>
737 <td class="paramkey"></td>
738 <td></td>
739 <td class="paramtype">int&#160;</td>
740 <td class="paramname"> <em>flags</em>&#160;</td>
745 <td class="paramname"><em>policy</em>, </td>
746 </tr>
747 <tr>
748 <td class="paramkey"></td>
749 <td></td>
750 <td class="paramtype">int&#160;</td>
751 <td class="paramname"><em>flags</em>&#160;</td>
741752 </tr>
742753 <tr>
743754 <td></td>
763774 <td class="memname"> int hwloc_set_membind </td>
764775 <td>(</td>
765776 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
766 <td class="paramname"> <em>topology</em>, </td>
777 <td class="paramname"><em>topology</em>, </td>
767778 </tr>
768779 <tr>
769780 <td class="paramkey"></td>
770781 <td></td>
771782 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
772 <td class="paramname"> <em>cpuset</em>, </td>
783 <td class="paramname"><em>cpuset</em>, </td>
773784 </tr>
774785 <tr>
775786 <td class="paramkey"></td>
776787 <td></td>
777788 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
778 <td class="paramname"> <em>policy</em>, </td>
779 </tr>
780 <tr>
781 <td class="paramkey"></td>
782 <td></td>
783 <td class="paramtype">int&#160;</td>
784 <td class="paramname"> <em>flags</em>&#160;</td>
789 <td class="paramname"><em>policy</em>, </td>
790 </tr>
791 <tr>
792 <td class="paramkey"></td>
793 <td></td>
794 <td class="paramtype">int&#160;</td>
795 <td class="paramname"><em>flags</em>&#160;</td>
785796 </tr>
786797 <tr>
787798 <td></td>
808819 <td class="memname"> int hwloc_set_membind_nodeset </td>
809820 <td>(</td>
810821 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
811 <td class="paramname"> <em>topology</em>, </td>
822 <td class="paramname"><em>topology</em>, </td>
812823 </tr>
813824 <tr>
814825 <td class="paramkey"></td>
815826 <td></td>
816827 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
817 <td class="paramname"> <em>nodeset</em>, </td>
828 <td class="paramname"><em>nodeset</em>, </td>
818829 </tr>
819830 <tr>
820831 <td class="paramkey"></td>
821832 <td></td>
822833 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
823 <td class="paramname"> <em>policy</em>, </td>
824 </tr>
825 <tr>
826 <td class="paramkey"></td>
827 <td></td>
828 <td class="paramtype">int&#160;</td>
829 <td class="paramname"> <em>flags</em>&#160;</td>
834 <td class="paramname"><em>policy</em>, </td>
835 </tr>
836 <tr>
837 <td class="paramkey"></td>
838 <td></td>
839 <td class="paramtype">int&#160;</td>
840 <td class="paramname"><em>flags</em>&#160;</td>
830841 </tr>
831842 <tr>
832843 <td></td>
853864 <td class="memname"> int hwloc_set_proc_membind </td>
854865 <td>(</td>
855866 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
856 <td class="paramname"> <em>topology</em>, </td>
867 <td class="paramname"><em>topology</em>, </td>
857868 </tr>
858869 <tr>
859870 <td class="paramkey"></td>
860871 <td></td>
861872 <td class="paramtype">hwloc_pid_t&#160;</td>
862 <td class="paramname"> <em>pid</em>, </td>
873 <td class="paramname"><em>pid</em>, </td>
863874 </tr>
864875 <tr>
865876 <td class="paramkey"></td>
866877 <td></td>
867878 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
868 <td class="paramname"> <em>cpuset</em>, </td>
879 <td class="paramname"><em>cpuset</em>, </td>
869880 </tr>
870881 <tr>
871882 <td class="paramkey"></td>
872883 <td></td>
873884 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
874 <td class="paramname"> <em>policy</em>, </td>
875 </tr>
876 <tr>
877 <td class="paramkey"></td>
878 <td></td>
879 <td class="paramtype">int&#160;</td>
880 <td class="paramname"> <em>flags</em>&#160;</td>
885 <td class="paramname"><em>policy</em>, </td>
886 </tr>
887 <tr>
888 <td class="paramkey"></td>
889 <td></td>
890 <td class="paramtype">int&#160;</td>
891 <td class="paramname"><em>flags</em>&#160;</td>
881892 </tr>
882893 <tr>
883894 <td></td>
903914 <td class="memname"> int hwloc_set_proc_membind_nodeset </td>
904915 <td>(</td>
905916 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
906 <td class="paramname"> <em>topology</em>, </td>
917 <td class="paramname"><em>topology</em>, </td>
907918 </tr>
908919 <tr>
909920 <td class="paramkey"></td>
910921 <td></td>
911922 <td class="paramtype">hwloc_pid_t&#160;</td>
912 <td class="paramname"> <em>pid</em>, </td>
923 <td class="paramname"><em>pid</em>, </td>
913924 </tr>
914925 <tr>
915926 <td class="paramkey"></td>
916927 <td></td>
917928 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
918 <td class="paramname"> <em>nodeset</em>, </td>
929 <td class="paramname"><em>nodeset</em>, </td>
919930 </tr>
920931 <tr>
921932 <td class="paramkey"></td>
922933 <td></td>
923934 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
924 <td class="paramname"> <em>policy</em>, </td>
925 </tr>
926 <tr>
927 <td class="paramkey"></td>
928 <td></td>
929 <td class="paramtype">int&#160;</td>
930 <td class="paramname"> <em>flags</em>&#160;</td>
935 <td class="paramname"><em>policy</em>, </td>
936 </tr>
937 <tr>
938 <td class="paramkey"></td>
939 <td></td>
940 <td class="paramtype">int&#160;</td>
941 <td class="paramname"><em>flags</em>&#160;</td>
931942 </tr>
932943 <tr>
933944 <td></td>
946957 </div>
947958 </div>
948959 </div>
949 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
960 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
950961 <a href="http://www.doxygen.org/index.html">
951 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
962 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
952963 </body>
953964 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname">static inline int hwloc_get_type_or_above_depth </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
51 <td class="paramname"> <em>type</em>&#160;</td>
62 <td class="paramname"><em>type</em>&#160;</td>
5263 </tr>
5364 <tr>
5465 <td></td>
7283 <td class="memname">static inline int hwloc_get_type_or_below_depth </td>
7384 <td>(</td>
7485 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
75 <td class="paramname"> <em>topology</em>, </td>
86 <td class="paramname"><em>topology</em>, </td>
7687 </tr>
7788 <tr>
7889 <td class="paramkey"></td>
7990 <td></td>
8091 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
81 <td class="paramname"> <em>type</em>&#160;</td>
92 <td class="paramname"><em>type</em>&#160;</td>
8293 </tr>
8394 <tr>
8495 <td></td>
95106 </div>
96107 </div>
97108 </div>
98 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
109 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
99110 <a href="http://www.doxygen.org/index.html">
100 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
111 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
101112 </body>
102113 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
5869 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_ancestor_obj_by_depth </td>
5970 <td>(</td>
6071 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
61 <td class="paramname"> <em></em>, </td>
72 <td class="paramname"><em></em>, </td>
6273 </tr>
6374 <tr>
6475 <td class="paramkey"></td>
6576 <td></td>
6677 <td class="paramtype">unsigned&#160;</td>
67 <td class="paramname"> <em>depth</em>, </td>
68 </tr>
69 <tr>
70 <td class="paramkey"></td>
71 <td></td>
72 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
73 <td class="paramname"> <em>obj</em>&#160;</td>
78 <td class="paramname"><em>depth</em>, </td>
79 </tr>
80 <tr>
81 <td class="paramkey"></td>
82 <td></td>
83 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
84 <td class="paramname"><em>obj</em>&#160;</td>
7485 </tr>
7586 <tr>
7687 <td></td>
93104 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_ancestor_obj_by_type </td>
94105 <td>(</td>
95106 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
96 <td class="paramname"> <em></em>, </td>
107 <td class="paramname"><em></em>, </td>
97108 </tr>
98109 <tr>
99110 <td class="paramkey"></td>
100111 <td></td>
101112 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
102 <td class="paramname"> <em>type</em>, </td>
103 </tr>
104 <tr>
105 <td class="paramkey"></td>
106 <td></td>
107 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
108 <td class="paramname"> <em>obj</em>&#160;</td>
113 <td class="paramname"><em>type</em>, </td>
114 </tr>
115 <tr>
116 <td class="paramkey"></td>
117 <td></td>
118 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
119 <td class="paramname"><em>obj</em>&#160;</td>
109120 </tr>
110121 <tr>
111122 <td></td>
128139 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_common_ancestor_obj </td>
129140 <td>(</td>
130141 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
131 <td class="paramname"> <em></em>, </td>
132 </tr>
133 <tr>
134 <td class="paramkey"></td>
135 <td></td>
136 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
137 <td class="paramname"> <em>obj1</em>, </td>
138 </tr>
139 <tr>
140 <td class="paramkey"></td>
141 <td></td>
142 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
143 <td class="paramname"> <em>obj2</em>&#160;</td>
142 <td class="paramname"><em></em>, </td>
143 </tr>
144 <tr>
145 <td class="paramkey"></td>
146 <td></td>
147 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
148 <td class="paramname"><em>obj1</em>, </td>
149 </tr>
150 <tr>
151 <td class="paramkey"></td>
152 <td></td>
153 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
154 <td class="paramname"><em>obj2</em>&#160;</td>
144155 </tr>
145156 <tr>
146157 <td></td>
163174 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_child </td>
164175 <td>(</td>
165176 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
166 <td class="paramname"> <em></em>, </td>
167 </tr>
168 <tr>
169 <td class="paramkey"></td>
170 <td></td>
171 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
172 <td class="paramname"> <em>parent</em>, </td>
173 </tr>
174 <tr>
175 <td class="paramkey"></td>
176 <td></td>
177 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
178 <td class="paramname"> <em>prev</em>&#160;</td>
177 <td class="paramname"><em></em>, </td>
178 </tr>
179 <tr>
180 <td class="paramkey"></td>
181 <td></td>
182 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
183 <td class="paramname"><em>parent</em>, </td>
184 </tr>
185 <tr>
186 <td class="paramkey"></td>
187 <td></td>
188 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
189 <td class="paramname"><em>prev</em>&#160;</td>
179190 </tr>
180191 <tr>
181192 <td></td>
199210 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_by_depth </td>
200211 <td>(</td>
201212 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
202 <td class="paramname"> <em>topology</em>, </td>
213 <td class="paramname"><em>topology</em>, </td>
203214 </tr>
204215 <tr>
205216 <td class="paramkey"></td>
206217 <td></td>
207218 <td class="paramtype">unsigned&#160;</td>
208 <td class="paramname"> <em>depth</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
214 <td class="paramname"> <em>prev</em>&#160;</td>
219 <td class="paramname"><em>depth</em>, </td>
220 </tr>
221 <tr>
222 <td class="paramkey"></td>
223 <td></td>
224 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
225 <td class="paramname"><em>prev</em>&#160;</td>
215226 </tr>
216227 <tr>
217228 <td></td>
235246 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_by_type </td>
236247 <td>(</td>
237248 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
238 <td class="paramname"> <em>topology</em>, </td>
249 <td class="paramname"><em>topology</em>, </td>
239250 </tr>
240251 <tr>
241252 <td class="paramkey"></td>
242253 <td></td>
243254 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
244 <td class="paramname"> <em>type</em>, </td>
245 </tr>
246 <tr>
247 <td class="paramkey"></td>
248 <td></td>
249 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
250 <td class="paramname"> <em>prev</em>&#160;</td>
255 <td class="paramname"><em>type</em>, </td>
256 </tr>
257 <tr>
258 <td class="paramkey"></td>
259 <td></td>
260 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
261 <td class="paramname"><em>prev</em>&#160;</td>
251262 </tr>
252263 <tr>
253264 <td></td>
271282 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_pu_obj_by_os_index </td>
272283 <td>(</td>
273284 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
274 <td class="paramname"> <em>topology</em>, </td>
285 <td class="paramname"><em>topology</em>, </td>
275286 </tr>
276287 <tr>
277288 <td class="paramkey"></td>
278289 <td></td>
279290 <td class="paramtype">unsigned&#160;</td>
280 <td class="paramname"> <em>os_index</em>&#160;</td>
291 <td class="paramname"><em>os_index</em>&#160;</td>
281292 </tr>
282293 <tr>
283294 <td></td>
301312 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_root_obj </td>
302313 <td>(</td>
303314 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
304 <td class="paramname"> <em>topology</em>&#160;)</td>
315 <td class="paramname"><em>topology</em></td><td>)</td>
305316 <td><code> [static]</code></td>
306317 </tr>
307318 </table>
321332 <td class="memname">static inline int hwloc_obj_is_in_subtree </td>
322333 <td>(</td>
323334 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
324 <td class="paramname"> <em></em>, </td>
325 </tr>
326 <tr>
327 <td class="paramkey"></td>
328 <td></td>
329 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
330 <td class="paramname"> <em>obj</em>, </td>
331 </tr>
332 <tr>
333 <td class="paramkey"></td>
334 <td></td>
335 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
336 <td class="paramname"> <em>subtree_root</em>&#160;</td>
337 </tr>
338 <tr>
339 <td></td>
340 <td>)</td>
341 <td></td><td><code> [static]</code></td>
342 </tr>
343 </table>
344 </div>
345 <div class="memdoc">
346
347 <p>Returns true if _obj_ is inside the subtree beginning with <code>subtree_root</code>. </p>
348
349 </div>
350 </div>
351 </div>
352 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
335 <td class="paramname"><em></em>, </td>
336 </tr>
337 <tr>
338 <td class="paramkey"></td>
339 <td></td>
340 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
341 <td class="paramname"><em>obj</em>, </td>
342 </tr>
343 <tr>
344 <td class="paramkey"></td>
345 <td></td>
346 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
347 <td class="paramname"><em>subtree_root</em>&#160;</td>
348 </tr>
349 <tr>
350 <td></td>
351 <td>)</td>
352 <td></td><td><code> [static]</code></td>
353 </tr>
354 </table>
355 </div>
356 <div class="memdoc">
357
358 <p>Returns true if <code>obj</code> is inside the subtree beginning with <code>subtree_root</code>. </p>
359 <dl class="note"><dt><b>Note:</b></dt><dd>This function assumes that both <code>obj</code> and <code>subtree_root</code> have a <code>cpuset</code>. </dd></dl>
360
361 </div>
362 </div>
363 </div>
364 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
353365 <a href="http://www.doxygen.org/index.html">
354 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
366 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
355367 </body>
356368 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
5263 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_first_largest_obj_inside_cpuset </td>
5364 <td>(</td>
5465 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
55 <td class="paramname"> <em>topology</em>, </td>
56 </tr>
57 <tr>
58 <td class="paramkey"></td>
59 <td></td>
60 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
61 <td class="paramname"> <em>set</em>&#160;</td>
66 <td class="paramname"><em>topology</em>, </td>
67 </tr>
68 <tr>
69 <td class="paramkey"></td>
70 <td></td>
71 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
72 <td class="paramname"><em>set</em>&#160;</td>
6273 </tr>
6374 <tr>
6475 <td></td>
8394 <td class="memname"> int hwloc_get_largest_objs_inside_cpuset </td>
8495 <td>(</td>
8596 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
86 <td class="paramname"> <em>topology</em>, </td>
87 </tr>
88 <tr>
89 <td class="paramkey"></td>
90 <td></td>
91 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
92 <td class="paramname"> <em>set</em>, </td>
97 <td class="paramname"><em>topology</em>, </td>
98 </tr>
99 <tr>
100 <td class="paramkey"></td>
101 <td></td>
102 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
103 <td class="paramname"><em>set</em>, </td>
93104 </tr>
94105 <tr>
95106 <td class="paramkey"></td>
96107 <td></td>
97108 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a> *restrict&#160;</td>
98 <td class="paramname"> <em>objs</em>, </td>
109 <td class="paramname"><em>objs</em>, </td>
99110 </tr>
100111 <tr>
101112 <td class="paramkey"></td>
102113 <td></td>
103114 <td class="paramtype">int&#160;</td>
104 <td class="paramname"> <em>max</em>&#160;</td>
115 <td class="paramname"><em>max</em>&#160;</td>
105116 </tr>
106117 <tr>
107118 <td></td>
125136 <td class="memname">static inline unsigned hwloc_get_nbobjs_inside_cpuset_by_depth </td>
126137 <td>(</td>
127138 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
128 <td class="paramname"> <em>topology</em>, </td>
129 </tr>
130 <tr>
131 <td class="paramkey"></td>
132 <td></td>
133 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
134 <td class="paramname"> <em>set</em>, </td>
135 </tr>
136 <tr>
137 <td class="paramkey"></td>
138 <td></td>
139 <td class="paramtype">unsigned&#160;</td>
140 <td class="paramname"> <em>depth</em>&#160;</td>
139 <td class="paramname"><em>topology</em>, </td>
140 </tr>
141 <tr>
142 <td class="paramkey"></td>
143 <td></td>
144 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
145 <td class="paramname"><em>set</em>, </td>
146 </tr>
147 <tr>
148 <td class="paramkey"></td>
149 <td></td>
150 <td class="paramtype">unsigned&#160;</td>
151 <td class="paramname"><em>depth</em>&#160;</td>
141152 </tr>
142153 <tr>
143154 <td></td>
160171 <td class="memname">static inline int hwloc_get_nbobjs_inside_cpuset_by_type </td>
161172 <td>(</td>
162173 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
163 <td class="paramname"> <em>topology</em>, </td>
164 </tr>
165 <tr>
166 <td class="paramkey"></td>
167 <td></td>
168 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
169 <td class="paramname"> <em>set</em>, </td>
174 <td class="paramname"><em>topology</em>, </td>
175 </tr>
176 <tr>
177 <td class="paramkey"></td>
178 <td></td>
179 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
180 <td class="paramname"><em>set</em>, </td>
170181 </tr>
171182 <tr>
172183 <td class="paramkey"></td>
173184 <td></td>
174185 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
175 <td class="paramname"> <em>type</em>&#160;</td>
186 <td class="paramname"><em>type</em>&#160;</td>
176187 </tr>
177188 <tr>
178189 <td></td>
196207 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_inside_cpuset_by_depth </td>
197208 <td>(</td>
198209 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
199 <td class="paramname"> <em>topology</em>, </td>
200 </tr>
201 <tr>
202 <td class="paramkey"></td>
203 <td></td>
204 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
205 <td class="paramname"> <em>set</em>, </td>
206 </tr>
207 <tr>
208 <td class="paramkey"></td>
209 <td></td>
210 <td class="paramtype">unsigned&#160;</td>
211 <td class="paramname"> <em>depth</em>, </td>
210 <td class="paramname"><em>topology</em>, </td>
211 </tr>
212 <tr>
213 <td class="paramkey"></td>
214 <td></td>
215 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
216 <td class="paramname"><em>set</em>, </td>
217 </tr>
218 <tr>
219 <td class="paramkey"></td>
220 <td></td>
221 <td class="paramtype">unsigned&#160;</td>
222 <td class="paramname"><em>depth</em>, </td>
212223 </tr>
213224 <tr>
214225 <td class="paramkey"></td>
215226 <td></td>
216227 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
217 <td class="paramname"> <em>prev</em>&#160;</td>
228 <td class="paramname"><em>prev</em>&#160;</td>
218229 </tr>
219230 <tr>
220231 <td></td>
238249 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_inside_cpuset_by_type </td>
239250 <td>(</td>
240251 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
241 <td class="paramname"> <em>topology</em>, </td>
242 </tr>
243 <tr>
244 <td class="paramkey"></td>
245 <td></td>
246 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
247 <td class="paramname"> <em>set</em>, </td>
252 <td class="paramname"><em>topology</em>, </td>
253 </tr>
254 <tr>
255 <td class="paramkey"></td>
256 <td></td>
257 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
258 <td class="paramname"><em>set</em>, </td>
248259 </tr>
249260 <tr>
250261 <td class="paramkey"></td>
251262 <td></td>
252263 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
253 <td class="paramname"> <em>type</em>, </td>
264 <td class="paramname"><em>type</em>, </td>
254265 </tr>
255266 <tr>
256267 <td class="paramkey"></td>
257268 <td></td>
258269 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
259 <td class="paramname"> <em>prev</em>&#160;</td>
270 <td class="paramname"><em>prev</em>&#160;</td>
260271 </tr>
261272 <tr>
262273 <td></td>
280291 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_inside_cpuset_by_depth </td>
281292 <td>(</td>
282293 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
283 <td class="paramname"> <em>topology</em>, </td>
284 </tr>
285 <tr>
286 <td class="paramkey"></td>
287 <td></td>
288 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
289 <td class="paramname"> <em>set</em>, </td>
290 </tr>
291 <tr>
292 <td class="paramkey"></td>
293 <td></td>
294 <td class="paramtype">unsigned&#160;</td>
295 <td class="paramname"> <em>depth</em>, </td>
296 </tr>
297 <tr>
298 <td class="paramkey"></td>
299 <td></td>
300 <td class="paramtype">unsigned&#160;</td>
301 <td class="paramname"> <em>idx</em>&#160;</td>
294 <td class="paramname"><em>topology</em>, </td>
295 </tr>
296 <tr>
297 <td class="paramkey"></td>
298 <td></td>
299 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
300 <td class="paramname"><em>set</em>, </td>
301 </tr>
302 <tr>
303 <td class="paramkey"></td>
304 <td></td>
305 <td class="paramtype">unsigned&#160;</td>
306 <td class="paramname"><em>depth</em>, </td>
307 </tr>
308 <tr>
309 <td class="paramkey"></td>
310 <td></td>
311 <td class="paramtype">unsigned&#160;</td>
312 <td class="paramname"><em>idx</em>&#160;</td>
302313 </tr>
303314 <tr>
304315 <td></td>
321332 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_inside_cpuset_by_type </td>
322333 <td>(</td>
323334 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
324 <td class="paramname"> <em>topology</em>, </td>
325 </tr>
326 <tr>
327 <td class="paramkey"></td>
328 <td></td>
329 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
330 <td class="paramname"> <em>set</em>, </td>
335 <td class="paramname"><em>topology</em>, </td>
336 </tr>
337 <tr>
338 <td class="paramkey"></td>
339 <td></td>
340 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
341 <td class="paramname"><em>set</em>, </td>
331342 </tr>
332343 <tr>
333344 <td class="paramkey"></td>
334345 <td></td>
335346 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
336 <td class="paramname"> <em>type</em>, </td>
337 </tr>
338 <tr>
339 <td class="paramkey"></td>
340 <td></td>
341 <td class="paramtype">unsigned&#160;</td>
342 <td class="paramname"> <em>idx</em>&#160;</td>
347 <td class="paramname"><em>type</em>, </td>
348 </tr>
349 <tr>
350 <td class="paramkey"></td>
351 <td></td>
352 <td class="paramtype">unsigned&#160;</td>
353 <td class="paramname"><em>idx</em>&#160;</td>
343354 </tr>
344355 <tr>
345356 <td></td>
356367 </div>
357368 </div>
358369 </div>
359 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
370 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
360371 <a href="http://www.doxygen.org/index.html">
361 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
372 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
362373 </body>
363374 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4455 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_child_covering_cpuset </td>
4556 <td>(</td>
4657 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
47 <td class="paramname"> <em></em>, </td>
58 <td class="paramname"><em></em>, </td>
4859 </tr>
4960 <tr>
5061 <td class="paramkey"></td>
5162 <td></td>
5263 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
53 <td class="paramname"> <em>set</em>, </td>
64 <td class="paramname"><em>set</em>, </td>
5465 </tr>
5566 <tr>
5667 <td class="paramkey"></td>
5768 <td></td>
5869 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
59 <td class="paramname"> <em>parent</em>&#160;</td>
70 <td class="paramname"><em>parent</em>&#160;</td>
6071 </tr>
6172 <tr>
6273 <td></td>
8091 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_covering_cpuset </td>
8192 <td>(</td>
8293 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
83 <td class="paramname"> <em>topology</em>, </td>
94 <td class="paramname"><em>topology</em>, </td>
8495 </tr>
8596 <tr>
8697 <td class="paramkey"></td>
8798 <td></td>
8899 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
89 <td class="paramname"> <em>set</em>&#160;</td>
100 <td class="paramname"><em>set</em>&#160;</td>
90101 </tr>
91102 <tr>
92103 <td></td>
103114 </div>
104115 </div>
105116 </div>
106 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
117 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
107118 <a href="http://www.doxygen.org/index.html">
108 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
119 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
109120 </body>
110121 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4051 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_covering_cpuset_by_depth </td>
4152 <td>(</td>
4253 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
43 <td class="paramname"> <em>topology</em>, </td>
54 <td class="paramname"><em>topology</em>, </td>
4455 </tr>
4556 <tr>
4657 <td class="paramkey"></td>
4758 <td></td>
4859 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
49 <td class="paramname"> <em>set</em>, </td>
60 <td class="paramname"><em>set</em>, </td>
5061 </tr>
5162 <tr>
5263 <td class="paramkey"></td>
5364 <td></td>
5465 <td class="paramtype">unsigned&#160;</td>
55 <td class="paramname"> <em>depth</em>, </td>
66 <td class="paramname"><em>depth</em>, </td>
5667 </tr>
5768 <tr>
5869 <td class="paramkey"></td>
5970 <td></td>
6071 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
61 <td class="paramname"> <em>prev</em>&#160;</td>
72 <td class="paramname"><em>prev</em>&#160;</td>
6273 </tr>
6374 <tr>
6475 <td></td>
8293 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_next_obj_covering_cpuset_by_type </td>
8394 <td>(</td>
8495 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
85 <td class="paramname"> <em>topology</em>, </td>
96 <td class="paramname"><em>topology</em>, </td>
8697 </tr>
8798 <tr>
8899 <td class="paramkey"></td>
89100 <td></td>
90101 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
91 <td class="paramname"> <em>set</em>, </td>
102 <td class="paramname"><em>set</em>, </td>
92103 </tr>
93104 <tr>
94105 <td class="paramkey"></td>
95106 <td></td>
96107 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
97 <td class="paramname"> <em>type</em>, </td>
108 <td class="paramname"><em>type</em>, </td>
98109 </tr>
99110 <tr>
100111 <td class="paramkey"></td>
101112 <td></td>
102113 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
103 <td class="paramname"> <em>prev</em>&#160;</td>
114 <td class="paramname"><em>prev</em>&#160;</td>
104115 </tr>
105116 <tr>
106117 <td></td>
118129 </div>
119130 </div>
120131 </div>
121 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
132 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
122133 <a href="http://www.doxygen.org/index.html">
123 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
134 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
124135 </body>
125136 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4455 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_cache_covering_cpuset </td>
4556 <td>(</td>
4657 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
47 <td class="paramname"> <em>topology</em>, </td>
58 <td class="paramname"><em>topology</em>, </td>
4859 </tr>
4960 <tr>
5061 <td class="paramkey"></td>
5162 <td></td>
5263 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
53 <td class="paramname"> <em>set</em>&#160;</td>
64 <td class="paramname"><em>set</em>&#160;</td>
5465 </tr>
5566 <tr>
5667 <td></td>
7485 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_shared_cache_covering_obj </td>
7586 <td>(</td>
7687 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
77 <td class="paramname"> <em></em>, </td>
88 <td class="paramname"><em></em>, </td>
7889 </tr>
7990 <tr>
8091 <td class="paramkey"></td>
8192 <td></td>
8293 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
83 <td class="paramname"> <em>obj</em>&#160;</td>
94 <td class="paramname"><em>obj</em>&#160;</td>
8495 </tr>
8596 <tr>
8697 <td></td>
97108 </div>
98109 </div>
99110 </div>
100 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
111 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
101112 <a href="http://www.doxygen.org/index.html">
102 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
113 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
103114 </body>
104115 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4556 <td class="memname"> unsigned hwloc_get_closest_objs </td>
4657 <td>(</td>
4758 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
48 <td class="paramname"> <em>topology</em>, </td>
59 <td class="paramname"><em>topology</em>, </td>
4960 </tr>
5061 <tr>
5162 <td class="paramkey"></td>
5263 <td></td>
5364 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
54 <td class="paramname"> <em>src</em>, </td>
65 <td class="paramname"><em>src</em>, </td>
5566 </tr>
5667 <tr>
5768 <td class="paramkey"></td>
5869 <td></td>
5970 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a> *restrict&#160;</td>
60 <td class="paramname"> <em>objs</em>, </td>
71 <td class="paramname"><em>objs</em>, </td>
6172 </tr>
6273 <tr>
6374 <td class="paramkey"></td>
6475 <td></td>
6576 <td class="paramtype">unsigned&#160;</td>
66 <td class="paramname"> <em>max</em>&#160;</td>
77 <td class="paramname"><em>max</em>&#160;</td>
6778 </tr>
6879 <tr>
6980 <td></td>
8899 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_below_array_by_type </td>
89100 <td>(</td>
90101 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
91 <td class="paramname"> <em>topology</em>, </td>
102 <td class="paramname"><em>topology</em>, </td>
92103 </tr>
93104 <tr>
94105 <td class="paramkey"></td>
95106 <td></td>
96107 <td class="paramtype">int&#160;</td>
97 <td class="paramname"> <em>nr</em>, </td>
108 <td class="paramname"><em>nr</em>, </td>
98109 </tr>
99110 <tr>
100111 <td class="paramkey"></td>
101112 <td></td>
102113 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> *&#160;</td>
103 <td class="paramname"> <em>typev</em>, </td>
114 <td class="paramname"><em>typev</em>, </td>
104115 </tr>
105116 <tr>
106117 <td class="paramkey"></td>
107118 <td></td>
108119 <td class="paramtype">unsigned *&#160;</td>
109 <td class="paramname"> <em>idxv</em>&#160;</td>
120 <td class="paramname"><em>idxv</em>&#160;</td>
110121 </tr>
111122 <tr>
112123 <td></td>
133144 <td class="memname">static inline <a class="el" href="a00012.html">hwloc_obj_t</a> hwloc_get_obj_below_by_type </td>
134145 <td>(</td>
135146 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
136 <td class="paramname"> <em>topology</em>, </td>
147 <td class="paramname"><em>topology</em>, </td>
137148 </tr>
138149 <tr>
139150 <td class="paramkey"></td>
140151 <td></td>
141152 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
142 <td class="paramname"> <em>type1</em>, </td>
153 <td class="paramname"><em>type1</em>, </td>
143154 </tr>
144155 <tr>
145156 <td class="paramkey"></td>
146157 <td></td>
147158 <td class="paramtype">unsigned&#160;</td>
148 <td class="paramname"> <em>idx1</em>, </td>
159 <td class="paramname"><em>idx1</em>, </td>
149160 </tr>
150161 <tr>
151162 <td class="paramkey"></td>
152163 <td></td>
153164 <td class="paramtype"><a class="el" href="a00035.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a>&#160;</td>
154 <td class="paramname"> <em>type2</em>, </td>
165 <td class="paramname"><em>type2</em>, </td>
155166 </tr>
156167 <tr>
157168 <td class="paramkey"></td>
158169 <td></td>
159170 <td class="paramtype">unsigned&#160;</td>
160 <td class="paramname"> <em>idx2</em>&#160;</td>
171 <td class="paramname"><em>idx2</em>&#160;</td>
161172 </tr>
162173 <tr>
163174 <td></td>
175186 </div>
176187 </div>
177188 </div>
178 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
189 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
179190 <a href="http://www.doxygen.org/index.html">
180 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
191 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
181192 </body>
182193 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname">static inline void* hwloc_alloc_membind_policy </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype">size_t&#160;</td>
51 <td class="paramname"> <em>len</em>, </td>
62 <td class="paramname"><em>len</em>, </td>
5263 </tr>
5364 <tr>
5465 <td class="paramkey"></td>
5566 <td></td>
5667 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
57 <td class="paramname"> <em>cpuset</em>, </td>
68 <td class="paramname"><em>cpuset</em>, </td>
5869 </tr>
5970 <tr>
6071 <td class="paramkey"></td>
6172 <td></td>
6273 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
63 <td class="paramname"> <em>policy</em>, </td>
74 <td class="paramname"><em>policy</em>, </td>
6475 </tr>
6576 <tr>
6677 <td class="paramkey"></td>
6778 <td></td>
6879 <td class="paramtype">int&#160;</td>
69 <td class="paramname"> <em>flags</em>&#160;</td>
80 <td class="paramname"><em>flags</em>&#160;</td>
7081 </tr>
7182 <tr>
7283 <td></td>
90101 <td class="memname">static inline void* hwloc_alloc_membind_policy_nodeset </td>
91102 <td>(</td>
92103 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
93 <td class="paramname"> <em>topology</em>, </td>
104 <td class="paramname"><em>topology</em>, </td>
94105 </tr>
95106 <tr>
96107 <td class="paramkey"></td>
97108 <td></td>
98109 <td class="paramtype">size_t&#160;</td>
99 <td class="paramname"> <em>len</em>, </td>
110 <td class="paramname"><em>len</em>, </td>
100111 </tr>
101112 <tr>
102113 <td class="paramkey"></td>
103114 <td></td>
104115 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
105 <td class="paramname"> <em>nodeset</em>, </td>
116 <td class="paramname"><em>nodeset</em>, </td>
106117 </tr>
107118 <tr>
108119 <td class="paramkey"></td>
109120 <td></td>
110121 <td class="paramtype"><a class="el" href="a00044.html#gac9764f79505775d06407b40f5e4661e8">hwloc_membind_policy_t</a>&#160;</td>
111 <td class="paramname"> <em>policy</em>, </td>
122 <td class="paramname"><em>policy</em>, </td>
112123 </tr>
113124 <tr>
114125 <td class="paramkey"></td>
115126 <td></td>
116127 <td class="paramtype">int&#160;</td>
117 <td class="paramname"> <em>flags</em>&#160;</td>
128 <td class="paramname"><em>flags</em>&#160;</td>
118129 </tr>
119130 <tr>
120131 <td></td>
138149 <td class="memname">static inline void hwloc_distribute </td>
139150 <td>(</td>
140151 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
141 <td class="paramname"> <em>topology</em>, </td>
152 <td class="paramname"><em>topology</em>, </td>
142153 </tr>
143154 <tr>
144155 <td class="paramkey"></td>
145156 <td></td>
146157 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a>&#160;</td>
147 <td class="paramname"> <em>root</em>, </td>
158 <td class="paramname"><em>root</em>, </td>
148159 </tr>
149160 <tr>
150161 <td class="paramkey"></td>
151162 <td></td>
152163 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a> *&#160;</td>
153 <td class="paramname"> <em>cpuset</em>, </td>
154 </tr>
155 <tr>
156 <td class="paramkey"></td>
157 <td></td>
158 <td class="paramtype">unsigned&#160;</td>
159 <td class="paramname"> <em>n</em>, </td>
160 </tr>
161 <tr>
162 <td class="paramkey"></td>
163 <td></td>
164 <td class="paramtype">unsigned&#160;</td>
165 <td class="paramname"> <em>until</em>&#160;</td>
164 <td class="paramname"><em>cpuset</em>, </td>
165 </tr>
166 <tr>
167 <td class="paramkey"></td>
168 <td></td>
169 <td class="paramtype">unsigned&#160;</td>
170 <td class="paramname"><em>n</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">unsigned&#160;</td>
176 <td class="paramname"><em>until</em>&#160;</td>
166177 </tr>
167178 <tr>
168179 <td></td>
183194 <td class="memname">static inline void hwloc_distributev </td>
184195 <td>(</td>
185196 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
186 <td class="paramname"> <em>topology</em>, </td>
197 <td class="paramname"><em>topology</em>, </td>
187198 </tr>
188199 <tr>
189200 <td class="paramkey"></td>
190201 <td></td>
191202 <td class="paramtype"><a class="el" href="a00012.html">hwloc_obj_t</a> *&#160;</td>
192 <td class="paramname"> <em>roots</em>, </td>
193 </tr>
194 <tr>
195 <td class="paramkey"></td>
196 <td></td>
197 <td class="paramtype">unsigned&#160;</td>
198 <td class="paramname"> <em>n_roots</em>, </td>
203 <td class="paramname"><em>roots</em>, </td>
204 </tr>
205 <tr>
206 <td class="paramkey"></td>
207 <td></td>
208 <td class="paramtype">unsigned&#160;</td>
209 <td class="paramname"><em>n_roots</em>, </td>
199210 </tr>
200211 <tr>
201212 <td class="paramkey"></td>
202213 <td></td>
203214 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a> *&#160;</td>
204 <td class="paramname"> <em>cpuset</em>, </td>
205 </tr>
206 <tr>
207 <td class="paramkey"></td>
208 <td></td>
209 <td class="paramtype">unsigned&#160;</td>
210 <td class="paramname"> <em>n</em>, </td>
211 </tr>
212 <tr>
213 <td class="paramkey"></td>
214 <td></td>
215 <td class="paramtype">unsigned&#160;</td>
216 <td class="paramname"> <em>until</em>&#160;</td>
215 <td class="paramname"><em>cpuset</em>, </td>
216 </tr>
217 <tr>
218 <td class="paramkey"></td>
219 <td></td>
220 <td class="paramtype">unsigned&#160;</td>
221 <td class="paramname"><em>n</em>, </td>
222 </tr>
223 <tr>
224 <td class="paramkey"></td>
225 <td></td>
226 <td class="paramtype">unsigned&#160;</td>
227 <td class="paramname"><em>until</em>&#160;</td>
217228 </tr>
218229 <tr>
219230 <td></td>
234245 </div>
235246 </div>
236247 </div>
237 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
248 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
238249 <a href="http://www.doxygen.org/index.html">
239 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
250 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
240251 </body>
241252 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
5061 <td class="memname">static inline <a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a> hwloc_topology_get_allowed_cpuset </td>
5162 <td>(</td>
5263 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
53 <td class="paramname"> <em>topology</em>&#160;)</td>
64 <td class="paramname"><em>topology</em></td><td>)</td>
5465 <td><code> [static]</code></td>
5566 </tr>
5667 </table>
7182 <td class="memname">static inline <a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a> hwloc_topology_get_complete_cpuset </td>
7283 <td>(</td>
7384 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
74 <td class="paramname"> <em>topology</em>&#160;)</td>
85 <td class="paramname"><em>topology</em></td><td>)</td>
7586 <td><code> [static]</code></td>
7687 </tr>
7788 </table>
92103 <td class="memname">static inline <a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a> hwloc_topology_get_online_cpuset </td>
93104 <td>(</td>
94105 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
95 <td class="paramname"> <em>topology</em>&#160;)</td>
106 <td class="paramname"><em>topology</em></td><td>)</td>
96107 <td><code> [static]</code></td>
97108 </tr>
98109 </table>
113124 <td class="memname">static inline <a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a> hwloc_topology_get_topology_cpuset </td>
114125 <td>(</td>
115126 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
116 <td class="paramname"> <em>topology</em>&#160;)</td>
127 <td class="paramname"><em>topology</em></td><td>)</td>
117128 <td><code> [static]</code></td>
118129 </tr>
119130 </table>
127138 </div>
128139 </div>
129140 </div>
130 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
141 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
131142 <a href="http://www.doxygen.org/index.html">
132 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
143 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
133144 </body>
134145 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4758 <td class="memname">static inline <a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a> hwloc_topology_get_allowed_nodeset </td>
4859 <td>(</td>
4960 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
50 <td class="paramname"> <em>topology</em>&#160;)</td>
61 <td class="paramname"><em>topology</em></td><td>)</td>
5162 <td><code> [static]</code></td>
5263 </tr>
5364 </table>
6879 <td class="memname">static inline <a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a> hwloc_topology_get_complete_nodeset </td>
6980 <td>(</td>
7081 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
71 <td class="paramname"> <em>topology</em>&#160;)</td>
82 <td class="paramname"><em>topology</em></td><td>)</td>
7283 <td><code> [static]</code></td>
7384 </tr>
7485 </table>
89100 <td class="memname">static inline <a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a> hwloc_topology_get_topology_nodeset </td>
90101 <td>(</td>
91102 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
92 <td class="paramname"> <em>topology</em>&#160;)</td>
103 <td class="paramname"><em>topology</em></td><td>)</td>
93104 <td><code> [static]</code></td>
94105 </tr>
95106 </table>
103114 </div>
104115 </div>
105116 </div>
106 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
117 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
107118 <a href="http://www.doxygen.org/index.html">
108 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
119 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
109120 </body>
110121 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4657 <td class="memname">static inline void hwloc_cpuset_from_nodeset </td>
4758 <td>(</td>
4859 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
49 <td class="paramname"> <em>topology</em>, </td>
60 <td class="paramname"><em>topology</em>, </td>
5061 </tr>
5162 <tr>
5263 <td class="paramkey"></td>
5364 <td></td>
5465 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
55 <td class="paramname"> <em>cpuset</em>, </td>
66 <td class="paramname"><em>cpuset</em>, </td>
5667 </tr>
5768 <tr>
5869 <td class="paramkey"></td>
5970 <td></td>
6071 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
61 <td class="paramname"> <em>nodeset</em>&#160;</td>
72 <td class="paramname"><em>nodeset</em>&#160;</td>
6273 </tr>
6374 <tr>
6475 <td></td>
8293 <td class="memname">static inline void hwloc_cpuset_from_nodeset_strict </td>
8394 <td>(</td>
8495 <td class="paramtype">struct hwloc_topology *&#160;</td>
85 <td class="paramname"> <em>topology</em>, </td>
96 <td class="paramname"><em>topology</em>, </td>
8697 </tr>
8798 <tr>
8899 <td class="paramkey"></td>
89100 <td></td>
90101 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
91 <td class="paramname"> <em>cpuset</em>, </td>
102 <td class="paramname"><em>cpuset</em>, </td>
92103 </tr>
93104 <tr>
94105 <td class="paramkey"></td>
95106 <td></td>
96107 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
97 <td class="paramname"> <em>nodeset</em>&#160;</td>
108 <td class="paramname"><em>nodeset</em>&#160;</td>
98109 </tr>
99110 <tr>
100111 <td></td>
118129 <td class="memname">static inline void hwloc_cpuset_to_nodeset </td>
119130 <td>(</td>
120131 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
121 <td class="paramname"> <em>topology</em>, </td>
132 <td class="paramname"><em>topology</em>, </td>
122133 </tr>
123134 <tr>
124135 <td class="paramkey"></td>
125136 <td></td>
126137 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
127 <td class="paramname"> <em>cpuset</em>, </td>
138 <td class="paramname"><em>cpuset</em>, </td>
128139 </tr>
129140 <tr>
130141 <td class="paramkey"></td>
131142 <td></td>
132143 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
133 <td class="paramname"> <em>nodeset</em>&#160;</td>
144 <td class="paramname"><em>nodeset</em>&#160;</td>
134145 </tr>
135146 <tr>
136147 <td></td>
155166 <td class="memname">static inline void hwloc_cpuset_to_nodeset_strict </td>
156167 <td>(</td>
157168 <td class="paramtype">struct hwloc_topology *&#160;</td>
158 <td class="paramname"> <em>topology</em>, </td>
169 <td class="paramname"><em>topology</em>, </td>
159170 </tr>
160171 <tr>
161172 <td class="paramkey"></td>
162173 <td></td>
163174 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
164 <td class="paramname"> <em>cpuset</em>, </td>
175 <td class="paramname"><em>cpuset</em>, </td>
165176 </tr>
166177 <tr>
167178 <td class="paramkey"></td>
168179 <td></td>
169180 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
170 <td class="paramname"> <em>nodeset</em>&#160;</td>
181 <td class="paramname"><em>nodeset</em>&#160;</td>
171182 </tr>
172183 <tr>
173184 <td></td>
184195 </div>
185196 </div>
186197 </div>
187 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
198 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
188199 <a href="http://www.doxygen.org/index.html">
189 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
200 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
190201 </body>
191202 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
125136 <tr>
126137 <td class="memname">#define hwloc_bitmap_foreach_end</td>
127138 <td>(</td>
128 <td class="paramname">&#160;)</td>
139 <td class="paramname"></td><td>)</td>
129140 <td></td>
130141 </tr>
131142 </table>
177188 <td class="memname"> void hwloc_bitmap_allbut </td>
178189 <td>(</td>
179190 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
180 <td class="paramname"> <em>bitmap</em>, </td>
191 <td class="paramname"><em>bitmap</em>, </td>
181192 </tr>
182193 <tr>
183194 <td class="paramkey"></td>
184195 <td></td>
185196 <td class="paramtype">unsigned&#160;</td>
186 <td class="paramname"> <em>id</em>&#160;</td>
197 <td class="paramname"><em>id</em>&#160;</td>
187198 </tr>
188199 <tr>
189200 <td></td>
206217 <td class="memname"> <a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a> hwloc_bitmap_alloc </td>
207218 <td>(</td>
208219 <td class="paramtype">void&#160;</td>
209 <td class="paramname">&#160;)</td>
220 <td class="paramname"></td><td>)</td>
210221 <td></td>
211222 </tr>
212223 </table>
214225 <div class="memdoc">
215226
216227 <p>Allocate a new empty bitmap. </p>
217 <dl class="return"><dt><b>Returns:</b></dt><dd>A valid bitmap or NULL.</dd></dl>
228 <dl class="return"><dt><b>Returns:</b></dt><dd>A valid bitmap or <code>NULL</code>.</dd></dl>
218229 <p>The bitmap should be freed by a corresponding call to <a class="el" href="a00056.html#ga8e7035fe555ef96921bfb98e08519bc7" title="Free bitmap bitmap.">hwloc_bitmap_free()</a>. </p>
219230
220231 </div>
227238 <td class="memname"> <a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a> hwloc_bitmap_alloc_full </td>
228239 <td>(</td>
229240 <td class="paramtype">void&#160;</td>
230 <td class="paramname">&#160;)</td>
241 <td class="paramname"></td><td>)</td>
231242 <td></td>
232243 </tr>
233244 </table>
246257 <td class="memname"> void hwloc_bitmap_and </td>
247258 <td>(</td>
248259 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
249 <td class="paramname"> <em>res</em>, </td>
250 </tr>
251 <tr>
252 <td class="paramkey"></td>
253 <td></td>
254 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
255 <td class="paramname"> <em>bitmap1</em>, </td>
256 </tr>
257 <tr>
258 <td class="paramkey"></td>
259 <td></td>
260 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
261 <td class="paramname"> <em>bitmap2</em>&#160;</td>
260 <td class="paramname"><em>res</em>, </td>
261 </tr>
262 <tr>
263 <td class="paramkey"></td>
264 <td></td>
265 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
266 <td class="paramname"><em>bitmap1</em>, </td>
267 </tr>
268 <tr>
269 <td class="paramkey"></td>
270 <td></td>
271 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
272 <td class="paramname"><em>bitmap2</em>&#160;</td>
262273 </tr>
263274 <tr>
264275 <td></td>
281292 <td class="memname"> void hwloc_bitmap_andnot </td>
282293 <td>(</td>
283294 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
284 <td class="paramname"> <em>res</em>, </td>
285 </tr>
286 <tr>
287 <td class="paramkey"></td>
288 <td></td>
289 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
290 <td class="paramname"> <em>bitmap1</em>, </td>
291 </tr>
292 <tr>
293 <td class="paramkey"></td>
294 <td></td>
295 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
296 <td class="paramname"> <em>bitmap2</em>&#160;</td>
295 <td class="paramname"><em>res</em>, </td>
296 </tr>
297 <tr>
298 <td class="paramkey"></td>
299 <td></td>
300 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
301 <td class="paramname"><em>bitmap1</em>, </td>
302 </tr>
303 <tr>
304 <td class="paramkey"></td>
305 <td></td>
306 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
307 <td class="paramname"><em>bitmap2</em>&#160;</td>
297308 </tr>
298309 <tr>
299310 <td></td>
316327 <td class="memname"> int hwloc_bitmap_asprintf </td>
317328 <td>(</td>
318329 <td class="paramtype">char **&#160;</td>
319 <td class="paramname"> <em>strp</em>, </td>
320 </tr>
321 <tr>
322 <td class="paramkey"></td>
323 <td></td>
324 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
325 <td class="paramname"> <em>bitmap</em>&#160;</td>
330 <td class="paramname"><em>strp</em>, </td>
331 </tr>
332 <tr>
333 <td class="paramkey"></td>
334 <td></td>
335 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
336 <td class="paramname"><em>bitmap</em>&#160;</td>
326337 </tr>
327338 <tr>
328339 <td></td>
345356 <td class="memname"> void hwloc_bitmap_clr </td>
346357 <td>(</td>
347358 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
348 <td class="paramname"> <em>bitmap</em>, </td>
359 <td class="paramname"><em>bitmap</em>, </td>
349360 </tr>
350361 <tr>
351362 <td class="paramkey"></td>
352363 <td></td>
353364 <td class="paramtype">unsigned&#160;</td>
354 <td class="paramname"> <em>id</em>&#160;</td>
365 <td class="paramname"><em>id</em>&#160;</td>
355366 </tr>
356367 <tr>
357368 <td></td>
374385 <td class="memname"> void hwloc_bitmap_clr_range </td>
375386 <td>(</td>
376387 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
377 <td class="paramname"> <em>bitmap</em>, </td>
388 <td class="paramname"><em>bitmap</em>, </td>
378389 </tr>
379390 <tr>
380391 <td class="paramkey"></td>
381392 <td></td>
382393 <td class="paramtype">unsigned&#160;</td>
383 <td class="paramname"> <em>begin</em>, </td>
394 <td class="paramname"><em>begin</em>, </td>
384395 </tr>
385396 <tr>
386397 <td class="paramkey"></td>
387398 <td></td>
388399 <td class="paramtype">unsigned&#160;</td>
389 <td class="paramname"> <em>end</em>&#160;</td>
390 </tr>
391 <tr>
392 <td></td>
393 <td>)</td>
394 <td></td><td></td>
395 </tr>
396 </table>
397 </div>
398 <div class="memdoc">
399
400 <p>Remove index from <code>begin</code> to <code>end</code> in bitmap <code>bitmap</code>. </p>
400 <td class="paramname"><em>end</em>&#160;</td>
401 </tr>
402 <tr>
403 <td></td>
404 <td>)</td>
405 <td></td><td></td>
406 </tr>
407 </table>
408 </div>
409 <div class="memdoc">
410
411 <p>Remove indexes from <code>begin</code> to <code>end</code> in bitmap <code>bitmap</code>. </p>
401412
402413 </div>
403414 </div>
409420 <td class="memname"> int hwloc_bitmap_compare </td>
410421 <td>(</td>
411422 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
412 <td class="paramname"> <em>bitmap1</em>, </td>
413 </tr>
414 <tr>
415 <td class="paramkey"></td>
416 <td></td>
417 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
418 <td class="paramname"> <em>bitmap2</em>&#160;</td>
423 <td class="paramname"><em>bitmap1</em>, </td>
424 </tr>
425 <tr>
426 <td class="paramkey"></td>
427 <td></td>
428 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
429 <td class="paramname"><em>bitmap2</em>&#160;</td>
419430 </tr>
420431 <tr>
421432 <td></td>
439450 <td class="memname"> int hwloc_bitmap_compare_first </td>
440451 <td>(</td>
441452 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
442 <td class="paramname"> <em>bitmap1</em>, </td>
443 </tr>
444 <tr>
445 <td class="paramkey"></td>
446 <td></td>
447 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
448 <td class="paramname"> <em>bitmap2</em>&#160;</td>
453 <td class="paramname"><em>bitmap1</em>, </td>
454 </tr>
455 <tr>
456 <td class="paramkey"></td>
457 <td></td>
458 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
459 <td class="paramname"><em>bitmap2</em>&#160;</td>
449460 </tr>
450461 <tr>
451462 <td></td>
469480 <td class="memname"> void hwloc_bitmap_copy </td>
470481 <td>(</td>
471482 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
472 <td class="paramname"> <em>dst</em>, </td>
473 </tr>
474 <tr>
475 <td class="paramkey"></td>
476 <td></td>
477 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
478 <td class="paramname"> <em>src</em>&#160;</td>
483 <td class="paramname"><em>dst</em>, </td>
484 </tr>
485 <tr>
486 <td class="paramkey"></td>
487 <td></td>
488 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
489 <td class="paramname"><em>src</em>&#160;</td>
479490 </tr>
480491 <tr>
481492 <td></td>
498509 <td class="memname"> <a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a> hwloc_bitmap_dup </td>
499510 <td>(</td>
500511 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
501 <td class="paramname"> <em>bitmap</em>&#160;)</td>
512 <td class="paramname"><em>bitmap</em></td><td>)</td>
502513 <td></td>
503514 </tr>
504515 </table>
517528 <td class="memname"> void hwloc_bitmap_fill </td>
518529 <td>(</td>
519530 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
520 <td class="paramname"> <em>bitmap</em>&#160;)</td>
531 <td class="paramname"><em>bitmap</em></td><td>)</td>
521532 <td></td>
522533 </tr>
523534 </table>
536547 <td class="memname"> int hwloc_bitmap_first </td>
537548 <td>(</td>
538549 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
539 <td class="paramname"> <em>bitmap</em>&#160;)</td>
550 <td class="paramname"><em>bitmap</em></td><td>)</td>
540551 <td></td>
541552 </tr>
542553 </table>
556567 <td class="memname"> void hwloc_bitmap_free </td>
557568 <td>(</td>
558569 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
559 <td class="paramname"> <em>bitmap</em>&#160;)</td>
570 <td class="paramname"><em>bitmap</em></td><td>)</td>
560571 <td></td>
561572 </tr>
562573 </table>
564575 <div class="memdoc">
565576
566577 <p>Free bitmap <code>bitmap</code>. </p>
578 <p>If <code>bitmap</code> is <code>NULL</code>, no operation is performed. </p>
567579
568580 </div>
569581 </div>
575587 <td class="memname"> void hwloc_bitmap_from_ith_ulong </td>
576588 <td>(</td>
577589 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
578 <td class="paramname"> <em>bitmap</em>, </td>
590 <td class="paramname"><em>bitmap</em>, </td>
579591 </tr>
580592 <tr>
581593 <td class="paramkey"></td>
582594 <td></td>
583595 <td class="paramtype">unsigned&#160;</td>
584 <td class="paramname"> <em>i</em>, </td>
596 <td class="paramname"><em>i</em>, </td>
585597 </tr>
586598 <tr>
587599 <td class="paramkey"></td>
588600 <td></td>
589601 <td class="paramtype">unsigned long&#160;</td>
590 <td class="paramname"> <em>mask</em>&#160;</td>
602 <td class="paramname"><em>mask</em>&#160;</td>
591603 </tr>
592604 <tr>
593605 <td></td>
610622 <td class="memname"> void hwloc_bitmap_from_ulong </td>
611623 <td>(</td>
612624 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
613 <td class="paramname"> <em>bitmap</em>, </td>
625 <td class="paramname"><em>bitmap</em>, </td>
614626 </tr>
615627 <tr>
616628 <td class="paramkey"></td>
617629 <td></td>
618630 <td class="paramtype">unsigned long&#160;</td>
619 <td class="paramname"> <em>mask</em>&#160;</td>
631 <td class="paramname"><em>mask</em>&#160;</td>
620632 </tr>
621633 <tr>
622634 <td></td>
639651 <td class="memname"> int hwloc_bitmap_intersects </td>
640652 <td>(</td>
641653 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
642 <td class="paramname"> <em>bitmap1</em>, </td>
643 </tr>
644 <tr>
645 <td class="paramkey"></td>
646 <td></td>
647 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
648 <td class="paramname"> <em>bitmap2</em>&#160;</td>
654 <td class="paramname"><em>bitmap1</em>, </td>
655 </tr>
656 <tr>
657 <td class="paramkey"></td>
658 <td></td>
659 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
660 <td class="paramname"><em>bitmap2</em>&#160;</td>
649661 </tr>
650662 <tr>
651663 <td></td>
668680 <td class="memname"> int hwloc_bitmap_isequal </td>
669681 <td>(</td>
670682 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
671 <td class="paramname"> <em>bitmap1</em>, </td>
672 </tr>
673 <tr>
674 <td class="paramkey"></td>
675 <td></td>
676 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
677 <td class="paramname"> <em>bitmap2</em>&#160;</td>
683 <td class="paramname"><em>bitmap1</em>, </td>
684 </tr>
685 <tr>
686 <td class="paramkey"></td>
687 <td></td>
688 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
689 <td class="paramname"><em>bitmap2</em>&#160;</td>
678690 </tr>
679691 <tr>
680692 <td></td>
697709 <td class="memname"> int hwloc_bitmap_isfull </td>
698710 <td>(</td>
699711 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
700 <td class="paramname"> <em>bitmap</em>&#160;)</td>
712 <td class="paramname"><em>bitmap</em></td><td>)</td>
701713 <td></td>
702714 </tr>
703715 </table>
716728 <td class="memname"> int hwloc_bitmap_isincluded </td>
717729 <td>(</td>
718730 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
719 <td class="paramname"> <em>sub_bitmap</em>, </td>
720 </tr>
721 <tr>
722 <td class="paramkey"></td>
723 <td></td>
724 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
725 <td class="paramname"> <em>super_bitmap</em>&#160;</td>
731 <td class="paramname"><em>sub_bitmap</em>, </td>
732 </tr>
733 <tr>
734 <td class="paramkey"></td>
735 <td></td>
736 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
737 <td class="paramname"><em>super_bitmap</em>&#160;</td>
726738 </tr>
727739 <tr>
728740 <td></td>
745757 <td class="memname"> int hwloc_bitmap_isset </td>
746758 <td>(</td>
747759 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
748 <td class="paramname"> <em>bitmap</em>, </td>
760 <td class="paramname"><em>bitmap</em>, </td>
749761 </tr>
750762 <tr>
751763 <td class="paramkey"></td>
752764 <td></td>
753765 <td class="paramtype">unsigned&#160;</td>
754 <td class="paramname"> <em>id</em>&#160;</td>
766 <td class="paramname"><em>id</em>&#160;</td>
755767 </tr>
756768 <tr>
757769 <td></td>
774786 <td class="memname"> int hwloc_bitmap_iszero </td>
775787 <td>(</td>
776788 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
777 <td class="paramname"> <em>bitmap</em>&#160;)</td>
789 <td class="paramname"><em>bitmap</em></td><td>)</td>
778790 <td></td>
779791 </tr>
780792 </table>
793805 <td class="memname"> int hwloc_bitmap_last </td>
794806 <td>(</td>
795807 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
796 <td class="paramname"> <em>bitmap</em>&#160;)</td>
808 <td class="paramname"><em>bitmap</em></td><td>)</td>
797809 <td></td>
798810 </tr>
799811 </table>
813825 <td class="memname"> int hwloc_bitmap_next </td>
814826 <td>(</td>
815827 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
816 <td class="paramname"> <em>bitmap</em>, </td>
828 <td class="paramname"><em>bitmap</em>, </td>
817829 </tr>
818830 <tr>
819831 <td class="paramkey"></td>
820832 <td></td>
821833 <td class="paramtype">unsigned&#160;</td>
822 <td class="paramname"> <em>prev</em>&#160;</td>
834 <td class="paramname"><em>prev</em>&#160;</td>
823835 </tr>
824836 <tr>
825837 <td></td>
843855 <td class="memname"> void hwloc_bitmap_not </td>
844856 <td>(</td>
845857 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
846 <td class="paramname"> <em>res</em>, </td>
847 </tr>
848 <tr>
849 <td class="paramkey"></td>
850 <td></td>
851 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
852 <td class="paramname"> <em>bitmap</em>&#160;</td>
858 <td class="paramname"><em>res</em>, </td>
859 </tr>
860 <tr>
861 <td class="paramkey"></td>
862 <td></td>
863 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
864 <td class="paramname"><em>bitmap</em>&#160;</td>
853865 </tr>
854866 <tr>
855867 <td></td>
872884 <td class="memname"> void hwloc_bitmap_only </td>
873885 <td>(</td>
874886 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
875 <td class="paramname"> <em>bitmap</em>, </td>
887 <td class="paramname"><em>bitmap</em>, </td>
876888 </tr>
877889 <tr>
878890 <td class="paramkey"></td>
879891 <td></td>
880892 <td class="paramtype">unsigned&#160;</td>
881 <td class="paramname"> <em>id</em>&#160;</td>
893 <td class="paramname"><em>id</em>&#160;</td>
882894 </tr>
883895 <tr>
884896 <td></td>
901913 <td class="memname"> void hwloc_bitmap_or </td>
902914 <td>(</td>
903915 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
904 <td class="paramname"> <em>res</em>, </td>
905 </tr>
906 <tr>
907 <td class="paramkey"></td>
908 <td></td>
909 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
910 <td class="paramname"> <em>bitmap1</em>, </td>
911 </tr>
912 <tr>
913 <td class="paramkey"></td>
914 <td></td>
915 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
916 <td class="paramname"> <em>bitmap2</em>&#160;</td>
916 <td class="paramname"><em>res</em>, </td>
917 </tr>
918 <tr>
919 <td class="paramkey"></td>
920 <td></td>
921 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
922 <td class="paramname"><em>bitmap1</em>, </td>
923 </tr>
924 <tr>
925 <td class="paramkey"></td>
926 <td></td>
927 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
928 <td class="paramname"><em>bitmap2</em>&#160;</td>
917929 </tr>
918930 <tr>
919931 <td></td>
936948 <td class="memname"> void hwloc_bitmap_set </td>
937949 <td>(</td>
938950 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
939 <td class="paramname"> <em>bitmap</em>, </td>
951 <td class="paramname"><em>bitmap</em>, </td>
940952 </tr>
941953 <tr>
942954 <td class="paramkey"></td>
943955 <td></td>
944956 <td class="paramtype">unsigned&#160;</td>
945 <td class="paramname"> <em>id</em>&#160;</td>
957 <td class="paramname"><em>id</em>&#160;</td>
946958 </tr>
947959 <tr>
948960 <td></td>
965977 <td class="memname"> void hwloc_bitmap_set_ith_ulong </td>
966978 <td>(</td>
967979 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
968 <td class="paramname"> <em>bitmap</em>, </td>
980 <td class="paramname"><em>bitmap</em>, </td>
969981 </tr>
970982 <tr>
971983 <td class="paramkey"></td>
972984 <td></td>
973985 <td class="paramtype">unsigned&#160;</td>
974 <td class="paramname"> <em>i</em>, </td>
986 <td class="paramname"><em>i</em>, </td>
975987 </tr>
976988 <tr>
977989 <td class="paramkey"></td>
978990 <td></td>
979991 <td class="paramtype">unsigned long&#160;</td>
980 <td class="paramname"> <em>mask</em>&#160;</td>
992 <td class="paramname"><em>mask</em>&#160;</td>
981993 </tr>
982994 <tr>
983995 <td></td>
10001012 <td class="memname"> void hwloc_bitmap_set_range </td>
10011013 <td>(</td>
10021014 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1003 <td class="paramname"> <em>bitmap</em>, </td>
1015 <td class="paramname"><em>bitmap</em>, </td>
10041016 </tr>
10051017 <tr>
10061018 <td class="paramkey"></td>
10071019 <td></td>
10081020 <td class="paramtype">unsigned&#160;</td>
1009 <td class="paramname"> <em>begin</em>, </td>
1021 <td class="paramname"><em>begin</em>, </td>
10101022 </tr>
10111023 <tr>
10121024 <td class="paramkey"></td>
10131025 <td></td>
10141026 <td class="paramtype">unsigned&#160;</td>
1015 <td class="paramname"> <em>end</em>&#160;</td>
1016 </tr>
1017 <tr>
1018 <td></td>
1019 <td>)</td>
1020 <td></td><td></td>
1021 </tr>
1022 </table>
1023 </div>
1024 <div class="memdoc">
1025
1026 <p>Add indexess from <code>begin</code> to <code>end</code> in bitmap <code>bitmap</code>. </p>
1027 <td class="paramname"><em>end</em>&#160;</td>
1028 </tr>
1029 <tr>
1030 <td></td>
1031 <td>)</td>
1032 <td></td><td></td>
1033 </tr>
1034 </table>
1035 </div>
1036 <div class="memdoc">
1037
1038 <p>Add indexes from <code>begin</code> to <code>end</code> in bitmap <code>bitmap</code>. </p>
10271039
10281040 </div>
10291041 </div>
10351047 <td class="memname"> void hwloc_bitmap_singlify </td>
10361048 <td>(</td>
10371049 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1038 <td class="paramname"> <em>bitmap</em>&#160;)</td>
1050 <td class="paramname"><em>bitmap</em></td><td>)</td>
10391051 <td></td>
10401052 </tr>
10411053 </table>
10551067 <td class="memname"> int hwloc_bitmap_snprintf </td>
10561068 <td>(</td>
10571069 <td class="paramtype">char *restrict&#160;</td>
1058 <td class="paramname"> <em>buf</em>, </td>
1070 <td class="paramname"><em>buf</em>, </td>
10591071 </tr>
10601072 <tr>
10611073 <td class="paramkey"></td>
10621074 <td></td>
10631075 <td class="paramtype">size_t&#160;</td>
1064 <td class="paramname"> <em>buflen</em>, </td>
1065 </tr>
1066 <tr>
1067 <td class="paramkey"></td>
1068 <td></td>
1069 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1070 <td class="paramname"> <em>bitmap</em>&#160;</td>
1076 <td class="paramname"><em>buflen</em>, </td>
1077 </tr>
1078 <tr>
1079 <td class="paramkey"></td>
1080 <td></td>
1081 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1082 <td class="paramname"><em>bitmap</em>&#160;</td>
10711083 </tr>
10721084 <tr>
10731085 <td></td>
10931105 <td class="memname"> int hwloc_bitmap_sscanf </td>
10941106 <td>(</td>
10951107 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1096 <td class="paramname"> <em>bitmap</em>, </td>
1108 <td class="paramname"><em>bitmap</em>, </td>
10971109 </tr>
10981110 <tr>
10991111 <td class="paramkey"></td>
11001112 <td></td>
11011113 <td class="paramtype">const char *restrict&#160;</td>
1102 <td class="paramname"> <em>string</em>&#160;</td>
1114 <td class="paramname"><em>string</em>&#160;</td>
11031115 </tr>
11041116 <tr>
11051117 <td></td>
11221134 <td class="memname"> int hwloc_bitmap_taskset_asprintf </td>
11231135 <td>(</td>
11241136 <td class="paramtype">char **&#160;</td>
1125 <td class="paramname"> <em>strp</em>, </td>
1126 </tr>
1127 <tr>
1128 <td class="paramkey"></td>
1129 <td></td>
1130 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1131 <td class="paramname"> <em>bitmap</em>&#160;</td>
1137 <td class="paramname"><em>strp</em>, </td>
1138 </tr>
1139 <tr>
1140 <td class="paramkey"></td>
1141 <td></td>
1142 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1143 <td class="paramname"><em>bitmap</em>&#160;</td>
11321144 </tr>
11331145 <tr>
11341146 <td></td>
11511163 <td class="memname"> int hwloc_bitmap_taskset_snprintf </td>
11521164 <td>(</td>
11531165 <td class="paramtype">char *restrict&#160;</td>
1154 <td class="paramname"> <em>buf</em>, </td>
1166 <td class="paramname"><em>buf</em>, </td>
11551167 </tr>
11561168 <tr>
11571169 <td class="paramkey"></td>
11581170 <td></td>
11591171 <td class="paramtype">size_t&#160;</td>
1160 <td class="paramname"> <em>buflen</em>, </td>
1161 </tr>
1162 <tr>
1163 <td class="paramkey"></td>
1164 <td></td>
1165 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1166 <td class="paramname"> <em>bitmap</em>&#160;</td>
1172 <td class="paramname"><em>buflen</em>, </td>
1173 </tr>
1174 <tr>
1175 <td class="paramkey"></td>
1176 <td></td>
1177 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1178 <td class="paramname"><em>bitmap</em>&#160;</td>
11671179 </tr>
11681180 <tr>
11691181 <td></td>
11901202 <td class="memname"> int hwloc_bitmap_taskset_sscanf </td>
11911203 <td>(</td>
11921204 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1193 <td class="paramname"> <em>bitmap</em>, </td>
1205 <td class="paramname"><em>bitmap</em>, </td>
11941206 </tr>
11951207 <tr>
11961208 <td class="paramkey"></td>
11971209 <td></td>
11981210 <td class="paramtype">const char *restrict&#160;</td>
1199 <td class="paramname"> <em>string</em>&#160;</td>
1211 <td class="paramname"><em>string</em>&#160;</td>
12001212 </tr>
12011213 <tr>
12021214 <td></td>
12191231 <td class="memname"> unsigned long hwloc_bitmap_to_ith_ulong </td>
12201232 <td>(</td>
12211233 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1222 <td class="paramname"> <em>bitmap</em>, </td>
1234 <td class="paramname"><em>bitmap</em>, </td>
12231235 </tr>
12241236 <tr>
12251237 <td class="paramkey"></td>
12261238 <td></td>
12271239 <td class="paramtype">unsigned&#160;</td>
1228 <td class="paramname"> <em>i</em>&#160;</td>
1240 <td class="paramname"><em>i</em>&#160;</td>
12291241 </tr>
12301242 <tr>
12311243 <td></td>
12481260 <td class="memname"> unsigned long hwloc_bitmap_to_ulong </td>
12491261 <td>(</td>
12501262 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1251 <td class="paramname"> <em>bitmap</em>&#160;)</td>
1263 <td class="paramname"><em>bitmap</em></td><td>)</td>
12521264 <td></td>
12531265 </tr>
12541266 </table>
12671279 <td class="memname"> int hwloc_bitmap_weight </td>
12681280 <td>(</td>
12691281 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1270 <td class="paramname"> <em>bitmap</em>&#160;)</td>
1282 <td class="paramname"><em>bitmap</em></td><td>)</td>
12711283 <td></td>
12721284 </tr>
12731285 </table>
12871299 <td class="memname"> void hwloc_bitmap_xor </td>
12881300 <td>(</td>
12891301 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1290 <td class="paramname"> <em>res</em>, </td>
1291 </tr>
1292 <tr>
1293 <td class="paramkey"></td>
1294 <td></td>
1295 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1296 <td class="paramname"> <em>bitmap1</em>, </td>
1297 </tr>
1298 <tr>
1299 <td class="paramkey"></td>
1300 <td></td>
1301 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1302 <td class="paramname"> <em>bitmap2</em>&#160;</td>
1302 <td class="paramname"><em>res</em>, </td>
1303 </tr>
1304 <tr>
1305 <td class="paramkey"></td>
1306 <td></td>
1307 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1308 <td class="paramname"><em>bitmap1</em>, </td>
1309 </tr>
1310 <tr>
1311 <td class="paramkey"></td>
1312 <td></td>
1313 <td class="paramtype"><a class="el" href="a00056.html#ga2fb1bbc8aea1ea22dee2f0fd39659f48">hwloc_const_bitmap_t</a>&#160;</td>
1314 <td class="paramname"><em>bitmap2</em>&#160;</td>
13031315 </tr>
13041316 <tr>
13051317 <td></td>
13221334 <td class="memname"> void hwloc_bitmap_zero </td>
13231335 <td>(</td>
13241336 <td class="paramtype"><a class="el" href="a00056.html#gaa3c2bf4c776d603dcebbb61b0c923d84">hwloc_bitmap_t</a>&#160;</td>
1325 <td class="paramname"> <em>bitmap</em>&#160;)</td>
1337 <td class="paramname"><em>bitmap</em></td><td>)</td>
13261338 <td></td>
13271339 </tr>
13281340 </table>
13341346 </div>
13351347 </div>
13361348 </div>
1337 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
1349 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
13381350 <a href="http://www.doxygen.org/index.html">
1339 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
1351 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
13401352 </body>
13411353 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4051 <td class="memname">static inline int hwloc_cpuset_from_glibc_sched_affinity </td>
4152 <td>(</td>
4253 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
43 <td class="paramname"> <em></em>, </td>
54 <td class="paramname"><em></em>, </td>
4455 </tr>
4556 <tr>
4657 <td class="paramkey"></td>
4758 <td></td>
4859 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
49 <td class="paramname"> <em>hwlocset</em>, </td>
60 <td class="paramname"><em>hwlocset</em>, </td>
5061 </tr>
5162 <tr>
5263 <td class="paramkey"></td>
5364 <td></td>
5465 <td class="paramtype">const cpu_set_t *&#160;</td>
55 <td class="paramname"> <em>schedset</em>, </td>
66 <td class="paramname"><em>schedset</em>, </td>
5667 </tr>
5768 <tr>
5869 <td class="paramkey"></td>
5970 <td></td>
6071 <td class="paramtype">size_t&#160;</td>
61 <td class="paramname"> <em>schedsetsize</em>&#160;</td>
72 <td class="paramname"><em>schedsetsize</em>&#160;</td>
6273 </tr>
6374 <tr>
6475 <td></td>
8394 <td class="memname">static inline int hwloc_cpuset_to_glibc_sched_affinity </td>
8495 <td>(</td>
8596 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
86 <td class="paramname"> <em></em>, </td>
97 <td class="paramname"><em></em>, </td>
8798 </tr>
8899 <tr>
89100 <td class="paramkey"></td>
90101 <td></td>
91102 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
92 <td class="paramname"> <em>hwlocset</em>, </td>
103 <td class="paramname"><em>hwlocset</em>, </td>
93104 </tr>
94105 <tr>
95106 <td class="paramkey"></td>
96107 <td></td>
97108 <td class="paramtype">cpu_set_t *&#160;</td>
98 <td class="paramname"> <em>schedset</em>, </td>
109 <td class="paramname"><em>schedset</em>, </td>
99110 </tr>
100111 <tr>
101112 <td class="paramkey"></td>
102113 <td></td>
103114 <td class="paramtype">size_t&#160;</td>
104 <td class="paramname"> <em>schedsetsize</em>&#160;</td>
115 <td class="paramname"><em>schedsetsize</em>&#160;</td>
105116 </tr>
106117 <tr>
107118 <td></td>
119130 </div>
120131 </div>
121132 </div>
122 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
133 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
123134 <a href="http://www.doxygen.org/index.html">
124 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
135 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
125136 </body>
126137 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4354 <td class="memname"> int hwloc_linux_get_tid_cpubind </td>
4455 <td>(</td>
4556 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
46 <td class="paramname"> <em>topology</em>, </td>
57 <td class="paramname"><em>topology</em>, </td>
4758 </tr>
4859 <tr>
4960 <td class="paramkey"></td>
5061 <td></td>
5162 <td class="paramtype">pid_t&#160;</td>
52 <td class="paramname"> <em>tid</em>, </td>
63 <td class="paramname"><em>tid</em>, </td>
5364 </tr>
5465 <tr>
5566 <td class="paramkey"></td>
5667 <td></td>
5768 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
58 <td class="paramname"> <em>set</em>&#160;</td>
69 <td class="paramname"><em>set</em>&#160;</td>
5970 </tr>
6071 <tr>
6172 <td></td>
7990 <td class="memname"> int hwloc_linux_parse_cpumap_file </td>
8091 <td>(</td>
8192 <td class="paramtype">FILE *&#160;</td>
82 <td class="paramname"> <em>file</em>, </td>
93 <td class="paramname"><em>file</em>, </td>
8394 </tr>
8495 <tr>
8596 <td class="paramkey"></td>
8697 <td></td>
8798 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
88 <td class="paramname"> <em>set</em>&#160;</td>
99 <td class="paramname"><em>set</em>&#160;</td>
89100 </tr>
90101 <tr>
91102 <td></td>
109120 <td class="memname"> int hwloc_linux_set_tid_cpubind </td>
110121 <td>(</td>
111122 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
112 <td class="paramname"> <em>topology</em>, </td>
123 <td class="paramname"><em>topology</em>, </td>
113124 </tr>
114125 <tr>
115126 <td class="paramkey"></td>
116127 <td></td>
117128 <td class="paramtype">pid_t&#160;</td>
118 <td class="paramname"> <em>tid</em>, </td>
129 <td class="paramname"><em>tid</em>, </td>
119130 </tr>
120131 <tr>
121132 <td class="paramkey"></td>
122133 <td></td>
123134 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
124 <td class="paramname"> <em>set</em>&#160;</td>
135 <td class="paramname"><em>set</em>&#160;</td>
125136 </tr>
126137 <tr>
127138 <td></td>
138149 </div>
139150 </div>
140151 </div>
141 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
152 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
142153 <a href="http://www.doxygen.org/index.html">
143 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
154 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
144155 </body>
145156 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname">static inline int hwloc_cpuset_from_linux_libnuma_ulongs </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
51 <td class="paramname"> <em>cpuset</em>, </td>
62 <td class="paramname"><em>cpuset</em>, </td>
5263 </tr>
5364 <tr>
5465 <td class="paramkey"></td>
5566 <td></td>
5667 <td class="paramtype">const unsigned long *&#160;</td>
57 <td class="paramname"> <em>mask</em>, </td>
68 <td class="paramname"><em>mask</em>, </td>
5869 </tr>
5970 <tr>
6071 <td class="paramkey"></td>
6172 <td></td>
6273 <td class="paramtype">unsigned long&#160;</td>
63 <td class="paramname"> <em>maxnode</em>&#160;</td>
74 <td class="paramname"><em>maxnode</em>&#160;</td>
6475 </tr>
6576 <tr>
6677 <td></td>
8596 <td class="memname">static inline int hwloc_cpuset_to_linux_libnuma_ulongs </td>
8697 <td>(</td>
8798 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
88 <td class="paramname"> <em>topology</em>, </td>
99 <td class="paramname"><em>topology</em>, </td>
89100 </tr>
90101 <tr>
91102 <td class="paramkey"></td>
92103 <td></td>
93104 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
94 <td class="paramname"> <em>cpuset</em>, </td>
95 </tr>
96 <tr>
97 <td class="paramkey"></td>
98 <td></td>
99 <td class="paramtype">unsigned long *&#160;</td>
100 <td class="paramname"> <em>mask</em>, </td>
101 </tr>
102 <tr>
103 <td class="paramkey"></td>
104 <td></td>
105 <td class="paramtype">unsigned long *&#160;</td>
106 <td class="paramname"> <em>maxnode</em>&#160;</td>
105 <td class="paramname"><em>cpuset</em>, </td>
106 </tr>
107 <tr>
108 <td class="paramkey"></td>
109 <td></td>
110 <td class="paramtype">unsigned long *&#160;</td>
111 <td class="paramname"><em>mask</em>, </td>
112 </tr>
113 <tr>
114 <td class="paramkey"></td>
115 <td></td>
116 <td class="paramtype">unsigned long *&#160;</td>
117 <td class="paramname"><em>maxnode</em>&#160;</td>
107118 </tr>
108119 <tr>
109120 <td></td>
128139 <td class="memname">static inline int hwloc_nodeset_from_linux_libnuma_ulongs </td>
129140 <td>(</td>
130141 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
131 <td class="paramname"> <em>topology</em>, </td>
142 <td class="paramname"><em>topology</em>, </td>
132143 </tr>
133144 <tr>
134145 <td class="paramkey"></td>
135146 <td></td>
136147 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
137 <td class="paramname"> <em>nodeset</em>, </td>
148 <td class="paramname"><em>nodeset</em>, </td>
138149 </tr>
139150 <tr>
140151 <td class="paramkey"></td>
141152 <td></td>
142153 <td class="paramtype">const unsigned long *&#160;</td>
143 <td class="paramname"> <em>mask</em>, </td>
154 <td class="paramname"><em>mask</em>, </td>
144155 </tr>
145156 <tr>
146157 <td class="paramkey"></td>
147158 <td></td>
148159 <td class="paramtype">unsigned long&#160;</td>
149 <td class="paramname"> <em>maxnode</em>&#160;</td>
160 <td class="paramname"><em>maxnode</em>&#160;</td>
150161 </tr>
151162 <tr>
152163 <td></td>
171182 <td class="memname">static inline int hwloc_nodeset_to_linux_libnuma_ulongs </td>
172183 <td>(</td>
173184 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
174 <td class="paramname"> <em>topology</em>, </td>
185 <td class="paramname"><em>topology</em>, </td>
175186 </tr>
176187 <tr>
177188 <td class="paramkey"></td>
178189 <td></td>
179190 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
180 <td class="paramname"> <em>nodeset</em>, </td>
181 </tr>
182 <tr>
183 <td class="paramkey"></td>
184 <td></td>
185 <td class="paramtype">unsigned long *&#160;</td>
186 <td class="paramname"> <em>mask</em>, </td>
187 </tr>
188 <tr>
189 <td class="paramkey"></td>
190 <td></td>
191 <td class="paramtype">unsigned long *&#160;</td>
192 <td class="paramname"> <em>maxnode</em>&#160;</td>
191 <td class="paramname"><em>nodeset</em>, </td>
192 </tr>
193 <tr>
194 <td class="paramkey"></td>
195 <td></td>
196 <td class="paramtype">unsigned long *&#160;</td>
197 <td class="paramname"><em>mask</em>, </td>
198 </tr>
199 <tr>
200 <td class="paramkey"></td>
201 <td></td>
202 <td class="paramtype">unsigned long *&#160;</td>
203 <td class="paramname"><em>maxnode</em>&#160;</td>
193204 </tr>
194205 <tr>
195206 <td></td>
207218 </div>
208219 </div>
209220 </div>
210 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
221 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
211222 <a href="http://www.doxygen.org/index.html">
212 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
223 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
213224 </body>
214225 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4657 <td class="memname">static inline int hwloc_cpuset_from_linux_libnuma_bitmask </td>
4758 <td>(</td>
4859 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
49 <td class="paramname"> <em>topology</em>, </td>
60 <td class="paramname"><em>topology</em>, </td>
5061 </tr>
5162 <tr>
5263 <td class="paramkey"></td>
5364 <td></td>
5465 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
55 <td class="paramname"> <em>cpuset</em>, </td>
66 <td class="paramname"><em>cpuset</em>, </td>
5667 </tr>
5768 <tr>
5869 <td class="paramkey"></td>
5970 <td></td>
6071 <td class="paramtype">const struct bitmask *&#160;</td>
61 <td class="paramname"> <em>bitmask</em>&#160;</td>
72 <td class="paramname"><em>bitmask</em>&#160;</td>
6273 </tr>
6374 <tr>
6475 <td></td>
8293 <td class="memname">static inline struct bitmask* hwloc_cpuset_to_linux_libnuma_bitmask </td>
8394 <td>(</td>
8495 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
85 <td class="paramname"> <em>topology</em>, </td>
96 <td class="paramname"><em>topology</em>, </td>
8697 </tr>
8798 <tr>
8899 <td class="paramkey"></td>
89100 <td></td>
90101 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
91 <td class="paramname"> <em>cpuset</em>&#160;</td>
102 <td class="paramname"><em>cpuset</em>&#160;</td>
92103 </tr>
93104 <tr>
94105 <td></td>
114125 <td class="memname">static inline int hwloc_nodeset_from_linux_libnuma_bitmask </td>
115126 <td>(</td>
116127 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
117 <td class="paramname"> <em>topology</em>, </td>
128 <td class="paramname"><em>topology</em>, </td>
118129 </tr>
119130 <tr>
120131 <td class="paramkey"></td>
121132 <td></td>
122133 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
123 <td class="paramname"> <em>nodeset</em>, </td>
134 <td class="paramname"><em>nodeset</em>, </td>
124135 </tr>
125136 <tr>
126137 <td class="paramkey"></td>
127138 <td></td>
128139 <td class="paramtype">const struct bitmask *&#160;</td>
129 <td class="paramname"> <em>bitmask</em>&#160;</td>
140 <td class="paramname"><em>bitmask</em>&#160;</td>
130141 </tr>
131142 <tr>
132143 <td></td>
150161 <td class="memname">static inline struct bitmask* hwloc_nodeset_to_linux_libnuma_bitmask </td>
151162 <td>(</td>
152163 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
153 <td class="paramname"> <em>topology</em>, </td>
164 <td class="paramname"><em>topology</em>, </td>
154165 </tr>
155166 <tr>
156167 <td class="paramkey"></td>
157168 <td></td>
158169 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
159 <td class="paramname"> <em>nodeset</em>&#160;</td>
170 <td class="paramname"><em>nodeset</em>&#160;</td>
160171 </tr>
161172 <tr>
162173 <td></td>
175186 </div>
176187 </div>
177188 </div>
178 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
189 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
179190 <a href="http://www.doxygen.org/index.html">
180 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
191 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
181192 </body>
182193 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4253 <td class="memname">static inline int hwloc_cpuset_from_linux_libnuma_nodemask </td>
4354 <td>(</td>
4455 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
45 <td class="paramname"> <em>topology</em>, </td>
56 <td class="paramname"><em>topology</em>, </td>
4657 </tr>
4758 <tr>
4859 <td class="paramkey"></td>
4960 <td></td>
5061 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
51 <td class="paramname"> <em>cpuset</em>, </td>
62 <td class="paramname"><em>cpuset</em>, </td>
5263 </tr>
5364 <tr>
5465 <td class="paramkey"></td>
5566 <td></td>
5667 <td class="paramtype">const nodemask_t *&#160;</td>
57 <td class="paramname"> <em>nodemask</em>&#160;</td>
68 <td class="paramname"><em>nodemask</em>&#160;</td>
5869 </tr>
5970 <tr>
6071 <td></td>
7889 <td class="memname">static inline int hwloc_cpuset_to_linux_libnuma_nodemask </td>
7990 <td>(</td>
8091 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
81 <td class="paramname"> <em>topology</em>, </td>
92 <td class="paramname"><em>topology</em>, </td>
8293 </tr>
8394 <tr>
8495 <td class="paramkey"></td>
8596 <td></td>
8697 <td class="paramtype"><a class="el" href="a00034.html#ga1f784433e9b606261f62d1134f6a3b25">hwloc_const_cpuset_t</a>&#160;</td>
87 <td class="paramname"> <em>cpuset</em>, </td>
98 <td class="paramname"><em>cpuset</em>, </td>
8899 </tr>
89100 <tr>
90101 <td class="paramkey"></td>
91102 <td></td>
92103 <td class="paramtype">nodemask_t *&#160;</td>
93 <td class="paramname"> <em>nodemask</em>&#160;</td>
104 <td class="paramname"><em>nodemask</em>&#160;</td>
94105 </tr>
95106 <tr>
96107 <td></td>
114125 <td class="memname">static inline int hwloc_nodeset_from_linux_libnuma_nodemask </td>
115126 <td>(</td>
116127 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
117 <td class="paramname"> <em>topology</em>, </td>
128 <td class="paramname"><em>topology</em>, </td>
118129 </tr>
119130 <tr>
120131 <td class="paramkey"></td>
121132 <td></td>
122133 <td class="paramtype"><a class="el" href="a00034.html#ga37e35730fa7e775b5bb0afe893d6d508">hwloc_nodeset_t</a>&#160;</td>
123 <td class="paramname"> <em>nodeset</em>, </td>
134 <td class="paramname"><em>nodeset</em>, </td>
124135 </tr>
125136 <tr>
126137 <td class="paramkey"></td>
127138 <td></td>
128139 <td class="paramtype">const nodemask_t *&#160;</td>
129 <td class="paramname"> <em>nodemask</em>&#160;</td>
140 <td class="paramname"><em>nodemask</em>&#160;</td>
130141 </tr>
131142 <tr>
132143 <td></td>
150161 <td class="memname">static inline int hwloc_nodeset_to_linux_libnuma_nodemask </td>
151162 <td>(</td>
152163 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
153 <td class="paramname"> <em>topology</em>, </td>
164 <td class="paramname"><em>topology</em>, </td>
154165 </tr>
155166 <tr>
156167 <td class="paramkey"></td>
157168 <td></td>
158169 <td class="paramtype"><a class="el" href="a00034.html#ga2f5276235841ad66a79bedad16a5a10c">hwloc_const_nodeset_t</a>&#160;</td>
159 <td class="paramname"> <em>nodeset</em>, </td>
170 <td class="paramname"><em>nodeset</em>, </td>
160171 </tr>
161172 <tr>
162173 <td class="paramkey"></td>
163174 <td></td>
164175 <td class="paramtype">nodemask_t *&#160;</td>
165 <td class="paramname"> <em>nodemask</em>&#160;</td>
176 <td class="paramname"><em>nodemask</em>&#160;</td>
166177 </tr>
167178 <tr>
168179 <td></td>
179190 </div>
180191 </div>
181192 </div>
182 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
193 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
183194 <a href="http://www.doxygen.org/index.html">
184 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
195 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
185196 </body>
186197 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
3950 <td class="memname">static inline int hwloc_cuda_get_device_cpuset </td>
4051 <td>(</td>
4152 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
42 <td class="paramname"> <em></em>, </td>
53 <td class="paramname"><em></em>, </td>
4354 </tr>
4455 <tr>
4556 <td class="paramkey"></td>
4657 <td></td>
4758 <td class="paramtype">CUdevice&#160;</td>
48 <td class="paramname"> <em>cudevice</em>, </td>
59 <td class="paramname"><em>cudevice</em>, </td>
4960 </tr>
5061 <tr>
5162 <td class="paramkey"></td>
5263 <td></td>
5364 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
54 <td class="paramname"> <em>set</em>&#160;</td>
65 <td class="paramname"><em>set</em>&#160;</td>
5566 </tr>
5667 <tr>
5768 <td></td>
6879 </div>
6980 </div>
7081 </div>
71 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
82 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7283 <a href="http://www.doxygen.org/index.html">
73 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
84 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7485 </body>
7586 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
3950 <td class="memname">static inline int hwloc_cudart_get_device_cpuset </td>
4051 <td>(</td>
4152 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
42 <td class="paramname"> <em></em>, </td>
53 <td class="paramname"><em></em>, </td>
4354 </tr>
4455 <tr>
4556 <td class="paramkey"></td>
4657 <td></td>
4758 <td class="paramtype">int&#160;</td>
48 <td class="paramname"> <em>device</em>, </td>
59 <td class="paramname"><em>device</em>, </td>
4960 </tr>
5061 <tr>
5162 <td class="paramkey"></td>
5263 <td></td>
5364 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
54 <td class="paramname"> <em>set</em>&#160;</td>
65 <td class="paramname"><em>set</em>&#160;</td>
5566 </tr>
5667 <tr>
5768 <td></td>
6879 </div>
6980 </div>
7081 </div>
71 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
82 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7283 <a href="http://www.doxygen.org/index.html">
73 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
84 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7485 </body>
7586 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
3950 <td class="memname">static inline int hwloc_ibv_get_device_cpuset </td>
4051 <td>(</td>
4152 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology&#160;</td>
42 <td class="paramname"> <em></em>, </td>
53 <td class="paramname"><em></em>, </td>
4354 </tr>
4455 <tr>
4556 <td class="paramkey"></td>
4657 <td></td>
4758 <td class="paramtype">struct ibv_device *&#160;</td>
48 <td class="paramname"> <em>ibdev</em>, </td>
59 <td class="paramname"><em>ibdev</em>, </td>
4960 </tr>
5061 <tr>
5162 <td class="paramkey"></td>
5263 <td></td>
5364 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
54 <td class="paramname"> <em>set</em>&#160;</td>
65 <td class="paramname"><em>set</em>&#160;</td>
5566 </tr>
5667 <tr>
5768 <td></td>
6879 </div>
6980 </div>
7081 </div>
71 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
82 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
7283 <a href="http://www.doxygen.org/index.html">
73 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
84 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
7485 </body>
7586 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
4051 <td class="memname">static inline int hwloc_mx_board_get_device_cpuset </td>
4152 <td>(</td>
4253 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
43 <td class="paramname"> <em>topology</em>, </td>
54 <td class="paramname"><em>topology</em>, </td>
4455 </tr>
4556 <tr>
4657 <td class="paramkey"></td>
4758 <td></td>
4859 <td class="paramtype">unsigned&#160;</td>
49 <td class="paramname"> <em>id</em>, </td>
60 <td class="paramname"><em>id</em>, </td>
5061 </tr>
5162 <tr>
5263 <td class="paramkey"></td>
5364 <td></td>
5465 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
55 <td class="paramname"> <em>set</em>&#160;</td>
66 <td class="paramname"><em>set</em>&#160;</td>
5667 </tr>
5768 <tr>
5869 <td></td>
7687 <td class="memname">static inline int hwloc_mx_endpoint_get_device_cpuset </td>
7788 <td>(</td>
7889 <td class="paramtype"><a class="el" href="a00033.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a>&#160;</td>
79 <td class="paramname"> <em>topology</em>, </td>
90 <td class="paramname"><em>topology</em>, </td>
8091 </tr>
8192 <tr>
8293 <td class="paramkey"></td>
8394 <td></td>
8495 <td class="paramtype">mx_endpoint_t&#160;</td>
85 <td class="paramname"> <em>endpoint</em>, </td>
96 <td class="paramname"><em>endpoint</em>, </td>
8697 </tr>
8798 <tr>
8899 <td class="paramkey"></td>
89100 <td></td>
90101 <td class="paramtype"><a class="el" href="a00034.html#ga4bbf39b68b6f568fb92739e7c0ea7801">hwloc_cpuset_t</a>&#160;</td>
91 <td class="paramname"> <em>set</em>&#160;</td>
102 <td class="paramname"><em>set</em>&#160;</td>
92103 </tr>
93104 <tr>
94105 <td></td>
105116 </div>
106117 </div>
107118 </div>
108 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
119 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
109120 <a href="http://www.doxygen.org/index.html">
110 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
121 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
111122 </body>
112123 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2940 <h1>Data Structures</h1> </div>
3041 </div>
3142 <div class="contents">
32 Here are the data structures with brief descriptions:<table>
43 <div class="textblock">Here are the data structures with brief descriptions:</div><table>
3344 <tr><td class="indexkey"><a class="el" href="a00010.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a></td><td class="indexvalue">Cache-specific Object Attributes </td></tr>
3445 <tr><td class="indexkey"><a class="el" href="a00011.html">hwloc_obj_attr_u::hwloc_group_attr_s</a></td><td class="indexvalue">Group-specific Object Attributes </td></tr>
3546 <tr><td class="indexkey"><a class="el" href="a00012.html">hwloc_obj</a></td><td class="indexvalue">Structure of a topology object </td></tr>
4354 <tr><td class="indexkey"><a class="el" href="a00020.html">hwloc_topology_support</a></td><td class="indexvalue">Set of flags describing actual support for this topology </td></tr>
4455 </table>
4556 </div>
46 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
57 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4758 <a href="http://www.doxygen.org/index.html">
48 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
59 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4960 </body>
5061 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Hardware Locality (hwloc): Alphabetical List</title>
4 <title>Hardware Locality (hwloc): Data Structure Index</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
3445 <tr><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
3546 </td><td><a class="el" href="a00012.html">hwloc_obj</a>&#160;&#160;&#160;</td><td><a class="el" href="a00015.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>&#160;&#160;&#160;</td><td><a class="el" href="a00017.html">hwloc_topology_cpubind_support</a>&#160;&#160;&#160;</td><td><a class="el" href="a00019.html">hwloc_topology_membind_support</a>&#160;&#160;&#160;</td></tr><tr><td><a class="el" href="a00010.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a>&#160;&#160;&#160;</td><td><a class="el" href="a00013.html">hwloc_obj_attr_u</a>&#160;&#160;&#160;</td><td><a class="el" href="a00016.html">hwloc_obj_memory_s</a>&#160;&#160;&#160;</td><td><a class="el" href="a00018.html">hwloc_topology_discovery_support</a>&#160;&#160;&#160;</td><td><a class="el" href="a00020.html">hwloc_topology_support</a>&#160;&#160;&#160;</td></tr><tr><td><a class="el" href="a00011.html">hwloc_obj_attr_u::hwloc_group_attr_s</a>&#160;&#160;&#160;</td><td><a class="el" href="a00014.html">hwloc_obj_info_s</a>&#160;&#160;&#160;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_H">H</a></div>
3647 </div>
37 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
48 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
3849 <a href="http://www.doxygen.org/index.html">
39 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
50 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4051 </body>
4152 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Hardware Locality (hwloc): File Index</title>
4 <title>Hardware Locality (hwloc): File List</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li class="current"><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
2334 </ul>
2839 <h1>File List</h1> </div>
2940 </div>
3041 <div class="contents">
31 Here is a list of all files with brief descriptions:<table>
42 <div class="textblock">Here is a list of all files with brief descriptions:</div><table>
3243 <tr><td class="indexkey"><b>bitmap.h</b> <a href="a00021_source.html">[code]</a></td><td class="indexvalue">The bitmap API, for use in hwloc itself </td></tr>
3344 <tr><td class="indexkey"><b>cuda.h</b> <a href="a00022_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and the CUDA Driver API </td></tr>
3445 <tr><td class="indexkey"><b>cudart.h</b> <a href="a00023_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and the CUDA Runtime API </td></tr>
4152 <tr><td class="indexkey"><b>openfabrics-verbs.h</b> <a href="a00031_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and OpenFabrics verbs </td></tr>
4253 </table>
4354 </div>
44 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
55 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
4556 <a href="http://www.doxygen.org/index.html">
46 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
57 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
4758 </body>
4859 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2435 </ul>
2536 </div>
26 <div class="tabs2">
37 <div id="navrow3" class="tabs2">
2738 <ul class="tablist">
2839 <li class="current"><a href="functions.html"><span>All</span></a></li>
2940 <li><a href="functions_vars.html"><span>Variables</span></a></li>
3041 </ul>
3142 </div>
32 <div class="tabs3">
43 <div id="navrow4" class="tabs3">
3344 <ul class="tablist">
3445 <li><a href="#index_a"><span>a</span></a></li>
3546 <li><a href="#index_b"><span>b</span></a></li>
5263 </div>
5364 </div>
5465 <div class="contents">
55 Here is a list of all struct and union fields with links to the structures/unions they belong to:
66 <div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
5667
5768 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
5869 <li>alloc_membind
94105 : <a class="el" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e">hwloc_obj</a>
95106 </li>
96107 <li>count
97 : <a class="el" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
108 : <a class="el" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
98109 </li>
99110 <li>cpubind
100111 : <a class="el" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">hwloc_topology_support</a>
179190 : <a class="el" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
180191 </li>
181192 <li>local_memory
182 : <a class="el" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s</a>
193 : <a class="el" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a">hwloc_obj_memory_s</a>
183194 </li>
184195 <li>logical_index
185196 : <a class="el" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9">hwloc_obj</a>
291302 : <a class="el" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd">hwloc_obj</a>
292303 </li>
293304 <li>size
294 : <a class="el" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
295 , <a class="el" href="a00010.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
305 : <a class="el" href="a00015.html#a3f1d261766352288791512974665ce01">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
306 , <a class="el" href="a00010.html#abe5e788943ed04302976740c829674c0">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
296307 </li>
297308 </ul>
298309
299310
300311 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
301312 <li>total_memory
302 : <a class="el" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s</a>
313 : <a class="el" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44">hwloc_obj_memory_s</a>
303314 </li>
304315 <li>type
305316 : <a class="el" href="a00012.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj</a>
320331 </li>
321332 </ul>
322333 </div>
323 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
334 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
324335 <a href="http://www.doxygen.org/index.html">
325 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
336 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
326337 </body>
327338 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
1728 <li><a href="files.html"><span>Files</span></a></li>
1829 </ul>
1930 </div>
20 <div class="tabs2">
31 <div id="navrow2" class="tabs2">
2132 <ul class="tablist">
2233 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
2334 <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
2435 </ul>
2536 </div>
26 <div class="tabs2">
37 <div id="navrow3" class="tabs2">
2738 <ul class="tablist">
2839 <li><a href="functions.html"><span>All</span></a></li>
2940 <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
3041 </ul>
3142 </div>
32 <div class="tabs3">
43 <div id="navrow4" class="tabs3">
3344 <ul class="tablist">
3445 <li><a href="#index_a"><span>a</span></a></li>
3546 <li><a href="#index_b"><span>b</span></a></li>
94105 : <a class="el" href="a00012.html#ac38c4012127525ef74c5615c526f4c2e">hwloc_obj</a>
95106 </li>
96107 <li>count
97 : <a class="el" href="a00015.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
108 : <a class="el" href="a00015.html#aa5b9fa36f1dc47ff3c345fe4dd06b260">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
98109 </li>
99110 <li>cpubind
100111 : <a class="el" href="a00020.html#adef2bb91f74c3e70a2a071393caf5f56">hwloc_topology_support</a>
179190 : <a class="el" href="a00010.html#a801e8a668e28caf06c8b88e9ae5c10db">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
180191 </li>
181192 <li>local_memory
182 : <a class="el" href="a00016.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s</a>
193 : <a class="el" href="a00016.html#aace044c7f3fd9dffe50202296bf1dc5a">hwloc_obj_memory_s</a>
183194 </li>
184195 <li>logical_index
185196 : <a class="el" href="a00012.html#a0d07fb7b8935e137c94d75a3eb492ae9">hwloc_obj</a>
291302 : <a class="el" href="a00012.html#aaa6043eee6f55869933c1d974efd9acd">hwloc_obj</a>
292303 </li>
293304 <li>size
294 : <a class="el" href="a00015.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
295 , <a class="el" href="a00010.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
305 : <a class="el" href="a00015.html#a3f1d261766352288791512974665ce01">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
306 , <a class="el" href="a00010.html#abe5e788943ed04302976740c829674c0">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
296307 </li>
297308 </ul>
298309
299310
300311 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
301312 <li>total_memory
302 : <a class="el" href="a00016.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s</a>
313 : <a class="el" href="a00016.html#a8befd0b3f4f8b695cafed04b31f36a44">hwloc_obj_memory_s</a>
303314 </li>
304315 <li>type
305316 : <a class="el" href="a00012.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj</a>
320331 </li>
321332 </ul>
322333 </div>
323 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
334 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
324335 <a href="http://www.doxygen.org/index.html">
325 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
336 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
326337 </body>
327338 </html>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Hardware Locality </h1> </div>
2435 </div>
2536 <div class="contents">
26 <h3 class="version">1.1.1 </h3><h1 class="sub">Portable abstraction of hierarchical architectures for high-performance computing</h1>
37 <div class="textblock"><h1 class="sub">Portable abstraction of hierarchical architectures for high-performance computing</h1>
2738 <hr/>
2839
2940 <div class="section" id="introduction">
347358 <div class="fragment"><pre class="fragment"><span class="comment">/* Example hwloc API program.</span>
348359 <span class="comment"> *</span>
349360 <span class="comment"> * Copyright © 2009-2010 INRIA</span>
350 <span class="comment"> * Copyright © 2009-2010 Université Bordeaux 1</span>
361 <span class="comment"> * Copyright © 2009-2011 Université Bordeaux 1</span>
351362 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
352363 <span class="comment"> *</span>
353364 <span class="comment"> * hwloc-hello.c</span>
447458 obj = obj-&gt;<a class="code" href="a00012.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object)">parent</a>)
448459 <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="a00012.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>) {
449460 levels++;
450 size += obj-&gt;<a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes, may be NULL if no attribute value was found.">attr</a>-&gt;<a class="code" href="a00013.html#ab5a8ae3bf490e6b1071fea53f7382836">cache</a>.<a class="code" href="a00010.html#a3c68235220554308f89768f281ad1e62" title="Size of cache in bytes.">size</a>;
461 size += obj-&gt;<a class="code" href="a00012.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes, may be NULL if no attribute value was found.">attr</a>-&gt;<a class="code" href="a00013.html#ab5a8ae3bf490e6b1071fea53f7382836">cache</a>.<a class="code" href="a00010.html#abe5e788943ed04302976740c829674c0" title="Size of cache in bytes.">size</a>;
451462 }
452463 printf(<span class="stringliteral">&quot;*** Logical processor 0 has %d caches totaling %luKB\n&quot;</span>,
453464 levels, size / 1024);
494505 n = <a class="code" href="a00040.html#ga0131ab1051011fabfa69d7c1853e716c" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>);
495506 <span class="keywordflow">if</span> (n) {
496507 <span class="keywordtype">void</span> *m;
497 <span class="keywordtype">size_t</span> size = 1024*1024;
508 size = 1024*1024;
498509
499510 obj = <a class="code" href="a00041.html#ga701f83b2cf0cb8e0acd58cd2dc1c67a2" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a>(topology, <a class="code" href="a00035.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access.">HWLOC_OBJ_NODE</a>, n - 1);
500511 m = <a class="code" href="a00044.html#gaeaa00714a9c4319bda0a74ca6f8720e8" title="Allocate some memory on the given nodeset nodeset.">hwloc_alloc_membind_nodeset</a>(topology, size, obj-&gt;<a class="code" href="a00012.html#a08f0d0e16c619a6e653526cbee4ffea3" title="NUMA nodes covered by this object or containing this object.">nodeset</a>,
590601 <p>Make sure to have had a look at those too!</p>
591602
592603 </div>
593 </div>
594 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:06 for Hardware Locality (hwloc) by&#160;
604 </div></div>
605 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:39 for Hardware Locality (hwloc) by&#160;
595606 <a href="http://www.doxygen.org/index.html">
596 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
607 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
597608 </body>
598609 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Hardware Locality (hwloc): Module Index</title>
4 <title>Hardware Locality (hwloc): Modules</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Modules</h1> </div>
2435 </div>
2536 <div class="contents">
26 Here is a list of all modules:<ul>
37 <div class="textblock">Here is a list of all modules:</div><ul>
2738 <li><a class="el" href="a00032.html">API version</a></li>
2839 <li><a class="el" href="a00033.html">Topology context</a></li>
2940 <li><a class="el" href="a00034.html">Object sets (hwloc_cpuset_t and hwloc_nodeset_t)</a></li>
6071 <li><a class="el" href="a00065.html">Myrinet Express-Specific Functions</a></li>
6172 </ul>
6273 </div>
63 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
74 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:40 for Hardware Locality (hwloc) by&#160;
6475 <a href="http://www.doxygen.org/index.html">
65 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
76 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
6677 </body>
6778 </html>
11 <html xmlns="http://www.w3.org/1999/xhtml">
22 <head>
33 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <title>Hardware Locality (hwloc): Page Index</title>
4 <title>Hardware Locality (hwloc): Related Pages</title>
55 <link href="tabs.css" rel="stylesheet" type="text/css"/>
66 <link href="doxygen.css" rel="stylesheet" type="text/css"/>
77 </head>
88 <body>
9 <!-- Generated by Doxygen 1.7.2 -->
10 <div class="navigation" id="top">
11 <div class="tabs">
9 <!-- Generated by Doxygen 1.7.3 -->
10 <div id="top">
11 <div id="titlearea">
12 <table cellspacing="0" cellpadding="0">
13 <tbody>
14 <tr style="height: 56px;">
15 <td style="padding-left: 0.5em;">
16 <div id="projectname">Hardware Locality (hwloc)&#160;<span id="projectnumber">1.1.2</span></div>
17 </td>
18 </tr>
19 </tbody>
20 </table>
21 </div>
22 <div id="navrow1" class="tabs">
1223 <ul class="tablist">
1324 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
1425 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
2334 <h1>Related Pages</h1> </div>
2435 </div>
2536 <div class="contents">
26 Here is a list of all related documentation pages:<ul>
37 <div class="textblock">Here is a list of all related documentation pages:</div><ul>
2738 <li><a class="el" href="a00001.html">Terms and Definitions</a>
2839 </li>
2940 <li><a class="el" href="a00002.html">Command-Line Tools</a>
4455 </li>
4556 </ul>
4657 </div>
47 <hr class="footer"/><address class="footer"><small>Generated on Mon Jan 24 2011 17:12:07 for Hardware Locality (hwloc) by&#160;
58 <hr class="footer"/><address class="footer"><small>Generated on Wed Apr 6 2011 17:31:39 for Hardware Locality (hwloc) by&#160;
4859 <a href="http://www.doxygen.org/index.html">
49 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
60 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
5061 </body>
5162 </html>
19201920 <name>hwloc_obj_attr_u::hwloc_cache_attr_s</name>
19211921 <filename>a00010.html</filename>
19221922 <member kind="variable">
1923 <type>uint64_t</type>
1923 <type>hwloc_uint64_t</type>
19241924 <name>size</name>
19251925 <anchorfile>a00010.html</anchorfile>
1926 <anchor>a3c68235220554308f89768f281ad1e62</anchor>
1926 <anchor>abe5e788943ed04302976740c829674c0</anchor>
19271927 <arglist></arglist>
19281928 </member>
19291929 <member kind="variable">
19751975 <filename>a00016.html</filename>
19761976 <class kind="struct">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</class>
19771977 <member kind="variable">
1978 <type>uint64_t</type>
1978 <type>hwloc_uint64_t</type>
19791979 <name>total_memory</name>
19801980 <anchorfile>a00016.html</anchorfile>
1981 <anchor>a68c3323d2d0a248d1b7fec7af44bebe3</anchor>
1982 <arglist></arglist>
1983 </member>
1984 <member kind="variable">
1985 <type>uint64_t</type>
1981 <anchor>a8befd0b3f4f8b695cafed04b31f36a44</anchor>
1982 <arglist></arglist>
1983 </member>
1984 <member kind="variable">
1985 <type>hwloc_uint64_t</type>
19861986 <name>local_memory</name>
19871987 <anchorfile>a00016.html</anchorfile>
1988 <anchor>a27043a3150660f44ed84916c2d0d7e0e</anchor>
1988 <anchor>aace044c7f3fd9dffe50202296bf1dc5a</anchor>
19891989 <arglist></arglist>
19901990 </member>
19911991 <member kind="variable">
20072007 <name>hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</name>
20082008 <filename>a00015.html</filename>
20092009 <member kind="variable">
2010 <type>uint64_t</type>
2010 <type>hwloc_uint64_t</type>
20112011 <name>size</name>
20122012 <anchorfile>a00015.html</anchorfile>
2013 <anchor>af0619463fb5d10052b7fe3495a66d74b</anchor>
2014 <arglist></arglist>
2015 </member>
2016 <member kind="variable">
2017 <type>uint64_t</type>
2013 <anchor>a3f1d261766352288791512974665ce01</anchor>
2014 <arglist></arglist>
2015 </member>
2016 <member kind="variable">
2017 <type>hwloc_uint64_t</type>
20182018 <name>count</name>
20192019 <anchorfile>a00015.html</anchorfile>
2020 <anchor>ab5d01db7b26177a6b5361107cad152c3</anchor>
2020 <anchor>aa5b9fa36f1dc47ff3c345fe4dd06b260</anchor>
20212021 <arglist></arglist>
20222022 </member>
20232023 </compound>
0 .TH "hwloc_obj" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_obj_attr_u" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_attr_u" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_obj_attr_u::hwloc_cache_attr_s" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_attr_u::hwloc_cache_attr_s" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414
1515 .in +1c
1616 .ti -1c
17 .RI "uint64_t \fBsize\fP"
17 .RI "hwloc_uint64_t \fBsize\fP"
1818 .br
1919 .ti -1c
2020 .RI "unsigned \fBdepth\fP"
3434 .SS "unsigned \fBhwloc_obj_attr_u::hwloc_cache_attr_s::linesize\fP"
3535 .PP
3636 Cache-line size in bytes.
37 .SS "uint64_t \fBhwloc_obj_attr_u::hwloc_cache_attr_s::size\fP"
37 .SS "hwloc_uint64_t \fBhwloc_obj_attr_u::hwloc_cache_attr_s::size\fP"
3838 .PP
3939 Size of cache in bytes.
4040
0 .TH "hwloc_obj_attr_u::hwloc_group_attr_s" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_attr_u::hwloc_group_attr_s" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_obj_info_s" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_info_s" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_obj_memory_s" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_memory_s" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2222
2323 .in +1c
2424 .ti -1c
25 .RI "uint64_t \fBtotal_memory\fP"
25 .RI "hwloc_uint64_t \fBtotal_memory\fP"
2626 .br
2727 .ti -1c
28 .RI "uint64_t \fBlocal_memory\fP"
28 .RI "hwloc_uint64_t \fBlocal_memory\fP"
2929 .br
3030 .ti -1c
3131 .RI "unsigned \fBpage_types_len\fP"
3939 Object memory.
4040 .SH "Field Documentation"
4141 .PP
42 .SS "uint64_t \fBhwloc_obj_memory_s::local_memory\fP"
42 .SS "hwloc_uint64_t \fBhwloc_obj_memory_s::local_memory\fP"
4343 .PP
4444 Local memory (in bytes)
4545 .SS "struct \fBhwloc_obj_memory_s::hwloc_obj_memory_page_type_s\fP * \fBhwloc_obj_memory_s::page_types\fP"
4646 .SS "unsigned \fBhwloc_obj_memory_s::page_types_len\fP"
4747 .PP
4848 Size of array \fCpage_types\fP.
49 .SS "uint64_t \fBhwloc_obj_memory_s::total_memory\fP"
49 .SS "hwloc_uint64_t \fBhwloc_obj_memory_s::total_memory\fP"
5050 .PP
5151 Total memory (in bytes) in this object and its children.
5252
0 .TH "hwloc_obj_memory_s::hwloc_obj_memory_page_type_s" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_obj_memory_s::hwloc_obj_memory_page_type_s" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414
1515 .in +1c
1616 .ti -1c
17 .RI "uint64_t \fBsize\fP"
17 .RI "hwloc_uint64_t \fBsize\fP"
1818 .br
1919 .ti -1c
20 .RI "uint64_t \fBcount\fP"
20 .RI "hwloc_uint64_t \fBcount\fP"
2121 .br
2222 .in -1c
2323 .SH "Detailed Description"
2727 The array is sorted by increasing \fCsize\fP fields. It contains \fCpage_types_len\fP slots.
2828 .SH "Field Documentation"
2929 .PP
30 .SS "uint64_t \fBhwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count\fP"
30 .SS "hwloc_uint64_t \fBhwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count\fP"
3131 .PP
3232 Number of pages of this size.
33 .SS "uint64_t \fBhwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size\fP"
33 .SS "hwloc_uint64_t \fBhwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size\fP"
3434 .PP
3535 Size of pages.
3636
0 .TH "hwloc_topology_cpubind_support" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_topology_cpubind_support" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_topology_discovery_support" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_topology_discovery_support" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_topology_membind_support" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_topology_membind_support" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "hwloc_topology_support" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "hwloc_topology_support" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "API version" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "API version" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "The bitmap API" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "The bitmap API" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
189189 a non-modifiable \fBhwloc_bitmap_t\fP
190190 .SH "Function Documentation"
191191 .PP
192 .SS " void hwloc_bitmap_allbut (\fBhwloc_bitmap_t\fP bitmap, unsigned id)"
192 .SS " void hwloc_bitmap_allbut (\fBhwloc_bitmap_t\fPbitmap, unsignedid)"
193193 .PP
194194 Fill the bitmap \fCand\fP clear the index \fCid\fP.
195195 .SS " \fBhwloc_bitmap_t\fP hwloc_bitmap_alloc (void)"
196196 .PP
197197 Allocate a new empty bitmap. \fBReturns:\fP
198198 .RS 4
199 A valid bitmap or NULL.
199 A valid bitmap or \fCNULL\fP.
200200 .RE
201201 .PP
202202 The bitmap should be freed by a corresponding call to \fBhwloc_bitmap_free()\fP.
203203 .SS " \fBhwloc_bitmap_t\fP hwloc_bitmap_alloc_full (void)"
204204 .PP
205205 Allocate a new full bitmap.
206 .SS " void hwloc_bitmap_and (\fBhwloc_bitmap_t\fP res, \fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
206 .SS " void hwloc_bitmap_and (\fBhwloc_bitmap_t\fPres, \fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
207207 .PP
208208 And bitmaps \fCbitmap1\fP and \fCbitmap2\fP and store the result in bitmap \fCres\fP.
209 .SS " void hwloc_bitmap_andnot (\fBhwloc_bitmap_t\fP res, \fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
209 .SS " void hwloc_bitmap_andnot (\fBhwloc_bitmap_t\fPres, \fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
210210 .PP
211211 And bitmap \fCbitmap1\fP and the negation of \fCbitmap2\fP and store the result in bitmap \fCres\fP.
212 .SS " int hwloc_bitmap_asprintf (char ** strp, \fBhwloc_const_bitmap_t\fP bitmap)"
212 .SS " int hwloc_bitmap_asprintf (char **strp, \fBhwloc_const_bitmap_t\fPbitmap)"
213213 .PP
214214 Stringify a bitmap into a newly allocated string.
215 .SS " void hwloc_bitmap_clr (\fBhwloc_bitmap_t\fP bitmap, unsigned id)"
215 .SS " void hwloc_bitmap_clr (\fBhwloc_bitmap_t\fPbitmap, unsignedid)"
216216 .PP
217217 Remove index \fCid\fP from bitmap \fCbitmap\fP.
218 .SS " void hwloc_bitmap_clr_range (\fBhwloc_bitmap_t\fP bitmap, unsigned begin, unsigned end)"
219 .PP
220 Remove index from \fCbegin\fP to \fCend\fP in bitmap \fCbitmap\fP.
221 .SS " int hwloc_bitmap_compare (\fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
218 .SS " void hwloc_bitmap_clr_range (\fBhwloc_bitmap_t\fPbitmap, unsignedbegin, unsignedend)"
219 .PP
220 Remove indexes from \fCbegin\fP to \fCend\fP in bitmap \fCbitmap\fP.
221 .SS " int hwloc_bitmap_compare (\fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
222222 .PP
223223 Compare bitmaps \fCbitmap1\fP and \fCbitmap2\fP using their highest index. Higher most significant bit is higher. The empty bitmap is considered lower than anything.
224 .SS " int hwloc_bitmap_compare_first (\fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
224 .SS " int hwloc_bitmap_compare_first (\fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
225225 .PP
226226 Compare bitmaps \fCbitmap1\fP and \fCbitmap2\fP using their lowest index. Smaller least significant bit is smaller. The empty bitmap is considered higher than anything.
227 .SS " void hwloc_bitmap_copy (\fBhwloc_bitmap_t\fP dst, \fBhwloc_const_bitmap_t\fP src)"
227 .SS " void hwloc_bitmap_copy (\fBhwloc_bitmap_t\fPdst, \fBhwloc_const_bitmap_t\fPsrc)"
228228 .PP
229229 Copy the contents of bitmap \fCsrc\fP into the already allocated bitmap \fCdst\fP.
230 .SS " \fBhwloc_bitmap_t\fP hwloc_bitmap_dup (\fBhwloc_const_bitmap_t\fP bitmap)"
230 .SS " \fBhwloc_bitmap_t\fP hwloc_bitmap_dup (\fBhwloc_const_bitmap_t\fPbitmap)"
231231 .PP
232232 Duplicate bitmap \fCbitmap\fP by allocating a new bitmap and copying \fCbitmap\fP contents.
233 .SS " void hwloc_bitmap_fill (\fBhwloc_bitmap_t\fP bitmap)"
233 .SS " void hwloc_bitmap_fill (\fBhwloc_bitmap_t\fPbitmap)"
234234 .PP
235235 Fill bitmap \fCbitmap\fP with all possible indexes (even if those objects don't exist or are otherwise unavailable)
236 .SS " int hwloc_bitmap_first (\fBhwloc_const_bitmap_t\fP bitmap)"
236 .SS " int hwloc_bitmap_first (\fBhwloc_const_bitmap_t\fPbitmap)"
237237 .PP
238238 Compute the first index (least significant bit) in bitmap \fCbitmap\fP. \fBReturns:\fP
239239 .RS 4
241241 .RE
242242 .PP
243243
244 .SS " void hwloc_bitmap_free (\fBhwloc_bitmap_t\fP bitmap)"
245 .PP
246 Free bitmap \fCbitmap\fP.
247 .SS " void hwloc_bitmap_from_ith_ulong (\fBhwloc_bitmap_t\fP bitmap, unsigned i, unsigned long mask)"
244 .SS " void hwloc_bitmap_free (\fBhwloc_bitmap_t\fPbitmap)"
245 .PP
246 Free bitmap \fCbitmap\fP. If \fCbitmap\fP is \fCNULL\fP, no operation is performed.
247 .SS " void hwloc_bitmap_from_ith_ulong (\fBhwloc_bitmap_t\fPbitmap, unsignedi, unsigned longmask)"
248248 .PP
249249 Setup bitmap \fCbitmap\fP from unsigned long \fCmask\fP used as \fCi\fP -th subset.
250 .SS " void hwloc_bitmap_from_ulong (\fBhwloc_bitmap_t\fP bitmap, unsigned long mask)"
250 .SS " void hwloc_bitmap_from_ulong (\fBhwloc_bitmap_t\fPbitmap, unsigned longmask)"
251251 .PP
252252 Setup bitmap \fCbitmap\fP from unsigned long \fCmask\fP.
253 .SS " int hwloc_bitmap_intersects (\fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
253 .SS " int hwloc_bitmap_intersects (\fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
254254 .PP
255255 Test whether bitmaps \fCbitmap1\fP and \fCbitmap2\fP intersects.
256 .SS " int hwloc_bitmap_isequal (\fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
256 .SS " int hwloc_bitmap_isequal (\fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
257257 .PP
258258 Test whether bitmap \fCbitmap1\fP is equal to bitmap \fCbitmap2\fP.
259 .SS " int hwloc_bitmap_isfull (\fBhwloc_const_bitmap_t\fP bitmap)"
259 .SS " int hwloc_bitmap_isfull (\fBhwloc_const_bitmap_t\fPbitmap)"
260260 .PP
261261 Test whether bitmap \fCbitmap\fP is completely full.
262 .SS " int hwloc_bitmap_isincluded (\fBhwloc_const_bitmap_t\fP sub_bitmap, \fBhwloc_const_bitmap_t\fP super_bitmap)"
262 .SS " int hwloc_bitmap_isincluded (\fBhwloc_const_bitmap_t\fPsub_bitmap, \fBhwloc_const_bitmap_t\fPsuper_bitmap)"
263263 .PP
264264 Test whether bitmap \fCsub_bitmap\fP is part of bitmap \fCsuper_bitmap\fP.
265 .SS " int hwloc_bitmap_isset (\fBhwloc_const_bitmap_t\fP bitmap, unsigned id)"
265 .SS " int hwloc_bitmap_isset (\fBhwloc_const_bitmap_t\fPbitmap, unsignedid)"
266266 .PP
267267 Test whether index \fCid\fP is part of bitmap \fCbitmap\fP.
268 .SS " int hwloc_bitmap_iszero (\fBhwloc_const_bitmap_t\fP bitmap)"
268 .SS " int hwloc_bitmap_iszero (\fBhwloc_const_bitmap_t\fPbitmap)"
269269 .PP
270270 Test whether bitmap \fCbitmap\fP is empty.
271 .SS " int hwloc_bitmap_last (\fBhwloc_const_bitmap_t\fP bitmap)"
271 .SS " int hwloc_bitmap_last (\fBhwloc_const_bitmap_t\fPbitmap)"
272272 .PP
273273 Compute the last index (most significant bit) in bitmap \fCbitmap\fP. \fBReturns:\fP
274274 .RS 4
276276 .RE
277277 .PP
278278
279 .SS " int hwloc_bitmap_next (\fBhwloc_const_bitmap_t\fP bitmap, unsigned prev)"
279 .SS " int hwloc_bitmap_next (\fBhwloc_const_bitmap_t\fPbitmap, unsignedprev)"
280280 .PP
281281 Compute the next index in bitmap \fCbitmap\fP which is after index \fCprev\fP. \fBReturns:\fP
282282 .RS 4
284284 .RE
285285 .PP
286286
287 .SS " void hwloc_bitmap_not (\fBhwloc_bitmap_t\fP res, \fBhwloc_const_bitmap_t\fP bitmap)"
287 .SS " void hwloc_bitmap_not (\fBhwloc_bitmap_t\fPres, \fBhwloc_const_bitmap_t\fPbitmap)"
288288 .PP
289289 Negate bitmap \fCbitmap\fP and store the result in bitmap \fCres\fP.
290 .SS " void hwloc_bitmap_only (\fBhwloc_bitmap_t\fP bitmap, unsigned id)"
290 .SS " void hwloc_bitmap_only (\fBhwloc_bitmap_t\fPbitmap, unsignedid)"
291291 .PP
292292 Empty the bitmap \fCbitmap\fP and add bit \fCid\fP.
293 .SS " void hwloc_bitmap_or (\fBhwloc_bitmap_t\fP res, \fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
293 .SS " void hwloc_bitmap_or (\fBhwloc_bitmap_t\fPres, \fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
294294 .PP
295295 Or bitmaps \fCbitmap1\fP and \fCbitmap2\fP and store the result in bitmap \fCres\fP.
296 .SS " void hwloc_bitmap_set (\fBhwloc_bitmap_t\fP bitmap, unsigned id)"
296 .SS " void hwloc_bitmap_set (\fBhwloc_bitmap_t\fPbitmap, unsignedid)"
297297 .PP
298298 Add index \fCid\fP in bitmap \fCbitmap\fP.
299 .SS " void hwloc_bitmap_set_ith_ulong (\fBhwloc_bitmap_t\fP bitmap, unsigned i, unsigned long mask)"
299 .SS " void hwloc_bitmap_set_ith_ulong (\fBhwloc_bitmap_t\fPbitmap, unsignedi, unsigned longmask)"
300300 .PP
301301 Replace \fCi\fP -th subset of bitmap \fCbitmap\fP with unsigned long \fCmask\fP.
302 .SS " void hwloc_bitmap_set_range (\fBhwloc_bitmap_t\fP bitmap, unsigned begin, unsigned end)"
303 .PP
304 Add indexess from \fCbegin\fP to \fCend\fP in bitmap \fCbitmap\fP.
305 .SS " void hwloc_bitmap_singlify (\fBhwloc_bitmap_t\fP bitmap)"
302 .SS " void hwloc_bitmap_set_range (\fBhwloc_bitmap_t\fPbitmap, unsignedbegin, unsignedend)"
303 .PP
304 Add indexes from \fCbegin\fP to \fCend\fP in bitmap \fCbitmap\fP.
305 .SS " void hwloc_bitmap_singlify (\fBhwloc_bitmap_t\fPbitmap)"
306306 .PP
307307 Keep a single index among those set in bitmap \fCbitmap\fP. May be useful before binding so that the process does not have a chance of migrating between multiple logical CPUs in the original mask.
308 .SS " int hwloc_bitmap_snprintf (char *restrict buf, size_t buflen, \fBhwloc_const_bitmap_t\fP bitmap)"
308 .SS " int hwloc_bitmap_snprintf (char *restrictbuf, size_tbuflen, \fBhwloc_const_bitmap_t\fPbitmap)"
309309 .PP
310310 Stringify a bitmap. Up to \fCbuflen\fP characters may be written in buffer \fCbuf\fP.
311311 .PP
317317 .RE
318318 .PP
319319
320 .SS " int hwloc_bitmap_sscanf (\fBhwloc_bitmap_t\fP bitmap, const char *restrict string)"
320 .SS " int hwloc_bitmap_sscanf (\fBhwloc_bitmap_t\fPbitmap, const char *restrictstring)"
321321 .PP
322322 Parse a bitmap string and stores it in bitmap \fCbitmap\fP.
323 .SS " int hwloc_bitmap_taskset_asprintf (char ** strp, \fBhwloc_const_bitmap_t\fP bitmap)"
323 .SS " int hwloc_bitmap_taskset_asprintf (char **strp, \fBhwloc_const_bitmap_t\fPbitmap)"
324324 .PP
325325 Stringify a bitmap into a newly allocated taskset-specific string.
326 .SS " int hwloc_bitmap_taskset_snprintf (char *restrict buf, size_t buflen, \fBhwloc_const_bitmap_t\fP bitmap)"
326 .SS " int hwloc_bitmap_taskset_snprintf (char *restrictbuf, size_tbuflen, \fBhwloc_const_bitmap_t\fPbitmap)"
327327 .PP
328328 Stringify a bitmap in the taskset-specific format. The taskset command manipulates bitmap strings that contain a single (possible very long) hexadecimal number starting with 0x.
329329 .PP
337337 .RE
338338 .PP
339339
340 .SS " int hwloc_bitmap_taskset_sscanf (\fBhwloc_bitmap_t\fP bitmap, const char *restrict string)"
340 .SS " int hwloc_bitmap_taskset_sscanf (\fBhwloc_bitmap_t\fPbitmap, const char *restrictstring)"
341341 .PP
342342 Parse a taskset-specific bitmap string and stores it in bitmap \fCbitmap\fP.
343 .SS " unsigned long hwloc_bitmap_to_ith_ulong (\fBhwloc_const_bitmap_t\fP bitmap, unsigned i)"
343 .SS " unsigned long hwloc_bitmap_to_ith_ulong (\fBhwloc_const_bitmap_t\fPbitmap, unsignedi)"
344344 .PP
345345 Convert the \fCi\fP -th subset of bitmap \fCbitmap\fP into unsigned long mask.
346 .SS " unsigned long hwloc_bitmap_to_ulong (\fBhwloc_const_bitmap_t\fP bitmap)"
346 .SS " unsigned long hwloc_bitmap_to_ulong (\fBhwloc_const_bitmap_t\fPbitmap)"
347347 .PP
348348 Convert the beginning part of bitmap \fCbitmap\fP into unsigned long \fCmask\fP.
349 .SS " int hwloc_bitmap_weight (\fBhwloc_const_bitmap_t\fP bitmap)"
349 .SS " int hwloc_bitmap_weight (\fBhwloc_const_bitmap_t\fPbitmap)"
350350 .PP
351351 Compute the 'weight' of bitmap \fCbitmap\fP (i.e., number of indexes that are in the bitmap). \fBReturns:\fP
352352 .RS 4
354354 .RE
355355 .PP
356356
357 .SS " void hwloc_bitmap_xor (\fBhwloc_bitmap_t\fP res, \fBhwloc_const_bitmap_t\fP bitmap1, \fBhwloc_const_bitmap_t\fP bitmap2)"
357 .SS " void hwloc_bitmap_xor (\fBhwloc_bitmap_t\fPres, \fBhwloc_const_bitmap_t\fPbitmap1, \fBhwloc_const_bitmap_t\fPbitmap2)"
358358 .PP
359359 Xor bitmaps \fCbitmap1\fP and \fCbitmap2\fP and store the result in bitmap \fCres\fP.
360 .SS " void hwloc_bitmap_zero (\fBhwloc_bitmap_t\fP bitmap)"
360 .SS " void hwloc_bitmap_zero (\fBhwloc_bitmap_t\fPbitmap)"
361361 .PP
362362 Empty the bitmap \fCbitmap\fP.
363363 .SH "Author"
0 .TH "Configure Topology Detection" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Configure Topology Detection" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
9090 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.
9191 .SH "Function Documentation"
9292 .PP
93 .SS " struct \fBhwloc_topology_support\fP* hwloc_topology_get_support (\fBhwloc_topology_t\fP restrict topology)\fC [read]\fP"
93 .SS " struct \fBhwloc_topology_support\fP* hwloc_topology_get_support (\fBhwloc_topology_t\fP restricttopology)\fC [read]\fP"
9494 .PP
9595 Retrieve the topology support.
96 .SS " int hwloc_topology_ignore_all_keep_structure (\fBhwloc_topology_t\fP topology)"
96 .SS " int hwloc_topology_ignore_all_keep_structure (\fBhwloc_topology_t\fPtopology)"
9797 .PP
9898 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.
99 .SS " int hwloc_topology_ignore_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)"
99 .SS " int hwloc_topology_ignore_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)"
100100 .PP
101101 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.
102 .SS " int hwloc_topology_ignore_type_keep_structure (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)"
102 .SS " int hwloc_topology_ignore_type_keep_structure (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)"
103103 .PP
104104 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.
105 .SS " int hwloc_topology_set_flags (\fBhwloc_topology_t\fP topology, unsigned long flags)"
105 .SS " int hwloc_topology_set_flags (\fBhwloc_topology_t\fPtopology, unsigned longflags)"
106106 .PP
107 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.
108 .SS " int hwloc_topology_set_fsroot (\fBhwloc_topology_t\fP restrict topology, const char *restrict fsroot_path)"
107 Set OR'ed flags to non-yet-loaded topology. Set a OR'ed set of \fBhwloc_topology_flags_e\fP onto a topology that was not yet loaded.
108 .SS " int hwloc_topology_set_fsroot (\fBhwloc_topology_t\fP restricttopology, const char *restrictfsroot_path)"
109109 .PP
110110 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 \fCfsroot_path\fP 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 \fBhwloc_topology_is_thissystem()\fP to return 0.
111111 .PP
115115 .RE
116116 .PP
117117
118 .SS " int hwloc_topology_set_pid (\fBhwloc_topology_t\fP restrict topology, hwloc_pid_t pid)"
118 .SS " int hwloc_topology_set_pid (\fBhwloc_topology_t\fP restricttopology, hwloc_pid_tpid)"
119119 .PP
120120 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 \fBhwloc_topology_set_pid()\fP permits to make it expose the topology of the machine from the point of view of another process.
121121 .PP
127127 .RE
128128 .PP
129129
130 .SS " int hwloc_topology_set_synthetic (\fBhwloc_topology_t\fP restrict topology, const char *restrict description)"
130 .SS " int hwloc_topology_set_synthetic (\fBhwloc_topology_t\fP restricttopology, const char *restrictdescription)"
131131 .PP
132 Enable synthetic topology. Gather topology information from the given \fCdescription\fP 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.
132 Enable synthetic topology. Gather topology information from the given \fCdescription\fP which should be a space-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.
133 .PP
134 If \fCdescription\fP was properly parsed and describes a valid topology configuration, this function returns 0. Otherwise -1 is returned and errno is set to EINVAL.
133135 .PP
134136 \fBNote:\fP
135137 .RS 4
137139 .RE
138140 .PP
139141
140 .SS " int hwloc_topology_set_xml (\fBhwloc_topology_t\fP restrict topology, const char *restrict xmlpath)"
142 .SS " int hwloc_topology_set_xml (\fBhwloc_topology_t\fP restricttopology, const char *restrictxmlpath)"
141143 .PP
142144 Enable XML-file based topology. Gather topology information from the XML file given at \fCxmlpath\fP. Setting the environment variable HWLOC_XMLFILE may also result in this behavior. This file may have been generated earlier with lstopo file.xml.
143145 .PP
147149 .RE
148150 .PP
149151
150 .SS " int hwloc_topology_set_xmlbuffer (\fBhwloc_topology_t\fP restrict topology, const char *restrict buffer, int size)"
152 .SS " int hwloc_topology_set_xmlbuffer (\fBhwloc_topology_t\fP restricttopology, const char *restrictbuffer, intsize)"
151153 .PP
152154 Enable XML based topology using a memory buffer instead of a file. Gather topology information from the XML memory buffer given at \fCbuffer\fP and of length \fClength\fP.
153155 .SH "Author"
0 .TH "Object/String Conversion" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Object/String Conversion" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2929 .in -1c
3030 .SH "Function Documentation"
3131 .PP
32 .SS " int hwloc_obj_attr_snprintf (char *restrict string, size_t size, \fBhwloc_obj_t\fP obj, const char *restrict separator, int verbose)"
32 .SS " int hwloc_obj_attr_snprintf (char *restrictstring, size_tsize, \fBhwloc_obj_t\fPobj, const char *restrictseparator, intverbose)"
3333 .PP
3434 Stringify the attributes of a given topology object into a human-readable form. Attribute values are separated by \fCseparator\fP.
3535 .PP
4343 .RE
4444 .PP
4545
46 .SS " int hwloc_obj_cpuset_snprintf (char *restrict str, size_t size, size_t nobj, const \fBhwloc_obj_t\fP *restrict objs)"
46 .SS " int hwloc_obj_cpuset_snprintf (char *restrictstr, size_tsize, size_tnobj, const \fBhwloc_obj_t\fP *restrictobjs)"
4747 .PP
4848 Stringify the cpuset containing a set of objects. If \fCsize\fP is 0, \fCstring\fP may safely be \fCNULL\fP.
4949 .PP
5353 .RE
5454 .PP
5555
56 .SS "static inline char* hwloc_obj_get_info_by_name (\fBhwloc_obj_t\fP obj, const char * name)\fC [static]\fP"
56 .SS "static inline char* hwloc_obj_get_info_by_name (\fBhwloc_obj_t\fPobj, const char *name)\fC [static]\fP"
5757 .PP
5858 Search the given key name in object infos and return the corresponding value. \fBReturns:\fP
5959 .RS 4
6161 .RE
6262 .PP
6363
64 .SS " int hwloc_obj_snprintf (char *restrict string, size_t size, \fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fP obj, const char *restrict indexprefix, int verbose)"
64 .SS " int hwloc_obj_snprintf (char *restrictstring, size_tsize, \fBhwloc_topology_t\fPtopology, \fBhwloc_obj_t\fPobj, const char *restrictindexprefix, intverbose)"
6565 .PP
6666 Stringify a given topology object into a human-readable form. \fBNote:\fP
6767 .RS 4
8282 .RE
8383 .PP
8484
85 .SS " \fBhwloc_obj_type_t\fP hwloc_obj_type_of_string (const char * string)"
85 .SS " \fBhwloc_obj_type_t\fP hwloc_obj_type_of_string (const char *string)"
8686 .PP
8787 Return an object type from the string. \fBReturns:\fP
8888 .RS 4
9090 .RE
9191 .PP
9292
93 .SS " int hwloc_obj_type_snprintf (char *restrict string, size_t size, \fBhwloc_obj_t\fP obj, int verbose)"
93 .SS " int hwloc_obj_type_snprintf (char *restrictstring, size_tsize, \fBhwloc_obj_t\fPobj, intverbose)"
9494 .PP
9595 Stringify the type of a given topology object into a human-readable form. It differs from \fBhwloc_obj_type_string()\fP because it prints type attributes such as cache depth.
9696 .PP
102102 .RE
103103 .PP
104104
105 .SS " const char* hwloc_obj_type_string (\fBhwloc_obj_type_t\fP type) const"
105 .SS " const char* hwloc_obj_type_string (\fBhwloc_obj_type_t\fPtype) const"
106106 .PP
107107 Return a stringified topology object type.
108108 .SH "Author"
0 .TH "CPU binding" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "CPU binding" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
111111 Avoid any effect on memory binding. On some operating systems, some CPU binding function would also bind the memory on the corresponding NUMA node. It is often not a problem for the application, but if it is, setting this flag will make hwloc avoid using OS functions that would also bind memory. This will however reduce the support of CPU bindings, i.e. potentially return -1 with errno set to ENOSYS in some cases.
112112 .SH "Function Documentation"
113113 .PP
114 .SS " int hwloc_get_cpubind (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP set, int flags)"
114 .SS " int hwloc_get_cpubind (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPset, intflags)"
115115 .PP
116116 Get current process or thread binding.
117 .SS " int hwloc_get_proc_cpubind (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_cpuset_t\fP set, int flags)"
117 .SS " int hwloc_get_proc_cpubind (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_cpuset_t\fPset, intflags)"
118118 .PP
119119 Get the current binding of process \fCpid\fP. \fBNote:\fP
120120 .RS 4
124124 .RE
125125 .PP
126126
127 .SS " int hwloc_get_thread_cpubind (\fBhwloc_topology_t\fP topology, hwloc_thread_t tid, \fBhwloc_cpuset_t\fP set, int flags)"
127 .SS " int hwloc_get_thread_cpubind (\fBhwloc_topology_t\fPtopology, hwloc_thread_ttid, \fBhwloc_cpuset_t\fPset, intflags)"
128128 .PP
129129 Get the current binding of thread \fCtid\fP. \fBNote:\fP
130130 .RS 4
134134 .RE
135135 .PP
136136
137 .SS " int hwloc_set_cpubind (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, int flags)"
137 .SS " int hwloc_set_cpubind (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, intflags)"
138138 .PP
139139 Bind current process or thread on cpus given in bitmap \fCset\fP. \fBReturns:\fP
140140 .RS 4
144144 .RE
145145 .PP
146146
147 .SS " int hwloc_set_proc_cpubind (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_const_cpuset_t\fP set, int flags)"
147 .SS " int hwloc_set_proc_cpubind (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_const_cpuset_t\fPset, intflags)"
148148 .PP
149149 Bind a process \fCpid\fP on cpus given in bitmap \fCset\fP. \fBNote:\fP
150150 .RS 4
154154 .RE
155155 .PP
156156
157 .SS " int hwloc_set_thread_cpubind (\fBhwloc_topology_t\fP topology, hwloc_thread_t tid, \fBhwloc_const_cpuset_t\fP set, int flags)"
157 .SS " int hwloc_set_thread_cpubind (\fBhwloc_topology_t\fPtopology, hwloc_thread_ttid, \fBhwloc_const_cpuset_t\fPset, intflags)"
158158 .PP
159159 Bind a thread \fCtid\fP on cpus given in bitmap \fCset\fP. \fBNote:\fP
160160 .RS 4
0 .TH "Create and Destroy Topologies" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Create and Destroy Topologies" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS " void hwloc_topology_check (\fBhwloc_topology_t\fP topology)"
23 .SS " void hwloc_topology_check (\fBhwloc_topology_t\fPtopology)"
2424 .PP
2525 Run internal checks on a topology structure. \fBParameters:\fP
2626 .RS 4
2828 .RE
2929 .PP
3030
31 .SS " void hwloc_topology_destroy (\fBhwloc_topology_t\fP topology)"
31 .SS " void hwloc_topology_destroy (\fBhwloc_topology_t\fPtopology)"
3232 .PP
3333 Terminate and free a topology context. \fBParameters:\fP
3434 .RS 4
3636 .RE
3737 .PP
3838
39 .SS " int hwloc_topology_init (\fBhwloc_topology_t\fP * topologyp)"
39 .SS " int hwloc_topology_init (\fBhwloc_topology_t\fP *topologyp)"
4040 .PP
4141 Allocate a topology context. \fBParameters:\fP
4242 .RS 4
4949 .RE
5050 .PP
5151
52 .SS " int hwloc_topology_load (\fBhwloc_topology_t\fP topology)"
52 .SS " int hwloc_topology_load (\fBhwloc_topology_t\fPtopology)"
5353 .PP
5454 Build the actual topology. Build the actual topology once initialized with \fBhwloc_topology_init()\fP and tuned with \fBConfigure Topology Detection\fP routines. No other routine may be called earlier using this topology context.
5555 .PP
0 .TH "CUDA Driver API Specific Functions" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "CUDA Driver API Specific Functions" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1111 .in -1c
1212 .SH "Function Documentation"
1313 .PP
14 .SS "static inline int hwloc_cuda_get_device_cpuset (\fBhwloc_topology_t\fP topology , CUdevice cudevice, \fBhwloc_cpuset_t\fP set)\fC [static]\fP"
14 .SS "static inline int hwloc_cuda_get_device_cpuset (\fBhwloc_topology_t\fP topology, CUdevicecudevice, \fBhwloc_cpuset_t\fPset)\fC [static]\fP"
1515 .PP
1616 Get the CPU set of logical processors that are physically close to device \fCcudevice\fP. For the given CUDA Driver API device \fCcudevice\fP, 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.
1717 .SH "Author"
0 .TH "CUDA Runtime API Specific Functions" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "CUDA Runtime API Specific Functions" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1111 .in -1c
1212 .SH "Function Documentation"
1313 .PP
14 .SS "static inline int hwloc_cudart_get_device_cpuset (\fBhwloc_topology_t\fP topology , int device, \fBhwloc_cpuset_t\fP set)\fC [static]\fP"
14 .SS "static inline int hwloc_cudart_get_device_cpuset (\fBhwloc_topology_t\fP topology, intdevice, \fBhwloc_cpuset_t\fPset)\fC [static]\fP"
1515 .PP
1616 Get the CPU set of logical processors that are physically close to device \fCcudevice\fP. For the given CUDA Runtime API device \fCcudevice\fP, 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.
1717 .SH "Author"
0 .TH "Helpers for manipulating glibc sched affinity" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Helpers for manipulating glibc sched affinity" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline int hwloc_cpuset_from_glibc_sched_affinity (\fBhwloc_topology_t\fP topology , \fBhwloc_cpuset_t\fP hwlocset, const cpu_set_t * schedset, size_t schedsetsize)\fC [static]\fP"
17 .SS "static inline int hwloc_cpuset_from_glibc_sched_affinity (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fPhwlocset, const cpu_set_t *schedset, size_tschedsetsize)\fC [static]\fP"
1818 .PP
1919 Convert glibc sched affinity CPU set \fCschedset\fP 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.
2020 .PP
2121 \fCschedsetsize\fP should be sizeof(cpu_set_t) unless \fCschedset\fP was dynamically allocated with CPU_ALLOC
22 .SS "static inline int hwloc_cpuset_to_glibc_sched_affinity (\fBhwloc_topology_t\fP topology , \fBhwloc_const_cpuset_t\fP hwlocset, cpu_set_t * schedset, size_t schedsetsize)\fC [static]\fP"
22 .SS "static inline int hwloc_cpuset_to_glibc_sched_affinity (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fPhwlocset, cpu_set_t *schedset, size_tschedsetsize)\fC [static]\fP"
2323 .PP
2424 Convert hwloc CPU set \fCtoposet\fP into glibc sched affinity CPU set \fCschedset\fP. This function may be used before calling sched_setaffinity or any other function that takes a cpu_set_t as input parameter.
2525 .PP
0 .TH "Binding Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Binding Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS "static inline void* hwloc_alloc_membind_policy (\fBhwloc_topology_t\fP topology, size_t len, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP policy, int flags)\fC [static]\fP"
23 .SS "static inline void* hwloc_alloc_membind_policy (\fBhwloc_topology_t\fPtopology, size_tlen, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fPpolicy, intflags)\fC [static]\fP"
2424 .PP
2525 Allocate some memory on the memory nodes near given cpuset \fCcpuset\fP. This is similar to hwloc_alloc_membind_policy_nodeset, but for a given cpuset.
26 .SS "static inline void* hwloc_alloc_membind_policy_nodeset (\fBhwloc_topology_t\fP topology, size_t len, \fBhwloc_const_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP policy, int flags)\fC [static]\fP"
26 .SS "static inline void* hwloc_alloc_membind_policy_nodeset (\fBhwloc_topology_t\fPtopology, size_tlen, \fBhwloc_const_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fPpolicy, intflags)\fC [static]\fP"
2727 .PP
2828 Allocate some memory on the given nodeset \fCnodeset\fP. This is similar to hwloc_alloc_membind except that it is allowed to change the current memory binding policy, thus providing more binding support, at the expense of changing the current state.
29 .SS "static inline void hwloc_distribute (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fP root, \fBhwloc_cpuset_t\fP * cpuset, unsigned n, unsigned until)\fC [static]\fP"
30 .SS "static inline void hwloc_distributev (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fP * roots, unsigned n_roots, \fBhwloc_cpuset_t\fP * cpuset, unsigned n, unsigned until)\fC [static]\fP"
29 .SS "static inline void hwloc_distribute (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_t\fProot, \fBhwloc_cpuset_t\fP *cpuset, unsignedn, unsigneduntil)\fC [static]\fP"
30 .SS "static inline void hwloc_distributev (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_t\fP *roots, unsignedn_roots, \fBhwloc_cpuset_t\fP *cpuset, unsignedn, unsigneduntil)\fC [static]\fP"
3131 .PP
3232 Distribute \fCn\fP items over the topology under \fCroot\fP. Distribute \fCn\fP items over the topology under \fCroots\fP.
3333 .PP
0 .TH "Cpuset Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Cpuset Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_allowed_cpuset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
23 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_allowed_cpuset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
2424 .PP
2525 Get allowed CPU set. \fBReturns:\fP
2626 .RS 4
3333 .RE
3434 .PP
3535
36 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_complete_cpuset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
36 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_complete_cpuset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
3737 .PP
3838 Get complete CPU set. \fBReturns:\fP
3939 .RS 4
4646 .RE
4747 .PP
4848
49 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_online_cpuset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
49 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_online_cpuset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
5050 .PP
5151 Get online CPU set. \fBReturns:\fP
5252 .RS 4
5959 .RE
6060 .PP
6161
62 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_topology_cpuset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
62 .SS "static inline \fBhwloc_const_cpuset_t\fP hwloc_topology_get_topology_cpuset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
6363 .PP
6464 Get topology CPU set. \fBReturns:\fP
6565 .RS 4
0 .TH "Cache-specific Finding Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Cache-specific Finding Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_cache_covering_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set)\fC [static]\fP"
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_cache_covering_cpuset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset)\fC [static]\fP"
1818 .PP
1919 Get the first cache covering a cpuset \fCset\fP. \fBReturns:\fP
2020 .RS 4
2222 .RE
2323 .PP
2424
25 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_shared_cache_covering_obj (\fBhwloc_topology_t\fP topology , \fBhwloc_obj_t\fP obj)\fC [static]\fP"
25 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_shared_cache_covering_obj (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fPobj)\fC [static]\fP"
2626 .PP
2727 Get the first cache shared between an object and somebody else. \fBReturns:\fP
2828 .RS 4
0 .TH "Finding a single Object covering at least CPU set" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Finding a single Object covering at least CPU set" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_child_covering_cpuset (\fBhwloc_topology_t\fP topology , \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_t\fP parent)\fC [static]\fP"
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_child_covering_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_t\fPparent)\fC [static]\fP"
1818 .PP
1919 Get the child covering at least CPU set \fCset\fP. \fBReturns:\fP
2020 .RS 4
2222 .RE
2323 .PP
2424
25 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_covering_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set)\fC [static]\fP"
25 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_covering_cpuset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset)\fC [static]\fP"
2626 .PP
2727 Get the lowest object covering at least CPU set \fCset\fP. \fBReturns:\fP
2828 .RS 4
0 .TH "Finding a set of similar Objects covering at least a CPU set" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Finding a set of similar Objects covering at least a CPU set" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_covering_cpuset_by_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, unsigned depth, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
17 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_covering_cpuset_by_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, unsigneddepth, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
1818 .PP
1919 Iterate through same-depth objects covering at least CPU set \fCset\fP. If object \fCprev\fP is \fCNULL\fP, return the first object at depth \fCdepth\fP covering at least part of CPU set \fCset\fP. The next invokation should pass the previous return value in \fCprev\fP so as to obtain the next object covering at least another part of \fCset\fP.
20 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_covering_cpuset_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_type_t\fP type, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
20 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_covering_cpuset_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_type_t\fPtype, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
2121 .PP
2222 Iterate through same-type objects covering at least CPU set \fCset\fP. If object \fCprev\fP is \fCNULL\fP, return the first object of type \fCtype\fP covering at least part of CPU set \fCset\fP. The next invokation should pass the previous return value in \fCprev\fP so as to obtain the next object of type \fCtype\fP covering at least another part of \fCset\fP.
2323 .PP
0 .TH "Finding Objects Inside a CPU set" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Finding Objects Inside a CPU set" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
3232 .in -1c
3333 .SH "Function Documentation"
3434 .PP
35 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_first_largest_obj_inside_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set)\fC [static]\fP"
35 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_first_largest_obj_inside_cpuset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset)\fC [static]\fP"
3636 .PP
3737 Get the first largest object included in the given cpuset \fCset\fP. \fBReturns:\fP
3838 .RS 4
4040 .RE
4141 .PP
4242 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.
43 .SS " int hwloc_get_largest_objs_inside_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_t\fP *restrict objs, int max)"
43 .SS " int hwloc_get_largest_objs_inside_cpuset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_t\fP *restrictobjs, intmax)"
4444 .PP
4545 Get the set of largest objects covering exactly a given cpuset \fCset\fP. \fBReturns:\fP
4646 .RS 4
4848 .RE
4949 .PP
5050
51 .SS "static inline unsigned hwloc_get_nbobjs_inside_cpuset_by_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, unsigned depth)\fC [static]\fP"
51 .SS "static inline unsigned hwloc_get_nbobjs_inside_cpuset_by_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, unsigneddepth)\fC [static]\fP"
5252 .PP
5353 Return the number of objects at depth \fCdepth\fP included in CPU set \fCset\fP.
54 .SS "static inline int hwloc_get_nbobjs_inside_cpuset_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_type_t\fP type)\fC [static]\fP"
54 .SS "static inline int hwloc_get_nbobjs_inside_cpuset_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_type_t\fPtype)\fC [static]\fP"
5555 .PP
5656 Return the number of objects of type \fCtype\fP included in CPU set \fCset\fP. If no object for that type exists inside CPU set \fCset\fP, 0 is returned. If there are several levels with objects of that type inside CPU set \fCset\fP, -1 is returned.
57 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_inside_cpuset_by_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, unsigned depth, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
57 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_inside_cpuset_by_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, unsigneddepth, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
5858 .PP
5959 Return the next object at depth \fCdepth\fP included in CPU set \fCset\fP. If \fCprev\fP is \fCNULL\fP, return the first object at depth \fCdepth\fP included in \fCset\fP. The next invokation should pass the previous return value in \fCprev\fP so as to obtain the next object in \fCset\fP.
60 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_inside_cpuset_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_type_t\fP type, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
60 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_inside_cpuset_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_type_t\fPtype, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
6161 .PP
6262 Return the next object of type \fCtype\fP included in CPU set \fCset\fP. If there are multiple or no depth for given type, return \fCNULL\fP and let the caller fallback to \fBhwloc_get_next_obj_inside_cpuset_by_depth()\fP.
63 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_inside_cpuset_by_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, unsigned depth, unsigned idx)\fC [static]\fP"
63 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_inside_cpuset_by_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, unsigneddepth, unsignedidx)\fC [static]\fP"
6464 .PP
6565 Return the \fCindex\fP -th object at depth \fCdepth\fP included in CPU set \fCset\fP.
66 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_inside_cpuset_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP set, \fBhwloc_obj_type_t\fP type, unsigned idx)\fC [static]\fP"
66 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_inside_cpuset_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPset, \fBhwloc_obj_type_t\fPtype, unsignedidx)\fC [static]\fP"
6767 .PP
6868 Return the \fCidx\fP -th object of type \fCtype\fP included in CPU set \fCset\fP. If there are multiple or no depth for given type, return \fCNULL\fP and let the caller fallback to \fBhwloc_get_obj_inside_cpuset_by_depth()\fP.
6969 .SH "Author"
0 .TH "Nodeset Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Nodeset Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1717 .in -1c
1818 .SH "Function Documentation"
1919 .PP
20 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_allowed_nodeset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
20 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_allowed_nodeset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
2121 .PP
2222 Get allowed node set. \fBReturns:\fP
2323 .RS 4
3030 .RE
3131 .PP
3232
33 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_complete_nodeset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
33 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_complete_nodeset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
3434 .PP
3535 Get complete node set. \fBReturns:\fP
3636 .RS 4
4343 .RE
4444 .PP
4545
46 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_topology_nodeset (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
46 .SS "static inline \fBhwloc_const_nodeset_t\fP hwloc_topology_get_topology_nodeset (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
4747 .PP
4848 Get topology node set. \fBReturns:\fP
4949 .RS 4
0 .TH "Conversion between cpuset and nodeset" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Conversion between cpuset and nodeset" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2727 When manipulating nodesets as an actual list of NUMA nodes without any need to handle memory binding on non-NUMA machines, the strict conversion routines may be used instead.
2828 .SH "Function Documentation"
2929 .PP
30 .SS "static inline void hwloc_cpuset_from_nodeset (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP cpuset, \fBhwloc_const_nodeset_t\fP nodeset)\fC [static]\fP"
30 .SS "static inline void hwloc_cpuset_from_nodeset (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPcpuset, \fBhwloc_const_nodeset_t\fPnodeset)\fC [static]\fP"
3131 .PP
3232 Convert a NUMA node set into a CPU set and handle non-NUMA cases. If the topology contains no NUMA nodes, the machine is considered as a single memory node, and the following behavior is used: If \fCnodeset\fP is empty, \fCcpuset\fP will be emptied as well. Otherwise \fCcpuset\fP will be entirely filled. This is useful for manipulating memory binding sets.
33 .SS "static inline void hwloc_cpuset_from_nodeset_strict (struct hwloc_topology * topology, \fBhwloc_cpuset_t\fP cpuset, \fBhwloc_const_nodeset_t\fP nodeset)\fC [static]\fP"
33 .SS "static inline void hwloc_cpuset_from_nodeset_strict (struct hwloc_topology *topology, \fBhwloc_cpuset_t\fPcpuset, \fBhwloc_const_nodeset_t\fPnodeset)\fC [static]\fP"
3434 .PP
3535 Convert a NUMA node set into a CPU set without handling non-NUMA cases. This is the strict variant of \fBhwloc_cpuset_from_nodeset\fP. It does not fix non-NUMA cases. If the topology contains some NUMA nodes, behave exactly the same. However, if the topology contains no NUMA nodes, return an empty cpuset.
36 .SS "static inline void hwloc_cpuset_to_nodeset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_nodeset_t\fP nodeset)\fC [static]\fP"
36 .SS "static inline void hwloc_cpuset_to_nodeset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_nodeset_t\fPnodeset)\fC [static]\fP"
3737 .PP
3838 Convert a CPU set into a NUMA node set and handle non-NUMA cases. If some NUMA nodes have no CPUs at all, this function never sets their indexes in the output node set, even if a full CPU set is given in input.
3939 .PP
4040 If the topology contains no NUMA nodes, the machine is considered as a single memory node, and the following behavior is used: If \fCcpuset\fP is empty, \fCnodeset\fP will be emptied as well. Otherwise \fCnodeset\fP will be entirely filled.
41 .SS "static inline void hwloc_cpuset_to_nodeset_strict (struct hwloc_topology * topology, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_nodeset_t\fP nodeset)\fC [static]\fP"
41 .SS "static inline void hwloc_cpuset_to_nodeset_strict (struct hwloc_topology *topology, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_nodeset_t\fPnodeset)\fC [static]\fP"
4242 .PP
4343 Convert a CPU set into a NUMA node set without handling non-NUMA cases. This is the strict variant of \fBhwloc_cpuset_to_nodeset\fP. It does not fix non-NUMA cases. If the topology contains some NUMA nodes, behave exactly the same. However, if the topology contains no NUMA nodes, return an empty nodeset.
4444 .SH "Author"
0 .TH "Advanced Traversal Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Advanced Traversal Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1717 .in -1c
1818 .SH "Function Documentation"
1919 .PP
20 .SS " unsigned hwloc_get_closest_objs (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fP src, \fBhwloc_obj_t\fP *restrict objs, unsigned max)"
20 .SS " unsigned hwloc_get_closest_objs (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_t\fPsrc, \fBhwloc_obj_t\fP *restrictobjs, unsignedmax)"
2121 .PP
2222 Do a depth-first traversal of the topology to find and sort. all objects that are at the same depth than \fCsrc\fP. Report in \fCobjs\fP up to \fCmax\fP physically closest ones to \fCsrc\fP.
2323 .PP
2727 .RE
2828 .PP
2929
30 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_below_array_by_type (\fBhwloc_topology_t\fP topology, int nr, \fBhwloc_obj_type_t\fP * typev, unsigned * idxv)\fC [static]\fP"
30 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_below_array_by_type (\fBhwloc_topology_t\fPtopology, intnr, \fBhwloc_obj_type_t\fP *typev, unsigned *idxv)\fC [static]\fP"
3131 .PP
3232 Find an object below a chain of objects specified by types and indexes. This is a generalized version of \fBhwloc_get_obj_below_by_type()\fP.
3333 .PP
3636 Start from the top system object and walk the arrays \fCtypev\fP and \fCidxv\fP. 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.
3737 .PP
3838 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.
39 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_below_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type1, unsigned idx1, \fBhwloc_obj_type_t\fP type2, unsigned idx2)\fC [static]\fP"
39 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_below_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype1, unsignedidx1, \fBhwloc_obj_type_t\fPtype2, unsignedidx2)\fC [static]\fP"
4040 .PP
4141 Find an object below another object, both specified by types and indexes. Start from the top system object and find object of type \fCtype1\fP and index \fCidx1\fP. Then look below this object and find another object of type \fCtype2\fP and index \fCidx2\fP. Indexes are specified within the parent, not withing the entire system.
4242 .PP
0 .TH "Basic Traversal Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Basic Traversal Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
3535 .in -1c
3636 .SH "Function Documentation"
3737 .PP
38 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_ancestor_obj_by_depth (\fBhwloc_topology_t\fP topology , unsigned depth, \fBhwloc_obj_t\fP obj)\fC [static]\fP"
38 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_ancestor_obj_by_depth (\fBhwloc_topology_t\fP topology, unsigneddepth, \fBhwloc_obj_t\fPobj)\fC [static]\fP"
3939 .PP
4040 Returns the ancestor object of \fCobj\fP at depth \fCdepth\fP.
41 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_ancestor_obj_by_type (\fBhwloc_topology_t\fP topology , \fBhwloc_obj_type_t\fP type, \fBhwloc_obj_t\fP obj)\fC [static]\fP"
41 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_ancestor_obj_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fPtype, \fBhwloc_obj_t\fPobj)\fC [static]\fP"
4242 .PP
4343 Returns the ancestor object of \fCobj\fP with type \fCtype\fP.
44 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_common_ancestor_obj (\fBhwloc_topology_t\fP topology , \fBhwloc_obj_t\fP obj1, \fBhwloc_obj_t\fP obj2)\fC [static]\fP"
44 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_common_ancestor_obj (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fPobj1, \fBhwloc_obj_t\fPobj2)\fC [static]\fP"
4545 .PP
4646 Returns the common parent object to objects lvl1 and lvl2.
47 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_child (\fBhwloc_topology_t\fP topology , \fBhwloc_obj_t\fP parent, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
47 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_child (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fPparent, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
4848 .PP
4949 Return the next child. If \fCprev\fP is \fCNULL\fP, return the first child.
50 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_by_depth (\fBhwloc_topology_t\fP topology, unsigned depth, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
50 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_by_depth (\fBhwloc_topology_t\fPtopology, unsigneddepth, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
5151 .PP
5252 Returns the next object at depth \fCdepth\fP. If \fCprev\fP is \fCNULL\fP, return the first object at depth \fCdepth\fP.
53 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type, \fBhwloc_obj_t\fP prev)\fC [static]\fP"
53 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_next_obj_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype, \fBhwloc_obj_t\fPprev)\fC [static]\fP"
5454 .PP
5555 Returns the next object of type \fCtype\fP. If \fCprev\fP is \fCNULL\fP, return the first object at type \fCtype\fP. If there are multiple or no depth for given type, return \fCNULL\fP and let the caller fallback to \fBhwloc_get_next_obj_by_depth()\fP.
56 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_pu_obj_by_os_index (\fBhwloc_topology_t\fP topology, unsigned os_index)\fC [static]\fP"
56 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_pu_obj_by_os_index (\fBhwloc_topology_t\fPtopology, unsignedos_index)\fC [static]\fP"
5757 .PP
5858 Returns the object of type \fBHWLOC_OBJ_PU\fP with \fCos_index\fP. \fBNote:\fP
5959 .RS 4
6161 .RE
6262 .PP
6363
64 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_root_obj (\fBhwloc_topology_t\fP topology)\fC [static]\fP"
64 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_root_obj (\fBhwloc_topology_t\fPtopology)\fC [static]\fP"
6565 .PP
6666 Returns the top-object of the topology-tree. Its type is typically \fBHWLOC_OBJ_MACHINE\fP but it could be different for complex topologies. This function replaces the old deprecated hwloc_get_system_obj().
67 .SS "static inline int hwloc_obj_is_in_subtree (\fBhwloc_topology_t\fP topology , \fBhwloc_obj_t\fP obj, \fBhwloc_obj_t\fP subtree_root)\fC [static]\fP"
67 .SS "static inline int hwloc_obj_is_in_subtree (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fPobj, \fBhwloc_obj_t\fPsubtree_root)\fC [static]\fP"
6868 .PP
69 Returns true if _obj_ is inside the subtree beginning with \fCsubtree_root\fP.
69 Returns true if \fCobj\fP is inside the subtree beginning with \fCsubtree_root\fP. \fBNote:\fP
70 .RS 4
71 This function assumes that both \fCobj\fP and \fCsubtree_root\fP have a \fCcpuset\fP.
72 .RE
73 .PP
74
7075 .SH "Author"
7176 .PP
7277 Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.
0 .TH "Object Type Helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Object Type Helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline int hwloc_get_type_or_above_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)\fC [static]\fP"
17 .SS "static inline int hwloc_get_type_or_above_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)\fC [static]\fP"
1818 .PP
1919 Returns the depth of objects of type \fCtype\fP 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 \fCtype\fP.
20 .SS "static inline int hwloc_get_type_or_below_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)\fC [static]\fP"
20 .SS "static inline int hwloc_get_type_or_below_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)\fC [static]\fP"
2121 .PP
2222 Returns the depth of objects of type \fCtype\fP 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 \fCtype\fP.
2323 .SH "Author"
0 .TH "Get some Topology Information" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Get some Topology Information" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
4545 Objects of given type exist at different depth in the topology.
4646 .SH "Function Documentation"
4747 .PP
48 .SS " \fBhwloc_obj_type_t\fP hwloc_get_depth_type (\fBhwloc_topology_t\fP topology, unsigned depth)"
48 .SS " \fBhwloc_obj_type_t\fP hwloc_get_depth_type (\fBhwloc_topology_t\fPtopology, unsigneddepth)"
4949 .PP
5050 Returns the type of objects at depth \fCdepth\fP. \fBReturns:\fP
5151 .RS 4
5353 .RE
5454 .PP
5555
56 .SS " unsigned hwloc_get_nbobjs_by_depth (\fBhwloc_topology_t\fP topology, unsigned depth)"
56 .SS " unsigned hwloc_get_nbobjs_by_depth (\fBhwloc_topology_t\fPtopology, unsigneddepth)"
5757 .PP
5858 Returns the width of level at depth \fCdepth\fP.
59 .SS "static inline int hwloc_get_nbobjs_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)\fC [static]\fP"
59 .SS "static inline int hwloc_get_nbobjs_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)\fC [static]\fP"
6060 .PP
6161 Returns the width of level type \fCtype\fP. If no object for that type exists, 0 is returned. If there are several levels with objects of that type, -1 is returned.
62 .SS " int hwloc_get_type_depth (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type)"
62 .SS " int hwloc_get_type_depth (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype)"
6363 .PP
6464 Returns the depth of objects of type \fCtype\fP. 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.
6565 .PP
66 If type is absent but a similar type is acceptable, see also \fBhwloc_get_type_or_below_depth()\fP and \fBhwloc_get_type_or_above_depth()\fP.
67 .SS " unsigned hwloc_topology_get_depth (\fBhwloc_topology_t\fP restrict topology)"
66 If type is absent but a similar type is acceptable, see also \fBhwloc_get_type_or_below_depth()\fP and \fBhwloc_get_type_or_above_depth()\fP.
67 .PP
68 If some objects of the given type exist in different levels, for instance L1 and L2 caches, the function returns HWLOC_TYPE_DEPTH_MULTIPLE.
69 .SS " unsigned hwloc_topology_get_depth (\fBhwloc_topology_t\fP restricttopology)"
6870 .PP
6971 Get the depth of the hierachical tree of objects. This is the depth of HWLOC_OBJ_PU objects plus one.
70 .SS " int hwloc_topology_is_thissystem (\fBhwloc_topology_t\fP restrict topology)"
72 .SS " int hwloc_topology_is_thissystem (\fBhwloc_topology_t\fP restricttopology)"
7173 .PP
7274 Does the topology context come from this system? \fBReturns:\fP
7375 .RS 4
0 .TH "Linux-only helpers" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Linux-only helpers" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 This includes helpers for manipulating linux kernel cpumap files, and hwloc equivalents of the Linux sched_setaffinity and sched_getaffinity system calls.
2121 .SH "Function Documentation"
2222 .PP
23 .SS " int hwloc_linux_get_tid_cpubind (\fBhwloc_topology_t\fP topology, pid_t tid, \fBhwloc_cpuset_t\fP set)"
23 .SS " int hwloc_linux_get_tid_cpubind (\fBhwloc_topology_t\fPtopology, pid_ttid, \fBhwloc_cpuset_t\fPset)"
2424 .PP
2525 Get the current binding of thread \fCtid\fP. The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset.
26 .SS " int hwloc_linux_parse_cpumap_file (FILE * file, \fBhwloc_cpuset_t\fP set)"
26 .SS " int hwloc_linux_parse_cpumap_file (FILE *file, \fBhwloc_cpuset_t\fPset)"
2727 .PP
2828 Convert a linux kernel cpumap file \fCfile\fP 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.
29 .SS " int hwloc_linux_set_tid_cpubind (\fBhwloc_topology_t\fP topology, pid_t tid, \fBhwloc_const_cpuset_t\fP set)"
29 .SS " int hwloc_linux_set_tid_cpubind (\fBhwloc_topology_t\fPtopology, pid_ttid, \fBhwloc_const_cpuset_t\fPset)"
3030 .PP
3131 Bind a thread \fCtid\fP on cpus given in cpuset \fCset\fP. The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset.
3232 .SH "Author"
0 .TH "Helpers for manipulating Linux libnuma bitmask" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Helpers for manipulating Linux libnuma bitmask" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_bitmask (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP cpuset, const struct bitmask * bitmask)\fC [static]\fP"
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_bitmask (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPcpuset, const struct bitmask *bitmask)\fC [static]\fP"
2424 .PP
2525 Convert libnuma bitmask \fCbitmask\fP into hwloc CPU set \fCcpuset\fP. This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter.
26 .SS "static inline struct bitmask* hwloc_cpuset_to_linux_libnuma_bitmask (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset)\fC [static, read]\fP"
26 .SS "static inline struct bitmask* hwloc_cpuset_to_linux_libnuma_bitmask (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset)\fC [static, read]\fP"
2727 .PP
2828 Convert hwloc CPU set \fCcpuset\fP into the returned libnuma bitmask. The returned bitmask should later be freed with numa_bitmask_free.
2929 .PP
3535 .RE
3636 .PP
3737
38 .SS "static inline int hwloc_nodeset_from_linux_libnuma_bitmask (\fBhwloc_topology_t\fP topology, \fBhwloc_nodeset_t\fP nodeset, const struct bitmask * bitmask)\fC [static]\fP"
38 .SS "static inline int hwloc_nodeset_from_linux_libnuma_bitmask (\fBhwloc_topology_t\fPtopology, \fBhwloc_nodeset_t\fPnodeset, const struct bitmask *bitmask)\fC [static]\fP"
3939 .PP
4040 Convert libnuma bitmask \fCbitmask\fP into hwloc NUMA node set \fCnodeset\fP. This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter.
41 .SS "static inline struct bitmask* hwloc_nodeset_to_linux_libnuma_bitmask (\fBhwloc_topology_t\fP topology, \fBhwloc_const_nodeset_t\fP nodeset)\fC [static, read]\fP"
41 .SS "static inline struct bitmask* hwloc_nodeset_to_linux_libnuma_bitmask (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_nodeset_t\fPnodeset)\fC [static, read]\fP"
4242 .PP
4343 Convert hwloc NUMA node set \fCnodeset\fP into the returned libnuma bitmask. The returned bitmask should later be freed with numa_bitmask_free.
4444 .PP
0 .TH "Helpers for manipulating Linux libnuma nodemask_t" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Helpers for manipulating Linux libnuma nodemask_t" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_nodemask (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP cpuset, const nodemask_t * nodemask)\fC [static]\fP"
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_nodemask (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPcpuset, const nodemask_t *nodemask)\fC [static]\fP"
2424 .PP
2525 Convert libnuma nodemask \fCnodemask\fP into hwloc CPU set \fCcpuset\fP. This function may be used before calling some old libnuma functions that use a nodemask_t as an output parameter.
26 .SS "static inline int hwloc_cpuset_to_linux_libnuma_nodemask (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset, nodemask_t * nodemask)\fC [static]\fP"
26 .SS "static inline int hwloc_cpuset_to_linux_libnuma_nodemask (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset, nodemask_t *nodemask)\fC [static]\fP"
2727 .PP
2828 Convert hwloc CPU set \fCcpuset\fP into libnuma nodemask \fCnodemask\fP. This function may be used before calling some old libnuma functions that use a nodemask_t as an input parameter.
29 .SS "static inline int hwloc_nodeset_from_linux_libnuma_nodemask (\fBhwloc_topology_t\fP topology, \fBhwloc_nodeset_t\fP nodeset, const nodemask_t * nodemask)\fC [static]\fP"
29 .SS "static inline int hwloc_nodeset_from_linux_libnuma_nodemask (\fBhwloc_topology_t\fPtopology, \fBhwloc_nodeset_t\fPnodeset, const nodemask_t *nodemask)\fC [static]\fP"
3030 .PP
3131 Convert libnuma nodemask \fCnodemask\fP into hwloc NUMA node set \fCnodeset\fP. This function may be used before calling some old libnuma functions that use a nodemask_t as an output parameter.
32 .SS "static inline int hwloc_nodeset_to_linux_libnuma_nodemask (\fBhwloc_topology_t\fP topology, \fBhwloc_const_nodeset_t\fP nodeset, nodemask_t * nodemask)\fC [static]\fP"
32 .SS "static inline int hwloc_nodeset_to_linux_libnuma_nodemask (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_nodeset_t\fPnodeset, nodemask_t *nodemask)\fC [static]\fP"
3333 .PP
3434 Convert hwloc NUMA node set \fCnodeset\fP into libnuma nodemask \fCnodemask\fP. This function may be used before calling some old libnuma functions that use a nodemask_t as an input parameter.
3535 .SH "Author"
0 .TH "Helpers for manipulating Linux libnuma unsigned long masks" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Helpers for manipulating Linux libnuma unsigned long masks" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_ulongs (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP cpuset, const unsigned long * mask, unsigned long maxnode)\fC [static]\fP"
23 .SS "static inline int hwloc_cpuset_from_linux_libnuma_ulongs (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPcpuset, const unsigned long *mask, unsigned longmaxnode)\fC [static]\fP"
2424 .PP
2525 Convert the array of unsigned long \fCmask\fP into hwloc CPU set. \fCmask\fP is a array of unsigned long that will be read. \fCmaxnode\fP contains the maximal node number that may be read in \fCmask\fP.
2626 .PP
2727 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).
28 .SS "static inline int hwloc_cpuset_to_linux_libnuma_ulongs (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset, unsigned long * mask, unsigned long * maxnode)\fC [static]\fP"
28 .SS "static inline int hwloc_cpuset_to_linux_libnuma_ulongs (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset, unsigned long *mask, unsigned long *maxnode)\fC [static]\fP"
2929 .PP
3030 Convert hwloc CPU set \fCcpuset\fP into the array of unsigned long \fCmask\fP. \fCmask\fP is the array of unsigned long that will be filled. \fCmaxnode\fP contains the maximal node number that may be stored in \fCmask\fP. \fCmaxnode\fP will be set to the maximal node number that was found, plus one.
3131 .PP
3232 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.
33 .SS "static inline int hwloc_nodeset_from_linux_libnuma_ulongs (\fBhwloc_topology_t\fP topology, \fBhwloc_nodeset_t\fP nodeset, const unsigned long * mask, unsigned long maxnode)\fC [static]\fP"
33 .SS "static inline int hwloc_nodeset_from_linux_libnuma_ulongs (\fBhwloc_topology_t\fPtopology, \fBhwloc_nodeset_t\fPnodeset, const unsigned long *mask, unsigned longmaxnode)\fC [static]\fP"
3434 .PP
3535 Convert the array of unsigned long \fCmask\fP into hwloc NUMA node set. \fCmask\fP is a array of unsigned long that will be read. \fCmaxnode\fP contains the maximal node number that may be read in \fCmask\fP.
3636 .PP
3737 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).
38 .SS "static inline int hwloc_nodeset_to_linux_libnuma_ulongs (\fBhwloc_topology_t\fP topology, \fBhwloc_const_nodeset_t\fP nodeset, unsigned long * mask, unsigned long * maxnode)\fC [static]\fP"
38 .SS "static inline int hwloc_nodeset_to_linux_libnuma_ulongs (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_nodeset_t\fPnodeset, unsigned long *mask, unsigned long *maxnode)\fC [static]\fP"
3939 .PP
4040 Convert hwloc NUMA node set \fCnodeset\fP into the array of unsigned long \fCmask\fP. \fCmask\fP is the array of unsigned long that will be filled. \fCmaxnode\fP contains the maximal node number that may be stored in \fCmask\fP. \fCmaxnode\fP will be set to the maximal node number that was found, plus one.
4141 .PP
0 .TH "Memory binding" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Memory binding" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
158158 Returned by hwloc_get_membind*() functions when multiple threads or parts of a memory area have differing memory binding policies.
159159 .SH "Function Documentation"
160160 .PP
161 .SS " void* hwloc_alloc (\fBhwloc_topology_t\fP topology, size_t len)"
161 .SS " void* hwloc_alloc (\fBhwloc_topology_t\fPtopology, size_tlen)"
162162 .PP
163163 Allocate some memory. This is equivalent to malloc(), except that it tries to allocate page-aligned memory from the OS.
164164 .PP
168168 .RE
169169 .PP
170170
171 .SS " void* hwloc_alloc_membind (\fBhwloc_topology_t\fP topology, size_t len, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP policy, int flags)"
171 .SS " void* hwloc_alloc_membind (\fBhwloc_topology_t\fPtopology, size_tlen, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
172172 .PP
173173 Allocate some memory on memory nodes near the given cpuset \fCcpuset\fP. \fBReturns:\fP
174174 .RS 4
183183 .RE
184184 .PP
185185
186 .SS " void* hwloc_alloc_membind_nodeset (\fBhwloc_topology_t\fP topology, size_t len, \fBhwloc_const_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP policy, int flags)"
186 .SS " void* hwloc_alloc_membind_nodeset (\fBhwloc_topology_t\fPtopology, size_tlen, \fBhwloc_const_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
187187 .PP
188188 Allocate some memory on the given nodeset \fCnodeset\fP. \fBReturns:\fP
189189 .RS 4
198198 .RE
199199 .PP
200200
201 .SS " int hwloc_free (\fBhwloc_topology_t\fP topology, void * addr, size_t len)"
201 .SS " int hwloc_free (\fBhwloc_topology_t\fPtopology, void *addr, size_tlen)"
202202 .PP
203203 Free memory that was previously allocated by \fBhwloc_alloc()\fP or \fBhwloc_alloc_membind()\fP.
204 .SS " int hwloc_get_area_membind (\fBhwloc_topology_t\fP topology, const void * addr, size_t len, \fBhwloc_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
204 .SS " int hwloc_get_area_membind (\fBhwloc_topology_t\fPtopology, const void *addr, size_tlen, \fBhwloc_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
205205 .PP
206206 Query the CPUs near the NUMA node(s) and binding policy of the memory identified by (\fCaddr\fP, \fClen\fP ). This function has two output parameters: \fCcpuset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the memory binding policies and nodesets of the pages in the address range.
207207 .PP
210210 If HWLOC_MEMBIND_STRICT is not specified, the union of all NUMA node(s) containing pages in the address range is calculated. \fCcpuset\fP is then set to the CPUs near the NUMA node(s) in this union. If all pages in the target have the same policy, it is returned in \fCpolicy\fP. Otherwise, \fCpolicy\fP is set to HWLOC_MEMBIND_MIXED.
211211 .PP
212212 If any other flags are specified, -1 is returned and errno is set to EINVAL.
213 .SS " int hwloc_get_area_membind_nodeset (\fBhwloc_topology_t\fP topology, const void * addr, size_t len, \fBhwloc_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
213 .SS " int hwloc_get_area_membind_nodeset (\fBhwloc_topology_t\fPtopology, const void *addr, size_tlen, \fBhwloc_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
214214 .PP
215215 Query the NUMA node(s) and binding policy of the memory identified by (\fCaddr\fP, \fClen\fP ). This function has two output parameters: \fCnodeset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the memory binding policies and nodesets of the pages in the address range.
216216 .PP
219219 If HWLOC_MEMBIND_STRICT is not specified, \fCnodeset\fP is set to the union of all NUMA node(s) containing pages in the address range. If all pages in the target have the same policy, it is returned in \fCpolicy\fP. Otherwise, \fCpolicy\fP is set to HWLOC_MEMBIND_MIXED.
220220 .PP
221221 If any other flags are specified, -1 is returned and errno is set to EINVAL.
222 .SS " int hwloc_get_membind (\fBhwloc_topology_t\fP topology, \fBhwloc_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
222 .SS " int hwloc_get_membind (\fBhwloc_topology_t\fPtopology, \fBhwloc_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
223223 .PP
224224 Query the default memory binding policy and locality of the current process or thread (the locality is returned in \fCcpuset\fP as CPUs near the locality's actual NUMA node(s)). This function has two output parameters: \fCcpuset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the current memory binding policies and nodesets in the queried target.
225225 .PP
234234 In the HWLOC_MEMBIND_THREAD case (or when neither HWLOC_MEMBIND_PROCESS or HWLOC_MEMBIND_THREAD is specified), there is only one nodeset and policy. The policy is returned in \fCpolicy\fP; \fCcpuset\fP is set to the union of CPUs near the NUMA node(s) in the \fCnodeset\fP.
235235 .PP
236236 If any other flags are specified, -1 is returned and errno is set to EINVAL.
237 .SS " int hwloc_get_membind_nodeset (\fBhwloc_topology_t\fP topology, \fBhwloc_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
237 .SS " int hwloc_get_membind_nodeset (\fBhwloc_topology_t\fPtopology, \fBhwloc_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
238238 .PP
239239 Query the default memory binding policy and locality of the current process or thread. This function has two output parameters: \fCnodeset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the current memory binding policies and nodesets in the queried target.
240240 .PP
249249 In the HWLOC_MEMBIND_THREAD case (or when neither HWLOC_MEMBIND_PROCESS or HWLOC_MEMBIND_THREAD is specified), there is only one nodeset and policy; they are returned in \fCnodeset\fP and \fCpolicy\fP, respectively.
250250 .PP
251251 If any other flags are specified, -1 is returned and errno is set to EINVAL.
252 .SS " int hwloc_get_proc_membind (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
252 .SS " int hwloc_get_proc_membind (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
253253 .PP
254254 Query the default memory binding policy and locality of the specified process (the locality is returned in \fCcpuset\fP as CPUs near the locality's actual NUMA node(s)). This function has two output parameters: \fCcpuset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the current memory binding policies and nodesets in the queried target.
255255 .PP
262262 Otherwise, the default nodeset from each thread is logically OR'ed together. \fCcpuset\fP is set to the union of CPUs near the NUMA node(s) in the resulting nodeset. If all threads' default policies are the same, \fCpolicy\fP is set to that policy. If they are different, \fCpolicy\fP is set to HWLOC_MEMBIND_MIXED.
263263 .PP
264264 If any other flags are specified, -1 is returned and errno is set to EINVAL.
265 .SS " int hwloc_get_proc_membind_nodeset (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP * policy, int flags)"
265 .SS " int hwloc_get_proc_membind_nodeset (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fP *policy, intflags)"
266266 .PP
267267 Query the default memory binding policy and locality of the specified process. This function has two output parameters: \fCnodeset\fP and \fCpolicy\fP. The values returned in these parameters depend on both the \fCflags\fP passed in and the current memory binding policies and nodesets in the queried target.
268268 .PP
275275 Otherwise, \fCnodeset\fP is set to the logical OR of all threads' default nodeset. If all threads' default policies are the same, \fCpolicy\fP is set to that policy. If they are different, \fCpolicy\fP is set to HWLOC_MEMBIND_MIXED.
276276 .PP
277277 If any other flags are specified, -1 is returned and errno is set to EINVAL.
278 .SS " int hwloc_set_area_membind (\fBhwloc_topology_t\fP topology, const void * addr, size_t len, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP policy, int flags)"
278 .SS " int hwloc_set_area_membind (\fBhwloc_topology_t\fPtopology, const void *addr, size_tlen, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
279279 .PP
280280 Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) near \fCcpuset\fP. \fBReturns:\fP
281281 .RS 4
285285 .RE
286286 .PP
287287
288 .SS " int hwloc_set_area_membind_nodeset (\fBhwloc_topology_t\fP topology, const void * addr, size_t len, \fBhwloc_const_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP policy, int flags)"
288 .SS " int hwloc_set_area_membind_nodeset (\fBhwloc_topology_t\fPtopology, const void *addr, size_tlen, \fBhwloc_const_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
289289 .PP
290290 Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) in \fCnodeset\fP. \fBReturns:\fP
291291 .RS 4
295295 .RE
296296 .PP
297297
298 .SS " int hwloc_set_membind (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP policy, int flags)"
298 .SS " int hwloc_set_membind (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
299299 .PP
300300 Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) near the specified \fCcpuset\fP. If neither HWLOC_MEMBIND_PROCESS nor HWLOC_MEMBIND_THREAD is specified, the current process is assumed to be single-threaded. This is the most portable form as it permits hwloc to use either process-based OS functions or thread-based OS functions, depending on which are available.
301301 .PP
307307 .RE
308308 .PP
309309
310 .SS " int hwloc_set_membind_nodeset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP policy, int flags)"
310 .SS " int hwloc_set_membind_nodeset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
311311 .PP
312312 Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) specified by \fCnodeset\fP. If neither HWLOC_MEMBIND_PROCESS nor HWLOC_MEMBIND_THREAD is specified, the current process is assumed to be single-threaded. This is the most portable form as it permits hwloc to use either process-based OS functions or thread-based OS functions, depending on which are available.
313313 .PP
319319 .RE
320320 .PP
321321
322 .SS " int hwloc_set_proc_membind (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_const_cpuset_t\fP cpuset, \fBhwloc_membind_policy_t\fP policy, int flags)"
322 .SS " int hwloc_set_proc_membind (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_const_cpuset_t\fPcpuset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
323323 .PP
324324 Set the default memory binding policy of the specified process to prefer the NUMA node(s) near the specified \fCcpuset\fP. \fBReturns:\fP
325325 .RS 4
329329 .RE
330330 .PP
331331
332 .SS " int hwloc_set_proc_membind_nodeset (\fBhwloc_topology_t\fP topology, hwloc_pid_t pid, \fBhwloc_const_nodeset_t\fP nodeset, \fBhwloc_membind_policy_t\fP policy, int flags)"
332 .SS " int hwloc_set_proc_membind_nodeset (\fBhwloc_topology_t\fPtopology, hwloc_pid_tpid, \fBhwloc_const_nodeset_t\fPnodeset, \fBhwloc_membind_policy_t\fPpolicy, intflags)"
333333 .PP
334334 Set the default memory binding policy of the specified process to prefer the NUMA node(s) specified by \fCnodeset\fP. \fBReturns:\fP
335335 .RS 4
0 .TH "Myrinet Express-Specific Functions" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Myrinet Express-Specific Functions" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS "static inline int hwloc_mx_board_get_device_cpuset (\fBhwloc_topology_t\fP topology, unsigned id, \fBhwloc_cpuset_t\fP set)\fC [static]\fP"
17 .SS "static inline int hwloc_mx_board_get_device_cpuset (\fBhwloc_topology_t\fPtopology, unsignedid, \fBhwloc_cpuset_t\fPset)\fC [static]\fP"
1818 .PP
1919 Get the CPU set of logical processors that are physically close the MX board \fCid\fP. For the given Myrinet Express board index \fCid\fP, read the OS-provided NUMA node and return the corresponding CPU set.
20 .SS "static inline int hwloc_mx_endpoint_get_device_cpuset (\fBhwloc_topology_t\fP topology, mx_endpoint_t endpoint, \fBhwloc_cpuset_t\fP set)\fC [static]\fP"
20 .SS "static inline int hwloc_mx_endpoint_get_device_cpuset (\fBhwloc_topology_t\fPtopology, mx_endpoint_tendpoint, \fBhwloc_cpuset_t\fPset)\fC [static]\fP"
2121 .PP
2222 Get the CPU set of logical processors that are physically close to endpoint \fCendpoint\fP. For the given Myrinet Express endpoint \fCendpoint\fP, read the OS-provided NUMA node and return the corresponding CPU set.
2323 .SH "Author"
0 .TH "Topology Objects" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Topology Objects" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "OpenFabrics-Specific Functions" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "OpenFabrics-Specific Functions" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1111 .in -1c
1212 .SH "Function Documentation"
1313 .PP
14 .SS "static inline int hwloc_ibv_get_device_cpuset (\fBhwloc_topology_t\fP topology , struct ibv_device * ibdev, \fBhwloc_cpuset_t\fP set)\fC [static]\fP"
14 .SS "static inline int hwloc_ibv_get_device_cpuset (\fBhwloc_topology_t\fP topology, struct ibv_device *ibdev, \fBhwloc_cpuset_t\fPset)\fC [static]\fP"
1515 .PP
1616 Get the CPU set of logical processors that are physically close to device \fCibdev\fP. For the given OpenFabrics device \fCibdev\fP, 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.
1717 .SH "Author"
0 .TH "Object sets (hwloc_cpuset_t and hwloc_nodeset_t)" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Object sets (hwloc_cpuset_t and hwloc_nodeset_t)" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "Tinker with topologies." 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Tinker with topologies." 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
2020 .in -1c
2121 .SH "Function Documentation"
2222 .PP
23 .SS " void hwloc_topology_export_xml (\fBhwloc_topology_t\fP topology, const char * xmlpath)"
23 .SS " void hwloc_topology_export_xml (\fBhwloc_topology_t\fPtopology, const char *xmlpath)"
2424 .PP
2525 Export the topology into an XML file. This file may be loaded later through \fBhwloc_topology_set_xml()\fP.
26 .SS " void hwloc_topology_export_xmlbuffer (\fBhwloc_topology_t\fP topology, char ** xmlbuffer, int * buflen)"
26 .SS " void hwloc_topology_export_xmlbuffer (\fBhwloc_topology_t\fPtopology, char **xmlbuffer, int *buflen)"
2727 .PP
2828 Export the topology into a newly-allocated XML memory buffer. \fCxmlbuffer\fP is allocated by the callee and should be freed with xmlFree later in the caller.
2929 .PP
3030 This memory buffer may be loaded later through \fBhwloc_topology_set_xmlbuffer()\fP.
31 .SS " \fBhwloc_obj_t\fP hwloc_topology_insert_misc_object_by_cpuset (\fBhwloc_topology_t\fP topology, \fBhwloc_const_cpuset_t\fP cpuset, const char * name)"
31 .SS " \fBhwloc_obj_t\fP hwloc_topology_insert_misc_object_by_cpuset (\fBhwloc_topology_t\fPtopology, \fBhwloc_const_cpuset_t\fPcpuset, const char *name)"
3232 .PP
3333 Add a MISC object to the topology. A new MISC object will be created and inserted into the topology at the position given by bitmap \fCcpuset\fP.
3434 .PP
4040 .RE
4141 .PP
4242
43 .SS " \fBhwloc_obj_t\fP hwloc_topology_insert_misc_object_by_parent (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_t\fP parent, const char * name)"
43 .SS " \fBhwloc_obj_t\fP hwloc_topology_insert_misc_object_by_parent (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_t\fPparent, const char *name)"
4444 .PP
4545 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.
4646 .PP
0 .TH "Topology context" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Topology context" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
0 .TH "Retrieve Objects" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Retrieve Objects" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
1414 .in -1c
1515 .SH "Function Documentation"
1616 .PP
17 .SS " \fBhwloc_obj_t\fP hwloc_get_obj_by_depth (\fBhwloc_topology_t\fP topology, unsigned depth, unsigned idx)"
17 .SS " \fBhwloc_obj_t\fP hwloc_get_obj_by_depth (\fBhwloc_topology_t\fPtopology, unsigneddepth, unsignedidx)"
1818 .PP
1919 Returns the topology object at index \fCindex\fP from depth \fCdepth\fP.
20 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_by_type (\fBhwloc_topology_t\fP topology, \fBhwloc_obj_type_t\fP type, unsigned idx)\fC [static]\fP"
20 .SS "static inline \fBhwloc_obj_t\fP hwloc_get_obj_by_type (\fBhwloc_topology_t\fPtopology, \fBhwloc_obj_type_t\fPtype, unsignedidx)\fC [static]\fP"
2121 .PP
2222 Returns the topology object at index \fCindex\fP with type \fCtype\fP. If no object for that type exists, \fCNULL\fP is returned. If there are several levels with objects of that type, \fCNULL\fP is returned and ther caller may fallback to \fBhwloc_get_obj_by_depth()\fP.
2323 .SH "Author"
0 .TH "Topology Object Types" 3 "Mon Jan 24 2011" "Version 1.1.1" "Hardware Locality (hwloc)" \" -*- nroff -*-
0 .TH "Topology Object Types" 3 "Wed Apr 6 2011" "Version 1.1.2" "Hardware Locality (hwloc)" \" -*- nroff -*-
11 .ad l
22 .nh
33 .SH NAME
6868 Miscellaneous objects. Objects without particular meaning, that can e.g. be added by the application for its own use.
6969 .SH "Function Documentation"
7070 .PP
71 .SS " int hwloc_compare_types (\fBhwloc_obj_type_t\fP type1, \fBhwloc_obj_type_t\fP type2) const"
71 .SS " int hwloc_compare_types (\fBhwloc_obj_type_t\fPtype1, \fBhwloc_obj_type_t\fPtype2) const"
7272 .PP
7373 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 \fCtype1\fP objects usually include \fCtype2\fP objects, are the same as \fCtype2\fP objects, or are included in \fCtype2\fP 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).
7474 .PP
00 /* Example hwloc API program.
11 *
22 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
3 * Copyright © 2009-2011 Université Bordeaux 1
44 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
55 *
66 * hwloc-hello.c
147147 n = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
148148 if (n) {
149149 void *m;
150 size_t size = 1024*1024;
150 size = 1024*1024;
151151
152152 obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, n - 1);
153153 m = hwloc_alloc_membind_nodeset(topology, size, obj->nodeset,
720720 graphical or textual, and can also be exported to numerous file
721721 formats such as PDF, PNG, XML, and others.
722722
723 It can also display the processes currently bound to a part of the machine (--ps
724 option).
725
723726 Note that lstopo can read XML files and/or alternate chroot
724727 filesystems and display topological maps representing those systems
725728 (e.g., use lstopo to output an XML file on one system, and then use
808811 This can be used for efficiency reasons to first detect the topology once,
809812 save it to an XML file, and quickly reload it later through the XML
810813 backend, but still having binding functions actually do bind.
814 </dd>
815
816 <dt>HWLOC_IGNORE_DISTANCES=0</dt>
817 <dd>disables objects grouping based on distances.
818 By default, hwloc uses distance matrices between objects (read
819 from the OS) to find groups of close objects.
820 These groups are described by adding intermediate Group objects in the topology.
821 Setting this environment variable to 1 will disable this grouping.
811822 </dd>
812823
813824 </dl>
0 %!PS-Adobe-3.0 EPSF-3.0
0 %!PS-Adobe-2.0 EPSF-2.0
11 %%Title: images/diagram.fig
2 %%Creator: /opt/local/bin/fig2dev Version 3.2 Patchlevel 5d
3 %%CreationDate: Thu Jan 20 09:04:44 2011
4 %%For: jsquyres@rtp-jsquyres-8713.cisco.com (Jeffrey Squyres)
2 %%Creator: /usr/bin/fig2dev Version 3.2 Patchlevel 5c
3 %%CreationDate: Wed Apr 6 17:30:24 2011
54 %%BoundingBox: 0 0 671 688
65 %Magnification: 1.0000
76 %%EndComments
138137 %
139138 %
140139 % here starts figure with depth 50
141 /Times-Roman-iso ff 180.00 scf sf
142 8775 9090 m
143 gs 1 -1 sc (prev_cousin) col0 sh gr
144140 % Polyline
145141 0 slj
146142 0 slc
147143 7.500 slw
144 n 3060 3330 m
145 4500 3330 l gs col0 s gr
146 % Polyline
148147 n 3165 3060 m 3060 3060 3060 4395 105 arcto 4 {pop} repeat
149148 3060 4500 4395 4500 105 arcto 4 {pop} repeat
150149 4500 4500 4500 3165 105 arcto 4 {pop} repeat
151150 4500 3060 3165 3060 105 arcto 4 {pop} repeat
152151 cp gs col0 s gr
153 /Times-Roman-iso ff 210.00 scf sf
154 3150 3285 m
155 gs 1 -1 sc (Socket) col0 sh gr
156 /Times-Roman-iso ff 180.00 scf sf
157 3150 3510 m
158 gs 1 -1 sc (.depth = 1) col0 sh gr
159 /Times-Roman-iso ff 180.00 scf sf
160 3150 3735 m
161 gs 1 -1 sc (.logical_index =0) col0 sh gr
162 /Times-Roman-iso ff 180.00 scf sf
163 3150 3960 m
164 gs 1 -1 sc (.os_index = 0) col0 sh gr
165 /Times-Roman-iso ff 180.00 scf sf
166 3150 4185 m
167 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
168 /Times-Roman-iso ff 180.00 scf sf
169 3150 4410 m
170 gs 1 -1 sc (.arity=2) col0 sh gr
171152 % Polyline
172153 gs clippath
173154 8279 3630 m 8430 3630 l 8430 3570 l 8279 3570 l 8279 3570 l 8399 3600 l 8279 3630 l cp
186167
187168 % arrowhead
188169 n 4636 3660 m 4516 3690 l 4636 3720 l 4636 3660 l cp gs 0.00 setgray ef gr col0 s
189 /Times-Roman-iso ff 180.00 scf sf
190 4545 3510 m
191 gs 1 -1 sc (next_sibling) col0 sh gr
192 /Times-Roman-iso ff 180.00 scf sf
193 7470 3870 m
194 gs 1 -1 sc (prev_sibling) col0 sh gr
195 /Times-Roman-iso ff 180.00 scf sf
196 8640 2565 m
197 gs 1 -1 sc (last_child) dup sw pop neg 0 rm col0 sh gr
198 /Times-Roman-iso ff 180.00 scf sf
199 8190 2385 m
200 gs 1 -1 sc (children[1]) dup sw pop neg 0 rm col0 sh gr
201 /Times-Roman-iso ff 180.00 scf sf
202 2385 4725 m
203 gs 1 -1 sc (children[0]) col0 sh gr
204 /Times-Roman-iso ff 180.00 scf sf
205 2205 4905 m
206 gs 1 -1 sc (first_child) col0 sh gr
207 /Times-Roman-iso ff 180.00 scf sf
208 4185 4725 m
209 gs 1 -1 sc (children[1]) col0 sh gr
210 /Times-Roman-iso ff 180.00 scf sf
211 4455 4905 m
212 gs 1 -1 sc (last_child) col0 sh gr
213 /Times-Roman-iso ff 180.00 scf sf
214 7785 4725 m
215 gs 1 -1 sc (children[0]) col0 sh gr
216 /Times-Roman-iso ff 180.00 scf sf
217 7605 4905 m
218 gs 1 -1 sc (first_child) col0 sh gr
219 /Times-Roman-iso ff 180.00 scf sf
220 9585 4725 m
221 gs 1 -1 sc (children[1]) col0 sh gr
222 /Times-Roman-iso ff 180.00 scf sf
223 9855 4905 m
224 gs 1 -1 sc (last_child) col0 sh gr
225 /Times-Roman-iso ff 180.00 scf sf
226 4275 2565 m
227 gs 1 -1 sc (first_child) col0 sh gr
228 /Times-Roman-iso ff 180.00 scf sf
229 4725 2385 m
230 gs 1 -1 sc (children[0]) col0 sh gr
231 /Times-Roman-iso ff 180.00 scf sf
232 4770 945 m
233 gs 1 -1 sc (Machine) col4 sh gr
234 /Times-Roman-iso ff 180.00 scf sf
235 4770 1170 m
236 gs 1 -1 sc (level) col4 sh gr
237 /Times-Roman-iso ff 180.00 scf sf
238 4770 1395 m
239 gs 1 -1 sc (depth=0) col4 sh gr
240 /Times-Roman-iso ff 180.00 scf sf
241 2115 3285 m
242 gs 1 -1 sc (Socket) col4 sh gr
243 /Times-Roman-iso ff 180.00 scf sf
244 2115 3510 m
245 gs 1 -1 sc (level) col4 sh gr
246 /Times-Roman-iso ff 180.00 scf sf
247 2115 3735 m
248 gs 1 -1 sc (depth=1) col4 sh gr
249170 % Polyline
250171 n 9765 5670 m
251172 11205 5670 l gs col0 s gr
255176 11205 6840 11205 5505 105 arcto 4 {pop} repeat
256177 11205 5400 9870 5400 105 arcto 4 {pop} repeat
257178 cp gs col0 s gr
258 /Times-Roman-iso ff 210.00 scf sf
259 9855 5625 m
260 gs 1 -1 sc (Cache) col0 sh gr
261 /Times-Roman-iso ff 180.00 scf sf
262 9855 6750 m
263 gs 1 -1 sc (.arity=1) col0 sh gr
264 /Times-Roman-iso ff 180.00 scf sf
265 9855 5850 m
266 gs 1 -1 sc (.depth = 2) col0 sh gr
267 /Times-Roman-iso ff 180.00 scf sf
268 9855 6075 m
269 gs 1 -1 sc (.logical_index = 3) col0 sh gr
270 /Times-Roman-iso ff 180.00 scf sf
271 9855 6300 m
272 gs 1 -1 sc (.os_index = 1) col0 sh gr
273 /Times-Roman-iso ff 180.00 scf sf
274 9855 6525 m
275 gs 1 -1 sc (.sibling_rank=1) col0 sh gr
276179 % Polyline
277180 gs clippath
278181 9629 5880 m 9780 5880 l 9780 5820 l 9629 5820 l 9629 5820 l 9749 5850 l 9629 5880 l cp
291194
292195 % arrowhead
293196 n 8641 5910 m 8521 5940 l 8641 5970 l 8641 5910 l cp gs 0.00 setgray ef gr col0 s
294 /Times-Roman-iso ff 180.00 scf sf
295 8550 5760 m
296 gs 1 -1 sc (next_sibling) col0 sh gr
297 /Times-Roman-iso ff 180.00 scf sf
298 8820 6120 m
299 gs 1 -1 sc (prev_sibling) col0 sh gr
300197 % Polyline
301198 gs clippath
302199 9629 6510 m 9780 6510 l 9780 6450 l 9629 6450 l 9629 6450 l 9749 6480 l 9629 6510 l cp
315212
316213 % arrowhead
317214 n 8641 6540 m 8521 6570 l 8641 6600 l 8641 6540 l cp gs 0.00 setgray ef gr col0 s
318 /Times-Roman-iso ff 180.00 scf sf
319 8550 6390 m
320 gs 1 -1 sc (next_cousin) col0 sh gr
321 /Times-Roman-iso ff 180.00 scf sf
322 8775 6750 m
323 gs 1 -1 sc (prev_cousin) col0 sh gr
324215 % Polyline
325216 gs clippath
326217 4229 5880 m 4380 5880 l 4380 5820 l 4229 5820 l 4229 5820 l 4349 5850 l 4229 5880 l cp
339230
340231 % arrowhead
341232 n 3241 5910 m 3121 5940 l 3241 5970 l 3241 5910 l cp gs 0.00 setgray ef gr col0 s
342 /Times-Roman-iso ff 180.00 scf sf
343 3150 5760 m
344 gs 1 -1 sc (next_sibling) col0 sh gr
345 /Times-Roman-iso ff 180.00 scf sf
346 3420 6120 m
347 gs 1 -1 sc (prev_sibling) col0 sh gr
348233 % Polyline
349234 gs clippath
350235 4229 6510 m 4380 6510 l 4380 6450 l 4229 6450 l 4229 6450 l 4349 6480 l 4229 6510 l cp
363248
364249 % arrowhead
365250 n 3241 6540 m 3121 6570 l 3241 6600 l 3241 6540 l cp gs 0.00 setgray ef gr col0 s
366 /Times-Roman-iso ff 180.00 scf sf
367 3150 6390 m
368 gs 1 -1 sc (next_cousin) col0 sh gr
369 /Times-Roman-iso ff 180.00 scf sf
370 3375 6750 m
371 gs 1 -1 sc (prev_cousin) col0 sh gr
372251 % Polyline
373252 gs clippath
374253 6929 6510 m 7080 6510 l 7080 6450 l 6929 6450 l 6929 6450 l 7049 6480 l 6929 6510 l cp
387266
388267 % arrowhead
389268 n 5941 6540 m 5821 6570 l 5941 6600 l 5941 6540 l cp gs 0.00 setgray ef gr col0 s
390 /Times-Roman-iso ff 180.00 scf sf
391 5850 6390 m
392 gs 1 -1 sc (next_cousin) col0 sh gr
393 /Times-Roman-iso ff 180.00 scf sf
394 6075 6750 m
395 gs 1 -1 sc (prev_cousin) col0 sh gr
396 /Times-Roman-iso ff 180.00 scf sf
397 765 5625 m
398 gs 1 -1 sc (Cache) col4 sh gr
399 /Times-Roman-iso ff 180.00 scf sf
400 765 5850 m
401 gs 1 -1 sc (level) col4 sh gr
402 /Times-Roman-iso ff 180.00 scf sf
403 765 6075 m
404 gs 1 -1 sc (depth=2) col4 sh gr
405 /Times-Roman-iso ff 180.00 scf sf
406 4230 7290 m
407 gs 1 -1 sc (first_child) col0 sh gr
408 /Times-Roman-iso ff 180.00 scf sf
409 4230 7515 m
410 gs 1 -1 sc (last_child) col0 sh gr
411 /Times-Roman-iso ff 180.00 scf sf
412 4230 7065 m
413 gs 1 -1 sc (children[0]) col0 sh gr
414 /Times-Roman-iso ff 180.00 scf sf
415 6930 7290 m
416 gs 1 -1 sc (first_child) col0 sh gr
417 /Times-Roman-iso ff 180.00 scf sf
418 6930 7515 m
419 gs 1 -1 sc (last_child) col0 sh gr
420 /Times-Roman-iso ff 180.00 scf sf
421 6930 7065 m
422 gs 1 -1 sc (children[0]) col0 sh gr
423 /Times-Roman-iso ff 180.00 scf sf
424 1530 7290 m
425 gs 1 -1 sc (first_child) col0 sh gr
426 /Times-Roman-iso ff 180.00 scf sf
427 1530 7515 m
428 gs 1 -1 sc (last_child) col0 sh gr
429 /Times-Roman-iso ff 180.00 scf sf
430 1530 7065 m
431 gs 1 -1 sc (children[0]) col0 sh gr
432 /Times-Roman-iso ff 180.00 scf sf
433 9630 7290 m
434 gs 1 -1 sc (first_child) col0 sh gr
435 /Times-Roman-iso ff 180.00 scf sf
436 9630 7515 m
437 gs 1 -1 sc (last_child) col0 sh gr
438 /Times-Roman-iso ff 180.00 scf sf
439 9630 7065 m
440 gs 1 -1 sc (children[0]) col0 sh gr
441269 % Polyline
442270 n 9765 8010 m
443271 11205 8010 l gs col0 s gr
447275 11205 9180 11205 7845 105 arcto 4 {pop} repeat
448276 11205 7740 9870 7740 105 arcto 4 {pop} repeat
449277 cp gs col0 s gr
450 /Times-Roman-iso ff 210.00 scf sf
451 9855 7965 m
452 gs 1 -1 sc (Core) col0 sh gr
453 /Times-Roman-iso ff 180.00 scf sf
454 9855 9090 m
455 gs 1 -1 sc (.arity=1) col0 sh gr
456 /Times-Roman-iso ff 180.00 scf sf
457 9855 8190 m
458 gs 1 -1 sc (.depth = 3) col0 sh gr
459 /Times-Roman-iso ff 180.00 scf sf
460 9855 8415 m
461 gs 1 -1 sc (.logical_index = 3) col0 sh gr
462 /Times-Roman-iso ff 180.00 scf sf
463 9855 8640 m
464 gs 1 -1 sc (.os_index = 1) col0 sh gr
465 /Times-Roman-iso ff 180.00 scf sf
466 9855 8865 m
467 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
468278 % Polyline
469279 gs clippath
470280 6929 8850 m 7080 8850 l 7080 8790 l 6929 8790 l 6929 8790 l 7049 8820 l 6929 8850 l cp
483293
484294 % arrowhead
485295 n 5941 8880 m 5821 8910 l 5941 8940 l 5941 8880 l cp gs 0.00 setgray ef gr col0 s
486 /Times-Roman-iso ff 180.00 scf sf
487 5850 8730 m
488 gs 1 -1 sc (next_cousin) col0 sh gr
489 /Times-Roman-iso ff 180.00 scf sf
490 6075 9090 m
491 gs 1 -1 sc (prev_cousin) col0 sh gr
492 /Times-Roman-iso ff 180.00 scf sf
493 765 7965 m
494 gs 1 -1 sc (Core) col4 sh gr
495 /Times-Roman-iso ff 180.00 scf sf
496 765 8190 m
497 gs 1 -1 sc (level) col4 sh gr
498 /Times-Roman-iso ff 180.00 scf sf
499 765 8415 m
500 gs 1 -1 sc (depth=3) col4 sh gr
501 /Times-Roman-iso ff 180.00 scf sf
502 4230 9630 m
503 gs 1 -1 sc (first_child) col0 sh gr
504 /Times-Roman-iso ff 180.00 scf sf
505 4230 9855 m
506 gs 1 -1 sc (last_child) col0 sh gr
507 /Times-Roman-iso ff 180.00 scf sf
508 4230 9405 m
509 gs 1 -1 sc (children[0]) col0 sh gr
510 /Times-Roman-iso ff 180.00 scf sf
511 6930 9630 m
512 gs 1 -1 sc (first_child) col0 sh gr
513 /Times-Roman-iso ff 180.00 scf sf
514 6930 9855 m
515 gs 1 -1 sc (last_child) col0 sh gr
516 /Times-Roman-iso ff 180.00 scf sf
517 6930 9405 m
518 gs 1 -1 sc (children[0]) col0 sh gr
519 /Times-Roman-iso ff 180.00 scf sf
520 1530 9630 m
521 gs 1 -1 sc (first_child) col0 sh gr
522 /Times-Roman-iso ff 180.00 scf sf
523 1530 9855 m
524 gs 1 -1 sc (last_child) col0 sh gr
525 /Times-Roman-iso ff 180.00 scf sf
526 1530 9405 m
527 gs 1 -1 sc (children[0]) col0 sh gr
528 /Times-Roman-iso ff 180.00 scf sf
529 9630 9630 m
530 gs 1 -1 sc (first_child) col0 sh gr
531 /Times-Roman-iso ff 180.00 scf sf
532 9630 9855 m
533 gs 1 -1 sc (last_child) col0 sh gr
534 /Times-Roman-iso ff 180.00 scf sf
535 9630 9405 m
536 gs 1 -1 sc (children[0]) col0 sh gr
537296 % Polyline
538297 n 9765 10350 m
539298 11205 10350 l gs col0 s gr
543302 11205 11520 11205 10185 105 arcto 4 {pop} repeat
544303 11205 10080 9870 10080 105 arcto 4 {pop} repeat
545304 cp gs col0 s gr
546 /Times-Roman-iso ff 180.00 scf sf
547 9855 10980 m
548 gs 1 -1 sc (.os_index = 3) col0 sh gr
549 /Times-Roman-iso ff 210.00 scf sf
550 9855 10305 m
551 gs 1 -1 sc (PU) col0 sh gr
552 /Times-Roman-iso ff 180.00 scf sf
553 9855 11205 m
554 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
555 /Times-Roman-iso ff 180.00 scf sf
556 9855 11430 m
557 gs 1 -1 sc (.arity=0) col0 sh gr
558 /Times-Roman-iso ff 180.00 scf sf
559 9855 10530 m
560 gs 1 -1 sc (.depth = 4) col0 sh gr
561 /Times-Roman-iso ff 180.00 scf sf
562 9855 10755 m
563 gs 1 -1 sc (.logical_index = 3) col0 sh gr
564305 % Polyline
565306 gs clippath
566307 4229 11190 m 4380 11190 l 4380 11130 l 4229 11130 l 4229 11130 l 4349 11160 l 4229 11190 l cp
579320
580321 % arrowhead
581322 n 3241 11220 m 3121 11250 l 3241 11280 l 3241 11220 l cp gs 0.00 setgray ef gr col0 s
582 /Times-Roman-iso ff 180.00 scf sf
583 3150 11070 m
584 gs 1 -1 sc (next_cousin) col0 sh gr
585 /Times-Roman-iso ff 180.00 scf sf
586 3375 11430 m
587 gs 1 -1 sc (prev_cousin) col0 sh gr
588323 % Polyline
589324 gs clippath
590325 6929 11190 m 7080 11190 l 7080 11130 l 6929 11130 l 6929 11130 l 7049 11160 l 6929 11190 l cp
603338
604339 % arrowhead
605340 n 5941 11220 m 5821 11250 l 5941 11280 l 5941 11220 l cp gs 0.00 setgray ef gr col0 s
606 /Times-Roman-iso ff 180.00 scf sf
607 5850 11070 m
608 gs 1 -1 sc (next_cousin) col0 sh gr
609 /Times-Roman-iso ff 180.00 scf sf
610 6075 11430 m
611 gs 1 -1 sc (prev_cousin) col0 sh gr
612341 % Polyline
613342 gs clippath
614343 9629 11190 m 9780 11190 l 9780 11130 l 9629 11130 l 9629 11130 l 9749 11160 l 9629 11190 l cp
627356
628357 % arrowhead
629358 n 8641 11220 m 8521 11250 l 8641 11280 l 8641 11220 l cp gs 0.00 setgray ef gr col0 s
630 /Times-Roman-iso ff 180.00 scf sf
631 8550 11070 m
632 gs 1 -1 sc (next_cousin) col0 sh gr
633 /Times-Roman-iso ff 180.00 scf sf
634 8775 11430 m
635 gs 1 -1 sc (prev_cousin) col0 sh gr
636 /Times-Roman-iso ff 180.00 scf sf
637 765 10305 m
638 gs 1 -1 sc (PU) col4 sh gr
639 /Times-Roman-iso ff 180.00 scf sf
640 765 10530 m
641 gs 1 -1 sc (level) col4 sh gr
642 /Times-Roman-iso ff 180.00 scf sf
643 765 10755 m
644 gs 1 -1 sc (depth=4) col4 sh gr
645359 % Polyline
646360 n 5715 990 m
647361 7155 990 l gs col0 s gr
1062776
1063777 % arrowhead
1064778 n 8641 8880 m 8521 8910 l 8641 8940 l 8641 8880 l cp gs 0.00 setgray ef gr col0 s
779 /Times-Roman-iso ff 210.00 scf sf
780 3150 3285 m
781 gs 1 -1 sc (Socket) col0 sh gr
782 /Times-Roman-iso ff 180.00 scf sf
783 3150 3510 m
784 gs 1 -1 sc (.depth = 1) col0 sh gr
785 /Times-Roman-iso ff 180.00 scf sf
786 3150 3735 m
787 gs 1 -1 sc (.logical_index =0) col0 sh gr
788 /Times-Roman-iso ff 180.00 scf sf
789 3150 3960 m
790 gs 1 -1 sc (.os_index = 0) col0 sh gr
791 /Times-Roman-iso ff 180.00 scf sf
792 3150 4185 m
793 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
794 /Times-Roman-iso ff 180.00 scf sf
795 3150 4410 m
796 gs 1 -1 sc (.arity=2) col0 sh gr
797 /Times-Roman-iso ff 180.00 scf sf
798 4545 3510 m
799 gs 1 -1 sc (next_sibling) col0 sh gr
800 /Times-Roman-iso ff 180.00 scf sf
801 7470 3870 m
802 gs 1 -1 sc (prev_sibling) col0 sh gr
803 /Times-Roman-iso ff 180.00 scf sf
804 8640 2565 m
805 gs 1 -1 sc (last_child) dup sw pop neg 0 rm col0 sh gr
806 /Times-Roman-iso ff 180.00 scf sf
807 8190 2385 m
808 gs 1 -1 sc (children[1]) dup sw pop neg 0 rm col0 sh gr
809 /Times-Roman-iso ff 180.00 scf sf
810 2385 4725 m
811 gs 1 -1 sc (children[0]) col0 sh gr
812 /Times-Roman-iso ff 180.00 scf sf
813 2205 4905 m
814 gs 1 -1 sc (first_child) col0 sh gr
815 /Times-Roman-iso ff 180.00 scf sf
816 4185 4725 m
817 gs 1 -1 sc (children[1]) col0 sh gr
818 /Times-Roman-iso ff 180.00 scf sf
819 4455 4905 m
820 gs 1 -1 sc (last_child) col0 sh gr
821 /Times-Roman-iso ff 180.00 scf sf
822 7785 4725 m
823 gs 1 -1 sc (children[0]) col0 sh gr
824 /Times-Roman-iso ff 180.00 scf sf
825 7605 4905 m
826 gs 1 -1 sc (first_child) col0 sh gr
827 /Times-Roman-iso ff 180.00 scf sf
828 9585 4725 m
829 gs 1 -1 sc (children[1]) col0 sh gr
830 /Times-Roman-iso ff 180.00 scf sf
831 9855 4905 m
832 gs 1 -1 sc (last_child) col0 sh gr
833 /Times-Roman-iso ff 180.00 scf sf
834 4275 2565 m
835 gs 1 -1 sc (first_child) col0 sh gr
836 /Times-Roman-iso ff 180.00 scf sf
837 4725 2385 m
838 gs 1 -1 sc (children[0]) col0 sh gr
839 /Times-Roman-iso ff 180.00 scf sf
840 4770 945 m
841 gs 1 -1 sc (Machine) col4 sh gr
842 /Times-Roman-iso ff 180.00 scf sf
843 4770 1170 m
844 gs 1 -1 sc (level) col4 sh gr
845 /Times-Roman-iso ff 180.00 scf sf
846 4770 1395 m
847 gs 1 -1 sc (depth=0) col4 sh gr
848 /Times-Roman-iso ff 180.00 scf sf
849 2115 3285 m
850 gs 1 -1 sc (Socket) col4 sh gr
851 /Times-Roman-iso ff 180.00 scf sf
852 2115 3510 m
853 gs 1 -1 sc (level) col4 sh gr
854 /Times-Roman-iso ff 180.00 scf sf
855 2115 3735 m
856 gs 1 -1 sc (depth=1) col4 sh gr
857 /Times-Roman-iso ff 210.00 scf sf
858 9855 5625 m
859 gs 1 -1 sc (Cache) col0 sh gr
860 /Times-Roman-iso ff 180.00 scf sf
861 9855 6750 m
862 gs 1 -1 sc (.arity=1) col0 sh gr
863 /Times-Roman-iso ff 180.00 scf sf
864 9855 5850 m
865 gs 1 -1 sc (.depth = 2) col0 sh gr
866 /Times-Roman-iso ff 180.00 scf sf
867 9855 6075 m
868 gs 1 -1 sc (.logical_index = 3) col0 sh gr
869 /Times-Roman-iso ff 180.00 scf sf
870 9855 6300 m
871 gs 1 -1 sc (.os_index = 1) col0 sh gr
872 /Times-Roman-iso ff 180.00 scf sf
873 9855 6525 m
874 gs 1 -1 sc (.sibling_rank=1) col0 sh gr
875 /Times-Roman-iso ff 180.00 scf sf
876 8550 5760 m
877 gs 1 -1 sc (next_sibling) col0 sh gr
878 /Times-Roman-iso ff 180.00 scf sf
879 8820 6120 m
880 gs 1 -1 sc (prev_sibling) col0 sh gr
881 /Times-Roman-iso ff 180.00 scf sf
882 8550 6390 m
883 gs 1 -1 sc (next_cousin) col0 sh gr
884 /Times-Roman-iso ff 180.00 scf sf
885 8775 6750 m
886 gs 1 -1 sc (prev_cousin) col0 sh gr
887 /Times-Roman-iso ff 180.00 scf sf
888 3150 5760 m
889 gs 1 -1 sc (next_sibling) col0 sh gr
890 /Times-Roman-iso ff 180.00 scf sf
891 3420 6120 m
892 gs 1 -1 sc (prev_sibling) col0 sh gr
893 /Times-Roman-iso ff 180.00 scf sf
894 3150 6390 m
895 gs 1 -1 sc (next_cousin) col0 sh gr
896 /Times-Roman-iso ff 180.00 scf sf
897 3375 6750 m
898 gs 1 -1 sc (prev_cousin) col0 sh gr
899 /Times-Roman-iso ff 180.00 scf sf
900 5850 6390 m
901 gs 1 -1 sc (next_cousin) col0 sh gr
902 /Times-Roman-iso ff 180.00 scf sf
903 6075 6750 m
904 gs 1 -1 sc (prev_cousin) col0 sh gr
905 /Times-Roman-iso ff 180.00 scf sf
906 765 5625 m
907 gs 1 -1 sc (Cache) col4 sh gr
908 /Times-Roman-iso ff 180.00 scf sf
909 765 5850 m
910 gs 1 -1 sc (level) col4 sh gr
911 /Times-Roman-iso ff 180.00 scf sf
912 765 6075 m
913 gs 1 -1 sc (depth=2) col4 sh gr
914 /Times-Roman-iso ff 180.00 scf sf
915 4230 7290 m
916 gs 1 -1 sc (first_child) col0 sh gr
917 /Times-Roman-iso ff 180.00 scf sf
918 4230 7515 m
919 gs 1 -1 sc (last_child) col0 sh gr
920 /Times-Roman-iso ff 180.00 scf sf
921 4230 7065 m
922 gs 1 -1 sc (children[0]) col0 sh gr
923 /Times-Roman-iso ff 180.00 scf sf
924 6930 7290 m
925 gs 1 -1 sc (first_child) col0 sh gr
926 /Times-Roman-iso ff 180.00 scf sf
927 6930 7515 m
928 gs 1 -1 sc (last_child) col0 sh gr
929 /Times-Roman-iso ff 180.00 scf sf
930 6930 7065 m
931 gs 1 -1 sc (children[0]) col0 sh gr
932 /Times-Roman-iso ff 180.00 scf sf
933 1530 7290 m
934 gs 1 -1 sc (first_child) col0 sh gr
935 /Times-Roman-iso ff 180.00 scf sf
936 1530 7515 m
937 gs 1 -1 sc (last_child) col0 sh gr
938 /Times-Roman-iso ff 180.00 scf sf
939 1530 7065 m
940 gs 1 -1 sc (children[0]) col0 sh gr
941 /Times-Roman-iso ff 180.00 scf sf
942 9630 7290 m
943 gs 1 -1 sc (first_child) col0 sh gr
944 /Times-Roman-iso ff 180.00 scf sf
945 9630 7515 m
946 gs 1 -1 sc (last_child) col0 sh gr
947 /Times-Roman-iso ff 180.00 scf sf
948 9630 7065 m
949 gs 1 -1 sc (children[0]) col0 sh gr
950 /Times-Roman-iso ff 210.00 scf sf
951 9855 7965 m
952 gs 1 -1 sc (Core) col0 sh gr
953 /Times-Roman-iso ff 180.00 scf sf
954 9855 9090 m
955 gs 1 -1 sc (.arity=1) col0 sh gr
956 /Times-Roman-iso ff 180.00 scf sf
957 9855 8190 m
958 gs 1 -1 sc (.depth = 3) col0 sh gr
959 /Times-Roman-iso ff 180.00 scf sf
960 9855 8415 m
961 gs 1 -1 sc (.logical_index = 3) col0 sh gr
962 /Times-Roman-iso ff 180.00 scf sf
963 9855 8640 m
964 gs 1 -1 sc (.os_index = 1) col0 sh gr
965 /Times-Roman-iso ff 180.00 scf sf
966 9855 8865 m
967 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
968 /Times-Roman-iso ff 180.00 scf sf
969 5850 8730 m
970 gs 1 -1 sc (next_cousin) col0 sh gr
971 /Times-Roman-iso ff 180.00 scf sf
972 6075 9090 m
973 gs 1 -1 sc (prev_cousin) col0 sh gr
974 /Times-Roman-iso ff 180.00 scf sf
975 765 7965 m
976 gs 1 -1 sc (Core) col4 sh gr
977 /Times-Roman-iso ff 180.00 scf sf
978 765 8190 m
979 gs 1 -1 sc (level) col4 sh gr
980 /Times-Roman-iso ff 180.00 scf sf
981 765 8415 m
982 gs 1 -1 sc (depth=3) col4 sh gr
983 /Times-Roman-iso ff 180.00 scf sf
984 4230 9630 m
985 gs 1 -1 sc (first_child) col0 sh gr
986 /Times-Roman-iso ff 180.00 scf sf
987 4230 9855 m
988 gs 1 -1 sc (last_child) col0 sh gr
989 /Times-Roman-iso ff 180.00 scf sf
990 4230 9405 m
991 gs 1 -1 sc (children[0]) col0 sh gr
992 /Times-Roman-iso ff 180.00 scf sf
993 6930 9630 m
994 gs 1 -1 sc (first_child) col0 sh gr
995 /Times-Roman-iso ff 180.00 scf sf
996 6930 9855 m
997 gs 1 -1 sc (last_child) col0 sh gr
998 /Times-Roman-iso ff 180.00 scf sf
999 6930 9405 m
1000 gs 1 -1 sc (children[0]) col0 sh gr
1001 /Times-Roman-iso ff 180.00 scf sf
1002 1530 9630 m
1003 gs 1 -1 sc (first_child) col0 sh gr
1004 /Times-Roman-iso ff 180.00 scf sf
1005 1530 9855 m
1006 gs 1 -1 sc (last_child) col0 sh gr
1007 /Times-Roman-iso ff 180.00 scf sf
1008 1530 9405 m
1009 gs 1 -1 sc (children[0]) col0 sh gr
1010 /Times-Roman-iso ff 180.00 scf sf
1011 9630 9630 m
1012 gs 1 -1 sc (first_child) col0 sh gr
1013 /Times-Roman-iso ff 180.00 scf sf
1014 9630 9855 m
1015 gs 1 -1 sc (last_child) col0 sh gr
1016 /Times-Roman-iso ff 180.00 scf sf
1017 9630 9405 m
1018 gs 1 -1 sc (children[0]) col0 sh gr
1019 /Times-Roman-iso ff 180.00 scf sf
1020 9855 10980 m
1021 gs 1 -1 sc (.os_index = 3) col0 sh gr
1022 /Times-Roman-iso ff 210.00 scf sf
1023 9855 10305 m
1024 gs 1 -1 sc (PU) col0 sh gr
1025 /Times-Roman-iso ff 180.00 scf sf
1026 9855 11205 m
1027 gs 1 -1 sc (.sibling_rank=0) col0 sh gr
1028 /Times-Roman-iso ff 180.00 scf sf
1029 9855 11430 m
1030 gs 1 -1 sc (.arity=0) col0 sh gr
1031 /Times-Roman-iso ff 180.00 scf sf
1032 9855 10530 m
1033 gs 1 -1 sc (.depth = 4) col0 sh gr
1034 /Times-Roman-iso ff 180.00 scf sf
1035 9855 10755 m
1036 gs 1 -1 sc (.logical_index = 3) col0 sh gr
1037 /Times-Roman-iso ff 180.00 scf sf
1038 3150 11070 m
1039 gs 1 -1 sc (next_cousin) col0 sh gr
1040 /Times-Roman-iso ff 180.00 scf sf
1041 3375 11430 m
1042 gs 1 -1 sc (prev_cousin) col0 sh gr
1043 /Times-Roman-iso ff 180.00 scf sf
1044 5850 11070 m
1045 gs 1 -1 sc (next_cousin) col0 sh gr
1046 /Times-Roman-iso ff 180.00 scf sf
1047 6075 11430 m
1048 gs 1 -1 sc (prev_cousin) col0 sh gr
1049 /Times-Roman-iso ff 180.00 scf sf
1050 8550 11070 m
1051 gs 1 -1 sc (next_cousin) col0 sh gr
1052 /Times-Roman-iso ff 180.00 scf sf
1053 8775 11430 m
1054 gs 1 -1 sc (prev_cousin) col0 sh gr
1055 /Times-Roman-iso ff 180.00 scf sf
1056 765 10305 m
1057 gs 1 -1 sc (PU) col4 sh gr
1058 /Times-Roman-iso ff 180.00 scf sf
1059 765 10530 m
1060 gs 1 -1 sc (level) col4 sh gr
1061 /Times-Roman-iso ff 180.00 scf sf
1062 765 10755 m
1063 gs 1 -1 sc (depth=4) col4 sh gr
10651064 /Times-Roman-iso ff 180.00 scf sf
10661065 8415 2970 m
10671066 gs 1 -1 sc (parent) dup sw pop neg 0 rm col0 sh gr
13171316 /Times-Roman-iso ff 180.00 scf sf
13181317 8550 8730 m
13191318 gs 1 -1 sc (next_cousin) col0 sh gr
1320 % Polyline
1321 n 3060 3330 m
1322 4500 3330 l gs col0 s gr
1319 /Times-Roman-iso ff 180.00 scf sf
1320 8775 9090 m
1321 gs 1 -1 sc (prev_cousin) col0 sh gr
13231322 % here ends figure;
13241323 pagefooter
13251324 showpage
Binary diff not shown
0 # Copyright © 2009-2010 INRIA
0 # Copyright © 2009-2011 INRIA. All rights reserved.
11 # Copyright © 2009-2010 Université Bordeaux 1
2 # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
2 # Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
3 # See COPYING in top-level directory.
34
45 # Only install the headers if we're in standalone mode (meaning:
56 # *don't* install the headers if we're in embedded mode).
1617 hwloc/cuda.h \
1718 hwloc/cudart.h \
1819 hwloc/rename.h
19 nodist_include_hwloc_HEADERS = hwloc/config.h
20 include_hwloc_autogendir = $(includedir)/hwloc/autogen
21 nodist_include_hwloc_autogen_HEADERS = hwloc/autogen/config.h
2022
2123 noinst_HEADERS = \
2224 private/private.h \
1414
1515 @SET_MAKE@
1616
17 # Copyright © 2009-2010 INRIA
17 # Copyright © 2009-2011 INRIA. All rights reserved.
1818 # Copyright © 2009-2010 Université Bordeaux 1
19 # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
19 # Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
20 # See COPYING in top-level directory.
2021
2122 # Only install the headers if we're in standalone mode (meaning:
2223 # *don't* install the headers if we're in embedded mode).
6465 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
6566 $(ACLOCAL_M4)
6667 mkinstalldirs = $(install_sh) -d
67 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
68 $(top_builddir)/include/hwloc/config.h
68 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
69 $(top_builddir)/include/hwloc/autogen/config.h
6970 CONFIG_CLEAN_FILES =
7071 CONFIG_CLEAN_VPATH_FILES =
7172 AM_V_GEN = $(am__v_GEN_$(V))
100101 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
101102 am__installdirs = "$(DESTDIR)$(includedir)" \
102103 "$(DESTDIR)$(include_hwlocdir)" \
103 "$(DESTDIR)$(include_hwlocdir)"
104 "$(DESTDIR)$(include_hwloc_autogendir)"
104105 am__include_hwloc_HEADERS_DIST = hwloc/bitmap.h hwloc/cpuset.h \
105106 hwloc/helper.h hwloc/myriexpress.h hwloc/openfabrics-verbs.h \
106107 hwloc/cuda.h hwloc/cudart.h hwloc/rename.h hwloc/linux.h \
108109 am__noinst_HEADERS_DIST = private/private.h private/debug.h \
109110 private/misc.h private/cpuid.h
110111 HEADERS = $(include_HEADERS) $(include_hwloc_HEADERS) \
111 $(nodist_include_hwloc_HEADERS) $(noinst_HEADERS)
112 $(nodist_include_hwloc_autogen_HEADERS) $(noinst_HEADERS)
112113 ETAGS = etags
113114 CTAGS = ctags
114115 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
287288 @HWLOC_BUILD_STANDALONE_TRUE@ hwloc/cuda.h hwloc/cudart.h \
288289 @HWLOC_BUILD_STANDALONE_TRUE@ hwloc/rename.h $(am__append_1) \
289290 @HWLOC_BUILD_STANDALONE_TRUE@ $(am__append_2)
290 @HWLOC_BUILD_STANDALONE_TRUE@nodist_include_hwloc_HEADERS = hwloc/config.h
291 @HWLOC_BUILD_STANDALONE_TRUE@include_hwloc_autogendir = $(includedir)/hwloc/autogen
292 @HWLOC_BUILD_STANDALONE_TRUE@nodist_include_hwloc_autogen_HEADERS = hwloc/autogen/config.h
291293 @HWLOC_BUILD_STANDALONE_TRUE@noinst_HEADERS = \
292294 @HWLOC_BUILD_STANDALONE_TRUE@ private/private.h \
293295 @HWLOC_BUILD_STANDALONE_TRUE@ private/debug.h \
373375 test -n "$$files" || exit 0; \
374376 echo " ( cd '$(DESTDIR)$(include_hwlocdir)' && rm -f" $$files ")"; \
375377 cd "$(DESTDIR)$(include_hwlocdir)" && rm -f $$files
376 install-nodist_include_hwlocHEADERS: $(nodist_include_hwloc_HEADERS)
378 install-nodist_include_hwloc_autogenHEADERS: $(nodist_include_hwloc_autogen_HEADERS)
377379 @$(NORMAL_INSTALL)
378 test -z "$(include_hwlocdir)" || $(MKDIR_P) "$(DESTDIR)$(include_hwlocdir)"
379 @list='$(nodist_include_hwloc_HEADERS)'; test -n "$(include_hwlocdir)" || list=; \
380 test -z "$(include_hwloc_autogendir)" || $(MKDIR_P) "$(DESTDIR)$(include_hwloc_autogendir)"
381 @list='$(nodist_include_hwloc_autogen_HEADERS)'; test -n "$(include_hwloc_autogendir)" || list=; \
380382 for p in $$list; do \
381383 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
382384 echo "$$d$$p"; \
383385 done | $(am__base_list) | \
384386 while read files; do \
385 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(include_hwlocdir)'"; \
386 $(INSTALL_HEADER) $$files "$(DESTDIR)$(include_hwlocdir)" || exit $$?; \
387 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(include_hwloc_autogendir)'"; \
388 $(INSTALL_HEADER) $$files "$(DESTDIR)$(include_hwloc_autogendir)" || exit $$?; \
387389 done
388390
389 uninstall-nodist_include_hwlocHEADERS:
391 uninstall-nodist_include_hwloc_autogenHEADERS:
390392 @$(NORMAL_UNINSTALL)
391 @list='$(nodist_include_hwloc_HEADERS)'; test -n "$(include_hwlocdir)" || list=; \
393 @list='$(nodist_include_hwloc_autogen_HEADERS)'; test -n "$(include_hwloc_autogendir)" || list=; \
392394 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
393395 test -n "$$files" || exit 0; \
394 echo " ( cd '$(DESTDIR)$(include_hwlocdir)' && rm -f" $$files ")"; \
395 cd "$(DESTDIR)$(include_hwlocdir)" && rm -f $$files
396 echo " ( cd '$(DESTDIR)$(include_hwloc_autogendir)' && rm -f" $$files ")"; \
397 cd "$(DESTDIR)$(include_hwloc_autogendir)" && rm -f $$files
396398
397399 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
398400 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
480482 check: check-am
481483 all-am: Makefile $(HEADERS)
482484 installdirs:
483 for dir in "$(DESTDIR)$(includedir)" "$(DESTDIR)$(include_hwlocdir)" "$(DESTDIR)$(include_hwlocdir)"; do \
485 for dir in "$(DESTDIR)$(includedir)" "$(DESTDIR)$(include_hwlocdir)" "$(DESTDIR)$(include_hwloc_autogendir)"; do \
484486 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
485487 done
486488 install: install-am
529531 info-am:
530532
531533 install-data-am: install-includeHEADERS install-include_hwlocHEADERS \
532 install-nodist_include_hwlocHEADERS
534 install-nodist_include_hwloc_autogenHEADERS
533535
534536 install-dvi: install-dvi-am
535537
574576 ps-am:
575577
576578 uninstall-am: uninstall-includeHEADERS uninstall-include_hwlocHEADERS \
577 uninstall-nodist_include_hwlocHEADERS
579 uninstall-nodist_include_hwloc_autogenHEADERS
578580
579581 .MAKE: install-am install-strip
580582
586588 install-exec-am install-html install-html-am \
587589 install-includeHEADERS install-include_hwlocHEADERS \
588590 install-info install-info-am install-man \
589 install-nodist_include_hwlocHEADERS install-pdf install-pdf-am \
590 install-ps install-ps-am install-strip installcheck \
591 installcheck-am installdirs maintainer-clean \
591 install-nodist_include_hwloc_autogenHEADERS install-pdf \
592 install-pdf-am install-ps install-ps-am install-strip \
593 installcheck installcheck-am installdirs maintainer-clean \
592594 maintainer-clean-generic mostlyclean mostlyclean-generic \
593595 mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
594596 uninstall-am uninstall-includeHEADERS \
595597 uninstall-include_hwlocHEADERS \
596 uninstall-nodist_include_hwlocHEADERS
598 uninstall-nodist_include_hwloc_autogenHEADERS
597599
598600
599601 # Tell versions [3.59,3.63) of GNU make to not export all variables.
0 /* -*- c -*-
1 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2011 Université Bordeaux 1
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
5 * See COPYING in top-level directory.
6 */
7
8 /* The configuration file */
9
10 #ifndef HWLOC_CONFIG_H
11 #define HWLOC_CONFIG_H
12
13 #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
14 # define __hwloc_restrict __restrict
15 #else
16 # if __STDC_VERSION__ >= 199901L
17 # define __hwloc_restrict restrict
18 # else
19 # define __hwloc_restrict
20 # endif
21 #endif
22
23 #undef __hwloc_inline
24
25 /*
26 * Note: this is public. We can not assume anything from the compiler used
27 * by the application and thus the HWLOC_HAVE_* macros below are not
28 * fetched from the autoconf result here. We only automatically use a few
29 * well-known easy cases.
30 */
31
32 /* Maybe before gcc 2.95 too */
33 #if defined(HWLOC_HAVE_ATTRIBUTE_UNUSED) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
34 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || HWLOC_HAVE_ATTRIBUTE_UNUSED
35 # define __hwloc_attribute_unused __attribute__((__unused__))
36 # else
37 # define __hwloc_attribute_unused
38 # endif
39 #else
40 # define __hwloc_attribute_unused
41 #endif
42
43 #if defined(HWLOC_HAVE_ATTRIBUTE_MALLOC) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
44 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) || HWLOC_HAVE_ATTRIBUTE_MALLOC
45 # define __hwloc_attribute_malloc __attribute__((__malloc__))
46 # else
47 # define __hwloc_attribute_malloc
48 # endif
49 #else
50 # define __hwloc_attribute_malloc
51 #endif
52
53 #if defined(HWLOC_HAVE_ATTRIBUTE_CONST) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
54 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || HWLOC_HAVE_ATTRIBUTE_CONST
55 # define __hwloc_attribute_const __attribute__((__const__))
56 # else
57 # define __hwloc_attribute_const
58 # endif
59 #else
60 # define __hwloc_attribute_const
61 #endif
62
63 #if defined(HWLOC_HAVE_ATTRIBUTE_PURE) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
64 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) || HWLOC_HAVE_ATTRIBUTE_PURE
65 # define __hwloc_attribute_pure __attribute__((__pure__))
66 # else
67 # define __hwloc_attribute_pure
68 # endif
69 #else
70 # define __hwloc_attribute_pure
71 #endif
72
73 #if defined(HWLOC_HAVE_ATTRIBUTE_DEPRECATED) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
74 # if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) || HWLOC_HAVE_ATTRIBUTE_DEPRECATED
75 # define __hwloc_attribute_deprecated __attribute__((__deprecated__))
76 # else
77 # define __hwloc_attribute_deprecated
78 # endif
79 #else
80 # define __hwloc_attribute_deprecated
81 #endif
82
83 #ifdef HWLOC_C_HAVE_VISIBILITY
84 # if HWLOC_C_HAVE_VISIBILITY
85 # define HWLOC_DECLSPEC __attribute__((__visibility__("default")))
86 # else
87 # define HWLOC_DECLSPEC
88 # endif
89 #else
90 # define HWLOC_DECLSPEC
91 #endif
92
93 /* Defined to 1 on Linux */
94 #undef HWLOC_LINUX_SYS
95
96 /* Defined to 1 if the CPU_SET macro works */
97 #undef HWLOC_HAVE_CPU_SET
98
99 /* Defined to 1 if you have the `windows.h' header. */
100 #undef HWLOC_HAVE_WINDOWS_H
101 #undef hwloc_pid_t
102 #undef hwloc_thread_t
103
104 #ifdef HWLOC_HAVE_WINDOWS_H
105
106 # include <windows.h>
107 typedef DWORDLONG hwloc_uint64_t;
108
109 #else /* HWLOC_HAVE_WINDOWS_H */
110
111 # ifdef hwloc_thread_t
112 # include <pthread.h>
113 # endif /* hwloc_thread_t */
114
115 /* Defined to 1 if you have the <stdint.h> header file. */
116 # undef HWLOC_HAVE_STDINT_H
117
118 # include <unistd.h>
119 # ifdef HWLOC_HAVE_STDINT_H
120 # include <stdint.h>
121 # endif
122 typedef uint64_t hwloc_uint64_t;
123
124 #endif /* HWLOC_HAVE_WINDOWS_H */
125
126 /* Whether we need to re-define all the hwloc public symbols or not */
127 #undef HWLOC_SYM_TRANSFORM
128
129 /* The hwloc symbol prefix */
130 #undef HWLOC_SYM_PREFIX
131
132 /* The hwloc symbol prefix in all caps */
133 #undef HWLOC_SYM_PREFIX_CAPS
134
135 #endif /* HWLOC_CONFIG_H */
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
1212 #ifndef HWLOC_BITMAP_H
1313 #define HWLOC_BITMAP_H
1414
15 #include <hwloc/config.h>
15 #include <hwloc/autogen/config.h>
1616 #include <assert.h>
1717
1818
5252
5353 /** \brief Allocate a new empty bitmap.
5454 *
55 * \returns A valid bitmap or NULL.
55 * \returns A valid bitmap or \c NULL.
5656 *
5757 * The bitmap should be freed by a corresponding call to
58 * hwloc_bitmap_free(). */
58 * hwloc_bitmap_free().
59 */
5960 HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc(void) __hwloc_attribute_malloc;
6061
6162 /** \brief Allocate a new full bitmap. */
6263 HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc_full(void) __hwloc_attribute_malloc;
6364
64 /** \brief Free bitmap \p bitmap */
65 /** \brief Free bitmap \p bitmap.
66 *
67 * If \p bitmap is \c NULL, no operation is performed.
68 */
6569 HWLOC_DECLSPEC void hwloc_bitmap_free(hwloc_bitmap_t bitmap);
6670
6771 /** \brief Duplicate bitmap \p bitmap by allocating a new bitmap and copying \p bitmap contents */
147151 /** \brief Add index \p id in bitmap \p bitmap */
148152 HWLOC_DECLSPEC void hwloc_bitmap_set(hwloc_bitmap_t bitmap, unsigned id);
149153
150 /** \brief Add indexess from \p begin to \p end in bitmap \p bitmap */
154 /** \brief Add indexes from \p begin to \p end in bitmap \p bitmap. */
151155 HWLOC_DECLSPEC void hwloc_bitmap_set_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end);
152156
153157 /** \brief Replace \p i -th subset of bitmap \p bitmap with unsigned long \p mask */
156160 /** \brief Remove index \p id from bitmap \p bitmap */
157161 HWLOC_DECLSPEC void hwloc_bitmap_clr(hwloc_bitmap_t bitmap, unsigned id);
158162
159 /** \brief Remove index from \p begin to \p end in bitmap \p bitmap */
163 /** \brief Remove indexes from \p begin to \p end in bitmap \p bitmap. */
160164 HWLOC_DECLSPEC void hwloc_bitmap_clr_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end);
161165
162166 /** \brief Keep a single index among those set in bitmap \p bitmap
+0
-127
include/hwloc/config.h.in less more
0 /* -*- c -*-
1 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
5 * See COPYING in top-level directory.
6 */
7
8 /* The configuration file */
9
10 #ifndef HWLOC_CONFIG_H
11 #define HWLOC_CONFIG_H
12
13 #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
14 # define __hwloc_restrict __restrict
15 #else
16 # if __STDC_VERSION__ >= 199901L
17 # define __hwloc_restrict restrict
18 # else
19 # define __hwloc_restrict
20 # endif
21 #endif
22
23 #undef __hwloc_inline
24
25 /*
26 * Note: this is public. We can not assume anything from the compiler used
27 * by the application and thus the HWLOC_HAVE_* macros below are not
28 * fetched from the autoconf result here. We only automatically use a few
29 * well-known easy cases.
30 */
31
32 /* Maybe before gcc 2.95 too */
33 #if defined(HWLOC_HAVE_ATTRIBUTE_UNUSED) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
34 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || HWLOC_HAVE_ATTRIBUTE_UNUSED
35 # define __hwloc_attribute_unused __attribute__((__unused__))
36 # else
37 # define __hwloc_attribute_unused
38 # endif
39 #else
40 # define __hwloc_attribute_unused
41 #endif
42
43 #if defined(HWLOC_HAVE_ATTRIBUTE_MALLOC) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
44 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) || HWLOC_HAVE_ATTRIBUTE_MALLOC
45 # define __hwloc_attribute_malloc __attribute__((__malloc__))
46 # else
47 # define __hwloc_attribute_malloc
48 # endif
49 #else
50 # define __hwloc_attribute_malloc
51 #endif
52
53 #if defined(HWLOC_HAVE_ATTRIBUTE_CONST) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))
54 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || HWLOC_HAVE_ATTRIBUTE_CONST
55 # define __hwloc_attribute_const __attribute__((__const__))
56 # else
57 # define __hwloc_attribute_const
58 # endif
59 #else
60 # define __hwloc_attribute_const
61 #endif
62
63 #if defined(HWLOC_HAVE_ATTRIBUTE_PURE) || (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96))
64 # if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) || HWLOC_HAVE_ATTRIBUTE_PURE
65 # define __hwloc_attribute_pure __attribute__((__pure__))
66 # else
67 # define __hwloc_attribute_pure
68 # endif
69 #else
70 # define __hwloc_attribute_pure
71 #endif
72
73 #if defined(HWLOC_HAVE_ATTRIBUTE_DEPRECATED) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
74 # if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) || HWLOC_HAVE_ATTRIBUTE_DEPRECATED
75 # define __hwloc_attribute_deprecated __attribute__((__deprecated__))
76 # else
77 # define __hwloc_attribute_deprecated
78 # endif
79 #else
80 # define __hwloc_attribute_deprecated
81 #endif
82
83 #ifdef HWLOC_C_HAVE_VISIBILITY
84 # if HWLOC_C_HAVE_VISIBILITY
85 # define HWLOC_DECLSPEC __attribute__((__visibility__("default")))
86 # else
87 # define HWLOC_DECLSPEC
88 # endif
89 #else
90 # define HWLOC_DECLSPEC
91 #endif
92
93 /* Defined to 1 on Linux */
94 #undef HWLOC_LINUX_SYS
95
96 /* Defined to 1 if the CPU_SET macro works */
97 #undef HWLOC_HAVE_CPU_SET
98
99 /* Defined to 1 if you have the <stdint.h> header file. */
100 #undef HWLOC_HAVE_STDINT_H
101
102 #include <unistd.h>
103
104 /* Defined to 1 if you have the `windows.h' header. */
105 #undef HWLOC_HAVE_WINDOWS_H
106 #undef hwloc_pid_t
107 #undef hwloc_thread_t
108
109 #ifdef HWLOC_HAVE_WINDOWS_H
110 # include <windows.h>
111 #else /* HWLOC_HAVE_WINDOWS_H */
112 # ifdef hwloc_thread_t
113 # include <pthread.h>
114 # endif /* hwloc_thread_t */
115 #endif /* HWLOC_HAVE_WINDOWS_H */
116
117 /* Whether we need to re-define all the hwloc public symbols or not */
118 #undef HWLOC_SYM_TRANSFORM
119
120 /* The hwloc symbol prefix */
121 #undef HWLOC_SYM_PREFIX
122
123 /* The hwloc symbol prefix in all caps */
124 #undef HWLOC_SYM_PREFIX_CAPS
125
126 #endif /* HWLOC_CONFIG_H */
00 /*
11 * Copyright © 2010 INRIA
22 * Copyright © 2010 Université Bordeaux 1
3 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
34 * See COPYING in top-level directory.
45 */
56
1516 #define HWLOC_CUDA_H
1617
1718 #include <hwloc.h>
18 #include <hwloc/config.h>
19 #include <hwloc/autogen/config.h>
1920 #include <hwloc/linux.h>
2021
2122 #include <cuda.h>
00 /*
11 * Copyright © 2010 INRIA
22 * Copyright © 2010 Université Bordeaux 1
3 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
34 * See COPYING in top-level directory.
45 */
56
1516 #define HWLOC_CUDART_H
1617
1718 #include <hwloc.h>
18 #include <hwloc/config.h>
19 #include <hwloc/autogen/config.h>
1920 #include <hwloc/linux.h>
2021
2122 #include <cuda_runtime_api.h>
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
2 * Copyright © 2009-2011 INRIA. All rights reserved.
3 * Copyright © 2009-2011 Université Bordeaux 1
44 * See COPYING in top-level directory.
55 */
66
1919 #include <hwloc/helper.h>
2020 #include <assert.h>
2121
22 #if !defined _GNU_SOURCE || !defined _SCHED_H
23 #error sched.h must be included with _GNU_SOURCE defined
22 #if !defined _GNU_SOURCE || !defined _SCHED_H || !defined CPU_SETSIZE
23 #error Please make sure to include sched.h before including glibc-sched.h, and define _GNU_SOURCE before any inclusion of sched.h
2424 #endif
2525
2626
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
44 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
201201 return obj1;
202202 }
203203
204 /** \brief Returns true if _obj_ is inside the subtree beginning
205 with \p subtree_root. */
204 /** \brief Returns true if \p obj is inside the subtree beginning with \p subtree_root.
205 *
206 * \note This function assumes that both \p obj and \p subtree_root have a \p cpuset.
207 */
206208 static __hwloc_inline int __hwloc_attribute_pure
207209 hwloc_obj_is_in_subtree (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)
208210 {
00 /*
11 * Copyright © 2010 INRIA
2 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
23 * See COPYING in top-level directory.
34 */
45
1415 #define HWLOC_MYRIEXPRESS_H
1516
1617 #include <hwloc.h>
17 #include <hwloc/config.h>
18 #include <hwloc/autogen/config.h>
1819 #include <hwloc/linux.h>
1920
2021 #include <myriexpress.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
1919 #define HWLOC_OPENFABRICS_VERBS_H
2020
2121 #include <hwloc.h>
22 #include <hwloc/config.h>
22 #include <hwloc/autogen/config.h>
2323 #include <hwloc/linux.h>
2424
2525 #include <infiniband/verbs.h>
00 /*
1 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
1 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
22 * See COPYING in top-level directory.
33 */
44
55 #ifndef HWLOC_RENAME_H
66 #define HWLOC_RENAME_H
77
8 #include <hwloc/config.h>
8 #include <hwloc/autogen/config.h>
99
1010
1111 #ifdef __cplusplus
5757
5858 #define hwloc_obj_type_t HWLOC_NAME(obj_type_t)
5959
60 #define hwloc_compare_types_e HWLOC_NAME(compare_types_e)
6061 #define hwloc_compare_types HWLOC_NAME(compare_types)
6162
6263 #define HWLOC_TYPE_UNORDERED HWLOC_NAME_CAPS(TYPE_UNORDERED)
6364
6465 #define hwloc_obj_memory_s HWLOC_NAME(obj_memory_s)
66 #define hwloc_obj_memory_page_type_s HWLOC_NAME(obj_memory_page_type_s)
67 #define hwloc_obj_info_s HWLOC_NAME(hwloc_obj_info_s)
6568
6669 #define hwloc_obj HWLOC_NAME(obj)
6770 #define hwloc_obj_t HWLOC_NAME(obj_t)
6871
6972 #define hwloc_obj_attr_u HWLOC_NAME(obj_attr_u)
7073 #define hwloc_cache_attr_s HWLOC_NAME(cache_attr_s)
71 #define hwloc_memory_attr_s HWLOC_NAME(cache_memory_s)
72 #define hwloc_machine_attr_s HWLOC_NAME(cache_machine_s)
73 #define hwloc_misc_attr_s HWLOC_NAME(cache_misc_s)
74 #define hwloc_group_attr_s HWLOC_NAME(group_attr_s)
7475
7576 #define hwloc_topology_init HWLOC_NAME(topology_init)
7677 #define hwloc_topology_load HWLOC_NAME(topology_load)
9091 #define hwloc_topology_set_pid HWLOC_NAME(topology_set_pid)
9192 #define hwloc_topology_set_synthetic HWLOC_NAME(topology_set_synthetic)
9293 #define hwloc_topology_set_xml HWLOC_NAME(topology_set_xml)
93
94 #define hwloc_topology_set_xmlbuffer HWLOC_NAME(topology_set_xmlbuffer)
95
96 #define hwloc_topology_discovery_support HWLOC_NAME(topology_discovery_support)
97 #define hwloc_topology_cpubind_support HWLOC_NAME(topology_cpubind_support)
98 #define hwloc_topology_membind_support HWLOC_NAME(topology_membind_support)
9499 #define hwloc_topology_support HWLOC_NAME(topology_support)
95100 #define hwloc_topology_get_support HWLOC_NAME(topology_get_support)
96101 #define hwloc_topology_export_xml HWLOC_NAME(topology_export_xml)
102 #define hwloc_topology_export_xmlbuffer HWLOC_NAME(topology_export_xmlbuffer)
97103
98104 #define hwloc_topology_insert_misc_object_by_cpuset HWLOC_NAME(topology_insert_misc_object_by_cpuset)
99105 #define hwloc_topology_insert_misc_object_by_parent HWLOC_NAME(topology_insert_misc_object_by_parent)
101107 #define hwloc_topology_get_depth HWLOC_NAME(topology_get_depth)
102108 #define hwloc_get_type_depth HWLOC_NAME(get_type_depth)
103109
110 #define hwloc_get_type_depth_e HWLOC_NAME(get_type_depth_e)
104111 #define HWLOC_TYPE_DEPTH_UNKNOWN HWLOC_NAME_CAPS(TYPE_DEPTH_UNKNOWN)
105112 #define HWLOC_TYPE_DEPTH_MULTIPLE HWLOC_NAME_CAPS(TYPE_DEPTH_MULTIPLE)
106113
124131 #define HWLOC_CPUBIND_PROCESS HWLOC_NAME_CAPS(CPUBIND_PROCESS)
125132 #define HWLOC_CPUBIND_THREAD HWLOC_NAME_CAPS(CPUBIND_THREAD)
126133 #define HWLOC_CPUBIND_STRICT HWLOC_NAME_CAPS(CPUBIND_STRICT)
134 #define HWLOC_CPUBIND_NOMEMBIND HWLOC_NAME_CAPS(CPUBIND_NOMEMBIND)
127135
128136 #define hwloc_cpubind_flags_t HWLOC_NAME(cpubind_flags_t)
129137
140148 #define HWLOC_MEMBIND_INTERLEAVE HWLOC_NAME_CAPS(MEMBIND_INTERLEAVE)
141149 #define HWLOC_MEMBIND_REPLICATE HWLOC_NAME_CAPS(MEMBIND_REPLICATE)
142150 #define HWLOC_MEMBIND_NEXTTOUCH HWLOC_NAME_CAPS(MEMBIND_NEXTTOUCH)
151 #define HWLOC_MEMBIND_MIXED HWLOC_NAME_CAPS(MEMBIND_MIXED)
143152
144153 #define hwloc_membind_policy_t HWLOC_NAME(membind_policy_t)
145154
176185 #define hwloc_const_bitmap_t HWLOC_NAME(const_bitmap_t)
177186
178187 #define hwloc_bitmap_alloc HWLOC_NAME(bitmap_alloc)
188 #define hwloc_bitmap_alloc_full HWLOC_NAME(bitmap_alloc_full)
179189 #define hwloc_bitmap_free HWLOC_NAME(bitmap_free)
180190 #define hwloc_bitmap_dup HWLOC_NAME(bitmap_dup)
181191 #define hwloc_bitmap_copy HWLOC_NAME(bitmap_copy)
243253 #define hwloc_cpuset_all_but_cpu HWLOC_NAME(cpuset_all_but_cpu)
244254 #define hwloc_cpuset_set HWLOC_NAME(cpuset_set)
245255 #define hwloc_cpuset_set_range HWLOC_NAME(cpuset_set_range)
256 #define hwloc_cpuset_set_ith_ulong HWLOC_NAME(cpuset_set_ith_ulong)
246257 #define hwloc_cpuset_clr HWLOC_NAME(cpuset_clr)
247258 #define hwloc_cpuset_clr_range HWLOC_NAME(cpuset_clr_range)
248259 #define hwloc_cpuset_isset HWLOC_NAME(cpuset_isset)
296307 #define hwloc_get_obj_below_by_type HWLOC_NAME(get_obj_below_by_type)
297308 #define hwloc_get_obj_below_array_by_type HWLOC_NAME(get_obj_below_array_by_type)
298309 #define hwloc_distribute HWLOC_NAME(distribute)
310 #define hwloc_distributev HWLOC_NAME(distributev)
299311 #define hwloc_topology_get_complete_cpuset HWLOC_NAME(topology_get_complete_cpuset)
300312 #define hwloc_topology_get_topology_cpuset HWLOC_NAME(topology_get_topology_cpuset)
301313 #define hwloc_topology_get_online_cpuset HWLOC_NAME(topology_get_online_cpuset)
307319 #define hwloc_cpuset_to_nodeset_strict HWLOC_NAME(cpuset_to_nodeset_strict)
308320 #define hwloc_cpuset_from_nodeset HWLOC_NAME(cpuset_from_nodeset)
309321 #define hwloc_cpuset_from_nodeset_strict HWLOC_NAME(cpuset_from_nodeset_strict)
322 #define hwloc_alloc_membind_policy HWLOC_NAME(alloc_membind_policy)
323 #define hwloc_alloc_membind_policy_nodeset HWLOC_NAME(alloc_membind_policy_nodeset)
310324
311325 /* glibc-sched.h */
312326
316330 /* linux-libnuma.h */
317331
318332 #define hwloc_cpuset_to_linux_libnuma_ulongs HWLOC_NAME(cpuset_to_linux_libnuma_ulongs)
333 #define hwloc_nodeset_to_linux_libnuma_ulongs HWLOC_NAME(nodeset_to_linux_libnuma_ulongs)
319334 #define hwloc_cpuset_from_linux_libnuma_ulongs HWLOC_NAME(cpuset_from_linux_libnuma_ulongs)
335 #define hwloc_nodeset_from_linux_libnuma_ulongs HWLOC_NAME(nodeset_from_linux_libnuma_ulongs)
320336 #define hwloc_cpuset_to_linux_libnuma_bitmask HWLOC_NAME(cpuset_to_linux_libnuma_bitmask)
337 #define hwloc_nodeset_to_linux_libnuma_bitmask HWLOC_NAME(nodeset_to_linux_libnuma_bitmask)
321338 #define hwloc_cpuset_from_linux_libnuma_bitmask HWLOC_NAME(cpuset_from_linux_libnuma_bitmask)
339 #define hwloc_nodeset_from_linux_libnuma_bitmask HWLOC_NAME(nodeset_from_linux_libnuma_bitmask)
322340 #define hwloc_cpuset_to_linux_libnuma_nodemask HWLOC_NAME(cpuset_to_linux_libnuma_nodemask)
341 #define hwloc_nodeset_to_linux_libnuma_nodemask HWLOC_NAME(nodeset_to_linux_libnuma_nodemask)
323342 #define hwloc_cpuset_from_linux_libnuma_nodemask HWLOC_NAME(cpuset_from_linux_libnuma_nodemask)
343 #define hwloc_nodeset_from_linux_libnuma_nodemask HWLOC_NAME(nodeset_from_linux_libnuma_nodemask)
324344
325345 /* linux.h */
326346
349369
350370 #define hwloc_snprintf HWLOC_NAME(snprintf)
351371 #define hwloc_namecoloncmp HWLOC_NAME(namecoloncmp)
372 /* FIXME: hwloc_ffsl may be a macro, but it may not be defined yet */
373 #define hwloc_ffs32 HWLOC_NAME(ffs32)
374 /* FIXME: hwloc_flsl may be a macro, but it may not be defined yet */
375 #define hwloc_fls32 HWLOC_NAME(fls32)
352376 #define hwloc_weight_long HWLOC_NAME(weight_long)
353377
354378 /* private/cpuid.h */
371395 #define HWLOC_BACKEND_SYNTHETIC HWLOC_NAME_CAPS(BACKEND_SYNTHETIC)
372396 #define HWLOC_BACKEND_SYSFS HWLOC_NAME_CAPS(BACKEND_SYSFS)
373397 #define HWLOC_BACKEND_XML HWLOC_NAME_CAPS(BACKEND_XML)
398 #define HWLOC_BACKEND_MAX HWLOC_NAME_CAPS(BACKEND_MAX)
374399
375400 #define hwloc_backend_params_u HWLOC_NAME(backend_params_u)
376401 #define hwloc_backend_params_sysfs_s HWLOC_NAME(backend_params_sysfs_s)
425450 #define hwloc_add_object_info HWLOC_NAME(add_object_info)
426451 #define hwloc_add_uname_info HWLOC_NAME(add_uname_info)
427452 #define hwloc_free_object HWLOC_NAME(free_object)
428 #define hwloc_cpuset_printf_value HWLOC_NAME(cpuset_printf_value)
453 #define hwloc_bitmap_printf_value HWLOC_NAME(bitmap_printf_value)
429454 #define hwloc_alloc_setup_object HWLOC_NAME(alloc_setup_object)
430455 #define hwloc_setup_level HWLOC_NAME(setup_level)
456
457 #define hwloc_alloc_heap HWLOC_NAME(alloc_heap)
458 #define hwloc_alloc_mmap HWLOC_NAME(alloc_mmap)
459 #define hwloc_free_heap HWLOC_NAME(free_heap)
460 #define hwloc_free_mmap HWLOC_NAME(free_mmap)
461 #define hwloc_alloc_or_fail HWLOC_NAME(alloc_or_fail)
431462
432463 #endif /* HWLOC_SYM_TRANSFORM */
433464
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2011 Université Bordeaux 1
44 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
1515 #ifndef HWLOC_H
1616 #define HWLOC_H
1717
18 #include <hwloc/config.h>
18 #include <hwloc/autogen/config.h>
1919 #include <sys/types.h>
2020 #include <stdio.h>
2121 #include <string.h>
2222 #include <limits.h>
23 #ifdef HWLOC_HAVE_STDINT_H
24 #include <stdint.h>
25 #endif
2623
2724 /*
2825 * Symbol transforms
221218
222219 /** \brief Object memory */
223220 struct hwloc_obj_memory_s {
224 uint64_t total_memory; /**< \brief Total memory (in bytes) in this object and its children */
225 uint64_t local_memory; /**< \brief Local memory (in bytes) */
221 hwloc_uint64_t total_memory; /**< \brief Total memory (in bytes) in this object and its children */
222 hwloc_uint64_t local_memory; /**< \brief Local memory (in bytes) */
226223
227224 unsigned page_types_len; /**< \brief Size of array \p page_types */
228225 /** \brief Array of local memory page types, \c NULL if no local memory and \p page_types is 0.
231228 * It contains \p page_types_len slots.
232229 */
233230 struct hwloc_obj_memory_page_type_s {
234 uint64_t size; /**< \brief Size of pages */
235 uint64_t count; /**< \brief Number of pages of this size */
231 hwloc_uint64_t size; /**< \brief Size of pages */
232 hwloc_uint64_t count; /**< \brief Number of pages of this size */
236233 } * page_types;
237234 };
238235
375372 union hwloc_obj_attr_u {
376373 /** \brief Cache-specific Object Attributes */
377374 struct hwloc_cache_attr_s {
378 uint64_t size; /**< \brief Size of cache in bytes */
375 hwloc_uint64_t size; /**< \brief Size of cache in bytes */
379376 unsigned depth; /**< \brief Depth of cache */
380377 unsigned linesize; /**< \brief Cache-line size in bytes */
381378 } cache;
519516
520517 /** \brief Set OR'ed flags to non-yet-loaded topology.
521518 *
522 * Set a OR'ed set of hwloc_topology_flags_e onto a topology that was not yet loaded.
519 * Set a OR'ed set of ::hwloc_topology_flags_e onto a topology that was not yet loaded.
523520 */
524521 HWLOC_DECLSPEC int hwloc_topology_set_flags (hwloc_topology_t topology, unsigned long flags);
525522
556553 /** \brief Enable synthetic topology.
557554 *
558555 * Gather topology information from the given \p description
559 * which should be a comma separated string of numbers describing
556 * which should be a space-separated string of numbers describing
560557 * the arity of each level.
561558 * Each number may be prefixed with a type and a colon to enforce the type
562559 * of a level. If only some level types are enforced, hwloc will try to
563560 * choose the other types according to usual topologies, but it may fail
564561 * and you may have to specify more level types manually.
562 *
563 * If \p description was properly parsed and describes a valid topology
564 * configuration, this function returns 0.
565 * Otherwise -1 is returned and errno is set to EINVAL.
565566 *
566567 * \note For conveniency, this backend provides empty binding hooks which just
567568 * return success.
730731 *
731732 * If type is absent but a similar type is acceptable, see also
732733 * hwloc_get_type_or_below_depth() and hwloc_get_type_or_above_depth().
734 *
735 * If some objects of the given type exist in different levels, for instance
736 * L1 and L2 caches, the function returns HWLOC_TYPE_DEPTH_MULTIPLE.
733737 */
734738 HWLOC_DECLSPEC int hwloc_get_type_depth (hwloc_topology_t topology, hwloc_obj_type_t type);
735739
0 /* include/private/autogen/config.h.in. Generated from configure.ac by autoheader. */
1
2 /* -*- c -*-
3 *
4 * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
5 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
6 * $COPYRIGHT$
7 *
8 * Additional copyrights may follow
9 *
10 * $HEADER$
11 *
12 * This file is automatically generated by configure. Edits will be lost
13 * the next time you run configure!
14 */
15
16 #ifndef HWLOC_CONFIGURE_H
17 #define HWLOC_CONFIGURE_H
18
19
20 /* Define to 1 if the system has the type `CACHE_DESCRIPTOR'. */
21 #undef HAVE_CACHE_DESCRIPTOR
22
23 /* Define to 1 if the system has the type `CACHE_RELATIONSHIP'. */
24 #undef HAVE_CACHE_RELATIONSHIP
25
26 /* Define to 1 if you have the `clz' function. */
27 #undef HAVE_CLZ
28
29 /* Define to 1 if you have the `clzl' function. */
30 #undef HAVE_CLZL
31
32 /* Define to 1 if we have -lcuda */
33 #undef HAVE_CUDA
34
35 /* Define to 1 if we have -lcudart */
36 #undef HAVE_CUDART
37
38 /* Define to 1 if you have the <cuda.h> header file. */
39 #undef HAVE_CUDA_H
40
41 /* Define to 1 if you have the <cuda_runtime_api.h> header file. */
42 #undef HAVE_CUDA_RUNTIME_API_H
43
44 /* Define to 1 if you have the <curses.h> header file. */
45 #undef HAVE_CURSES_H
46
47 /* Define to 1 if you have the declaration of `CTL_HW', and to 0 if you don't.
48 */
49 #undef HAVE_DECL_CTL_HW
50
51 /* Define to 1 if you have the declaration of `HW_NCPU', and to 0 if you
52 don't. */
53 #undef HAVE_DECL_HW_NCPU
54
55 /* Define to 1 if you have the declaration of `pthread_getaffinity_np', and to
56 0 if you don't. */
57 #undef HAVE_DECL_PTHREAD_GETAFFINITY_NP
58
59 /* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to
60 0 if you don't. */
61 #undef HAVE_DECL_PTHREAD_SETAFFINITY_NP
62
63 /* Define to 1 if you have the declaration of `_SC_LARGE_PAGESIZE', and to 0
64 if you don't. */
65 #undef HAVE_DECL__SC_LARGE_PAGESIZE
66
67 /* Define to 1 if you have the declaration of `_SC_NPROCESSORS_CONF', and to 0
68 if you don't. */
69 #undef HAVE_DECL__SC_NPROCESSORS_CONF
70
71 /* Define to 1 if you have the declaration of `_SC_NPROCESSORS_ONLN', and to 0
72 if you don't. */
73 #undef HAVE_DECL__SC_NPROCESSORS_ONLN
74
75 /* Define to 1 if you have the declaration of `_SC_NPROC_CONF', and to 0 if
76 you don't. */
77 #undef HAVE_DECL__SC_NPROC_CONF
78
79 /* Define to 1 if you have the declaration of `_SC_NPROC_ONLN', and to 0 if
80 you don't. */
81 #undef HAVE_DECL__SC_NPROC_ONLN
82
83 /* Define to 1 if you have the <dlfcn.h> header file. */
84 #undef HAVE_DLFCN_H
85
86 /* Define to 1 if you have the `ffs' function. */
87 #undef HAVE_FFS
88
89 /* Define to 1 if you have the `ffsl' function. */
90 #undef HAVE_FFSL
91
92 /* Define to 1 if you have the `fls' function. */
93 #undef HAVE_FLS
94
95 /* Define to 1 if you have the `flsl' function. */
96 #undef HAVE_FLSL
97
98 /* Define to 1 if you have the `getpagesize' function. */
99 #undef HAVE_GETPAGESIZE
100
101 /* Define to 1 if the system has the type `GROUP_AFFINITY'. */
102 #undef HAVE_GROUP_AFFINITY
103
104 /* Define to 1 if the system has the type `GROUP_RELATIONSHIP'. */
105 #undef HAVE_GROUP_RELATIONSHIP
106
107 /* Define to 1 if you have the `host_info' function. */
108 #undef HAVE_HOST_INFO
109
110 /* Define to 1 if you have the <infiniband/verbs.h> header file. */
111 #undef HAVE_INFINIBAND_VERBS_H
112
113 /* Define to 1 if you have the <inttypes.h> header file. */
114 #undef HAVE_INTTYPES_H
115
116 /* Define to 1 if the system has the type `KAFFINITY'. */
117 #undef HAVE_KAFFINITY
118
119 /* Define to 1 if you have the <kstat.h> header file. */
120 #undef HAVE_KSTAT_H
121
122 /* Define to 1 if you have the <langinfo.h> header file. */
123 #undef HAVE_LANGINFO_H
124
125 /* Define to 1 if we have -lgdi32 */
126 #undef HAVE_LIBGDI32
127
128 /* Define to 1 if we have -libverbs */
129 #undef HAVE_LIBIBVERBS
130
131 /* Define to 1 if we have -lkstat */
132 #undef HAVE_LIBKSTAT
133
134 /* Define to 1 if we have -llgrp */
135 #undef HAVE_LIBLGRP
136
137 /* Define to 1 if you have the <locale.h> header file. */
138 #undef HAVE_LOCALE_H
139
140 /* Define to 1 if the system has the type `LOGICAL_PROCESSOR_RELATIONSHIP'. */
141 #undef HAVE_LOGICAL_PROCESSOR_RELATIONSHIP
142
143 /* Define to 1 if you have the <mach/mach_host.h> header file. */
144 #undef HAVE_MACH_MACH_HOST_H
145
146 /* Define to 1 if you have the <mach/mach_init.h> header file. */
147 #undef HAVE_MACH_MACH_INIT_H
148
149 /* Define to 1 if you have the <malloc.h> header file. */
150 #undef HAVE_MALLOC_H
151
152 /* Define to 1 if you have the `memalign' function. */
153 #undef HAVE_MEMALIGN
154
155 /* Define to 1 if you have the <memory.h> header file. */
156 #undef HAVE_MEMORY_H
157
158 /* Define to 1 if you have the <myriexpress.h> header file. */
159 #undef HAVE_MYRIEXPRESS_H
160
161 /* Define to 1 if you have the `nl_langinfo' function. */
162 #undef HAVE_NL_LANGINFO
163
164 /* Define to 1 if you have the <numaif.h> header file. */
165 #undef HAVE_NUMAIF_H
166
167 /* Define to 1 if the system has the type `NUMA_NODE_RELATIONSHIP'. */
168 #undef HAVE_NUMA_NODE_RELATIONSHIP
169
170 /* Define to 1 if you have the `openat' function. */
171 #undef HAVE_OPENAT
172
173 /* Define to 1 if you have the `posix_memalign' function. */
174 #undef HAVE_POSIX_MEMALIGN
175
176 /* Define to 1 if the system has the type `PROCESSOR_CACHE_TYPE'. */
177 #undef HAVE_PROCESSOR_CACHE_TYPE
178
179 /* Define to 1 if the system has the type `PROCESSOR_GROUP_INFO'. */
180 #undef HAVE_PROCESSOR_GROUP_INFO
181
182 /* Define to 1 if the system has the type `PROCESSOR_RELATIONSHIP'. */
183 #undef HAVE_PROCESSOR_RELATIONSHIP
184
185 /* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_BLOCK'. */
186 #undef HAVE_PSAPI_WORKING_SET_EX_BLOCK
187
188 /* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_INFORMATION'.
189 */
190 #undef HAVE_PSAPI_WORKING_SET_EX_INFORMATION
191
192 /* Define to 1 if you have the <pthread_np.h> header file. */
193 #undef HAVE_PTHREAD_NP_H
194
195 /* Define to 1 if the system has the type `pthread_t'. */
196 #undef HAVE_PTHREAD_T
197
198 /* Define to 1 if you have the `putwc' function. */
199 #undef HAVE_PUTWC
200
201 /* Define to 1 if the system has the type `RelationProcessorPackage'. */
202 #undef HAVE_RELATIONPROCESSORPACKAGE
203
204 /* Define to 1 if you have the `setlocale' function. */
205 #undef HAVE_SETLOCALE
206
207 /* Define to 1 if you have the <stdint.h> header file. */
208 #undef HAVE_STDINT_H
209
210 /* Define to 1 if you have the <stdlib.h> header file. */
211 #undef HAVE_STDLIB_H
212
213 /* Define to 1 if you have the `strftime' function. */
214 #undef HAVE_STRFTIME
215
216 /* Define to 1 if you have the <strings.h> header file. */
217 #undef HAVE_STRINGS_H
218
219 /* Define to 1 if you have the <string.h> header file. */
220 #undef HAVE_STRING_H
221
222 /* Define to 1 if you have the `strncasecmp' function. */
223 #undef HAVE_STRNCASECMP
224
225 /* Define to 1 if you have the `sysctl' function. */
226 #undef HAVE_SYSCTL
227
228 /* Define to 1 if you have the `sysctlbyname' function. */
229 #undef HAVE_SYSCTLBYNAME
230
231 /* Define to 1 if the system has the type
232 `SYSTEM_LOGICAL_PROCESSOR_INFORMATION'. */
233 #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION
234
235 /* Define to 1 if the system has the type
236 `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX'. */
237 #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
238
239 /* Define to 1 if you have the <sys/cpuset.h> header file. */
240 #undef HAVE_SYS_CPUSET_H
241
242 /* Define to 1 if you have the <sys/lgrp_user.h> header file. */
243 #undef HAVE_SYS_LGRP_USER_H
244
245 /* Define to 1 if you have the <sys/mman.h> header file. */
246 #undef HAVE_SYS_MMAN_H
247
248 /* Define to 1 if you have the <sys/param.h> header file. */
249 #undef HAVE_SYS_PARAM_H
250
251 /* Define to 1 if you have the <sys/stat.h> header file. */
252 #undef HAVE_SYS_STAT_H
253
254 /* Define to 1 if you have the <sys/sysctl.h> header file. */
255 #undef HAVE_SYS_SYSCTL_H
256
257 /* Define to 1 if you have the <sys/types.h> header file. */
258 #undef HAVE_SYS_TYPES_H
259
260 /* Define to 1 if you have the <sys/utsname.h> header file. */
261 #undef HAVE_SYS_UTSNAME_H
262
263 /* Define to 1 if you have the <term.h> header file. */
264 #undef HAVE_TERM_H
265
266 /* Define to 1 if you have the `uname' function. */
267 #undef HAVE_UNAME
268
269 /* Define to 1 if you have the <unistd.h> header file. */
270 #undef HAVE_UNISTD_H
271
272 /* Define to 1 if the system has the type `wchar_t'. */
273 #undef HAVE_WCHAR_T
274
275 /* Define to 1 if you have the <X11/keysym.h> header file. */
276 #undef HAVE_X11_KEYSYM_H
277
278 /* Define to 1 if you have the <X11/Xlib.h> header file. */
279 #undef HAVE_X11_XLIB_H
280
281 /* Define to 1 if you have the <X11/Xutil.h> header file. */
282 #undef HAVE_X11_XUTIL_H
283
284 /* Define to 1 on AIX */
285 #undef HWLOC_AIX_SYS
286
287 /* Whether C compiler supports -fvisibility */
288 #undef HWLOC_C_HAVE_VISIBILITY
289
290 /* Define to 1 on Darwin */
291 #undef HWLOC_DARWIN_SYS
292
293 /* Whether we are in debugging mode or not */
294 #undef HWLOC_DEBUG
295
296 /* Define to 1 on *FREEBSD */
297 #undef HWLOC_FREEBSD_SYS
298
299 /* Whether your compiler has __attribute__ or not */
300 #undef HWLOC_HAVE_ATTRIBUTE
301
302 /* Whether your compiler has __attribute__ aligned or not */
303 #undef HWLOC_HAVE_ATTRIBUTE_ALIGNED
304
305 /* Whether your compiler has __attribute__ always_inline or not */
306 #undef HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE
307
308 /* Whether your compiler has __attribute__ cold or not */
309 #undef HWLOC_HAVE_ATTRIBUTE_COLD
310
311 /* Whether your compiler has __attribute__ const or not */
312 #undef HWLOC_HAVE_ATTRIBUTE_CONST
313
314 /* Whether your compiler has __attribute__ deprecated or not */
315 #undef HWLOC_HAVE_ATTRIBUTE_DEPRECATED
316
317 /* Whether your compiler has __attribute__ format or not */
318 #undef HWLOC_HAVE_ATTRIBUTE_FORMAT
319
320 /* Whether your compiler has __attribute__ hot or not */
321 #undef HWLOC_HAVE_ATTRIBUTE_HOT
322
323 /* Whether your compiler has __attribute__ malloc or not */
324 #undef HWLOC_HAVE_ATTRIBUTE_MALLOC
325
326 /* Whether your compiler has __attribute__ may_alias or not */
327 #undef HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS
328
329 /* Whether your compiler has __attribute__ nonnull or not */
330 #undef HWLOC_HAVE_ATTRIBUTE_NONNULL
331
332 /* Whether your compiler has __attribute__ noreturn or not */
333 #undef HWLOC_HAVE_ATTRIBUTE_NORETURN
334
335 /* Whether your compiler has __attribute__ no_instrument_function or not */
336 #undef HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION
337
338 /* Whether your compiler has __attribute__ packed or not */
339 #undef HWLOC_HAVE_ATTRIBUTE_PACKED
340
341 /* Whether your compiler has __attribute__ pure or not */
342 #undef HWLOC_HAVE_ATTRIBUTE_PURE
343
344 /* Whether your compiler has __attribute__ sentinel or not */
345 #undef HWLOC_HAVE_ATTRIBUTE_SENTINEL
346
347 /* Whether your compiler has __attribute__ unused or not */
348 #undef HWLOC_HAVE_ATTRIBUTE_UNUSED
349
350 /* Whether your compiler has __attribute__ warn unused result or not */
351 #undef HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT
352
353 /* Whether your compiler has __attribute__ weak alias or not */
354 #undef HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS
355
356 /* Define to 1 if you have the `cairo' library. */
357 #undef HWLOC_HAVE_CAIRO
358
359 /* Define to 1 if you have the `clz' function. */
360 #undef HWLOC_HAVE_CLZ
361
362 /* Define to 1 if you have the `clzl' function. */
363 #undef HWLOC_HAVE_CLZL
364
365 /* Define to 1 if you have cpuid */
366 #undef HWLOC_HAVE_CPUID
367
368 /* Define to 1 if the CPU_SET macro works */
369 #undef HWLOC_HAVE_CPU_SET
370
371 /* Define to 1 if the CPU_SET_S macro works */
372 #undef HWLOC_HAVE_CPU_SET_S
373
374 /* Define to 1 if function `clz' is declared by system headers */
375 #undef HWLOC_HAVE_DECL_CLZ
376
377 /* Define to 1 if function `clzl' is declared by system headers */
378 #undef HWLOC_HAVE_DECL_CLZL
379
380 /* Define to 1 if function `ffs' is declared by system headers */
381 #undef HWLOC_HAVE_DECL_FFS
382
383 /* Define to 1 if function `ffsl' is declared by system headers */
384 #undef HWLOC_HAVE_DECL_FFSL
385
386 /* Define to 1 if function `fls' is declared by system headers */
387 #undef HWLOC_HAVE_DECL_FLS
388
389 /* Define to 1 if function `flsl' is declared by system headers */
390 #undef HWLOC_HAVE_DECL_FLSL
391
392 /* Define to 1 if you have the `ffs' function. */
393 #undef HWLOC_HAVE_FFS
394
395 /* Define to 1 if you have the `ffsl' function. */
396 #undef HWLOC_HAVE_FFSL
397
398 /* Define to 1 if you have the `fls' function. */
399 #undef HWLOC_HAVE_FLS
400
401 /* Define to 1 if you have the `flsl' function. */
402 #undef HWLOC_HAVE_FLSL
403
404 /* Define to 1 if you have a library providing the termcap interface */
405 #undef HWLOC_HAVE_LIBTERMCAP
406
407 /* Define to 1 if mbind is available. */
408 #undef HWLOC_HAVE_MBIND
409
410 /* Define to 1 if migrate_pages is available. */
411 #undef HWLOC_HAVE_MIGRATE_PAGES
412
413 /* Define to 1 if glibc provides the old prototype of sched_setaffinity() */
414 #undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
415
416 /* `Define to 1 if you have pthread_getthrds_np' */
417 #undef HWLOC_HAVE_PTHREAD_GETTHRDS_NP
418
419 /* Define to 1 if set_mempolicy is available. */
420 #undef HWLOC_HAVE_SET_MEMPOLICY
421
422 /* Define to 1 if you have the <stdint.h> header file. */
423 #undef HWLOC_HAVE_STDINT_H
424
425 /* Define to 1 if you have the `windows.h' header. */
426 #undef HWLOC_HAVE_WINDOWS_H
427
428 /* Define to 1 if X11 libraries are available. */
429 #undef HWLOC_HAVE_X11
430
431 /* Define to 1 if you have the `xml' library. */
432 #undef HWLOC_HAVE_XML
433
434 /* Define to 1 if the _syscall3 macro works */
435 #undef HWLOC_HAVE__SYSCALL3
436
437 /* Define to 1 on HP-UX */
438 #undef HWLOC_HPUX_SYS
439
440 /* Define to 1 on Irix */
441 #undef HWLOC_IRIX_SYS
442
443 /* Define to 1 on Linux */
444 #undef HWLOC_LINUX_SYS
445
446 /* Major version of hwloc */
447 #undef HWLOC_MAJOR_VERSION
448
449 /* Minor version of hwloc */
450 #undef HWLOC_MINOR_VERSION
451
452 /* Define to 1 on OSF */
453 #undef HWLOC_OSF_SYS
454
455 /* Release version of hwloc */
456 #undef HWLOC_RELEASE_VERSION
457
458 /* The size of `unsigned int', as computed by sizeof */
459 #undef HWLOC_SIZEOF_UNSIGNED_INT
460
461 /* The size of `unsigned long', as computed by sizeof */
462 #undef HWLOC_SIZEOF_UNSIGNED_LONG
463
464 /* Define to 1 on Solaris */
465 #undef HWLOC_SOLARIS_SYS
466
467 /* The hwloc symbol prefix */
468 #undef HWLOC_SYM_PREFIX
469
470 /* The hwloc symbol prefix in all caps */
471 #undef HWLOC_SYM_PREFIX_CAPS
472
473 /* Whether we need to re-define all the hwloc public symbols or not */
474 #undef HWLOC_SYM_TRANSFORM
475
476 /* Define to 1 on unsupported systems */
477 #undef HWLOC_UNSUPPORTED_SYS
478
479 /* Define to 1 on WINDOWS */
480 #undef HWLOC_WIN_SYS
481
482 /* Define to 1 on x86_32 */
483 #undef HWLOC_X86_32_ARCH
484
485 /* Define to 1 on x86_64 */
486 #undef HWLOC_X86_64_ARCH
487
488 /* Define to the sub-directory in which libtool stores uninstalled libraries.
489 */
490 #undef LT_OBJDIR
491
492 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
493 #undef NO_MINUS_C_MINUS_O
494
495 /* Name of package */
496 #undef PACKAGE
497
498 /* Define to the address where bug reports for this package should be sent. */
499 #undef PACKAGE_BUGREPORT
500
501 /* Define to the full name of this package. */
502 #undef PACKAGE_NAME
503
504 /* Define to the full name and version of this package. */
505 #undef PACKAGE_STRING
506
507 /* Define to the one symbol short name of this package. */
508 #undef PACKAGE_TARNAME
509
510 /* Define to the home page for this package. */
511 #undef PACKAGE_URL
512
513 /* Define to the version of this package. */
514 #undef PACKAGE_VERSION
515
516 /* The size of `unsigned int', as computed by sizeof. */
517 #undef SIZEOF_UNSIGNED_INT
518
519 /* The size of `unsigned long', as computed by sizeof. */
520 #undef SIZEOF_UNSIGNED_LONG
521
522 /* The size of `void *', as computed by sizeof. */
523 #undef SIZEOF_VOID_P
524
525 /* Define to 1 if you have the ANSI C header files. */
526 #undef STDC_HEADERS
527
528 /* Enable extensions on HP-UX. */
529 #ifndef _HPUX_SOURCE
530 # undef _HPUX_SOURCE
531 #endif
532
533
534 /* Enable extensions on AIX 3, Interix. */
535 #ifndef _ALL_SOURCE
536 # undef _ALL_SOURCE
537 #endif
538 /* Enable GNU extensions on systems that have them. */
539 #ifndef _GNU_SOURCE
540 # undef _GNU_SOURCE
541 #endif
542 /* Enable threading extensions on Solaris. */
543 #ifndef _POSIX_PTHREAD_SEMANTICS
544 # undef _POSIX_PTHREAD_SEMANTICS
545 #endif
546 /* Enable extensions on HP NonStop. */
547 #ifndef _TANDEM_SOURCE
548 # undef _TANDEM_SOURCE
549 #endif
550 /* Enable general extensions on Solaris. */
551 #ifndef __EXTENSIONS__
552 # undef __EXTENSIONS__
553 #endif
554
555
556 /* Version number of package */
557 #undef VERSION
558
559 /* Define to 1 if the X Window System is missing or not being used. */
560 #undef X_DISPLAY_MISSING
561
562 /* Are we building for HP-UX? */
563 #undef _HPUX_SOURCE
564
565 /* Define to 1 if on MINIX. */
566 #undef _MINIX
567
568 /* Define to 2 if the system does not provide POSIX.1 features except with
569 this defined. */
570 #undef _POSIX_1_SOURCE
571
572 /* Define to 1 if you need to in order for `stat' and other things to work. */
573 #undef _POSIX_SOURCE
574
575 /* Define this to a keyword that can safely replace inline in installed
576 headers */
577 #undef __hwloc_inline
578
579 /* Define this to the process ID type */
580 #undef hwloc_pid_t
581
582 /* Define this to either strncasecmp or strncmp */
583 #undef hwloc_strncasecmp
584
585 /* Define this to the thread ID type */
586 #undef hwloc_thread_t
587
588
589 #endif /* HWLOC_CONFIGURE_H */
590
+0
-591
include/private/config.h.in less more
0 /* include/private/config.h.in. Generated from configure.ac by autoheader. */
1
2 /* -*- c -*-
3 *
4 * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
5 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
6 * $COPYRIGHT$
7 *
8 * Additional copyrights may follow
9 *
10 * $HEADER$
11 *
12 * This file is automatically generated by configure. Edits will be lost
13 * the next time you run configure!
14 */
15
16 #ifndef HWLOC_CONFIGURE_H
17 #define HWLOC_CONFIGURE_H
18
19
20 /* Define to 1 if the system has the type `CACHE_DESCRIPTOR'. */
21 #undef HAVE_CACHE_DESCRIPTOR
22
23 /* Define to 1 if the system has the type `CACHE_RELATIONSHIP'. */
24 #undef HAVE_CACHE_RELATIONSHIP
25
26 /* Define to 1 if you have the `clz' function. */
27 #undef HAVE_CLZ
28
29 /* Define to 1 if you have the `clzl' function. */
30 #undef HAVE_CLZL
31
32 /* Define to 1 if we have -lcuda */
33 #undef HAVE_CUDA
34
35 /* Define to 1 if we have -lcudart */
36 #undef HAVE_CUDART
37
38 /* Define to 1 if you have the <cuda.h> header file. */
39 #undef HAVE_CUDA_H
40
41 /* Define to 1 if you have the <cuda_runtime_api.h> header file. */
42 #undef HAVE_CUDA_RUNTIME_API_H
43
44 /* Define to 1 if you have the <curses.h> header file. */
45 #undef HAVE_CURSES_H
46
47 /* Define to 1 if you have the declaration of `CTL_HW', and to 0 if you don't.
48 */
49 #undef HAVE_DECL_CTL_HW
50
51 /* Define to 1 if you have the declaration of `HW_NCPU', and to 0 if you
52 don't. */
53 #undef HAVE_DECL_HW_NCPU
54
55 /* Define to 1 if you have the declaration of `pthread_getaffinity_np', and to
56 0 if you don't. */
57 #undef HAVE_DECL_PTHREAD_GETAFFINITY_NP
58
59 /* Define to 1 if you have the declaration of `pthread_setaffinity_np', and to
60 0 if you don't. */
61 #undef HAVE_DECL_PTHREAD_SETAFFINITY_NP
62
63 /* Define to 1 if you have the declaration of `_SC_LARGE_PAGESIZE', and to 0
64 if you don't. */
65 #undef HAVE_DECL__SC_LARGE_PAGESIZE
66
67 /* Define to 1 if you have the declaration of `_SC_NPROCESSORS_CONF', and to 0
68 if you don't. */
69 #undef HAVE_DECL__SC_NPROCESSORS_CONF
70
71 /* Define to 1 if you have the declaration of `_SC_NPROCESSORS_ONLN', and to 0
72 if you don't. */
73 #undef HAVE_DECL__SC_NPROCESSORS_ONLN
74
75 /* Define to 1 if you have the declaration of `_SC_NPROC_CONF', and to 0 if
76 you don't. */
77 #undef HAVE_DECL__SC_NPROC_CONF
78
79 /* Define to 1 if you have the declaration of `_SC_NPROC_ONLN', and to 0 if
80 you don't. */
81 #undef HAVE_DECL__SC_NPROC_ONLN
82
83 /* Define to 1 if you have the <dlfcn.h> header file. */
84 #undef HAVE_DLFCN_H
85
86 /* Define to 1 if you have the `ffs' function. */
87 #undef HAVE_FFS
88
89 /* Define to 1 if you have the `ffsl' function. */
90 #undef HAVE_FFSL
91
92 /* Define to 1 if you have the `fls' function. */
93 #undef HAVE_FLS
94
95 /* Define to 1 if you have the `flsl' function. */
96 #undef HAVE_FLSL
97
98 /* Define to 1 if you have the `getpagesize' function. */
99 #undef HAVE_GETPAGESIZE
100
101 /* Define to 1 if the system has the type `GROUP_AFFINITY'. */
102 #undef HAVE_GROUP_AFFINITY
103
104 /* Define to 1 if the system has the type `GROUP_RELATIONSHIP'. */
105 #undef HAVE_GROUP_RELATIONSHIP
106
107 /* Define to 1 if you have the `host_info' function. */
108 #undef HAVE_HOST_INFO
109
110 /* Define to 1 if you have the <infiniband/verbs.h> header file. */
111 #undef HAVE_INFINIBAND_VERBS_H
112
113 /* Define to 1 if you have the <inttypes.h> header file. */
114 #undef HAVE_INTTYPES_H
115
116 /* Define to 1 if the system has the type `KAFFINITY'. */
117 #undef HAVE_KAFFINITY
118
119 /* Define to 1 if you have the <kstat.h> header file. */
120 #undef HAVE_KSTAT_H
121
122 /* Define to 1 if you have the <langinfo.h> header file. */
123 #undef HAVE_LANGINFO_H
124
125 /* Define to 1 if we have -lgdi32 */
126 #undef HAVE_LIBGDI32
127
128 /* Define to 1 if we have -libverbs */
129 #undef HAVE_LIBIBVERBS
130
131 /* Define to 1 if we have -lkstat */
132 #undef HAVE_LIBKSTAT
133
134 /* Define to 1 if we have -llgrp */
135 #undef HAVE_LIBLGRP
136
137 /* Define to 1 if you have the <locale.h> header file. */
138 #undef HAVE_LOCALE_H
139
140 /* Define to 1 if the system has the type `LOGICAL_PROCESSOR_RELATIONSHIP'. */
141 #undef HAVE_LOGICAL_PROCESSOR_RELATIONSHIP
142
143 /* Define to 1 if you have the <mach/mach_host.h> header file. */
144 #undef HAVE_MACH_MACH_HOST_H
145
146 /* Define to 1 if you have the <mach/mach_init.h> header file. */
147 #undef HAVE_MACH_MACH_INIT_H
148
149 /* Define to 1 if you have the <malloc.h> header file. */
150 #undef HAVE_MALLOC_H
151
152 /* Define to 1 if you have the `memalign' function. */
153 #undef HAVE_MEMALIGN
154
155 /* Define to 1 if you have the <memory.h> header file. */
156 #undef HAVE_MEMORY_H
157
158 /* Define to 1 if you have the <myriexpress.h> header file. */
159 #undef HAVE_MYRIEXPRESS_H
160
161 /* Define to 1 if you have the `nl_langinfo' function. */
162 #undef HAVE_NL_LANGINFO
163
164 /* Define to 1 if you have the <numaif.h> header file. */
165 #undef HAVE_NUMAIF_H
166
167 /* Define to 1 if the system has the type `NUMA_NODE_RELATIONSHIP'. */
168 #undef HAVE_NUMA_NODE_RELATIONSHIP
169
170 /* Define to 1 if you have the `openat' function. */
171 #undef HAVE_OPENAT
172
173 /* Define to 1 if you have the `posix_memalign' function. */
174 #undef HAVE_POSIX_MEMALIGN
175
176 /* Define to 1 if the system has the type `PROCESSOR_CACHE_TYPE'. */
177 #undef HAVE_PROCESSOR_CACHE_TYPE
178
179 /* Define to 1 if the system has the type `PROCESSOR_GROUP_INFO'. */
180 #undef HAVE_PROCESSOR_GROUP_INFO
181
182 /* Define to 1 if the system has the type `PROCESSOR_RELATIONSHIP'. */
183 #undef HAVE_PROCESSOR_RELATIONSHIP
184
185 /* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_BLOCK'. */
186 #undef HAVE_PSAPI_WORKING_SET_EX_BLOCK
187
188 /* Define to 1 if the system has the type `PSAPI_WORKING_SET_EX_INFORMATION'.
189 */
190 #undef HAVE_PSAPI_WORKING_SET_EX_INFORMATION
191
192 /* Define to 1 if you have the <pthread_np.h> header file. */
193 #undef HAVE_PTHREAD_NP_H
194
195 /* Define to 1 if the system has the type `pthread_t'. */
196 #undef HAVE_PTHREAD_T
197
198 /* Define to 1 if you have the `putwc' function. */
199 #undef HAVE_PUTWC
200
201 /* Define to 1 if the system has the type `RelationProcessorPackage'. */
202 #undef HAVE_RELATIONPROCESSORPACKAGE
203
204 /* Define to 1 if you have the `setlocale' function. */
205 #undef HAVE_SETLOCALE
206
207 /* Define to 1 if you have the <stdint.h> header file. */
208 #undef HAVE_STDINT_H
209
210 /* Define to 1 if you have the <stdlib.h> header file. */
211 #undef HAVE_STDLIB_H
212
213 /* Define to 1 if you have the `strftime' function. */
214 #undef HAVE_STRFTIME
215
216 /* Define to 1 if you have the <strings.h> header file. */
217 #undef HAVE_STRINGS_H
218
219 /* Define to 1 if you have the <string.h> header file. */
220 #undef HAVE_STRING_H
221
222 /* Define to 1 if you have the `strncasecmp' function. */
223 #undef HAVE_STRNCASECMP
224
225 /* Define to 1 if you have the `sysctl' function. */
226 #undef HAVE_SYSCTL
227
228 /* Define to 1 if you have the `sysctlbyname' function. */
229 #undef HAVE_SYSCTLBYNAME
230
231 /* Define to 1 if the system has the type
232 `SYSTEM_LOGICAL_PROCESSOR_INFORMATION'. */
233 #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION
234
235 /* Define to 1 if the system has the type
236 `SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX'. */
237 #undef HAVE_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
238
239 /* Define to 1 if you have the <sys/cpuset.h> header file. */
240 #undef HAVE_SYS_CPUSET_H
241
242 /* Define to 1 if you have the <sys/lgrp_user.h> header file. */
243 #undef HAVE_SYS_LGRP_USER_H
244
245 /* Define to 1 if you have the <sys/mman.h> header file. */
246 #undef HAVE_SYS_MMAN_H
247
248 /* Define to 1 if you have the <sys/param.h> header file. */
249 #undef HAVE_SYS_PARAM_H
250
251 /* Define to 1 if you have the <sys/stat.h> header file. */
252 #undef HAVE_SYS_STAT_H
253
254 /* Define to 1 if you have the <sys/sysctl.h> header file. */
255 #undef HAVE_SYS_SYSCTL_H
256
257 /* Define to 1 if you have the <sys/types.h> header file. */
258 #undef HAVE_SYS_TYPES_H
259
260 /* Define to 1 if you have the <sys/utsname.h> header file. */
261 #undef HAVE_SYS_UTSNAME_H
262
263 /* Define to 1 if you have the <term.h> header file. */
264 #undef HAVE_TERM_H
265
266 /* Define to 1 if you have the `uname' function. */
267 #undef HAVE_UNAME
268
269 /* Define to 1 if you have the <unistd.h> header file. */
270 #undef HAVE_UNISTD_H
271
272 /* Define to 1 if the system has the type `wchar_t'. */
273 #undef HAVE_WCHAR_T
274
275 /* Define to 1 if you have the <X11/keysym.h> header file. */
276 #undef HAVE_X11_KEYSYM_H
277
278 /* Define to 1 if you have the <X11/Xlib.h> header file. */
279 #undef HAVE_X11_XLIB_H
280
281 /* Define to 1 if you have the <X11/Xutil.h> header file. */
282 #undef HAVE_X11_XUTIL_H
283
284 /* Define to 1 on AIX */
285 #undef HWLOC_AIX_SYS
286
287 /* Whether C compiler supports -fvisibility */
288 #undef HWLOC_C_HAVE_VISIBILITY
289
290 /* Define to 1 on Darwin */
291 #undef HWLOC_DARWIN_SYS
292
293 /* Whether we are in debugging mode or not */
294 #undef HWLOC_DEBUG
295
296 /* Define to 1 on *FREEBSD */
297 #undef HWLOC_FREEBSD_SYS
298
299 /* Whether your compiler has __attribute__ or not */
300 #undef HWLOC_HAVE_ATTRIBUTE
301
302 /* Whether your compiler has __attribute__ aligned or not */
303 #undef HWLOC_HAVE_ATTRIBUTE_ALIGNED
304
305 /* Whether your compiler has __attribute__ always_inline or not */
306 #undef HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE
307
308 /* Whether your compiler has __attribute__ cold or not */
309 #undef HWLOC_HAVE_ATTRIBUTE_COLD
310
311 /* Whether your compiler has __attribute__ const or not */
312 #undef HWLOC_HAVE_ATTRIBUTE_CONST
313
314 /* Whether your compiler has __attribute__ deprecated or not */
315 #undef HWLOC_HAVE_ATTRIBUTE_DEPRECATED
316
317 /* Whether your compiler has __attribute__ format or not */
318 #undef HWLOC_HAVE_ATTRIBUTE_FORMAT
319
320 /* Whether your compiler has __attribute__ hot or not */
321 #undef HWLOC_HAVE_ATTRIBUTE_HOT
322
323 /* Whether your compiler has __attribute__ malloc or not */
324 #undef HWLOC_HAVE_ATTRIBUTE_MALLOC
325
326 /* Whether your compiler has __attribute__ may_alias or not */
327 #undef HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS
328
329 /* Whether your compiler has __attribute__ nonnull or not */
330 #undef HWLOC_HAVE_ATTRIBUTE_NONNULL
331
332 /* Whether your compiler has __attribute__ noreturn or not */
333 #undef HWLOC_HAVE_ATTRIBUTE_NORETURN
334
335 /* Whether your compiler has __attribute__ no_instrument_function or not */
336 #undef HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION
337
338 /* Whether your compiler has __attribute__ packed or not */
339 #undef HWLOC_HAVE_ATTRIBUTE_PACKED
340
341 /* Whether your compiler has __attribute__ pure or not */
342 #undef HWLOC_HAVE_ATTRIBUTE_PURE
343
344 /* Whether your compiler has __attribute__ sentinel or not */
345 #undef HWLOC_HAVE_ATTRIBUTE_SENTINEL
346
347 /* Whether your compiler has __attribute__ unused or not */
348 #undef HWLOC_HAVE_ATTRIBUTE_UNUSED
349
350 /* Whether your compiler has __attribute__ warn unused result or not */
351 #undef HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT
352
353 /* Whether your compiler has __attribute__ weak alias or not */
354 #undef HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS
355
356 /* Define to 1 if you have the `cairo' library. */
357 #undef HWLOC_HAVE_CAIRO
358
359 /* Define to 1 if you have the `clz' function. */
360 #undef HWLOC_HAVE_CLZ
361
362 /* Define to 1 if you have the `clzl' function. */
363 #undef HWLOC_HAVE_CLZL
364
365 /* Define to 1 if you have cpuid */
366 #undef HWLOC_HAVE_CPUID
367
368 /* Define to 1 if the CPU_SET macro works */
369 #undef HWLOC_HAVE_CPU_SET
370
371 /* Define to 1 if the CPU_SET_S macro works */
372 #undef HWLOC_HAVE_CPU_SET_S
373
374 /* Define to 1 if function `clz' is declared by system headers */
375 #undef HWLOC_HAVE_DECL_CLZ
376
377 /* Define to 1 if function `clzl' is declared by system headers */
378 #undef HWLOC_HAVE_DECL_CLZL
379
380 /* Define to 1 if function `ffs' is declared by system headers */
381 #undef HWLOC_HAVE_DECL_FFS
382
383 /* Define to 1 if function `ffsl' is declared by system headers */
384 #undef HWLOC_HAVE_DECL_FFSL
385
386 /* Define to 1 if function `fls' is declared by system headers */
387 #undef HWLOC_HAVE_DECL_FLS
388
389 /* Define to 1 if function `flsl' is declared by system headers */
390 #undef HWLOC_HAVE_DECL_FLSL
391
392 /* Define to 1 if you have the `ffs' function. */
393 #undef HWLOC_HAVE_FFS
394
395 /* Define to 1 if you have the `ffsl' function. */
396 #undef HWLOC_HAVE_FFSL
397
398 /* Define to 1 if you have the `fls' function. */
399 #undef HWLOC_HAVE_FLS
400
401 /* Define to 1 if you have the `flsl' function. */
402 #undef HWLOC_HAVE_FLSL
403
404 /* Define to 1 if you have a library providing the termcap interface */
405 #undef HWLOC_HAVE_LIBTERMCAP
406
407 /* Define to 1 if mbind is available. */
408 #undef HWLOC_HAVE_MBIND
409
410 /* Define to 1 if migrate_pages is available. */
411 #undef HWLOC_HAVE_MIGRATE_PAGES
412
413 /* Define to 1 if glibc provides the old prototype of sched_setaffinity() */
414 #undef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
415
416 /* `Define to 1 if you have pthread_getthrds_np' */
417 #undef HWLOC_HAVE_PTHREAD_GETTHRDS_NP
418
419 /* Define to 1 if set_mempolicy is available. */
420 #undef HWLOC_HAVE_SET_MEMPOLICY
421
422 /* Define to 1 if you have the <stdint.h> header file. */
423 #undef HWLOC_HAVE_STDINT_H
424
425 /* Define to 1 if you have the `windows.h' header. */
426 #undef HWLOC_HAVE_WINDOWS_H
427
428 /* Define to 1 if X11 libraries are available. */
429 #undef HWLOC_HAVE_X11
430
431 /* Define to 1 if you have the `xml' library. */
432 #undef HWLOC_HAVE_XML
433
434 /* Define to 1 if the _syscall3 macro works */
435 #undef HWLOC_HAVE__SYSCALL3
436
437 /* Define to 1 on HP-UX */
438 #undef HWLOC_HPUX_SYS
439
440 /* Define to 1 on Irix */
441 #undef HWLOC_IRIX_SYS
442
443 /* Define to 1 on Linux */
444 #undef HWLOC_LINUX_SYS
445
446 /* Major version of hwloc */
447 #undef HWLOC_MAJOR_VERSION
448
449 /* Minor version of hwloc */
450 #undef HWLOC_MINOR_VERSION
451
452 /* Define to 1 on OSF */
453 #undef HWLOC_OSF_SYS
454
455 /* Release version of hwloc */
456 #undef HWLOC_RELEASE_VERSION
457
458 /* The size of `unsigned int', as computed by sizeof */
459 #undef HWLOC_SIZEOF_UNSIGNED_INT
460
461 /* The size of `unsigned long', as computed by sizeof */
462 #undef HWLOC_SIZEOF_UNSIGNED_LONG
463
464 /* Define to 1 on Solaris */
465 #undef HWLOC_SOLARIS_SYS
466
467 /* The hwloc symbol prefix */
468 #undef HWLOC_SYM_PREFIX
469
470 /* The hwloc symbol prefix in all caps */
471 #undef HWLOC_SYM_PREFIX_CAPS
472
473 /* Whether we need to re-define all the hwloc public symbols or not */
474 #undef HWLOC_SYM_TRANSFORM
475
476 /* Define to 1 on unsupported systems */
477 #undef HWLOC_UNSUPPORTED_SYS
478
479 /* Define to 1 on WINDOWS */
480 #undef HWLOC_WIN_SYS
481
482 /* Define to 1 on x86_32 */
483 #undef HWLOC_X86_32_ARCH
484
485 /* Define to 1 on x86_64 */
486 #undef HWLOC_X86_64_ARCH
487
488 /* Define to the sub-directory in which libtool stores uninstalled libraries.
489 */
490 #undef LT_OBJDIR
491
492 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
493 #undef NO_MINUS_C_MINUS_O
494
495 /* Name of package */
496 #undef PACKAGE
497
498 /* Define to the address where bug reports for this package should be sent. */
499 #undef PACKAGE_BUGREPORT
500
501 /* Define to the full name of this package. */
502 #undef PACKAGE_NAME
503
504 /* Define to the full name and version of this package. */
505 #undef PACKAGE_STRING
506
507 /* Define to the one symbol short name of this package. */
508 #undef PACKAGE_TARNAME
509
510 /* Define to the home page for this package. */
511 #undef PACKAGE_URL
512
513 /* Define to the version of this package. */
514 #undef PACKAGE_VERSION
515
516 /* The size of `unsigned int', as computed by sizeof. */
517 #undef SIZEOF_UNSIGNED_INT
518
519 /* The size of `unsigned long', as computed by sizeof. */
520 #undef SIZEOF_UNSIGNED_LONG
521
522 /* The size of `void *', as computed by sizeof. */
523 #undef SIZEOF_VOID_P
524
525 /* Define to 1 if you have the ANSI C header files. */
526 #undef STDC_HEADERS
527
528 /* Enable extensions on HP-UX. */
529 #ifndef _HPUX_SOURCE
530 # undef _HPUX_SOURCE
531 #endif
532
533
534 /* Enable extensions on AIX 3, Interix. */
535 #ifndef _ALL_SOURCE
536 # undef _ALL_SOURCE
537 #endif
538 /* Enable GNU extensions on systems that have them. */
539 #ifndef _GNU_SOURCE
540 # undef _GNU_SOURCE
541 #endif
542 /* Enable threading extensions on Solaris. */
543 #ifndef _POSIX_PTHREAD_SEMANTICS
544 # undef _POSIX_PTHREAD_SEMANTICS
545 #endif
546 /* Enable extensions on HP NonStop. */
547 #ifndef _TANDEM_SOURCE
548 # undef _TANDEM_SOURCE
549 #endif
550 /* Enable general extensions on Solaris. */
551 #ifndef __EXTENSIONS__
552 # undef __EXTENSIONS__
553 #endif
554
555
556 /* Version number of package */
557 #undef VERSION
558
559 /* Define to 1 if the X Window System is missing or not being used. */
560 #undef X_DISPLAY_MISSING
561
562 /* Are we building for HP-UX? */
563 #undef _HPUX_SOURCE
564
565 /* Define to 1 if on MINIX. */
566 #undef _MINIX
567
568 /* Define to 2 if the system does not provide POSIX.1 features except with
569 this defined. */
570 #undef _POSIX_1_SOURCE
571
572 /* Define to 1 if you need to in order for `stat' and other things to work. */
573 #undef _POSIX_SOURCE
574
575 /* Define this to a keyword that can safely replace inline in installed
576 headers */
577 #undef __hwloc_inline
578
579 /* Define this to the process ID type */
580 #undef hwloc_pid_t
581
582 /* Define this to either strncasecmp or strncmp */
583 #undef hwloc_strncasecmp
584
585 /* Define this to the thread ID type */
586 #undef hwloc_thread_t
587
588
589 #endif /* HWLOC_CONFIGURE_H */
590
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
910 #ifndef HWLOC_DEBUG_H
1011 #define HWLOC_DEBUG_H
1112
12 #include <private/config.h>
13 #include <private/autogen/config.h>
1314
1415 #ifdef HWLOC_DEBUG
1516 #define hwloc_debug(s, ...) fprintf(stderr, s, ##__VA_ARGS__)
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
910 #ifndef HWLOC_PRIVATE_MISC_H
1011 #define HWLOC_PRIVATE_MISC_H
1112
12 #include <hwloc/config.h>
13 #include <private/config.h>
13 #include <hwloc/autogen/config.h>
14 #include <private/autogen/config.h>
1415 #include <private/private.h>
1516
1617
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 *
66 * See COPYING in top-level directory.
77 */
1111 #ifndef HWLOC_PRIVATE_H
1212 #define HWLOC_PRIVATE_H
1313
14 #include <private/config.h>
14 #include <private/autogen/config.h>
1515 #include <hwloc.h>
1616 #include <hwloc/bitmap.h>
1717 #include <private/debug.h>
7878 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
7979 $(ACLOCAL_M4)
8080 mkinstalldirs = $(install_sh) -d
81 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
82 $(top_builddir)/include/hwloc/config.h
81 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
82 $(top_builddir)/include/hwloc/autogen/config.h
8383 CONFIG_CLEAN_FILES =
8484 CONFIG_CLEAN_VPATH_FILES =
8585 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
148148 $(AM_CFLAGS) $(CFLAGS) $(libhwloc_embedded_la_LDFLAGS) \
149149 $(LDFLAGS) -o $@
150150 @HWLOC_BUILD_STANDALONE_FALSE@am_libhwloc_embedded_la_rpath =
151 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private -I$(top_builddir)/include/hwloc
151 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private/autogen -I$(top_builddir)/include/hwloc/autogen
152152 depcomp = $(SHELL) $(top_srcdir)/./config/depcomp
153153 am__depfiles_maybe = depfiles
154154 am__mv = mv -f
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910 #include <private/private.h>
1011 #include <hwloc/helper.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
1313 #error Do not include cpuset.h in cpuset.c
1414 #endif
1515
16 #include <private/config.h>
16 #include <private/autogen/config.h>
1717 #include <private/misc.h>
1818 #include <private/private.h>
1919 #include <hwloc/bitmap.h>
10351035 */
10361036
10371037 /* for HWLOC_DECLSPEC */
1038 #include <hwloc/config.h>
1038 #include <hwloc/autogen/config.h>
10391039
10401040 /* forward declarations (public headers do not export this API anymore) */
10411041 HWLOC_DECLSPEC struct hwloc_bitmap_s * hwloc_cpuset_alloc(void);
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <private/misc.h>
1010
1111 #include <stdarg.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
78 /* TODO: use SIGRECONFIG & dr_reconfig for state change */
89
9 #include <private/config.h>
10 #include <private/autogen/config.h>
1011
1112 #include <sys/types.h>
1213 #include <dirent.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
1010
1111 /* Apparently, Darwin people do not _want_ to provide binding functions. */
1212
13 #include <private/config.h>
13 #include <private/autogen/config.h>
1414
1515 #include <sys/types.h>
1616 #include <sys/sysctl.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89
910 #include <sys/types.h>
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
1314 pthread_pset_bind_np()
1415 */
1516
16 #include <private/config.h>
17 #include <private/autogen/config.h>
1718
1819 #include <sys/types.h>
1920 #include <unistd.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * Copyright © 2010 IBM
66 * See COPYING in top-level directory.
77 */
88
9 #include <private/config.h>
9 #include <private/autogen/config.h>
1010 #include <hwloc.h>
1111 #include <hwloc/linux.h>
1212 #include <private/misc.h>
861861 unsigned max_os_index = 0; /* highest os_index + 1 */
862862 unsigned long *linuxmask;
863863 unsigned i;
864 hwloc_nodeset_t linux_nodeset = NULL;
865
866 if (hwloc_bitmap_isfull(nodeset)) {
867 linux_nodeset = hwloc_bitmap_alloc();
868 hwloc_bitmap_only(linux_nodeset, 0);
869 nodeset = linux_nodeset;
870 }
864871
865872 max_os_index = hwloc_bitmap_last(nodeset);
866873 if (max_os_index == (unsigned) -1)
876883
877884 for(i=0; i<max_os_index/HWLOC_BITS_PER_LONG; i++)
878885 linuxmask[i] = hwloc_bitmap_to_ith_ulong(nodeset, i);
886
887 if (linux_nodeset)
888 hwloc_bitmap_free(linux_nodeset);
879889
880890 *max_os_index_p = max_os_index;
881891 *linuxmaskp = linuxmask;
19731983 look_powerpc_device_tree_discover_cache(device_tree_cpus_t *cpus,
19741984 uint32_t ibm_phandle, unsigned int *level, hwloc_bitmap_t cpuset)
19751985 {
1986 unsigned int i;
19761987 int ret = -1;
19771988 if ((NULL == level) || (NULL == cpuset))
19781989 return ret;
1979 for (unsigned int i = 0; i < cpus->n; ++i) {
1990 for (i = 0; i < cpus->n; ++i) {
19801991 if (ibm_phandle != cpus->p[i].l2_cache)
19811992 continue;
19821993 if (NULL != cpus->p[i].cpuset) {
20322043 {
20332044 device_tree_cpus_t cpus = { .n = 0, .p = NULL, .allocated = 0 };
20342045 const char ofroot[] = "/proc/device-tree/cpus";
2046 unsigned int i;
20352047
20362048 int root_fd = topology->backend_params.sysfs.root_fd;
20372049 DIR *dt = hwloc_opendir(ofroot, root_fd);
20742086
20752087 if (NULL != threads) {
20762088 cpuset = hwloc_bitmap_alloc();
2077 for (unsigned int i = 0; i < nthreads; ++i) {
2078 hwloc_bitmap_set(cpuset, ntohl(threads[i]));
2089 for (i = 0; i < nthreads; ++i) {
2090 if (hwloc_bitmap_isset(topology->levels[0][0]->complete_cpuset, ntohl(threads[i])))
2091 hwloc_bitmap_set(cpuset, ntohl(threads[i]));
20792092 }
20802093 free(threads);
20812094 } else if ((unsigned int)-1 != reg) {
21102123 }
21112124
21122125 #ifdef HWLOC_DEBUG
2113 for (unsigned int i = 0; i < cpus.n; ++i) {
2126 for (i = 0; i < cpus.n; ++i) {
21142127 hwloc_debug("%i: %s ibm,phandle=%08X l2_cache=%08X ",
21152128 i, cpus.p[i].name, cpus.p[i].ibm_phandle, cpus.p[i].l2_cache);
21162129 if (NULL == cpus.p[i].cpuset) {
21222135 #endif
21232136
21242137 /* Scan L2/L3/... caches */
2125 for (unsigned int i = 0; i < cpus.n; ++i) {
2138 for (i = 0; i < cpus.n; ++i) {
21262139 /* Skip real CPUs */
21272140 if (NULL != cpus.p[i].cpuset)
21282141 continue;
21422155 }
21432156
21442157 /* Do cleanup */
2145 for (unsigned int i = 0; i < cpus.n; ++i) {
2158 for (i = 0; i < cpus.n; ++i) {
21462159 hwloc_bitmap_free(cpus.p[i].cpuset);
21472160 free(cpus.p[i].name);
21482161 }
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89
910 #include <sys/types.h>
1011 #include <dirent.h>
00 /*
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
3 * Copyright © 2009-2011 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910 #include <private/private.h>
1011 #include <private/debug.h>
2930 static int
3031 hwloc_solaris_set_sth_cpubind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_const_bitmap_t hwloc_set, int flags)
3132 {
32 unsigned target;
33 unsigned target_cpu;
3334
3435 /* The resulting binding is always strict */
3536
9899 return -1;
99100 }
100101
101 target = hwloc_bitmap_first(hwloc_set);
102 target_cpu = hwloc_bitmap_first(hwloc_set);
102103
103104 if (processor_bind(idtype, id,
104 (processorid_t) (target), NULL) != 0)
105 (processorid_t) (target_cpu), NULL) != 0)
105106 return -1;
106107
107108 return 0;
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010 #include <private/private.h>
1111 #include <private/misc.h>
6363 next_pos = strchr(pos, ':');
6464 if (!next_pos) {
6565 fprintf(stderr,"synthetic string doesn't have a `:' after object type at '%s'\n", pos);
66 errno = EINVAL;
6667 return -1;
6768 }
6869 pos = next_pos + 1;
7071 item = strtoul(pos, (char **)&next_pos, 0);
7172 if (next_pos == pos) {
7273 fprintf(stderr,"synthetic string doesn't have a number of objects at '%s'\n", pos);
74 errno = EINVAL;
7375 return -1;
7476 }
7577
7678 if (count + 1 >= HWLOC_SYNTHETIC_MAX_DEPTH) {
7779 fprintf(stderr,"Too many synthetic levels, max %d\n", HWLOC_SYNTHETIC_MAX_DEPTH);
80 errno = EINVAL;
7881 return -1;
7982 }
8083 if (item > UINT_MAX) {
8184 fprintf(stderr,"Too big arity, max %u\n", UINT_MAX);
85 errno = EINVAL;
8286 return -1;
8387 }
8488
8993
9094 if (count <= 0) {
9195 fprintf(stderr,"synthetic string doesn't contain any object\n");
96 errno = EINVAL;
9297 return -1;
9398 }
9499
120125 case HWLOC_OBJ_PU:
121126 if (nb_pu_levels) {
122127 fprintf(stderr,"synthetic string can not have several PU levels\n");
128 errno = EINVAL;
123129 return -1;
124130 }
125131 nb_pu_levels++;
143149
144150 if (nb_pu_levels > 1) {
145151 fprintf(stderr,"synthetic string can not have several PU levels\n");
152 errno = EINVAL;
146153 return -1;
147154 }
148155 if (nb_node_levels > 1) {
149156 fprintf(stderr,"synthetic string can not have several NUMA node levels\n");
157 errno = EINVAL;
150158 return -1;
151159 }
152160 if (nb_machine_levels > 1) {
153161 fprintf(stderr,"synthetic string can not have several machine levels\n");
162 errno = EINVAL;
154163 return -1;
155164 }
156165
244253 hwloc_bitmap_set(obj->nodeset, obj->os_index);
245254 }
246255
247 hwloc_insert_object_by_cpuset(topology, obj);
248
249256 hwloc_bitmap_or(parent_cpuset, parent_cpuset, obj->cpuset);
250257
251258 /* post-hooks */
287294 break;
288295 }
289296
297 hwloc_insert_object_by_cpuset(topology, obj);
298
290299 return first_cpu;
291300 }
292301
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
78 /* To try to get all declarations duplicated below. */
89 #define _WIN32_WINNT 0x0601
910
10 #include <private/config.h>
11 #include <private/autogen/config.h>
1112 #include <hwloc.h>
1213 #include <private/private.h>
1314 #include <private/debug.h>
00 /*
1 * Copyright © 2010 INRIA
1 * Copyright © 2010-2011 INRIA. All rights reserved.
22 * Copyright © 2010 Université Bordeaux 1
3 * Copyright © 2010 Cisco Systems, Inc. All rights reserved.
3 * Copyright © 2010-2011 Cisco Systems, Inc. All rights reserved.
44 * See COPYING in top-level directory.
55 *
66 *
1313 * on various architectures, without having to use this x86-specific code.
1414 */
1515
16 #include <private/config.h>
16 #include <private/autogen/config.h>
1717 #include <hwloc.h>
1818 #include <private/private.h>
1919 #include <private/debug.h>
236236 unsigned socketid = infos[i].socketid;
237237
238238 socket_cpuset = hwloc_bitmap_alloc();
239 hwloc_bitmap_zero(socket_cpuset);
240239 for (j = i; j < nbprocs; j++) {
241240 if (infos[j].socketid == socketid) {
242241 hwloc_bitmap_set(socket_cpuset, j);
268267 }
269268
270269 core_cpuset = hwloc_bitmap_alloc();
271 hwloc_bitmap_zero(core_cpuset);
272270 for (j = i; j < nbprocs; j++) {
273271 if (infos[j].coreid == (unsigned) -1) {
274272 hwloc_bitmap_clr(cores_cpuset, j);
321319 unsigned cacheid = infos[i].apicid / infos[i].cache[l].nbthreads_sharing;
322320
323321 cache_cpuset = hwloc_bitmap_alloc();
324 hwloc_bitmap_zero(cache_cpuset);
325322 for (j = i; j < nbprocs; j++) {
326323 unsigned l2;
327324 for (l2 = 0; l2 < infos[j].numcaches; l2++) {
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010 #include <private/private.h>
1111 #include <private/debug.h>
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99
1010 #define _ATFILE_SOURCE
1111 #include <assert.h>
4747 return HWLOC_API_VERSION;
4848 }
4949
50 static void hwloc_report_error(const char *msg, int line)
51 {
52 static int reported = 0;
53
54 if (!reported) {
55 fprintf(stderr, "****************************************************************************\n");
56 fprintf(stderr, "* Hwloc has encountered what looks like an error from the operating system.\n");
57 fprintf(stderr, "*\n");
58 fprintf(stderr, "* %s\n", msg);
59 fprintf(stderr, "* Error occurred in topology.c line %d\n", line);
60 fprintf(stderr, "*\n");
61 fprintf(stderr, "* Please report this error message to the hwloc user's mailing list,\n");
62 fprintf(stderr, "* along with the output from the hwloc-gather-topology.sh script.\n");
63 fprintf(stderr, "****************************************************************************\n");
64 reported = 1;
65 }
66 }
5067
5168 static void
5269 hwloc_topology_clear (struct hwloc_topology *topology);
257274 hwloc_obj_t misc_obj;
258275 misc_obj = hwloc_alloc_setup_object(HWLOC_OBJ_GROUP, -1);
259276 misc_obj->cpuset = hwloc_bitmap_alloc();
260 hwloc_bitmap_zero(misc_obj->cpuset);
261277 misc_obj->attr->group.depth = depth;
262278 for (j=0; j<nbobjs; j++)
263279 if (groupids[j] == i+1) {
273289 /* factorize distances */
274290 memset(groupdistances, 0, sizeof(groupdistances));
275291 for(i=0; i<nbobjs; i++)
292 if (groupids[i])
276293 for(j=0; j<nbobjs; j++)
294 if (groupids[j])
277295 groupdistances[groupids[i]-1][groupids[j]-1] += (*distances)[i][j];
278296 for(i=0; i<nbgroups; i++)
279297 for(j=0; j<nbgroups; j++)
700718 return;
701719 case HWLOC_OBJ_INCLUDED:
702720 if (container) {
703 /* TODO: how to report? */
704 fprintf(stderr, "object included in several different objects!\n");
721 hwloc_report_error("object included in several different objects!", __LINE__);
705722 /* We can't handle that. */
706723 return;
707724 }
709726 container = child;
710727 break;
711728 case HWLOC_OBJ_INTERSECTS:
712 /* TODO: how to report? */
713 fprintf(stderr, "object intersection without inclusion!\n");
729 hwloc_report_error("object intersection without inclusion!", __LINE__);
714730 /* We can't handle that. */
715731 return;
716732 case HWLOC_OBJ_CONTAINS:
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010 #include <private/private.h>
1111 #include <private/misc.h>
201201 int
202202 hwloc_obj_attr_snprintf(char * __hwloc_restrict string, size_t size, hwloc_obj_t obj, const char * separator, int verbose)
203203 {
204 char memory[64] = "";
205 char specific[64] = "";
206 char infos[256] = "";
207204 const char *prefix = "";
208
205 char *tmp = string;
206 ssize_t tmplen = size;
207 int ret = 0;
208 int res;
209
210 /* make sure we output at least an empty string */
211 if (size)
212 *string = '\0';
213
214 /* print memory attributes */
215 res = 0;
209216 if (verbose) {
210217 if (obj->memory.local_memory)
211 hwloc_snprintf(memory, sizeof(memory), "%slocal=%lu%s%stotal=%lu%s",
212 prefix,
213 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
214 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose),
215 separator,
216 (unsigned long) hwloc_memory_size_printf_value(obj->memory.local_memory, verbose),
217 hwloc_memory_size_printf_unit(obj->memory.local_memory, verbose));
218 res = hwloc_snprintf(tmp, tmplen, "%slocal=%lu%s%stotal=%lu%s",
219 prefix,
220 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
221 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose),
222 separator,
223 (unsigned long) hwloc_memory_size_printf_value(obj->memory.local_memory, verbose),
224 hwloc_memory_size_printf_unit(obj->memory.local_memory, verbose));
218225 else if (obj->memory.total_memory)
219 hwloc_snprintf(memory, sizeof(memory), "%stotal=%lu%s",
220 prefix,
221 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
222 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
226 res = hwloc_snprintf(tmp, tmplen, "%stotal=%lu%s",
227 prefix,
228 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
229 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
223230 } else {
224231 if (obj->memory.total_memory)
225 hwloc_snprintf(memory, sizeof(memory), "%s%lu%s",
226 prefix,
227 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
228 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
229 }
230 if (*memory)
232 res = hwloc_snprintf(tmp, tmplen, "%s%lu%s",
233 prefix,
234 (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
235 hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
236 }
237 if (res < 0)
238 return -1;
239 ret += res;
240 if (ret > 0)
231241 prefix = separator;
232
242 if (res >= tmplen)
243 res = tmplen>0 ? tmplen - 1 : 0;
244 tmp += res;
245 tmplen -= res;
246
247 /* printf type-specific attributes */
248 res = 0;
233249 switch (obj->type) {
234250 case HWLOC_OBJ_CACHE:
235251 if (verbose)
236 hwloc_snprintf(specific, sizeof(specific), "%s%lu%s%sline=%u",
237 prefix,
238 (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
239 hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose),
240 separator, obj->attr->cache.linesize);
252 res = hwloc_snprintf(tmp, tmplen, "%s%lu%s%sline=%u",
253 prefix,
254 (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
255 hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose),
256 separator, obj->attr->cache.linesize);
241257 else
242 hwloc_snprintf(specific, sizeof(specific), "%s%lu%s",
243 prefix,
244 (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
245 hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose));
258 res = hwloc_snprintf(tmp, tmplen, "%s%lu%s",
259 prefix,
260 (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
261 hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose));
246262 break;
247263 default:
248264 break;
249265 }
250 if (*specific)
266 if (res < 0)
267 return -1;
268 ret += res;
269 if (ret > 0)
251270 prefix = separator;
252
271 if (res >= tmplen)
272 res = tmplen>0 ? tmplen - 1 : 0;
273 tmp += res;
274 tmplen -= res;
275
276 /* printf infos */
253277 if (verbose) {
254 char *tmpinfos = infos;
255 int tmplen = sizeof(infos);
256 int res;
257278 unsigned i;
258279 for(i=0; i<obj->infos_count; i++) {
259280 if (strchr(obj->infos[i].value, ' '))
260 res = hwloc_snprintf(tmpinfos, tmplen, "%s%s=\"%s\"",
281 res = hwloc_snprintf(tmp, tmplen, "%s%s=\"%s\"",
261282 prefix,
262283 obj->infos[i].name, obj->infos[i].value);
263284 else
264 res = hwloc_snprintf(tmpinfos, tmplen, "%s%s=%s",
285 res = hwloc_snprintf(tmp, tmplen, "%s%s=%s",
265286 prefix,
266287 obj->infos[i].name, obj->infos[i].value);
288 if (res < 0)
289 return -1;
290 ret += res;
267291 if (res >= tmplen)
268 res = tmplen;
292 res = tmplen>0 ? tmplen - 1 : 0;
293 tmp += res;
269294 tmplen -= res;
270 tmpinfos += res;
271 }
272 }
273 if (*infos)
274 prefix = separator;
275
276 return hwloc_snprintf(string, size, "%s%s%s",
277 memory, specific, infos);
295 if (ret > 0)
296 prefix = separator;
297 }
298 }
299
300 return ret;
278301 }
279302
280303
00 # Copyright © 2009-2010 INRIA
1 # Copyright © 2009-2010 Université Bordeaux 1
1 # Copyright © 2009-2011 Université Bordeaux 1
22 # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
33
44 AM_CFLAGS = $(HWLOC_CFLAGS)
7878 myriexpress_LDFLAGS = -lmyriexpress
7979 cuda_LDFLAGS = -lcuda
8080 cudart_LDFLAGS = -lcuda -lcudart
81 xmlbuffer = -lxml2
81 xmlbuffer_LDFLAGS = $(HWLOC_XML_LIBS)
8282 if !HWLOC_HAVE_WINDOWS
8383 hwloc_bind_LDFLAGS = -lpthread
8484 endif !HWLOC_HAVE_WINDOWS
1515 @SET_MAKE@
1616
1717 # Copyright © 2009-2010 INRIA
18 # Copyright © 2009-2010 Université Bordeaux 1
18 # Copyright © 2009-2011 Université Bordeaux 1
1919 # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
2020 VPATH = @srcdir@
2121 pkgdatadir = $(datadir)/@PACKAGE@
8383 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
8484 $(ACLOCAL_M4)
8585 mkinstalldirs = $(install_sh) -d
86 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
87 $(top_builddir)/include/hwloc/config.h
86 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
87 $(top_builddir)/include/hwloc/autogen/config.h
8888 CONFIG_CLEAN_FILES =
8989 CONFIG_CLEAN_VPATH_FILES =
9090 @HWLOC_BUILD_TESTS_TRUE@@HWLOC_HAVE_LINUX_LIBNUMA_TRUE@am__EXEEXT_1 = linux-libnuma$(EXEEXT)
228228 xmlbuffer_OBJECTS = xmlbuffer.$(OBJEXT)
229229 xmlbuffer_LDADD = $(LDADD)
230230 xmlbuffer_DEPENDENCIES = $(am__append_9)
231 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private -I$(top_builddir)/include/hwloc
231 xmlbuffer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
232 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
233 $(xmlbuffer_LDFLAGS) $(LDFLAGS) -o $@
234 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private/autogen -I$(top_builddir)/include/hwloc/autogen
232235 depcomp = $(SHELL) $(top_srcdir)/./config/depcomp
233236 am__depfiles_maybe = depfiles
234237 am__mv = mv -f
503506 @HWLOC_BUILD_TESTS_TRUE@myriexpress_LDFLAGS = -lmyriexpress
504507 @HWLOC_BUILD_TESTS_TRUE@cuda_LDFLAGS = -lcuda
505508 @HWLOC_BUILD_TESTS_TRUE@cudart_LDFLAGS = -lcuda -lcudart
506 @HWLOC_BUILD_TESTS_TRUE@xmlbuffer = -lxml2
509 @HWLOC_BUILD_TESTS_TRUE@xmlbuffer_LDFLAGS = $(HWLOC_XML_LIBS)
507510 @HWLOC_BUILD_TESTS_TRUE@@HWLOC_HAVE_WINDOWS_FALSE@hwloc_bind_LDFLAGS = -lpthread
508511 all: all-recursive
509512
619622 $(AM_V_CCLD)$(openfabrics_verbs_LINK) $(openfabrics_verbs_OBJECTS) $(openfabrics_verbs_LDADD) $(LIBS)
620623 xmlbuffer$(EXEEXT): $(xmlbuffer_OBJECTS) $(xmlbuffer_DEPENDENCIES)
621624 @rm -f xmlbuffer$(EXEEXT)
622 $(AM_V_CCLD)$(LINK) $(xmlbuffer_OBJECTS) $(xmlbuffer_LDADD) $(LIBS)
625 $(AM_V_CCLD)$(xmlbuffer_LINK) $(xmlbuffer_OBJECTS) $(xmlbuffer_LDADD) $(LIBS)
623626
624627 mostlyclean-compile:
625628 -rm -f *.$(OBJEXT)
00 /*
11 * Copyright © 2010 INRIA
2 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
23 * See COPYING in top-level directory.
34 */
45
56 #include <stdio.h>
67 #include <assert.h>
78 #include <cuda.h>
8 #include <private/config.h>
9 #include <private/autogen/config.h>
910 #include <hwloc.h>
1011 #include <hwloc/cuda.h>
1112
00 /*
11 * Copyright © 2010 INRIA
2 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
23 * See COPYING in top-level directory.
34 */
45
56 #include <stdio.h>
67 #include <assert.h>
78 #include <cuda_runtime_api.h>
8 #include <private/config.h>
9 #include <private/autogen/config.h>
910 #include <hwloc.h>
1011 #include <hwloc/cudart.h>
1112
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
88 #define _GNU_SOURCE
99 #include <sched.h>
1010 #include <assert.h>
11 #include <private/config.h>
11 #include <private/autogen/config.h>
1212 #include <hwloc.h>
1313 #include <hwloc/glibc-sched.h>
1414
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
89 #include <string.h>
910 #include <errno.h>
1011
11 #include <private/config.h>
12 #include <private/autogen/config.h>
1213 #include <hwloc.h>
13 #include <private/config.h>
1414
1515 /* check the binding functions */
1616 hwloc_topology_t topology;
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <assert.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010
1111 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
00 /*
11 * Copyright © 2009 INRIA
22 * Copyright © 2009 Université Bordeaux 1
3 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
34 * See COPYING in top-level directory.
45 */
56
6 #include <private/config.h>
7 #include <private/autogen/config.h>
78 #include <hwloc.h>
89
910 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdio.h>
0 Machine (P#0 total=100661148KB DMIProductName=DRACHMA DMIProductVersion="Rev 2" DMIProductSerial=0123456789 DMIProductUUID=008844D0-2214-DF11-B89F-F50F715B14E8 DMIBoardVendor=AMD DMIBoardName=DRACHMA DMIBoardVersion="Rev 2" DMIBoardSerial=0123456789 DMIBoardAssetTag= )
0 Machine (P#0 total=100661148KB DMIProductName=DRACHMA DMIProductVersion="Rev 2" DMIProductSerial=0123456789 DMIProductUUID=008844D0-2214-DF11-B89F-F50F715B14E8 DMIBoardVendor=AMD DMIBoardName=DRACHMA DMIBoardVersion="Rev 2" DMIBoardSerial=0123456789 DMIBoardAssetTag= DMIChassisVendor=AMD DMIChassisType=23 DMIChassisVersion= DMIChassisSerial= DMIChassisAssetTag= DMIBIOSVendor="Phoenix Technologies Ltd." DMIBIOSVersion=PDPAX1-6 DMIBIOSDate=12/15/2009 DMISysVendor=AMD Backend=Linux)
11 Socket L#0 (P#0 total=25163676KB)
22 NUMANode L#0 (P#0 local=8386460KB total=8386460KB)
33 L3Cache L#0 (5118KB line=64)
0 Machine (P#0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag=)
0 Machine (P#0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag= DMIBIOSVendor="Dell Inc." DMIBIOSVersion=2.3.1 DMIBIOSDate=04/29/2008 DMISysVendor="Dell Inc." Backend=Linux)
11 Socket L#0 (P#0)
22 L2Cache L#0 (4096KB line=64)
33 L1Cache L#0 (32KB line=64)
0 Machine (P#0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag=)
0 Machine (P#0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag= DMIBIOSVendor="Dell Inc." DMIBIOSVersion=2.3.1 DMIBIOSDate=04/29/2008 DMISysVendor="Dell Inc." Backend=Linux)
11 Socket L#0 (P#0)
22 L1Cache L#0 (32KB line=64)
33 Core L#0 (P#0)
5656 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5757 $(ACLOCAL_M4)
5858 mkinstalldirs = $(install_sh) -d
59 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
60 $(top_builddir)/include/hwloc/config.h
59 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
60 $(top_builddir)/include/hwloc/autogen/config.h
6161 CONFIG_CLEAN_FILES = hwloc-gather-topology.sh test-topology.sh
6262 CONFIG_CLEAN_VPATH_FILES =
6363 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
5454 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5555 $(ACLOCAL_M4)
5656 mkinstalldirs = $(install_sh) -d
57 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
58 $(top_builddir)/include/hwloc/config.h
57 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
58 $(top_builddir)/include/hwloc/autogen/config.h
5959 CONFIG_CLEAN_FILES = test-gather-topology.sh
6060 CONFIG_CLEAN_VPATH_FILES =
6161 AM_V_GEN = $(am__v_GEN_$(V))
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910 #include <assert.h>
1011 #define NUMA_VERSION1_COMPATIBILITY
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
88 #include <stdio.h>
99 #include <assert.h>
1010 #include <infiniband/verbs.h>
11 #include <private/config.h>
11 #include <private/autogen/config.h>
1212 #include <hwloc.h>
1313 #include <hwloc/openfabrics-verbs.h>
1414
5353 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5454 $(ACLOCAL_M4)
5555 mkinstalldirs = $(install_sh) -d
56 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
57 $(top_builddir)/include/hwloc/config.h
56 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
57 $(top_builddir)/include/hwloc/autogen/config.h
5858 CONFIG_CLEAN_FILES = topology.c traversal.c topology-synthetic.c \
5959 topology-solaris.c topology-aix.c topology-osf.c \
6060 topology-windows.c topology-darwin.c topology-freebsd.c \
7878 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
7979 am__v_lt_0 = --silent
8080 @HWLOC_BUILD_TESTS_TRUE@@HWLOC_HAVE_LINUX_TRUE@am_libhwloc_ports_la_rpath =
81 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private -I$(top_builddir)/include/hwloc
81 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private/autogen -I$(top_builddir)/include/hwloc/autogen
8282 depcomp = $(SHELL) $(top_srcdir)/./config/depcomp
8383 am__depfiles_maybe = depfiles
8484 am__mv = mv -f
5454 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
5555 $(ACLOCAL_M4)
5656 mkinstalldirs = $(install_sh) -d
57 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
58 $(top_builddir)/include/hwloc/config.h
57 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
58 $(top_builddir)/include/hwloc/autogen/config.h
5959 CONFIG_CLEAN_FILES = test-topology.sh
6060 CONFIG_CLEAN_VPATH_FILES =
6161 AM_V_GEN = $(am__v_GEN_$(V))
00 /*
11 * Copyright © 2010 INRIA
2 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
23 * See COPYING in top-level directory.
34 */
45
67 #include <assert.h>
78 #include <libxml/xmlstring.h>
89 #include <libxml/xmlmemory.h>
9 #include <private/config.h>
10 #include <private/autogen/config.h>
1011 #include <hwloc.h>
1112
1213 /* check the CUDA Driver API helpers */
6868 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
6969 $(ACLOCAL_M4)
7070 mkinstalldirs = $(install_sh) -d
71 CONFIG_HEADER = $(top_builddir)/include/private/config.h \
72 $(top_builddir)/include/hwloc/config.h
71 CONFIG_HEADER = $(top_builddir)/include/private/autogen/config.h \
72 $(top_builddir)/include/hwloc/autogen/config.h
7373 CONFIG_CLEAN_FILES = test-hwloc-distrib.sh
7474 CONFIG_CLEAN_VPATH_FILES =
7575 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
113113 lstopo_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
114114 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(lstopo_CFLAGS) $(CFLAGS) \
115115 $(AM_LDFLAGS) $(LDFLAGS) -o $@
116 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private -I$(top_builddir)/include/hwloc
116 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/private/autogen -I$(top_builddir)/include/hwloc/autogen
117117 depcomp = $(SHELL) $(top_srcdir)/./config/depcomp
118118 am__depfiles_maybe = depfiles
119119 am__mv = mv -f
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
44 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
134134 membind_policy = HWLOC_MEMBIND_FIRSTTOUCH;
135135 else if (!strncmp(argv[1], "bind", 2))
136136 membind_policy = HWLOC_MEMBIND_BIND;
137 else if (!strncmp(argv[1], "interleace", 2))
137 else if (!strncmp(argv[1], "interleave", 2))
138138 membind_policy = HWLOC_MEMBIND_INTERLEAVE;
139139 else if (!strncmp(argv[1], "replicate", 2))
140140 membind_policy = HWLOC_MEMBIND_REPLICATE;
9595 .
9696 hwloc-calc generates and manipulates CPU mask strings or objects.
9797 Both input and output may be either objects (with physical or logical
98 indexes) or CPU mask strings (no logical or physical index involved).
98 indexes), CPU lists (with physical or logical indexes), or CPU mask strings
99 (always physically indexed).
99100 .
100101 .PP
101102 If objects or CPU mask strings are given on the command-line,
128129 hwloc-calc's operation is best described through several examples.
129130 .
130131 .PP
131 To display the CPU mask corresponding to the second socket:
132 To display the (physical) CPU mask corresponding to the second socket:
132133
133134 $ hwloc-calc socket:1
134135 0x000000f0
135136
136 To display the CPU mask corresponding to the third socket, excluding
137 To display the (physical) CPU mask corresponding to the third socket, excluding
137138 its even numbered logical processors:
138139
139140 $ hwloc-calc socket:2 ~PU:even
140141 0x00000c00
141142
142 To combine two CPU masks:
143 To combine two (physical) CPU masks:
143144
144145 $ hwloc-calc 0x0000ffff 0xff000000
145146 0xff00ffff
146147
147 To display the list of logical processors included in the second
148 To display the list of logical numbers of processors included in the second
148149 socket:
149150
150151 $ hwloc-calc --intersect PU socket:1
151 0,2,4,6
152
153 To display the list of NUMA nodes, by physical indexes, that intersect a given CPU mask:
152 4,5,6,7
153
154 To bind GNU OpenMP threads logically over the whole machine, we need to use
155 physical number output instead:
156
157 $ export GOMP_CPU_AFFINITY=`hwloc-calc --physical --intersect PU machine:0`
158 $ echo $GOMP_CPU_AFFINITY
159 0,2,1,3
160
161 To display the list of NUMA nodes, by physical indexes, that intersect a given (physical) CPU mask:
154162
155163 $ hwloc-calc --physical --intersect NUMAnode 0xf0f0f0f0
156164 0,2
185193 .\" Return value section
186194 .\" **************************
187195 .SH RETURN VALUE
188 Upon successful execution, hwloc-calc displays the CPU mask string.
196 Upon successful execution, hwloc-calc displays the (physical) CPU mask string,
197 (physical or logical) object list, or (physical or logical) object number list.
189198 The return value is 0.
190199 .
191200 .
00 /*
11 * Copyright © 2009 CNRS
22 * Copyright © 2009 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
3 * Copyright © 2009-2011 Université Bordeaux 1
44 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
4444 static int singlify = 0;
4545 static int taskset = 0;
4646
47 static void
47 static int
4848 hwloc_calc_output(hwloc_topology_t topology, hwloc_bitmap_t set)
4949 {
5050 if (singlify)
5757 char type[64];
5858 unsigned idx;
5959 hwloc_obj_t obj = hwloc_get_first_largest_obj_inside_cpuset(topology, remaining);
60 if (!obj) {
61 fprintf(stderr, "No object included in this cpuset\n");
62 return EXIT_FAILURE;
63 }
6064 hwloc_obj_type_snprintf(type, sizeof(type), obj, 1);
6165 idx = logicalo ? obj->logical_index : obj->os_index;
6266 if (idx == (unsigned) -1)
8690 printf("%s\n", string);
8791 free(string);
8892 }
93 return EXIT_SUCCESS;
8994 }
9095
9196 int main(int argc, char *argv[])
101106 hwloc_obj_type_t listtype = (hwloc_obj_type_t) -1;
102107 char *callname;
103108 int opt;
109 int ret = EXIT_SUCCESS;
104110
105111 callname = argv[0];
106112
235241
236242 if (cmdline_args) {
237243 /* process command-line arguments */
238 hwloc_calc_output(topology, set);
244 ret = hwloc_calc_output(topology, set);
239245
240246 } else {
241247 /* process stdin arguments line-by-line */
261267
262268 hwloc_bitmap_free(set);
263269
264 return EXIT_SUCCESS;
270 return ret;
265271 }
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
78 #ifndef HWLOC_MASK_H
89 #define HWLOC_MASK_H
910
10 #include <private/config.h>
11 #include <private/autogen/config.h>
1112 #include <private/private.h>
1213 #include <private/misc.h>
1314 #include <hwloc.h>
00 /*
11 * Copyright © 2009-2010 INRIA
22 * Copyright © 2009 Université Bordeaux 1
3 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
3 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
44 * See COPYING in top-level directory.
55 */
66
7 #include <private/config.h>
7 #include <private/autogen/config.h>
88 #include <hwloc.h>
99
1010 #include <stdlib.h>
00 .\" -*- nroff -*-
1 .\" Copyright © 2010 INRIA
1 .\" Copyright © 2010 INRIA
22 .\" Copyright © 2010 Université of Bordeaux
33 .\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
44 .TH HWLOC "7" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
183183 .
184184 .PP
185185 Finally, note that an object can be denoted by its numeric "depth" in
186 the topology graph. See the Examples section for more information.
186 the topology graph.
187187 .
188188 .SS Hwloc Indexes
189189 Indexes are integer values that uniquely specify a given object of a
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99
1010 #ifdef HWLOC_HAVE_CAIRO
1111 #include <cairo.h>
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <private/private.h>
1010 #include <hwloc.h>
1111
11 * Copyright © 2009 CNRS
22 * Copyright © 2009 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
7 #include <private/config.h>
8 #include <private/autogen/config.h>
89 #include <hwloc.h>
910
1011 #include <stdlib.h>
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
2 * Copyright © 2009-2011 INRIA. All rights reserved.
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010
1111 #include <stdlib.h>
4242 static void
4343 output_console_obj (hwloc_obj_t l, FILE *output, int logical, int verbose_mode)
4444 {
45 char type[32], attr[256], phys[32] = "";
45 char type[32], *attr, phys[32] = "";
4646 unsigned idx = logical ? l->logical_index : l->os_index;
4747 const char *indexprefix = logical ? " L#" : " P#";
4848 if (show_cpuset < 2) {
49 int len;
4950 if (l->type == HWLOC_OBJ_MISC && l->name)
5051 fprintf(output, "%s", l->name);
5152 else {
5758 if (logical && l->os_index != (unsigned) -1 &&
5859 (verbose_mode >= 2 || l->type == HWLOC_OBJ_PU || l->type == HWLOC_OBJ_NODE))
5960 snprintf(phys, sizeof(phys), "P#%u", l->os_index);
60 hwloc_obj_attr_snprintf (attr, sizeof(attr), l, " ", verbose_mode-1);
61 len = hwloc_obj_attr_snprintf (NULL, 0, l, " ", verbose_mode-1);
62 attr = malloc(len+1);
63 *attr = '\0';
64 len = hwloc_obj_attr_snprintf (attr, len+1, l, " ", verbose_mode-1);
6165 if (*phys || *attr) {
6266 const char *separator = *phys != '\0' && *attr!= '\0' ? " " : "";
6367 fprintf(output, " (%s%s%s)",
6468 phys, separator, attr);
6569 }
70 free(attr);
6671 if (verbose_mode >= 2 && l->name && l->type != HWLOC_OBJ_MISC)
6772 fprintf(output, " \"%s\"", l->name);
6873 }
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99
1010 #ifdef HWLOC_HAVE_XML
1111
00 /*
11 * Copyright © 2009 CNRS
2 * Copyright © 2009-2010 INRIA
3 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
2 * Copyright © 2009-2011 INRIA. All rights reserved.
3 * Copyright © 2009-2011 Université Bordeaux 1
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010 #ifdef HWLOC_LINUX_SYS
1111 #include <hwloc/linux.h>
207207 fprintf (where, " -v --verbose Include additional details\n");
208208 fprintf (where, " -s --silent Reduce the amount of details to show\n");
209209 fprintf (where, " -c --cpuset Show the cpuset of each object\n");
210 fprintf (where, " -C --cpuset-only Only show the cpuset of each ofbject\n");
210 fprintf (where, " -C --cpuset-only Only show the cpuset of each object\n");
211211 fprintf (where, " --taskset Show taskset-specific cpuset strings\n");
212212 fprintf (where, "Object filtering options:\n");
213213 fprintf (where, " --ignore <type> Ignore objects of the given type\n");
214214 fprintf (where, " --no-caches Do not show caches\n");
215215 fprintf (where, " --no-useless-caches Do not show caches which do not have a hierarchical\n"
216216 " impact\n");
217 fprintf (where, " --merge Do not show levels that do not have a hierarcical\n"
217 fprintf (where, " --merge Do not show levels that do not have a hierarchical\n"
218218 " impact\n");
219219 fprintf (where, "Input options:\n");
220220 hwloc_utils_input_format_usage(where, 6);
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2011 Cisco Systems, Inc. All rights reserved.
45 * See COPYING in top-level directory.
56 */
67
78 #ifndef UTILS_LSTOPO_H
89 #define UTILS_LSTOPO_H
910
10 #include <private/config.h>
11 #include <private/autogen/config.h>
1112 #include <hwloc.h>
1213
1314 extern hwloc_obj_type_t show_only;
11 * Copyright © 2009 CNRS
22 * Copyright © 2009-2010 INRIA
33 * Copyright © 2009-2010 Université Bordeaux 1
4 * Copyright © 2009 Cisco Systems, Inc. All rights reserved.
4 * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
55 * See COPYING in top-level directory.
66 */
77
8 #include <private/config.h>
8 #include <private/autogen/config.h>
99 #include <hwloc.h>
1010
1111 #include <stdio.h>