3rd party import hwloc 1.0rc1 into the SVN trunk
This commit was SVN r22996.
7
opal/mca/paffinity/hwloc/hwloc/AUTHORS
Обычный файл
@ -0,0 +1,7 @@
|
||||
Cédric Augonnet <Cedric.Augonnet@labri.fr>
|
||||
Jérôme Clet-Ortega <Jerome.Clet-Ortega@labri.fr>
|
||||
Ludovic Courtès <Ludovic.Courtes@inria.fr>
|
||||
Brice Goglin <Brice.Goglin@inria.fr>
|
||||
Nathalie Furmento <Nathalie.Furmento@labri.fr>
|
||||
Samuel Thibault <Samuel.Thibault@labri.fr>
|
||||
Jeff Squyres <jsquyres@cisco.com>
|
25
opal/mca/paffinity/hwloc/hwloc/COPYING
Обычный файл
@ -0,0 +1,25 @@
|
||||
Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
||||
All rights reserved.
|
||||
Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
59
opal/mca/paffinity/hwloc/hwloc/Makefile.am
Обычный файл
@ -0,0 +1,59 @@
|
||||
# Copyright © 2009 INRIA, Université Bordeaux 1
|
||||
# Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
# Note that the -I directory must *exactly* match what was specified
|
||||
# via AC_CONFIG_MACRO_DIR in configure.ac.
|
||||
ACLOCAL_AMFLAGS = -I ./config
|
||||
|
||||
SUBDIRS = src utils tests include doc
|
||||
|
||||
# Only install the pkg file if we're building in standalone mode
|
||||
if HWLOC_BUILD_STANDALONE
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = hwloc.pc
|
||||
endif
|
||||
|
||||
#
|
||||
# "make distcheck" requires that tarballs are able to be able to "make
|
||||
# dist", so we have to include config/distscript.csh.
|
||||
#
|
||||
|
||||
EXTRA_DIST = \
|
||||
README VERSION COPYING AUTHORS \
|
||||
config/hwloc_get_version.sh \
|
||||
config/distscript.csh
|
||||
|
||||
#
|
||||
# Double check that we generated both the doxygen docs and a new copy
|
||||
# of the top-level README file.
|
||||
#
|
||||
|
||||
cannot-dist:
|
||||
@echo "ERROR: Did not build both of the doxygen docs and README."
|
||||
@echo "ERROR: This tarball is not complete!"
|
||||
@echo "ERROR: Cowardly refusing to complete successfully..."
|
||||
@exit 1
|
||||
|
||||
# Refuse to make dist if we can't make the doxygen stuff (note that
|
||||
# BUILD_DOXYGEN will automatically be false if we're not building
|
||||
# standalone).
|
||||
if !HWLOC_BUILD_DOXYGEN
|
||||
dist-hook: cannot-dist
|
||||
else
|
||||
if !HWLOC_BUILD_README
|
||||
dist-hook: cannot-dist
|
||||
else
|
||||
dist-hook:
|
||||
csh "$(top_srcdir)/config/distscript.csh" "$(top_srcdir)" "$(distdir)" "$(HWLOC_VERSION)" "$(HWLOC_SVN_R)"
|
||||
endif HWLOC_BUILD_README
|
||||
endif HWLOC_BUILD_DOXYGEN
|
||||
|
||||
#
|
||||
# Build the top-level README file
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_STANDALONE
|
||||
.PHONY: doc readme
|
||||
doc readme:
|
||||
$(MAKE) -C doc readme
|
||||
endif HWLOC_BUILD_STANDALONE
|
891
opal/mca/paffinity/hwloc/hwloc/Makefile.in
Обычный файл
@ -0,0 +1,891 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# Copyright © 2009 INRIA, Université Bordeaux 1
|
||||
# Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/hwloc.pc.in \
|
||||
$(top_srcdir)/configure \
|
||||
$(top_srcdir)/include/hwloc/config.h.in \
|
||||
$(top_srcdir)/include/private/config.h.in ./config/compile \
|
||||
./config/config.guess ./config/config.sub ./config/depcomp \
|
||||
./config/install-sh ./config/ltmain.sh ./config/missing \
|
||||
AUTHORS COPYING NEWS
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/config/hwloc.m4 \
|
||||
$(top_srcdir)/config/hwloc_check_attributes.m4 \
|
||||
$(top_srcdir)/config/hwloc_check_visibility.m4 \
|
||||
$(top_srcdir)/config/hwloc_internal.m4 \
|
||||
$(top_srcdir)/config/hwloc_pkg.m4 \
|
||||
$(top_srcdir)/config/libtool.m4 \
|
||||
$(top_srcdir)/config/ltoptions.m4 \
|
||||
$(top_srcdir)/config/ltsugar.m4 \
|
||||
$(top_srcdir)/config/ltversion.m4 \
|
||||
$(top_srcdir)/config/lt~obsolete.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/private/config.h \
|
||||
$(top_builddir)/include/hwloc/config.h
|
||||
CONFIG_CLEAN_FILES = hwloc.pc
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
|
||||
DATA = $(pkgconfig_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BASH = @BASH@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONFIGURE_DEPENDENCIES = @CONFIGURE_DEPENDENCIES@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DOXYGEN = @DOXYGEN@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
FIG2DEV = @FIG2DEV@
|
||||
GREP = @GREP@
|
||||
HWLOC_CAIRO_CFLAGS = @HWLOC_CAIRO_CFLAGS@
|
||||
HWLOC_CAIRO_LIBS = @HWLOC_CAIRO_LIBS@
|
||||
HWLOC_CFLAGS = @HWLOC_CFLAGS@
|
||||
HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@
|
||||
HWLOC_DIFF_U = @HWLOC_DIFF_U@
|
||||
HWLOC_EMBEDDED_CFLAGS = @HWLOC_EMBEDDED_CFLAGS@
|
||||
HWLOC_EMBEDDED_CPPFLAGS = @HWLOC_EMBEDDED_CPPFLAGS@
|
||||
HWLOC_EMBEDDED_LDADD = @HWLOC_EMBEDDED_LDADD@
|
||||
HWLOC_HAVE_XML = @HWLOC_HAVE_XML@
|
||||
HWLOC_KERRIGHED_CFLAGS = @HWLOC_KERRIGHED_CFLAGS@
|
||||
HWLOC_KERRIGHED_LIBS = @HWLOC_KERRIGHED_LIBS@
|
||||
HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
|
||||
HWLOC_MS_LIB = @HWLOC_MS_LIB@
|
||||
HWLOC_PKG_CONFIG = @HWLOC_PKG_CONFIG@
|
||||
HWLOC_RELEASE_DATE = @HWLOC_RELEASE_DATE@
|
||||
HWLOC_REQUIRES = @HWLOC_REQUIRES@
|
||||
HWLOC_SVN_R = @HWLOC_SVN_R@
|
||||
HWLOC_TERMCAP_LIBS = @HWLOC_TERMCAP_LIBS@
|
||||
HWLOC_VERSION = @HWLOC_VERSION@
|
||||
HWLOC_W3_GENERATOR = @HWLOC_W3_GENERATOR@
|
||||
HWLOC_X11_LIBS = @HWLOC_X11_LIBS@
|
||||
HWLOC_XML_CFLAGS = @HWLOC_XML_CFLAGS@
|
||||
HWLOC_XML_LIBS = @HWLOC_XML_LIBS@
|
||||
HWLOC_top_builddir = @HWLOC_top_builddir@
|
||||
HWLOC_top_srcdir = @HWLOC_top_srcdir@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
LYNX = @LYNX@
|
||||
MAKEINDEX = @MAKEINDEX@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PDFLATEX = @PDFLATEX@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
W3M = @W3M@
|
||||
XMKMF = @XMKMF@
|
||||
XMLLINT = @XMLLINT@
|
||||
X_CFLAGS = @X_CFLAGS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libhwloc_so_version = @libhwloc_so_version@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
# Note that the -I directory must *exactly* match what was specified
|
||||
# via AC_CONFIG_MACRO_DIR in configure.ac.
|
||||
ACLOCAL_AMFLAGS = -I ./config
|
||||
SUBDIRS = src utils tests include doc
|
||||
|
||||
# Only install the pkg file if we're building in standalone mode
|
||||
@HWLOC_BUILD_STANDALONE_TRUE@pkgconfigdir = $(libdir)/pkgconfig
|
||||
@HWLOC_BUILD_STANDALONE_TRUE@pkgconfig_DATA = hwloc.pc
|
||||
|
||||
#
|
||||
# "make distcheck" requires that tarballs are able to be able to "make
|
||||
# dist", so we have to include config/distscript.csh.
|
||||
#
|
||||
EXTRA_DIST = \
|
||||
README VERSION COPYING AUTHORS \
|
||||
config/hwloc_get_version.sh \
|
||||
config/distscript.csh
|
||||
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
include/private/config.h: include/private/stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f include/private/stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) include/private/stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
include/private/stamp-h1: $(top_srcdir)/include/private/config.h.in $(top_builddir)/config.status
|
||||
@rm -f include/private/stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status include/private/config.h
|
||||
$(top_srcdir)/include/private/config.h.in: $(am__configure_deps)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f include/private/stamp-h1
|
||||
touch $@
|
||||
|
||||
include/hwloc/config.h: include/hwloc/stamp-h2
|
||||
@if test ! -f $@; then \
|
||||
rm -f include/hwloc/stamp-h2; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) include/hwloc/stamp-h2; \
|
||||
else :; fi
|
||||
|
||||
include/hwloc/stamp-h2: $(top_srcdir)/include/hwloc/config.h.in $(top_builddir)/config.status
|
||||
@rm -f include/hwloc/stamp-h2
|
||||
cd $(top_builddir) && $(SHELL) ./config.status include/hwloc/config.h
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f include/private/config.h include/private/stamp-h1 include/hwloc/config.h include/hwloc/stamp-h2
|
||||
hwloc.pc: $(top_builddir)/config.status $(srcdir)/hwloc.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool config.lt
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||
install-am install-strip tags-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \
|
||||
dist-zip distcheck distclean distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgconfigDATA install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-pkgconfigDATA
|
||||
|
||||
|
||||
#
|
||||
# Double check that we generated both the doxygen docs and a new copy
|
||||
# of the top-level README file.
|
||||
#
|
||||
|
||||
cannot-dist:
|
||||
@echo "ERROR: Did not build both of the doxygen docs and README."
|
||||
@echo "ERROR: This tarball is not complete!"
|
||||
@echo "ERROR: Cowardly refusing to complete successfully..."
|
||||
@exit 1
|
||||
|
||||
# Refuse to make dist if we can't make the doxygen stuff (note that
|
||||
# BUILD_DOXYGEN will automatically be false if we're not building
|
||||
# standalone).
|
||||
@HWLOC_BUILD_DOXYGEN_FALSE@dist-hook: cannot-dist
|
||||
@HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_BUILD_README_FALSE@dist-hook: cannot-dist
|
||||
@HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_BUILD_README_TRUE@dist-hook:
|
||||
@HWLOC_BUILD_DOXYGEN_TRUE@@HWLOC_BUILD_README_TRUE@ csh "$(top_srcdir)/config/distscript.csh" "$(top_srcdir)" "$(distdir)" "$(HWLOC_VERSION)" "$(HWLOC_SVN_R)"
|
||||
|
||||
#
|
||||
# Build the top-level README file
|
||||
#
|
||||
|
||||
@HWLOC_BUILD_STANDALONE_TRUE@.PHONY: doc readme
|
||||
@HWLOC_BUILD_STANDALONE_TRUE@doc readme:
|
||||
@HWLOC_BUILD_STANDALONE_TRUE@ $(MAKE) -C doc readme
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
137
opal/mca/paffinity/hwloc/hwloc/NEWS
Обычный файл
@ -0,0 +1,137 @@
|
||||
Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
||||
Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
||||
|
||||
$HEADER$
|
||||
|
||||
===========================================================================
|
||||
|
||||
This file contains the main features as well as overviews of specific
|
||||
bug fixes (and other actions) for each version of hwloc since version
|
||||
0.9 (as initially released as "libtopology", then re-branded to "hwloc"
|
||||
in v0.9.1).
|
||||
|
||||
Version 1.0.0
|
||||
-------------
|
||||
|
||||
* The ABI of the library has changed.
|
||||
* Backend updates
|
||||
+ Add FreeBSD support.
|
||||
+ Add x86 cpuid based backend.
|
||||
+ Add Linux cgroup support to the Linux cpuset code.
|
||||
+ Support binding of entire multithreaded process on Linux.
|
||||
+ Cleanup XML export/import.
|
||||
* Objects
|
||||
+ HWLOC_OBJ_PROC is renamed into HWLOC_OBJ_PU for "Processing Unit",
|
||||
its stringified type name is now "PU".
|
||||
+ Use new HWLOC_OBJ_GROUP objects instead of MISC when grouping
|
||||
objects according to NUMA distances or arbitrary OS aggregation.
|
||||
+ Rework memory attributes.
|
||||
+ Add different cpusets in each object to specify processors that
|
||||
are offline, unavailable, ...
|
||||
+ Cleanup the storage of object names and DMI infos.
|
||||
* Features
|
||||
+ Add support for looking up specific PID topology information.
|
||||
+ Add hwloc_topology_export_xml() to export the topology in a XML file.
|
||||
+ Add hwloc_topology_get_support() to retrieve the supported features
|
||||
for the current topology context.
|
||||
+ Support non-SYSTEM object as the root of the tree, use MACHINE in
|
||||
most common cases.
|
||||
+ Add hwloc_get_*cpubind() routines to retrieve the current binding
|
||||
of processes and threads.
|
||||
* API
|
||||
+ Add HWLOC_API_VERSION to help detect the currently used API version.
|
||||
+ Add missing ending "e" to *compare* functions.
|
||||
+ Add several routines to emulate PLPA functions.
|
||||
+ Rename and rework the cpuset and/or/xor/not/clear operators to output
|
||||
their result in a dedicated argument instead of modifying one input.
|
||||
+ Deprecate hwloc_obj_snprintf() in favor of hwloc_obj_type/attr_snprintf().
|
||||
+ Clarify the use of parent and ancestor in the API, do not use father.
|
||||
+ Replace hwloc_get_system_obj() with hwloc_get_root_obj().
|
||||
+ Return -1 instead of HWLOC_OBJ_TYPE_MAX in the API since the latter
|
||||
isn't public.
|
||||
+ Relax constraints in hwloc_obj_type_of_string().
|
||||
+ Improve displaying of memory sizes.
|
||||
+ Add 0x prefix to cpuset strings.
|
||||
* Tools
|
||||
+ lstopo now displays logical indexes by default, use --physical to
|
||||
revert back to OS/physical indexes.
|
||||
+ Add colors in the lstopo graphical outputs to distinguish between online,
|
||||
offline, reserved, ... objects.
|
||||
+ Extend lstopo to show cpusets, filter objects by type, ...
|
||||
+ Renamed hwloc-mask into hwloc-calc which supports many new options.
|
||||
* Documentation
|
||||
+ Add a hwloc(7) manpage containing general information.
|
||||
+ Add documentation about how to switch from PLPA to hwloc.
|
||||
+ Cleanup the distributed documentation files.
|
||||
* Miscellaneous
|
||||
+ Many compilers warning fixes.
|
||||
+ Cleanup the ABI by using the visibility attribute.
|
||||
+ Add project embedding support.
|
||||
|
||||
|
||||
Version 0.9.4 (unreleased)
|
||||
--------------------------
|
||||
|
||||
* Fix reseting colors to normal in lstopo -.txt output.
|
||||
* Fix Linux pthread_t binding error report.
|
||||
|
||||
|
||||
Version 0.9.3
|
||||
-------------
|
||||
|
||||
* Fix autogen.sh to work with Autoconf 2.63.
|
||||
* Fix various crashes in particular conditions:
|
||||
- xml files with root attributes
|
||||
- offline CPUs
|
||||
- partial sysfs support
|
||||
- unparseable /proc/cpuinfo
|
||||
- ignoring NUMA level while Misc level have been generated
|
||||
* Tweak documentation a bit
|
||||
* Do not require the pthread library for binding the current thread on Linux
|
||||
* Do not erroneously consider the sched_setaffinity prototype is the old version
|
||||
when there is actually none.
|
||||
* Fix _syscall3 compilation on archs for which we do not have the
|
||||
sched_setaffinity system call number.
|
||||
* Fix AIX binding.
|
||||
* Fix libraries dependencies: now only lstopo depends on libtermcap, fix
|
||||
binutils-gold link
|
||||
* Have make check always build and run hwloc-hello.c
|
||||
* Do not limit size of a cpuset.
|
||||
|
||||
|
||||
Version 0.9.2
|
||||
-------------
|
||||
|
||||
* Trivial documentation changes.
|
||||
|
||||
|
||||
Version 0.9.1
|
||||
-------------
|
||||
|
||||
* Re-branded to "hwloc" and moved to the Open MPI project, relicensed under the
|
||||
BSD license.
|
||||
* The prefix of all functions and tools is now hwloc, and some public
|
||||
functions were also renamed for real.
|
||||
* Group NUMA nodes into Misc objects according to their physical distance
|
||||
that may be reported by the OS/BIOS.
|
||||
May be ignored by setting HWLOC_IGNORE_DISTANCES=1 in the environment.
|
||||
* Ignore offline CPUs on Solaris.
|
||||
* Improved binding support on AIX.
|
||||
* Add HP-UX support.
|
||||
* CPU sets are now allocated/freed dynamically.
|
||||
* Add command line options to tune the lstopo graphic output, add
|
||||
semi-graphical text output
|
||||
* Extend topobind to support multiple cpusets or objects on the command
|
||||
line as topomask does.
|
||||
* Add an Infiniband-specific helper hwloc/openfabrics-verbs.h to retrieve
|
||||
the physical location of IB devices.
|
||||
|
||||
|
||||
Version 0.9 (libtopology)
|
||||
-------------------------
|
||||
|
||||
* First release.
|
425
opal/mca/paffinity/hwloc/hwloc/README
Обычный файл
@ -0,0 +1,425 @@
|
||||
Introduction
|
||||
|
||||
hwloc provides command line tools and a C API to obtain the
|
||||
hierarchical map of key computing elements, such as: NUMA memory nodes,
|
||||
shared caches, processor sockets, processor cores, and processing units
|
||||
(logical processors or "threads"). hwloc also gathers various
|
||||
attributes such as cache and memory information, and is portable across
|
||||
a variety of different operating systems and platforms.
|
||||
|
||||
hwloc primarily aims at helping high-performance computing (HPC)
|
||||
applications, but is also applicable to any project seeking to exploit
|
||||
code and/or data locality on modern computing platforms.
|
||||
|
||||
Note that the hwloc project represents the merger of the libtopology
|
||||
project from INRIA and the Portable Linux Processor Affinity (PLPA)
|
||||
sub-project from Open MPI. Both of these prior projects are now
|
||||
deprecated. The first hwloc release is essentially a "re-branding" of
|
||||
the libtopology code base, but with both a few genuinely new features
|
||||
and a few PLPA-like features added in. More new features and more
|
||||
PLPA-like features will be added to hwloc over time. See Switching from
|
||||
PLPA to hwloc for more details about converting your application from
|
||||
PLPA to hwloc.
|
||||
|
||||
hwloc supports the following operating systems:
|
||||
* Linux (including old kernels not having sysfs topology information,
|
||||
with knowledge of cpusets, offline cpus, ScaleMP vSMP, and
|
||||
Kerrighed support)
|
||||
* Solaris
|
||||
* AIX
|
||||
* Darwin / OS X
|
||||
* FreeBSD and its variants, such as kFreeBSD/GNU
|
||||
* OSF/1 (a.k.a., Tru64)
|
||||
* HP-UX
|
||||
* Microsoft Windows
|
||||
|
||||
hwloc only reports the number of processors on unsupported operating
|
||||
systems; no topology information is available.
|
||||
|
||||
For development and debugging purposes, hwloc also offers the ability
|
||||
to work on "fake" topologies:
|
||||
* Symmetrical tree of resources generated from a list of level
|
||||
arities
|
||||
* Remote machine simulation through the gathering of Linux sysfs
|
||||
topology files
|
||||
|
||||
hwloc can display the topology in a human-readable format, either in
|
||||
graphical mode (X11), or by exporting in one of several different
|
||||
formats, including: plain text, PDF, PNG, and FIG (see Examples below).
|
||||
Note that some of the export formats require additional support
|
||||
libraries.
|
||||
|
||||
hwloc offers a programming interface for manipulating topologies and
|
||||
objects. It also brings a powerful CPU bitmap API that is used to
|
||||
describe topology objects location on physical/logical processors. See
|
||||
the Programming interface below. It may also be used to binding
|
||||
applications onto certain cores or memory nodes. Several utility
|
||||
programs are also provided to ease command-line manipulation of
|
||||
topology objects, binding of processes, and so on.
|
||||
|
||||
Installation
|
||||
|
||||
hwloc (http://www.open-mpi.org/projects/hwloc/) is available under the
|
||||
BSD license. It is hosted as a sub-project of the overall Open MPI
|
||||
project (http://www.open-mpi.org/). Note that hwloc does not require
|
||||
any functionality from Open MPI -- it is a wholly separate (and much
|
||||
smaller!) project and code base. It just happens to be hosted as part
|
||||
of the overall Open MPI project.
|
||||
|
||||
Nightly development snapshots are available on the web site.
|
||||
Additionally, the code can be directly checked out of Subversion:
|
||||
shell$ svn checkout http://svn.open-mpi.org/svn/hwloc/trunk hwloc-trunk
|
||||
shell$ cd hwloc-trunk
|
||||
shell$ ./autogen.sh
|
||||
|
||||
Note that GNU Autoconf >=2.63, Automake >=1.10 and Libtool >=2.2.6 are
|
||||
required when building from a Subversion checkout.
|
||||
|
||||
Installation by itself is the fairly common GNU-based process:
|
||||
shell$ ./configure --prefix=...
|
||||
shell$ make
|
||||
shell$ make install
|
||||
|
||||
The hwloc command-line tool "lstopo" produces human-readable topology
|
||||
maps, as mentioned above. It can also export maps to the "fig" file
|
||||
format. Support for PDF, Postscript, and PNG exporting is provided if
|
||||
the "Cairo" development package can be found when hwloc is configured
|
||||
and build. Similarly, lstopo's XML support requires the libxml2
|
||||
development package.
|
||||
|
||||
Examples
|
||||
|
||||
On a 4-socket 2-core machine with hyperthreading, the lstopo tool may
|
||||
show the following outputs:
|
||||
|
||||
dudley.png
|
||||
|
||||
Machine (16GB)
|
||||
Socket #0 + L3 #0 (4096KB)
|
||||
L2 #0 (1024KB) + L1 #0 (16KB) + Core #0
|
||||
PU #0 (phys=0)
|
||||
PU #1 (phys=8)
|
||||
L2 #1 (1024KB) + L1 #1 (16KB) + Core #1
|
||||
PU #2 (phys=4)
|
||||
PU #3 (phys=12)
|
||||
Socket #1 + L3 #1 (4096KB)
|
||||
L2 #2 (1024KB) + L1 #2 (16KB) + Core #2
|
||||
PU #4 (phys=1)
|
||||
PU #5 (phys=9)
|
||||
L2 #3 (1024KB) + L1 #3 (16KB) + Core #3
|
||||
PU #6 (phys=5)
|
||||
PU #7 (phys=13)
|
||||
Socket #2 + L3 #2 (4096KB)
|
||||
L2 #4 (1024KB) + L1 #4 (16KB) + Core #4
|
||||
PU #8 (phys=2)
|
||||
PU #9 (phys=10)
|
||||
L2 #5 (1024KB) + L1 #5 (16KB) + Core #5
|
||||
PU #10 (phys=6)
|
||||
PU #11 (phys=14)
|
||||
Socket #3 + L3 #3 (4096KB)
|
||||
L2 #6 (1024KB) + L1 #6 (16KB) + Core #6
|
||||
PU #12 (phys=3)
|
||||
PU #13 (phys=11)
|
||||
L2 #7 (1024KB) + L1 #7 (16KB) + Core #7
|
||||
PU #14 (phys=7)
|
||||
PU #15 (phys=15)
|
||||
|
||||
On a 4-socket 2-core Opteron NUMA machine, the lstopo tool may show the
|
||||
following outputs:
|
||||
|
||||
hagrid.png
|
||||
|
||||
Machine (64GB)
|
||||
NUMANode #0 (phys=0 8190MB) + Socket #0
|
||||
L2 #0 (1024KB) + L1 #0 (64KB) + Core #0 + PU #0 (phys=0)
|
||||
L2 #1 (1024KB) + L1 #1 (64KB) + Core #1 + PU #1 (phys=1)
|
||||
NUMANode #1 (phys=1 8192MB) + Socket #1
|
||||
L2 #2 (1024KB) + L1 #2 (64KB) + Core #2 + PU #2 (phys=2)
|
||||
L2 #3 (1024KB) + L1 #3 (64KB) + Core #3 + PU #3 (phys=3)
|
||||
NUMANode #2 (phys=2 8192MB) + Socket #2
|
||||
L2 #4 (1024KB) + L1 #4 (64KB) + Core #4 + PU #4 (phys=4)
|
||||
L2 #5 (1024KB) + L1 #5 (64KB) + Core #5 + PU #5 (phys=5)
|
||||
NUMANode #3 (phys=3 8192MB) + Socket #3
|
||||
L2 #6 (1024KB) + L1 #6 (64KB) + Core #6 + PU #6 (phys=6)
|
||||
L2 #7 (1024KB) + L1 #7 (64KB) + Core #7 + PU #7 (phys=7)
|
||||
NUMANode #4 (phys=4 8192MB) + Socket #4
|
||||
L2 #8 (1024KB) + L1 #8 (64KB) + Core #8 + PU #8 (phys=8)
|
||||
L2 #9 (1024KB) + L1 #9 (64KB) + Core #9 + PU #9 (phys=9)
|
||||
NUMANode #5 (phys=5 8192MB) + Socket #5
|
||||
L2 #10 (1024KB) + L1 #10 (64KB) + Core #10 + PU #10 (phys=10)
|
||||
L2 #11 (1024KB) + L1 #11 (64KB) + Core #11 + PU #11 (phys=11)
|
||||
NUMANode #6 (phys=6 8192MB) + Socket #6
|
||||
L2 #12 (1024KB) + L1 #12 (64KB) + Core #12 + PU #12 (phys=12)
|
||||
L2 #13 (1024KB) + L1 #13 (64KB) + Core #13 + PU #13 (phys=13)
|
||||
NUMANode #7 (phys=7 8192MB) + Socket #7
|
||||
L2 #14 (1024KB) + L1 #14 (64KB) + Core #14 + PU #14 (phys=14)
|
||||
L2 #15 (1024KB) + L1 #15 (64KB) + Core #15 + PU #15 (phys=15)
|
||||
|
||||
On a 2-socket quad-core Xeon (pre-Nehalem, with 2 dual-core dies into
|
||||
each socket):
|
||||
|
||||
emmett.png
|
||||
|
||||
Machine (16GB)
|
||||
Socket #0
|
||||
L2 #0 (4096KB)
|
||||
L1 #0 (32KB) + Core #0 + PU #0 (phys=0)
|
||||
L1 #1 (32KB) + Core #1 + PU #1 (phys=4)
|
||||
L2 #1 (4096KB)
|
||||
L1 #2 (32KB) + Core #2 + PU #2 (phys=2)
|
||||
L1 #3 (32KB) + Core #3 + PU #3 (phys=6)
|
||||
Socket #1
|
||||
L2 #2 (4096KB)
|
||||
L1 #4 (32KB) + Core #4 + PU #4 (phys=1)
|
||||
L1 #5 (32KB) + Core #5 + PU #5 (phys=5)
|
||||
L2 #3 (4096KB)
|
||||
L1 #6 (32KB) + Core #6 + PU #6 (phys=3)
|
||||
L1 #7 (32KB) + Core #7 + PU #7 (phys=7)
|
||||
|
||||
Programming interface
|
||||
|
||||
The basic interface is available in hwloc.h. It mostly offers low-level
|
||||
routines for advanced programmers that want to manually manipulate
|
||||
objects and follow links between them. Developers should look at
|
||||
hwloc/helper.h, which provides good higher-level topology traversal
|
||||
examples.
|
||||
|
||||
Each object contains a cpuset describing the list of processing units
|
||||
that it contains. These cpusets may be used for Binding. hwloc offers
|
||||
an extensive cpuset manipulation interface in hwloc/cpuset.h.
|
||||
|
||||
Moreover, hwloc also comes with additional helpers for interoperability
|
||||
with several commonly used environments. For Linux, some specific
|
||||
helpers are available in hwloc/linux.h, and hwloc/linux-libnuma.h if
|
||||
using libnuma. On glibc-based systems, additional helpers are available
|
||||
in hwloc/glibc-sched.h. For Linux systems with the OpenFabrics verbs
|
||||
library, some dedicated helpers are provided in
|
||||
hwloc/openfabrics-verbs.h (this helper file is not yet useful on
|
||||
non-Linux systems with the OpenFabrics verbs library).
|
||||
|
||||
To precisely define the vocabulary used by hwloc, a Terms and
|
||||
Definitions section is available and should probably be read first.
|
||||
|
||||
Further documentation is available in a full set of HTML pages, man
|
||||
pages, and self-contained PDF files (formatted for both both US letter
|
||||
and A4 formats) in the source tarball in doc/doxygen-doc/. If you are
|
||||
building from a Subversion checkout, you will need to have Doxygen and
|
||||
pdflatex installed -- the documentation will be built during the normal
|
||||
"make" process. The documentation is installed during "make install" to
|
||||
$prefix/share/doc/hwloc/ and your systems default man page tree (under
|
||||
$prefix, of course).
|
||||
|
||||
The following section presents an example of API usage.
|
||||
|
||||
API example
|
||||
|
||||
The following small C example (named ``hwloc-hello.c'') prints the
|
||||
topology of the machine and bring the process to the first logical
|
||||
processor of the second core of the machine.
|
||||
/* Example hwloc API program.
|
||||
*
|
||||
* Copyright й 2009 INRIA, Universitщ Bordeaux 1
|
||||
* Copyright й 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
*
|
||||
* hwloc-hello.c
|
||||
*/
|
||||
|
||||
#include <hwloc.h>
|
||||
|
||||
static void print_children(hwloc_topology_t topology, hwloc_obj_t obj,
|
||||
int depth)
|
||||
{
|
||||
char string[128];
|
||||
unsigned i;
|
||||
|
||||
hwloc_obj_snprintf(string, sizeof(string), topology, obj, "#", 0);
|
||||
printf("%*s%s\n", 2*depth, "", string);
|
||||
for (i = 0; i < obj->arity; i++) {
|
||||
print_children(topology, obj->children[i], depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int depth;
|
||||
unsigned i;
|
||||
unsigned long size;
|
||||
int levels;
|
||||
char string[128];
|
||||
int topodepth;
|
||||
hwloc_topology_t topology;
|
||||
hwloc_cpuset_t cpuset;
|
||||
hwloc_obj_t obj;
|
||||
|
||||
/* Allocate and initialize topology object. */
|
||||
hwloc_topology_init(&topology);
|
||||
|
||||
/* ... Optionally, put detection configuration here to ignore
|
||||
some objects types, define a synthetic topology, etc....
|
||||
|
||||
The default is to detect all the objects of the machine that
|
||||
the caller is allowed to access. See Configure Topology
|
||||
Detection. */
|
||||
|
||||
/* Perform the topology detection. */
|
||||
hwloc_topology_load(topology);
|
||||
|
||||
/* Optionally, get some additional topology information
|
||||
in case we need the topology depth later. */
|
||||
topodepth = hwloc_topology_get_depth(topology);
|
||||
|
||||
/*****************************************************************
|
||||
* First example:
|
||||
* Walk the topology with an array style, from level 0 (always
|
||||
* the system level) to the lowest level (always the proc level).
|
||||
*****************************************************************/
|
||||
for (depth = 0; depth < topodepth; depth++) {
|
||||
printf("*** Objects at level %d\n", depth);
|
||||
for (i = 0; i < hwloc_get_nbobjs_by_depth(topology, depth);
|
||||
i++) {
|
||||
hwloc_obj_snprintf(string, sizeof(string), topology,
|
||||
hwloc_get_obj_by_depth(topology, depth, i),
|
||||
"#", 0);
|
||||
printf("Index %u: %s\n", i, string);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
* Second example:
|
||||
* Walk the topology with a tree style.
|
||||
*****************************************************************/
|
||||
printf("*** Printing overall tree\n");
|
||||
print_children(topology, hwloc_get_root_obj(topology), 0);
|
||||
|
||||
/*****************************************************************
|
||||
* Third example:
|
||||
* Print the number of sockets.
|
||||
*****************************************************************/
|
||||
depth = hwloc_get_type_depth(topology, HWLOC_OBJ_SOCKET);
|
||||
if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
|
||||
printf("*** The number of sockets is unknown\n");
|
||||
} else {
|
||||
printf("*** %u socket(s)\n",
|
||||
hwloc_get_nbobjs_by_depth(topology, depth));
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
* Fourth example:
|
||||
* Compute the amount of cache that the first logical processor
|
||||
* has above it.
|
||||
*****************************************************************/
|
||||
levels = 0;
|
||||
size = 0;
|
||||
for (obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, 0);
|
||||
obj;
|
||||
obj = obj->parent)
|
||||
if (obj->type == HWLOC_OBJ_CACHE) {
|
||||
levels++;
|
||||
size += obj->attr->cache.size;
|
||||
}
|
||||
printf("*** Logical processor 0 has %u caches totaling %luKB\n",
|
||||
levels, size / 1024);
|
||||
|
||||
/*****************************************************************
|
||||
* Fifth example:
|
||||
* Bind to only one thread of the last core of the machine.
|
||||
*
|
||||
* First find out where cores are, or else smaller sets of CPUs if
|
||||
* the OS doesn't have the notion of a "core".
|
||||
*****************************************************************/
|
||||
depth = hwloc_get_type_or_below_depth(topology, HWLOC_OBJ_CORE);
|
||||
|
||||
/* Get last core. */
|
||||
obj = hwloc_get_obj_by_depth(topology, depth,
|
||||
hwloc_get_nbobjs_by_depth(topology, depth) - 1);
|
||||
if (obj) {
|
||||
/* Get a copy of its cpuset that we may modify. */
|
||||
cpuset = hwloc_cpuset_dup(obj->cpuset);
|
||||
|
||||
/* Get only one logical processor (in case the core is
|
||||
SMT/hyperthreaded). */
|
||||
hwloc_cpuset_singlify(cpuset);
|
||||
|
||||
/* And try to bind ourself there. */
|
||||
if (hwloc_set_cpubind(topology, cpuset, 0)) {
|
||||
char *str;
|
||||
hwloc_cpuset_asprintf(&str, obj->cpuset);
|
||||
printf("Couldn't bind to cpuset %s\n", str);
|
||||
free(str);
|
||||
}
|
||||
|
||||
/* Free our cpuset copy */
|
||||
hwloc_cpuset_free(cpuset);
|
||||
}
|
||||
|
||||
/* Destroy topology object. */
|
||||
hwloc_topology_destroy(topology);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
hwloc provides a pkg-config executable to obtain relevant compiler and
|
||||
linker flags. For example, it can be used thusly to compile
|
||||
applications that utilize the hwloc library (assuming GNU Make):
|
||||
CFLAGS += $(pkg-config --cflags hwloc)
|
||||
LDLIBS += $(pkg-config --libs hwloc)
|
||||
cc hwloc-hello.c $(CFLAGS) -o hwloc-hello $(LDLIBS)
|
||||
|
||||
On a machine with 4GB of RAM and 2 processor sockets -- each socket of
|
||||
which has two processing cores -- the output from running hwloc-hello
|
||||
could be something like the following:
|
||||
shell$ ./hwloc-hello
|
||||
*** Objects at level 0
|
||||
Index 0: Machine(3938MB)
|
||||
*** Objects at level 1
|
||||
Index 0: Socket#0
|
||||
Index 1: Socket#1
|
||||
*** Objects at level 2
|
||||
Index 0: Core#0
|
||||
Index 1: Core#1
|
||||
Index 2: Core#3
|
||||
Index 3: Core#2
|
||||
*** Objects at level 3
|
||||
Index 0: PU#0
|
||||
Index 1: PU#1
|
||||
Index 2: PU#2
|
||||
Index 3: PU#3
|
||||
*** Printing overall tree
|
||||
Machine(3938MB)
|
||||
Socket#0
|
||||
Core#0
|
||||
PU#0
|
||||
Core#1
|
||||
PU#1
|
||||
Socket#1
|
||||
Core#3
|
||||
PU#2
|
||||
Core#2
|
||||
PU#3
|
||||
*** 2 socket(s)
|
||||
shell$
|
||||
|
||||
Questions and bugs
|
||||
|
||||
Questions should be sent to the devel mailing list
|
||||
(http://www.open-mpi.org/community/lists/hwloc.php). Bug reports should
|
||||
be reported in the tracker (https://svn.open-mpi.org/trac/hwloc/).
|
||||
|
||||
History / credits
|
||||
|
||||
hwloc is the evolution and merger of the libtopology
|
||||
(http://runtime.bordeaux.inria.fr/libtopology/) project and the
|
||||
Portable Linux Processor Affinity (PLPA)
|
||||
(http://www.open-mpi.org/projects/plpa/) project. Because of functional
|
||||
and ideological overlap, these two code bases and ideas were merged and
|
||||
released under the name "hwloc" as an Open MPI sub-project.
|
||||
|
||||
libtopology was initially developed by the INRIA Runtime Team-Project
|
||||
(http://runtime.bordeaux.inria.fr/) (headed by Raymond Namyst
|
||||
(http://dept-info.labri.fr/~namyst/). PLPA was initially developed by
|
||||
the Open MPI development team as a sub-project. Both are now deprecated
|
||||
in favor of hwloc, which is distributed as an Open MPI sub-project.
|
||||
__________________________________________________________________
|
||||
|
||||
|
||||
Generated by doxygen 1.6.2
|
53
opal/mca/paffinity/hwloc/hwloc/VERSION
Обычный файл
@ -0,0 +1,53 @@
|
||||
# This is the VERSION file for hwloc, describing the precise version
|
||||
# of hwloc in this distribution. The various components of the version
|
||||
# number below are combined to form a single version number string.
|
||||
|
||||
# major, minor, and release are generally combined in the form
|
||||
# <major>.<minor>.<release>. If release is zero, then it is omitted.
|
||||
|
||||
major=1
|
||||
minor=0
|
||||
release=0
|
||||
|
||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
||||
# it will be appended to the version number. It does not have to be
|
||||
# numeric. Common examples include a1 (alpha release 1), b1 (beta
|
||||
# release 1), sc2005 (Super Computing 2005 release). The only
|
||||
# requirement is that it must be entirely printable ASCII characters
|
||||
# and have no white space.
|
||||
|
||||
greek=rc1
|
||||
|
||||
# If want_svn=1, then the SVN r number will be included in the overall
|
||||
# hwloc version number in some form.
|
||||
|
||||
want_svn=0
|
||||
|
||||
# If svn_r=-1, then the SVN r numbere will be obtained dynamically at
|
||||
# run time, either 1) via the "svnversion" command (if this is a
|
||||
# Subversion checkout) in the form "r<svn_r>", or b) with the date (if
|
||||
# this is not a Subversion checkout, and the svnversion command cannot
|
||||
# be used) in the form of "svn<date>". Alternatively, if svn_r is not
|
||||
# -1, the value of svn_r will be directly appended to the version
|
||||
# string. This happens during "make dist", for example: if the
|
||||
# distribution tarball is being made from an SVN checkout, the value
|
||||
# of svn_r in this file is replaced with the output of "svnversion".
|
||||
|
||||
svn_r=r1955
|
||||
|
||||
# The date when this release was created
|
||||
|
||||
date="Apr 17, 2010"
|
||||
|
||||
# The shared library version of hwloc's public library. This version
|
||||
# is maintained in accordance with the "Library Interface Versions"
|
||||
# chapter from the GNU Libtool documentation. Notes:
|
||||
|
||||
# 1. Since version numbers are associated with *releases*, the version
|
||||
# number maintained on the hwloc SVN trunk (and developer branches) is
|
||||
# always 0:0:0.
|
||||
|
||||
# 2. Version numbers are described in the Libtool current:revision:age
|
||||
# format.
|
||||
|
||||
libhwloc_so_version=0:0:0
|
1052
opal/mca/paffinity/hwloc/hwloc/aclocal.m4
поставляемый
Обычный файл
143
opal/mca/paffinity/hwloc/hwloc/config/compile
Исполняемый файл
@ -0,0 +1,143 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2009-10-06.20; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand `-c -o'.
|
||||
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file `INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
eat=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as `compile cc -o foo foo.c'.
|
||||
# So we strip `-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no `-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# `.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
1502
opal/mca/paffinity/hwloc/hwloc/config/config.guess
поставляемый
Исполняемый файл
1729
opal/mca/paffinity/hwloc/hwloc/config/config.sub
поставляемый
Исполняемый файл
630
opal/mca/paffinity/hwloc/hwloc/config/depcomp
Исполняемый файл
@ -0,0 +1,630 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
|
||||
# Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||
as side-effects.
|
||||
|
||||
Environment variables:
|
||||
depmode Dependency tracking mode.
|
||||
source Source file read by `PROGRAMS ARGS'.
|
||||
object Object file output by `PROGRAMS ARGS'.
|
||||
DEPDIR directory where to store dependencies.
|
||||
depfile Dependency file to output.
|
||||
tmpdepfile Temporary file to use when outputing dependencies.
|
||||
libtool Whether libtool is used (yes/no).
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "depcomp $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||
depfile=${depfile-`echo "$object" |
|
||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. In older versions, this file always lives in the
|
||||
# current directory. Also, the AIX compiler puts `$object:' at the
|
||||
# start of each line; $object doesn't have directory information.
|
||||
# Version 6 uses the directory in both cases.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -M
|
||||
fi
|
||||
stat=$?
|
||||
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
icc)
|
||||
# Intel's C compiler understands `-MD -MF file'. However on
|
||||
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
|
||||
# ICC 7.0 will fill foo.d with something like
|
||||
# foo.o: sub/foo.c
|
||||
# foo.o: sub/foo.h
|
||||
# which is wrong. We want:
|
||||
# sub/foo.o: sub/foo.c
|
||||
# sub/foo.o: sub/foo.h
|
||||
# sub/foo.c:
|
||||
# sub/foo.h:
|
||||
# ICC 7.1 will output
|
||||
# foo.o: sub/foo.c sub/foo.h
|
||||
# and will wrap long lines using \ :
|
||||
# foo.o: sub/foo.c ... \
|
||||
# sub/foo.h ... \
|
||||
# ...
|
||||
|
||||
"$@" -MD -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
# Each line is of the form `foo.o: dependent.h',
|
||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
# correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
|
||||
sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mechanism is used in libtool 1.4 series to
|
||||
# handle both shared and static libraries in a single compilation.
|
||||
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
|
||||
#
|
||||
# With libtool 1.5 this exception was removed, and libtool now
|
||||
# generates 2 separate objects for the 2 libraries. These two
|
||||
# compilations output dependencies in $dir.libs/$base.o.d and
|
||||
# in $dir$base.o.d. We have to check for both files, because
|
||||
# one of the two compilations can be disabled. We should prefer
|
||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||
# the former would cause a distcleancheck panic.
|
||||
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
|
||||
tmpdepfile2=$dir$base.o.d # libtool 1.5
|
||||
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
|
||||
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1=$dir$base.o.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
tmpdepfile3=$dir$base.d
|
||||
tmpdepfile4=$dir$base.d
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
# Require at least two characters before searching for `:'
|
||||
# in the target name. This is to cope with DOS-style filenames:
|
||||
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
|
||||
"$@" $dashmflag |
|
||||
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
239
opal/mca/paffinity/hwloc/hwloc/config/distscript.csh
Исполняемый файл
@ -0,0 +1,239 @@
|
||||
#! /bin/csh -f
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
set builddir="`pwd`"
|
||||
|
||||
set srcdir="$1"
|
||||
cd "$srcdir"
|
||||
set srcdir=`pwd`
|
||||
cd "$builddir"
|
||||
|
||||
set distdir="$builddir/$2"
|
||||
set HWLOC_VERSION="$3"
|
||||
set HWLOC_SVN_VERSION="$4"
|
||||
|
||||
if ("$distdir" == "") then
|
||||
echo "Must supply relative distdir as argv[2] -- aborting"
|
||||
exit 1
|
||||
elif ("$HWLOC_VERSION" == "") then
|
||||
echo "Must supply version as argv[1] -- aborting"
|
||||
exit 1
|
||||
endif
|
||||
|
||||
#========================================================================
|
||||
|
||||
if ("$srcdir" != "$builddir") then
|
||||
set vpath=1
|
||||
set vpath_msg=yes
|
||||
else
|
||||
set vpath=0
|
||||
set vpath_msg=no
|
||||
endif
|
||||
|
||||
# We can catch some hard (but possible) to do mistakes by looking at
|
||||
# our tree's revision number, but only if we are in the source tree.
|
||||
# Otherwise, use what configure told us, at the cost of allowing one
|
||||
# or two corner cases in (but otherwise VPATH builds won't work).
|
||||
set svn_r=$HWLOC_SVN_VERSION
|
||||
if (-d .svn) then
|
||||
set svn_r="r`svnversion .`"
|
||||
endif
|
||||
|
||||
set start=`date`
|
||||
cat <<EOF
|
||||
|
||||
Creating hwloc distribution
|
||||
In directory: `pwd`
|
||||
Srcdir: $srcdir
|
||||
Builddir: $builddir
|
||||
VPATH: $vpath_msg
|
||||
Version: $HWLOC_VERSION
|
||||
Started: $start
|
||||
|
||||
EOF
|
||||
|
||||
umask 022
|
||||
|
||||
if (! -d "$distdir") then
|
||||
echo "*** ERROR: dist dir does not exist"
|
||||
echo "*** ERROR: $distdir"
|
||||
exit 1
|
||||
endif
|
||||
|
||||
#
|
||||
# See if we need to update the version file with the current SVN
|
||||
# revision number. Do this *before* entering the distribution tree to
|
||||
# solve a whole host of problems with VPATH (since srcdir may be
|
||||
# relative or absolute)
|
||||
#
|
||||
set cur_svn_r="`grep '^svn_r' ${distdir}/VERSION | cut -d= -f2`"
|
||||
if ("$cur_svn_r" == "-1") then
|
||||
sed -e 's/^svn_r=.*/svn_r='$svn_r'/' "${distdir}/VERSION" > "${distdir}/version.new"
|
||||
cp "${distdir}/version.new" "${distdir}/VERSION"
|
||||
rm -f "${distdir}/version.new"
|
||||
# need to reset the timestamp to not annoy AM dependencies
|
||||
touch -r "${srcdir}/VERSION" "${distdir}/VERSION"
|
||||
echo "*** Updated VERSION file with SVN r number"
|
||||
else
|
||||
echo "*** Did NOT update VERSION file with SVN r number"
|
||||
endif
|
||||
|
||||
#
|
||||
# VPATH builds only work if the srcdir has valid docs already built.
|
||||
# If we're VPATH and the srcdir doesn't have valid docs, then fail.
|
||||
#
|
||||
|
||||
if ($vpath == 1 && ! -d $srcdir/doc/doxygen-doc) then
|
||||
echo "*** This is a VPATH 'make dist', but the srcdir does not already"
|
||||
echo "*** have a doxygen-doc tree built. hwloc's config/distscript.csh"
|
||||
echo "*** the docs to be built in the srcdir before executing 'make"
|
||||
echo "*** dist' in a VPATH build."
|
||||
exit 1
|
||||
endif
|
||||
|
||||
#
|
||||
# If we're not VPATH, force the generation of new doxygen documentation
|
||||
#
|
||||
|
||||
if ($vpath == 0) then
|
||||
# Not VPATH
|
||||
echo "*** Making new doxygen documentation (doxygen-doc tree)"
|
||||
echo "*** Directory: srcdir: $srcdir, distdir: $distdir, pwd: `pwd`"
|
||||
cd doc
|
||||
# We're still in the src tree, so kill any previous doxygen-docs
|
||||
# tree and make a new one.
|
||||
chmod -R a=rwx doxygen-doc
|
||||
rm -rf doxygen-doc
|
||||
make
|
||||
if ($status != 0) then
|
||||
echo ERROR: generating doxygen docs failed
|
||||
echo ERROR: cannot continue
|
||||
exit 1
|
||||
endif
|
||||
|
||||
# Make new README file
|
||||
echo "*** Making new README"
|
||||
make readme
|
||||
if ($status != 0) then
|
||||
echo ERROR: generating new README failed
|
||||
echo ERROR: cannot continue
|
||||
exit 1
|
||||
endif
|
||||
else
|
||||
echo "*** This is a VPATH build; assuming that the doxygen docs and REAME"
|
||||
echo "*** are current in the srcdir (i.e., we'll just copy those)"
|
||||
endif
|
||||
|
||||
echo "*** Copying doxygen-doc tree to dist..."
|
||||
echo "*** Directory: srcdir: $srcdir, distdir: $distdir, pwd: `pwd`"
|
||||
chmod -R a=rwx $distdir/doc/doxygen-doc
|
||||
echo rm -rf $distdir/doc/doxygen-doc
|
||||
rm -rf $distdir/doc/doxygen-doc
|
||||
echo cp -rpf $srcdir/doc/doxygen-doc $distdir/doc
|
||||
cp -rpf $srcdir/doc/doxygen-doc $distdir/doc
|
||||
|
||||
echo "*** Copying new README"
|
||||
ls -lf $distdir/README
|
||||
cp -pf $srcdir/README $distdir
|
||||
|
||||
#########################################################
|
||||
# VERY IMPORTANT: Now go into the new distribution tree #
|
||||
#########################################################
|
||||
cd "$distdir"
|
||||
echo "*** Now in distdir: $distdir"
|
||||
|
||||
#
|
||||
# Remove all the latex source files from the distribution tree (the
|
||||
# PDFs are still there; we're just removing the latex source because
|
||||
# some of the filenames get really, really long...).
|
||||
#
|
||||
|
||||
echo "*** Removing latex source from dist tree"
|
||||
rm -rf doc/doxygen-doc/latex
|
||||
|
||||
#
|
||||
# Get the latest config.guess and config.sub from ftp.gnu.org
|
||||
#
|
||||
|
||||
echo "*** Downloading latest config.sub/config.guess from ftp.gnu.org..."
|
||||
cd config
|
||||
set configdir="`pwd`"
|
||||
mkdir tmp.$$
|
||||
cd tmp.$$
|
||||
# Official HTTP git mirrors for config.guess / config.sub
|
||||
wget -t 1 -T 10 -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=master'
|
||||
wget -t 1 -T 10 -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=master'
|
||||
chmod +x config.guess config.sub
|
||||
|
||||
# Recently, ftp.gnu.org has had zero-legnth config.guess / config.sub
|
||||
# files, which causes the automated nightly SVN snapshot tarball to
|
||||
# fail to be made correctly. This is a primitive attempt to fix that.
|
||||
# If we got zero-length files from wget, use a config.guess /
|
||||
# config.sub from a known location that is more recent than what ships
|
||||
# in the current generation of auto* tools. Also check to ensure that
|
||||
# the resulting scripts are runnable (Jan 2009: there are un-runnable
|
||||
# scripts available right now because of some git vulnerability).
|
||||
|
||||
# Before you complain about this too loudly, remember that we're using
|
||||
# unreleased software...
|
||||
|
||||
set happy=0
|
||||
if (! -f config.guess || ! -s config.guess) then
|
||||
echo " - WARNING: Got bad config.guess from ftp.gnu.org (non-existent or empty)"
|
||||
else
|
||||
./config.guess >& /dev/null
|
||||
if ($status != 0) then
|
||||
echo " - WARNING: Got bad config.guess from ftp.gnu.org (not executable)"
|
||||
else
|
||||
if (! -f config.sub || ! -s config.sub) then
|
||||
echo " - WARNING: Got bad config.sub from ftp.gnu.org (non-existent or empty)"
|
||||
else
|
||||
./config.sub `./config.guess` >& /dev/null
|
||||
if ($status != 0) then
|
||||
echo " - WARNING: Got bad config.sub from ftp.gnu.org (not executable)"
|
||||
else
|
||||
echo " - Got good config.guess and config.sub from ftp.gnu.org"
|
||||
chmod +w ../config.sub ../config.guess
|
||||
cp config.sub config.guess ..
|
||||
set happy=1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if ("$happy" == "0") then
|
||||
echo " - WARNING: using included versions for both config.sub and config.guess"
|
||||
endif
|
||||
cd ..
|
||||
rm -rf tmp.$$
|
||||
cd ..
|
||||
|
||||
#
|
||||
# All done
|
||||
#
|
||||
|
||||
cat <<EOF
|
||||
*** hwloc version $HWLOC_VERSION distribution created
|
||||
|
||||
Started: $start
|
||||
Ended: `date`
|
||||
|
||||
EOF
|
||||
|
640
opal/mca/paffinity/hwloc/hwloc/config/hwloc.m4
Обычный файл
@ -0,0 +1,640 @@
|
||||
dnl -*- Autoconf -*-
|
||||
dnl
|
||||
dnl Copyright 2009 INRIA, Université Bordeaux 1
|
||||
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
dnl University Research and Technology
|
||||
dnl Corporation. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright © 2006-2010 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
# Main hwloc m4 macro, to be invoked by the user
|
||||
#
|
||||
# Expects two or three paramters:
|
||||
# 1. Configuration prefix
|
||||
# 2. What to do upon success
|
||||
# 3. What to do upon failure
|
||||
# 4. If non-empty, print the announcement banner
|
||||
#
|
||||
AC_DEFUN([HWLOC_SETUP_CORE],[
|
||||
AC_REQUIRE([AC_CANONICAL_TARGET])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AM_PROG_CC_C_O])
|
||||
|
||||
AS_IF([test "x$4" != "x"],
|
||||
[cat <<EOF
|
||||
|
||||
###
|
||||
### Configuring hwloc core
|
||||
###
|
||||
EOF])
|
||||
|
||||
# We want new Libtool. None of that old stuff. Pfft.
|
||||
LT_PREREQ([2.2.6])
|
||||
|
||||
# If no prefix was defined, set a good value
|
||||
m4_ifval([$1],
|
||||
[m4_define([hwloc_config_prefix],[$1/])],
|
||||
[m4_define([hwloc_config_prefix], [])])
|
||||
|
||||
# Unless previously set to "standalone" mode, default to embedded
|
||||
# mode
|
||||
AS_IF([test "$hwloc_mode" = ""], [hwloc_mode=embedded])
|
||||
AC_MSG_CHECKING([hwloc building mode])
|
||||
AC_MSG_RESULT([$hwloc_mode])
|
||||
|
||||
# Get hwloc's absolute top builddir (which may not be the same as
|
||||
# the real $top_builddir, because we may be building in embedded
|
||||
# mode).
|
||||
HWLOC_startdir=`pwd`
|
||||
if test x"hwloc_config_prefix" != "x" -a ! -d "hwloc_config_prefix"; then
|
||||
mkdir "hwloc_config_prefix"
|
||||
fi
|
||||
if test x"hwloc_config_prefix" != "x"; then
|
||||
cd "hwloc_config_prefix"
|
||||
fi
|
||||
HWLOC_top_builddir=`pwd`
|
||||
AC_SUBST(HWLOC_top_builddir)
|
||||
|
||||
# Get hwloc's absolute top srcdir (which may not be the same as
|
||||
# the real $top_srcdir, because we may be building in embedded
|
||||
# mode). First, go back to the startdir incase the $srcdir is
|
||||
# relative.
|
||||
cd "$HWLOC_startdir"
|
||||
cd "$srcdir"/hwloc_config_prefix
|
||||
HWLOC_top_srcdir="`pwd`"
|
||||
AC_SUBST(HWLOC_top_srcdir)
|
||||
|
||||
# Go back to where we started
|
||||
cd "$HWLOC_startdir"
|
||||
|
||||
AC_MSG_NOTICE([hwloc builddir: $HWLOC_top_builddir])
|
||||
AC_MSG_NOTICE([hwloc srcdir: $HWLOC_top_srcdir])
|
||||
if test "$HWLOC_top_builddir" != "$HWLOC_top_srcdir"; then
|
||||
AC_MSG_NOTICE([Detected VPATH build])
|
||||
fi
|
||||
|
||||
# Debug mode?
|
||||
AC_MSG_CHECKING([if want hwloc maintainer support])
|
||||
hwloc_debug=
|
||||
AS_IF([test "$enable_debug" = "yes"],
|
||||
[hwloc_debug=1
|
||||
hwloc_debug_msg="enabled"])
|
||||
AS_IF([test "$hwloc_debug" = "" -a "$hwloc_mode" = "embedded" -a "$enable_debug" = ""],
|
||||
[hwloc_debug=0
|
||||
hwloc_debug_msg="disabled (embedded mode)"])
|
||||
AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "" -a -d .svn],
|
||||
[hwloc_debug=1
|
||||
hwloc_debug_msg="enabled (SVN checkout default)"])
|
||||
AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "" -a -d .hg],
|
||||
[hwloc_debug=1
|
||||
hwloc_debug_msg="enabled (HG clone default)"])
|
||||
AS_IF([test "$hwloc_debug" = ""],
|
||||
[hwloc_debug=0
|
||||
hwloc_debug_msg="disabled"])
|
||||
# Grr; we use #ifndef for HWLOC_DEBUG! :-(
|
||||
AH_TEMPLATE(HWLOC_DEBUG, [Whether we are in debugging mode or not])
|
||||
AS_IF([test "$hwloc_debug" = "1"], [AC_DEFINE([HWLOC_DEBUG])])
|
||||
AC_MSG_RESULT([$hwloc_debug_msg])
|
||||
|
||||
# We need to set a path for header, etc files depending on whether
|
||||
# we're standalone or embedded. this is taken care of by HWLOC_EMBEDDED.
|
||||
|
||||
AC_MSG_CHECKING([for hwloc directory prefix])
|
||||
AC_MSG_RESULT(m4_ifval([$1], hwloc_config_prefix, [(none)]))
|
||||
|
||||
# Note that private/config.h *MUST* be listed first so that it
|
||||
# becomes the "main" config header file. Any AM_CONFIG_HEADERs
|
||||
# after that (hwloc/config.h) will only have selective #defines
|
||||
# replaced, not the entire file.
|
||||
AM_CONFIG_HEADER(hwloc_config_prefix[include/private/config.h])
|
||||
AM_CONFIG_HEADER(hwloc_config_prefix[include/hwloc/config.h])
|
||||
|
||||
# What prefix are we using?
|
||||
AC_MSG_CHECKING([for hwloc symbol prefix])
|
||||
AS_IF([test "$hwloc_symbol_prefix_value" = ""],
|
||||
[AS_IF([test "$with_hwloc_symbol_prefix" = ""],
|
||||
[hwloc_symbol_prefix_value=hwloc_],
|
||||
[hwloc_symbol_prefix_value=$with_hwloc_symbol_prefix])])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_SYM_PREFIX, [$hwloc_symbol_prefix_value],
|
||||
[The hwloc symbol prefix])
|
||||
# Ensure to [] escape the whole next line so that we can get the
|
||||
# proper tr tokens
|
||||
[hwloc_symbol_prefix_value_caps="`echo $hwloc_symbol_prefix_value | tr '[:lower:]' '[:upper:]'`"]
|
||||
AC_DEFINE_UNQUOTED(HWLOC_SYM_PREFIX_CAPS, [$hwloc_symbol_prefix_value_caps],
|
||||
[The hwloc symbol prefix in all caps])
|
||||
AC_MSG_RESULT([$hwloc_symbol_prefix_value])
|
||||
|
||||
# Give an easy #define to know if we need to transform all the
|
||||
# hwloc names
|
||||
AH_TEMPLATE([HWLOC_SYM_TRANSFORM], [Whether we need to re-define all the hwloc public symbols or not])
|
||||
AS_IF([test "$hwloc_symbol_prefix_value" = "hwloc_"],
|
||||
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [0])],
|
||||
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [1])])
|
||||
|
||||
#
|
||||
# Check OS support
|
||||
#
|
||||
AC_MSG_CHECKING([which OS support to include])
|
||||
case ${target} in
|
||||
*-*-linux*)
|
||||
AC_DEFINE(HWLOC_LINUX_SYS, 1, [Define to 1 on Linux])
|
||||
hwloc_linux=yes
|
||||
AC_MSG_RESULT([Linux])
|
||||
;;
|
||||
*-*-irix*)
|
||||
AC_DEFINE(HWLOC_IRIX_SYS, 1, [Define to 1 on Irix])
|
||||
hwloc_irix=yes
|
||||
AC_MSG_RESULT([IRIX])
|
||||
;;
|
||||
*-*-darwin*)
|
||||
AC_DEFINE(HWLOC_DARWIN_SYS, 1, [Define to 1 on Darwin])
|
||||
hwloc_darwin=yes
|
||||
AC_MSG_RESULT([Darwin])
|
||||
;;
|
||||
*-*-solaris*)
|
||||
AC_DEFINE(HWLOC_SOLARIS_SYS, 1, [Define to 1 on Solaris])
|
||||
hwloc_solaris=yes
|
||||
AC_MSG_RESULT([Solaris])
|
||||
;;
|
||||
*-*-aix*)
|
||||
AC_DEFINE(HWLOC_AIX_SYS, 1, [Define to 1 on AIX])
|
||||
hwloc_aix=yes
|
||||
AC_MSG_RESULT([AIX])
|
||||
;;
|
||||
*-*-osf*)
|
||||
AC_DEFINE(HWLOC_OSF_SYS, 1, [Define to 1 on OSF])
|
||||
hwloc_osf=yes
|
||||
AC_MSG_RESULT([OSF])
|
||||
;;
|
||||
*-*-hpux*)
|
||||
AC_DEFINE(HWLOC_HPUX_SYS, 1, [Define to 1 on HP-UX])
|
||||
hwloc_hpux=yes
|
||||
AC_MSG_RESULT([HP-UX])
|
||||
;;
|
||||
*-*-mingw*|*-*-cygwin*)
|
||||
AC_DEFINE(HWLOC_WIN_SYS, 1, [Define to 1 on WINDOWS])
|
||||
hwloc_windows=yes
|
||||
AC_MSG_RESULT([Windows])
|
||||
;;
|
||||
*-*-*freebsd*)
|
||||
AC_DEFINE(HWLOC_FREEBSD_SYS, 1, [Define to 1 on *FREEBSD])
|
||||
hwloc_freebsd=yes
|
||||
AC_MSG_RESULT([FreeBSD])
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT([Unsupported! ($target)])
|
||||
AC_DEFINE(HWLOC_UNSUPPORTED_SYS, 1, [Define to 1 on unsupported systems])
|
||||
AC_MSG_WARN([***********************************************************])
|
||||
AC_MSG_WARN([*** hwloc does not support this system.])
|
||||
AC_MSG_WARN([*** hwloc will *attempt* to build (but it may not work).])
|
||||
AC_MSG_WARN([*** hwloc's run-time results may be reduced to showing just one processor.])
|
||||
AC_MSG_WARN([*** You have been warned.])
|
||||
AC_MSG_WARN([*** Pausing to give you time to read this message...])
|
||||
AC_MSG_WARN([***********************************************************])
|
||||
sleep 10
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# Check CPU support
|
||||
#
|
||||
AC_MSG_CHECKING([which CPU support to include])
|
||||
case ${target} in
|
||||
i*86-*-*)
|
||||
AC_DEFINE(HWLOC_X86_32_ARCH, 1, [Define to 1 on x86_32])
|
||||
hwloc_x86_32=yes
|
||||
AC_MSG_RESULT([x86_32])
|
||||
;;
|
||||
x86_64-*-*)
|
||||
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
|
||||
hwloc_x86_64=yes
|
||||
AC_MSG_RESULT([x86_64])
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# Define C flags
|
||||
#
|
||||
|
||||
# hwloc uses C99 style, so ensure that we can figure out which
|
||||
# compiler flags will drive this.
|
||||
hwloc_CC_save=$CC
|
||||
hwloc_CFLAGS_save=$CFLAGS
|
||||
AC_PROG_CC_C99
|
||||
hwloc_CC_c99_flags=`echo $CC | sed -e s/^$hwloc_CC_save//`
|
||||
CC=$hwloc_CC_save
|
||||
CFLAGS=$hwloc_CFLAGS_save
|
||||
|
||||
# GCC specifics.
|
||||
if test "x$GCC" = "xyes"; then
|
||||
HWLOC_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef"
|
||||
HWLOC_GCC_CFLAGS="$HWLOC_GCC_CFLAGS -Wpointer-arith -Wcast-align"
|
||||
fi
|
||||
|
||||
# Enample system extensions for O_DIRECTORY, fdopen, fssl, etc.
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
AH_VERBATIM([USE_HPUX_SYSTEM_EXTENSIONS],
|
||||
[/* Enable extensions on HP-UX. */
|
||||
#ifndef _HPUX_SOURCE
|
||||
# undef _HPUX_SOURCE
|
||||
#endif
|
||||
])
|
||||
AC_DEFINE([_HPUX_SOURCE], [1], [Are we building for HP-UX?])
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
|
||||
_HWLOC_CHECK_DIFF_U
|
||||
|
||||
AC_CHECK_SIZEOF([unsigned long])
|
||||
AC_DEFINE_UNQUOTED([HWLOC_SIZEOF_UNSIGNED_LONG], $ac_cv_sizeof_unsigned_long, [The size of `unsigned long', as computed by sizeof])
|
||||
AC_CHECK_SIZEOF([unsigned int])
|
||||
AC_DEFINE_UNQUOTED([HWLOC_SIZEOF_UNSIGNED_INT], $ac_cv_sizeof_unsigned_int, [The size of `unsigned int', as computed by sizeof])
|
||||
|
||||
#
|
||||
# Check for compiler attributes and visibility
|
||||
#
|
||||
_HWLOC_CHECK_ATTRIBUTES
|
||||
_HWLOC_CHECK_VISIBILITY
|
||||
|
||||
#
|
||||
# Now detect support
|
||||
#
|
||||
|
||||
hwloc_strncasecmp=strncmp
|
||||
AC_CHECK_FUNCS([strncasecmp], [
|
||||
_HWLOC_CHECK_DECL([strncasecmp], [
|
||||
hwloc_strncasecmp=strncasecmp
|
||||
])
|
||||
])
|
||||
AC_DEFINE_UNQUOTED(hwloc_strncasecmp, $hwloc_strncasecmp, [Define this to either strncasecmp or strncmp])
|
||||
|
||||
AC_CHECK_TYPES([wchar_t], [
|
||||
AC_CHECK_FUNCS([putwc])
|
||||
], [], [[#include <wchar.h>]])
|
||||
|
||||
AC_CHECK_HEADERS([locale.h], [
|
||||
AC_CHECK_FUNCS([setlocale])
|
||||
])
|
||||
AC_CHECK_HEADERS([langinfo.h], [
|
||||
AC_CHECK_FUNCS([nl_langinfo])
|
||||
])
|
||||
old_LIBS="$LIBS"
|
||||
LIBS=
|
||||
AC_CHECK_HEADERS([curses.h], [
|
||||
AC_CHECK_HEADERS([term.h], [
|
||||
AC_SEARCH_LIBS([tparm], [termcap curses], [
|
||||
AC_SUBST([HWLOC_TERMCAP_LIBS], ["$LIBS"])
|
||||
AC_DEFINE([HWLOC_HAVE_LIBTERMCAP], [1],
|
||||
[Define to 1 if you have a library providing the termcap interface])
|
||||
])
|
||||
], [], [[#include <curses.h>]])
|
||||
])
|
||||
LIBS="$old_LIBS"
|
||||
|
||||
AC_CHECK_TYPES([KAFFINITY,
|
||||
PROCESSOR_CACHE_TYPE,
|
||||
CACHE_DESCRIPTOR,
|
||||
LOGICAL_PROCESSOR_RELATIONSHIP,
|
||||
SYSTEM_LOGICAL_PROCESSOR_INFORMATION,
|
||||
GROUP_AFFINITY,
|
||||
PROCESSOR_RELATIONSHIP,
|
||||
NUMA_NODE_RELATIONSHIP,
|
||||
CACHE_RELATIONSHIP,
|
||||
PROCESSOR_GROUP_INFO,
|
||||
GROUP_RELATIONSHIP,
|
||||
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX],
|
||||
[],[],[[#include <windows.h>]])
|
||||
AC_HAVE_LIBRARY(gdi32)
|
||||
|
||||
AC_CHECK_HEADER([windows.h], [
|
||||
AC_DEFINE([HWLOC_HAVE_WINDOWS_H], [1], [Define to 1 if you have the `windows.h' header.])
|
||||
])
|
||||
|
||||
AC_CHECK_HEADERS([sys/lgrp_user.h], [
|
||||
AC_HAVE_LIBRARY([lgrp])
|
||||
])
|
||||
AC_CHECK_HEADERS([kstat.h], [
|
||||
AC_HAVE_LIBRARY([kstat])
|
||||
])
|
||||
|
||||
AC_CHECK_HEADERS([infiniband/verbs.h], [
|
||||
AC_HAVE_LIBRARY([ibverbs], [hwloc_have_libibverbs=yes])
|
||||
])
|
||||
|
||||
AC_CHECK_DECLS([_SC_NPROCESSORS_ONLN,
|
||||
_SC_NPROCESSORS_CONF,
|
||||
_SC_NPROC_ONLN,
|
||||
_SC_NPROC_CONF,
|
||||
_SC_LARGE_PAGESIZE],,[:],[[#include <unistd.h>]])
|
||||
|
||||
AC_HAVE_HEADERS([mach/mach_host.h])
|
||||
AC_HAVE_HEADERS([mach/mach_init.h], [
|
||||
AC_CHECK_FUNCS([host_info])
|
||||
])
|
||||
|
||||
AC_CHECK_HEADERS([sys/param.h])
|
||||
AC_CHECK_HEADERS([sys/sysctl.h], [
|
||||
AC_CHECK_DECLS([CTL_HW, HW_NCPU],,,[[
|
||||
#if HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#include <sys/sysctl.h>
|
||||
]])
|
||||
],,[
|
||||
AC_INCLUDES_DEFAULT
|
||||
#if HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
])
|
||||
AC_CHECK_FUNCS([sysctl sysctlbyname])
|
||||
|
||||
case ${target} in
|
||||
*-*-mingw*|*-*-cygwin*)
|
||||
hwloc_pid_t=HANDLE
|
||||
hwloc_thread_t=HANDLE
|
||||
;;
|
||||
*)
|
||||
hwloc_pid_t=pid_t
|
||||
AC_CHECK_TYPES([pthread_t], [hwloc_thread_t=pthread_t], [:], [[#include <pthread.h>]])
|
||||
;;
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(hwloc_pid_t, $hwloc_pid_t, [Define this to the process ID type])
|
||||
if test "x$hwloc_thread_t" != "x" ; then
|
||||
AC_DEFINE_UNQUOTED(hwloc_thread_t, $hwloc_thread_t, [Define this to the thread ID type])
|
||||
fi
|
||||
|
||||
_HWLOC_CHECK_DECL([sched_setaffinity], [
|
||||
AC_MSG_CHECKING([for old prototype of sched_setaffinity])
|
||||
AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM([[
|
||||
#define _GNU_SOURCE
|
||||
#include <sched.h>
|
||||
static unsigned long mask;
|
||||
]], [[ sched_setaffinity(0, (void*) &mask);
|
||||
]]),
|
||||
AC_DEFINE([HWLOC_HAVE_OLD_SCHED_SETAFFINITY], [1], [Define to 1 if glibc provides the old prototype of sched_setaffinity()])
|
||||
AC_MSG_RESULT([yes]),
|
||||
AC_MSG_RESULT([no])
|
||||
)
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING([for working CPU_SET])
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <sched.h>
|
||||
cpu_set_t set;
|
||||
]], [[ CPU_ZERO(&set); CPU_SET(0, &set);
|
||||
]]),
|
||||
AC_DEFINE([HWLOC_HAVE_CPU_SET], [1], [Define to 1 if the CPU_SET macro works])
|
||||
AC_MSG_RESULT([yes]),
|
||||
AC_MSG_RESULT([no])
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING([for working CPU_SET_S])
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM([[
|
||||
#include <sched.h>
|
||||
cpu_set_t *set;
|
||||
]], [[
|
||||
set = CPU_ALLOC(1024);
|
||||
CPU_ZERO_S(CPU_ALLOC_SIZE(1024), set);
|
||||
CPU_SET_S(CPU_ALLOC_SIZE(1024), 0, set);
|
||||
CPU_FREE(set);
|
||||
]]),
|
||||
AC_DEFINE([HWLOC_HAVE_CPU_SET_S], [1], [Define to 1 if the CPU_SET_S macro works])
|
||||
AC_MSG_RESULT([yes]),
|
||||
AC_MSG_RESULT([no])
|
||||
)
|
||||
|
||||
# check for kerrighed, but don't abort if not found
|
||||
HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [:])
|
||||
|
||||
AC_PATH_PROGS([HWLOC_MS_LIB], [lib])
|
||||
AC_ARG_VAR([HWLOC_MS_LIB], [Path to Microsoft's Visual Studio `lib' tool])
|
||||
|
||||
AC_PATH_PROG([BASH], [bash])
|
||||
|
||||
AC_CHECK_FUNCS([ffs], [
|
||||
_HWLOC_CHECK_DECL([ffs],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_FFS], [1], [Define to 1 if function `ffs' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_FFS], [1], [Define to 1 if you have the `ffs' function.])
|
||||
])
|
||||
AC_CHECK_FUNCS([ffsl], [
|
||||
_HWLOC_CHECK_DECL([ffsl],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_FFSL], [1], [Define to 1 if function `ffsl' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_FFSL], [1], [Define to 1 if you have the `ffsl' function.])
|
||||
])
|
||||
|
||||
AC_CHECK_FUNCS([fls], [
|
||||
_HWLOC_CHECK_DECL([fls],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_FLS], [1], [Define to 1 if function `fls' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_FLS], [1], [Define to 1 if you have the `fls' function.])
|
||||
])
|
||||
AC_CHECK_FUNCS([flsl], [
|
||||
_HWLOC_CHECK_DECL([flsl],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_FLSL], [1], [Define to 1 if function `flsl' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_FLSL], [1], [Define to 1 if you have the `flsl' function.])
|
||||
])
|
||||
|
||||
AC_CHECK_FUNCS([clz], [
|
||||
_HWLOC_CHECK_DECL([clz],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_CLZ], [1], [Define to 1 if function `clz' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_CLZ], [1], [Define to 1 if you have the `clz' function.])
|
||||
])
|
||||
AC_CHECK_FUNCS([clzl], [
|
||||
_HWLOC_CHECK_DECL([clzl],[
|
||||
AC_DEFINE([HWLOC_HAVE_DECL_CLZL], [1], [Define to 1 if function `clzl' is declared by system headers])
|
||||
])
|
||||
AC_DEFINE([HWLOC_HAVE_CLZL], [1], [Define to 1 if you have the `clzl' function.])
|
||||
])
|
||||
|
||||
AC_CHECK_FUNCS([openat], [hwloc_have_openat=yes])
|
||||
|
||||
AC_CHECK_DECL([numa_bitmask_alloc], [hwloc_have_linux_libnuma=yes], [],
|
||||
[#include <numa.h>])
|
||||
|
||||
AC_CHECK_HEADERS([pthread_np.h])
|
||||
AC_CHECK_DECLS([pthread_setaffinity_np],,[:],[[
|
||||
#include <pthread.h>
|
||||
#ifdef HAVE_PTHREAD_NP_H
|
||||
# include <pthread_np.h>
|
||||
#endif
|
||||
]])
|
||||
AC_CHECK_DECLS([pthread_getaffinity_np],,[:],[[
|
||||
#include <pthread.h>
|
||||
#ifdef HAVE_PTHREAD_NP_H
|
||||
# include <pthread_np.h>
|
||||
#endif
|
||||
]])
|
||||
AC_CHECK_FUNC([sched_setaffinity], [hwloc_have_sched_setaffinity=yes])
|
||||
AC_CHECK_HEADERS([sys/cpuset.h],,,[[#include <sys/param.h>]])
|
||||
|
||||
# Setup HWLOC's C, CPP, and LD flags
|
||||
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
|
||||
AC_SUBST(HWLOC_CFLAGS)
|
||||
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
|
||||
AC_SUBST(HWLOC_CPPFLAGS)
|
||||
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
|
||||
AC_SUBST(HWLOC_LDFLAGS)
|
||||
|
||||
# Set these values explicitly for embedded builds. Exporting
|
||||
# these values through *_EMBEDDED_* values gives us the freedom to
|
||||
# do something different someday if we ever need to.
|
||||
HWLOC_EMBEDDED_CFLAGS=$HWLOC_CFLAGS
|
||||
AC_SUBST(HWLOC_EMBEDDED_CFLAGS)
|
||||
HWLOC_EMBEDDED_CPPFLAGS=$HWLOC_CPPFLAGS
|
||||
AC_SUBST(HWLOC_EMBEDDED_CPPFLAGS)
|
||||
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
|
||||
AC_SUBST(HWLOC_EMBEDDED_LDADD)
|
||||
|
||||
# Try to compile the cpuid inlines
|
||||
AC_MSG_CHECKING([for cpuid])
|
||||
old_CPPFLAGS="$CPPFLAGS"
|
||||
CFLAGS="$CFLAGS -I$HWLOC_top_srcdir/include"
|
||||
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
|
||||
#include <stdio.h>
|
||||
#include <private/cpuid.h>
|
||||
]], [[
|
||||
if (hwloc_have_cpuid()) {
|
||||
unsigned eax = 0, ebx, ecx = 0, edx;
|
||||
hwloc_cpuid(&eax, &ebx, &ecx, &edx);
|
||||
printf("highest cpuid %x\n", eax);
|
||||
return 0;
|
||||
}
|
||||
]]), [
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HWLOC_HAVE_CPUID, 1, [Define to 1 if you have cpuid])
|
||||
hwloc_have_cpuid=yes
|
||||
], [
|
||||
AC_MSG_RESULT([no])
|
||||
])
|
||||
CPPFLAGS="$old_CPPFLAGS"
|
||||
|
||||
# Always generate these files
|
||||
AC_CONFIG_FILES(
|
||||
hwloc_config_prefix[Makefile]
|
||||
hwloc_config_prefix[doc/Makefile]
|
||||
hwloc_config_prefix[include/Makefile]
|
||||
hwloc_config_prefix[src/Makefile ]
|
||||
hwloc_config_prefix[tests/Makefile ]
|
||||
hwloc_config_prefix[tests/linux/Makefile]
|
||||
hwloc_config_prefix[tests/xml/Makefile]
|
||||
hwloc_config_prefix[tests/ports/Makefile]
|
||||
hwloc_config_prefix[utils/Makefile]
|
||||
)
|
||||
|
||||
# Cleanup
|
||||
unset hwloc_config_happy
|
||||
AC_LANG_POP
|
||||
|
||||
# Success
|
||||
$2
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Specify the symbol prefix
|
||||
AC_DEFUN([HWLOC_SET_SYMBOL_PREFIX],[
|
||||
hwloc_symbol_prefix_value=$1
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# This must be a standalone routine so that it can be called both by
|
||||
# HWLOC_INIT and an external caller (if HWLOC_INIT is not invoked).
|
||||
AC_DEFUN([HWLOC_DO_AM_CONDITIONALS],[
|
||||
AS_IF([test "$hwloc_did_am_conditionals" != "yes"],[
|
||||
AM_CONDITIONAL([HWLOC_BUILD_STANDALONE], [test "$hwloc_mode" = "standalone"])
|
||||
|
||||
AM_CONDITIONAL([HWLOC_HAVE_GCC], [test "x$GCC" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_MS_LIB], [test "x$HWLOC_MS_LIB" != "x"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_OPENAT], [test "x$hwloc_have_openat" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_LINUX_LIBNUMA],
|
||||
[test "x$hwloc_have_linux_libnuma" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_SCHED_SETAFFINITY],
|
||||
[test "x$hwloc_have_sched_setaffinity" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_LIBIBVERBS],
|
||||
[test "x$hwloc_have_libibverbs" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_CAIRO], [test "x$enable_cairo" != "xno"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_XML], [test "x$enable_xml" != "xno"])
|
||||
|
||||
AM_CONDITIONAL([HWLOC_BUILD_DOXYGEN],
|
||||
[test "x$hwloc_generate_doxs" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_BUILD_README],
|
||||
[test "x$hwloc_generate_readme" = "xyes" -a \( "x$hwloc_install_doxs" = "xyes" -o "x$hwloc_generate_doxs" = "xyes" \) ])
|
||||
AM_CONDITIONAL([HWLOC_INSTALL_DOXYGEN],
|
||||
[test "x$hwloc_install_doxs" = "xyes"])
|
||||
|
||||
AM_CONDITIONAL([HWLOC_HAVE_LINUX], [test "x$hwloc_linux" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_IRIX], [test "x$hwloc_irix" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_DARWIN], [test "x$hwloc_darwin" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_FREEBSD], [test "x$hwloc_freebsd" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_SOLARIS], [test "x$hwloc_solaris" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_AIX], [test "x$hwloc_aix" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_OSF], [test "x$hwloc_osf" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_HPUX], [test "x$hwloc_hpux" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_WINDOWS], [test "x$hwloc_windows" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_MINGW32],
|
||||
[test "x$hwloc_target_os" = "xmingw32"])
|
||||
|
||||
AM_CONDITIONAL([HWLOC_HAVE_X86_32], [test "x$hwloc_x86_32" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_X86_64], [test "x$hwloc_x86_64" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_DOXYGEN_BROKEN_SHORT_NAMES], [test "$HWLOC_DOXYGEN_VERSION" = "1.6.2"])
|
||||
AM_CONDITIONAL([HWLOC_HAVE_CPUID], [test "x$hwloc_have_cpuid" = "xyes"])
|
||||
AM_CONDITIONAL([HWLOC_BUILD_UTILS], [test "$hwloc_build_utils" = "yes"])
|
||||
AM_CONDITIONAL([HWLOC_BUILD_TESTS], [test "$hwloc_build_tests" = "yes"])
|
||||
])
|
||||
hwloc_did_am_conditionals=yes
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([_HWLOC_CHECK_DIFF_U], [
|
||||
AC_MSG_CHECKING([whether diff accepts -u])
|
||||
if diff -u /dev/null /dev/null 2> /dev/null
|
||||
then
|
||||
HWLOC_DIFF_U="-u"
|
||||
else
|
||||
HWLOC_DIFF_U=""
|
||||
fi
|
||||
AC_SUBST([HWLOC_DIFF_U])
|
||||
AC_MSG_RESULT([$HWLOC_DIFF_U])
|
||||
])
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
dnl HWLOC_CHECK_DECL
|
||||
dnl
|
||||
dnl Check declaration of given function by trying to call it with an insane
|
||||
dnl number of arguments (10). Success means the compiler couldn't really check.
|
||||
AC_DEFUN([_HWLOC_CHECK_DECL], [
|
||||
AC_MSG_CHECKING([whether function $1 is declared])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],[$1(1,2,3,4,5,6,7,8,9,10);])],
|
||||
[AC_MSG_RESULT([no])
|
||||
$3],
|
||||
[AC_MSG_RESULT([yes])
|
||||
$2]
|
||||
)
|
||||
])
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
dnl HWLOC_CHECK_DECLS
|
||||
dnl
|
||||
dnl Same as HWLOCK_CHECK_DECL, but defines HAVE_DECL_foo to 1 or 0 depending on
|
||||
dnl the result.
|
||||
AC_DEFUN([_HWLOC_CHECK_DECLS], [
|
||||
HWLOC_CHECK_DECL([$1], [ac_have_decl=1], [ac_have_decl=0], [$4])
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_DECL_$1]), [$ac_have_decl],
|
||||
[Define to 1 if you have the declaration of `$1', and to 0 if you don't])
|
||||
])
|
||||
|
527
opal/mca/paffinity/hwloc/hwloc/config/hwloc_check_attributes.m4
Обычный файл
@ -0,0 +1,527 @@
|
||||
# This macro set originally copied from Open MPI:
|
||||
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# and renamed for hwloc:
|
||||
# Copyright (c) 2009 INRIA, Université Bordeaux 1
|
||||
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer listed
|
||||
# in this license in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# - Neither the name of the copyright holders nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# The copyright holders provide no reassurances that the source code
|
||||
# provided does not infringe any patent, copyright, or any other
|
||||
# intellectual property rights of third parties. The copyright holders
|
||||
# disclaim any liability to any recipient for claims brought against
|
||||
# recipient by any third party for infringement of that parties
|
||||
# intellectual property rights.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
#
|
||||
# Search the generated warnings for
|
||||
# keywords regarding skipping or ignoring certain attributes
|
||||
# Intel: ignore
|
||||
# Sun C++: skip
|
||||
#
|
||||
AC_DEFUN([_HWLOC_ATTRIBUTE_FAIL_SEARCH],[
|
||||
AC_REQUIRE([AC_PROG_GREP])
|
||||
if test -s conftest.err ; then
|
||||
for i in ignore skip ; do
|
||||
$GREP -iq $i conftest.err
|
||||
if test "$?" = "0" ; then
|
||||
hwloc_cv___attribute__[$1]=0
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
#
|
||||
# HWLOC: Remove C++ compiler check. It can result in a circular
|
||||
# dependency in embedded situations.
|
||||
#
|
||||
# Check for one specific attribute by compiling with C
|
||||
# and possibly using a cross-check.
|
||||
#
|
||||
# If the cross-check is defined, a static function "usage" should be
|
||||
# defined, which is to be called from main (to circumvent warnings
|
||||
# regarding unused function in main file)
|
||||
# static int usage (int * argument);
|
||||
#
|
||||
# The last argument is for specific CFLAGS, that need to be set
|
||||
# for the compiler to generate a warning on the cross-check.
|
||||
# This may need adaption for future compilers / CFLAG-settings.
|
||||
#
|
||||
AC_DEFUN([_HWLOC_CHECK_SPECIFIC_ATTRIBUTE], [
|
||||
AC_MSG_CHECKING([for __attribute__([$1])])
|
||||
AC_CACHE_VAL(hwloc_cv___attribute__[$1], [
|
||||
#
|
||||
# Try to compile using the C compiler
|
||||
#
|
||||
AC_TRY_COMPILE([$2],[],
|
||||
[
|
||||
#
|
||||
# In case we did succeed: Fine, but was this due to the
|
||||
# attribute being ignored/skipped? Grep for IgNoRe/skip in conftest.err
|
||||
# and if found, reset the hwloc_cv__attribute__var=0
|
||||
#
|
||||
hwloc_cv___attribute__[$1]=1
|
||||
_HWLOC_ATTRIBUTE_FAIL_SEARCH([$1])
|
||||
],
|
||||
[hwloc_cv___attribute__[$1]=0])
|
||||
|
||||
#
|
||||
# If the attribute is supported by both compilers,
|
||||
# try to recompile a *cross-check*, IFF defined.
|
||||
#
|
||||
if test '(' "$hwloc_cv___attribute__[$1]" = "1" -a "[$3]" != "" ')' ; then
|
||||
ac_c_werror_flag_safe=$ac_c_werror_flag
|
||||
ac_c_werror_flag="yes"
|
||||
CFLAGS_safe=$CFLAGS
|
||||
CFLAGS="$CFLAGS [$4]"
|
||||
|
||||
AC_TRY_COMPILE([$3],
|
||||
[
|
||||
int i=4711;
|
||||
i=usage(&i);
|
||||
],
|
||||
[hwloc_cv___attribute__[$1]=0],
|
||||
[
|
||||
#
|
||||
# In case we did NOT succeed: Fine, but was this due to the
|
||||
# attribute being ignored? Grep for IgNoRe in conftest.err
|
||||
# and if found, reset the hwloc_cv__attribute__var=0
|
||||
#
|
||||
hwloc_cv___attribute__[$1]=1
|
||||
_HWLOC_ATTRIBUTE_FAIL_SEARCH([$1])
|
||||
])
|
||||
|
||||
ac_c_werror_flag=$ac_c_werror_flag_safe
|
||||
CFLAGS=$CFLAGS_safe
|
||||
fi
|
||||
])
|
||||
|
||||
if test "$hwloc_cv___attribute__[$1]" = "1" ; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
# Test the availability of __attribute__ and with the help
|
||||
# of _HWLOC_CHECK_SPECIFIC_ATTRIBUTE for the support of
|
||||
# particular attributes. Compilers, that do not support an
|
||||
# attribute most often fail with a warning (when the warning
|
||||
# level is set).
|
||||
# The compilers output is parsed in _HWLOC_ATTRIBUTE_FAIL_SEARCH
|
||||
#
|
||||
# To add a new attributes __NAME__ add the
|
||||
# hwloc_cv___attribute__NAME
|
||||
# add a new check with _HWLOC_CHECK_SPECIFIC_ATTRIBUTE (possibly with a cross-check)
|
||||
# _HWLOC_CHECK_SPECIFIC_ATTRIBUTE([name], [int foo (int arg) __attribute__ ((__name__));], [], [])
|
||||
# and define the corresponding
|
||||
# AC_DEFINE_UNQUOTED(_HWLOC_HAVE_ATTRIBUTE_NAME, [$hwloc_cv___attribute__NAME],
|
||||
# [Whether your compiler has __attribute__ NAME or not])
|
||||
# and decide on a correct macro (in opal/include/opal_config_bottom.h):
|
||||
# # define __opal_attribute_NAME(x) __attribute__(__NAME__)
|
||||
#
|
||||
# Please use the "__"-notation of the attribute in order not to
|
||||
# clash with predefined names or macros (e.g. const, which some compilers
|
||||
# do not like..)
|
||||
#
|
||||
|
||||
|
||||
AC_DEFUN([_HWLOC_CHECK_ATTRIBUTES], [
|
||||
AC_MSG_CHECKING(for __attribute__)
|
||||
|
||||
AC_CACHE_VAL(hwloc_cv___attribute__, [
|
||||
AC_TRY_COMPILE(
|
||||
[#include <stdlib.h>
|
||||
/* Check for the longest available __attribute__ (since gcc-2.3) */
|
||||
struct foo {
|
||||
char a;
|
||||
int x[2] __attribute__ ((__packed__));
|
||||
};
|
||||
],
|
||||
[],
|
||||
[hwloc_cv___attribute__=1],
|
||||
[hwloc_cv___attribute__=0],
|
||||
)
|
||||
|
||||
if test "$hwloc_cv___attribute__" = "1" ; then
|
||||
AC_TRY_COMPILE(
|
||||
[#include <stdlib.h>
|
||||
/* Check for the longest available __attribute__ (since gcc-2.3) */
|
||||
struct foo {
|
||||
char a;
|
||||
int x[2] __attribute__ ((__packed__));
|
||||
};
|
||||
],
|
||||
[],
|
||||
[hwloc_cv___attribute__=1],
|
||||
[hwloc_cv___attribute__=0],
|
||||
)
|
||||
fi
|
||||
])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE, [$hwloc_cv___attribute__],
|
||||
[Whether your compiler has __attribute__ or not])
|
||||
|
||||
#
|
||||
# Now that we know the compiler support __attribute__ let's check which kind of
|
||||
# attributed are supported.
|
||||
#
|
||||
if test "$hwloc_cv___attribute__" = "0" ; then
|
||||
AC_MSG_RESULT([no])
|
||||
hwloc_cv___attribute__aligned=0
|
||||
hwloc_cv___attribute__always_inline=0
|
||||
hwloc_cv___attribute__cold=0
|
||||
hwloc_cv___attribute__const=0
|
||||
hwloc_cv___attribute__deprecated=0
|
||||
hwloc_cv___attribute__format=0
|
||||
hwloc_cv___attribute__hot=0
|
||||
hwloc_cv___attribute__malloc=0
|
||||
hwloc_cv___attribute__may_alias=0
|
||||
hwloc_cv___attribute__no_instrument_function=0
|
||||
hwloc_cv___attribute__nonnull=0
|
||||
hwloc_cv___attribute__noreturn=0
|
||||
hwloc_cv___attribute__packed=0
|
||||
hwloc_cv___attribute__pure=0
|
||||
hwloc_cv___attribute__sentinel=0
|
||||
hwloc_cv___attribute__unused=0
|
||||
hwloc_cv___attribute__warn_unused_result=0
|
||||
hwloc_cv___attribute__weak_alias=0
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([aligned],
|
||||
[struct foo { char text[4]; } __attribute__ ((__aligned__(8)));],
|
||||
[],
|
||||
[])
|
||||
|
||||
#
|
||||
# Ignored by PGI-6.2.5; -- recognized by output-parser
|
||||
#
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([always_inline],
|
||||
[int foo (int arg) __attribute__ ((__always_inline__));],
|
||||
[],
|
||||
[])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([cold],
|
||||
[
|
||||
int foo(int arg1, int arg2) __attribute__ ((__cold__));
|
||||
int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([const],
|
||||
[
|
||||
int foo(int arg1, int arg2) __attribute__ ((__const__));
|
||||
int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([deprecated],
|
||||
[
|
||||
int foo(int arg1, int arg2) __attribute__ ((__deprecated__));
|
||||
int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
ATTRIBUTE_CFLAGS=
|
||||
case "$hwloc_c_vendor" in
|
||||
gnu)
|
||||
ATTRIBUTE_CFLAGS="-Wall"
|
||||
;;
|
||||
intel)
|
||||
# we want specifically the warning on format string conversion
|
||||
ATTRIBUTE_CFLAGS="-we181"
|
||||
;;
|
||||
esac
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([format],
|
||||
[
|
||||
int this_printf (void *my_object, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
|
||||
],
|
||||
[
|
||||
static int usage (int * argument);
|
||||
extern int this_printf (int arg1, const char *my_format, ...) __attribute__ ((__format__ (__printf__, 2, 3)));
|
||||
|
||||
static int usage (int * argument) {
|
||||
return this_printf (*argument, "%d", argument); /* This should produce a format warning */
|
||||
}
|
||||
/* The autoconf-generated main-function is int main(), which produces a warning by itself */
|
||||
int main(void);
|
||||
],
|
||||
[$ATTRIBUTE_CFLAGS])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([hot],
|
||||
[
|
||||
int foo(int arg1, int arg2) __attribute__ ((__hot__));
|
||||
int foo(int arg1, int arg2) { return arg1 * arg2 + arg1; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([malloc],
|
||||
[
|
||||
#ifdef HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
int * foo(int arg1) __attribute__ ((__malloc__));
|
||||
int * foo(int arg1) { return (int*) malloc(arg1); }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
#
|
||||
# Attribute may_alias: No suitable cross-check available, that works for non-supporting compilers
|
||||
# Ignored by intel-9.1.045 -- turn off with -wd1292
|
||||
# Ignored by PGI-6.2.5; ignore not detected due to missing cross-check
|
||||
#
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([may_alias],
|
||||
[int * p_value __attribute__ ((__may_alias__));],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([no_instrument_function],
|
||||
[int * foo(int arg1) __attribute__ ((__no_instrument_function__));],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
#
|
||||
# Attribute nonnull:
|
||||
# Ignored by intel-compiler 9.1.045 -- recognized by cross-check
|
||||
# Ignored by PGI-6.2.5 (pgCC) -- recognized by cross-check
|
||||
#
|
||||
ATTRIBUTE_CFLAGS=
|
||||
case "$hwloc_c_vendor" in
|
||||
gnu)
|
||||
ATTRIBUTE_CFLAGS="-Wall"
|
||||
;;
|
||||
intel)
|
||||
# we do not want to get ignored attributes warnings, but rather real warnings
|
||||
ATTRIBUTE_CFLAGS="-wd1292"
|
||||
;;
|
||||
esac
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([nonnull],
|
||||
[
|
||||
int square(int *arg) __attribute__ ((__nonnull__));
|
||||
int square(int *arg) { return *arg; }
|
||||
],
|
||||
[
|
||||
static int usage(int * argument);
|
||||
int square(int * argument) __attribute__ ((__nonnull__));
|
||||
int square(int * argument) { return (*argument) * (*argument); }
|
||||
|
||||
static int usage(int * argument) {
|
||||
return square( ((void*)0) ); /* This should produce an argument must be nonnull warning */
|
||||
}
|
||||
/* The autoconf-generated main-function is int main(), which produces a warning by itself */
|
||||
int main(void);
|
||||
],
|
||||
[$ATTRIBUTE_CFLAGS])
|
||||
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([noreturn],
|
||||
[
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
void fatal(int arg1) __attribute__ ((__noreturn__));
|
||||
void fatal(int arg1) { exit(arg1); }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([packed],
|
||||
[
|
||||
struct foo {
|
||||
char a;
|
||||
int x[2] __attribute__ ((__packed__));
|
||||
};
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([pure],
|
||||
[
|
||||
int square(int arg) __attribute__ ((__pure__));
|
||||
int square(int arg) { return arg * arg; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
#
|
||||
# Attribute sentinel:
|
||||
# Ignored by the intel-9.1.045 -- recognized by cross-check
|
||||
# intel-10.0beta works fine
|
||||
# Ignored by PGI-6.2.5 (pgCC) -- recognized by output-parser and cross-check
|
||||
# Ignored by pathcc-2.2.1 -- recognized by cross-check (through grep ignore)
|
||||
#
|
||||
ATTRIBUTE_CFLAGS=
|
||||
case "$hwloc_c_vendor" in
|
||||
gnu)
|
||||
ATTRIBUTE_CFLAGS="-Wall"
|
||||
;;
|
||||
intel)
|
||||
# we do not want to get ignored attributes warnings
|
||||
ATTRIBUTE_CFLAGS="-wd1292"
|
||||
;;
|
||||
esac
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([sentinel],
|
||||
[
|
||||
int my_execlp(const char * file, const char *arg, ...) __attribute__ ((__sentinel__));
|
||||
],
|
||||
[
|
||||
static int usage(int * argument);
|
||||
int my_execlp(const char * file, const char *arg, ...) __attribute__ ((__sentinel__));
|
||||
|
||||
static int usage(int * argument) {
|
||||
void * last_arg_should_be_null = argument;
|
||||
return my_execlp ("lala", "/home/there", last_arg_should_be_null); /* This should produce a warning */
|
||||
}
|
||||
/* The autoconf-generated main-function is int main(), which produces a warning by itself */
|
||||
int main(void);
|
||||
],
|
||||
[$ATTRIBUTE_CFLAGS])
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([unused],
|
||||
[
|
||||
int square(int arg1 __attribute__ ((__unused__)), int arg2);
|
||||
int square(int arg1, int arg2) { return arg2; }
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
|
||||
#
|
||||
# Attribute warn_unused_result:
|
||||
# Ignored by the intel-compiler 9.1.045 -- recognized by cross-check
|
||||
# Ignored by pathcc-2.2.1 -- recognized by cross-check (through grep ignore)
|
||||
#
|
||||
ATTRIBUTE_CFLAGS=
|
||||
case "$hwloc_c_vendor" in
|
||||
gnu)
|
||||
ATTRIBUTE_CFLAGS="-Wall"
|
||||
;;
|
||||
intel)
|
||||
# we do not want to get ignored attributes warnings
|
||||
ATTRIBUTE_CFLAGS="-wd1292"
|
||||
;;
|
||||
esac
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([warn_unused_result],
|
||||
[
|
||||
int foo(int arg) __attribute__ ((__warn_unused_result__));
|
||||
int foo(int arg) { return arg + 3; }
|
||||
],
|
||||
[
|
||||
static int usage(int * argument);
|
||||
int foo(int arg) __attribute__ ((__warn_unused_result__));
|
||||
|
||||
int foo(int arg) { return arg + 3; }
|
||||
static int usage(int * argument) {
|
||||
foo (*argument); /* Should produce an unused result warning */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* The autoconf-generated main-function is int main(), which produces a warning by itself */
|
||||
int main(void);
|
||||
],
|
||||
[$ATTRIBUTE_CFLAGS])
|
||||
|
||||
|
||||
_HWLOC_CHECK_SPECIFIC_ATTRIBUTE([weak_alias],
|
||||
[
|
||||
int foo(int arg);
|
||||
int foo(int arg) { return arg + 3; }
|
||||
int foo2(int arg) __attribute__ ((__weak__, __alias__("foo")));
|
||||
],
|
||||
[],
|
||||
[])
|
||||
|
||||
fi
|
||||
|
||||
# Now that all the values are set, define them
|
||||
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_ALIGNED, [$hwloc_cv___attribute__aligned],
|
||||
[Whether your compiler has __attribute__ aligned or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_ALWAYS_INLINE, [$hwloc_cv___attribute__always_inline],
|
||||
[Whether your compiler has __attribute__ always_inline or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_COLD, [$hwloc_cv___attribute__cold],
|
||||
[Whether your compiler has __attribute__ cold or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_CONST, [$hwloc_cv___attribute__const],
|
||||
[Whether your compiler has __attribute__ const or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_DEPRECATED, [$hwloc_cv___attribute__deprecated],
|
||||
[Whether your compiler has __attribute__ deprecated or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_FORMAT, [$hwloc_cv___attribute__format],
|
||||
[Whether your compiler has __attribute__ format or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_HOT, [$hwloc_cv___attribute__hot],
|
||||
[Whether your compiler has __attribute__ hot or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_MALLOC, [$hwloc_cv___attribute__malloc],
|
||||
[Whether your compiler has __attribute__ malloc or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_MAY_ALIAS, [$hwloc_cv___attribute__may_alias],
|
||||
[Whether your compiler has __attribute__ may_alias or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_NO_INSTRUMENT_FUNCTION, [$hwloc_cv___attribute__no_instrument_function],
|
||||
[Whether your compiler has __attribute__ no_instrument_function or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_NONNULL, [$hwloc_cv___attribute__nonnull],
|
||||
[Whether your compiler has __attribute__ nonnull or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_NORETURN, [$hwloc_cv___attribute__noreturn],
|
||||
[Whether your compiler has __attribute__ noreturn or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_PACKED, [$hwloc_cv___attribute__packed],
|
||||
[Whether your compiler has __attribute__ packed or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_PURE, [$hwloc_cv___attribute__pure],
|
||||
[Whether your compiler has __attribute__ pure or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_SENTINEL, [$hwloc_cv___attribute__sentinel],
|
||||
[Whether your compiler has __attribute__ sentinel or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_UNUSED, [$hwloc_cv___attribute__unused],
|
||||
[Whether your compiler has __attribute__ unused or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_WARN_UNUSED_RESULT, [$hwloc_cv___attribute__warn_unused_result],
|
||||
[Whether your compiler has __attribute__ warn unused result or not])
|
||||
AC_DEFINE_UNQUOTED(HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS, [$hwloc_cv___attribute__weak_alias],
|
||||
[Whether your compiler has __attribute__ weak alias or not])
|
||||
])
|
||||
|
111
opal/mca/paffinity/hwloc/hwloc/config/hwloc_check_visibility.m4
Обычный файл
@ -0,0 +1,111 @@
|
||||
# This macro set originally copied from Open MPI:
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2007 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved.
|
||||
# and renamed for hwloc:
|
||||
# Copyright (c) 2009 INRIA, Université Bordeaux 1
|
||||
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer listed
|
||||
# in this license in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# - Neither the name of the copyright holders nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# The copyright holders provide no reassurances that the source code
|
||||
# provided does not infringe any patent, copyright, or any other
|
||||
# intellectual property rights of third parties. The copyright holders
|
||||
# disclaim any liability to any recipient for claims brought against
|
||||
# recipient by any third party for infringement of that parties
|
||||
# intellectual property rights.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
|
||||
# _HWLOC_CHECK_VISIBILITY
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([_HWLOC_CHECK_VISIBILITY],[
|
||||
AC_REQUIRE([AC_PROG_GREP])
|
||||
|
||||
# Check if the compiler has support for visibility, like some versions of gcc, icc.
|
||||
AC_ARG_ENABLE(visibility,
|
||||
AC_HELP_STRING([--enable-visibility],
|
||||
[enable visibility feature of certain compilers/linkers (default: enabled)]))
|
||||
if test "$enable_visibility" = "no"; then
|
||||
AC_MSG_CHECKING([enable symbol visibility])
|
||||
AC_MSG_RESULT([no])
|
||||
have_visibility=0
|
||||
else
|
||||
CFLAGS_orig="$CFLAGS"
|
||||
CFLAGS="$CFLAGS_orig -fvisibility=hidden"
|
||||
add=
|
||||
AC_CACHE_CHECK([if $CC supports -fvisibility],
|
||||
[hwloc_cv_cc_fvisibility],
|
||||
[AC_TRY_LINK([
|
||||
#include <stdio.h>
|
||||
__attribute__((visibility("default"))) int foo;
|
||||
void bar(void) { fprintf(stderr, "bar\n"); };
|
||||
],[],
|
||||
[if test -s conftest.err ; then
|
||||
$GREP -iq "visibility" conftest.err
|
||||
if test "$?" = "0" ; then
|
||||
hwloc_cv_cc_fvisibility="no"
|
||||
else
|
||||
hwloc_cv_cc_fvisibility="yes"
|
||||
fi
|
||||
else
|
||||
hwloc_cv_cc_fvisibility="yes"
|
||||
fi],
|
||||
[hwloc_cv_cc_fvisibility="no"])
|
||||
])
|
||||
|
||||
if test "$hwloc_cv_cc_fvisibility" = "yes" ; then
|
||||
add=" -fvisibility=hidden"
|
||||
have_visibility=1
|
||||
AC_MSG_CHECKING([enable symbol visibility])
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_WARN([$add has been added to CFLAGS])
|
||||
elif test "$enable_visibility" = "yes"; then
|
||||
AC_MSG_ERROR([Symbol visibility support requested but compiler does not seem to support it. Aborting])
|
||||
else
|
||||
AC_MSG_CHECKING([enable symbol visibility])
|
||||
AC_MSG_RESULT([no])
|
||||
have_visibility=0
|
||||
fi
|
||||
CFLAGS="$CFLAGS_orig$add"
|
||||
HWLOC_VISIBILITY_CFLAGS="$add"
|
||||
unset add
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([HWLOC_C_HAVE_VISIBILITY], [$have_visibility],
|
||||
[Whether C compiler supports -fvisibility])
|
||||
|
||||
])
|
171
opal/mca/paffinity/hwloc/hwloc/config/hwloc_get_version.sh
Исполняемый файл
@ -0,0 +1,171 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# hwloc_get_version is created from hwloc_get_version.m4 and hwloc_get_version.m4sh.
|
||||
#
|
||||
# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright © 2008-2009 Cisco Systems, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# 11 September 2009: this file was copied from PLPA's SVN trunk as of
|
||||
# r251 on 11 September 2009. The only change made to it was
|
||||
# s/PLPA/hwloc/ig.
|
||||
|
||||
|
||||
# HWLOC_GET_VERSION(version_file, variable_prefix)
|
||||
# -----------------------------------------------
|
||||
# parse version_file for version information, setting
|
||||
# the following shell variables:
|
||||
#
|
||||
# prefix_VERSION
|
||||
# prefix_BASE_VERSION
|
||||
# prefix_MAJOR_VERSION
|
||||
# prefix_MINOR_VERSION
|
||||
# prefix_RELEASE_VERSION
|
||||
# prefix_GREEK_VERSION
|
||||
# prefix_WANT_SVN
|
||||
# prefix_SVN_R
|
||||
# prefix_RELEASE_DATE
|
||||
|
||||
|
||||
|
||||
srcfile="$1"
|
||||
option="$2"
|
||||
|
||||
case "$option" in
|
||||
# svnversion can take a while to run. If we don't need it, don't run it.
|
||||
--major|--minor|--release|--greek|--base|--help)
|
||||
ompi_ver_need_svn=0
|
||||
;;
|
||||
*)
|
||||
ompi_ver_need_svn=1
|
||||
esac
|
||||
|
||||
|
||||
if test -z "$srcfile"; then
|
||||
option="--help"
|
||||
else
|
||||
|
||||
: ${ompi_ver_need_svn=1}
|
||||
: ${srcdir=.}
|
||||
: ${svnversion_result=-1}
|
||||
|
||||
if test -f "$srcfile"; then
|
||||
ompi_vers=`sed -n "
|
||||
t clear
|
||||
: clear
|
||||
s/^major/HWLOC_MAJOR_VERSION/
|
||||
s/^minor/HWLOC_MINOR_VERSION/
|
||||
s/^release/HWLOC_RELEASE_VERSION/
|
||||
s/^greek/HWLOC_GREEK_VERSION/
|
||||
s/^want_svn/HWLOC_WANT_SVN/
|
||||
s/^svn_r/HWLOC_SVN_R/
|
||||
s/^date/HWLOC_RELEASE_DATE/
|
||||
t print
|
||||
b
|
||||
: print
|
||||
p" < "$srcfile"`
|
||||
eval "$ompi_vers"
|
||||
|
||||
# Only print release version if it isn't 0
|
||||
if test $HWLOC_RELEASE_VERSION -ne 0 ; then
|
||||
HWLOC_VERSION="$HWLOC_MAJOR_VERSION.$HWLOC_MINOR_VERSION.$HWLOC_RELEASE_VERSION"
|
||||
else
|
||||
HWLOC_VERSION="$HWLOC_MAJOR_VERSION.$HWLOC_MINOR_VERSION"
|
||||
fi
|
||||
HWLOC_VERSION="${HWLOC_VERSION}${HWLOC_GREEK_VERSION}"
|
||||
HWLOC_BASE_VERSION=$HWLOC_VERSION
|
||||
|
||||
if test $HWLOC_WANT_SVN -eq 1 && test $ompi_ver_need_svn -eq 1 ; then
|
||||
if test "$svnversion_result" != "-1" ; then
|
||||
HWLOC_SVN_R=$svnversion_result
|
||||
fi
|
||||
if test "$HWLOC_SVN_R" = "-1" ; then
|
||||
|
||||
if test -d "$srcdir/.svn" ; then
|
||||
HWLOC_SVN_R=r`svnversion "$srcdir"`
|
||||
elif test -d "$srcdir/.hg" ; then
|
||||
HWLOC_SVN_R=hg`hg -v -R "$srcdir" tip | grep changeset | cut -d: -f3`
|
||||
fi
|
||||
if test "HWLOC_SVN_R" = ""; then
|
||||
HWLOC_SVN_R=svn`date '+%m%d%Y'`
|
||||
fi
|
||||
|
||||
fi
|
||||
HWLOC_VERSION="${HWLOC_VERSION}${HWLOC_SVN_R}"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if test "$option" = ""; then
|
||||
option="--full"
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$option" in
|
||||
--full|-v|--version)
|
||||
echo $HWLOC_VERSION
|
||||
;;
|
||||
--major)
|
||||
echo $HWLOC_MAJOR_VERSION
|
||||
;;
|
||||
--minor)
|
||||
echo $HWLOC_MINOR_VERSION
|
||||
;;
|
||||
--release)
|
||||
echo $HWLOC_RELEASE_VERSION
|
||||
;;
|
||||
--greek)
|
||||
echo $HWLOC_GREEK_VERSION
|
||||
;;
|
||||
--svn)
|
||||
echo $HWLOC_SVN_R
|
||||
;;
|
||||
--base)
|
||||
echo $HWLOC_BASE_VERSION
|
||||
;;
|
||||
--release-date)
|
||||
echo $HWLOC_RELEASE_DATE
|
||||
;;
|
||||
--all)
|
||||
echo ${HWLOC_VERSION} ${HWLOC_MAJOR_VERSION} ${HWLOC_MINOR_VERSION} ${HWLOC_RELEASE_VERSION} ${HWLOC_GREEK_VERSION} ${HWLOC_SVN_R}
|
||||
;;
|
||||
-h|--help)
|
||||
cat <<EOF
|
||||
$0 <srcfile> <option>
|
||||
|
||||
<srcfile> - Text version file
|
||||
<option> - One of:
|
||||
--full - Full version number
|
||||
--major - Major version number
|
||||
--minor - Minor version number
|
||||
--release - Release version number
|
||||
--greek - Greek (alpha, beta, etc) version number
|
||||
--svn - Subversion repository number
|
||||
--all - Show all version numbers, separated by :
|
||||
--base - Show base version number (no svn number)
|
||||
--release-date - Show the release date
|
||||
--help - This message
|
||||
EOF
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognized option $option. Run $0 --help for options"
|
||||
;;
|
||||
esac
|
||||
|
||||
# All done
|
||||
|
||||
exit 0
|
281
opal/mca/paffinity/hwloc/hwloc/config/hwloc_internal.m4
Обычный файл
@ -0,0 +1,281 @@
|
||||
dnl -*- Autoconf -*-
|
||||
dnl
|
||||
dnl Copyright 2009 INRIA, Université Bordeaux 1
|
||||
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
dnl University Research and Technology
|
||||
dnl Corporation. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright © 2006-2010 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Probably only ever invoked by hwloc's configure.ac
|
||||
AC_DEFUN([HWLOC_BUILD_STANDALONE],[
|
||||
hwloc_mode=standalone
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Probably only ever invoked by hwloc's configure.ac
|
||||
AC_DEFUN([HWLOC_DEFINE_ARGS],[
|
||||
# Embedded mode, or standalone?
|
||||
AC_ARG_ENABLE([embedded-mode],
|
||||
AC_HELP_STRING([--enable-embedded-mode],
|
||||
[Using --enable-embedded-mode puts the HWLOC into "embedded" mode. The default is --disable-embedded-mode, meaning that the HWLOC is in "standalone" mode.]))
|
||||
|
||||
# Change the symbol prefix?
|
||||
AC_ARG_WITH([hwloc-symbol-prefix],
|
||||
AC_HELP_STRING([--with-hwloc-symbol-prefix=STRING],
|
||||
[STRING can be any valid C symbol name. It will be prefixed to all public HWLOC symbols. Default: "hwloc_"]))
|
||||
|
||||
# Debug mode?
|
||||
AC_ARG_ENABLE([debug],
|
||||
AC_HELP_STRING([--enable-debug],
|
||||
[Using --enable-debug enables various hwloc maintainer-level debugging controls. This option is not recomended for end users.]))
|
||||
|
||||
# Doxygen?
|
||||
AC_ARG_ENABLE([doxygen],
|
||||
[AC_HELP_STRING([--enable-doxygen],
|
||||
[enable support for building Doxygen documentation (note that this option is ONLY relevant in developer builds; Doxygen documentation is pre-built for tarball builds and this option is therefore ignored)])])
|
||||
|
||||
# Picky?
|
||||
AC_ARG_ENABLE(picky,
|
||||
AC_HELP_STRING([--disable-picky],
|
||||
[When in developer checkouts of hwloc and compiling with gcc, the default is to enable maximum compiler pickyness. Using --disable-picky or --enable-picky overrides any default setting]))
|
||||
|
||||
# Cairo?
|
||||
AC_ARG_ENABLE([cairo],
|
||||
AS_HELP_STRING([--disable-cairo],
|
||||
[Disable the Cairo back-end of hwloc's lstopo command]))
|
||||
|
||||
# XML?
|
||||
AC_ARG_ENABLE([xml],
|
||||
AS_HELP_STRING([--disable-xml],
|
||||
[Disable the XML back-end of hwloc's lstopo command]))
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
dnl We only build documentation if this is a developer checkout.
|
||||
dnl Distribution tarballs just install pre-built docuemntation that was
|
||||
dnl included in the tarball.
|
||||
|
||||
# Probably only ever invoked by hwloc's configure.ac
|
||||
AC_DEFUN([HWLOC_SETUP_DOCS],[
|
||||
cat <<EOF
|
||||
|
||||
###
|
||||
### Configuring hwloc documentation
|
||||
###
|
||||
EOF
|
||||
|
||||
AC_MSG_CHECKING([if this is a developer build])
|
||||
AS_IF([test ! -d "$srcdir/.svn" -a ! -d "$srcdir/.hg" -a ! -d "$srcdir/.git"],
|
||||
[AC_MSG_RESULT([no (doxygen generation is optional)])],
|
||||
[AC_MSG_RESULT([yes])])
|
||||
|
||||
# Generating the doxygen output requires a few tools. If we
|
||||
# don't have all of them, refuse the build the docs.
|
||||
AC_ARG_VAR([DOXYGEN], [Location of the doxygen program (required for building the hwloc doxygen documentation)])
|
||||
AC_PATH_TOOL([DOXYGEN], [doxygen])
|
||||
HWLOC_DOXYGEN_VERSION=`doxygen --version 2> /dev/null`
|
||||
|
||||
AC_ARG_VAR([PDFLATEX], [Location of the pdflatex program (required for building the hwloc doxygen documentation)])
|
||||
AC_PATH_TOOL([PDFLATEX], [pdflatex])
|
||||
|
||||
AC_ARG_VAR([MAKEINDEX], [Location of the makeindex program (required for building the hwloc doxygen documentation)])
|
||||
AC_PATH_TOOL([MAKEINDEX], [makeindex])
|
||||
|
||||
AC_ARG_VAR([FIG2DEV], [Location of the fig2dev program (required for building the hwloc doxygen documentation)])
|
||||
AC_PATH_TOOL([FIG2DEV], [fig2dev])
|
||||
|
||||
AC_MSG_CHECKING([if can build doxygen docs])
|
||||
AS_IF([test "x$DOXYGEN" != "x" -a "x$PDFLATEX" != "x" -a "x$MAKEINDEX" != "x" -a "x$FIG2DEV" != "x"],
|
||||
[hwloc_generate_doxs=yes], [hwloc_generate_doxs=no])
|
||||
AC_MSG_RESULT([$hwloc_generate_doxs])
|
||||
|
||||
# Making the top-level README requires w3m or lynx.
|
||||
AC_ARG_VAR([W3M], [Location of the w3m program (required to building the top-level hwloc README file)])
|
||||
AC_PATH_TOOL([W3M], [w3m])
|
||||
AC_ARG_VAR([LYNX], [Location of the lynx program (required to building the top-level hwloc README file)])
|
||||
AC_PATH_TOOL([LYNX], [lynx])
|
||||
|
||||
AC_MSG_CHECKING([if can build top-level README])
|
||||
AS_IF([test "x$W3M" != "x"],
|
||||
[hwloc_generate_readme=yes
|
||||
HWLOC_W3_GENERATOR=$W3M],
|
||||
[AS_IF([test "x$LYNX" != "x"],
|
||||
[hwloc_generate_readme=yes
|
||||
HWLOC_W3_GENERATOR="$LYNX -dump -nolist"],
|
||||
[hwloc_generate_readme=no])])
|
||||
AC_SUBST(HWLOC_W3_GENERATOR)
|
||||
AC_MSG_RESULT([$hwloc_generate_readme])
|
||||
|
||||
# If any one of the above tools is missing, we will refuse to make dist.
|
||||
AC_MSG_CHECKING([if will build doxygen docs])
|
||||
AS_IF([test "x$hwloc_generate_doxs" = "xyes" -a "x$enable_doxygen" != "xno"],
|
||||
[], [hwloc_generate_doxs=no])
|
||||
AC_MSG_RESULT([$hwloc_generate_doxs])
|
||||
|
||||
# See if we want to install the doxygen docs
|
||||
AC_MSG_CHECKING([if will install doxygen docs])
|
||||
AS_IF([test "x$hwloc_generate_doxs" = "xyes" -o \
|
||||
-f "$srcdir/doc/doxygen-doc/man/man3/hwloc_distribute.3" -a \
|
||||
-f "$srcdir/doc/doxygen-doc/hwloc-a4.pdf" -a \
|
||||
-f "$srcdir/doc/doxygen-doc/hwloc-letter.pdf"],
|
||||
[hwloc_install_doxs=yes],
|
||||
[hwloc_install_doxs=no])
|
||||
AC_MSG_RESULT([$hwloc_install_doxs])
|
||||
|
||||
# For the common developer case, if we're in a developer checkout and
|
||||
# using the GNU compilers, turn on maximum warnings unless
|
||||
# specifically disabled by the user.
|
||||
AC_MSG_CHECKING([whether to enable "picky" compiler mode])
|
||||
hwloc_want_picky=0
|
||||
AS_IF([test "$GCC" = "yes"],
|
||||
[AS_IF([test -d "$srcdir/.svn" -o -d "$srcdir/.hg"],
|
||||
[hwloc_want_picky=1])])
|
||||
if test "$enable_picky" = "yes"; then
|
||||
if test "$GCC" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
hwloc_want_picky=1
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_WARN([Warning: --enable-picky used, but is currently only defined for the GCC compiler set -- automatically disabled])
|
||||
hwloc_want_picky=0
|
||||
fi
|
||||
elif test "$enable_picky" = "no"; then
|
||||
AC_MSG_RESULT([no])
|
||||
hwloc_want_picky=0
|
||||
else
|
||||
if test "$hwloc_want_picky" = 1; then
|
||||
AC_MSG_RESULT([yes (default)])
|
||||
else
|
||||
AC_MSG_RESULT([no (default)])
|
||||
fi
|
||||
fi
|
||||
if test "$hwloc_want_picky" = 1; then
|
||||
add="-Wall -Wunused-parameter -Wundef -Wno-long-long -Wsign-compare"
|
||||
add="$add -Wmissing-prototypes -Wstrict-prototypes"
|
||||
add="$add -Wcomment -pedantic"
|
||||
|
||||
CFLAGS="$CFLAGS $add"
|
||||
fi
|
||||
|
||||
# Generate some files for the docs
|
||||
AC_CONFIG_FILES(hwloc_config_prefix[doc/doxygen-config.cfg])
|
||||
])
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Probably only ever invoked by hwloc's configure.ac
|
||||
AC_DEFUN([HWLOC_SETUP_UTILS],[
|
||||
cat <<EOF
|
||||
|
||||
###
|
||||
### Configuring hwloc command line utilities
|
||||
###
|
||||
EOF
|
||||
|
||||
hwloc_build_utils=yes
|
||||
|
||||
# Cairo support
|
||||
if test "x$enable_cairo" != "xno"; then
|
||||
HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [:], [enable_cairo="no"])
|
||||
if test "x$enable_cairo" != "xno"; then
|
||||
AC_PATH_XTRA
|
||||
CFLAGS_save=$CFLAGS
|
||||
LIBS_save=$LIBS
|
||||
|
||||
CFLAGS="$CFLAGS $X_CFLAGS"
|
||||
LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS"
|
||||
AC_CHECK_HEADERS([X11/Xlib.h], [
|
||||
AC_CHECK_HEADERS([X11/Xutil.h X11/keysym.h], [
|
||||
AC_CHECK_LIB([X11], [XOpenDisplay], [
|
||||
enable_X11=yes
|
||||
AC_SUBST([HWLOC_X11_LIBS], ["-lX11"])
|
||||
AC_DEFINE([HWLOC_HAVE_X11], [1], [Define to 1 if X11 libraries are available.])
|
||||
])]
|
||||
)],,
|
||||
[[#include <X11/Xlib.h>]]
|
||||
)
|
||||
if test "x$enable_X11" != "xyes"; then
|
||||
AC_MSG_WARN([X11 headers not found, Cairo/X11 back-end disabled])
|
||||
fi
|
||||
|
||||
CFLAGS=$CFLAGS_save
|
||||
LIBS=$LIBS_save
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$enable_cairo" != "xno"; then
|
||||
AC_DEFINE([HWLOC_HAVE_CAIRO], [1], [Define to 1 if you have the `cairo' library.])
|
||||
fi
|
||||
|
||||
# XML support
|
||||
|
||||
if test "x$enable_xml" != "xno"; then
|
||||
HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [:], [enable_xml="no"])
|
||||
fi
|
||||
|
||||
if test "x$enable_xml" != "xno"; then
|
||||
HWLOC_REQUIRES="libxml-2.0 $HWLOC_REQUIRES"
|
||||
AC_DEFINE([HWLOC_HAVE_XML], [1], [Define to 1 if you have the `xml' library.])
|
||||
AC_SUBST([HWLOC_HAVE_XML], [1])
|
||||
AC_CHECK_PROGS(XMLLINT, [xmllint])
|
||||
else
|
||||
AC_SUBST([HWLOC_HAVE_XML], [0])
|
||||
fi
|
||||
AC_SUBST(HWLOC_REQUIRES)
|
||||
HWLOC_CFLAGS="$HWLOC_CFLAGS $HWLOC_XML_CFLAGS"
|
||||
|
||||
# Only generate this if we're building the utilities
|
||||
AC_CONFIG_FILES(hwloc_config_prefix[hwloc.pc])
|
||||
])dnl
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Probably only ever invoked by hwloc's configure.ac
|
||||
AC_DEFUN([HWLOC_SETUP_TESTS],[
|
||||
cat <<EOF
|
||||
|
||||
###
|
||||
### Configuring hwloc tests
|
||||
###
|
||||
EOF
|
||||
|
||||
hwloc_build_tests=yes
|
||||
|
||||
# Only generate these files if we're making the tests
|
||||
AC_CONFIG_FILES(
|
||||
hwloc_config_prefix[utils/test-hwloc-distrib.sh]
|
||||
hwloc_config_prefix[tests/linux/gather-topology.sh]
|
||||
hwloc_config_prefix[tests/linux/test-topology.sh]
|
||||
hwloc_config_prefix[tests/xml/test-topology.sh])
|
||||
|
||||
AC_CONFIG_COMMANDS([chmoding-scripts], [chmod +x ]hwloc_config_prefix[tests/linux/test-topology.sh ]hwloc_config_prefix[tests/xml/test-topology.sh ]hwloc_config_prefix[tests/linux/gather-topology.sh ]hwloc_config_prefix[utils/test-hwloc-distrib.sh])
|
||||
|
||||
# These links are only needed in standalone mode. It would
|
||||
# be nice to m4 foreach this somehow, but whenever I tried
|
||||
# it, I got obscure "invalid tag" errors from
|
||||
# AC_CONFIG_LINKS. :-\ Since these tests are only run when
|
||||
# built in standalone mode, only generate them in
|
||||
# standalone mode.
|
||||
AC_CONFIG_LINKS(
|
||||
hwloc_config_prefix[tests/ports/topology.c]:hwloc_config_prefix[src/topology.c]
|
||||
hwloc_config_prefix[tests/ports/traversal.c]:hwloc_config_prefix[src/traversal.c]
|
||||
hwloc_config_prefix[tests/ports/topology-synthetic.c]:hwloc_config_prefix[src/topology-synthetic.c]
|
||||
hwloc_config_prefix[tests/ports/topology-solaris.c]:hwloc_config_prefix[src/topology-solaris.c]
|
||||
hwloc_config_prefix[tests/ports/topology-aix.c]:hwloc_config_prefix[src/topology-aix.c]
|
||||
hwloc_config_prefix[tests/ports/topology-osf.c]:hwloc_config_prefix[src/topology-osf.c]
|
||||
hwloc_config_prefix[tests/ports/topology-windows.c]:hwloc_config_prefix[src/topology-windows.c]
|
||||
hwloc_config_prefix[tests/ports/topology-darwin.c]:hwloc_config_prefix[src/topology-darwin.c]
|
||||
hwloc_config_prefix[tests/ports/topology-freebsd.c]:hwloc_config_prefix[src/topology-freebsd.c]
|
||||
hwloc_config_prefix[tests/ports/topology-hpux.c]:hwloc_config_prefix[src/topology-hpux.c])
|
||||
])
|
||||
|
||||
echo done setting up tests
|
||||
])dnl
|
164
opal/mca/paffinity/hwloc/hwloc/config/hwloc_pkg.m4
Обычный файл
@ -0,0 +1,164 @@
|
||||
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
#
|
||||
# hwloc modification to the following PKG_* macros -- add HWLOC_
|
||||
# prefix to make it "safe" to embed these macros in other packages.
|
||||
# Originally copied from the pkg-config package; see copyright and
|
||||
# license below.
|
||||
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# HWLOC_PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([HWLOC_PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^HWLOC_PKG_CONFIG(_PATH)?$])
|
||||
AC_ARG_VAR([HWLOC_PKG_CONFIG], [path to pkg-config utility])dnl
|
||||
if test "x$ac_cv_env_HWLOC_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([HWLOC_PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$HWLOC_PKG_CONFIG"; then
|
||||
HWLOC_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $HWLOC_pkg_min_version])
|
||||
if $HWLOC_PKG_CONFIG --atleast-pkgconfig-version $HWLOC_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
HWLOC_PKG_CONFIG=""
|
||||
fi
|
||||
|
||||
fi[]dnl
|
||||
])# HWLOC_PKG_PROG_PKG_CONFIG
|
||||
|
||||
# HWLOC_PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to HWLOC_PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
#
|
||||
# Similar to HWLOC_PKG_CHECK_MODULES, make sure that the first instance of
|
||||
# this or HWLOC_PKG_CHECK_MODULES is called, or make sure to call
|
||||
# HWLOC_PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([HWLOC_PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([HWLOC_PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$HWLOC_PKG_CONFIG" && \
|
||||
AC_RUN_LOG([$HWLOC_PKG_CONFIG --exists --silence-errors "$1"]); then
|
||||
m4_ifval([$2], [$2], [:])
|
||||
m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
|
||||
# _HWLOC_PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_HWLOC_PKG_CONFIG],
|
||||
[if test -n "$HWLOC_PKG_CONFIG"; then
|
||||
if test -n "$$1"; then
|
||||
HWLOC_pkg_cv_[]$1="$$1"
|
||||
else
|
||||
HWLOC_PKG_CHECK_EXISTS([$3],
|
||||
[HWLOC_pkg_cv_[]$1=`$HWLOC_PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
||||
[HWLOC_pkg_failed=yes])
|
||||
fi
|
||||
else
|
||||
HWLOC_pkg_failed=untried
|
||||
fi[]
|
||||
])# _HWLOC_PKG_CONFIG
|
||||
|
||||
# _HWLOC_PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
AC_DEFUN([_HWLOC_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([HWLOC_PKG_PROG_PKG_CONFIG])
|
||||
if $HWLOC_PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
HWLOC_pkg_short_errors_supported=yes
|
||||
else
|
||||
HWLOC_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _HWLOC_PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# HWLOC_PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# HWLOC_PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to HWLOC_PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([HWLOC_PKG_CHECK_MODULES],[
|
||||
AC_REQUIRE([HWLOC_PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([HWLOC_]$1[_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([HWLOC_]$1[_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
HWLOC_pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
|
||||
_HWLOC_PKG_CONFIG([HWLOC_][$1][_CFLAGS], [cflags], [$2])
|
||||
_HWLOC_PKG_CONFIG([HWLOC_][$1][_LIBS], [libs], [$2])
|
||||
|
||||
m4_define([_HWLOC_PKG_TEXT], [Alternatively, you may set the environment variables HWLOC_[]$1[]_CFLAGS
|
||||
and HWLOC_[]$1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $HWLOC_pkg_failed = yes; then
|
||||
_HWLOC_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $HWLOC_pkg_short_errors_supported = yes; then
|
||||
HWLOC_[]$1[]_PKG_ERRORS=`$HWLOC_PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2" 2>&1`
|
||||
else
|
||||
HWLOC_[]$1[]_PKG_ERRORS=`$HWLOC_PKG_CONFIG --errors-to-stdout --print-errors "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$HWLOC_[]$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||
|
||||
ifelse([$4], , [AC_MSG_ERROR(dnl
|
||||
[Package requirements ($2) were not met:
|
||||
|
||||
$HWLOCC_$1_PKG_ERRORS
|
||||
|
||||
Consider adjusting the HWLOC_PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
_HWLOC_PKG_TEXT
|
||||
])],
|
||||
[AC_MSG_RESULT([no])
|
||||
$4])
|
||||
elif test $HWLOC_pkg_failed = untried; then
|
||||
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the HWLOC_PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
_HWLOC_PKG_TEXT
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
|
||||
[$4])
|
||||
else
|
||||
HWLOC_[]$1[]_CFLAGS=$HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS
|
||||
HWLOC_[]$1[]_LIBS=$HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS
|
||||
AC_MSG_RESULT([yes])
|
||||
ifelse([$3], , :, [$3])
|
||||
fi[]dnl
|
||||
])# HWLOC_PKG_CHECK_MODULES
|
520
opal/mca/paffinity/hwloc/hwloc/config/install-sh
Исполняемый файл
@ -0,0 +1,520 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
7357
opal/mca/paffinity/hwloc/hwloc/config/libtool.m4
поставляемый
Обычный файл
8406
opal/mca/paffinity/hwloc/hwloc/config/ltmain.sh
Исполняемый файл
368
opal/mca/paffinity/hwloc/hwloc/config/ltoptions.m4
поставляемый
Обычный файл
@ -0,0 +1,368 @@
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 6 ltoptions.m4
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
|
||||
|
||||
|
||||
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
|
||||
# ------------------------------------------
|
||||
m4_define([_LT_MANGLE_OPTION],
|
||||
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
|
||||
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
|
||||
# ---------------------------------------
|
||||
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
|
||||
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
|
||||
# saved as a flag.
|
||||
m4_define([_LT_SET_OPTION],
|
||||
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
|
||||
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
|
||||
_LT_MANGLE_DEFUN([$1], [$2]),
|
||||
[m4_warning([Unknown $1 option `$2'])])[]dnl
|
||||
])
|
||||
|
||||
|
||||
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
|
||||
# ------------------------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
m4_define([_LT_IF_OPTION],
|
||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
|
||||
|
||||
|
||||
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
|
||||
# -------------------------------------------------------
|
||||
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
|
||||
# are set.
|
||||
m4_define([_LT_UNLESS_OPTIONS],
|
||||
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
|
||||
[m4_define([$0_found])])])[]dnl
|
||||
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
|
||||
])[]dnl
|
||||
])
|
||||
|
||||
|
||||
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
|
||||
# ----------------------------------------
|
||||
# OPTION-LIST is a space-separated list of Libtool options associated
|
||||
# with MACRO-NAME. If any OPTION has a matching handler declared with
|
||||
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
|
||||
# the unknown option and exit.
|
||||
m4_defun([_LT_SET_OPTIONS],
|
||||
[# Set options
|
||||
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||
[_LT_SET_OPTION([$1], _LT_Option)])
|
||||
|
||||
m4_if([$1],[LT_INIT],[
|
||||
dnl
|
||||
dnl Simply set some default values (i.e off) if boolean options were not
|
||||
dnl specified:
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
|
||||
])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
|
||||
])
|
||||
dnl
|
||||
dnl If no reference was made to various pairs of opposing options, then
|
||||
dnl we run the default mode handler for the pair. For example, if neither
|
||||
dnl `shared' nor `disable-shared' was passed, we enable building of shared
|
||||
dnl archives by default:
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
|
||||
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
|
||||
[_LT_ENABLE_FAST_INSTALL])
|
||||
])
|
||||
])# _LT_SET_OPTIONS
|
||||
|
||||
|
||||
## --------------------------------- ##
|
||||
## Macros to handle LT_INIT options. ##
|
||||
## --------------------------------- ##
|
||||
|
||||
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
|
||||
# -----------------------------------------
|
||||
m4_define([_LT_MANGLE_DEFUN],
|
||||
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
|
||||
|
||||
|
||||
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
|
||||
# -----------------------------------------------
|
||||
m4_define([LT_OPTION_DEFINE],
|
||||
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
|
||||
])# LT_OPTION_DEFINE
|
||||
|
||||
|
||||
# dlopen
|
||||
# ------
|
||||
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
|
||||
])
|
||||
|
||||
AU_DEFUN([AC_LIBTOOL_DLOPEN],
|
||||
[_LT_SET_OPTION([LT_INIT], [dlopen])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the `dlopen' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
|
||||
|
||||
|
||||
# win32-dll
|
||||
# ---------
|
||||
# Declare package support for building win32 dll's.
|
||||
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
|
||||
[enable_win32_dll=yes
|
||||
|
||||
case $host in
|
||||
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
|
||||
AC_CHECK_TOOL(AS, as, false)
|
||||
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||
;;
|
||||
esac
|
||||
|
||||
test -z "$AS" && AS=as
|
||||
_LT_DECL([], [AS], [0], [Assembler program])dnl
|
||||
|
||||
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
||||
_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
|
||||
|
||||
test -z "$OBJDUMP" && OBJDUMP=objdump
|
||||
_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
|
||||
])# win32-dll
|
||||
|
||||
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
_LT_SET_OPTION([LT_INIT], [win32-dll])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the `win32-dll' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
|
||||
|
||||
|
||||
# _LT_ENABLE_SHARED([DEFAULT])
|
||||
# ----------------------------
|
||||
# implement the --enable-shared flag, and supports the `shared' and
|
||||
# `disable-shared' LT_INIT options.
|
||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||
m4_define([_LT_ENABLE_SHARED],
|
||||
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([shared],
|
||||
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
|
||||
[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
|
||||
[p=${PACKAGE-default}
|
||||
case $enableval in
|
||||
yes) enable_shared=yes ;;
|
||||
no) enable_shared=no ;;
|
||||
*)
|
||||
enable_shared=no
|
||||
# Look at the argument we got. We use all the common list separators.
|
||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||
for pkg in $enableval; do
|
||||
IFS="$lt_save_ifs"
|
||||
if test "X$pkg" = "X$p"; then
|
||||
enable_shared=yes
|
||||
fi
|
||||
done
|
||||
IFS="$lt_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
|
||||
|
||||
_LT_DECL([build_libtool_libs], [enable_shared], [0],
|
||||
[Whether or not to build shared libraries])
|
||||
])# _LT_ENABLE_SHARED
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
|
||||
|
||||
# Old names:
|
||||
AC_DEFUN([AC_ENABLE_SHARED],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_DISABLE_SHARED],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-shared])
|
||||
])
|
||||
|
||||
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
|
||||
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
|
||||
|
||||
|
||||
|
||||
# _LT_ENABLE_STATIC([DEFAULT])
|
||||
# ----------------------------
|
||||
# implement the --enable-static flag, and support the `static' and
|
||||
# `disable-static' LT_INIT options.
|
||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||
m4_define([_LT_ENABLE_STATIC],
|
||||
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([static],
|
||||
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
|
||||
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
|
||||
[p=${PACKAGE-default}
|
||||
case $enableval in
|
||||
yes) enable_static=yes ;;
|
||||
no) enable_static=no ;;
|
||||
*)
|
||||
enable_static=no
|
||||
# Look at the argument we got. We use all the common list separators.
|
||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||
for pkg in $enableval; do
|
||||
IFS="$lt_save_ifs"
|
||||
if test "X$pkg" = "X$p"; then
|
||||
enable_static=yes
|
||||
fi
|
||||
done
|
||||
IFS="$lt_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
|
||||
|
||||
_LT_DECL([build_old_libs], [enable_static], [0],
|
||||
[Whether or not to build static libraries])
|
||||
])# _LT_ENABLE_STATIC
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
|
||||
|
||||
# Old names:
|
||||
AC_DEFUN([AC_ENABLE_STATIC],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
|
||||
])
|
||||
|
||||
AC_DEFUN([AC_DISABLE_STATIC],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-static])
|
||||
])
|
||||
|
||||
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
|
||||
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
|
||||
|
||||
|
||||
|
||||
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
|
||||
# ----------------------------------
|
||||
# implement the --enable-fast-install flag, and support the `fast-install'
|
||||
# and `disable-fast-install' LT_INIT options.
|
||||
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||
m4_define([_LT_ENABLE_FAST_INSTALL],
|
||||
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||
AC_ARG_ENABLE([fast-install],
|
||||
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
|
||||
[optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
|
||||
[p=${PACKAGE-default}
|
||||
case $enableval in
|
||||
yes) enable_fast_install=yes ;;
|
||||
no) enable_fast_install=no ;;
|
||||
*)
|
||||
enable_fast_install=no
|
||||
# Look at the argument we got. We use all the common list separators.
|
||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||
for pkg in $enableval; do
|
||||
IFS="$lt_save_ifs"
|
||||
if test "X$pkg" = "X$p"; then
|
||||
enable_fast_install=yes
|
||||
fi
|
||||
done
|
||||
IFS="$lt_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
|
||||
|
||||
_LT_DECL([fast_install], [enable_fast_install], [0],
|
||||
[Whether or not to optimize for fast installation])dnl
|
||||
])# _LT_ENABLE_FAST_INSTALL
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
|
||||
|
||||
# Old names:
|
||||
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
|
||||
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||
the `fast-install' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
|
||||
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||
the `disable-fast-install' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
|
||||
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
|
||||
|
||||
|
||||
# _LT_WITH_PIC([MODE])
|
||||
# --------------------
|
||||
# implement the --with-pic flag, and support the `pic-only' and `no-pic'
|
||||
# LT_INIT options.
|
||||
# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
|
||||
m4_define([_LT_WITH_PIC],
|
||||
[AC_ARG_WITH([pic],
|
||||
[AS_HELP_STRING([--with-pic],
|
||||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
||||
[pic_mode="$withval"],
|
||||
[pic_mode=default])
|
||||
|
||||
test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
|
||||
|
||||
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
|
||||
])# _LT_WITH_PIC
|
||||
|
||||
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
|
||||
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
|
||||
|
||||
# Old name:
|
||||
AU_DEFUN([AC_LIBTOOL_PICMODE],
|
||||
[_LT_SET_OPTION([LT_INIT], [pic-only])
|
||||
AC_DIAGNOSE([obsolete],
|
||||
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||
put the `pic-only' option into LT_INIT's first parameter.])
|
||||
])
|
||||
|
||||
dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
|
||||
|
||||
## ----------------- ##
|
||||
## LTDL_INIT Options ##
|
||||
## ----------------- ##
|
||||
|
||||
m4_define([_LTDL_MODE], [])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
|
||||
[m4_define([_LTDL_MODE], [nonrecursive])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
|
||||
[m4_define([_LTDL_MODE], [recursive])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
|
||||
[m4_define([_LTDL_MODE], [subproject])])
|
||||
|
||||
m4_define([_LTDL_TYPE], [])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [installable],
|
||||
[m4_define([_LTDL_TYPE], [installable])])
|
||||
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
|
||||
[m4_define([_LTDL_TYPE], [convenience])])
|
123
opal/mca/paffinity/hwloc/hwloc/config/ltsugar.m4
поставляемый
Обычный файл
@ -0,0 +1,123 @@
|
||||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 6 ltsugar.m4
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
|
||||
|
||||
|
||||
# lt_join(SEP, ARG1, [ARG2...])
|
||||
# -----------------------------
|
||||
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
|
||||
# associated separator.
|
||||
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
|
||||
# versions in m4sugar had bugs.
|
||||
m4_define([lt_join],
|
||||
[m4_if([$#], [1], [],
|
||||
[$#], [2], [[$2]],
|
||||
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
|
||||
m4_define([_lt_join],
|
||||
[m4_if([$#$2], [2], [],
|
||||
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
|
||||
|
||||
|
||||
# lt_car(LIST)
|
||||
# lt_cdr(LIST)
|
||||
# ------------
|
||||
# Manipulate m4 lists.
|
||||
# These macros are necessary as long as will still need to support
|
||||
# Autoconf-2.59 which quotes differently.
|
||||
m4_define([lt_car], [[$1]])
|
||||
m4_define([lt_cdr],
|
||||
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
|
||||
[$#], 1, [],
|
||||
[m4_dquote(m4_shift($@))])])
|
||||
m4_define([lt_unquote], $1)
|
||||
|
||||
|
||||
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
|
||||
# ------------------------------------------
|
||||
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
|
||||
# Note that neither SEPARATOR nor STRING are expanded; they are appended
|
||||
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
|
||||
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
|
||||
# than defined and empty).
|
||||
#
|
||||
# This macro is needed until we can rely on Autoconf 2.62, since earlier
|
||||
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
|
||||
m4_define([lt_append],
|
||||
[m4_define([$1],
|
||||
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
|
||||
|
||||
|
||||
|
||||
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
|
||||
# ----------------------------------------------------------
|
||||
# Produce a SEP delimited list of all paired combinations of elements of
|
||||
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
|
||||
# has the form PREFIXmINFIXSUFFIXn.
|
||||
# Needed until we can rely on m4_combine added in Autoconf 2.62.
|
||||
m4_define([lt_combine],
|
||||
[m4_if(m4_eval([$# > 3]), [1],
|
||||
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
|
||||
[[m4_foreach([_Lt_prefix], [$2],
|
||||
[m4_foreach([_Lt_suffix],
|
||||
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
|
||||
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
|
||||
|
||||
|
||||
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
|
||||
# -----------------------------------------------------------------------
|
||||
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
|
||||
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
|
||||
m4_define([lt_if_append_uniq],
|
||||
[m4_ifdef([$1],
|
||||
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
|
||||
[lt_append([$1], [$2], [$3])$4],
|
||||
[$5])],
|
||||
[lt_append([$1], [$2], [$3])$4])])
|
||||
|
||||
|
||||
# lt_dict_add(DICT, KEY, VALUE)
|
||||
# -----------------------------
|
||||
m4_define([lt_dict_add],
|
||||
[m4_define([$1($2)], [$3])])
|
||||
|
||||
|
||||
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
|
||||
# --------------------------------------------
|
||||
m4_define([lt_dict_add_subkey],
|
||||
[m4_define([$1($2:$3)], [$4])])
|
||||
|
||||
|
||||
# lt_dict_fetch(DICT, KEY, [SUBKEY])
|
||||
# ----------------------------------
|
||||
m4_define([lt_dict_fetch],
|
||||
[m4_ifval([$3],
|
||||
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
|
||||
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
|
||||
|
||||
|
||||
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
|
||||
# -----------------------------------------------------------------
|
||||
m4_define([lt_if_dict_fetch],
|
||||
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
|
||||
[$5],
|
||||
[$6])])
|
||||
|
||||
|
||||
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
|
||||
# --------------------------------------------------------------
|
||||
m4_define([lt_dict_filter],
|
||||
[m4_if([$5], [], [],
|
||||
[lt_join(m4_quote(m4_default([$4], [[, ]])),
|
||||
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
|
||||
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
|
||||
])
|
23
opal/mca/paffinity/hwloc/hwloc/config/ltversion.m4
поставляемый
Обычный файл
@ -0,0 +1,23 @@
|
||||
# ltversion.m4 -- version numbers -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
# Written by Scott James Remnant, 2004
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# Generated from ltversion.in.
|
||||
|
||||
# serial 3017 ltversion.m4
|
||||
# This file is part of GNU Libtool
|
||||
|
||||
m4_define([LT_PACKAGE_VERSION], [2.2.6b])
|
||||
m4_define([LT_PACKAGE_REVISION], [1.3017])
|
||||
|
||||
AC_DEFUN([LTVERSION_VERSION],
|
||||
[macro_version='2.2.6b'
|
||||
macro_revision='1.3017'
|
||||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
||||
_LT_DECL(, macro_revision, 0)
|
||||
])
|
92
opal/mca/paffinity/hwloc/hwloc/config/lt~obsolete.m4
поставляемый
Обычный файл
@ -0,0 +1,92 @@
|
||||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
# Written by Scott James Remnant, 2004.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4 lt~obsolete.m4
|
||||
|
||||
# These exist entirely to fool aclocal when bootstrapping libtool.
|
||||
#
|
||||
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
|
||||
# which have later been changed to m4_define as they aren't part of the
|
||||
# exported API, or moved to Autoconf or Automake where they belong.
|
||||
#
|
||||
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
|
||||
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
|
||||
# using a macro with the same name in our local m4/libtool.m4 it'll
|
||||
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
|
||||
# and doesn't know about Autoconf macros at all.)
|
||||
#
|
||||
# So we provide this file, which has a silly filename so it's always
|
||||
# included after everything else. This provides aclocal with the
|
||||
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
|
||||
# because those macros already exist, or will be overwritten later.
|
||||
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
||||
#
|
||||
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
|
||||
# Yes, that means every name once taken will need to remain here until
|
||||
# we give up compatibility with versions before 1.7, at which point
|
||||
# we need to keep only those names which we still refer to.
|
||||
|
||||
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
|
||||
|
||||
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
|
||||
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
|
||||
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
|
||||
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
|
||||
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
|
||||
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
|
||||
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
|
||||
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
|
||||
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
|
||||
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
|
||||
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
|
||||
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
|
||||
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
|
||||
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
|
||||
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
|
||||
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
|
||||
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
|
||||
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
|
||||
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
|
||||
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
|
||||
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
|
||||
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
|
||||
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
|
||||
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
|
||||
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
|
||||
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
|
||||
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
|
||||
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
|
||||
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
|
||||
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
|
||||
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
|
||||
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
|
||||
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
|
||||
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
|
||||
m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
|
||||
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
|
||||
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
|
||||
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
|
376
opal/mca/paffinity/hwloc/hwloc/config/missing
Исполняемый файл
@ -0,0 +1,376 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
20863
opal/mca/paffinity/hwloc/hwloc/configure
поставляемый
Исполняемый файл
147
opal/mca/paffinity/hwloc/hwloc/configure.ac
Обычный файл
@ -0,0 +1,147 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
||||
# Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
#
|
||||
# See COPYING in top-level directory.
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
AC_INIT([hwloc],
|
||||
[m4_normalize(esyscmd([config/hwloc_get_version.sh VERSION --base]))],
|
||||
[http://www.open-mpi.org/community/help/], [hwloc])
|
||||
AC_PREREQ(2.63)
|
||||
AC_CONFIG_AUX_DIR(./config)
|
||||
# Note that this directory must *exactly* match what was specified via
|
||||
# -I in ACLOCAL_AMFLAGS in the top-level Makefile.am.
|
||||
AC_CONFIG_MACRO_DIR(./config)
|
||||
|
||||
cat <<EOF
|
||||
|
||||
###
|
||||
### Configuring hwloc distribution tarball
|
||||
### Startup tests
|
||||
###
|
||||
EOF
|
||||
|
||||
# This must be before AM_INIT_AUTOMAKE
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
# Init automake
|
||||
AM_INIT_AUTOMAKE([1.10 dist-bzip2 subdir-objects foreign tar-ustar -Wall -Werror])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
||||
# Libtool2 is needed
|
||||
m4_ifdef([LT_PREREQ], [],
|
||||
[m4_fatal([libtool version 2.2.6 or higher is required], [63])])
|
||||
|
||||
# Make configure depend on the VERSION file, since it's used in AC_INIT
|
||||
AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
|
||||
|
||||
# Get the version of hwloc that we are installing
|
||||
AC_MSG_CHECKING([for hwloc version])
|
||||
HWLOC_VERSION="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION`"
|
||||
HWLOC_MAJOR_VERSION="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION --major`"
|
||||
HWLOC_MINOR_VERSION="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION --minor`"
|
||||
HWLOC_RELEASE_VERSION="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION --release`"
|
||||
HWLOC_SVN_R="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION --svn`"
|
||||
HWLOC_RELEASE_DATE="`$srcdir/config/hwloc_get_version.sh $srcdir/VERSION --release-date`"
|
||||
AC_SUBST(HWLOC_VERSION)
|
||||
AC_SUBST(HWLOC_SVN_R)
|
||||
AC_SUBST(HWLOC_RELEASE_DATE)
|
||||
AC_DEFINE_UNQUOTED([HWLOC_MAJOR_VERSION], [$HWLOC_MAJOR_VERSION],
|
||||
[Major version of hwloc])
|
||||
AC_DEFINE_UNQUOTED([HWLOC_MINOR_VERSION], [$HWLOC_MINOR_VERSION],
|
||||
[Minor version of hwloc])
|
||||
AC_DEFINE_UNQUOTED([HWLOC_RELEASE_VERSION], [$HWLOC_RELEASE_VERSION],
|
||||
[Release version of hwloc])
|
||||
AC_MSG_RESULT([$HWLOC_VERSION])
|
||||
|
||||
# Override/fixup the version numbers set by AC_INIT, since on
|
||||
# developer builds, there's no good way to know what the version is
|
||||
# before running configure :(. We only use the base version number
|
||||
# (ie, no svn r numbers) for the version set in AC_INIT. This will
|
||||
# always match reality because we add the VERSION file (the only way
|
||||
# to change the major.minor.release{greek}) into the configure
|
||||
# dependencies.
|
||||
|
||||
PACKAGE_VERSION="$HWLOC_VERSION"
|
||||
PACKAGE_STRING="${PACKAGE_NAME} ${PACKAGE_VERSION}"
|
||||
VERSION="${PACKAGE_VERSION}"
|
||||
|
||||
# For standalone configurations, we also include a .so version number.
|
||||
|
||||
. $srcdir/VERSION
|
||||
AC_SUBST([libhwloc_so_version])
|
||||
|
||||
# Setup the header file
|
||||
AH_TOP([/* -*- c -*-
|
||||
*
|
||||
* Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
|
||||
* Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
* This file is automatically generated by configure. Edits will be lost
|
||||
* the next time you run configure!
|
||||
*/
|
||||
|
||||
#ifndef HWLOC_CONFIGURE_H
|
||||
#define HWLOC_CONFIGURE_H
|
||||
])
|
||||
AH_BOTTOM([
|
||||
#endif /* HWLOC_CONFIGURE_H */
|
||||
])
|
||||
|
||||
# Setup C compiler
|
||||
|
||||
CFLAGS_save="$CFLAGS"
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
CFLAGS="$CFLAGS_save"
|
||||
|
||||
# Define hwloc's configure arguments
|
||||
HWLOC_DEFINE_ARGS
|
||||
|
||||
# If debug mode, add -g
|
||||
AS_IF([test "$hwloc_debug" = "1"],
|
||||
[CFLAGS="$CFLAGS -g"])
|
||||
|
||||
# If the user didn't specifically ask for embedding mode, default to
|
||||
# standalone mode
|
||||
AS_IF([test "$enable_embedded_mode" != "yes"],
|
||||
[HWLOC_BUILD_STANDALONE])
|
||||
|
||||
# Setup the hwloc core
|
||||
HWLOC_SETUP_CORE([], [], [hwloc_setup=unhappy], [1])
|
||||
AS_IF([test "$hwloc_setup" = "unhappy"],
|
||||
[AC_MSG_ERROR([Cannot continue])])
|
||||
|
||||
# Setup hwloc's docs, utils, and tests
|
||||
AS_IF([test "$hwloc_mode" = "standalone"],
|
||||
[HWLOC_SETUP_DOCS
|
||||
HWLOC_SETUP_UTILS
|
||||
HWLOC_SETUP_TESTS])
|
||||
|
||||
# Run the AM_CONDITIONALs
|
||||
HWLOC_DO_AM_CONDITIONALS
|
||||
|
||||
# Set the final flags
|
||||
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
|
||||
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
|
||||
|
||||
# Setup libtool, but disable C++, F77, Java and Windows Resource
|
||||
# Compiler support -- we don't need that stuff.
|
||||
AM_ENABLE_SHARED
|
||||
AM_DISABLE_STATIC
|
||||
AM_PROG_LIBTOOL([win32-dll])
|
||||
LT_LANG([C])
|
||||
|
||||
# Party on
|
||||
AC_OUTPUT
|
469
opal/mca/paffinity/hwloc/hwloc/doc/Makefile.am
Обычный файл
@ -0,0 +1,469 @@
|
||||
# Copyright © 2009 INRIA, Université Bordeaux 1
|
||||
# Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
AM_CPPFLAGS = $(HWLOC_CPPFLAGS)
|
||||
|
||||
DOCDIR = $(HWLOC_top_builddir)/doc
|
||||
DOX_CONFIG = $(HWLOC_top_srcdir)/doc/doxygen.cfg
|
||||
|
||||
DOX_DIR = doxygen-doc
|
||||
DOX_HTML_DIR = $(DOX_DIR)/html
|
||||
DOX_MAN_DIR = $(DOX_DIR)/man
|
||||
DOX_LATEX_DIR = $(DOX_DIR)/latex
|
||||
DOX_A4PDF = doxygen-doc/$(PACKAGE)-a4.pdf
|
||||
DOX_LETTERPDF = doxygen-doc/$(PACKAGE)-letter.pdf
|
||||
DOX_TAG = $(DOX_DIR)/$(PACKAGE).tag
|
||||
|
||||
#
|
||||
# The goal is that Doxygen output (i.e., the documentation) is
|
||||
# included in release tarballs; there is no need to build anything
|
||||
# from tarballs. Developers will need to build the docs the first
|
||||
# time they build after a checkout (or if something in the docs
|
||||
# changes, etc.).
|
||||
#
|
||||
# Note that by listing directories in EXTRA_DIST, we pick up the whole
|
||||
# tree (e.g., everything in the man and latex directories).
|
||||
#
|
||||
|
||||
PREBUILT_IMAGES = images/dudley.png images/emmett.png images/hagrid.png
|
||||
image_built_sources = images/diagram.png images/diagram.eps
|
||||
|
||||
EXTRA_DIST = \
|
||||
hwloc.doxy \
|
||||
doxygen.css \
|
||||
doxygen.cfg \
|
||||
images/diagram.fig \
|
||||
www.open-mpi.org.cfg \
|
||||
www.open-mpi.org-css.inc \
|
||||
www.open-mpi.org-footer.inc \
|
||||
www.open-mpi.org-header.inc \
|
||||
$(PREBUILT_IMAGES) \
|
||||
$(image_built_sources)
|
||||
|
||||
#
|
||||
# Files where the doxygen inputs live (i.e., dependencies). Make the
|
||||
# generated tagfile depend on these files, which will force them to be
|
||||
# regenerated (i.e., re-run doxygen) whenever any of these files
|
||||
# change.
|
||||
#
|
||||
|
||||
dox_inputs = $(DOX_CONFIG) \
|
||||
$(srcdir)/hwloc.doxy \
|
||||
$(HWLOC_top_srcdir)/include/hwloc.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/helper.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/cpuset.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/glibc-sched.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/linux.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/linux-libnuma.h \
|
||||
$(HWLOC_top_srcdir)/include/hwloc/openfabrics-verbs.h
|
||||
|
||||
#
|
||||
# Create the images that we need for the PDF output and the HTML
|
||||
# output. There is not an easy way to check if the output of
|
||||
# AC_PATH_PROG found something in configure.ac (!), so we have to put
|
||||
# a run-time check here to see if fig2dev was found. :-(
|
||||
#
|
||||
# Note that BUILD_DOXYGEN will automatically be false if we're not
|
||||
# building standalone.
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_DOXYGEN
|
||||
BUILT_SOURCES = $(image_built_sources)
|
||||
|
||||
images/diagram.png: $(srcdir)/images/diagram.fig
|
||||
$(MKDIR_P) images
|
||||
@if test "x$(FIG2DEV)" = "x"; then \
|
||||
echo "ERROR: Cannot find the 'fig2dev' executable -- cannot make $@"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(FIG2DEV) -L png $< $@
|
||||
|
||||
images/diagram.eps: $(srcdir)/images/diagram.fig
|
||||
$(MKDIR_P) images
|
||||
@if test "x$(FIG2DEV)" = "x"; then \
|
||||
echo "ERROR: Cannot find the 'fig2dev' executable -- cannot make $@"; \
|
||||
exit 1; \
|
||||
fi
|
||||
$(FIG2DEV) -L eps $< $@
|
||||
endif
|
||||
|
||||
#
|
||||
# Rules for running doxygen. It depends on the built images and the
|
||||
# dox_inputs.
|
||||
# Remove useless manpages, they have too long filenames anyway because
|
||||
# of nested structurre/union declarations.
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_DOXYGEN
|
||||
$(DOX_TAG): $(BUILT_SOURCES) $(dox_inputs) $(PREBUILT_IMAGES)
|
||||
rm -fr $(DOX_DIR)
|
||||
$(DOXYGEN) $(DOX_CONFIG)
|
||||
-sed -i \
|
||||
-e 's/__hwloc_restrict/restrict/g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-restrict/restrict/g' \
|
||||
-e 's/__hwloc_attribute_unused//g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-attribute\\_\\-unused//g' \
|
||||
-e 's/__hwloc_attribute_malloc//g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-attribute\\_\\-malloc//g' \
|
||||
-e 's/__hwloc_attribute_const//g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-attribute\\_\\-const//g' \
|
||||
-e 's/__hwloc_attribute_pure//g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-attribute\\_\\-pure//g' \
|
||||
-e 's/__hwloc_attribute_deprecated//g' \
|
||||
-e 's/\\_\\-\\_\\-hwloc\\_\\-attribute\\_\\-deprecated//g' \
|
||||
-e 's/HWLOC_DECLSPEC//g' \
|
||||
-e 's/HWLOC\\_\\-DECLSPEC//g' \
|
||||
-e 's/__inline/inline/g' \
|
||||
-e 's/\\_\\-\\_\\-inline/inline/g' \
|
||||
$(DOX_DIR)/html/*.html $(DOX_DIR)/latex/*.tex $(DOX_DIR)/man/man3/*.3
|
||||
@echo "Work-around spurious leading _ in doxygen filenames..."
|
||||
(cd $(DOX_DIR)/man/man3 ; \
|
||||
for i in _hwloc* ; do \
|
||||
[ ! -f $$i ] || mv $$i $${i#_} ; \
|
||||
done)
|
||||
@echo "Removing useless manpages..."
|
||||
@mkdir $(DOX_DIR)/man.tmp
|
||||
@mv $(man3_MANS) $(DOX_DIR)/man.tmp/
|
||||
@rm -rf $(DOX_DIR)/man/man3
|
||||
@mv $(DOX_DIR)/man.tmp $(DOX_DIR)/man/man3
|
||||
if HWLOC_DOXYGEN_BROKEN_SHORT_NAMES
|
||||
@echo "Work-around buggy doxygen filenames..."
|
||||
-@mv -f $(DOX_DIR)/html/termsanddefs.html $(DOX_DIR)/html/a00001.html
|
||||
-@mv -f $(DOX_DIR)/latex/termsanddefs.tex $(DOX_DIR)/latex/a00001.tex
|
||||
-@mv -f $(DOX_DIR)/html/tools.html $(DOX_DIR)/html/a00002.html
|
||||
-@mv -f $(DOX_DIR)/latex/tools.tex $(DOX_DIR)/latex/a00002.tex
|
||||
-@mv -f $(DOX_DIR)/html/envvar.html $(DOX_DIR)/html/a00003.html
|
||||
-@mv -f $(DOX_DIR)/latex/envvar.tex $(DOX_DIR)/latex/a00003.tex
|
||||
-@mv -f $(DOX_DIR)/html/threadsafety.html $(DOX_DIR)/html/a00004.html
|
||||
-@mv -f $(DOX_DIR)/latex/threadsafety.tex $(DOX_DIR)/latex/a00004.tex
|
||||
-@mv -f $(DOX_DIR)/html/embed.html $(DOX_DIR)/html/a00005.html
|
||||
-@mv -f $(DOX_DIR)/latex/embed.tex $(DOX_DIR)/latex/a00005.tex
|
||||
-@mv -f $(DOX_DIR)/html/switchfromplpa.html $(DOX_DIR)/html/a00006.html
|
||||
-@mv -f $(DOX_DIR)/latex/switchfromplpa.tex $(DOX_DIR)/latex/a00006.tex
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Rules for building the PDF
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_DOXYGEN
|
||||
|
||||
# The Doxygen config is set to generate a4 latex -- no transformation
|
||||
# is necessary.
|
||||
$(DOX_A4PDF): $(DOX_TAG)
|
||||
cd $(DOX_LATEX_DIR); \
|
||||
rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
|
||||
cp refman.tex a4-refman.tex; \
|
||||
$(PDFLATEX) a4-refman.tex; \
|
||||
$(MAKEINDEX) a4-refman.idx; \
|
||||
$(PDFLATEX) a4-refman.tex; \
|
||||
done=0; repeat=5; \
|
||||
while test $$done = 0 -a $$repeat -gt 0; do \
|
||||
if $(EGREP) 'Rerun (LaTeX|to get cross-references right)' a4-refman.log > /dev/null 2>&1; then \
|
||||
$(PDFLATEX) a4-refman.tex; \
|
||||
repeat=`expr $$repeat - 1`; \
|
||||
else \
|
||||
done=1; \
|
||||
fi; \
|
||||
done; \
|
||||
mv a4-refman.pdf $(DOCDIR)/$(DOX_A4PDF)
|
||||
|
||||
# The Doxygen config is set to generate a4 latex -- slightly transform
|
||||
# to make suitable for US letter.
|
||||
$(DOX_LETTERPDF): $(DOX_TAG)
|
||||
cd $(DOX_LATEX_DIR); \
|
||||
rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
|
||||
sed -e 's/a4paper/letterpaper/g' -e 's/\\usepackage{a4wide}//' refman.tex > letter-refman.tex; \
|
||||
$(PDFLATEX) letter-refman.tex; \
|
||||
$(MAKEINDEX) letter-refman.idx; \
|
||||
$(PDFLATEX) letter-refman.tex; \
|
||||
done=0; repeat=5; \
|
||||
while test $$done = 0 -a $$repeat -gt 0; do \
|
||||
if $(EGREP) 'Rerun (LaTeX|to get cross-references right)' letter-refman.log > /dev/null 2>&1; then \
|
||||
$(PDFLATEX) letter-refman.tex; \
|
||||
repeat=`expr $$repeat - 1`; \
|
||||
else \
|
||||
done=1; \
|
||||
fi; \
|
||||
done; \
|
||||
mv letter-refman.pdf $(DOCDIR)/$(DOX_LETTERPDF)
|
||||
endif
|
||||
|
||||
#
|
||||
# Note that we want to use our own doxygen.css file; not the one that
|
||||
# doxygen installs in the HTML directory. So manually copy it over.
|
||||
# Be a little clever: only copy the doxygen.css file over if it exists
|
||||
# in DOX_HTML_DIR (which is in the build tree). If the html tree
|
||||
# doesn't exist in the build tree, then we're using an html tree in
|
||||
# the source tree, and we don't need to copy over the doxygen.css
|
||||
# because we didn't build the html tree (e.g., the html tree came
|
||||
# pre-bundled in a tarball).
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_DOXYGEN
|
||||
all-local: $(DOX_TAG)
|
||||
if test -d $(DOX_HTML_DIR) -a -f $(DOX_HTML_DIR)/doxygen.css; then \
|
||||
cp -f $(srcdir)/doxygen.css $(DOX_HTML_DIR); \
|
||||
fi
|
||||
endif
|
||||
|
||||
#
|
||||
# Un/install the generated PDF and man pages (just like BUILD_DOXYGEN,
|
||||
# INSTALL_DOXYGEN will automatically be false if we're not building in
|
||||
# standalone mode).
|
||||
#
|
||||
|
||||
if HWLOC_INSTALL_DOXYGEN
|
||||
dist_pdf_DATA = $(DOX_A4PDF) $(DOX_LETTERPDF)
|
||||
endif
|
||||
|
||||
#
|
||||
# Install the HWLOC_* and hwloc_* man pages. It would be great to
|
||||
# figure out how to not have to list every installable man page here
|
||||
# in the Makefile.am... :-(
|
||||
#
|
||||
|
||||
if HWLOC_INSTALL_DOXYGEN
|
||||
man3_MANS = \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_CPUBIND_PROCESS.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_CPUBIND_STRICT.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_CPUBIND_THREAD.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_CACHE.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_CORE.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_MACHINE.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_MISC.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_GROUP.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_NODE.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_PU.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_SOCKET.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_OBJ_SYSTEM.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_TYPE_DEPTH_MULTIPLE.3 \
|
||||
$(DOX_MAN_DIR)/man3/HWLOC_TYPE_DEPTH_UNKNOWN.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_compare_types.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpubind_policy_t.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_alloc.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_free.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_dup.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_copy.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_all_but_cpu.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_and.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_andnot.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_clr.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_clr_range.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_compare.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_compare_first.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_fill.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_first.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_foreach_begin.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_foreach_end.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_glibc_sched_affinity.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_ith_ulong.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_bitmask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_nodemask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_ulongs.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_string.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_from_ulong.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_intersects.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_isequal.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_isfull.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_isincluded.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_isset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_iszero.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_last.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_next.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_not.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_or.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_set.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_set_range.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_singlify.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_snprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_asprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_t.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_glibc_sched_affinity.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_ith_ulong.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_bitmask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_nodemask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_ulongs.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_to_ulong.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_weight.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_cpuset_xor.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_distribute.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_closest_objs.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_common_ancestor_obj.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_cache_covering_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_child_covering_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_covering_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_depth_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_allowed_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_complete_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_online_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_topology_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_first_largest_obj_inside_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_largest_objs_inside_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_nbobjs_inside_cpuset_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_nbobjs_inside_cpuset_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_child.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_covering_cpuset_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_covering_cpuset_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_inside_cpuset_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_inside_cpuset_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_next_obj_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_pu_obj_by_os_index.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_below_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_below_array_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_inside_cpuset_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_inside_cpuset_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_obj_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_ancestor_obj_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_ancestor_obj_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_shared_cache_covering_obj.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_root_obj.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_type_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_nbobjs_by_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_nbobjs_by_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_type_or_above_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_type_or_below_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_ibv_get_device_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_linux_parse_cpumap_file.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_attr_u.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_cache_attr_s.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_machine_attr_s.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_group_attr_s.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_memory_s.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_cpuset_snprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_is_in_subtree.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_type_snprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_attr_snprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_snprintf.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_t.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_type_of_string.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_type_string.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_obj_type_t.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_proc_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_get_thread_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_set_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_set_proc_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_set_thread_cpubind.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_check.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_destroy.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_export_xml.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_insert_misc_object_by_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_insert_misc_object_by_parent.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_flags_e.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_depth.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_get_support.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_ignore_all_keep_structure.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_ignore_type.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_ignore_type_keep_structure.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_init.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_is_thissystem.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_load.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_set_flags.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_set_fsroot.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_set_pid.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_set_synthetic.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_set_xml.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_support.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_discovery_support.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_cpubind_support.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwloc_topology_t.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_binding.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_configuration.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_conversion.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_cpuset.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_creation.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_glibc_sched.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_binding.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_find_cache.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_find_covering.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_find_coverings.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_find_inside.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_traversal.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_traversal_basic.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_helper_types.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_information.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_bitmask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_nodemask.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_ulongs.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_objects.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_traversal.3 \
|
||||
$(DOX_MAN_DIR)/man3/hwlocality_types.3
|
||||
endif
|
||||
|
||||
#
|
||||
# Put in these rules to force the generation of the man pages and get
|
||||
# all the dependencies right. Additionally, this forces a
|
||||
# serialization during parallel builds (e.g., "make -j X") to ensure
|
||||
# that we don't get partial target errors.
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_DOXYGEN
|
||||
$(man3_MANS): $(DOX_TAG)
|
||||
$(DOX_A4PDF): $(DOX_TAG)
|
||||
$(DOX_LETTERPDF): $(DOX_TAG)
|
||||
$(DOX_HTML_DIR): $(DOX_TAG)
|
||||
$(DOX_LATEX_DIR): $(DOX_TAG)
|
||||
$(DOX_MAN_DIR): $(DOX_TAG)
|
||||
endif
|
||||
|
||||
#
|
||||
# Make sure that the documentation example works
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_TESTS
|
||||
TESTS = hwloc-hello
|
||||
check_PROGRAMS = $(TESTS)
|
||||
endif HWLOC_BUILD_TESTS
|
||||
|
||||
hwloc_hello_LDADD = $(HWLOC_top_builddir)/src/libhwloc.la
|
||||
hwloc_hello_DEPENDENCIES = $(hwloc_hello_LDADD)
|
||||
|
||||
#
|
||||
# Only remove the actual generated documentation files for maintainers
|
||||
#
|
||||
|
||||
MAINTAINERCLEANFILES = $(DOX_TAG) \
|
||||
-r \
|
||||
$(DOX_HTML_DIR) \
|
||||
$(DOX_MAN_DIR) \
|
||||
$(DOX_LATEX_DIR) \
|
||||
$(DOX_A4PDF) \
|
||||
$(DOX_LETTERPDF)
|
||||
|
||||
#
|
||||
# Rules for creating the top-level README file. There does not appear
|
||||
# to be an easy way to know if AC_PATH_PROG found something in
|
||||
# configure.ac (!), so put a run-time check here to see if we have
|
||||
# w3c.
|
||||
#
|
||||
# Just like BUILD_DOXYGEN, BUILD_README will automatically be false if
|
||||
# we're not building standalone.
|
||||
#
|
||||
|
||||
if HWLOC_BUILD_README
|
||||
doc readme: all $(HWLOC_top_srcdir)/README
|
||||
$(HWLOC_top_srcdir)/README: $(DOX_HTML_DIR)
|
||||
LC_ALL=C $(HWLOC_W3_GENERATOR) $(DOX_HTML_DIR)/index.html | sed -n -e 's/^ //' -e '/^Introduction$$/,$$p' > $@
|
||||
else
|
||||
doc readme: no-build-readme
|
||||
$(HWLOC_top_srcdir)/README: no-build-readme
|
||||
|
||||
no-build-readme:
|
||||
@echo "ERROR: You do not have the 'w3m' or 'lynx' executables to build the README, or do not have the 'doxygen' executable to build the docs."
|
||||
@echo "ERROR: Cannot continue."
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
#DOCUPLOADHOST=sync.bordeaux.inria.fr
|
||||
#DOCUPLOADOPTS=
|
||||
#doc-upload: @DX_DOCDIR@/html
|
||||
# echo FIXME
|
||||
# false
|
||||
# rsync -avz --delete --chmod=ug+rwX,o+rX $(DOCUPLOADOPTS) @DX_DOCDIR@/html/ $(DOCUPLOADHOST):/web/runtime/libtopology/doc/
|
1185
opal/mca/paffinity/hwloc/hwloc/doc/Makefile.in
Обычный файл
21
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-config.cfg.in
Обычный файл
@ -0,0 +1,21 @@
|
||||
# Copyright © 2009 Cisco Systems, Inc. All rights reserved.
|
||||
|
||||
# See big comments in doxygen.cfg about the purpose of this file.
|
||||
|
||||
PROJECT_NUMBER = @PACKAGE_VERSION@
|
||||
|
||||
INPUT = \
|
||||
@top_srcdir@/doc/hwloc.doxy \
|
||||
@top_srcdir@/include/hwloc.h \
|
||||
@top_srcdir@/include/hwloc/helper.h \
|
||||
@top_srcdir@/include/hwloc/cpuset.h \
|
||||
@top_srcdir@/include/hwloc/glibc-sched.h \
|
||||
@top_srcdir@/include/hwloc/linux.h \
|
||||
@top_srcdir@/include/hwloc/linux-libnuma.h \
|
||||
@top_srcdir@/include/hwloc/openfabrics-verbs.h
|
||||
|
||||
EXAMPLE_PATH = @top_srcdir@/doc
|
||||
|
||||
IMAGE_PATH = @top_srcdir@/doc/images images
|
||||
|
||||
INCLUDE_PATH = @top_srcdir@/doc
|
96
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00001.html
Обычный файл
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Terms and Definitions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="termsanddefs">Terms and Definitions </a></h1><dl>
|
||||
<dt>Object </dt>
|
||||
<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="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> enumeration.</p>
|
||||
<p>They are topologically sorted by CPU set into a tree. </p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>CPU set </dt>
|
||||
<dd><p class="startdd">The set of logical processors (or processing units) logically included in an object (if it makes sense). They are always expressed using physical logical processor numbers (as announced by the OS). They are just masks, they do <em>not</em> have any relation with an operating system actual binding notion like Linux' cpusets.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Parent object </dt>
|
||||
<dd><p class="startdd">The object logically containing the current object, for example because its CPU set includes the CPU set of the current object.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Ancestor object </dt>
|
||||
<dd><p class="startdd">The parent object, or its own parent object, and so on.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Children object(s) </dt>
|
||||
<dd><p class="startdd">The object (or objects) contained in the current object because their CPU set is included in the CPU set of the current object.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Arity </dt>
|
||||
<dd><p class="startdd">The number of children of an object.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Sibling objects </dt>
|
||||
<dd><p class="startdd">Objects of the same type which have the same parent.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Sibling rank </dt>
|
||||
<dd><p class="startdd">Index to uniquely identify objects of the same type which have the same parent, and is always in the range [0, parent_arity).</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Cousin objects </dt>
|
||||
<dd><p class="startdd">Objects of the same type as the current object.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Level </dt>
|
||||
<dd><p class="startdd">Set of objects of the same type.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>OS index </dt>
|
||||
<dd><p class="startdd">The index that the operating system (OS) uses to identify the object. This may be completely arbitrary, or it may depend on the BIOS configuration.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Depth </dt>
|
||||
<dd><p class="startdd">Nesting level in the object tree, starting from the 0th object.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Logical index </dt>
|
||||
<dd><p class="startdd">Index to uniquely identify objects of the same type. It expresses proximity in a generic way. This index is always linear and in the range [0, num_objs_same_type_same_level). Think of it as ``cousin rank.'' The ordering is based on topology first, and then on OS CPU numbers, so it is stable across everything except firmware CPU renumbering.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Logical processor </dt>
|
||||
<dd></dd>
|
||||
<dt>Processing unit </dt>
|
||||
<dd><p class="startdd">The smallest processing element that can be represented by a hwloc object. It may be a single-core processor, a core of a multicore processor, or a single thread in SMT processor.</p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>The following diagram can help to understand the vocabulary of the relationships by showing the example of a machine with two dual core sockets (with no hardware threads); thus, a topology with 4 levels. Each box with rounded corner corresponds to one hwloc_obj_t, containing the values of the different integer fields (depth, logical_index, etc.), and arrows show to which other hwloc_obj_t pointers point to (first_child, parent, etc.)</p>
|
||||
<div align="center">
|
||||
<img src="diagram.png" alt="diagram.png"/>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
47
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00002.html
Обычный файл
@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Command-line tools</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="tools">Command-line tools </a></h1><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>
|
||||
<h2><a class="anchor" id="cli_lstopo">
|
||||
lstopo</a></h2>
|
||||
<p>lstopo (also known as hwloc-info and hwloc-ls) displays the hierarchical topology map of the current system. The output may be graphic or textual, and can also be exported to numerous file formats such as PDF, PNG, XML, and others.</p>
|
||||
<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>
|
||||
<h2><a class="anchor" id="cli_hwloc_bind">
|
||||
hwloc-bind</a></h2>
|
||||
<p>hwloc-bind binds processes to specific hardware objects through a flexible syntax. A simple example is binding an executable to specific cores (or sockets or cpusets or ...). The hwloc-bind(1) man page provies much more detail on what is possible.</p>
|
||||
<p>hwloc-bind can also be used to retrieve the current process' binding.</p>
|
||||
<h2><a class="anchor" id="cli_hwloc_calc">
|
||||
hwloc-calc</a></h2>
|
||||
<p>hwloc-calc is generally used to create cpuset strings to pass to hwloc-bind. Although hwloc-bind accepts many forms of object specification (i.e., cpuset strings are one of many forms that hwloc-bind understands), they can be useful, compact representations in shell scripts, for example.</p>
|
||||
<p>hwloc-calc generates cpuset strings from given hardware objects with the ability to aggregate them, intersect them, and more. hwloc-calc generally uses the same syntax than hwloc-bind, but multiple instances may be composed to generate complex combinations.</p>
|
||||
<p>Note that hwloc-calc can also generate lists of logical processors or NUMA nodes that are convenient to pass to some external tools such as taskset or numactl.</p>
|
||||
<h2><a class="anchor" id="cli_hwloc_distrib">
|
||||
hwloc-distrib</a></h2>
|
||||
<p>hwloc-distrib generates a set of cpuset strings that are uniformly distributed across the machine for the given number of processes. These strings may be used with hwloc-bind to run processes to maximize their memory bandwidth by properly distributing them across the machine. </p>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
45
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00003.html
Обычный файл
@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Environment variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="envvar">Environment variables </a></h1><p>The behavior of the hwloc library and tools may be tuned thanks to the following environment variables.</p>
|
||||
<dl>
|
||||
<dt>HWLOC_XMLFILE=/path/to/file.xml </dt>
|
||||
<dd><p class="startdd">enforces the discovery from the given XML file as if <a class="el" href="a00030.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 conveniency, 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>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>HWLOC_FSROOT=/path/to/linux/filesystem-root/ </dt>
|
||||
<dd><p class="startdd">switches to reading the topology from the specified Linux filesystem root instead of the main file-system root, as if <a class="el" href="a00030.html#ga2f6bfb6958d8b508ea1d7d5bb266432c" title="Change the file-system root path when building the topology from sysfs/procfs.">hwloc_topology_set_fsroot()</a> had been called. Not using the main file-system root causes <a class="el" href="a00032.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem()</a> to return 0. For conveniency, 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>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>HWLOC_THISSYSTEM=1 </dt>
|
||||
<dd><p class="startdd">enforces the return value of <a class="el" href="a00032.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>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
50
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00004.html
Обычный файл
@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Thread safety</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="threadsafety">Thread safety </a></h1><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="a00026.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="a00026.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="a00026.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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> instance concurrently.</p>
|
||||
<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="a00026.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>
|
||||
<p>For reference, <a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> modification operations include (but may not be limited to):</p>
|
||||
<dl>
|
||||
<dt>Creation and destruction </dt>
|
||||
<dd><p class="startdd"><code><a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init()</a>, <a class="el" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load()</a>, <a class="el" href="a00029.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy()</a></code> (see <a class="el" href="a00029.html">Create and Destroy Topologies</a>) imply major modifications of the structure, including freeing some objects. No other thread cannot access the topology or any of its objects at the same time.</p>
|
||||
<p>Also references to objects inside the topology are not valid anymore after these functions return. </p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Runtime topology modifications </dt>
|
||||
<dd><p class="startdd"><code>hwloc_topology_insert_misc_object_by_*</code> (see <a class="el" href="a00031.html">Tinker with topologies.</a>) may modify the topology significantly by adding objects inside the tree, changing the topology depth, etc.</p>
|
||||
<p>Although references to former objects <em>may</em> still be valid after insertion, it is strongly advised to not rely on any such guarantee and always re-consult the topology to reacquire new instances of objects. </p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
<dt>Locating topologies </dt>
|
||||
<dd><p class="startdd"><code>hwloc_topology_ignore*</code>, <code>hwloc_topology_set*</code> (see <a class="el" href="a00030.html">Configure Topology Detection</a>) do not modify the topology directly, but they do modify internal structures describing the behavior of the next invocation of <code><a class="el" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load()</a></code>. Hence, all of these functions should not be used concurrently.</p>
|
||||
<p>Note that these functions do not modify the current topology until it is actually reloaded; it is possible to use them while other threads are only read the current topology. </p>
|
||||
<p class="enddd"></p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
78
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00005.html
Обычный файл
@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Embedding hwloc in other software</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="embed">Embedding hwloc in other software </a></h1><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>
|
||||
<p>When used in "embedded" mode, hwloc will:</p>
|
||||
<ul>
|
||||
<li>not install any header files</li>
|
||||
<li>not build any documentation files</li>
|
||||
<li>not build or install any executables or tests</li>
|
||||
<li>not build <code>libhwloc.*</code> -- instead, it will build <code>libhwloc_embedded.*</code></li>
|
||||
</ul>
|
||||
<p>There are two ways to put hwloc into "embedded" mode. The first is directly from the configure command line:</p>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
shell$ ./configure --enable-embedded-mode ...
|
||||
</pre></div><p>The second requires that your software project uses the GNU Autoconf / Automake / Libtool tool chain to build your software. If you do this, you can directly integrate hwloc's m4 configure macro into your configure script. You can then invoke hwloc's configuration tests and build setup by calling an m4 macro (see below).</p>
|
||||
<h2><a class="anchor" id="embedding_m4">
|
||||
Using hwloc's m4 embedding capabilities</a></h2>
|
||||
<p>Every project is different, and there are many different ways of integrating hwloc into yours. What follows is <em>one</em> example of how to do it.</p>
|
||||
<p>If your project uses recent versions Autoconf, Automake, and Libtool to build, you can use hwloc's embedded m4 capabilities. We have tested the embedded m4 with projects that use Autoconf 2.65, Automake 1.11.1, and Libtool 2.2.6b. Slightly earlier versions of may also work but are untested. Autoconf versions prior to 2.63 are almost certain to not work because hwloc uses macros that were introduced in 2.63.</p>
|
||||
<p>You can either copy all the config/hwloc*m4 files from the hwloc source tree to the directory where your project's m4 files reside, or you can tell aclocal to find more m4 files in the embedded hwloc's "config" subdirectory (e.g., add "-Ipath/to/embedded/hwloc/config" to your Makefile.am's ACLOCAL_AMFLAGS).</p>
|
||||
<p>The following macros can then be used from your configure script (only HWLOC_INIT <em>must</em> be invoked if using the m4 macros):</p>
|
||||
<ul>
|
||||
<li>HWLOC_INIT(config-dir-prefix, action-upon-success, action-upon-failure): Invoke the hwloc configuration tests and setup the hwloc tree to build. The first argument is the prefix to use for AC_OUTPUT files -- it's where the hwloc tree is located relative to <code>$top_srcdir</code>. Hence, if your embedded hwloc is located in the source tree at contrib/hwloc, you should pass <code>[contrib/hwloc]</code> as the first argument. If HWLOC_INIT and the rest of <code>configure</code> completes successfully, then "make" traversals of the hwloc tree with standard Automake targets (all, clean, install, etc.) should behave as expected. For example, it is safe to list the hwloc directory in the SUBDIRS of a higher-level Makefile.am. <b>NOTE: If the HWLOC_SET_SYMBOL_PREFIX macro is used, it must be invoked <em>before</em> HWLOC_INIT.</b></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>HWLOC_SET_SYMBOL_PREFIX(foo_): Tells the hwloc to prefix all of hwloc's types and public symbols with "foo_"; meaning that function hwloc_init() becomes foo_hwloc_init(). Enum values are prefixed with an upper-case translation if the prefix supplied; HWLOC_OBJ_SYSTEM becomes FOO_HWLOC_OBJ_SYSTEM. This is recommended behavior if you are including hwloc in middleware -- it is possible that your software will be combined with other software that links to another copy of hwloc. If both uses of hwloc utilize different symbol prefixes, there will be no type/symbol clashes, and everything will compile, link, and run successfully. If you both embed hwloc without changing the symbol prefix and also link against an external hwloc, you may get multiple symbol definitions when linking your final library or application.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>HWLOC_DO_AM_CONDITIONALS: If you embed hwloc in a larger project and build it conditionally (e.g., if HWLOC_INIT is invoked conditionally), you must unconditionally invoke HWLOC_DO_AM_CONDITIONALS to avoid warnings from Automake (for the cases where hwloc is not selected to be built). This macro is necessary because hwloc uses some AM_CONDITIONALs to build itself, and AM_CONDITIONALs cannot be defined conditionally. Note that it is safe (but unnecessary) to call HWLOC_DO_AM_CONDITIONALS even if HWLOC_INIT is invoked unconditionally.</li>
|
||||
</ul>
|
||||
<p>NOTE: When using the HWLOC_INIT m4 macro, it may be necessary to explicitly invoke AC_CANONICAL_TARGET and/or AC_USE_SYSTEM_EXTENSIONS macros early in the configure script (e.g., after AC_INIT but before AM_INIT_AUTOMAKE). See the Autoconf documentation for further information.</p>
|
||||
<h2><a class="anchor" id="embedding_example">
|
||||
Example embedding hwloc</a></h2>
|
||||
<p>Here's an example of integrating with a larger project named sandbox that already uses Autoconf, Automake, and Libtool to build itself:</p>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
# First, cd into the sandbox project source tree
|
||||
shell$ cd sandbox
|
||||
shell$ cp -r /somewhere/else/hwloc-<version> my-embedded-hwloc
|
||||
shell$ edit Makefile.am
|
||||
1. Add "-Imy-embedded-hwloc/config" to ACLOCAL_AMFLAGS
|
||||
2. Add "my-embedded-hwloc" to SUBDIRS
|
||||
3. Add "$(HWLOC_EMBEDDED_LDADD)" to sandbox's executable's LDADD line
|
||||
4. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
|
||||
shell$ edit configure.ac
|
||||
1. Add "HWLOC_SET_SYMBOL_PREFIX(sandbox_hwloc_)" line
|
||||
2. Add "HWLOC_INIT([my-embedded-hwloc], [happy=yes], [happy=no])" line
|
||||
3. Add error checking for happy=no case
|
||||
shell$ edit sandbox.c
|
||||
1. Add #include <hwloc.h>
|
||||
2. Add calls to sandbox_hwloc_init() and other hwloc API functions
|
||||
</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>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
53
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00006.html
Обычный файл
@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Switching from PLPA to hwloc</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h1><a class="anchor" id="switchfromplpa">Switching from PLPA to hwloc </a></h1><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>
|
||||
<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>
|
||||
<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>
|
||||
<h2><a class="anchor" id="switchfromplpa_caching">
|
||||
Topology context vs. caching</a></h2>
|
||||
<p>First, all hwloc functions take a <code>topology</code> parameter. This parameter serves as an internal storage for the result of the topology discovery. It replaces PLPA's caching abilities and even lets you manipulate multiple topologies as the same time, if needed.</p>
|
||||
<p>Thus, all programs should first run <a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init()</a> and <a class="el" href="a00029.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy()</a> as they did plpa_init() and plpa_finalize() in the past.</p>
|
||||
<h2><a class="anchor" id="switchfromplpa_hierarchy">
|
||||
Hierarchy vs. Core@Socket</a></h2>
|
||||
<p>PLPA was designed to understand only cores and sockets. hwloc offers many more different types of objects (e.g., cores, sockets, hardware threads, NUMA nodes, and others) and stores them within a tree of resources.</p>
|
||||
<p>To emulate the PLPA model, it is possible to find sockets using functions such as <a class="el" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type()</a>. Iterating over sockets is also possible using <a class="el" href="a00037.html#gad011fce572551516267de3c57241a326" title="Returns the next object of type type.">hwloc_get_next_obj_by_type()</a>. Then, finding a core within a socket may be done using <a class="el" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type()</a> or <a class="el" href="a00038.html#ga0e939b904fa1e255dde8b295e72b4f07" title="Return the next object of type type included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_type()</a>.</p>
|
||||
<p>It is also possible to directly find an object "below" another object using <a class="el" href="a00042.html#ga80af44c7616bd27eb15949543e12cc9c" title="Find an object below another object, both specified by types and indexes.">hwloc_get_obj_below_by_type()</a> (or <a class="el" href="a00042.html#ga9af0c03238ebcd4b0e174656890a67dc" title="Find an object below a chain of objects specified by types and indexes.">hwloc_get_obj_below_array_by_type()</a>).</p>
|
||||
<h2><a class="anchor" id="switchfromplpa_indexes">
|
||||
Logical vs. Physical/OS indexes</a></h2>
|
||||
<p>hwloc manipulates logical indexes, meaning indexes specified with regard to the ordering of objects in the hwloc-provided hierarchical tree. Physical or OS indexes may be entirely hidden if not strictly required. The reason for this is that physical/OS indexes may change with the OS or with the BIOS version. They may be non-consecutive, multiple objects may have the same physical/OS indexes, making their manipulation tricky and highly non-portable.</p>
|
||||
<p>Note that hwloc tries very hard to always present a hierarchical tree with the same logical ordering, regardless of physical or OS index ordering.</p>
|
||||
<p>It is still possible to retrieve physical/OS indexes through the <code>os_index</code> field of objects, but such practice should be avoided as much as possible for the reasons described above (except perhaps for prettyprinting / debugging purposes).</p>
|
||||
<p><a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a> objects are supposed to have different physical/OS indexes since the OS uses them for binding. The <code>os_index</code> field of these objects provides the identifier that may be used for such binding, and hwloc_get_proc_obj_by_os_index() finds the object associated with a specfic OS index.</p>
|
||||
<p>But as mentioned above, we discourage the use of these conversion methods for actual binding. Instead, hwloc offers its own binding model using the <code>cpuset</code> field of objects. These cpusets may be duplicated, modified, combined, etc. (see <a class="el" href="a00017_source.html" title="The Cpuset API, for use in hwloc itself.">hwloc/cpuset.h</a> for details) and then passed to <a class="el" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144" title="Bind current process or thread on cpus given in cpuset set.">hwloc_set_cpubind()</a> for binding.</p>
|
||||
<h2><a class="anchor" id="switchfromplpa_counting">
|
||||
Counting specification</a></h2>
|
||||
<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>
|
||||
<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="a00044.html#gac3626396192ce01ad6a4811d9d29306b" 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>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
84
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00007.html
Обычный файл
@ -0,0 +1,84 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_cache_attr_s Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navpath"><a class="el" href="a00011.html">hwloc_obj_attr_u</a>::<a class="el" href="a00007.html">hwloc_cache_attr_s</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_attr_u::hwloc_cache_attr_s Struct Reference</h1><!-- doxytag: class="hwloc_obj_attr_u::hwloc_cache_attr_s" -->
|
||||
<p>Cache-specific Object Attributes.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a3c68235220554308f89768f281ad1e62">size</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Size of cache in bytes. <a href="#a3c68235220554308f89768f281ad1e62"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html#a5c8f7f39193736c2187ed626940835d5">depth</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Depth of cache. <a href="#a5c8f7f39193736c2187ed626940835d5"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Cache-specific Object Attributes. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="a5c8f7f39193736c2187ed626940835d5"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_cache_attr_s::depth" ref="a5c8f7f39193736c2187ed626940835d5" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00007.html#a5c8f7f39193736c2187ed626940835d5">hwloc_obj_attr_u::hwloc_cache_attr_s::depth</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Depth of cache. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a3c68235220554308f89768f281ad1e62"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_cache_attr_s::size" ref="a3c68235220554308f89768f281ad1e62" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t <a class="el" href="a00007.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s::size</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Size of cache in bytes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
67
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00008.html
Обычный файл
@ -0,0 +1,67 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_group_attr_s Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navpath"><a class="el" href="a00011.html">hwloc_obj_attr_u</a>::<a class="el" href="a00008.html">hwloc_group_attr_s</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_attr_u::hwloc_group_attr_s Struct Reference</h1><!-- doxytag: class="hwloc_obj_attr_u::hwloc_group_attr_s" -->
|
||||
<p>Group-specific Object Attributes.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html#ad914eac61c77481e1b7037877bcc5579">depth</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Depth of group object. <a href="#ad914eac61c77481e1b7037877bcc5579"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Group-specific Object Attributes. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="ad914eac61c77481e1b7037877bcc5579"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_group_attr_s::depth" ref="ad914eac61c77481e1b7037877bcc5579" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00008.html#ad914eac61c77481e1b7037877bcc5579">hwloc_obj_attr_u::hwloc_group_attr_s::depth</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Depth of group object. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
84
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00009.html
Обычный файл
@ -0,0 +1,84 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_attr_u::hwloc_machine_attr_s Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navpath"><a class="el" href="a00011.html">hwloc_obj_attr_u</a>::<a class="el" href="a00009.html">hwloc_machine_attr_s</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_attr_u::hwloc_machine_attr_s Struct Reference</h1><!-- doxytag: class="hwloc_obj_attr_u::hwloc_machine_attr_s" -->
|
||||
<p>Machine-specific Object Attributes.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#aae85be0b4ebb86501718c4b460df5167">dmi_board_vendor</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">DMI board vendor name. <a href="#aae85be0b4ebb86501718c4b460df5167"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html#a8b99af84fd38753a91c861f0e856b461">dmi_board_name</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">DMI board model name. <a href="#a8b99af84fd38753a91c861f0e856b461"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Machine-specific Object Attributes. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="a8b99af84fd38753a91c861f0e856b461"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_machine_attr_s::dmi_board_name" ref="a8b99af84fd38753a91c861f0e856b461" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* <a class="el" href="a00009.html#a8b99af84fd38753a91c861f0e856b461">hwloc_obj_attr_u::hwloc_machine_attr_s::dmi_board_name</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>DMI board model name. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aae85be0b4ebb86501718c4b460df5167"></a><!-- doxytag: member="hwloc_obj_attr_u::hwloc_machine_attr_s::dmi_board_vendor" ref="aae85be0b4ebb86501718c4b460df5167" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* <a class="el" href="a00009.html#aae85be0b4ebb86501718c4b460df5167">hwloc_obj_attr_u::hwloc_machine_attr_s::dmi_board_vendor</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>DMI board vendor name. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
510
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00010.html
Обычный файл
@ -0,0 +1,510 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj Struct Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00028.html">Topology Objects</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_obj" -->
|
||||
<p>Structure of a topology object.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#acc4f0803f244867e68fe0036800be5de">type</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Type of object. <a href="#acc4f0803f244867e68fe0036800be5de"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9">os_index</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">OS-provided physical index number. <a href="#a61a7a80a68eaccbaaa28269e678c81a9"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d">name</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Object description if any. <a href="#abb709ec38f2970677e4e57d1d30be96d"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00013.html">hwloc_obj_memory_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a1dc830816716213b5f797e4052487864">memory</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Memory attributes. <a href="#a1dc830816716213b5f797e4052487864"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">union <a class="el" href="a00011.html">hwloc_obj_attr_u</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8">attr</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Object type-specific Attributes. <a href="#accd40e29f71f19e88db62ea3df02adc8"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5">depth</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Vertical index in the hierarchy. <a href="#a9d82690370275d42d652eccdea5d3ee5"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9">logical_index</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Horizontal index in the whole list of similar objects, could be a "cousin_rank" since it's the rank within the "cousin" list below. <a href="#a0d07fb7b8935e137c94d75a3eb492ae9"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">signed </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde">os_level</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">OS-provided physical level, -1 if unknown or meaningless. <a href="#a68766f0b1c4d61b5bad87e3b81dacfde"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a85a788017457129589318b6c39451acf">next_cousin</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Next object of same type. <a href="#a85a788017457129589318b6c39451acf"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0">prev_cousin</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Previous object of same type. <a href="#ac715989f55ff5a0eb6be2969ee477ec0"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#adc494f6aed939992be1c55cca5822900">parent</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Parent, <code>NULL</code> if root (system object). <a href="#adc494f6aed939992be1c55cca5822900"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd">sibling_rank</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Index in parent's <code>children</code>[] array. <a href="#aaa6043eee6f55869933c1d974efd9acd"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40">next_sibling</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Next object below the same parent. <a href="#a7f2343ed476fe4942e6fffd4cade1b40"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50">prev_sibling</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Previous object below the same parent. <a href="#a7b89e8c189876c0158a9282aaaf17f50"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1">arity</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of children. <a href="#aac3f6da35c9b57599909a44ce2b716c1"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> ** </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f">children</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Children, <code>children</code>[0 .. arity -1]. <a href="#a04d05403da37bfe17cd63b7c7dd07b1f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc">first_child</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">First child. <a href="#af51d08a0a79dba517c06c5afedc8d2dc"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f">last_child</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Last child. <a href="#a84bd65634dbc55f4158b74443a9bd04f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5">userdata</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Application-given private data pointer, initialized to <code>NULL</code>, use it as you wish. <a href="#a76fd3ac94401cf32dfccc3a3a8de68a5"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f">cpuset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">CPUs covered by this object. <a href="#a67925e0f2c47f50408fbdb9bddd0790f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c">complete_cpuset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The complete CPU set of logical processors of this object,. <a href="#a91788a9da687beb7224cc1fd7b75208c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a8842d56c2975380f327ea401c5f53564">online_cpuset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The CPU set of online logical processors. <a href="#a8842d56c2975380f327ea401c5f53564"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34">allowed_cpuset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The CPU set of allowed logical processors. <a href="#afa3c59a6dd3da8ffa48710780a1bfb34"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a79982ede313c2190505fc5e3714a16fb">nodeset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">NUMA nodes covered by this object or containing this object. <a href="#a79982ede313c2190505fc5e3714a16fb"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f">complete_nodeset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The complete NUMA node set of this object,. <a href="#adc473a52c071d7fd49e659ac90467a0f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b">allowed_nodeset</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">The set of allowed NUMA memory nodes. <a href="#a9c1af614e0978a65ce309f921a822c8b"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Structure of a topology object. </p>
|
||||
<p>Applications mustn't modify any field except userdata . </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="afa3c59a6dd3da8ffa48710780a1bfb34"></a><!-- doxytag: member="hwloc_obj::allowed_cpuset" ref="afa3c59a6dd3da8ffa48710780a1bfb34" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34">hwloc_obj::allowed_cpuset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>The CPU set of allowed logical processors. </p>
|
||||
<p>This includes the CPUs contained in this object which are allowed for binding, i.e. passing them to the hwloc binding functions should not return permission errors. This is usually restricted by administration rules. Some of them may however be offline so binding to them may still not be possible, see online_cpuset.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a9c1af614e0978a65ce309f921a822c8b"></a><!-- doxytag: member="hwloc_obj::allowed_nodeset" ref="a9c1af614e0978a65ce309f921a822c8b" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b">hwloc_obj::allowed_nodeset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>The set of allowed NUMA memory nodes. </p>
|
||||
<p>This includes the NUMA memory nodes contained in this object which are allowed for memory allocation, i.e. passing them to NUMA node-directed memory allocation should not return permission errors. This is usually restricted by administration rules.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aac3f6da35c9b57599909a44ce2b716c1"></a><!-- doxytag: member="hwloc_obj::arity" ref="aac3f6da35c9b57599909a44ce2b716c1" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1">hwloc_obj::arity</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Number of children. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="accd40e29f71f19e88db62ea3df02adc8"></a><!-- doxytag: member="hwloc_obj::attr" ref="accd40e29f71f19e88db62ea3df02adc8" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">union <a class="el" href="a00011.html">hwloc_obj_attr_u</a>* <a class="el" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8">hwloc_obj::attr</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Object type-specific Attributes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a04d05403da37bfe17cd63b7c7dd07b1f"></a><!-- doxytag: member="hwloc_obj::children" ref="a04d05403da37bfe17cd63b7c7dd07b1f" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>** <a class="el" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f">hwloc_obj::children</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Children, <code>children</code>[0 .. arity -1]. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a91788a9da687beb7224cc1fd7b75208c"></a><!-- doxytag: member="hwloc_obj::complete_cpuset" ref="a91788a9da687beb7224cc1fd7b75208c" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c">hwloc_obj::complete_cpuset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>The complete CPU set of logical processors of this object,. </p>
|
||||
<p>This includes not only the same as the cpuset field, but also the CPUs for which topology information is unknown or incomplete, and the CPUs that are ignored when the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM flag is not set. Thus no corresponding PU object may be found in the topology, because the precise position is undefined. It is however known that it would be somewhere under this object.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="adc473a52c071d7fd49e659ac90467a0f"></a><!-- doxytag: member="hwloc_obj::complete_nodeset" ref="adc473a52c071d7fd49e659ac90467a0f" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f">hwloc_obj::complete_nodeset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>The complete NUMA node set of this object,. </p>
|
||||
<p>This includes not only the same as the nodeset field, but also the NUMA nodes for which topology information is unknown or incomplete, and the nodes that are ignored when the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM flag is not set. Thus no corresponding NODE object may be found in the topology, because the precise position is undefined. It is however known that it would be somewhere under this object.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a67925e0f2c47f50408fbdb9bddd0790f"></a><!-- doxytag: member="hwloc_obj::cpuset" ref="a67925e0f2c47f50408fbdb9bddd0790f" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f">hwloc_obj::cpuset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>CPUs covered by this object. </p>
|
||||
<p>This is the set of CPUs for which there are PU objects in the topology under this object, i.e. which are known to be physically contained in this object and known how (the children path between this object and the PU objects).</p>
|
||||
<p>If the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM configuration flag is set, some of these CPUs may be offline, or not allowed for binding, see online_cpuset and allowed_cpuset.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a9d82690370275d42d652eccdea5d3ee5"></a><!-- doxytag: member="hwloc_obj::depth" ref="a9d82690370275d42d652eccdea5d3ee5" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5">hwloc_obj::depth</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Vertical index in the hierarchy. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="af51d08a0a79dba517c06c5afedc8d2dc"></a><!-- doxytag: member="hwloc_obj::first_child" ref="af51d08a0a79dba517c06c5afedc8d2dc" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc">hwloc_obj::first_child</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>First child. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a84bd65634dbc55f4158b74443a9bd04f"></a><!-- doxytag: member="hwloc_obj::last_child" ref="a84bd65634dbc55f4158b74443a9bd04f" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f">hwloc_obj::last_child</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Last child. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a0d07fb7b8935e137c94d75a3eb492ae9"></a><!-- doxytag: member="hwloc_obj::logical_index" ref="a0d07fb7b8935e137c94d75a3eb492ae9" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9">hwloc_obj::logical_index</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Horizontal index in the whole list of similar objects, could be a "cousin_rank" since it's the rank within the "cousin" list below. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a1dc830816716213b5f797e4052487864"></a><!-- doxytag: member="hwloc_obj::memory" ref="a1dc830816716213b5f797e4052487864" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00013.html">hwloc_obj_memory_s</a> <a class="el" href="a00010.html#a1dc830816716213b5f797e4052487864">hwloc_obj::memory</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Memory attributes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="abb709ec38f2970677e4e57d1d30be96d"></a><!-- doxytag: member="hwloc_obj::name" ref="abb709ec38f2970677e4e57d1d30be96d" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">char* <a class="el" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d">hwloc_obj::name</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Object description if any. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a85a788017457129589318b6c39451acf"></a><!-- doxytag: member="hwloc_obj::next_cousin" ref="a85a788017457129589318b6c39451acf" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#a85a788017457129589318b6c39451acf">hwloc_obj::next_cousin</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Next object of same type. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7f2343ed476fe4942e6fffd4cade1b40"></a><!-- doxytag: member="hwloc_obj::next_sibling" ref="a7f2343ed476fe4942e6fffd4cade1b40" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40">hwloc_obj::next_sibling</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Next object below the same parent. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a79982ede313c2190505fc5e3714a16fb"></a><!-- doxytag: member="hwloc_obj::nodeset" ref="a79982ede313c2190505fc5e3714a16fb" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#a79982ede313c2190505fc5e3714a16fb">hwloc_obj::nodeset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>NUMA nodes covered by this object or containing this object. </p>
|
||||
<p>This is the set of NUMA nodes for which there are NODE objects in the topology under or above this object, i.e. which are known to be physically contained in this object or containing it and known how (the children path between this object and the NODE objects).</p>
|
||||
<p>If the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM configuration flag is set, some of these nodes may not be allowed for allocation, see allowed_nodeset.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a8842d56c2975380f327ea401c5f53564"></a><!-- doxytag: member="hwloc_obj::online_cpuset" ref="a8842d56c2975380f327ea401c5f53564" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> <a class="el" href="a00010.html#a8842d56c2975380f327ea401c5f53564">hwloc_obj::online_cpuset</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>The CPU set of online logical processors. </p>
|
||||
<p>This includes the CPUs contained in this object that are online, i.e. draw power and can execute threads. It may however not be allowed to bind to them due to administration rules, see allowed_cpuset.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Its value must not be changed, hwloc_cpuset_dup must be used instead. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a61a7a80a68eaccbaaa28269e678c81a9"></a><!-- doxytag: member="hwloc_obj::os_index" ref="a61a7a80a68eaccbaaa28269e678c81a9" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9">hwloc_obj::os_index</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>OS-provided physical index number. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a68766f0b1c4d61b5bad87e3b81dacfde"></a><!-- doxytag: member="hwloc_obj::os_level" ref="a68766f0b1c4d61b5bad87e3b81dacfde" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">signed <a class="el" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde">hwloc_obj::os_level</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>OS-provided physical level, -1 if unknown or meaningless. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="adc494f6aed939992be1c55cca5822900"></a><!-- doxytag: member="hwloc_obj::parent" ref="adc494f6aed939992be1c55cca5822900" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#adc494f6aed939992be1c55cca5822900">hwloc_obj::parent</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Parent, <code>NULL</code> if root (system object). </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ac715989f55ff5a0eb6be2969ee477ec0"></a><!-- doxytag: member="hwloc_obj::prev_cousin" ref="ac715989f55ff5a0eb6be2969ee477ec0" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0">hwloc_obj::prev_cousin</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Previous object of same type. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a7b89e8c189876c0158a9282aaaf17f50"></a><!-- doxytag: member="hwloc_obj::prev_sibling" ref="a7b89e8c189876c0158a9282aaaf17f50" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50">hwloc_obj::prev_sibling</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Previous object below the same parent. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aaa6043eee6f55869933c1d974efd9acd"></a><!-- doxytag: member="hwloc_obj::sibling_rank" ref="aaa6043eee6f55869933c1d974efd9acd" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd">hwloc_obj::sibling_rank</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Index in parent's <code>children</code>[] array. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="acc4f0803f244867e68fe0036800be5de"></a><!-- doxytag: member="hwloc_obj::type" ref="acc4f0803f244867e68fe0036800be5de" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> <a class="el" href="a00010.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj::type</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Type of object. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a76fd3ac94401cf32dfccc3a3a8de68a5"></a><!-- doxytag: member="hwloc_obj::userdata" ref="a76fd3ac94401cf32dfccc3a3a8de68a5" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void* <a class="el" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5">hwloc_obj::userdata</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Application-given private data pointer, initialized to <code>NULL</code>, use it as you wish. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
112
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00011.html
Обычный файл
@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_attr_u Union Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_attr_u Union Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00028.html">Topology Objects</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_obj_attr_u" -->
|
||||
<p>Object type-specific Attributes.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00007.html">hwloc_cache_attr_s</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Cache-specific Object Attributes. <a href="a00007.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00008.html">hwloc_group_attr_s</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Group-specific Object Attributes. <a href="a00008.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00009.html">hwloc_machine_attr_s</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Machine-specific Object Attributes. <a href="a00009.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00007.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836">cache</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Cache-specific Object Attributes. <a href="#ab5a8ae3bf490e6b1071fea53f7382836"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00009.html">hwloc_obj_attr_u::hwloc_machine_attr_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#a5b42966df7c5bfdc36891e414cc31607">machine</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Machine-specific Object Attributes. <a href="#a5b42966df7c5bfdc36891e414cc31607"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00008.html">hwloc_obj_attr_u::hwloc_group_attr_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">group</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Group-specific Object Attributes. <a href="#ae4ba157cc313e2cdd9a82f1c1df7aaa6"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Object type-specific Attributes. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="ab5a8ae3bf490e6b1071fea53f7382836"></a><!-- doxytag: member="hwloc_obj_attr_u::cache" ref="ab5a8ae3bf490e6b1071fea53f7382836" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00007.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a> <a class="el" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836">hwloc_obj_attr_u::cache</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Cache-specific Object Attributes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ae4ba157cc313e2cdd9a82f1c1df7aaa6"></a><!-- doxytag: member="hwloc_obj_attr_u::group" ref="ae4ba157cc313e2cdd9a82f1c1df7aaa6" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00008.html">hwloc_obj_attr_u::hwloc_group_attr_s</a> <a class="el" href="a00011.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">hwloc_obj_attr_u::group</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Group-specific Object Attributes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5b42966df7c5bfdc36891e414cc31607"></a><!-- doxytag: member="hwloc_obj_attr_u::machine" ref="a5b42966df7c5bfdc36891e414cc31607" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00009.html">hwloc_obj_attr_u::hwloc_machine_attr_s</a> <a class="el" href="a00011.html#a5b42966df7c5bfdc36891e414cc31607">hwloc_obj_attr_u::machine</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Machine-specific Object Attributes. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this union was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
85
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00012.html
Обычный файл
@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_memory_s::hwloc_obj_memory_page_type_s Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navpath"><a class="el" href="a00013.html">hwloc_obj_memory_s</a>::<a class="el" href="a00012.html">hwloc_obj_memory_page_type_s</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_memory_s::hwloc_obj_memory_page_type_s Struct Reference</h1><!-- doxytag: class="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s" -->
|
||||
<p>Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b">size</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Size of pages. <a href="#af0619463fb5d10052b7fe3495a66d74b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3">count</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of pages of this size. <a href="#ab5d01db7b26177a6b5361107cad152c3"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0. </p>
|
||||
<p>The array is sorted by increasing <code>size</code> fields. It contains <code>page_types_len</code> slots. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="ab5d01db7b26177a6b5361107cad152c3"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count" ref="ab5d01db7b26177a6b5361107cad152c3" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t <a class="el" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::count</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Number of pages of this size. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="af0619463fb5d10052b7fe3495a66d74b"></a><!-- doxytag: member="hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size" ref="af0619463fb5d10052b7fe3495a66d74b" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t <a class="el" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s::size</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Size of pages. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
124
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00013.html
Обычный файл
@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_obj_memory_s Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_obj_memory_s Struct Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00028.html">Topology Objects</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_obj_memory_s" -->
|
||||
<p>Object memory.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">hwloc_obj_memory_page_type_s</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </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="a00012.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3">total_memory</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Total memory (in bytes) in this object and its children. <a href="#a68c3323d2d0a248d1b7fec7af44bebe3"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e">local_memory</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Local memory (in bytes). <a href="#a27043a3150660f44ed84916c2d0d7e0e"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57">page_types_len</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Size of array <code>page_types</code>. <a href="#a208c27f4491077d7fb9ba5db8b29cb57"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00012.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html#a865eba7b12b986d72dbe7a2cfd97c50d">page_types</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </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="#a865eba7b12b986d72dbe7a2cfd97c50d"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Object memory. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="a27043a3150660f44ed84916c2d0d7e0e"></a><!-- doxytag: member="hwloc_obj_memory_s::local_memory" ref="a27043a3150660f44ed84916c2d0d7e0e" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t <a class="el" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s::local_memory</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Local memory (in bytes). </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a865eba7b12b986d72dbe7a2cfd97c50d"></a><!-- doxytag: member="hwloc_obj_memory_s::page_types" ref="a865eba7b12b986d72dbe7a2cfd97c50d" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00012.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a> * <a class="el" href="a00013.html#a865eba7b12b986d72dbe7a2cfd97c50d">hwloc_obj_memory_s::page_types</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0. </p>
|
||||
<p>The array is sorted by increasing <code>size</code> fields. It contains <code>page_types_len</code> slots. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a208c27f4491077d7fb9ba5db8b29cb57"></a><!-- doxytag: member="hwloc_obj_memory_s::page_types_len" ref="a208c27f4491077d7fb9ba5db8b29cb57" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned <a class="el" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57">hwloc_obj_memory_s::page_types_len</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Size of array <code>page_types</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a68c3323d2d0a248d1b7fec7af44bebe3"></a><!-- doxytag: member="hwloc_obj_memory_s::total_memory" ref="a68c3323d2d0a248d1b7fec7af44bebe3" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">uint64_t <a class="el" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s::total_memory</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Total memory (in bytes) in this object and its children. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
171
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00014.html
Обычный файл
@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_topology_cpubind_support Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_topology_cpubind_support Struct Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00030.html">Configure Topology Detection</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_topology_cpubind_support" -->
|
||||
<p>Flags describing actual binding support for this topology.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">set_thisproc_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">get_thisproc_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">set_proc_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">get_proc_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">set_thisthread_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">get_thisthread_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a46fba33e307909ce256624687799dd6d">set_thread_cpubind</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">get_thread_cpubind</a></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Flags describing actual binding support for this topology. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="aae705bc447adc163ead377362c4dfe9f"></a><!-- doxytag: member="hwloc_topology_cpubind_support::get_proc_cpubind" ref="aae705bc447adc163ead377362c4dfe9f" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">hwloc_topology_cpubind_support::get_proc_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Getting the binding of a whole given process is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a77a09ddd78ee3e9ff5f532a6ac74f7eb"></a><!-- doxytag: member="hwloc_topology_cpubind_support::get_thisproc_cpubind" ref="a77a09ddd78ee3e9ff5f532a6ac74f7eb" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">hwloc_topology_cpubind_support::get_thisproc_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Getting the binding of the whole current process is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a80d762e532d677dff262d83cc7bb1c60"></a><!-- doxytag: member="hwloc_topology_cpubind_support::get_thisthread_cpubind" ref="a80d762e532d677dff262d83cc7bb1c60" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">hwloc_topology_cpubind_support::get_thisthread_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Getting the binding of the current thread only is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a8dd4d8531ed2eebdce1507e7d104154e"></a><!-- doxytag: member="hwloc_topology_cpubind_support::get_thread_cpubind" ref="a8dd4d8531ed2eebdce1507e7d104154e" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">hwloc_topology_cpubind_support::get_thread_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Getting the binding of a given thread only is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aa166223d1c2a6de7256ab2d8b675a87e"></a><!-- doxytag: member="hwloc_topology_cpubind_support::set_proc_cpubind" ref="aa166223d1c2a6de7256ab2d8b675a87e" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">hwloc_topology_cpubind_support::set_proc_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Binding a whole given process is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a9403d51657a4d546b3ea9553a2973a27"></a><!-- doxytag: member="hwloc_topology_cpubind_support::set_thisproc_cpubind" ref="a9403d51657a4d546b3ea9553a2973a27" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">hwloc_topology_cpubind_support::set_thisproc_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Binding the whole current process is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a57a89a4b5f1f74fa6cfe176f1e8b0798"></a><!-- doxytag: member="hwloc_topology_cpubind_support::set_thisthread_cpubind" ref="a57a89a4b5f1f74fa6cfe176f1e8b0798" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">hwloc_topology_cpubind_support::set_thisthread_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Binding the current thread only is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a46fba33e307909ce256624687799dd6d"></a><!-- doxytag: member="hwloc_topology_cpubind_support::set_thread_cpubind" ref="a46fba33e307909ce256624687799dd6d" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00014.html#a46fba33e307909ce256624687799dd6d">hwloc_topology_cpubind_support::set_thread_cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<p>Binding a given thread only is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
68
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00015.html
Обычный файл
@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_topology_discovery_support Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_topology_discovery_support Struct Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00030.html">Configure Topology Detection</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_topology_discovery_support" -->
|
||||
<p>Flags describing actual discovery support for this topology.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">pu</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Detecting the number of PU objects is supported. <a href="#ad7bb4ecf7a82f5a04fc632e9592ad3ab"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Flags describing actual discovery support for this topology. </p>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="ad7bb4ecf7a82f5a04fc632e9592ad3ab"></a><!-- doxytag: member="hwloc_topology_discovery_support::pu" ref="ad7bb4ecf7a82f5a04fc632e9592ad3ab" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">unsigned char <a class="el" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">hwloc_topology_discovery_support::pu</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Detecting the number of PU objects is supported. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
82
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00016.html
Обычный файл
@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc_topology_support Struct Reference</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>hwloc_topology_support Struct Reference<br/>
|
||||
<small>
|
||||
[<a class="el" href="a00030.html">Configure Topology Detection</a>]</small>
|
||||
</h1><!-- doxytag: class="hwloc_topology_support" -->
|
||||
<p>Set of flags describing actual support for this topology.
|
||||
<a href="#_details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="a00021_source.html">hwloc.h</a>></code></p>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00015.html">hwloc_topology_discovery_support</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#aea3fbd7653d987d81f848636c420504d">discovery</a></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct <br class="typebreak"/>
|
||||
<a class="el" href="a00014.html">hwloc_topology_cpubind_support</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">cpubind</a></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>Set of flags describing actual support for this topology. </p>
|
||||
<p>This is retrieved with <a class="el" href="a00030.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>
|
||||
<hr/><h2>Field Documentation</h2>
|
||||
<a class="anchor" id="adef2bb91f74c3e70a2a071393caf5f56"></a><!-- doxytag: member="hwloc_topology_support::cpubind" ref="adef2bb91f74c3e70a2a071393caf5f56" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00014.html">hwloc_topology_cpubind_support</a>* <a class="el" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">hwloc_topology_support::cpubind</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="aea3fbd7653d987d81f848636c420504d"></a><!-- doxytag: member="hwloc_topology_support::discovery" ref="aea3fbd7653d987d81f848636c420504d" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">struct <a class="el" href="a00015.html">hwloc_topology_discovery_support</a>* <a class="el" href="a00016.html#aea3fbd7653d987d81f848636c420504d">hwloc_topology_support::discovery</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||
<li><a class="el" href="a00021_source.html">hwloc.h</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,146 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): cpuset.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>cpuset.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> */</span>
|
||||
<a name="l00006"></a>00006
|
||||
<a name="l00011"></a>00011 <span class="preprocessor">#ifndef HWLOC_CPUSET_H</span>
|
||||
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_CPUSET_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#include <hwloc/config.h></span>
|
||||
<a name="l00015"></a>00015
|
||||
<a name="l00016"></a>00016
|
||||
<a name="l00030"></a><a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">00030</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>hwloc_cpuset_s * <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a>;
|
||||
<a name="l00031"></a><a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">00031</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keyword">struct </span>hwloc_cpuset_s * <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a>;
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00034"></a>00034 <span class="comment">/*</span>
|
||||
<a name="l00035"></a>00035 <span class="comment"> * CPU set allocation, freeing and copying.</span>
|
||||
<a name="l00036"></a>00036 <span class="comment"> */</span>
|
||||
<a name="l00037"></a>00037
|
||||
<a name="l00044"></a>00044 HWLOC_DECLSPEC <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00045.html#gaf270165b6a08e8418fcfb68f5793ff7f" title="Allocate a new empty CPU set.">hwloc_cpuset_alloc</a>(<span class="keywordtype">void</span>) __hwloc_attribute_malloc;
|
||||
<a name="l00045"></a>00045
|
||||
<a name="l00047"></a>00047 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gaaac6c1536cdcc35f1a1a3a9ab84da80d" title="Free CPU set set.">hwloc_cpuset_free</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set);
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00050"></a>00050 HWLOC_DECLSPEC <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00045.html#ga468c6e3fd92a9d0db1fb56634a851be3" title="Duplicate CPU set set by allocating a new CPU set and copying set&#39;s contents...">hwloc_cpuset_dup</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_malloc;
|
||||
<a name="l00051"></a>00051
|
||||
<a name="l00053"></a>00053 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga27a3b6994bd6f20c1f26d10bdb29ac0b" title="Copy the contents of CPU set src into the already allocated CPU set dst.">hwloc_cpuset_copy</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> dst, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> src);
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055
|
||||
<a name="l00056"></a>00056 <span class="comment">/*</span>
|
||||
<a name="l00057"></a>00057 <span class="comment"> * Cpuset/String Conversion</span>
|
||||
<a name="l00058"></a>00058 <span class="comment"> */</span>
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00067"></a>00067 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga4ed0a2badc6ff03f4d91a8d3c505b3e6" title="Stringify a cpuset.">hwloc_cpuset_snprintf</a>(<span class="keywordtype">char</span> * __hwloc_restrict buf, <span class="keywordtype">size_t</span> buflen, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set);
|
||||
<a name="l00068"></a>00068
|
||||
<a name="l00074"></a>00074 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga7a89398cbc58c9095aa094b9aeacbf00" title="Stringify a cpuset into a newly allocated string.">hwloc_cpuset_asprintf</a>(<span class="keywordtype">char</span> ** strp, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set);
|
||||
<a name="l00075"></a>00075
|
||||
<a name="l00080"></a>00080 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gab6fb26149e25d4e5719a787ee01bacaa" title="Parse a cpuset string and stores it in CPU set set.">hwloc_cpuset_from_string</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, const <span class="keywordtype">char</span> * __hwloc_restrict <span class="keywordtype">string</span>);
|
||||
<a name="l00081"></a>00081
|
||||
<a name="l00082"></a>00082
|
||||
<a name="l00083"></a>00083 <span class="comment">/*</span>
|
||||
<a name="l00084"></a>00084 <span class="comment"> * Primitives & macros for building, modifying and consulting "sets" of cpus.</span>
|
||||
<a name="l00085"></a>00085 <span class="comment"> */</span>
|
||||
<a name="l00086"></a>00086
|
||||
<a name="l00088"></a>00088 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set);
|
||||
<a name="l00089"></a>00089
|
||||
<a name="l00091"></a>00091 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gacdc29003a0663e9b8b3a9d405a94fb70" title="Fill CPU set set with all possible CPUs (even if those CPUs don&#39;t exist or are...">hwloc_cpuset_fill</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set);
|
||||
<a name="l00092"></a>00092
|
||||
<a name="l00094"></a>00094 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga81218f1945e8fa25bbbc4e6277019122" title="Setup CPU set set from unsigned long mask.">hwloc_cpuset_from_ulong</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
|
||||
<a name="l00095"></a>00095
|
||||
<a name="l00097"></a>00097 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gac473267f1aa161c3e3e2a26ef25a477c" title="Setup CPU set set from unsigned long mask used as i -th subset.">hwloc_cpuset_from_ith_ulong</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> i, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> mask);
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00100"></a>00100 HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00045.html#ga5eb912bf1d0572127c3eed1b8a47e6ac" title="Convert the beginning part of CPU set set into unsigned long mask.">hwloc_cpuset_to_ulong</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00101"></a>00101
|
||||
<a name="l00103"></a>00103 HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00045.html#ga7576f6a70291feafe9e538942c8b7ee5" title="Convert the i -th subset of CPU set set into unsigned long mask.">hwloc_cpuset_to_ith_ulong</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <span class="keywordtype">unsigned</span> i) __hwloc_attribute_pure;
|
||||
<a name="l00104"></a>00104
|
||||
<a name="l00106"></a>00106 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga8ee7aa4827fb49af47eac9b66c74fd78" title="Empty the CPU set set and add CPU cpu.">hwloc_cpuset_cpu</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> cpu);
|
||||
<a name="l00107"></a>00107
|
||||
<a name="l00109"></a>00109 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga02d86bba61be473bfdceb336c9087736" title="Empty the CPU set set and add all but the CPU cpu.">hwloc_cpuset_all_but_cpu</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> cpu);
|
||||
<a name="l00110"></a>00110
|
||||
<a name="l00112"></a>00112 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga793d0c31b524337355ddce1c6568a866" title="Add CPU cpu in CPU set set.">hwloc_cpuset_set</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> cpu);
|
||||
<a name="l00113"></a>00113
|
||||
<a name="l00115"></a>00115 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga2f15dc90a98d14db8022f76a38c39727" title="Add CPUs from begincpu to endcpu in CPU set set.">hwloc_cpuset_set_range</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> begincpu, <span class="keywordtype">unsigned</span> endcpu);
|
||||
<a name="l00116"></a>00116
|
||||
<a name="l00118"></a>00118 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga59f2a65f5260581ee642b0a8375be564" title="Remove CPU cpu from CPU set set.">hwloc_cpuset_clr</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> cpu);
|
||||
<a name="l00119"></a>00119
|
||||
<a name="l00121"></a>00121 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga214d599ff5b66073460b7ee9a75016a8" title="Remove CPUs from begincpu to endcpu in CPU set set.">hwloc_cpuset_clr_range</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set, <span class="keywordtype">unsigned</span> begincpu, <span class="keywordtype">unsigned</span> endcpu);
|
||||
<a name="l00122"></a>00122
|
||||
<a name="l00124"></a>00124 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga7236a9cf8be3ded29a912790e35065f7" title="Test whether CPU cpu is part of set set.">hwloc_cpuset_isset</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <span class="keywordtype">unsigned</span> cpu) __hwloc_attribute_pure;
|
||||
<a name="l00125"></a>00125
|
||||
<a name="l00127"></a>00127 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00128"></a>00128
|
||||
<a name="l00130"></a>00130 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gab8703a0f28053bd3981852548e3182d1" title="Test whether set set is completely full.">hwloc_cpuset_isfull</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00131"></a>00131
|
||||
<a name="l00133"></a>00133 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga9534d84820beade1e6155a1e734307a2" title="Test whether set set1 is equal to set set2.">hwloc_cpuset_isequal</a> (<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2) __hwloc_attribute_pure;
|
||||
<a name="l00134"></a>00134
|
||||
<a name="l00136"></a>00136 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gad7cbab558a9a80652c3ad0b30d488f04" title="Test whether sets set1 and set2 intersects.">hwloc_cpuset_intersects</a> (<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2) __hwloc_attribute_pure;
|
||||
<a name="l00137"></a>00137
|
||||
<a name="l00139"></a>00139 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a> (<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> sub_set, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> super_set) __hwloc_attribute_pure;
|
||||
<a name="l00140"></a>00140
|
||||
<a name="l00142"></a>00142 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga9654f87331e6f33090bed3d326346e85" title="Or sets set1 and set2 and store the result in set res.">hwloc_cpuset_or</a> (<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> res, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2);
|
||||
<a name="l00143"></a>00143
|
||||
<a name="l00145"></a>00145 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gacd5a399d475b7d75e71489177650b6df" title="And sets set1 and set2 and store the result in set res.">hwloc_cpuset_and</a> (<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> res, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2);
|
||||
<a name="l00146"></a>00146
|
||||
<a name="l00148"></a>00148 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga338fa981505cb2c87e3e9dc543a698b9" title="And set set1 and the negation of set2 and store the result in set res.">hwloc_cpuset_andnot</a> (<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> res, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2);
|
||||
<a name="l00149"></a>00149
|
||||
<a name="l00151"></a>00151 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga82f8b81aa98c3a488e21838620da8852" title="Xor sets set1 and set2 and store the result in set res.">hwloc_cpuset_xor</a> (<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> res, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2);
|
||||
<a name="l00152"></a>00152
|
||||
<a name="l00154"></a>00154 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#ga9494650a8cb93e1dc77590e2393519a5" title="Negate set set and store the result in set res.">hwloc_cpuset_not</a> (<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> res, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set);
|
||||
<a name="l00155"></a>00155
|
||||
<a name="l00160"></a>00160 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gaec614784aab4c1bd4d279fc548f4aa40" title="Compute the first CPU (least significant bit) in CPU set set.">hwloc_cpuset_first</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00161"></a>00161
|
||||
<a name="l00166"></a>00166 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gaf4fb6d1ca812633f2e5eaa8ae98b1aef" title="Compute the last CPU (most significant bit) in CPU set set.">hwloc_cpuset_last</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00167"></a>00167
|
||||
<a name="l00172"></a>00172 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga6bf3fd9ea7b0d0fcb5656bab8b68c1bf" title="Compute the next CPU in CPU set set which is after CPU prev_cpu.">hwloc_cpuset_next</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <span class="keywordtype">unsigned</span> prev_cpu) __hwloc_attribute_pure;
|
||||
<a name="l00173"></a>00173
|
||||
<a name="l00180"></a>00180 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00045.html#gace7ad3d2a71d9884e7a28311228931af" title="Keep a single CPU among those set in CPU set set.">hwloc_cpuset_singlify</a>(<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> set);
|
||||
<a name="l00181"></a>00181
|
||||
<a name="l00187"></a>00187 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga6d54e9fa190351368ea08d02b6b09d32" title="Compare CPU sets set1 and set2 using their lowest index CPU.">hwloc_cpuset_compare_first</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2) __hwloc_attribute_pure;
|
||||
<a name="l00188"></a>00188
|
||||
<a name="l00194"></a>00194 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#gad3ec83a8f86764d87676a7a48c837d70" title="Compare CPU sets set1 and set2 using their highest index CPU.">hwloc_cpuset_compare</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set1, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set2) __hwloc_attribute_pure;
|
||||
<a name="l00195"></a>00195
|
||||
<a name="l00201"></a>00201 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00045.html#ga432291e25ca6e91ab689b08cdc26d3fa" title="Compute the &quot;weight&quot; of CPU set set (i.e., number of CPUs that are in the...">hwloc_cpuset_weight</a>(<a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set) __hwloc_attribute_pure;
|
||||
<a name="l00202"></a>00202
|
||||
<a name="l00212"></a><a class="code" href="a00045.html#ga8f896ce703ad1740fdf9ce8ac6361359">00212</a> <span class="preprocessor">#define hwloc_cpuset_foreach_begin(cpu, set) \</span>
|
||||
<a name="l00213"></a>00213 <span class="preprocessor">do { \</span>
|
||||
<a name="l00214"></a>00214 <span class="preprocessor"> for (cpu = hwloc_cpuset_first(set); \</span>
|
||||
<a name="l00215"></a>00215 <span class="preprocessor"> cpu != (__typeof__(cpu)) -1; \</span>
|
||||
<a name="l00216"></a>00216 <span class="preprocessor"> cpu = hwloc_cpuset_next(set, cpu)) { \</span>
|
||||
<a name="l00217"></a>00217 <span class="preprocessor"></span>
|
||||
<a name="l00221"></a><a class="code" href="a00045.html#gae2974be78a7d7cddbd38cb23fcc6240a">00221</a> <span class="preprocessor">#define hwloc_cpuset_foreach_end() \</span>
|
||||
<a name="l00222"></a>00222 <span class="preprocessor"> } \</span>
|
||||
<a name="l00223"></a>00223 <span class="preprocessor">} while (0)</span>
|
||||
<a name="l00224"></a>00224 <span class="preprocessor"></span>
|
||||
<a name="l00227"></a>00227 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_CPUSET_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): glibc-sched.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>glibc-sched.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> */</span>
|
||||
<a name="l00005"></a>00005
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef HWLOC_GLIBC_SCHED_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_GLIBC_SCHED_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include <hwloc.h></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include <hwloc/helper.h></span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include <assert.h></span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#if !defined _GNU_SOURCE || !defined _SCHED_H</span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#error sched.h must be included with _GNU_SOURCE defined</span>
|
||||
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
|
||||
<a name="l00024"></a>00024 <span class="preprocessor"></span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#ifdef HWLOC_HAVE_CPU_SET</span>
|
||||
<a name="l00026"></a>00026 <span class="preprocessor"></span>
|
||||
<a name="l00027"></a>00027
|
||||
<a name="l00040"></a>00040 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00041"></a><a class="code" href="a00046.html#gab6bf9c8614d0336c2a358e23e71dbaa9">00041</a> <a class="code" href="a00046.html#gab6bf9c8614d0336c2a358e23e71dbaa9" title="Convert hwloc CPU set toposet into glibc sched affinity CPU set schedset.">hwloc_cpuset_to_glibc_sched_affinity</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> hwlocset,
|
||||
<a name="l00042"></a>00042 cpu_set_t *schedset, <span class="keywordtype">size_t</span> schedsetsize)
|
||||
<a name="l00043"></a>00043 {
|
||||
<a name="l00044"></a>00044 <span class="preprocessor">#ifdef CPU_ZERO_S</span>
|
||||
<a name="l00045"></a>00045 <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> cpu;
|
||||
<a name="l00046"></a>00046 CPU_ZERO_S(schedsetsize, schedset);
|
||||
<a name="l00047"></a>00047 <a class="code" href="a00045.html#ga8f896ce703ad1740fdf9ce8ac6361359" title="Loop macro iterating on CPU set set.">hwloc_cpuset_foreach_begin</a>(cpu, hwlocset)
|
||||
<a name="l00048"></a>00048 CPU_SET_S(cpu, schedsetsize, schedset);
|
||||
<a name="l00049"></a>00049 <a class="code" href="a00045.html#gae2974be78a7d7cddbd38cb23fcc6240a" title="End of loop. Needs a terminating &#39;;&#39;.">hwloc_cpuset_foreach_end</a>();
|
||||
<a name="l00050"></a>00050 <span class="preprocessor">#else </span><span class="comment">/* !CPU_ZERO_S */</span>
|
||||
<a name="l00051"></a>00051 <span class="keywordtype">unsigned</span> cpu;
|
||||
<a name="l00052"></a>00052 CPU_ZERO(schedset);
|
||||
<a name="l00053"></a>00053 assert(schedsetsize == <span class="keyword">sizeof</span>(cpu_set_t));
|
||||
<a name="l00054"></a>00054 <a class="code" href="a00045.html#ga8f896ce703ad1740fdf9ce8ac6361359" title="Loop macro iterating on CPU set set.">hwloc_cpuset_foreach_begin</a>(cpu, hwlocset)
|
||||
<a name="l00055"></a>00055 CPU_SET(cpu, schedset);
|
||||
<a name="l00056"></a>00056 <a class="code" href="a00045.html#gae2974be78a7d7cddbd38cb23fcc6240a" title="End of loop. Needs a terminating &#39;;&#39;.">hwloc_cpuset_foreach_end</a>();
|
||||
<a name="l00057"></a>00057 <span class="preprocessor">#endif </span><span class="comment">/* !CPU_ZERO_S */</span>
|
||||
<a name="l00058"></a>00058 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00059"></a>00059 }
|
||||
<a name="l00060"></a>00060
|
||||
<a name="l00068"></a>00068 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00069"></a><a class="code" href="a00046.html#gac8de46372b7bf4dbc3c68ee04eefb841">00069</a> <a class="code" href="a00046.html#gac8de46372b7bf4dbc3c68ee04eefb841" title="Convert glibc sched affinity CPU set schedset into hwloc CPU set.">hwloc_cpuset_from_glibc_sched_affinity</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> hwlocset,
|
||||
<a name="l00070"></a>00070 <span class="keyword">const</span> cpu_set_t *schedset, <span class="keywordtype">size_t</span> schedsetsize)
|
||||
<a name="l00071"></a>00071 {
|
||||
<a name="l00072"></a>00072 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(hwlocset);
|
||||
<a name="l00073"></a>00073 <span class="preprocessor">#ifdef CPU_ZERO_S</span>
|
||||
<a name="l00074"></a>00074 <span class="preprocessor"></span> <span class="keywordtype">int</span> cpu, count;
|
||||
<a name="l00075"></a>00075 count = CPU_COUNT_S(schedsetsize, schedset);
|
||||
<a name="l00076"></a>00076 cpu = 0;
|
||||
<a name="l00077"></a>00077 <span class="keywordflow">while</span> (count) {
|
||||
<a name="l00078"></a>00078 <span class="keywordflow">if</span> (CPU_ISSET_S(cpu, schedsetsize, schedset)) {
|
||||
<a name="l00079"></a>00079 <a class="code" href="a00045.html#ga793d0c31b524337355ddce1c6568a866" title="Add CPU cpu in CPU set set.">hwloc_cpuset_set</a>(hwlocset, cpu);
|
||||
<a name="l00080"></a>00080 count--;
|
||||
<a name="l00081"></a>00081 }
|
||||
<a name="l00082"></a>00082 cpu++;
|
||||
<a name="l00083"></a>00083 <span class="keywordflow">if</span> (cpu > HWLOC_NBMAXCPUS)
|
||||
<a name="l00084"></a>00084 <span class="keywordflow">break</span>;
|
||||
<a name="l00085"></a>00085 }
|
||||
<a name="l00086"></a>00086 <span class="preprocessor">#else </span><span class="comment">/* !CPU_ZERO_S */</span>
|
||||
<a name="l00087"></a>00087 <span class="comment">/* sched.h does not support dynamic cpu_set_t (introduced in glibc 2.7),</span>
|
||||
<a name="l00088"></a>00088 <span class="comment"> * assume we have a very old interface without CPU_COUNT (added in 2.6)</span>
|
||||
<a name="l00089"></a>00089 <span class="comment"> */</span>
|
||||
<a name="l00090"></a>00090 <span class="keywordtype">int</span> cpu;
|
||||
<a name="l00091"></a>00091 assert(schedsetsize == <span class="keyword">sizeof</span>(cpu_set_t));
|
||||
<a name="l00092"></a>00092 <span class="keywordflow">for</span>(cpu=0; cpu<CPU_SETSIZE && cpu<HWLOC_NBMAXCPUS; cpu++)
|
||||
<a name="l00093"></a>00093 <span class="keywordflow">if</span> (CPU_ISSET(cpu, schedset))
|
||||
<a name="l00094"></a>00094 <a class="code" href="a00045.html#ga793d0c31b524337355ddce1c6568a866" title="Add CPU cpu in CPU set set.">hwloc_cpuset_set</a>(hwlocset, cpu);
|
||||
<a name="l00095"></a>00095 <span class="preprocessor">#endif </span><span class="comment">/* !CPU_ZERO_S */</span>
|
||||
<a name="l00096"></a>00096 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00097"></a>00097 }
|
||||
<a name="l00098"></a>00098
|
||||
<a name="l00102"></a>00102 <span class="preprocessor">#endif </span><span class="comment">/* CPU_SET */</span>
|
||||
<a name="l00103"></a>00103
|
||||
<a name="l00104"></a>00104 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_GLIBC_SCHED_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,464 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): helper.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>helper.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> */</span>
|
||||
<a name="l00006"></a>00006
|
||||
<a name="l00011"></a>00011 <span class="preprocessor">#ifndef HWLOC_HELPER_H</span>
|
||||
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_HELPER_H</span>
|
||||
<a name="l00013"></a>00013 <span class="preprocessor"></span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef HWLOC_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#error Please include the main hwloc.h instead</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor"></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include <stdlib.h></span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include <errno.h></span>
|
||||
<a name="l00020"></a>00020
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00032"></a>00032 <span class="keyword">static</span> __inline <span class="keywordtype">int</span> __hwloc_attribute_pure
|
||||
<a name="l00033"></a><a class="code" href="a00036.html#gaf324fdd1fcb895c32cc6540c92e9245a">00033</a> <a class="code" href="a00036.html#gaf324fdd1fcb895c32cc6540c92e9245a" title="Returns the depth of objects of type type or below.">hwloc_get_type_or_below_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
|
||||
<a name="l00034"></a>00034 {
|
||||
<a name="l00035"></a>00035 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00036"></a>00036
|
||||
<a name="l00037"></a>00037 <span class="keywordflow">if</span> (depth != <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
|
||||
<a name="l00038"></a>00038 <span class="keywordflow">return</span> depth;
|
||||
<a name="l00039"></a>00039
|
||||
<a name="l00040"></a>00040 <span class="comment">/* find the highest existing level with type order >= */</span>
|
||||
<a name="l00041"></a>00041 <span class="keywordflow">for</span>(depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a>); ; depth--)
|
||||
<a name="l00042"></a>00042 <span class="keywordflow">if</span> (<a class="code" href="a00027.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types</a>(<a class="code" href="a00032.html#gadd4964764ae7e49231065d58a553fd31" title="Returns the type of objects at depth depth.">hwloc_get_depth_type</a>(topology, depth), type) < 0)
|
||||
<a name="l00043"></a>00043 <span class="keywordflow">return</span> depth+1;
|
||||
<a name="l00044"></a>00044
|
||||
<a name="l00045"></a>00045 <span class="comment">/* Shouldn't ever happen, as there is always a SYSTEM level with lower order and known depth. */</span>
|
||||
<a name="l00046"></a>00046 abort();
|
||||
<a name="l00047"></a>00047 }
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00055"></a>00055 <span class="keyword">static</span> __inline <span class="keywordtype">int</span> __hwloc_attribute_pure
|
||||
<a name="l00056"></a><a class="code" href="a00036.html#ga4451dffe0bb068f597ec55403e8ed5b8">00056</a> <a class="code" href="a00036.html#ga4451dffe0bb068f597ec55403e8ed5b8" title="Returns the depth of objects of type type or above.">hwloc_get_type_or_above_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
|
||||
<a name="l00057"></a>00057 {
|
||||
<a name="l00058"></a>00058 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00059"></a>00059
|
||||
<a name="l00060"></a>00060 <span class="keywordflow">if</span> (depth != <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
|
||||
<a name="l00061"></a>00061 <span class="keywordflow">return</span> depth;
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 <span class="comment">/* find the lowest existing level with type order <= */</span>
|
||||
<a name="l00064"></a>00064 <span class="keywordflow">for</span>(depth = 0; ; depth++)
|
||||
<a name="l00065"></a>00065 <span class="keywordflow">if</span> (<a class="code" href="a00027.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types</a>(<a class="code" href="a00032.html#gadd4964764ae7e49231065d58a553fd31" title="Returns the type of objects at depth depth.">hwloc_get_depth_type</a>(topology, depth), type) > 0)
|
||||
<a name="l00066"></a>00066 <span class="keywordflow">return</span> depth-1;
|
||||
<a name="l00067"></a>00067
|
||||
<a name="l00068"></a>00068 <span class="comment">/* Shouldn't ever happen, as there is always a PU level with higher order and known depth. */</span>
|
||||
<a name="l00069"></a>00069 abort();
|
||||
<a name="l00070"></a>00070 }
|
||||
<a name="l00071"></a>00071
|
||||
<a name="l00086"></a>00086 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00087"></a><a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6">00087</a> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
|
||||
<a name="l00088"></a>00088 {
|
||||
<a name="l00089"></a>00089 <span class="keywordflow">return</span> <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, 0, 0);
|
||||
<a name="l00090"></a>00090 }
|
||||
<a name="l00091"></a>00091
|
||||
<a name="l00092"></a>00092 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_deprecated
|
||||
<a name="l00093"></a><a class="code" href="a00037.html#ga2cd3460755de499e238c95ba18b323b8">00093</a> <a class="code" href="a00037.html#ga2cd3460755de499e238c95ba18b323b8">hwloc_get_system_obj</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology) { <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a> (topology); }
|
||||
<a name="l00094"></a>00094
|
||||
<a name="l00096"></a>00096 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00097"></a><a class="code" href="a00037.html#ga9cd80f27afd312569715528f3bc5c740">00097</a> <a class="code" href="a00037.html#ga9cd80f27afd312569715528f3bc5c740" title="Returns the ancestor object of obj at depth depth.">hwloc_get_ancestor_obj_by_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <span class="keywordtype">unsigned</span> depth, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj)
|
||||
<a name="l00098"></a>00098 {
|
||||
<a name="l00099"></a>00099 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> ancestor = obj;
|
||||
<a name="l00100"></a>00100 <span class="keywordflow">if</span> (obj-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> < depth)
|
||||
<a name="l00101"></a>00101 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00102"></a>00102 <span class="keywordflow">while</span> (ancestor && ancestor-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> > depth)
|
||||
<a name="l00103"></a>00103 ancestor = ancestor-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00104"></a>00104 <span class="keywordflow">return</span> ancestor;
|
||||
<a name="l00105"></a>00105 }
|
||||
<a name="l00106"></a>00106
|
||||
<a name="l00108"></a>00108 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00109"></a><a class="code" href="a00037.html#gada9d7486d8d7a45d05aa5f2ce70c7ab1">00109</a> <a class="code" href="a00037.html#gada9d7486d8d7a45d05aa5f2ce70c7ab1" title="Returns the ancestor object of obj with type type.">hwloc_get_ancestor_obj_by_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj)
|
||||
<a name="l00110"></a>00110 {
|
||||
<a name="l00111"></a>00111 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> ancestor = obj-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00112"></a>00112 <span class="keywordflow">while</span> (ancestor && ancestor-><a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> != type)
|
||||
<a name="l00113"></a>00113 ancestor = ancestor-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00114"></a>00114 <span class="keywordflow">return</span> ancestor;
|
||||
<a name="l00115"></a>00115 }
|
||||
<a name="l00116"></a>00116
|
||||
<a name="l00121"></a>00121 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00122"></a><a class="code" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554">00122</a> <a class="code" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> depth, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00123"></a>00123 {
|
||||
<a name="l00124"></a>00124 <span class="keywordflow">if</span> (!prev)
|
||||
<a name="l00125"></a>00125 <span class="keywordflow">return</span> <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
|
||||
<a name="l00126"></a>00126 <span class="keywordflow">if</span> (prev-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> != depth)
|
||||
<a name="l00127"></a>00127 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00128"></a>00128 <span class="keywordflow">return</span> prev-><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00129"></a>00129 }
|
||||
<a name="l00130"></a>00130
|
||||
<a name="l00137"></a>00137 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00138"></a><a class="code" href="a00037.html#gad011fce572551516267de3c57241a326">00138</a> <a class="code" href="a00037.html#gad011fce572551516267de3c57241a326" title="Returns the next object of type type.">hwloc_get_next_obj_by_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type,
|
||||
<a name="l00139"></a>00139 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00140"></a>00140 {
|
||||
<a name="l00141"></a>00141 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00142"></a>00142 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00143"></a>00143 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00144"></a>00144 <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a> (topology, depth, prev);
|
||||
<a name="l00145"></a>00145 }
|
||||
<a name="l00146"></a>00146
|
||||
<a name="l00155"></a>00155 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00156"></a><a class="code" href="a00037.html#ga8e939dd36f60110b8ce408f4b294a085">00156</a> <a class="code" href="a00037.html#ga8e939dd36f60110b8ce408f4b294a085" title="Returns the object of type HWLOC_OBJ_PU with os_index.">hwloc_get_pu_obj_by_os_index</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> os_index)
|
||||
<a name="l00157"></a>00157 {
|
||||
<a name="l00158"></a>00158 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = NULL;
|
||||
<a name="l00159"></a>00159 <span class="keywordflow">while</span> ((obj = <a class="code" href="a00037.html#gad011fce572551516267de3c57241a326" title="Returns the next object of type type.">hwloc_get_next_obj_by_type</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a>, obj)) != NULL)
|
||||
<a name="l00160"></a>00160 <span class="keywordflow">if</span> (obj-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a> == os_index)
|
||||
<a name="l00161"></a>00161 <span class="keywordflow">return</span> obj;
|
||||
<a name="l00162"></a>00162 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00163"></a>00163 }
|
||||
<a name="l00164"></a>00164
|
||||
<a name="l00169"></a>00169 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00170"></a><a class="code" href="a00037.html#ga4b5f5ddd9bd1a4443a27453423829b06">00170</a> <a class="code" href="a00037.html#ga4b5f5ddd9bd1a4443a27453423829b06" title="Return the next child.">hwloc_get_next_child</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> parent, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00171"></a>00171 {
|
||||
<a name="l00172"></a>00172 <span class="keywordflow">if</span> (!prev)
|
||||
<a name="l00173"></a>00173 <span class="keywordflow">return</span> parent-><a class="code" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
|
||||
<a name="l00174"></a>00174 <span class="keywordflow">if</span> (prev-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a> != parent)
|
||||
<a name="l00175"></a>00175 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00176"></a>00176 <span class="keywordflow">return</span> prev-><a class="code" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
|
||||
<a name="l00177"></a>00177 }
|
||||
<a name="l00178"></a>00178
|
||||
<a name="l00180"></a>00180 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00181"></a><a class="code" href="a00037.html#gac8fd7795061352cfb7013aee2462c592">00181</a> <a class="code" href="a00037.html#gac8fd7795061352cfb7013aee2462c592" title="Returns the common parent object to objects lvl1 and lvl2.">hwloc_get_common_ancestor_obj</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj1, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj2)
|
||||
<a name="l00182"></a>00182 {
|
||||
<a name="l00183"></a>00183 <span class="keywordflow">while</span> (obj1-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> > obj2-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>)
|
||||
<a name="l00184"></a>00184 obj1 = obj1-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00185"></a>00185 <span class="keywordflow">while</span> (obj2-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> > obj1-><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>)
|
||||
<a name="l00186"></a>00186 obj2 = obj2-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00187"></a>00187 <span class="keywordflow">while</span> (obj1 != obj2) {
|
||||
<a name="l00188"></a>00188 obj1 = obj1-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00189"></a>00189 obj2 = obj2-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00190"></a>00190 }
|
||||
<a name="l00191"></a>00191 <span class="keywordflow">return</span> obj1;
|
||||
<a name="l00192"></a>00192 }
|
||||
<a name="l00193"></a>00193
|
||||
<a name="l00196"></a>00196 <span class="keyword">static</span> __inline <span class="keywordtype">int</span> __hwloc_attribute_pure
|
||||
<a name="l00197"></a><a class="code" href="a00037.html#gadcdc48e34ad3f2fb90c7cc6c5950f06f">00197</a> <a class="code" href="a00037.html#gadcdc48e34ad3f2fb90c7cc6c5950f06f" title="Returns true if _obj_ is inside the subtree beginning with subtree_root.">hwloc_obj_is_in_subtree</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> subtree_root)
|
||||
<a name="l00198"></a>00198 {
|
||||
<a name="l00199"></a>00199 <span class="keywordflow">return</span> <a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, subtree_root-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
<a name="l00200"></a>00200 }
|
||||
<a name="l00201"></a>00201
|
||||
<a name="l00218"></a>00218 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00219"></a><a class="code" href="a00038.html#ga14a384b43da1640e0a4f87252ebab7ce">00219</a> <a class="code" href="a00038.html#ga14a384b43da1640e0a4f87252ebab7ce" title="Get the first largest object included in the given cpuset set.">hwloc_get_first_largest_obj_inside_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
|
||||
<a name="l00220"></a>00220 {
|
||||
<a name="l00221"></a>00221 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
|
||||
<a name="l00222"></a>00222 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#gad7cbab558a9a80652c3ad0b30d488f04" title="Test whether sets set1 and set2 intersects.">hwloc_cpuset_intersects</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
|
||||
<a name="l00223"></a>00223 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00224"></a>00224 <span class="keywordflow">while</span> (!<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
|
||||
<a name="l00225"></a>00225 <span class="comment">/* while the object intersects without being included, look at its children */</span>
|
||||
<a name="l00226"></a>00226 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> child = NULL;
|
||||
<a name="l00227"></a>00227 <span class="keywordflow">while</span> ((child = <a class="code" href="a00037.html#ga4b5f5ddd9bd1a4443a27453423829b06" title="Return the next child.">hwloc_get_next_child</a>(topology, obj, child)) != NULL) {
|
||||
<a name="l00228"></a>00228 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#gad7cbab558a9a80652c3ad0b30d488f04" title="Test whether sets set1 and set2 intersects.">hwloc_cpuset_intersects</a>(child-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
|
||||
<a name="l00229"></a>00229 <span class="keywordflow">break</span>;
|
||||
<a name="l00230"></a>00230 }
|
||||
<a name="l00231"></a>00231 <span class="keywordflow">if</span> (!child)
|
||||
<a name="l00232"></a>00232 <span class="comment">/* no child intersects, return their father */</span>
|
||||
<a name="l00233"></a>00233 <span class="keywordflow">return</span> obj;
|
||||
<a name="l00234"></a>00234 <span class="comment">/* found one intersecting child, look at its children */</span>
|
||||
<a name="l00235"></a>00235 obj = child;
|
||||
<a name="l00236"></a>00236 }
|
||||
<a name="l00237"></a>00237 <span class="comment">/* obj is included, return it */</span>
|
||||
<a name="l00238"></a>00238 <span class="keywordflow">return</span> obj;
|
||||
<a name="l00239"></a>00239 }
|
||||
<a name="l00240"></a>00240
|
||||
<a name="l00245"></a>00245 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00038.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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00246"></a>00246 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> * __hwloc_restrict objs, <span class="keywordtype">int</span> max);
|
||||
<a name="l00247"></a>00247
|
||||
<a name="l00254"></a>00254 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00255"></a><a class="code" href="a00038.html#ga0bf3f1e8e58c2a4561dceb2e261a1913">00255</a> <a class="code" href="a00038.html#ga0bf3f1e8e58c2a4561dceb2e261a1913" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00256"></a>00256 <span class="keywordtype">unsigned</span> depth, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00257"></a>00257 {
|
||||
<a name="l00258"></a>00258 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
|
||||
<a name="l00259"></a>00259 <span class="keywordflow">while</span> (next && !<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(next-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
|
||||
<a name="l00260"></a>00260 next = next-><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00261"></a>00261 <span class="keywordflow">return</span> next;
|
||||
<a name="l00262"></a>00262 }
|
||||
<a name="l00263"></a>00263
|
||||
<a name="l00270"></a>00270 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00271"></a><a class="code" href="a00038.html#ga0e939b904fa1e255dde8b295e72b4f07">00271</a> <a class="code" href="a00038.html#ga0e939b904fa1e255dde8b295e72b4f07" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00272"></a>00272 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00273"></a>00273 {
|
||||
<a name="l00274"></a>00274 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00275"></a>00275 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00276"></a>00276 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00277"></a>00277 <span class="keywordflow">return</span> <a class="code" href="a00038.html#ga0bf3f1e8e58c2a4561dceb2e261a1913" 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);
|
||||
<a name="l00278"></a>00278 }
|
||||
<a name="l00279"></a>00279
|
||||
<a name="l00282"></a>00282 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00283"></a><a class="code" href="a00038.html#ga7be828a425e78d155bd09aba5aaa3d51">00283</a> <a class="code" href="a00038.html#ga7be828a425e78d155bd09aba5aaa3d51" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00284"></a>00284 <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx)
|
||||
<a name="l00285"></a>00285 {
|
||||
<a name="l00286"></a>00286 <span class="keywordtype">unsigned</span> count = 0;
|
||||
<a name="l00287"></a>00287 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
|
||||
<a name="l00288"></a>00288 <span class="keywordflow">while</span> (obj) {
|
||||
<a name="l00289"></a>00289 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>)) {
|
||||
<a name="l00290"></a>00290 <span class="keywordflow">if</span> (count == idx)
|
||||
<a name="l00291"></a>00291 <span class="keywordflow">return</span> obj;
|
||||
<a name="l00292"></a>00292 count++;
|
||||
<a name="l00293"></a>00293 }
|
||||
<a name="l00294"></a>00294 obj = obj-><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00295"></a>00295 }
|
||||
<a name="l00296"></a>00296 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00297"></a>00297 }
|
||||
<a name="l00298"></a>00298
|
||||
<a name="l00305"></a>00305 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00306"></a><a class="code" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17">00306</a> <a class="code" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00307"></a>00307 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
|
||||
<a name="l00308"></a>00308 {
|
||||
<a name="l00309"></a>00309 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00310"></a>00310 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00311"></a>00311 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00312"></a>00312 <span class="keywordflow">return</span> <a class="code" href="a00038.html#ga7be828a425e78d155bd09aba5aaa3d51" 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);
|
||||
<a name="l00313"></a>00313 }
|
||||
<a name="l00314"></a>00314
|
||||
<a name="l00316"></a>00316 <span class="keyword">static</span> __inline <span class="keywordtype">unsigned</span> __hwloc_attribute_pure
|
||||
<a name="l00317"></a><a class="code" href="a00038.html#gada32f235ce6abb3ed1c7571221c52d89">00317</a> <a class="code" href="a00038.html#gada32f235ce6abb3ed1c7571221c52d89" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00318"></a>00318 <span class="keywordtype">unsigned</span> depth)
|
||||
<a name="l00319"></a>00319 {
|
||||
<a name="l00320"></a>00320 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (topology, depth, 0);
|
||||
<a name="l00321"></a>00321 <span class="keywordtype">int</span> count = 0;
|
||||
<a name="l00322"></a>00322 <span class="keywordflow">while</span> (obj) {
|
||||
<a name="l00323"></a>00323 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keyword">set</span>))
|
||||
<a name="l00324"></a>00324 count++;
|
||||
<a name="l00325"></a>00325 obj = obj-><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00326"></a>00326 }
|
||||
<a name="l00327"></a>00327 <span class="keywordflow">return</span> count;
|
||||
<a name="l00328"></a>00328 }
|
||||
<a name="l00329"></a>00329
|
||||
<a name="l00336"></a>00336 <span class="keyword">static</span> __inline <span class="keywordtype">int</span> __hwloc_attribute_pure
|
||||
<a name="l00337"></a><a class="code" href="a00038.html#ga97c8ff5b2abff365a9833cb4d1740d15">00337</a> <a class="code" href="a00038.html#ga97c8ff5b2abff365a9833cb4d1740d15" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00338"></a>00338 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
|
||||
<a name="l00339"></a>00339 {
|
||||
<a name="l00340"></a>00340 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00341"></a>00341 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
|
||||
<a name="l00342"></a>00342 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00343"></a>00343 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00344"></a>00344 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
|
||||
<a name="l00345"></a>00345 <span class="keywordflow">return</span> <a class="code" href="a00038.html#gada32f235ce6abb3ed1c7571221c52d89" 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);
|
||||
<a name="l00346"></a>00346 }
|
||||
<a name="l00347"></a>00347
|
||||
<a name="l00360"></a>00360 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00361"></a><a class="code" href="a00039.html#gaa6d0c687617638dae76058c00832d936">00361</a> <a class="code" href="a00039.html#gaa6d0c687617638dae76058c00832d936" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00362"></a>00362 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> parent)
|
||||
<a name="l00363"></a>00363 {
|
||||
<a name="l00364"></a>00364 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> child;
|
||||
<a name="l00365"></a>00365
|
||||
<a name="l00366"></a>00366 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(<span class="keyword">set</span>))
|
||||
<a name="l00367"></a>00367 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00368"></a>00368
|
||||
<a name="l00369"></a>00369 child = parent-><a class="code" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
|
||||
<a name="l00370"></a>00370 <span class="keywordflow">while</span> (child) {
|
||||
<a name="l00371"></a>00371 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(<span class="keyword">set</span>, child-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
|
||||
<a name="l00372"></a>00372 <span class="keywordflow">return</span> child;
|
||||
<a name="l00373"></a>00373 child = child-><a class="code" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
|
||||
<a name="l00374"></a>00374 }
|
||||
<a name="l00375"></a>00375 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00376"></a>00376 }
|
||||
<a name="l00377"></a>00377
|
||||
<a name="l00382"></a>00382 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00383"></a><a class="code" href="a00039.html#ga5967ce4cd1c3194b46d57d25598e697a">00383</a> <a class="code" href="a00039.html#ga5967ce4cd1c3194b46d57d25598e697a" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
|
||||
<a name="l00384"></a>00384 {
|
||||
<a name="l00385"></a>00385 <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *current = <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
|
||||
<a name="l00386"></a>00386
|
||||
<a name="l00387"></a>00387 <span class="keywordflow">if</span> (<a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(<span class="keyword">set</span>))
|
||||
<a name="l00388"></a>00388 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00389"></a>00389
|
||||
<a name="l00390"></a>00390 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#ga135bbe4177fbfe8b14bcbe6aad765801" title="Test whether set sub_set is part of set super_set.">hwloc_cpuset_isincluded</a>(<span class="keyword">set</span>, current-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
|
||||
<a name="l00391"></a>00391 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00392"></a>00392
|
||||
<a name="l00393"></a>00393 <span class="keywordflow">while</span> (1) {
|
||||
<a name="l00394"></a>00394 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> child = <a class="code" href="a00039.html#gaa6d0c687617638dae76058c00832d936" title="Get the child covering at least CPU set set.">hwloc_get_child_covering_cpuset</a>(topology, <span class="keyword">set</span>, current);
|
||||
<a name="l00395"></a>00395 <span class="keywordflow">if</span> (!child)
|
||||
<a name="l00396"></a>00396 <span class="keywordflow">return</span> current;
|
||||
<a name="l00397"></a>00397 current = child;
|
||||
<a name="l00398"></a>00398 }
|
||||
<a name="l00399"></a>00399 }
|
||||
<a name="l00400"></a>00400
|
||||
<a name="l00401"></a>00401
|
||||
<a name="l00417"></a>00417 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00418"></a><a class="code" href="a00040.html#ga7668a9bba346a87d12bcc522a12ab27b">00418</a> <a class="code" href="a00040.html#ga7668a9bba346a87d12bcc522a12ab27b" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00419"></a>00419 <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00420"></a>00420 {
|
||||
<a name="l00421"></a>00421 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> next = <a class="code" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth</a>(topology, depth, prev);
|
||||
<a name="l00422"></a>00422 <span class="keywordflow">while</span> (next && !<a class="code" href="a00045.html#gad7cbab558a9a80652c3ad0b30d488f04" title="Test whether sets set1 and set2 intersects.">hwloc_cpuset_intersects</a>(<span class="keyword">set</span>, next-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>))
|
||||
<a name="l00423"></a>00423 next = next-><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00424"></a>00424 <span class="keywordflow">return</span> next;
|
||||
<a name="l00425"></a>00425 }
|
||||
<a name="l00426"></a>00426
|
||||
<a name="l00439"></a>00439 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>
|
||||
<a name="l00440"></a><a class="code" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71">00440</a> <a class="code" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00441"></a>00441 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> prev)
|
||||
<a name="l00442"></a>00442 {
|
||||
<a name="l00443"></a>00443 <span class="keywordtype">int</span> <a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a> = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00444"></a>00444 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> || depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00445"></a>00445 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00446"></a>00446 <span class="keywordflow">return</span> <a class="code" href="a00040.html#ga7668a9bba346a87d12bcc522a12ab27b" 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);
|
||||
<a name="l00447"></a>00447 }
|
||||
<a name="l00448"></a>00448
|
||||
<a name="l00461"></a>00461 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00462"></a><a class="code" href="a00041.html#ga4a4388252d02388ff2803e5975af4005">00462</a> <a class="code" href="a00041.html#ga4a4388252d02388ff2803e5975af4005" title="Get the first cache covering a cpuset set.">hwloc_get_cache_covering_cpuset</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>)
|
||||
<a name="l00463"></a>00463 {
|
||||
<a name="l00464"></a>00464 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> current = <a class="code" href="a00039.html#ga5967ce4cd1c3194b46d57d25598e697a" title="Get the lowest object covering at least CPU set set.">hwloc_get_obj_covering_cpuset</a>(topology, <span class="keyword">set</span>);
|
||||
<a name="l00465"></a>00465 <span class="keywordflow">while</span> (current) {
|
||||
<a name="l00466"></a>00466 <span class="keywordflow">if</span> (current-><a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
|
||||
<a name="l00467"></a>00467 <span class="keywordflow">return</span> current;
|
||||
<a name="l00468"></a>00468 current = current-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00469"></a>00469 }
|
||||
<a name="l00470"></a>00470 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00471"></a>00471 }
|
||||
<a name="l00472"></a>00472
|
||||
<a name="l00477"></a>00477 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00478"></a><a class="code" href="a00041.html#ga2d7258b849d9def604e8967b713dd5ff">00478</a> <a class="code" href="a00041.html#ga2d7258b849d9def604e8967b713dd5ff" title="Get the first cache shared between an object and somebody else.">hwloc_get_shared_cache_covering_obj</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj)
|
||||
<a name="l00479"></a>00479 {
|
||||
<a name="l00480"></a>00480 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> current = obj-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00481"></a>00481 <span class="keywordflow">while</span> (current) {
|
||||
<a name="l00482"></a>00482 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#ga9534d84820beade1e6155a1e734307a2" title="Test whether set set1 is equal to set set2.">hwloc_cpuset_isequal</a>(current-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>)
|
||||
<a name="l00483"></a>00483 && current-><a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>)
|
||||
<a name="l00484"></a>00484 <span class="keywordflow">return</span> current;
|
||||
<a name="l00485"></a>00485 current = current-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00486"></a>00486 }
|
||||
<a name="l00487"></a>00487 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00488"></a>00488 }
|
||||
<a name="l00489"></a>00489
|
||||
<a name="l00505"></a>00505 <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>
|
||||
<a name="l00506"></a>00506 HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <a class="code" href="a00042.html#ga26c2ac4f25b1ed293249c88e232f1bea" title="Do a depth-first traversal of the topology to find and sort.">hwloc_get_closest_objs</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> src, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> * __hwloc_restrict objs, <span class="keywordtype">unsigned</span> max);
|
||||
<a name="l00507"></a>00507
|
||||
<a name="l00518"></a>00518 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00519"></a><a class="code" href="a00042.html#ga80af44c7616bd27eb15949543e12cc9c">00519</a> <a class="code" href="a00042.html#ga80af44c7616bd27eb15949543e12cc9c" title="Find an object below another object, both specified by types and indexes.">hwloc_get_obj_below_by_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology,
|
||||
<a name="l00520"></a>00520 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <span class="keywordtype">unsigned</span> idx1,
|
||||
<a name="l00521"></a>00521 <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2, <span class="keywordtype">unsigned</span> idx2)
|
||||
<a name="l00522"></a>00522 {
|
||||
<a name="l00523"></a>00523 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
|
||||
<a name="l00524"></a>00524
|
||||
<a name="l00525"></a>00525 obj = <a class="code" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (topology, type1, idx1);
|
||||
<a name="l00526"></a>00526 <span class="keywordflow">if</span> (!obj)
|
||||
<a name="l00527"></a>00527 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00528"></a>00528
|
||||
<a name="l00529"></a>00529 <span class="keywordflow">return</span> <a class="code" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, type2, idx2);
|
||||
<a name="l00530"></a>00530 }
|
||||
<a name="l00531"></a>00531
|
||||
<a name="l00547"></a>00547 <span class="keyword">static</span> __inline <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> __hwloc_attribute_pure
|
||||
<a name="l00548"></a><a class="code" href="a00042.html#ga9af0c03238ebcd4b0e174656890a67dc">00548</a> <a class="code" href="a00042.html#ga9af0c03238ebcd4b0e174656890a67dc" 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="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">int</span> nr, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> *typev, <span class="keywordtype">unsigned</span> *idxv)
|
||||
<a name="l00549"></a>00549 {
|
||||
<a name="l00550"></a>00550 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj = <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology);
|
||||
<a name="l00551"></a>00551 <span class="keywordtype">int</span> i;
|
||||
<a name="l00552"></a>00552
|
||||
<a name="l00553"></a>00553 <span class="keywordflow">for</span>(i=0; i<nr; i++) {
|
||||
<a name="l00554"></a>00554 obj = <a class="code" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17" title="Return the idx -th object of type type included in CPU set set.">hwloc_get_obj_inside_cpuset_by_type</a>(topology, obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, typev[i], idxv[i]);
|
||||
<a name="l00555"></a>00555 <span class="keywordflow">if</span> (!obj)
|
||||
<a name="l00556"></a>00556 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00557"></a>00557 }
|
||||
<a name="l00558"></a>00558
|
||||
<a name="l00559"></a>00559 <span class="keywordflow">return</span> obj;
|
||||
<a name="l00560"></a>00560 }
|
||||
<a name="l00561"></a>00561
|
||||
<a name="l00582"></a>00582 <span class="keyword">static</span> __inline <span class="keywordtype">void</span>
|
||||
<a name="l00583"></a><a class="code" href="a00043.html#gadbea5d9e892dfb5f1fcacd00ba14def9">00583</a> <a class="code" href="a00043.html#gadbea5d9e892dfb5f1fcacd00ba14def9" title="Distribute n items over the topology under root.">hwloc_distribute</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> root, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> *<a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>, <span class="keywordtype">unsigned</span> n)
|
||||
<a name="l00584"></a>00584 {
|
||||
<a name="l00585"></a>00585 <span class="keywordtype">unsigned</span> i;
|
||||
<a name="l00586"></a>00586 <span class="keywordtype">unsigned</span> u;
|
||||
<a name="l00587"></a>00587 <span class="keywordtype">unsigned</span> chunk_size, complete_chunks;
|
||||
<a name="l00588"></a>00588 <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> *cpusetp;
|
||||
<a name="l00589"></a>00589
|
||||
<a name="l00590"></a>00590 <span class="keywordflow">if</span> (!root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a> || n == 1) {
|
||||
<a name="l00591"></a>00591 <span class="comment">/* Got to the bottom, we can't split any more, put everything there. */</span>
|
||||
<a name="l00592"></a>00592 <span class="keywordflow">for</span> (i=0; i<n; i++)
|
||||
<a name="l00593"></a>00593 cpuset[i] = <a class="code" href="a00045.html#ga468c6e3fd92a9d0db1fb56634a851be3" title="Duplicate CPU set set by allocating a new CPU set and copying set&#39;s contents...">hwloc_cpuset_dup</a>(root-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
<a name="l00594"></a>00594 <span class="keywordflow">return</span>;
|
||||
<a name="l00595"></a>00595 }
|
||||
<a name="l00596"></a>00596
|
||||
<a name="l00597"></a>00597 <span class="comment">/* Divide n in root->arity chunks. */</span>
|
||||
<a name="l00598"></a>00598 chunk_size = (n + root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a> - 1) / root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
|
||||
<a name="l00599"></a>00599 complete_chunks = n % root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
|
||||
<a name="l00600"></a>00600 if (!complete_chunks)
|
||||
<a name="l00601"></a>00601 complete_chunks = root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
|
||||
<a name="l00602"></a>00602
|
||||
<a name="l00603"></a>00603 <span class="comment">/* Allocate complete chunks first. */</span>
|
||||
<a name="l00604"></a>00604 <span class="keywordflow">for</span> (cpusetp = cpuset, i = 0;
|
||||
<a name="l00605"></a>00605 i < complete_chunks;
|
||||
<a name="l00606"></a>00606 i ++, cpusetp += chunk_size)
|
||||
<a name="l00607"></a>00607 <a class="code" href="a00043.html#gadbea5d9e892dfb5f1fcacd00ba14def9" title="Distribute n items over the topology under root.">hwloc_distribute</a>(topology, root-><a class="code" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>[i], cpusetp, chunk_size);
|
||||
<a name="l00608"></a>00608
|
||||
<a name="l00609"></a>00609 <span class="comment">/* Now allocate not-so-complete chunks. */</span>
|
||||
<a name="l00610"></a>00610 <span class="keywordflow">for</span> (u = i;
|
||||
<a name="l00611"></a>00611 u < root-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
|
||||
<a name="l00612"></a>00612 u++, cpusetp += chunk_size-1)
|
||||
<a name="l00613"></a>00613 <a class="code" href="a00043.html#gadbea5d9e892dfb5f1fcacd00ba14def9" title="Distribute n items over the topology under root.">hwloc_distribute</a>(topology, root-><a class="code" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>[u], cpusetp, chunk_size-1);
|
||||
<a name="l00614"></a>00614 }
|
||||
<a name="l00615"></a>00615
|
||||
<a name="l00621"></a>00621 <span class="comment">/* \brief Get complete CPU set</span>
|
||||
<a name="l00622"></a>00622 <span class="comment"> *</span>
|
||||
<a name="l00623"></a>00623 <span class="comment"> * \return the complete CPU set of logical processors of the system. If the</span>
|
||||
<a name="l00624"></a>00624 <span class="comment"> * topology is the result of a combination of several systems, NULL is</span>
|
||||
<a name="l00625"></a>00625 <span class="comment"> * returned.</span>
|
||||
<a name="l00626"></a>00626 <span class="comment"> *</span>
|
||||
<a name="l00627"></a>00627 <span class="comment"> * \note The returned cpuset is not newly allocated and should thus not be</span>
|
||||
<a name="l00628"></a>00628 <span class="comment"> * changed or freed; hwloc_cpuset_dup must be used to obtain a local copy.</span>
|
||||
<a name="l00629"></a>00629 <span class="comment"> */</span>
|
||||
<a name="l00630"></a>00630 <span class="keyword">static</span> __inline <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure
|
||||
<a name="l00631"></a><a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">00631</a> <a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
|
||||
<a name="l00632"></a>00632 {
|
||||
<a name="l00633"></a>00633 <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-><a class="code" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
|
||||
<a name="l00634"></a>00634 }
|
||||
<a name="l00635"></a>00635
|
||||
<a name="l00636"></a>00636 <span class="comment">/* \brief Get topology CPU set</span>
|
||||
<a name="l00637"></a>00637 <span class="comment"> *</span>
|
||||
<a name="l00638"></a>00638 <span class="comment"> * \return the CPU set of logical processors of the system for which hwloc</span>
|
||||
<a name="l00639"></a>00639 <span class="comment"> * provides topology information. This is equivalent to the cpuset of the</span>
|
||||
<a name="l00640"></a>00640 <span class="comment"> * system object. If the topology is the result of a combination of several</span>
|
||||
<a name="l00641"></a>00641 <span class="comment"> * systems, NULL is returned.</span>
|
||||
<a name="l00642"></a>00642 <span class="comment"> *</span>
|
||||
<a name="l00643"></a>00643 <span class="comment"> * \note The returned cpuset is not newly allocated and should thus not be</span>
|
||||
<a name="l00644"></a>00644 <span class="comment"> * changed or freed; hwloc_cpuset_dup must be used to obtain a local copy.</span>
|
||||
<a name="l00645"></a>00645 <span class="comment"> */</span>
|
||||
<a name="l00646"></a>00646 <span class="keyword">static</span> __inline <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure
|
||||
<a name="l00647"></a><a class="code" href="a00044.html#gaa1305cd39c6afd68652f2c6e68759381">00647</a> <a class="code" href="a00044.html#gaa1305cd39c6afd68652f2c6e68759381">hwloc_topology_get_topology_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
|
||||
<a name="l00648"></a>00648 {
|
||||
<a name="l00649"></a>00649 <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
|
||||
<a name="l00650"></a>00650 }
|
||||
<a name="l00651"></a>00651
|
||||
<a name="l00661"></a>00661 <span class="keyword">static</span> __inline <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure
|
||||
<a name="l00662"></a><a class="code" href="a00044.html#gac3626396192ce01ad6a4811d9d29306b">00662</a> <a class="code" href="a00044.html#gac3626396192ce01ad6a4811d9d29306b" title="Get online CPU set.">hwloc_topology_get_online_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
|
||||
<a name="l00663"></a>00663 {
|
||||
<a name="l00664"></a>00664 <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-><a class="code" href="a00010.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
|
||||
<a name="l00665"></a>00665 }
|
||||
<a name="l00666"></a>00666
|
||||
<a name="l00676"></a>00676 <span class="keyword">static</span> __inline <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure
|
||||
<a name="l00677"></a><a class="code" href="a00044.html#ga3374bb25a01c5cd447b097eaa6f77c6f">00677</a> <a class="code" href="a00044.html#ga3374bb25a01c5cd447b097eaa6f77c6f" title="Get allowed CPU set.">hwloc_topology_get_allowed_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology)
|
||||
<a name="l00678"></a>00678 {
|
||||
<a name="l00679"></a>00679 <span class="keywordflow">return</span> <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology)-><a class="code" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
|
||||
<a name="l00680"></a>00680 }
|
||||
<a name="l00681"></a>00681
|
||||
<a name="l00682"></a>00682
|
||||
<a name="l00685"></a>00685 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_HELPER_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,285 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): hwloc.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>hwloc.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> */</span>
|
||||
<a name="l00006"></a>00006
|
||||
<a name="l00014"></a>00014 <span class="preprocessor">#ifndef HWLOC_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_H</span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor"></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include <sys/types.h></span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor">#include <stdio.h></span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor">#include <limits.h></span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include <stdint.h></span>
|
||||
<a name="l00021"></a>00021
|
||||
<a name="l00022"></a>00022 <span class="comment">/*</span>
|
||||
<a name="l00023"></a>00023 <span class="comment"> * Symbol transforms</span>
|
||||
<a name="l00024"></a>00024 <span class="comment"> */</span>
|
||||
<a name="l00025"></a>00025 <span class="preprocessor">#include <hwloc/rename.h></span>
|
||||
<a name="l00026"></a>00026
|
||||
<a name="l00027"></a>00027 <span class="comment">/*</span>
|
||||
<a name="l00028"></a>00028 <span class="comment"> * Cpuset bitmask definitions</span>
|
||||
<a name="l00029"></a>00029 <span class="comment"> */</span>
|
||||
<a name="l00030"></a>00030
|
||||
<a name="l00031"></a>00031 <span class="preprocessor">#include <hwloc/cpuset.h></span>
|
||||
<a name="l00032"></a>00032
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00034"></a>00034
|
||||
<a name="l00040"></a><a class="code" href="a00025.html#ga8f4dfb8eef138af55dd1a0fa802e5476">00040</a> <span class="preprocessor">#define HWLOC_API_VERSION 0x00010000</span>
|
||||
<a name="l00041"></a>00041 <span class="preprocessor"></span>
|
||||
<a name="l00050"></a>00050 <span class="keyword">struct </span>hwloc_topology;
|
||||
<a name="l00055"></a><a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">00055</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>hwloc_topology * <a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a>;
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00071"></a><a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">00071</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
|
||||
<a name="l00072"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec">00072</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec" title="Whole system (may be a cluster of machines). The whole system that is accessible...">HWLOC_OBJ_SYSTEM</a>,
|
||||
<a name="l00077"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80">00077</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80" title="Machine. The typical root object type. A set of processors and memory with cache...">HWLOC_OBJ_MACHINE</a>,
|
||||
<a name="l00082"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd">00082</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>,
|
||||
<a name="l00086"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec">00086</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec" title="Socket, physical package, or chip. In the physical meaning, i.e. that you can add...">HWLOC_OBJ_SOCKET</a>,
|
||||
<a name="l00090"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc">00090</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>,
|
||||
<a name="l00093"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f">00093</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f" title="Core. A computation unit (may be shared by several logical processors).">HWLOC_OBJ_CORE</a>,
|
||||
<a name="l00097"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661">00097</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a>,
|
||||
<a name="l00106"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56">00106</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56" title="Group objects. Objects which do not fit in the above but are detected by hwloc and...">HWLOC_OBJ_GROUP</a>,
|
||||
<a name="l00118"></a><a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d">00118</a> <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d" title="Miscellaneous objects. Objects without particular meaning, that can e.g. be added...">HWLOC_OBJ_MISC</a>,
|
||||
<a name="l00122"></a>00122 } <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a>;
|
||||
<a name="l00123"></a>00123
|
||||
<a name="l00141"></a>00141 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00027.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types</a> (<a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type1, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type2) __hwloc_attribute_const;
|
||||
<a name="l00142"></a>00142
|
||||
<a name="l00143"></a><a class="code" href="a00027.html#ga46323568968005137c32f6a1cd405b74">00143</a> <span class="keyword">enum</span> <a class="code" href="a00027.html#ga46323568968005137c32f6a1cd405b74">hwloc_compare_types_e</a> {
|
||||
<a name="l00144"></a><a class="code" href="a00027.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb">00144</a> <a class="code" href="a00027.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb" title="Value returned by hwloc_compare_types when types can not be compared.">HWLOC_TYPE_UNORDERED</a> = INT_MAX
|
||||
<a name="l00145"></a>00145 };
|
||||
<a name="l00146"></a>00146
|
||||
<a name="l00155"></a>00155 <span class="keyword">union </span><a class="code" href="a00011.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a>;
|
||||
<a name="l00156"></a>00156
|
||||
<a name="l00158"></a><a class="code" href="a00013.html">00158</a> <span class="keyword">struct </span><a class="code" href="a00013.html" title="Object memory.">hwloc_obj_memory_s</a> {
|
||||
<a name="l00159"></a><a class="code" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3">00159</a> uint64_t <a class="code" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3" title="Total memory (in bytes) in this object and its children.">total_memory</a>;
|
||||
<a name="l00160"></a><a class="code" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e">00160</a> uint64_t <a class="code" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e" title="Local memory (in bytes).">local_memory</a>;
|
||||
<a name="l00162"></a><a class="code" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57">00162</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57" title="Size of array page_types.">page_types_len</a>;
|
||||
<a name="l00168"></a><a class="code" href="a00012.html">00168</a> <span class="keyword">struct </span><a class="code" href="a00012.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> {
|
||||
<a name="l00169"></a><a class="code" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b">00169</a> uint64_t <a class="code" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b" title="Size of pages.">size</a>;
|
||||
<a name="l00170"></a><a class="code" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3">00170</a> uint64_t <a class="code" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3" title="Number of pages of this size.">count</a>;
|
||||
<a name="l00171"></a>00171 } * <a class="code" href="a00013.html#a865eba7b12b986d72dbe7a2cfd97c50d" title="Array of local memory page types, NULL if no local memory and page_types is 0.">page_types</a>;
|
||||
<a name="l00172"></a>00172 };
|
||||
<a name="l00173"></a>00173
|
||||
<a name="l00178"></a><a class="code" href="a00010.html">00178</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> {
|
||||
<a name="l00179"></a>00179 <span class="comment">/* physical information */</span>
|
||||
<a name="l00180"></a><a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de">00180</a> <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a>;
|
||||
<a name="l00181"></a><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9">00181</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>;
|
||||
<a name="l00182"></a><a class="code" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d">00182</a> <span class="keywordtype">char</span> *<a class="code" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d" title="Object description if any.">name</a>;
|
||||
<a name="l00185"></a><a class="code" href="a00010.html#a1dc830816716213b5f797e4052487864">00185</a> <span class="keyword">struct </span><a class="code" href="a00013.html" title="Object memory.">hwloc_obj_memory_s</a> <a class="code" href="a00010.html#a1dc830816716213b5f797e4052487864" title="Memory attributes.">memory</a>;
|
||||
<a name="l00186"></a>00186
|
||||
<a name="l00188"></a><a class="code" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8">00188</a> <span class="keyword">union </span><a class="code" href="a00011.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> *<a class="code" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes.">attr</a>;
|
||||
<a name="l00189"></a>00189
|
||||
<a name="l00190"></a>00190 <span class="comment">/* global position */</span>
|
||||
<a name="l00191"></a><a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5">00191</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5" title="Vertical index in the hierarchy.">depth</a>;
|
||||
<a name="l00192"></a><a class="code" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9">00192</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9" title="Horizontal index in the whole list of similar objects, could be a &quot;cousin_rank&quot;...">logical_index</a>;
|
||||
<a name="l00194"></a><a class="code" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde">00194</a> <span class="keywordtype">signed</span> <a class="code" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde" title="OS-provided physical level, -1 if unknown or meaningless.">os_level</a>;
|
||||
<a name="l00196"></a><a class="code" href="a00010.html#a85a788017457129589318b6c39451acf">00196</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#a85a788017457129589318b6c39451acf" title="Next object of same type.">next_cousin</a>;
|
||||
<a name="l00197"></a><a class="code" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0">00197</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0" title="Previous object of same type.">prev_cousin</a>;
|
||||
<a name="l00199"></a>00199 <span class="comment">/* parent */</span>
|
||||
<a name="l00200"></a><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900">00200</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>;
|
||||
<a name="l00201"></a><a class="code" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd">00201</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd" title="Index in parent&#39;s children[] array.">sibling_rank</a>;
|
||||
<a name="l00202"></a><a class="code" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40">00202</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40" title="Next object below the same parent.">next_sibling</a>;
|
||||
<a name="l00203"></a><a class="code" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50">00203</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50" title="Previous object below the same parent.">prev_sibling</a>;
|
||||
<a name="l00205"></a>00205 <span class="comment">/* children */</span>
|
||||
<a name="l00206"></a><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1">00206</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>;
|
||||
<a name="l00207"></a><a class="code" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f">00207</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> **<a class="code" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>;
|
||||
<a name="l00208"></a><a class="code" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc">00208</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc" title="First child.">first_child</a>;
|
||||
<a name="l00209"></a><a class="code" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f">00209</a> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> *<a class="code" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f" title="Last child.">last_child</a>;
|
||||
<a name="l00211"></a>00211 <span class="comment">/* misc */</span>
|
||||
<a name="l00212"></a><a class="code" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5">00212</a> <span class="keywordtype">void</span> *<a class="code" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5" title="Application-given private data pointer, initialized to NULL, use it as you wish.">userdata</a>;
|
||||
<a name="l00214"></a>00214 <span class="comment">/* cpuset */</span>
|
||||
<a name="l00215"></a><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f">00215</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>;
|
||||
<a name="l00228"></a><a class="code" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c">00228</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c" title="The complete CPU set of logical processors of this object,.">complete_cpuset</a>;
|
||||
<a name="l00239"></a><a class="code" href="a00010.html#a8842d56c2975380f327ea401c5f53564">00239</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#a8842d56c2975380f327ea401c5f53564" title="The CPU set of online logical processors.">online_cpuset</a>;
|
||||
<a name="l00247"></a><a class="code" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34">00247</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34" title="The CPU set of allowed logical processors.">allowed_cpuset</a>;
|
||||
<a name="l00258"></a><a class="code" href="a00010.html#a79982ede313c2190505fc5e3714a16fb">00258</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#a79982ede313c2190505fc5e3714a16fb" title="NUMA nodes covered by this object or containing this object.">nodeset</a>;
|
||||
<a name="l00270"></a><a class="code" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f">00270</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f" title="The complete NUMA node set of this object,.">complete_nodeset</a>;
|
||||
<a name="l00281"></a><a class="code" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b">00281</a> <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <a class="code" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b" title="The set of allowed NUMA memory nodes.">allowed_nodeset</a>;
|
||||
<a name="l00290"></a>00290 };
|
||||
<a name="l00294"></a><a class="code" href="a00028.html#ga79b8ab56877ef99ac59b833203391c7d">00294</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a> * <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a>;
|
||||
<a name="l00295"></a>00295
|
||||
<a name="l00297"></a><a class="code" href="a00011.html">00297</a> <span class="keyword">union </span><a class="code" href="a00011.html" title="Object type-specific Attributes.">hwloc_obj_attr_u</a> {
|
||||
<a name="l00299"></a><a class="code" href="a00007.html">00299</a> <span class="keyword">struct </span><a class="code" href="a00007.html" title="Cache-specific Object Attributes.">hwloc_cache_attr_s</a> {
|
||||
<a name="l00300"></a><a class="code" href="a00007.html#a3c68235220554308f89768f281ad1e62">00300</a> uint64_t <a class="code" href="a00007.html#a3c68235220554308f89768f281ad1e62" title="Size of cache in bytes.">size</a>;
|
||||
<a name="l00301"></a><a class="code" href="a00007.html#a5c8f7f39193736c2187ed626940835d5">00301</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00007.html#a5c8f7f39193736c2187ed626940835d5" title="Depth of cache.">depth</a>;
|
||||
<a name="l00302"></a>00302 } <a class="code" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836" title="Cache-specific Object Attributes.">cache</a>;
|
||||
<a name="l00304"></a><a class="code" href="a00009.html">00304</a> <span class="keyword">struct </span><a class="code" href="a00009.html" title="Machine-specific Object Attributes.">hwloc_machine_attr_s</a> {
|
||||
<a name="l00305"></a><a class="code" href="a00009.html#aae85be0b4ebb86501718c4b460df5167">00305</a> <span class="keywordtype">char</span> *<a class="code" href="a00009.html#aae85be0b4ebb86501718c4b460df5167" title="DMI board vendor name.">dmi_board_vendor</a>;
|
||||
<a name="l00306"></a><a class="code" href="a00009.html#a8b99af84fd38753a91c861f0e856b461">00306</a> <span class="keywordtype">char</span> *<a class="code" href="a00009.html#a8b99af84fd38753a91c861f0e856b461" title="DMI board model name.">dmi_board_name</a>;
|
||||
<a name="l00307"></a>00307 } <a class="code" href="a00011.html#a5b42966df7c5bfdc36891e414cc31607" title="Machine-specific Object Attributes.">machine</a>;
|
||||
<a name="l00309"></a><a class="code" href="a00008.html">00309</a> <span class="keyword">struct </span><a class="code" href="a00008.html" title="Group-specific Object Attributes.">hwloc_group_attr_s</a> {
|
||||
<a name="l00310"></a><a class="code" href="a00008.html#ad914eac61c77481e1b7037877bcc5579">00310</a> <span class="keywordtype">unsigned</span> <a class="code" href="a00008.html#ad914eac61c77481e1b7037877bcc5579" title="Depth of group object.">depth</a>;
|
||||
<a name="l00311"></a>00311 } <a class="code" href="a00011.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6" title="Group-specific Object Attributes.">group</a>;
|
||||
<a name="l00312"></a>00312 };
|
||||
<a name="l00313"></a>00313
|
||||
<a name="l00328"></a>00328 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> *topologyp);
|
||||
<a name="l00329"></a>00329
|
||||
<a name="l00342"></a>00342 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology);
|
||||
<a name="l00343"></a>00343
|
||||
<a name="l00348"></a>00348 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00029.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology);
|
||||
<a name="l00349"></a>00349
|
||||
<a name="l00354"></a>00354 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00029.html#gab3628b2a540a5a08e8cf724ef829e70a" title="Run internal checks on a topology structure.">hwloc_topology_check</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology);
|
||||
<a name="l00355"></a>00355
|
||||
<a name="l00388"></a>00388 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#gaf2071c8621fddc53649c245d87835b47" title="Ignore an object type.">hwloc_topology_ignore_type</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
|
||||
<a name="l00389"></a>00389
|
||||
<a name="l00396"></a>00396 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#ga6ddd4213d95bd1c30555b294a60efa6b" title="Ignore an object type if it does not bring any structure.">hwloc_topology_ignore_type_keep_structure</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
|
||||
<a name="l00397"></a>00397
|
||||
<a name="l00403"></a>00403 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#gaec6fb00050f50cd41007f1ae580d2106" title="Ignore all objects that do not bring any structure.">hwloc_topology_ignore_all_keep_structure</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology);
|
||||
<a name="l00404"></a>00404
|
||||
<a name="l00409"></a><a class="code" href="a00030.html#gada025d3ec20b4b420f8038d23d6e7bde">00409</a> <span class="keyword">enum</span> <a class="code" href="a00030.html#gada025d3ec20b4b420f8038d23d6e7bde" title="Flags to be set onto a topology context before load.">hwloc_topology_flags_e</a> {
|
||||
<a name="l00410"></a><a class="code" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8">00410</a> <a class="code" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8" title="Detect the whole system, ignore reservations and offline settings.">HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM</a> = (1<<0),
|
||||
<a name="l00419"></a><a class="code" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b">00419</a> <a class="code" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b" title="Assume that the selected backend provides the topology for the system on which we...">HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM</a> = (1<<1),
|
||||
<a name="l00438"></a>00438 };
|
||||
<a name="l00439"></a>00439
|
||||
<a name="l00444"></a>00444 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#ga6d11e53db143ac39c32cdb3912b71f99" title="Set OR&#39;ed flags to non-yet-loaded topology.">hwloc_topology_set_flags</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> flags);
|
||||
<a name="l00445"></a>00445
|
||||
<a name="l00459"></a>00459 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#ga2f6bfb6958d8b508ea1d7d5bb266432c" title="Change the file-system root path when building the topology from sysfs/procfs.">hwloc_topology_set_fsroot</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * __hwloc_restrict fsroot_path);
|
||||
<a name="l00460"></a>00460
|
||||
<a name="l00474"></a>00474 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#gae1100de0162b3c6a9db750ac14629c05" title="Change which pid the topology is viewed from.">hwloc_topology_set_pid</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology, hwloc_pid_t pid);
|
||||
<a name="l00475"></a>00475
|
||||
<a name="l00489"></a>00489 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#ga2fcb52181b586c20f001b7a999550324" title="Enable synthetic topology.">hwloc_topology_set_synthetic</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * __hwloc_restrict description);
|
||||
<a name="l00490"></a>00490
|
||||
<a name="l00502"></a>00502 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00030.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology, <span class="keyword">const</span> <span class="keywordtype">char</span> * __hwloc_restrict xmlpath);
|
||||
<a name="l00503"></a>00503
|
||||
<a name="l00505"></a><a class="code" href="a00015.html">00505</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> {
|
||||
<a name="l00507"></a><a class="code" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">00507</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab" title="Detecting the number of PU objects is supported.">pu</a>;
|
||||
<a name="l00508"></a>00508 };
|
||||
<a name="l00509"></a>00509
|
||||
<a name="l00511"></a><a class="code" href="a00014.html">00511</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Flags describing actual binding support for this topology.">hwloc_topology_cpubind_support</a> {
|
||||
<a name="l00513"></a><a class="code" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">00513</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">set_thisproc_cpubind</a>;
|
||||
<a name="l00515"></a><a class="code" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">00515</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">get_thisproc_cpubind</a>;
|
||||
<a name="l00517"></a><a class="code" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">00517</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">set_proc_cpubind</a>;
|
||||
<a name="l00519"></a><a class="code" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">00519</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">get_proc_cpubind</a>;
|
||||
<a name="l00521"></a><a class="code" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">00521</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">set_thisthread_cpubind</a>;
|
||||
<a name="l00523"></a><a class="code" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">00523</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">get_thisthread_cpubind</a>;
|
||||
<a name="l00525"></a><a class="code" href="a00014.html#a46fba33e307909ce256624687799dd6d">00525</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a46fba33e307909ce256624687799dd6d">set_thread_cpubind</a>;
|
||||
<a name="l00527"></a><a class="code" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">00527</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">get_thread_cpubind</a>;
|
||||
<a name="l00528"></a>00528 };
|
||||
<a name="l00529"></a>00529
|
||||
<a name="l00536"></a><a class="code" href="a00016.html">00536</a> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> {
|
||||
<a name="l00537"></a><a class="code" href="a00016.html#aea3fbd7653d987d81f848636c420504d">00537</a> <span class="keyword">struct </span><a class="code" href="a00015.html" title="Flags describing actual discovery support for this topology.">hwloc_topology_discovery_support</a> *<a class="code" href="a00016.html#aea3fbd7653d987d81f848636c420504d">discovery</a>;
|
||||
<a name="l00538"></a><a class="code" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">00538</a> <span class="keyword">struct </span><a class="code" href="a00014.html" title="Flags describing actual binding support for this topology.">hwloc_topology_cpubind_support</a> *<a class="code" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">cpubind</a>;
|
||||
<a name="l00539"></a>00539 };
|
||||
<a name="l00540"></a>00540
|
||||
<a name="l00542"></a>00542 HWLOC_DECLSPEC <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="a00016.html" title="Set of flags describing actual support for this topology.">hwloc_topology_support</a> *<a class="code" href="a00030.html#gac2126e105f3ae708efca2e90d612625a" title="Retrieve the topology support.">hwloc_topology_get_support</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology);
|
||||
<a name="l00543"></a>00543
|
||||
<a name="l00556"></a>00556 HWLOC_DECLSPEC <span class="keywordtype">void</span> <a class="code" href="a00031.html#ga1c9d8e608232206ce2142fe806a6835b" title="Export the topology into an XML file.">hwloc_topology_export_xml</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keyword">const</span> <span class="keywordtype">char</span> *xmlpath);
|
||||
<a name="l00557"></a>00557
|
||||
<a name="l00567"></a>00567 HWLOC_DECLSPEC hwloc_obj_t <a class="code" href="a00031.html#ga017a9ba16d554326c6e3812d545d7230" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
|
||||
<a name="l00568"></a>00568
|
||||
<a name="l00578"></a>00578 HWLOC_DECLSPEC hwloc_obj_t <a class="code" href="a00031.html#gadacd7a3d21220fbb30c3256d8b22a294" title="Add a MISC object to the topology.">hwloc_topology_insert_misc_object_by_parent</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_obj_t parent, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
|
||||
<a name="l00579"></a>00579
|
||||
<a name="l00592"></a>00592 HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <a class="code" href="a00032.html#ga8c30b0cec55074eb3ed34e4f2a1a9937" title="Get the depth of the hierachical tree of objects.">hwloc_topology_get_depth</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology) __hwloc_attribute_pure;
|
||||
<a name="l00593"></a>00593
|
||||
<a name="l00603"></a>00603 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type);
|
||||
<a name="l00604"></a>00604
|
||||
<a name="l00605"></a><a class="code" href="a00032.html#gaf4e663cf42bbe20756b849c6293ef575">00605</a> <span class="keyword">enum</span> <a class="code" href="a00032.html#gaf4e663cf42bbe20756b849c6293ef575">hwloc_get_type_depth_e</a> {
|
||||
<a name="l00606"></a><a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad">00606</a> <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a> = -1,
|
||||
<a name="l00607"></a><a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c">00607</a> <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a> = -2
|
||||
<a name="l00608"></a>00608 };
|
||||
<a name="l00609"></a>00609
|
||||
<a name="l00614"></a>00614 HWLOC_DECLSPEC <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00032.html#gadd4964764ae7e49231065d58a553fd31" title="Returns the type of objects at depth depth.">hwloc_get_depth_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> depth) __hwloc_attribute_pure;
|
||||
<a name="l00615"></a>00615
|
||||
<a name="l00617"></a>00617 HWLOC_DECLSPEC <span class="keywordtype">unsigned</span> <a class="code" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> depth) __hwloc_attribute_pure;
|
||||
<a name="l00618"></a>00618
|
||||
<a name="l00624"></a>00624 <span class="keyword">static</span> __inline <span class="keywordtype">int</span> __hwloc_attribute_pure
|
||||
<a name="l00625"></a><a class="code" href="a00032.html#ga4c23019de0a7679306059e490dceccd2">00625</a> <a class="code" href="a00032.html#ga4c23019de0a7679306059e490dceccd2" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type)
|
||||
<a name="l00626"></a>00626 {
|
||||
<a name="l00627"></a>00627 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00628"></a>00628 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
|
||||
<a name="l00629"></a>00629 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00630"></a>00630 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00631"></a>00631 <span class="keywordflow">return</span> -1; <span class="comment">/* FIXME: agregate nbobjs from different levels? */</span>
|
||||
<a name="l00632"></a>00632 <span class="keywordflow">return</span> <a class="code" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth);
|
||||
<a name="l00633"></a>00633 }
|
||||
<a name="l00634"></a>00634
|
||||
<a name="l00642"></a>00642 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00032.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> __hwloc_restrict topology) __hwloc_attribute_pure;
|
||||
<a name="l00643"></a>00643
|
||||
<a name="l00653"></a>00653 HWLOC_DECLSPEC hwloc_obj_t <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <span class="keywordtype">unsigned</span> depth, <span class="keywordtype">unsigned</span> idx) __hwloc_attribute_pure;
|
||||
<a name="l00654"></a>00654
|
||||
<a name="l00661"></a>00661 <span class="keyword">static</span> __inline hwloc_obj_t __hwloc_attribute_pure
|
||||
<a name="l00662"></a><a class="code" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa">00662</a> <a class="code" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a> (<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type, <span class="keywordtype">unsigned</span> idx)
|
||||
<a name="l00663"></a>00663 {
|
||||
<a name="l00664"></a>00664 <span class="keywordtype">int</span> depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, type);
|
||||
<a name="l00665"></a>00665 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>)
|
||||
<a name="l00666"></a>00666 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00667"></a>00667 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" title="Objects of given type exist at different depth in the topology.">HWLOC_TYPE_DEPTH_MULTIPLE</a>)
|
||||
<a name="l00668"></a>00668 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00669"></a>00669 <span class="keywordflow">return</span> <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, idx);
|
||||
<a name="l00670"></a>00670 }
|
||||
<a name="l00671"></a>00671
|
||||
<a name="l00681"></a>00681 HWLOC_DECLSPEC <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="a00034.html#ga7c61920feca6fd9006d930dabfc09058" title="Return a stringified topology object type.">hwloc_obj_type_string</a> (<a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> type) __hwloc_attribute_const;
|
||||
<a name="l00682"></a>00682
|
||||
<a name="l00687"></a>00687 HWLOC_DECLSPEC <a class="code" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55" title="Type of topology object.">hwloc_obj_type_t</a> <a class="code" href="a00034.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>) __hwloc_attribute_pure;
|
||||
<a name="l00688"></a>00688
|
||||
<a name="l00696"></a>00696 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00034.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> * __hwloc_restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size, hwloc_obj_t obj,
|
||||
<a name="l00697"></a>00697 <span class="keywordtype">int</span> verbose);
|
||||
<a name="l00698"></a>00698
|
||||
<a name="l00707"></a>00707 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00034.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> * __hwloc_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> * __hwloc_restrict separator,
|
||||
<a name="l00708"></a>00708 <span class="keywordtype">int</span> verbose);
|
||||
<a name="l00709"></a>00709
|
||||
<a name="l00727"></a>00727 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00034.html#ga5c6a61a83f4790b421e2f62e9088446f" title="Stringify a given topology object into a human-readable form.">hwloc_obj_snprintf</a>(<span class="keywordtype">char</span> * __hwloc_restrict <span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> size,
|
||||
<a name="l00728"></a>00728 <a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_obj_t obj,
|
||||
<a name="l00729"></a>00729 <span class="keyword">const</span> <span class="keywordtype">char</span> * __hwloc_restrict indexprefix, <span class="keywordtype">int</span> verbose);
|
||||
<a name="l00730"></a>00730
|
||||
<a name="l00734"></a>00734 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00034.html#gabbfb92224c992c0e2ecef6b6e45260f2" title="Stringify the cpuset containing a set of objects.">hwloc_obj_cpuset_snprintf</a>(<span class="keywordtype">char</span> * __hwloc_restrict str, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> nobj, <span class="keyword">const</span> hwloc_obj_t * __hwloc_restrict objs);
|
||||
<a name="l00735"></a>00735
|
||||
<a name="l00781"></a><a class="code" href="a00035.html#ga9b2de9a34a18edb39fb272adf9c33622">00781</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
|
||||
<a name="l00782"></a><a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a2e0dd0128dac6b03408c7dd170477fdc">00782</a> <a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a2e0dd0128dac6b03408c7dd170477fdc" title="Bind all threads of the current multithreaded process. This may not be supported...">HWLOC_CPUBIND_PROCESS</a> = (1<<0),
|
||||
<a name="l00785"></a><a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421">00785</a> <a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421" title="Bind current thread of current process.">HWLOC_CPUBIND_THREAD</a> = (1<<1),
|
||||
<a name="l00787"></a><a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a679a7e0f0c7ee06b123565f90d98e7fa">00787</a> <a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a679a7e0f0c7ee06b123565f90d98e7fa" title="Request for strict binding from the OS.">HWLOC_CPUBIND_STRICT</a> = (1<<2),
|
||||
<a name="l00815"></a>00815 } <a class="code" href="a00035.html#ga9b2de9a34a18edb39fb272adf9c33622" title="Process/Thread binding policy.">hwloc_cpubind_policy_t</a>;
|
||||
<a name="l00816"></a>00816
|
||||
<a name="l00822"></a>00822 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144" title="Bind current process or thread on cpus given in cpuset set.">hwloc_set_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>,
|
||||
<a name="l00823"></a>00823 <span class="keywordtype">int</span> policy);
|
||||
<a name="l00824"></a>00824
|
||||
<a name="l00827"></a>00827 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#ga55427f8da8073ae16d0bab11f8137f1c" title="Get current process or thread binding.">hwloc_get_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>, <span class="keywordtype">int</span> policy);
|
||||
<a name="l00828"></a>00828
|
||||
<a name="l00836"></a>00836 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#gac349497da8f4f738bad51b2861461dc3" title="Bind a process pid on cpus given in cpuset set.">hwloc_set_proc_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_pid_t pid, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>, <span class="keywordtype">int</span> policy);
|
||||
<a name="l00837"></a>00837
|
||||
<a name="l00845"></a>00845 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#ga02141a2049739d63a5fa7a172d301f1c" title="Get the current binding of process pid.">hwloc_get_proc_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_pid_t pid, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>, <span class="keywordtype">int</span> policy);
|
||||
<a name="l00846"></a>00846
|
||||
<a name="l00854"></a>00854 <span class="preprocessor">#ifdef hwloc_thread_t</span>
|
||||
<a name="l00855"></a>00855 <span class="preprocessor"></span>HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#ga2be36e3ab9c9076ab5cca8fd57ae0dcf" title="Bind a thread tid on cpus given in cpuset set.">hwloc_set_thread_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_thread_t tid, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>, <span class="keywordtype">int</span> policy);
|
||||
<a name="l00856"></a>00856 <span class="preprocessor">#endif</span>
|
||||
<a name="l00857"></a>00857 <span class="preprocessor"></span>
|
||||
<a name="l00865"></a>00865 <span class="preprocessor">#ifdef hwloc_thread_t</span>
|
||||
<a name="l00866"></a>00866 <span class="preprocessor"></span>HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00035.html#ga5f265c78ea768372bae8e5d89d628c22" title="Get the current binding of thread tid.">hwloc_get_thread_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, hwloc_thread_t tid, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>, <span class="keywordtype">int</span> policy);
|
||||
<a name="l00867"></a>00867 <span class="preprocessor">#endif</span>
|
||||
<a name="l00868"></a>00868 <span class="preprocessor"></span>
|
||||
<a name="l00872"></a>00872 <span class="comment">/* high-level helpers */</span>
|
||||
<a name="l00873"></a>00873 <span class="preprocessor">#include <hwloc/helper.h></span>
|
||||
<a name="l00874"></a>00874
|
||||
<a name="l00875"></a>00875
|
||||
<a name="l00876"></a>00876 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,221 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): linux-libnuma.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>linux-libnuma.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> */</span>
|
||||
<a name="l00005"></a>00005
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef HWLOC_LINUX_LIBNUMA_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_LINUX_LIBNUMA_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include <hwloc.h></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include <numa.h></span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00019"></a>00019
|
||||
<a name="l00035"></a>00035 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00036"></a><a class="code" href="a00048.html#gab728b8eeaa8a79fa2c6f88a4494d3333">00036</a> <a class="code" href="a00048.html#gab728b8eeaa8a79fa2c6f88a4494d3333" title="Convert hwloc CPU set cpuset into the array of unsigned long mask.">hwloc_cpuset_to_linux_libnuma_ulongs</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset,
|
||||
<a name="l00037"></a>00037 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *mask, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *maxnode)
|
||||
<a name="l00038"></a>00038 {
|
||||
<a name="l00039"></a>00039 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> outmaxnode = -1;
|
||||
<a name="l00040"></a>00040 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node = NULL;
|
||||
<a name="l00041"></a>00041 <span class="keywordtype">unsigned</span> nbnodes = <a class="code" href="a00032.html#ga4c23019de0a7679306059e490dceccd2" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00042"></a>00042 <span class="keywordtype">unsigned</span> i;
|
||||
<a name="l00043"></a>00043
|
||||
<a name="l00044"></a>00044 <span class="keywordflow">for</span>(i=0; i<*maxnode/HWLOC_BITS_PER_LONG; i++)
|
||||
<a name="l00045"></a>00045 mask[i] = 0;
|
||||
<a name="l00046"></a>00046
|
||||
<a name="l00047"></a>00047 <span class="keywordflow">if</span> (nbnodes) {
|
||||
<a name="l00048"></a>00048 <span class="keywordflow">while</span> ((node = <a class="code" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71" title="Iterate through same-type objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_type</a>(topology, cpuset, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>, node)) != NULL) {
|
||||
<a name="l00049"></a>00049 <span class="keywordflow">if</span> (node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a> >= *maxnode)
|
||||
<a name="l00050"></a>00050 <span class="keywordflow">break</span>;
|
||||
<a name="l00051"></a>00051 mask[node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>/HWLOC_BITS_PER_LONG] |= 1 << (node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a> % HWLOC_BITS_PER_LONG);
|
||||
<a name="l00052"></a>00052 outmaxnode = node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>;
|
||||
<a name="l00053"></a>00053 }
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 } <span class="keywordflow">else</span> {
|
||||
<a name="l00056"></a>00056 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00057"></a>00057 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(cpuset)) {
|
||||
<a name="l00058"></a>00058 mask[0] = 1;
|
||||
<a name="l00059"></a>00059 outmaxnode = 0;
|
||||
<a name="l00060"></a>00060 }
|
||||
<a name="l00061"></a>00061 }
|
||||
<a name="l00062"></a>00062
|
||||
<a name="l00063"></a>00063 *maxnode = outmaxnode+1;
|
||||
<a name="l00064"></a>00064 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00065"></a>00065 }
|
||||
<a name="l00066"></a>00066
|
||||
<a name="l00076"></a>00076 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00077"></a><a class="code" href="a00048.html#gaa23cfc12b367b1c5da2ffb6efdf083a8">00077</a> <a class="code" href="a00048.html#gaa23cfc12b367b1c5da2ffb6efdf083a8" title="Convert the array of unsigned long mask into hwloc CPU set.">hwloc_cpuset_from_linux_libnuma_ulongs</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> cpuset,
|
||||
<a name="l00078"></a>00078 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *mask, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> maxnode)
|
||||
<a name="l00079"></a>00079 {
|
||||
<a name="l00080"></a>00080 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node;
|
||||
<a name="l00081"></a>00081 <span class="keywordtype">int</span> depth;
|
||||
<a name="l00082"></a>00082 <span class="keywordtype">unsigned</span> i;
|
||||
<a name="l00083"></a>00083
|
||||
<a name="l00084"></a>00084 depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00085"></a>00085 <span class="comment">/* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */</span>
|
||||
<a name="l00086"></a>00086
|
||||
<a name="l00087"></a>00087 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
|
||||
<a name="l00088"></a>00088 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00089"></a>00089 <span class="keywordflow">if</span> (mask[0] & 1)
|
||||
<a name="l00090"></a>00090 <a class="code" href="a00045.html#ga27a3b6994bd6f20c1f26d10bdb29ac0b" title="Copy the contents of CPU set src into the already allocated CPU set dst.">hwloc_cpuset_copy</a>(cpuset, <a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a>(topology));
|
||||
<a name="l00091"></a>00091 <span class="keywordflow">else</span>
|
||||
<a name="l00092"></a>00092 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00093"></a>00093
|
||||
<a name="l00094"></a>00094 } <span class="keywordflow">else</span> {
|
||||
<a name="l00095"></a>00095 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00096"></a>00096 <span class="keywordflow">for</span>(i=0; i<maxnode; i++)
|
||||
<a name="l00097"></a>00097 <span class="keywordflow">if</span> (mask[i/HWLOC_BITS_PER_LONG] & (1 << (i% HWLOC_BITS_PER_LONG))) {
|
||||
<a name="l00098"></a>00098 node = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, i);
|
||||
<a name="l00099"></a>00099 <span class="keywordflow">if</span> (node)
|
||||
<a name="l00100"></a>00100 <a class="code" href="a00045.html#ga9654f87331e6f33090bed3d326346e85" title="Or sets set1 and set2 and store the result in set res.">hwloc_cpuset_or</a>(cpuset, cpuset, node-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
<a name="l00101"></a>00101 }
|
||||
<a name="l00102"></a>00102 }
|
||||
<a name="l00103"></a>00103
|
||||
<a name="l00104"></a>00104 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00105"></a>00105 }
|
||||
<a name="l00106"></a>00106
|
||||
<a name="l00125"></a>00125 <span class="keyword">static</span> __inline <span class="keyword">struct </span>bitmask * __hwloc_attribute_malloc
|
||||
<a name="l00126"></a><a class="code" href="a00049.html#ga80bea6f05af929fbaf50557225ddd927">00126</a> <a class="code" href="a00049.html#ga80bea6f05af929fbaf50557225ddd927" title="Convert hwloc CPU set cpuset into the returned libnuma bitmask.">hwloc_cpuset_to_linux_libnuma_bitmask</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset)
|
||||
<a name="l00127"></a>00127 {
|
||||
<a name="l00128"></a>00128 <span class="keyword">struct </span>bitmask *bitmask;
|
||||
<a name="l00129"></a>00129 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node = NULL;
|
||||
<a name="l00130"></a>00130 <span class="keywordtype">unsigned</span> nbnodes = <a class="code" href="a00032.html#ga4c23019de0a7679306059e490dceccd2" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00131"></a>00131
|
||||
<a name="l00132"></a>00132 <span class="keywordflow">if</span> (nbnodes) {
|
||||
<a name="l00133"></a>00133 bitmask = numa_bitmask_alloc(nbnodes);
|
||||
<a name="l00134"></a>00134 <span class="keywordflow">if</span> (!bitmask)
|
||||
<a name="l00135"></a>00135 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00136"></a>00136 <span class="keywordflow">while</span> ((node = <a class="code" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71" title="Iterate through same-type objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_type</a>(topology, cpuset, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>, node)) != NULL)
|
||||
<a name="l00137"></a>00137 numa_bitmask_setbit(bitmask, node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
|
||||
<a name="l00138"></a>00138
|
||||
<a name="l00139"></a>00139 } <span class="keywordflow">else</span> {
|
||||
<a name="l00140"></a>00140 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00141"></a>00141 bitmask = numa_bitmask_alloc(1);
|
||||
<a name="l00142"></a>00142 <span class="keywordflow">if</span> (!bitmask)
|
||||
<a name="l00143"></a>00143 <span class="keywordflow">return</span> NULL;
|
||||
<a name="l00144"></a>00144 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(cpuset))
|
||||
<a name="l00145"></a>00145 numa_bitmask_setbit(bitmask, 0);
|
||||
<a name="l00146"></a>00146 }
|
||||
<a name="l00147"></a>00147
|
||||
<a name="l00148"></a>00148 <span class="keywordflow">return</span> bitmask;
|
||||
<a name="l00149"></a>00149 }
|
||||
<a name="l00150"></a>00150
|
||||
<a name="l00156"></a>00156 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00157"></a><a class="code" href="a00049.html#gaa92103c3051e8ee3aa4a8a483143e85e">00157</a> <a class="code" href="a00049.html#gaa92103c3051e8ee3aa4a8a483143e85e" title="Convert libnuma bitmask bitmask into hwloc CPU set cpuset.">hwloc_cpuset_from_linux_libnuma_bitmask</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> cpuset,
|
||||
<a name="l00158"></a>00158 <span class="keyword">const</span> <span class="keyword">struct</span> bitmask *bitmask)
|
||||
<a name="l00159"></a>00159 {
|
||||
<a name="l00160"></a>00160 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node;
|
||||
<a name="l00161"></a>00161 <span class="keywordtype">int</span> depth;
|
||||
<a name="l00162"></a>00162 <span class="keywordtype">int</span> i;
|
||||
<a name="l00163"></a>00163
|
||||
<a name="l00164"></a>00164 depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00165"></a>00165 <span class="comment">/* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */</span>
|
||||
<a name="l00166"></a>00166
|
||||
<a name="l00167"></a>00167 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
|
||||
<a name="l00168"></a>00168 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00169"></a>00169 <span class="keywordflow">if</span> (numa_bitmask_isbitset(bitmask, 0))
|
||||
<a name="l00170"></a>00170 <a class="code" href="a00045.html#ga27a3b6994bd6f20c1f26d10bdb29ac0b" title="Copy the contents of CPU set src into the already allocated CPU set dst.">hwloc_cpuset_copy</a>(cpuset, <a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a>(topology));
|
||||
<a name="l00171"></a>00171 <span class="keywordflow">else</span>
|
||||
<a name="l00172"></a>00172 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00173"></a>00173
|
||||
<a name="l00174"></a>00174 } <span class="keywordflow">else</span> {
|
||||
<a name="l00175"></a>00175 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00176"></a>00176 <span class="keywordflow">for</span>(i=0; i<NUMA_NUM_NODES; i++)
|
||||
<a name="l00177"></a>00177 <span class="keywordflow">if</span> (numa_bitmask_isbitset(bitmask, i)) {
|
||||
<a name="l00178"></a>00178 node = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, i);
|
||||
<a name="l00179"></a>00179 <span class="keywordflow">if</span> (node)
|
||||
<a name="l00180"></a>00180 <a class="code" href="a00045.html#ga9654f87331e6f33090bed3d326346e85" title="Or sets set1 and set2 and store the result in set res.">hwloc_cpuset_or</a>(cpuset, cpuset, node-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
<a name="l00181"></a>00181 }
|
||||
<a name="l00182"></a>00182 }
|
||||
<a name="l00183"></a>00183
|
||||
<a name="l00184"></a>00184 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00185"></a>00185 }
|
||||
<a name="l00186"></a>00186
|
||||
<a name="l00191"></a>00191 <span class="preprocessor">#ifdef NUMA_VERSION1_COMPATIBILITY</span>
|
||||
<a name="l00192"></a>00192 <span class="preprocessor"></span>
|
||||
<a name="l00202"></a>00202 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00203"></a><a class="code" href="a00050.html#gaac14df7a9821f2a29391f01556bd2af3">00203</a> <a class="code" href="a00050.html#gaac14df7a9821f2a29391f01556bd2af3" title="Convert hwloc CPU set cpuset into libnuma nodemask nodemask.">hwloc_cpuset_to_linux_libnuma_nodemask</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset,
|
||||
<a name="l00204"></a>00204 nodemask_t *nodemask)
|
||||
<a name="l00205"></a>00205 {
|
||||
<a name="l00206"></a>00206 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node = NULL;
|
||||
<a name="l00207"></a>00207 <span class="keywordtype">unsigned</span> nbnodes = <a class="code" href="a00032.html#ga4c23019de0a7679306059e490dceccd2" title="Returns the width of level type type.">hwloc_get_nbobjs_by_type</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00208"></a>00208
|
||||
<a name="l00209"></a>00209 nodemask_zero(nodemask);
|
||||
<a name="l00210"></a>00210 <span class="keywordflow">if</span> (nbnodes) {
|
||||
<a name="l00211"></a>00211 <span class="keywordflow">while</span> ((node = <a class="code" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71" title="Iterate through same-type objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_type</a>(topology, cpuset, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>, node)) != NULL)
|
||||
<a name="l00212"></a>00212 nodemask_set(nodemask, node-><a class="code" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9" title="OS-provided physical index number.">os_index</a>);
|
||||
<a name="l00213"></a>00213
|
||||
<a name="l00214"></a>00214 } <span class="keywordflow">else</span> {
|
||||
<a name="l00215"></a>00215 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00216"></a>00216 <span class="keywordflow">if</span> (!<a class="code" href="a00045.html#gac5b8ad0c32e9d14c587eabde188182a9" title="Test whether set set is empty.">hwloc_cpuset_iszero</a>(cpuset))
|
||||
<a name="l00217"></a>00217 nodemask_set(nodemask, 0);
|
||||
<a name="l00218"></a>00218 }
|
||||
<a name="l00219"></a>00219
|
||||
<a name="l00220"></a>00220 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00221"></a>00221 }
|
||||
<a name="l00222"></a>00222
|
||||
<a name="l00228"></a>00228 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00229"></a><a class="code" href="a00050.html#ga1a887850b8fa7bbf7c4a92742c150a1a">00229</a> <a class="code" href="a00050.html#ga1a887850b8fa7bbf7c4a92742c150a1a" title="Convert libnuma nodemask nodemask into hwloc CPU set cpuset.">hwloc_cpuset_from_linux_libnuma_nodemask</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> cpuset,
|
||||
<a name="l00230"></a>00230 <span class="keyword">const</span> nodemask_t *nodemask)
|
||||
<a name="l00231"></a>00231 {
|
||||
<a name="l00232"></a>00232 <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> node;
|
||||
<a name="l00233"></a>00233 <span class="keywordtype">int</span> depth;
|
||||
<a name="l00234"></a>00234 <span class="keywordtype">int</span> i;
|
||||
<a name="l00235"></a>00235
|
||||
<a name="l00236"></a>00236 depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" title="NUMA node. A set of processors around memory which the processors can directly access...">HWLOC_OBJ_NODE</a>);
|
||||
<a name="l00237"></a>00237 <span class="comment">/* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */</span>
|
||||
<a name="l00238"></a>00238
|
||||
<a name="l00239"></a>00239 <span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
|
||||
<a name="l00240"></a>00240 <span class="comment">/* if no numa, libnuma assumes we have a single node */</span>
|
||||
<a name="l00241"></a>00241 <span class="keywordflow">if</span> (nodemask_isset(nodemask, 0))
|
||||
<a name="l00242"></a>00242 <a class="code" href="a00045.html#ga27a3b6994bd6f20c1f26d10bdb29ac0b" title="Copy the contents of CPU set src into the already allocated CPU set dst.">hwloc_cpuset_copy</a>(cpuset, <a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a>(topology));
|
||||
<a name="l00243"></a>00243 <span class="keywordflow">else</span>
|
||||
<a name="l00244"></a>00244 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00245"></a>00245
|
||||
<a name="l00246"></a>00246 } <span class="keywordflow">else</span> {
|
||||
<a name="l00247"></a>00247 <a class="code" href="a00045.html#gacabf3491be3ab41b4ad1ee28f72db89e" title="Empty the CPU set set.">hwloc_cpuset_zero</a>(cpuset);
|
||||
<a name="l00248"></a>00248 <span class="keywordflow">for</span>(i=0; i<NUMA_NUM_NODES; i++)
|
||||
<a name="l00249"></a>00249 <span class="keywordflow">if</span> (nodemask_isset(nodemask, i)) {
|
||||
<a name="l00250"></a>00250 node = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, i);
|
||||
<a name="l00251"></a>00251 <span class="keywordflow">if</span> (node)
|
||||
<a name="l00252"></a>00252 <a class="code" href="a00045.html#ga9654f87331e6f33090bed3d326346e85" title="Or sets set1 and set2 and store the result in set res.">hwloc_cpuset_or</a>(cpuset, cpuset, node-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
<a name="l00253"></a>00253 }
|
||||
<a name="l00254"></a>00254 }
|
||||
<a name="l00255"></a>00255
|
||||
<a name="l00256"></a>00256 <span class="keywordflow">return</span> 0;
|
||||
<a name="l00257"></a>00257 }
|
||||
<a name="l00258"></a>00258
|
||||
<a name="l00260"></a>00260 <span class="preprocessor">#endif </span><span class="comment">/* NUMA_VERSION1_COMPATIBILITY */</span>
|
||||
<a name="l00261"></a>00261
|
||||
<a name="l00262"></a>00262
|
||||
<a name="l00263"></a>00263 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_LINUX_NUMA_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): linux.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>linux.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> */</span>
|
||||
<a name="l00005"></a>00005
|
||||
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef HWLOC_LINUX_H</span>
|
||||
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_LINUX_H</span>
|
||||
<a name="l00015"></a>00015 <span class="preprocessor"></span>
|
||||
<a name="l00016"></a>00016 <span class="preprocessor">#include <hwloc.h></span>
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#include <stdio.h></span>
|
||||
<a name="l00018"></a>00018
|
||||
<a name="l00032"></a>00032 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00047.html#gaeacad897c30dbea284948374ad4b010c" title="Convert a linux kernel cpumap file file into hwloc CPU set.">hwloc_linux_parse_cpumap_file</a>(FILE *file, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>);
|
||||
<a name="l00033"></a>00033
|
||||
<a name="l00039"></a>00039 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00047.html#gaaaca5d1687053b6c3326b2c165bd6530" title="Bind a thread tid on cpus given in cpuset set.">hwloc_linux_set_tid_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, pid_t tid, <a class="code" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <span class="keyword">set</span>);
|
||||
<a name="l00040"></a>00040
|
||||
<a name="l00046"></a>00046 HWLOC_DECLSPEC <span class="keywordtype">int</span> <a class="code" href="a00047.html#gaf36a9211a21eb930f59090eb5d460b8e" title="Get the current binding of thread tid.">hwloc_linux_get_tid_cpubind</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, pid_t tid, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>);
|
||||
<a name="l00047"></a>00047
|
||||
<a name="l00050"></a>00050 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_GLIBC_SCHED_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): openfabrics-verbs.h Source File</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h1>openfabrics-verbs.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
|
||||
<a name="l00002"></a>00002 <span class="comment"> * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1</span>
|
||||
<a name="l00003"></a>00003 <span class="comment"> * Copyright © 2009 Cisco Systems, Inc. All rights reserved.</span>
|
||||
<a name="l00004"></a>00004 <span class="comment"> * See COPYING in top-level directory.</span>
|
||||
<a name="l00005"></a>00005 <span class="comment"> */</span>
|
||||
<a name="l00006"></a>00006
|
||||
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef HWLOC_OPENFABRICS_VERBS_H</span>
|
||||
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define HWLOC_OPENFABRICS_VERBS_H</span>
|
||||
<a name="l00019"></a>00019 <span class="preprocessor"></span>
|
||||
<a name="l00020"></a>00020 <span class="preprocessor">#include <hwloc.h></span>
|
||||
<a name="l00021"></a>00021 <span class="preprocessor">#include <hwloc/config.h></span>
|
||||
<a name="l00022"></a>00022 <span class="preprocessor">#include <hwloc/linux.h></span>
|
||||
<a name="l00023"></a>00023
|
||||
<a name="l00024"></a>00024 <span class="preprocessor">#include <infiniband/verbs.h></span>
|
||||
<a name="l00025"></a>00025
|
||||
<a name="l00038"></a>00038 <span class="keyword">static</span> __inline <span class="keywordtype">int</span>
|
||||
<a name="l00039"></a><a class="code" href="a00051.html#gaa8e3405c00a4b46991336549c461974c">00039</a> <a class="code" href="a00051.html#gaa8e3405c00a4b46991336549c461974c" title="Get the CPU set of logical processors that are physically close to device ibdev.">hwloc_ibv_get_device_cpuset</a>(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology __hwloc_attribute_unused,
|
||||
<a name="l00040"></a>00040 <span class="keyword">struct</span> ibv_device *ibdev, <a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> <span class="keyword">set</span>)
|
||||
<a name="l00041"></a>00041 {
|
||||
<a name="l00042"></a>00042 <span class="preprocessor">#ifdef HWLOC_LINUX_SYS</span>
|
||||
<a name="l00043"></a>00043 <span class="preprocessor"></span> <span class="comment">/* If we're on Linux, use the verbs-provided sysfs mechanism to</span>
|
||||
<a name="l00044"></a>00044 <span class="comment"> get the local cpus */</span>
|
||||
<a name="l00045"></a>00045 <span class="preprocessor">#define HWLOC_OPENFABRICS_VERBS_SYSFS_PATH_MAX 128</span>
|
||||
<a name="l00046"></a>00046 <span class="preprocessor"></span> <span class="keywordtype">char</span> path[HWLOC_OPENFABRICS_VERBS_SYSFS_PATH_MAX];
|
||||
<a name="l00047"></a>00047 FILE *sysfile = NULL;
|
||||
<a name="l00048"></a>00048
|
||||
<a name="l00049"></a>00049 sprintf(path, <span class="stringliteral">"/sys/class/infiniband/%s/device/local_cpus"</span>,
|
||||
<a name="l00050"></a>00050 ibv_get_device_name(ibdev));
|
||||
<a name="l00051"></a>00051 sysfile = fopen(path, <span class="stringliteral">"r"</span>);
|
||||
<a name="l00052"></a>00052 <span class="keywordflow">if</span> (!sysfile)
|
||||
<a name="l00053"></a>00053 <span class="keywordflow">return</span> -1;
|
||||
<a name="l00054"></a>00054
|
||||
<a name="l00055"></a>00055 <a class="code" href="a00047.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>);
|
||||
<a name="l00056"></a>00056
|
||||
<a name="l00057"></a>00057 fclose(sysfile);
|
||||
<a name="l00058"></a>00058 <span class="preprocessor">#else</span>
|
||||
<a name="l00059"></a>00059 <span class="preprocessor"></span> <span class="comment">/* Non-Linux systems simply get a full cpuset */</span>
|
||||
<a name="l00060"></a>00060 <a class="code" href="a00045.html#ga27a3b6994bd6f20c1f26d10bdb29ac0b" title="Copy the contents of CPU set src into the already allocated CPU set dst.">hwloc_cpuset_copy</a>(<span class="keyword">set</span>, <a class="code" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a>(topology));
|
||||
<a name="l00061"></a>00061 <span class="preprocessor">#endif</span>
|
||||
<a name="l00062"></a>00062 <span class="preprocessor"></span> <span class="keywordflow">return</span> 0;
|
||||
<a name="l00063"></a>00063 }
|
||||
<a name="l00064"></a>00064
|
||||
<a name="l00067"></a>00067 <span class="preprocessor">#endif </span><span class="comment">/* HWLOC_OPENFABRICS_VERBS_H */</span>
|
||||
</pre></div></div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
49
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00025.html
Обычный файл
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): API version</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>API version</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Defines</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga8f4dfb8eef138af55dd1a0fa802e5476">HWLOC_API_VERSION</a> 0x00010000</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate at build time which hwloc API version is being used. <a href="#ga8f4dfb8eef138af55dd1a0fa802e5476"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Define Documentation</h2>
|
||||
<a class="anchor" id="ga8f4dfb8eef138af55dd1a0fa802e5476"></a><!-- doxytag: member="hwloc.h::HWLOC_API_VERSION" ref="ga8f4dfb8eef138af55dd1a0fa802e5476" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define HWLOC_API_VERSION 0x00010000</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Indicate at build time which hwloc API version is being used. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
50
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00026.html
Обычный файл
@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Topology context</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Topology context</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">typedef struct hwloc_topology * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Topology context. <a href="#ga9d1e76ee15a7dee158b786c30b6a6e38"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Typedef Documentation</h2>
|
||||
<a class="anchor" id="ga9d1e76ee15a7dee158b786c30b6a6e38"></a><!-- doxytag: member="hwloc.h::hwloc_topology_t" ref="ga9d1e76ee15a7dee158b786c30b6a6e38" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct hwloc_topology* <a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Topology context. </p>
|
||||
<p>To be initialized with <a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init()</a> and built with <a class="el" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
156
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00027.html
Обычный файл
@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Topology Object Types</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Topology Object Types</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> { <br/>
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec">HWLOC_OBJ_SYSTEM</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80">HWLOC_OBJ_MACHINE</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd">HWLOC_OBJ_NODE</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec">HWLOC_OBJ_SOCKET</a>,
|
||||
<br/>
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc">HWLOC_OBJ_CACHE</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f">HWLOC_OBJ_CORE</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661">HWLOC_OBJ_PU</a>,
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56">HWLOC_OBJ_GROUP</a>,
|
||||
<br/>
|
||||
<a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d">HWLOC_OBJ_MISC</a>
|
||||
<br/>
|
||||
}</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Type of topology object. </p>
|
||||
<a href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#ga46323568968005137c32f6a1cd405b74">hwloc_compare_types_e</a> { <a class="el" href="a00027.html#gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb">HWLOC_TYPE_UNORDERED</a>
|
||||
}</td></tr>
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html#gabd7da4f4ea12b420b8ecbde458b27805">hwloc_compare_types</a> (<a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type1, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type2) __hwloc_attribute_const</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compare the depth of two object types. <a href="#gabd7da4f4ea12b420b8ecbde458b27805"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Enumeration Type Documentation</h2>
|
||||
<a class="anchor" id="ga46323568968005137c32f6a1cd405b74"></a><!-- doxytag: member="hwloc.h::hwloc_compare_types_e" ref="ga46323568968005137c32f6a1cd405b74" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="a00027.html#ga46323568968005137c32f6a1cd405b74">hwloc_compare_types_e</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb"></a><!-- doxytag: member="HWLOC_TYPE_UNORDERED" ref="gga46323568968005137c32f6a1cd405b74a2f8297ea36eba46e7596e810a67298fb" args="" -->HWLOC_TYPE_UNORDERED</em> </td><td>
|
||||
<p>Value returned by hwloc_compare_types when types can not be compared. </p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gacd37bb612667dc437d66bfb175a8dc55"></a><!-- doxytag: member="hwloc.h::hwloc_obj_type_t" ref="gacd37bb612667dc437d66bfb175a8dc55" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Type of topology object. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Do not rely on the ordering or completeness of the values as new ones may be defined in the future! If you need to compare types, use <a class="el" href="a00027.html#gabd7da4f4ea12b420b8ecbde458b27805" title="Compare the depth of two object types.">hwloc_compare_types()</a> instead. </dd></dl>
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec"></a><!-- doxytag: member="HWLOC_OBJ_SYSTEM" ref="ggacd37bb612667dc437d66bfb175a8dc55a3aa1b842d1fd4207ebce171f95a244ec" args="" -->HWLOC_OBJ_SYSTEM</em> </td><td>
|
||||
<p>Whole system (may be a cluster of machines). The whole system that is accessible to hwloc. That may comprise several machines in SSI systems like Kerrighed. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80"></a><!-- doxytag: member="HWLOC_OBJ_MACHINE" ref="ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80" args="" -->HWLOC_OBJ_MACHINE</em> </td><td>
|
||||
<p>Machine. The typical root object type. A set of processors and memory with cache coherency. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd"></a><!-- doxytag: member="HWLOC_OBJ_NODE" ref="ggacd37bb612667dc437d66bfb175a8dc55aaf0964881117bdedf1a5e9332cd120dd" args="" -->HWLOC_OBJ_NODE</em> </td><td>
|
||||
<p>NUMA node. A set of processors around memory which the processors can directly access. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec"></a><!-- doxytag: member="HWLOC_OBJ_SOCKET" ref="ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec" args="" -->HWLOC_OBJ_SOCKET</em> </td><td>
|
||||
<p>Socket, physical package, or chip. In the physical meaning, i.e. that you can add or remove physically. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc"></a><!-- doxytag: member="HWLOC_OBJ_CACHE" ref="ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" args="" -->HWLOC_OBJ_CACHE</em> </td><td>
|
||||
<p>Data cache. Can be L1, L2, L3, ... </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f"></a><!-- doxytag: member="HWLOC_OBJ_CORE" ref="ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f" args="" -->HWLOC_OBJ_CORE</em> </td><td>
|
||||
<p>Core. A computation unit (may be shared by several logical processors). </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661"></a><!-- doxytag: member="HWLOC_OBJ_PU" ref="ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" args="" -->HWLOC_OBJ_PU</em> </td><td>
|
||||
<p>Processing Unit, or (Logical) Processor. An execution unit (may share a core with some other logical processors, e.g. in the case of an SMT core). </p>
|
||||
<p>Objects of this kind are always reported and can thus be used as fallback when others are not. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56"></a><!-- doxytag: member="HWLOC_OBJ_GROUP" ref="ggacd37bb612667dc437d66bfb175a8dc55a5269ef95be72f88465559d35c9b7ad56" args="" -->HWLOC_OBJ_GROUP</em> </td><td>
|
||||
<p>Group objects. Objects which do not fit in the above but are detected by hwloc and are useful to take into account for affinity. For instance, some OSes expose their arbitrary processors aggregation this way. And hwloc may insert such objects to group NUMA nodes according to their distances. </p>
|
||||
<p>These objects are ignored when they do not bring any structure. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d"></a><!-- doxytag: member="HWLOC_OBJ_MISC" ref="ggacd37bb612667dc437d66bfb175a8dc55a19f8a6953fa91efc76bcbcdf2d22de4d" args="" -->HWLOC_OBJ_MISC</em> </td><td>
|
||||
<p>Miscellaneous objects. Objects without particular meaning, that can e.g. be added by the application for its own use. </p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gabd7da4f4ea12b420b8ecbde458b27805"></a><!-- doxytag: member="hwloc.h::hwloc_compare_types" ref="gabd7da4f4ea12b420b8ecbde458b27805" args="(hwloc_obj_type_t type1, hwloc_obj_type_t type2) __hwloc_attribute_const" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_compare_types </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type1</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type2</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td> const</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Compare the depth of two object types. </p>
|
||||
<p>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 <code>type1</code> objects usually include <code>type2</code> objects, are the same as <code>type2</code> objects, or are included in <code>type2</code> 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).</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>HWLOC_OBJ_PU will always be the deepest. </dd>
|
||||
<dd>
|
||||
This does not mean that the actual topology will respect that order: e.g. as of today cores may also contain caches, and sockets may also contain nodes. This is thus just to be seen as a fallback comparison method. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
56
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00028.html
Обычный файл
@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Topology Objects</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Topology Objects</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">hwloc_obj_memory_s</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Object memory. <a href="a00013.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00010.html">hwloc_obj</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure of a topology object. <a href="a00010.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">union </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">hwloc_obj_attr_u</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Object type-specific Attributes. <a href="a00011.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00010.html">hwloc_obj</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html#ga79b8ab56877ef99ac59b833203391c7d">hwloc_obj_t</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience typedef; a pointer to a struct <a class="el" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a>. <a href="#ga79b8ab56877ef99ac59b833203391c7d"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Typedef Documentation</h2>
|
||||
<a class="anchor" id="ga79b8ab56877ef99ac59b833203391c7d"></a><!-- doxytag: member="hwloc.h::hwloc_obj_t" ref="ga79b8ab56877ef99ac59b833203391c7d" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">typedef struct <a class="el" href="a00010.html">hwloc_obj</a>* <a class="el" href="a00010.html">hwloc_obj_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convenience typedef; a pointer to a struct <a class="el" href="a00010.html" title="Structure of a topology object.">hwloc_obj</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
148
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00029.html
Обычный файл
@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Create and Destroy Topologies</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Create and Destroy Topologies</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f">hwloc_topology_init</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> *topologyp)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a topology context. <a href="#ga5c2d6f476af87005c7bd0811d4548b9f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71">hwloc_topology_load</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Build the actual topology. <a href="#ga91e2e6427b95fb7339c99dbbef996e71"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html#ga6040925d3ee4bbb2647f2a321aca5f4b">hwloc_topology_destroy</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Terminate and free a topology context. <a href="#ga6040925d3ee4bbb2647f2a321aca5f4b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html#gab3628b2a540a5a08e8cf724ef829e70a">hwloc_topology_check</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Run internal checks on a topology structure. <a href="#gab3628b2a540a5a08e8cf724ef829e70a"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gab3628b2a540a5a08e8cf724ef829e70a"></a><!-- doxytag: member="hwloc.h::hwloc_topology_check" ref="gab3628b2a540a5a08e8cf724ef829e70a" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC void hwloc_topology_check </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Run internal checks on a topology structure. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>topology</em> </td><td>is the topology to be checked </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6040925d3ee4bbb2647f2a321aca5f4b"></a><!-- doxytag: member="hwloc.h::hwloc_topology_destroy" ref="ga6040925d3ee4bbb2647f2a321aca5f4b" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC void hwloc_topology_destroy </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Terminate and free a topology context. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>topology</em> </td><td>is the topology to be freed </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga5c2d6f476af87005c7bd0811d4548b9f"></a><!-- doxytag: member="hwloc.h::hwloc_topology_init" ref="ga5c2d6f476af87005c7bd0811d4548b9f" args="(hwloc_topology_t *topologyp)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_init </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> * </td>
|
||||
<td class="paramname"> <em>topologyp</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Allocate a topology context. </p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>topologyp</em> </td><td>is assigned a pointer to the new allocated context.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on error. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga91e2e6427b95fb7339c99dbbef996e71"></a><!-- doxytag: member="hwloc.h::hwloc_topology_load" ref="ga91e2e6427b95fb7339c99dbbef996e71" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_load </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Build the actual topology. </p>
|
||||
<p>Build the actual topology once initialized with <a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init()</a> and tuned with hwlocality_configuration routine. No other routine may be called earlier using this topology context.</p>
|
||||
<dl><dt><b>Parameters:</b></dt><dd>
|
||||
<table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"></td><td valign="top"><em>topology</em> </td><td>is the topology to be loaded with objects.</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, -1 on error.</dd></dl>
|
||||
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00030.html">Configure Topology Detection</a> </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
356
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00030.html
Обычный файл
@ -0,0 +1,356 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Configure Topology Detection</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Configure Topology Detection</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">hwloc_topology_discovery_support</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flags describing actual discovery support for this topology. <a href="a00015.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">hwloc_topology_cpubind_support</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flags describing actual binding support for this topology. <a href="a00014.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">hwloc_topology_support</a></td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set of flags describing actual support for this topology. <a href="a00016.html#_details">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#gada025d3ec20b4b420f8038d23d6e7bde">hwloc_topology_flags_e</a> { <a class="el" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8">HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM</a>,
|
||||
<a class="el" href="a00030.html#ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b">HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM</a>
|
||||
}</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Flags to be set onto a topology context before load. </p>
|
||||
<a href="a00030.html#gada025d3ec20b4b420f8038d23d6e7bde">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#gaf2071c8621fddc53649c245d87835b47">hwloc_topology_ignore_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Ignore an object type. <a href="#gaf2071c8621fddc53649c245d87835b47"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ga6ddd4213d95bd1c30555b294a60efa6b">hwloc_topology_ignore_type_keep_structure</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Ignore an object type if it does not bring any structure. <a href="#ga6ddd4213d95bd1c30555b294a60efa6b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#gaec6fb00050f50cd41007f1ae580d2106">hwloc_topology_ignore_all_keep_structure</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Ignore all objects that do not bring any structure. <a href="#gaec6fb00050f50cd41007f1ae580d2106"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ga6d11e53db143ac39c32cdb3912b71f99">hwloc_topology_set_flags</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned long flags)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set OR'ed flags to non-yet-loaded topology. <a href="#ga6d11e53db143ac39c32cdb3912b71f99"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ga2f6bfb6958d8b508ea1d7d5bb266432c">hwloc_topology_set_fsroot</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology, const char *__hwloc_restrict fsroot_path)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Change the file-system root path when building the topology from sysfs/procfs. <a href="#ga2f6bfb6958d8b508ea1d7d5bb266432c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#gae1100de0162b3c6a9db750ac14629c05">hwloc_topology_set_pid</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology, hwloc_pid_t pid)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Change which pid the topology is viewed from. <a href="#gae1100de0162b3c6a9db750ac14629c05"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ga2fcb52181b586c20f001b7a999550324">hwloc_topology_set_synthetic</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology, const char *__hwloc_restrict description)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Enable synthetic topology. <a href="#ga2fcb52181b586c20f001b7a999550324"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#ga93efcc8a962afe1ed23393700682173f">hwloc_topology_set_xml</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology, const char *__hwloc_restrict xmlpath)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Enable XML-file based topology. <a href="#ga93efcc8a962afe1ed23393700682173f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC struct <br class="typebreak"/>
|
||||
<a class="el" href="a00016.html">hwloc_topology_support</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html#gac2126e105f3ae708efca2e90d612625a">hwloc_topology_get_support</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the topology support. <a href="#gac2126e105f3ae708efca2e90d612625a"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>These functions can optionally be called between <a class="el" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init()</a> and <a class="el" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load()</a> to configure how the detection should be performed, e.g. to ignore some objects types, define a synthetic topology, etc.</p>
|
||||
<p>If none of them is called, the default is to detect all the objects of the machine that the caller is allowed to access.</p>
|
||||
<p>This default behavior may also be modified through environment variables if the application did not modify it already. Setting HWLOC_XMLFILE in the environment enforces the discovery from a XML file as if <a class="el" href="a00030.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml()</a> had been called. HWLOC_FSROOT switches to reading the topology from the specified Linux filesystem root as if <a class="el" href="a00030.html#ga2f6bfb6958d8b508ea1d7d5bb266432c" title="Change the file-system root path when building the topology from sysfs/procfs.">hwloc_topology_set_fsroot()</a> had been called. Finally, HWLOC_THISSYSTEM enforces the return value of <a class="el" href="a00032.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem()</a>. </p>
|
||||
<hr/><h2>Enumeration Type Documentation</h2>
|
||||
<a class="anchor" id="gada025d3ec20b4b420f8038d23d6e7bde"></a><!-- doxytag: member="hwloc.h::hwloc_topology_flags_e" ref="gada025d3ec20b4b420f8038d23d6e7bde" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="a00030.html#gada025d3ec20b4b420f8038d23d6e7bde">hwloc_topology_flags_e</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Flags to be set onto a topology context before load. </p>
|
||||
<p>Flags should be given to <a class="el" href="a00030.html#ga6d11e53db143ac39c32cdb3912b71f99" title="Set OR'ed flags to non-yet-loaded topology.">hwloc_topology_set_flags()</a>. </p>
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8"></a><!-- doxytag: member="HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM" ref="ggada025d3ec20b4b420f8038d23d6e7bdea129b4fea1300be22bbaf0bb0958994c8" args="" -->HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM</em> </td><td>
|
||||
<p>Detect the whole system, ignore reservations and offline settings. </p>
|
||||
<p>Gather all resources, even if some were disabled by the administrator. For instance, ignore Linux Cpusets and gather all processors and memory nodes, and ignore the fact that some resources may be offline. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b"></a><!-- doxytag: member="HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM" ref="ggada025d3ec20b4b420f8038d23d6e7bdea6ecb6abc6a0bb75e81564f8bca85783b" args="" -->HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM</em> </td><td>
|
||||
<p>Assume that the selected backend provides the topology for the system on which we are running. </p>
|
||||
<p>This forces hwloc_topology_is_thissystem to return 1, i.e. makes hwloc assume that the selected backend provides the topology for the system on which we are running, even if it is not the OS-specific backend but the XML backend for instance. This means making the binding functions actually call the OS-specific system calls and really do binding, while the XML backend would otherwise provide empty hooks just returning success.</p>
|
||||
<p>Setting the environment variable HWLOC_THISSYSTEM may also result in the same behavior.</p>
|
||||
<p>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>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gac2126e105f3ae708efca2e90d612625a"></a><!-- doxytag: member="hwloc.h::hwloc_topology_get_support" ref="gac2126e105f3ae708efca2e90d612625a" args="(hwloc_topology_t __hwloc_restrict topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC struct <a class="el" href="a00016.html">hwloc_topology_support</a>* hwloc_topology_get_support </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [read]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Retrieve the topology support. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaec6fb00050f50cd41007f1ae580d2106"></a><!-- doxytag: member="hwloc.h::hwloc_topology_ignore_all_keep_structure" ref="gaec6fb00050f50cd41007f1ae580d2106" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_ignore_all_keep_structure </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Ignore all objects that do not bring any structure. </p>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf2071c8621fddc53649c245d87835b47"></a><!-- doxytag: member="hwloc.h::hwloc_topology_ignore_type" ref="gaf2071c8621fddc53649c245d87835b47" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_ignore_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Ignore an object type. </p>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6ddd4213d95bd1c30555b294a60efa6b"></a><!-- doxytag: member="hwloc.h::hwloc_topology_ignore_type_keep_structure" ref="ga6ddd4213d95bd1c30555b294a60efa6b" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_ignore_type_keep_structure </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Ignore an object type if it does not bring any structure. </p>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga6d11e53db143ac39c32cdb3912b71f99"></a><!-- doxytag: member="hwloc.h::hwloc_topology_set_flags" ref="ga6d11e53db143ac39c32cdb3912b71f99" args="(hwloc_topology_t topology, unsigned long flags)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_set_flags </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned long </td>
|
||||
<td class="paramname"> <em>flags</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Set OR'ed flags to non-yet-loaded topology. </p>
|
||||
<p>Set a OR'ed set of hwloc_topology_flags_e onto a topology that was not yet loaded. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2f6bfb6958d8b508ea1d7d5bb266432c"></a><!-- doxytag: member="hwloc.h::hwloc_topology_set_fsroot" ref="ga2f6bfb6958d8b508ea1d7d5bb266432c" args="(hwloc_topology_t __hwloc_restrict topology, const char *__hwloc_restrict fsroot_path)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_set_fsroot </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>fsroot_path</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Change the file-system root path when building the topology from sysfs/procfs. </p>
|
||||
<p>On Linux system, use sysfs and procfs files as if they were mounted on the given <code>fsroot_path</code> 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 <a class="el" href="a00032.html#ga0d109e33fc7990f62f665d336e5e5111" title="Does the topology context come from this system?">hwloc_topology_is_thissystem()</a> to return 0.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>For conveniency, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, the HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM has to be set to assert that the loaded file is really the underlying system. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gae1100de0162b3c6a9db750ac14629c05"></a><!-- doxytag: member="hwloc.h::hwloc_topology_set_pid" ref="gae1100de0162b3c6a9db750ac14629c05" args="(hwloc_topology_t __hwloc_restrict topology, hwloc_pid_t pid)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_set_pid </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">hwloc_pid_t </td>
|
||||
<td class="paramname"> <em>pid</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Change which pid the topology is viewed from. </p>
|
||||
<p>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 <a class="el" href="a00030.html#gae1100de0162b3c6a9db750ac14629c05" title="Change which pid the topology is viewed from.">hwloc_topology_set_pid()</a> permits to make it expose the topology of the machine from the point of view of another process.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms </dd>
|
||||
<dd>
|
||||
The ENOSYS error is returned on platforms that does not support this feature. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2fcb52181b586c20f001b7a999550324"></a><!-- doxytag: member="hwloc.h::hwloc_topology_set_synthetic" ref="ga2fcb52181b586c20f001b7a999550324" args="(hwloc_topology_t __hwloc_restrict topology, const char *__hwloc_restrict description)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_set_synthetic </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>description</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Enable synthetic topology. </p>
|
||||
<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>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>For conveniency, this backend provides empty binding hooks which just return success. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga93efcc8a962afe1ed23393700682173f"></a><!-- doxytag: member="hwloc.h::hwloc_topology_set_xml" ref="ga93efcc8a962afe1ed23393700682173f" args="(hwloc_topology_t __hwloc_restrict topology, const char *__hwloc_restrict xmlpath)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_set_xml </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>xmlpath</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Enable XML-file based topology. </p>
|
||||
<p>Gather topology information the XML file given at <code>xmlpath</code>. Setting the environment variable HWLOC_XMLFILE may also result in this behavior. This file may have been generated earlier with lstopo file.xml.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>For conveniency, this backend provides empty binding hooks which just return success. To have hwloc still actually call OS-specific hooks, the HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM has to be set to assert that the loaded file is really the underlying system. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
144
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00031.html
Обычный файл
@ -0,0 +1,144 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Tinker with topologies.</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Tinker with topologies.</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga1c9d8e608232206ce2142fe806a6835b">hwloc_topology_export_xml</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, const char *xmlpath)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Export the topology into an XML file. <a href="#ga1c9d8e608232206ce2142fe806a6835b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#ga017a9ba16d554326c6e3812d545d7230">hwloc_topology_insert_misc_object_by_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset, const char *name)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a MISC object to the topology. <a href="#ga017a9ba16d554326c6e3812d545d7230"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html#gadacd7a3d21220fbb30c3256d8b22a294">hwloc_topology_insert_misc_object_by_parent</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00010.html">hwloc_obj_t</a> parent, const char *name)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a MISC object to the topology. <a href="#gadacd7a3d21220fbb30c3256d8b22a294"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga1c9d8e608232206ce2142fe806a6835b"></a><!-- doxytag: member="hwloc.h::hwloc_topology_export_xml" ref="ga1c9d8e608232206ce2142fe806a6835b" args="(hwloc_topology_t topology, const char *xmlpath)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC void hwloc_topology_export_xml </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"> <em>xmlpath</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Export the topology into an XML file. </p>
|
||||
<p>This file may be loaded later through <a class="el" href="a00030.html#ga93efcc8a962afe1ed23393700682173f" title="Enable XML-file based topology.">hwloc_topology_set_xml()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga017a9ba16d554326c6e3812d545d7230"></a><!-- doxytag: member="hwloc.h::hwloc_topology_insert_misc_object_by_cpuset" ref="ga017a9ba16d554326c6e3812d545d7230" args="(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, const char *name)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_topology_insert_misc_object_by_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"> <em>name</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Add a MISC object to the topology. </p>
|
||||
<p>A new MISC object will be created and inserted into the topology at the position given by cpuset.</p>
|
||||
<p>cpuset and name will be copied.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly-created object </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gadacd7a3d21220fbb30c3256d8b22a294"></a><!-- doxytag: member="hwloc.h::hwloc_topology_insert_misc_object_by_parent" ref="gadacd7a3d21220fbb30c3256d8b22a294" args="(hwloc_topology_t topology, hwloc_obj_t parent, const char *name)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_topology_insert_misc_object_by_parent </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>parent</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"> <em>name</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Add a MISC object to the topology. </p>
|
||||
<p>A new MISC object will be created and inserted into the topology at the position given by parent.</p>
|
||||
<p>name will be copied.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly-created object </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
237
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00032.html
Обычный файл
@ -0,0 +1,237 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Get some Topology Information</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Get some Topology Information</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#gaf4e663cf42bbe20756b849c6293ef575">hwloc_get_type_depth_e</a> { <a class="el" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad">HWLOC_TYPE_DEPTH_UNKNOWN</a>,
|
||||
<a class="el" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c">HWLOC_TYPE_DEPTH_MULTIPLE</a>
|
||||
}</td></tr>
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#ga8c30b0cec55074eb3ed34e4f2a1a9937">hwloc_topology_get_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the depth of the hierachical tree of objects. <a href="#ga8c30b0cec55074eb3ed34e4f2a1a9937"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d">hwloc_get_type_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the depth of objects of type <code>type</code>. <a href="#gaea7c64dd59467f5201ba87712710b14d"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#gadd4964764ae7e49231065d58a553fd31">hwloc_get_depth_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned depth) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the type of objects at depth <code>depth</code>. <a href="#gadd4964764ae7e49231065d58a553fd31"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f">hwloc_get_nbobjs_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned depth) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the width of level at depth <code>depth</code>. <a href="#ga20cfe2456f4cfdd789c9aca6d2fdd69f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#ga4c23019de0a7679306059e490dceccd2">hwloc_get_nbobjs_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the width of level type <code>type</code>. <a href="#ga4c23019de0a7679306059e490dceccd2"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html#ga0d109e33fc7990f62f665d336e5e5111">hwloc_topology_is_thissystem</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict topology) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the topology context come from this system? <a href="#ga0d109e33fc7990f62f665d336e5e5111"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Enumeration Type Documentation</h2>
|
||||
<a class="anchor" id="gaf4e663cf42bbe20756b849c6293ef575"></a><!-- doxytag: member="hwloc.h::hwloc_get_type_depth_e" ref="gaf4e663cf42bbe20756b849c6293ef575" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="a00032.html#gaf4e663cf42bbe20756b849c6293ef575">hwloc_get_type_depth_e</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad"></a><!-- doxytag: member="HWLOC_TYPE_DEPTH_UNKNOWN" ref="ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" args="" -->HWLOC_TYPE_DEPTH_UNKNOWN</em> </td><td>
|
||||
<p>No object of given type exists in the topology. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c"></a><!-- doxytag: member="HWLOC_TYPE_DEPTH_MULTIPLE" ref="ggaf4e663cf42bbe20756b849c6293ef575ae99465995cacde6c210d5fc2e409798c" args="" -->HWLOC_TYPE_DEPTH_MULTIPLE</em> </td><td>
|
||||
<p>Objects of given type exist at different depth in the topology. </p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gadd4964764ae7e49231065d58a553fd31"></a><!-- doxytag: member="hwloc.h::hwloc_get_depth_type" ref="gadd4964764ae7e49231065d58a553fd31" args="(hwloc_topology_t topology, unsigned depth) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> hwloc_get_depth_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the type of objects at depth <code>depth</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if depth <code>depth</code> does not exist. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga20cfe2456f4cfdd789c9aca6d2fdd69f"></a><!-- doxytag: member="hwloc.h::hwloc_get_nbobjs_by_depth" ref="ga20cfe2456f4cfdd789c9aca6d2fdd69f" args="(hwloc_topology_t topology, unsigned depth) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC unsigned hwloc_get_nbobjs_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the width of level at depth <code>depth</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga4c23019de0a7679306059e490dceccd2"></a><!-- doxytag: member="hwloc.h::hwloc_get_nbobjs_by_type" ref="ga4c23019de0a7679306059e490dceccd2" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int __hwloc_attribute_pure hwloc_get_nbobjs_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the width of level type <code>type</code>. </p>
|
||||
<p>If no object for that type exists, 0 is returned. If there are several levels with objects of that type, -1 is returned. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaea7c64dd59467f5201ba87712710b14d"></a><!-- doxytag: member="hwloc.h::hwloc_get_type_depth" ref="gaea7c64dd59467f5201ba87712710b14d" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_get_type_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the depth of objects of type <code>type</code>. </p>
|
||||
<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>
|
||||
<p>If type is absent but a similar type is acceptable, see also <a class="el" href="a00036.html#gaf324fdd1fcb895c32cc6540c92e9245a" title="Returns the depth of objects of type type or below.">hwloc_get_type_or_below_depth()</a> and <a class="el" href="a00036.html#ga4451dffe0bb068f597ec55403e8ed5b8" title="Returns the depth of objects of type type or above.">hwloc_get_type_or_above_depth()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga8c30b0cec55074eb3ed34e4f2a1a9937"></a><!-- doxytag: member="hwloc.h::hwloc_topology_get_depth" ref="ga8c30b0cec55074eb3ed34e4f2a1a9937" args="(hwloc_topology_t __hwloc_restrict topology) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC unsigned hwloc_topology_get_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the depth of the hierachical tree of objects. </p>
|
||||
<p>This is the depth of HWLOC_OBJ_PU objects plus one. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga0d109e33fc7990f62f665d336e5e5111"></a><!-- doxytag: member="hwloc.h::hwloc_topology_is_thissystem" ref="ga0d109e33fc7990f62f665d336e5e5111" args="(hwloc_topology_t __hwloc_restrict topology) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_topology_is_thissystem </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> __hwloc_restrict </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Does the topology context come from this system? </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if this topology context was built using the system running this program. </dd>
|
||||
<dd>
|
||||
0 instead (for instance if using another file-system root, a XML topology file, or a synthetic topology). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
108
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00033.html
Обычный файл
@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Retrieve Objects</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Retrieve Objects</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html#gaedd78240b0c1108355586a268ec5a697">hwloc_get_obj_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned depth, unsigned idx) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the topology object at index <code>index</code> from depth <code>depth</code>. <a href="#gaedd78240b0c1108355586a268ec5a697"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa">hwloc_get_obj_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, unsigned idx)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the topology object at index <code>index</code> with type <code>type</code>. <a href="#gaabd26357fea30ceb7754ad970b9a0aaa"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaedd78240b0c1108355586a268ec5a697"></a><!-- doxytag: member="hwloc.h::hwloc_get_obj_by_depth" ref="gaedd78240b0c1108355586a268ec5a697" args="(hwloc_topology_t topology, unsigned depth, unsigned idx) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_obj_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the topology object at index <code>index</code> from depth <code>depth</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaabd26357fea30ceb7754ad970b9a0aaa"></a><!-- doxytag: member="hwloc.h::hwloc_get_obj_by_type" ref="gaabd26357fea30ceb7754ad970b9a0aaa" args="(hwloc_topology_t topology, hwloc_obj_type_t type, unsigned idx)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the topology object at index <code>index</code> with type <code>type</code>. </p>
|
||||
<p>If no object for that type exists, <code>NULL</code> is returned. If there are several levels with objects of that type, <code>NULL</code> is returned and ther caller may fallback to <a class="el" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
278
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00034.html
Обычный файл
@ -0,0 +1,278 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Object/String Conversion</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Object/String Conversion</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#ga7c61920feca6fd9006d930dabfc09058">hwloc_obj_type_string</a> (<a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type) __hwloc_attribute_const</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a stringified topology object type. <a href="#ga7c61920feca6fd9006d930dabfc09058"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#gade722091ae392fdc79557e797a16c370">hwloc_obj_type_of_string</a> (const char *string) __hwloc_attribute_pure</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return an object type from the string. <a href="#gade722091ae392fdc79557e797a16c370"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#ga3ad856e8f3487d340c82a23b8a2a0351">hwloc_obj_type_snprintf</a> (char *__hwloc_restrict string, size_t size, <a class="el" href="a00010.html">hwloc_obj_t</a> obj, int verbose)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stringify the type of a given topology object into a human-readable form. <a href="#ga3ad856e8f3487d340c82a23b8a2a0351"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#ga0db8286d7f3ceda8defd76e3e1e2b284">hwloc_obj_attr_snprintf</a> (char *__hwloc_restrict string, size_t size, <a class="el" href="a00010.html">hwloc_obj_t</a> obj, const char *__hwloc_restrict separator, int verbose)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stringify the attributes of a given topology object into a human-readable form. <a href="#ga0db8286d7f3ceda8defd76e3e1e2b284"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#ga5c6a61a83f4790b421e2f62e9088446f">hwloc_obj_snprintf</a> (char *__hwloc_restrict string, size_t size, <a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00010.html">hwloc_obj_t</a> obj, const char *__hwloc_restrict indexprefix, int verbose)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stringify a given topology object into a human-readable form. <a href="#ga5c6a61a83f4790b421e2f62e9088446f"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html#gabbfb92224c992c0e2ecef6b6e45260f2">hwloc_obj_cpuset_snprintf</a> (char *__hwloc_restrict str, size_t size, size_t nobj, const <a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict objs)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stringify the cpuset containing a set of objects. <a href="#gabbfb92224c992c0e2ecef6b6e45260f2"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga0db8286d7f3ceda8defd76e3e1e2b284"></a><!-- doxytag: member="hwloc.h::hwloc_obj_attr_snprintf" ref="ga0db8286d7f3ceda8defd76e3e1e2b284" args="(char *__hwloc_restrict string, size_t size, hwloc_obj_t obj, const char *__hwloc_restrict separator, int verbose)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_obj_attr_snprintf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>string</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>size</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>separator</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>verbose</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Stringify the attributes of a given topology object into a human-readable form. </p>
|
||||
<p>Attribute values are separated by <code>separator</code>.</p>
|
||||
<p>Only the major attributes are printed in non-verbose mode.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>how many characters were actually written (not including the ending \0). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gabbfb92224c992c0e2ecef6b6e45260f2"></a><!-- doxytag: member="hwloc.h::hwloc_obj_cpuset_snprintf" ref="gabbfb92224c992c0e2ecef6b6e45260f2" args="(char *__hwloc_restrict str, size_t size, size_t nobj, const hwloc_obj_t *__hwloc_restrict objs)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_obj_cpuset_snprintf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>str</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>size</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>nobj</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const <a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>objs</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Stringify the cpuset containing a set of objects. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>how many characters were actually written (not including the ending \0). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga5c6a61a83f4790b421e2f62e9088446f"></a><!-- doxytag: member="hwloc.h::hwloc_obj_snprintf" ref="ga5c6a61a83f4790b421e2f62e9088446f" args="(char *__hwloc_restrict string, size_t size, hwloc_topology_t topology, hwloc_obj_t obj, const char *__hwloc_restrict indexprefix, int verbose)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_obj_snprintf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>string</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>size</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>indexprefix</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>verbose</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Stringify a given topology object into a human-readable form. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>This function is deprecated in favor of <a class="el" href="a00034.html#ga3ad856e8f3487d340c82a23b8a2a0351" title="Stringify the type of a given topology object into a human-readable form.">hwloc_obj_type_snprintf()</a> and <a class="el" href="a00034.html#ga0db8286d7f3ceda8defd76e3e1e2b284" title="Stringify the attributes of a given topology object into a human-readable form.">hwloc_obj_attr_snprintf()</a> since it is not very flexible and only prints physical/OS indexes.</dd></dl>
|
||||
<p>Fill string <code>string</code> up to <code>size</code> characters with the description of topology object <code>obj</code> in topology <code>topology</code>.</p>
|
||||
<p>If <code>verbose</code> is set, a longer description is used. Otherwise a short description is used.</p>
|
||||
<p><code>indexprefix</code> is used to prefix the <code>os_index</code> attribute number of the object in the description. If <code>NULL</code>, the <code>#</code> character is used.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>how many characters were actually written (not including the ending \0). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gade722091ae392fdc79557e797a16c370"></a><!-- doxytag: member="hwloc.h::hwloc_obj_type_of_string" ref="gade722091ae392fdc79557e797a16c370" args="(const char *string) __hwloc_attribute_pure" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> hwloc_obj_type_of_string </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const char * </td>
|
||||
<td class="paramname"> <em>string</em></td>
|
||||
<td> ) </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return an object type from the string. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if unrecognized. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga3ad856e8f3487d340c82a23b8a2a0351"></a><!-- doxytag: member="hwloc.h::hwloc_obj_type_snprintf" ref="ga3ad856e8f3487d340c82a23b8a2a0351" args="(char *__hwloc_restrict string, size_t size, hwloc_obj_t obj, int verbose)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_obj_type_snprintf </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">char *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>string</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>size</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>verbose</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Stringify the type of a given topology object into a human-readable form. </p>
|
||||
<p>It differs from <a class="el" href="a00034.html#ga7c61920feca6fd9006d930dabfc09058" title="Return a stringified topology object type.">hwloc_obj_type_string()</a> because it prints type attributes such as cache depth.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>how many characters were actually written (not including the ending \0). </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga7c61920feca6fd9006d930dabfc09058"></a><!-- doxytag: member="hwloc.h::hwloc_obj_type_string" ref="ga7c61920feca6fd9006d930dabfc09058" args="(hwloc_obj_type_t type) __hwloc_attribute_const" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC const char* hwloc_obj_type_string </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td>
|
||||
<td> ) </td>
|
||||
<td> const</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return a stringified topology object type. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
344
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00035.html
Обычный файл
@ -0,0 +1,344 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Binding</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Binding</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga9b2de9a34a18edb39fb272adf9c33622">hwloc_cpubind_policy_t</a> { <a class="el" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a2e0dd0128dac6b03408c7dd170477fdc">HWLOC_CPUBIND_PROCESS</a>,
|
||||
<a class="el" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421">HWLOC_CPUBIND_THREAD</a>,
|
||||
<a class="el" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622a679a7e0f0c7ee06b123565f90d98e7fa">HWLOC_CPUBIND_STRICT</a>
|
||||
}</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Process/Thread binding policy. </p>
|
||||
<a href="a00035.html#ga9b2de9a34a18edb39fb272adf9c33622">More...</a><br/></td></tr>
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144">hwloc_set_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind current process or thread on cpus given in cpuset <code>set</code>. <a href="#ga42f02baaf7dc0c0f5a6bbeca731fd144"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga55427f8da8073ae16d0bab11f8137f1c">hwloc_get_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get current process or thread binding. <a href="#ga55427f8da8073ae16d0bab11f8137f1c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#gac349497da8f4f738bad51b2861461dc3">hwloc_set_proc_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, hwloc_pid_t pid, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a process <code>pid</code> on cpus given in cpuset <code>set</code>. <a href="#gac349497da8f4f738bad51b2861461dc3"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga02141a2049739d63a5fa7a172d301f1c">hwloc_get_proc_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, hwloc_pid_t pid, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current binding of process <code>pid</code>. <a href="#ga02141a2049739d63a5fa7a172d301f1c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga2be36e3ab9c9076ab5cca8fd57ae0dcf">hwloc_set_thread_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, hwloc_thread_t tid, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a thread <code>tid</code> on cpus given in cpuset <code>set</code>. <a href="#ga2be36e3ab9c9076ab5cca8fd57ae0dcf"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00035.html#ga5f265c78ea768372bae8e5d89d628c22">hwloc_get_thread_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, hwloc_thread_t tid, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set, int policy)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current binding of thread <code>tid</code>. <a href="#ga5f265c78ea768372bae8e5d89d628c22"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>It is often useful to call <a class="el" href="a00045.html#gace7ad3d2a71d9884e7a28311228931af" title="Keep a single CPU among those set in CPU set set.">hwloc_cpuset_singlify()</a> first so that a single CPU remains in the set. This way, the process will not even migrate between different CPUs. Some OSes also only support that kind of binding.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Some OSes do not provide all ways to bind processes, threads, etc and the corresponding binding functions may fail. ENOSYS is returned when it is not possible to bind the requested kind of object processes/threads). EXDEV is returned when the requested cpuset can not be enforced (e.g. some systems only allow one CPU, and some other systems only allow one NUMA node)</dd></dl>
|
||||
<p>The most portable version that should be preferred over the others, whenever possible, is</p>
|
||||
<div class="fragment"><pre class="fragment"> <a class="code" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144" title="Bind current process or thread on cpus given in cpuset set.">hwloc_set_cpubind</a>(topology, <span class="keyword">set</span>, 0),
|
||||
</pre></div><p>as it just binds the current program, assuming it is monothread, or</p>
|
||||
<div class="fragment"><pre class="fragment"> <a class="code" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144" title="Bind current process or thread on cpus given in cpuset set.">hwloc_set_cpubind</a>(topology, <span class="keyword">set</span>, <a class="code" href="a00035.html#gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421" title="Bind current thread of current process.">HWLOC_CPUBIND_THREAD</a>),
|
||||
</pre></div><p>which binds the current thread of the current program (which may be multithreaded).</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>To unbind, just call the binding function with either a full cpuset or a cpuset equal to the system cpuset. </dd></dl>
|
||||
<hr/><h2>Enumeration Type Documentation</h2>
|
||||
<a class="anchor" id="ga9b2de9a34a18edb39fb272adf9c33622"></a><!-- doxytag: member="hwloc.h::hwloc_cpubind_policy_t" ref="ga9b2de9a34a18edb39fb272adf9c33622" args="" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">enum <a class="el" href="a00035.html#ga9b2de9a34a18edb39fb272adf9c33622">hwloc_cpubind_policy_t</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Process/Thread binding policy. </p>
|
||||
<p>These flags can be used to refine the binding policy.</p>
|
||||
<p>The default (0) is to bind the current process, assumed to be mono-thread, in a non-strict way. This is the most portable way to bind as all OSes usually provide it. </p>
|
||||
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga9b2de9a34a18edb39fb272adf9c33622a2e0dd0128dac6b03408c7dd170477fdc"></a><!-- doxytag: member="HWLOC_CPUBIND_PROCESS" ref="gga9b2de9a34a18edb39fb272adf9c33622a2e0dd0128dac6b03408c7dd170477fdc" args="" -->HWLOC_CPUBIND_PROCESS</em> </td><td>
|
||||
<p>Bind all threads of the current multithreaded process. This may not be supported by some OSes (e.g. Linux). </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421"></a><!-- doxytag: member="HWLOC_CPUBIND_THREAD" ref="gga9b2de9a34a18edb39fb272adf9c33622af1b6bbad00d7b1017b918e3719f4d421" args="" -->HWLOC_CPUBIND_THREAD</em> </td><td>
|
||||
<p>Bind current thread of current process. </p>
|
||||
</td></tr>
|
||||
<tr><td valign="top"><em><a class="anchor" id="gga9b2de9a34a18edb39fb272adf9c33622a679a7e0f0c7ee06b123565f90d98e7fa"></a><!-- doxytag: member="HWLOC_CPUBIND_STRICT" ref="gga9b2de9a34a18edb39fb272adf9c33622a679a7e0f0c7ee06b123565f90d98e7fa" args="" -->HWLOC_CPUBIND_STRICT</em> </td><td>
|
||||
<p>Request for strict binding from the OS. </p>
|
||||
<p>By default, when the designated CPUs are all busy while other CPUs are idle, OSes may execute the thread/process on those other CPUs instead of the designated CPUs, to let them progress anyway. Strict binding means that the thread/process will _never_ execute on other cpus than the designated CPUs, even when those are busy with other tasks and other CPUs are idle.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>Depending on OSes and implementations, strict binding may not be possible (implementation reason) or not allowed (administrative reasons), and the function will fail in that case.</dd></dl>
|
||||
<p>When retrieving the binding of a process, this flag checks whether all its threads actually have the same binding. If the flag is not given, the binding of each thread will be accumulated.</p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>This flag is meaningless when retrieving the binding of a thread. </dd></dl>
|
||||
</td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga55427f8da8073ae16d0bab11f8137f1c"></a><!-- doxytag: member="hwloc.h::hwloc_get_cpubind" ref="ga55427f8da8073ae16d0bab11f8137f1c" args="(hwloc_topology_t topology, hwloc_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_get_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get current process or thread binding. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga02141a2049739d63a5fa7a172d301f1c"></a><!-- doxytag: member="hwloc.h::hwloc_get_proc_cpubind" ref="ga02141a2049739d63a5fa7a172d301f1c" args="(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_get_proc_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">hwloc_pid_t </td>
|
||||
<td class="paramname"> <em>pid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the current binding of process <code>pid</code>. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms</dd>
|
||||
<dd>
|
||||
HWLOC_CPUBIND_THREAD can not be used in <code>policy</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga5f265c78ea768372bae8e5d89d628c22"></a><!-- doxytag: member="hwloc.h::hwloc_get_thread_cpubind" ref="ga5f265c78ea768372bae8e5d89d628c22" args="(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_get_thread_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">hwloc_thread_t </td>
|
||||
<td class="paramname"> <em>tid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the current binding of thread <code>tid</code>. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native Windows platforms</dd>
|
||||
<dd>
|
||||
HWLOC_CPUBIND_PROCESS can not be used in <code>policy</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga42f02baaf7dc0c0f5a6bbeca731fd144"></a><!-- doxytag: member="hwloc.h::hwloc_set_cpubind" ref="ga42f02baaf7dc0c0f5a6bbeca731fd144" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_set_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Bind current process or thread on cpus given in cpuset <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>ENOSYS if the action is not supported </dd>
|
||||
<dd>
|
||||
EXDEV if the binding cannot be enforced </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gac349497da8f4f738bad51b2861461dc3"></a><!-- doxytag: member="hwloc.h::hwloc_set_proc_cpubind" ref="gac349497da8f4f738bad51b2861461dc3" args="(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_set_proc_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">hwloc_pid_t </td>
|
||||
<td class="paramname"> <em>pid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Bind a process <code>pid</code> on cpus given in cpuset <code>set</code>. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows platforms</dd>
|
||||
<dd>
|
||||
HWLOC_CPUBIND_THREAD can not be used in <code>policy</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2be36e3ab9c9076ab5cca8fd57ae0dcf"></a><!-- doxytag: member="hwloc.h::hwloc_set_thread_cpubind" ref="ga2be36e3ab9c9076ab5cca8fd57ae0dcf" args="(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int policy)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_set_thread_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">hwloc_thread_t </td>
|
||||
<td class="paramname"> <em>tid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>policy</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Bind a thread <code>tid</code> on cpus given in cpuset <code>set</code>. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native Windows platforms</dd>
|
||||
<dd>
|
||||
HWLOC_CPUBIND_PROCESS can not be used in <code>policy</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
98
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00036.html
Обычный файл
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Object Type Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Object Type Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#gaf324fdd1fcb895c32cc6540c92e9245a">hwloc_get_type_or_below_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the depth of objects of type <code>type</code> or below. <a href="#gaf324fdd1fcb895c32cc6540c92e9245a"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html#ga4451dffe0bb068f597ec55403e8ed5b8">hwloc_get_type_or_above_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the depth of objects of type <code>type</code> or above. <a href="#ga4451dffe0bb068f597ec55403e8ed5b8"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga4451dffe0bb068f597ec55403e8ed5b8"></a><!-- doxytag: member="helper.h::hwloc_get_type_or_above_depth" ref="ga4451dffe0bb068f597ec55403e8ed5b8" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int __hwloc_attribute_pure hwloc_get_type_or_above_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the depth of objects of type <code>type</code> or above. </p>
|
||||
<p>If no object of this type is present on the underlying architecture, the function returns the depth of the first "present" object typically containing <code>type</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaf324fdd1fcb895c32cc6540c92e9245a"></a><!-- doxytag: member="helper.h::hwloc_get_type_or_below_depth" ref="gaf324fdd1fcb895c32cc6540c92e9245a" args="(hwloc_topology_t topology, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int __hwloc_attribute_pure hwloc_get_type_or_below_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the depth of objects of type <code>type</code> or below. </p>
|
||||
<p>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 <code>type</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
375
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00037.html
Обычный файл
@ -0,0 +1,375 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Basic Traversal Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Basic Traversal Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6">hwloc_get_root_obj</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the top-object of the topology-tree. <a href="#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_deprecated </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga2cd3460755de499e238c95ba18b323b8">hwloc_get_system_obj</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga9cd80f27afd312569715528f3bc5c740">hwloc_get_ancestor_obj_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, unsigned depth, <a class="el" href="a00010.html">hwloc_obj_t</a> obj)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the ancestor object of <code>obj</code> at depth <code>depth</code>. <a href="#ga9cd80f27afd312569715528f3bc5c740"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#gada9d7486d8d7a45d05aa5f2ce70c7ab1">hwloc_get_ancestor_obj_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, <a class="el" href="a00010.html">hwloc_obj_t</a> obj)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the ancestor object of <code>obj</code> with type <code>type</code>. <a href="#gada9d7486d8d7a45d05aa5f2ce70c7ab1"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554">hwloc_get_next_obj_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned depth, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the next object at depth <code>depth</code>. <a href="#ga5755cecb9124c5181642ac84dc5bc554"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#gad011fce572551516267de3c57241a326">hwloc_get_next_obj_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the next object of type <code>type</code>. <a href="#gad011fce572551516267de3c57241a326"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga8e939dd36f60110b8ce408f4b294a085">hwloc_get_pu_obj_by_os_index</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, unsigned os_index)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the object of type <a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a> with <code>os_index</code>. <a href="#ga8e939dd36f60110b8ce408f4b294a085"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#ga4b5f5ddd9bd1a4443a27453423829b06">hwloc_get_next_child</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00010.html">hwloc_obj_t</a> parent, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the next child. <a href="#ga4b5f5ddd9bd1a4443a27453423829b06"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#gac8fd7795061352cfb7013aee2462c592">hwloc_get_common_ancestor_obj</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00010.html">hwloc_obj_t</a> obj1, <a class="el" href="a00010.html">hwloc_obj_t</a> obj2)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the common parent object to objects lvl1 and lvl2. <a href="#gac8fd7795061352cfb7013aee2462c592"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html#gadcdc48e34ad3f2fb90c7cc6c5950f06f">hwloc_obj_is_in_subtree</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00010.html">hwloc_obj_t</a> obj, <a class="el" href="a00010.html">hwloc_obj_t</a> subtree_root)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if _obj_ is inside the subtree beginning with <code>subtree_root</code>. <a href="#gadcdc48e34ad3f2fb90c7cc6c5950f06f"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga9cd80f27afd312569715528f3bc5c740"></a><!-- doxytag: member="helper.h::hwloc_get_ancestor_obj_by_depth" ref="ga9cd80f27afd312569715528f3bc5c740" args="(hwloc_topology_t topology __hwloc_attribute_unused, unsigned depth, hwloc_obj_t obj)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_ancestor_obj_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the ancestor object of <code>obj</code> at depth <code>depth</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gada9d7486d8d7a45d05aa5f2ce70c7ab1"></a><!-- doxytag: member="helper.h::hwloc_get_ancestor_obj_by_type" ref="gada9d7486d8d7a45d05aa5f2ce70c7ab1" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_type_t type, hwloc_obj_t obj)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_ancestor_obj_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the ancestor object of <code>obj</code> with type <code>type</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gac8fd7795061352cfb7013aee2462c592"></a><!-- doxytag: member="helper.h::hwloc_get_common_ancestor_obj" ref="gac8fd7795061352cfb7013aee2462c592" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj1, hwloc_obj_t obj2)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_common_ancestor_obj </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj1</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj2</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the common parent object to objects lvl1 and lvl2. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga4b5f5ddd9bd1a4443a27453423829b06"></a><!-- doxytag: member="helper.h::hwloc_get_next_child" ref="ga4b5f5ddd9bd1a4443a27453423829b06" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t parent, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_child </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>parent</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the next child. </p>
|
||||
<p>If <code>prev</code> is <code>NULL</code>, return the first child. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga5755cecb9124c5181642ac84dc5bc554"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_by_depth" ref="ga5755cecb9124c5181642ac84dc5bc554" args="(hwloc_topology_t topology, unsigned depth, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the next object at depth <code>depth</code>. </p>
|
||||
<p>If <code>prev</code> is <code>NULL</code>, return the first object at depth <code>depth</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gad011fce572551516267de3c57241a326"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_by_type" ref="gad011fce572551516267de3c57241a326" args="(hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the next object of type <code>type</code>. </p>
|
||||
<p>If <code>prev</code> is <code>NULL</code>, return the first object at type <code>type</code>. If there are multiple or no depth for given type, return <code>NULL</code> and let the caller fallback to <a class="el" href="a00037.html#ga5755cecb9124c5181642ac84dc5bc554" title="Returns the next object at depth depth.">hwloc_get_next_obj_by_depth()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga8e939dd36f60110b8ce408f4b294a085"></a><!-- doxytag: member="helper.h::hwloc_get_pu_obj_by_os_index" ref="ga8e939dd36f60110b8ce408f4b294a085" args="(hwloc_topology_t topology, unsigned os_index)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_pu_obj_by_os_index </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>os_index</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the object of type <a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a> with <code>os_index</code>. </p>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>The <code>os_index</code> field of object should most of the times only be used for pretty-printing purpose. Type <a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a> is the only case where <code>os_index</code> could actually be useful, when manually binding to processors. However, using CPU sets to hide this complexity should often be preferred. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6"></a><!-- doxytag: member="helper.h::hwloc_get_root_obj" ref="ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_root_obj </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns the top-object of the topology-tree. </p>
|
||||
<p>Its type is typically <a class="el" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a3f4e83ffc4a259354959ae8a9eaa2a80" title="Machine. The typical root object type. A set of processors and memory with cache...">HWLOC_OBJ_MACHINE</a> but it could be different for complex topologies. This function replaces the old deprecated <a class="el" href="a00037.html#ga2cd3460755de499e238c95ba18b323b8">hwloc_get_system_obj()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2cd3460755de499e238c95ba18b323b8"></a><!-- doxytag: member="helper.h::hwloc_get_system_obj" ref="ga2cd3460755de499e238c95ba18b323b8" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_deprecated hwloc_get_system_obj </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gadcdc48e34ad3f2fb90c7cc6c5950f06f"></a><!-- doxytag: member="helper.h::hwloc_obj_is_in_subtree" ref="gadcdc48e34ad3f2fb90c7cc6c5950f06f" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int __hwloc_attribute_pure hwloc_obj_is_in_subtree </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>subtree_root</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Returns true if _obj_ is inside the subtree beginning with <code>subtree_root</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
363
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00038.html
Обычный файл
@ -0,0 +1,363 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Finding Objects Inside a CPU set</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Finding Objects Inside a CPU set</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga14a384b43da1640e0a4f87252ebab7ce">hwloc_get_first_largest_obj_inside_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the first largest object included in the given cpuset <code>set</code>. <a href="#ga14a384b43da1640e0a4f87252ebab7ce"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#gaab04c89623662e63a48ed2cd48eb601c">hwloc_get_largest_objs_inside_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict objs, int max)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the set of largest objects covering exactly a given cpuset <code>set</code>. <a href="#gaab04c89623662e63a48ed2cd48eb601c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga0bf3f1e8e58c2a4561dceb2e261a1913">hwloc_get_next_obj_inside_cpuset_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, unsigned depth, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the next object at depth <code>depth</code> included in CPU set <code>set</code>. <a href="#ga0bf3f1e8e58c2a4561dceb2e261a1913"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga0e939b904fa1e255dde8b295e72b4f07">hwloc_get_next_obj_inside_cpuset_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the next object of type <code>type</code> included in CPU set <code>set</code>. <a href="#ga0e939b904fa1e255dde8b295e72b4f07"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga7be828a425e78d155bd09aba5aaa3d51">hwloc_get_obj_inside_cpuset_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, unsigned depth, unsigned idx)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the <code>index</code> -th object at depth <code>depth</code> included in CPU set <code>set</code>. <a href="#ga7be828a425e78d155bd09aba5aaa3d51"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga1e4f92f59977be6f4d0f6e8219936a17">hwloc_get_obj_inside_cpuset_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, unsigned idx)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the <code>idx</code> -th object of type <code>type</code> included in CPU set <code>set</code>. <a href="#ga1e4f92f59977be6f4d0f6e8219936a17"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline unsigned <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#gada32f235ce6abb3ed1c7571221c52d89">hwloc_get_nbobjs_inside_cpuset_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, unsigned depth)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of objects at depth <code>depth</code> included in CPU set <code>set</code>. <a href="#gada32f235ce6abb3ed1c7571221c52d89"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html#ga97c8ff5b2abff365a9833cb4d1740d15">hwloc_get_nbobjs_inside_cpuset_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of objects of type <code>type</code> included in CPU set <code>set</code>. <a href="#ga97c8ff5b2abff365a9833cb4d1740d15"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga14a384b43da1640e0a4f87252ebab7ce"></a><!-- doxytag: member="helper.h::hwloc_get_first_largest_obj_inside_cpuset" ref="ga14a384b43da1640e0a4f87252ebab7ce" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_first_largest_obj_inside_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the first largest object included in the given cpuset <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the first object that is included in <code>set</code> and whose parent is not.</dd></dl>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaab04c89623662e63a48ed2cd48eb601c"></a><!-- doxytag: member="helper.h::hwloc_get_largest_objs_inside_cpuset" ref="gaab04c89623662e63a48ed2cd48eb601c" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_t *__hwloc_restrict objs, int max)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_get_largest_objs_inside_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>objs</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>max</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the set of largest objects covering exactly a given cpuset <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of objects returned in <code>objs</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gada32f235ce6abb3ed1c7571221c52d89"></a><!-- doxytag: member="helper.h::hwloc_get_nbobjs_inside_cpuset_by_depth" ref="gada32f235ce6abb3ed1c7571221c52d89" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline unsigned __hwloc_attribute_pure hwloc_get_nbobjs_inside_cpuset_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the number of objects at depth <code>depth</code> included in CPU set <code>set</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga97c8ff5b2abff365a9833cb4d1740d15"></a><!-- doxytag: member="helper.h::hwloc_get_nbobjs_inside_cpuset_by_type" ref="ga97c8ff5b2abff365a9833cb4d1740d15" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int __hwloc_attribute_pure hwloc_get_nbobjs_inside_cpuset_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the number of objects of type <code>type</code> included in CPU set <code>set</code>. </p>
|
||||
<p>If no object for that type exists inside CPU set <code>set</code>, 0 is returned. If there are several levels with objects of that type inside CPU set <code>set</code>, -1 is returned. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga0bf3f1e8e58c2a4561dceb2e261a1913"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_inside_cpuset_by_depth" ref="ga0bf3f1e8e58c2a4561dceb2e261a1913" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_inside_cpuset_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the next object at depth <code>depth</code> included in CPU set <code>set</code>. </p>
|
||||
<p>If <code>prev</code> is <code>NULL</code>, return the first object at depth <code>depth</code> included in <code>set</code>. The next invokation should pass the previous return value in <code>prev</code> so as to obtain the next object in <code>set</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga0e939b904fa1e255dde8b295e72b4f07"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_inside_cpuset_by_type" ref="ga0e939b904fa1e255dde8b295e72b4f07" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_inside_cpuset_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the next object of type <code>type</code> included in CPU set <code>set</code>. </p>
|
||||
<p>If there are multiple or no depth for given type, return <code>NULL</code> and let the caller fallback to <a class="el" href="a00038.html#ga0bf3f1e8e58c2a4561dceb2e261a1913" title="Return the next object at depth depth included in CPU set set.">hwloc_get_next_obj_inside_cpuset_by_depth()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga7be828a425e78d155bd09aba5aaa3d51"></a><!-- doxytag: member="helper.h::hwloc_get_obj_inside_cpuset_by_depth" ref="ga7be828a425e78d155bd09aba5aaa3d51" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, unsigned idx)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_inside_cpuset_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the <code>index</code> -th object at depth <code>depth</code> included in CPU set <code>set</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga1e4f92f59977be6f4d0f6e8219936a17"></a><!-- doxytag: member="helper.h::hwloc_get_obj_inside_cpuset_by_type" ref="ga1e4f92f59977be6f4d0f6e8219936a17" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, unsigned idx)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_inside_cpuset_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Return the <code>idx</code> -th object of type <code>type</code> included in CPU set <code>set</code>. </p>
|
||||
<p>If there are multiple or no depth for given type, return <code>NULL</code> and let the caller fallback to <a class="el" href="a00038.html#ga7be828a425e78d155bd09aba5aaa3d51" title="Return the index -th object at depth depth included in CPU set set.">hwloc_get_obj_inside_cpuset_by_depth()</a>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
104
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00039.html
Обычный файл
@ -0,0 +1,104 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Finding a single Object covering at least CPU set</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Finding a single Object covering at least CPU set</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#gaa6d0c687617638dae76058c00832d936">hwloc_get_child_covering_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00010.html">hwloc_obj_t</a> parent)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the child covering at least CPU set <code>set</code>. <a href="#gaa6d0c687617638dae76058c00832d936"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html#ga5967ce4cd1c3194b46d57d25598e697a">hwloc_get_obj_covering_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the lowest object covering at least CPU set <code>set</code>. <a href="#ga5967ce4cd1c3194b46d57d25598e697a"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaa6d0c687617638dae76058c00832d936"></a><!-- doxytag: member="helper.h::hwloc_get_child_covering_cpuset" ref="gaa6d0c687617638dae76058c00832d936" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t set, hwloc_obj_t parent)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_child_covering_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>parent</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the child covering at least CPU set <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd><code>NULL</code> if no child matches or if <code>set</code> is empty. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga5967ce4cd1c3194b46d57d25598e697a"></a><!-- doxytag: member="helper.h::hwloc_get_obj_covering_cpuset" ref="ga5967ce4cd1c3194b46d57d25598e697a" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_covering_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the lowest object covering at least CPU set <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd><code>NULL</code> if no object matches or if <code>set</code> is empty. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
121
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00040.html
Обычный файл
@ -0,0 +1,121 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Finding a set of similar Objects covering at least a CPU set</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Finding a set of similar Objects covering at least a CPU set</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga7668a9bba346a87d12bcc522a12ab27b">hwloc_get_next_obj_covering_cpuset_by_depth</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, unsigned depth, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate through same-depth objects covering at least CPU set <code>set</code>. <a href="#ga7668a9bba346a87d12bcc522a12ab27b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gad5d1927258d0297cb064ecda6d038f71">hwloc_get_next_obj_covering_cpuset_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type, <a class="el" href="a00010.html">hwloc_obj_t</a> prev)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate through same-type objects covering at least CPU set <code>set</code>. <a href="#gad5d1927258d0297cb064ecda6d038f71"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga7668a9bba346a87d12bcc522a12ab27b"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_covering_cpuset_by_depth" ref="ga7668a9bba346a87d12bcc522a12ab27b" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_covering_cpuset_by_depth </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>depth</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Iterate through same-depth objects covering at least CPU set <code>set</code>. </p>
|
||||
<p>If object <code>prev</code> is <code>NULL</code>, return the first object at depth <code>depth</code> covering at least part of CPU set <code>set</code>. The next invokation should pass the previous return value in <code>prev</code> so as to obtain the next object covering at least another part of <code>set</code>. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gad5d1927258d0297cb064ecda6d038f71"></a><!-- doxytag: member="helper.h::hwloc_get_next_obj_covering_cpuset_by_type" ref="gad5d1927258d0297cb064ecda6d038f71" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> hwloc_get_next_obj_covering_cpuset_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>prev</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Iterate through same-type objects covering at least CPU set <code>set</code>. </p>
|
||||
<p>If object <code>prev</code> is <code>NULL</code>, return the first object of type <code>type</code> covering at least part of CPU set <code>set</code>. The next invokation should pass the previous return value in <code>prev</code> so as to obtain the next object of type <code>type</code> covering at least another part of <code>set</code>.</p>
|
||||
<p>If there are no or multiple depths for type <code>type</code>, <code>NULL</code> is returned. The caller may fallback to <a class="el" href="a00040.html#ga7668a9bba346a87d12bcc522a12ab27b" title="Iterate through same-depth objects covering at least CPU set set.">hwloc_get_next_obj_covering_cpuset_by_depth()</a> for each depth. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
98
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00041.html
Обычный файл
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Cache-specific Finding Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Cache-specific Finding Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html#ga4a4388252d02388ff2803e5975af4005">hwloc_get_cache_covering_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the first cache covering a cpuset <code>set</code>. <a href="#ga4a4388252d02388ff2803e5975af4005"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html#ga2d7258b849d9def604e8967b713dd5ff">hwloc_get_shared_cache_covering_obj</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00010.html">hwloc_obj_t</a> obj)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the first cache shared between an object and somebody else. <a href="#ga2d7258b849d9def604e8967b713dd5ff"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga4a4388252d02388ff2803e5975af4005"></a><!-- doxytag: member="helper.h::hwloc_get_cache_covering_cpuset" ref="ga4a4388252d02388ff2803e5975af4005" args="(hwloc_topology_t topology, hwloc_const_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_cache_covering_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the first cache covering a cpuset <code>set</code>. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd><code>NULL</code> if no cache matches </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga2d7258b849d9def604e8967b713dd5ff"></a><!-- doxytag: member="helper.h::hwloc_get_shared_cache_covering_obj" ref="ga2d7258b849d9def604e8967b713dd5ff" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_shared_cache_covering_obj </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>obj</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the first cache shared between an object and somebody else. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd><code>NULL</code> if no cache matches </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
177
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00042.html
Обычный файл
@ -0,0 +1,177 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Advanced Traversal Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Advanced Traversal Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga26c2ac4f25b1ed293249c88e232f1bea">hwloc_get_closest_objs</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00010.html">hwloc_obj_t</a> src, <a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict objs, unsigned max)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Do a depth-first traversal of the topology to find and sort. <a href="#ga26c2ac4f25b1ed293249c88e232f1bea"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga80af44c7616bd27eb15949543e12cc9c">hwloc_get_obj_below_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type1, unsigned idx1, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> type2, unsigned idx2)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Find an object below another object, both specified by types and indexes. <a href="#ga80af44c7616bd27eb15949543e12cc9c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga9af0c03238ebcd4b0e174656890a67dc">hwloc_get_obj_below_array_by_type</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, int nr, <a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> *typev, unsigned *idxv)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Find an object below a chain of objects specified by types and indexes. <a href="#ga9af0c03238ebcd4b0e174656890a67dc"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga26c2ac4f25b1ed293249c88e232f1bea"></a><!-- doxytag: member="helper.h::hwloc_get_closest_objs" ref="ga26c2ac4f25b1ed293249c88e232f1bea" args="(hwloc_topology_t topology, hwloc_obj_t src, hwloc_obj_t *__hwloc_restrict objs, unsigned max)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC unsigned hwloc_get_closest_objs </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>src</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> *__hwloc_restrict </td>
|
||||
<td class="paramname"> <em>objs</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>max</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Do a depth-first traversal of the topology to find and sort. </p>
|
||||
<p>all objects that are at the same depth than <code>src</code>. Report in <code>objs</code> up to <code>max</code> physically closest ones to <code>src</code>.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of objects returned in <code>objs</code>. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga9af0c03238ebcd4b0e174656890a67dc"></a><!-- doxytag: member="helper.h::hwloc_get_obj_below_array_by_type" ref="ga9af0c03238ebcd4b0e174656890a67dc" args="(hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_below_array_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">int </td>
|
||||
<td class="paramname"> <em>nr</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> * </td>
|
||||
<td class="paramname"> <em>typev</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned * </td>
|
||||
<td class="paramname"> <em>idxv</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Find an object below a chain of objects specified by types and indexes. </p>
|
||||
<p>This is a generalized version of <a class="el" href="a00042.html#ga80af44c7616bd27eb15949543e12cc9c" title="Find an object below another object, both specified by types and indexes.">hwloc_get_obj_below_by_type()</a>.</p>
|
||||
<p>Arrays <code>typev</code> and <code>idxv</code> must contain <code>nr</code> types and indexes.</p>
|
||||
<p>Start from the top system object and walk the arrays <code>typev</code> and <code>idxv</code>. 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.</p>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga80af44c7616bd27eb15949543e12cc9c"></a><!-- doxytag: member="helper.h::hwloc_get_obj_below_by_type" ref="ga80af44c7616bd27eb15949543e12cc9c" args="(hwloc_topology_t topology, hwloc_obj_type_t type1, unsigned idx1, hwloc_obj_type_t type2, unsigned idx2)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00010.html">hwloc_obj_t</a> __hwloc_attribute_pure hwloc_get_obj_below_by_type </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type1</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx1</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00027.html#gacd37bb612667dc437d66bfb175a8dc55">hwloc_obj_type_t</a> </td>
|
||||
<td class="paramname"> <em>type2</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>idx2</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Find an object below another object, both specified by types and indexes. </p>
|
||||
<p>Start from the top system object and find object of type <code>type1</code> and index <code>idx1</code>. Then look below this object and find another object of type <code>type2</code> and index <code>idx2</code>. Indexes are specified within the parent, not withing the entire system.</p>
|
||||
<p>For instance, if type1 is SOCKET, idx1 is 2, type2 is CORE and idx2 is 3, return the fourth core object below the third socket. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
78
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00043.html
Обычный файл
@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Binding Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Binding Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html#gadbea5d9e892dfb5f1fcacd00ba14def9">hwloc_distribute</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00010.html">hwloc_obj_t</a> root, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> *cpuset, unsigned n)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Distribute <code>n</code> items over the topology under <code>root</code>. <a href="#gadbea5d9e892dfb5f1fcacd00ba14def9"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gadbea5d9e892dfb5f1fcacd00ba14def9"></a><!-- doxytag: member="helper.h::hwloc_distribute" ref="gadbea5d9e892dfb5f1fcacd00ba14def9" args="(hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset, unsigned n)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline void hwloc_distribute </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00010.html">hwloc_obj_t</a> </td>
|
||||
<td class="paramname"> <em>root</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> * </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned </td>
|
||||
<td class="paramname"> <em>n</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Distribute <code>n</code> items over the topology under <code>root</code>. </p>
|
||||
<p>Array <code>cpuset</code> will be filled with <code>n</code> cpusets distributed linearly over the topology under <code>root</code> .</p>
|
||||
<p>This is typically useful when an application wants to distribute <code>n</code> threads over a machine, giving each of them as much private cache as possible and keeping them locally in number order.</p>
|
||||
<p>The caller may typically want to also call <a class="el" href="a00045.html#gace7ad3d2a71d9884e7a28311228931af" title="Keep a single CPU among those set in CPU set set.">hwloc_cpuset_singlify()</a> before binding a thread so that it does not move at all. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
126
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00044.html
Обычный файл
@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Cpuset Helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Cpuset Helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <br class="typebreak"/>
|
||||
<a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ga0361003cb1e41f6f3e9fc485135a0950">hwloc_topology_get_complete_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <br class="typebreak"/>
|
||||
<a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#gaa1305cd39c6afd68652f2c6e68759381">hwloc_topology_get_topology_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <br class="typebreak"/>
|
||||
<a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#gac3626396192ce01ad6a4811d9d29306b">hwloc_topology_get_online_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get online CPU set. <a href="#gac3626396192ce01ad6a4811d9d29306b"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline <br class="typebreak"/>
|
||||
<a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> <br class="typebreak"/>
|
||||
__hwloc_attribute_pure </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html#ga3374bb25a01c5cd447b097eaa6f77c6f">hwloc_topology_get_allowed_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get allowed CPU set. <a href="#ga3374bb25a01c5cd447b097eaa6f77c6f"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga3374bb25a01c5cd447b097eaa6f77c6f"></a><!-- doxytag: member="helper.h::hwloc_topology_get_allowed_cpuset" ref="ga3374bb25a01c5cd447b097eaa6f77c6f" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure hwloc_topology_get_allowed_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get allowed CPU set. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the CPU set of allowed logical processors of the system. If the topology is the result of a combination of several systems, NULL is returned.</dd></dl>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>The returned cpuset is not newly allocated and should thus not be changed or freed, hwloc_cpuset_dup must be used to obtain a local copy. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga0361003cb1e41f6f3e9fc485135a0950"></a><!-- doxytag: member="helper.h::hwloc_topology_get_complete_cpuset" ref="ga0361003cb1e41f6f3e9fc485135a0950" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure hwloc_topology_get_complete_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gac3626396192ce01ad6a4811d9d29306b"></a><!-- doxytag: member="helper.h::hwloc_topology_get_online_cpuset" ref="gac3626396192ce01ad6a4811d9d29306b" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure hwloc_topology_get_online_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get online CPU set. </p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>the CPU set of online logical processors of the system. If the topology is the result of a combination of several systems, NULL is returned.</dd></dl>
|
||||
<dl class="note"><dt><b>Note:</b></dt><dd>The returned cpuset is not newly allocated and should thus not be changed or freed; hwloc_cpuset_dup must be used to obtain a local copy. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaa1305cd39c6afd68652f2c6e68759381"></a><!-- doxytag: member="helper.h::hwloc_topology_get_topology_cpuset" ref="gaa1305cd39c6afd68652f2c6e68759381" args="(hwloc_topology_t topology)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> __hwloc_attribute_pure hwloc_topology_get_topology_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em></td>
|
||||
<td> ) </td>
|
||||
<td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
1221
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00045.html
Обычный файл
122
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00046.html
Обычный файл
@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Helpers for manipulating glibc sched affinity</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Helpers for manipulating glibc sched affinity</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#gab6bf9c8614d0336c2a358e23e71dbaa9">hwloc_cpuset_to_glibc_sched_affinity</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> hwlocset, cpu_set_t *schedset, size_t schedsetsize)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert hwloc CPU set <code>toposet</code> into glibc sched affinity CPU set <code>schedset</code>. <a href="#gab6bf9c8614d0336c2a358e23e71dbaa9"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html#gac8de46372b7bf4dbc3c68ee04eefb841">hwloc_cpuset_from_glibc_sched_affinity</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> hwlocset, const cpu_set_t *schedset, size_t schedsetsize)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert glibc sched affinity CPU set <code>schedset</code> into hwloc CPU set. <a href="#gac8de46372b7bf4dbc3c68ee04eefb841"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gac8de46372b7bf4dbc3c68ee04eefb841"></a><!-- doxytag: member="glibc-sched.h::hwloc_cpuset_from_glibc_sched_affinity" ref="gac8de46372b7bf4dbc3c68ee04eefb841" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t hwlocset, const cpu_set_t *schedset, size_t schedsetsize)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_from_glibc_sched_affinity </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>hwlocset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const cpu_set_t * </td>
|
||||
<td class="paramname"> <em>schedset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>schedsetsize</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert glibc sched affinity CPU set <code>schedset</code> into hwloc CPU set. </p>
|
||||
<p>This function may be used before calling sched_setaffinity or any other function that takes a cpu_set_t as input parameter.</p>
|
||||
<p><code>schedsetsize</code> should be sizeof(cpu_set_t) unless <code>schedset</code> was dynamically allocated with CPU_ALLOC </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab6bf9c8614d0336c2a358e23e71dbaa9"></a><!-- doxytag: member="glibc-sched.h::hwloc_cpuset_to_glibc_sched_affinity" ref="gab6bf9c8614d0336c2a358e23e71dbaa9" args="(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t hwlocset, cpu_set_t *schedset, size_t schedsetsize)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_to_glibc_sched_affinity </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>hwlocset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">cpu_set_t * </td>
|
||||
<td class="paramname"> <em>schedset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">size_t </td>
|
||||
<td class="paramname"> <em>schedsetsize</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert hwloc CPU set <code>toposet</code> into glibc sched affinity CPU set <code>schedset</code>. </p>
|
||||
<p>This function may be used before calling sched_setaffinity or any other function that takes a cpu_set_t as input parameter.</p>
|
||||
<p><code>schedsetsize</code> should be sizeof(cpu_set_t) unless <code>schedset</code> was dynamically allocated with CPU_ALLOC </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
142
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00047.html
Обычный файл
@ -0,0 +1,142 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Linux-only helpers</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Linux-only helpers</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#gaeacad897c30dbea284948374ad4b010c">hwloc_linux_parse_cpumap_file</a> (FILE *file, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a linux kernel cpumap file <code>file</code> into hwloc CPU set. <a href="#gaeacad897c30dbea284948374ad4b010c"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#gaaaca5d1687053b6c3326b2c165bd6530">hwloc_linux_set_tid_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, pid_t tid, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a thread <code>tid</code> on cpus given in cpuset <code>set</code>. <a href="#gaaaca5d1687053b6c3326b2c165bd6530"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">HWLOC_DECLSPEC int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#gaf36a9211a21eb930f59090eb5d460b8e">hwloc_linux_get_tid_cpubind</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, pid_t tid, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current binding of thread <code>tid</code>. <a href="#gaf36a9211a21eb930f59090eb5d460b8e"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
||||
<p>This includes helpers for manipulating linux kernel cpumap files, and hwloc equivalents of the Linux sched_setaffinity and sched_getaffinity system calls. </p>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaf36a9211a21eb930f59090eb5d460b8e"></a><!-- doxytag: member="linux.h::hwloc_linux_get_tid_cpubind" ref="gaf36a9211a21eb930f59090eb5d460b8e" args="(hwloc_topology_t topology, pid_t tid, hwloc_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_linux_get_tid_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">pid_t </td>
|
||||
<td class="paramname"> <em>tid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the current binding of thread <code>tid</code>. </p>
|
||||
<p>The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaeacad897c30dbea284948374ad4b010c"></a><!-- doxytag: member="linux.h::hwloc_linux_parse_cpumap_file" ref="gaeacad897c30dbea284948374ad4b010c" args="(FILE *file, hwloc_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_linux_parse_cpumap_file </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">FILE * </td>
|
||||
<td class="paramname"> <em>file</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert a linux kernel cpumap file <code>file</code> into hwloc CPU set. </p>
|
||||
<p>Might be used when reading CPU set from sysfs attributes such as topology and caches for processors, or local_cpus for devices. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaaaca5d1687053b6c3326b2c165bd6530"></a><!-- doxytag: member="linux.h::hwloc_linux_set_tid_cpubind" ref="gaaaca5d1687053b6c3326b2c165bd6530" args="(hwloc_topology_t topology, pid_t tid, hwloc_const_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">HWLOC_DECLSPEC int hwloc_linux_set_tid_cpubind </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">pid_t </td>
|
||||
<td class="paramname"> <em>tid</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Bind a thread <code>tid</code> on cpus given in cpuset <code>set</code>. </p>
|
||||
<p>The behavior is exactly the same as the Linux sched_setaffinity system call, but uses a hwloc cpuset. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
122
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00048.html
Обычный файл
@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Helpers for manipulating Linux libnuma unsigned long masks</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Helpers for manipulating Linux libnuma unsigned long masks</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#gab728b8eeaa8a79fa2c6f88a4494d3333">hwloc_cpuset_to_linux_libnuma_ulongs</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset, unsigned long *mask, unsigned long *maxnode)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert hwloc CPU set <code>cpuset</code> into the array of unsigned long <code>mask</code>. <a href="#gab728b8eeaa8a79fa2c6f88a4494d3333"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#gaa23cfc12b367b1c5da2ffb6efdf083a8">hwloc_cpuset_from_linux_libnuma_ulongs</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> cpuset, const unsigned long *mask, unsigned long maxnode)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert the array of unsigned long <code>mask</code> into hwloc CPU set. <a href="#gaa23cfc12b367b1c5da2ffb6efdf083a8"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaa23cfc12b367b1c5da2ffb6efdf083a8"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_from_linux_libnuma_ulongs" ref="gaa23cfc12b367b1c5da2ffb6efdf083a8" args="(hwloc_topology_t topology, hwloc_cpuset_t cpuset, const unsigned long *mask, unsigned long maxnode)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_from_linux_libnuma_ulongs </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const unsigned long * </td>
|
||||
<td class="paramname"> <em>mask</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned long </td>
|
||||
<td class="paramname"> <em>maxnode</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert the array of unsigned long <code>mask</code> into hwloc CPU set. </p>
|
||||
<p><code>mask</code> is a array of unsigned long that will be read. <code>maxnode</code> contains the maximal node number that may be read in <code>mask</code>.</p>
|
||||
<p>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). </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gab728b8eeaa8a79fa2c6f88a4494d3333"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_to_linux_libnuma_ulongs" ref="gab728b8eeaa8a79fa2c6f88a4494d3333" args="(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, unsigned long *mask, unsigned long *maxnode)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_to_linux_libnuma_ulongs </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned long * </td>
|
||||
<td class="paramname"> <em>mask</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">unsigned long * </td>
|
||||
<td class="paramname"> <em>maxnode</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert hwloc CPU set <code>cpuset</code> into the array of unsigned long <code>mask</code>. </p>
|
||||
<p><code>mask</code> is the array of unsigned long that will be filled. <code>maxnode</code> contains the maximal node number that may be stored in <code>mask</code>. <code>maxnode</code> will be set to the maximal node number that was found, plus one.</p>
|
||||
<p>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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
105
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00049.html
Обычный файл
@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Helpers for manipulating Linux libnuma bitmask</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Helpers for manipulating Linux libnuma bitmask</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline struct bitmask <br class="typebreak"/>
|
||||
*__hwloc_attribute_malloc </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#ga80bea6f05af929fbaf50557225ddd927">hwloc_cpuset_to_linux_libnuma_bitmask</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert hwloc CPU set <code>cpuset</code> into the returned libnuma bitmask. <a href="#ga80bea6f05af929fbaf50557225ddd927"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html#gaa92103c3051e8ee3aa4a8a483143e85e">hwloc_cpuset_from_linux_libnuma_bitmask</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> cpuset, const struct bitmask *bitmask)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert libnuma bitmask <code>bitmask</code> into hwloc CPU set <code>cpuset</code>. <a href="#gaa92103c3051e8ee3aa4a8a483143e85e"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaa92103c3051e8ee3aa4a8a483143e85e"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_from_linux_libnuma_bitmask" ref="gaa92103c3051e8ee3aa4a8a483143e85e" args="(hwloc_topology_t topology, hwloc_cpuset_t cpuset, const struct bitmask *bitmask)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_from_linux_libnuma_bitmask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const struct bitmask * </td>
|
||||
<td class="paramname"> <em>bitmask</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert libnuma bitmask <code>bitmask</code> into hwloc CPU set <code>cpuset</code>. </p>
|
||||
<p>This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ga80bea6f05af929fbaf50557225ddd927"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_to_linux_libnuma_bitmask" ref="ga80bea6f05af929fbaf50557225ddd927" args="(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline struct bitmask* __hwloc_attribute_malloc hwloc_cpuset_to_linux_libnuma_bitmask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static, read]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert hwloc CPU set <code>cpuset</code> into the returned libnuma bitmask. </p>
|
||||
<p>The returned bitmask should later be freed with numa_bitmask_free.</p>
|
||||
<p>This function may be used before calling many numa_ functions that use a struct bitmask as an input parameter.</p>
|
||||
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated struct bitmask. </dd></dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
108
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00050.html
Обычный файл
@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Helpers for manipulating Linux libnuma nodemask_t</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Helpers for manipulating Linux libnuma nodemask_t</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html#gaac14df7a9821f2a29391f01556bd2af3">hwloc_cpuset_to_linux_libnuma_nodemask</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> cpuset, nodemask_t *nodemask)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert hwloc CPU set <code>cpuset</code> into libnuma nodemask <code>nodemask</code>. <a href="#gaac14df7a9821f2a29391f01556bd2af3"></a><br/></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html#ga1a887850b8fa7bbf7c4a92742c150a1a">hwloc_cpuset_from_linux_libnuma_nodemask</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> cpuset, const nodemask_t *nodemask)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert libnuma nodemask <code>nodemask</code> into hwloc CPU set <code>cpuset</code>. <a href="#ga1a887850b8fa7bbf7c4a92742c150a1a"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="ga1a887850b8fa7bbf7c4a92742c150a1a"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_from_linux_libnuma_nodemask" ref="ga1a887850b8fa7bbf7c4a92742c150a1a" args="(hwloc_topology_t topology, hwloc_cpuset_t cpuset, const nodemask_t *nodemask)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_from_linux_libnuma_nodemask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">const nodemask_t * </td>
|
||||
<td class="paramname"> <em>nodemask</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert libnuma nodemask <code>nodemask</code> into hwloc CPU set <code>cpuset</code>. </p>
|
||||
<p>This function may be used before calling some old libnuma functions that use a nodemask_t as an output parameter. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="gaac14df7a9821f2a29391f01556bd2af3"></a><!-- doxytag: member="linux-libnuma.h::hwloc_cpuset_to_linux_libnuma_nodemask" ref="gaac14df7a9821f2a29391f01556bd2af3" args="(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, nodemask_t *nodemask)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_cpuset_to_linux_libnuma_nodemask </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> </td>
|
||||
<td class="paramname"> <em>topology</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#gad2f7833583d020af31e01554251dbe11">hwloc_const_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>cpuset</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">nodemask_t * </td>
|
||||
<td class="paramname"> <em>nodemask</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Convert hwloc CPU set <code>cpuset</code> into libnuma nodemask <code>nodemask</code>. </p>
|
||||
<p>This function may be used before calling some old libnuma functions that use a nodemask_t as an input parameter. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
70
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/a00051.html
Обычный файл
@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): OpenFabrics-Specific Functions</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>OpenFabrics-Specific Functions</h1><table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
||||
<tr><td class="memItemLeft" align="right" valign="top">static __inline int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gaa8e3405c00a4b46991336549c461974c">hwloc_ibv_get_device_cpuset</a> (<a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology __hwloc_attribute_unused, struct ibv_device *ibdev, <a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> set)</td></tr>
|
||||
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the CPU set of logical processors that are physically close to device <code>ibdev</code>. <a href="#gaa8e3405c00a4b46991336549c461974c"></a><br/></td></tr>
|
||||
</table>
|
||||
<hr/><h2>Function Documentation</h2>
|
||||
<a class="anchor" id="gaa8e3405c00a4b46991336549c461974c"></a><!-- doxytag: member="openfabrics-verbs.h::hwloc_ibv_get_device_cpuset" ref="gaa8e3405c00a4b46991336549c461974c" args="(hwloc_topology_t topology __hwloc_attribute_unused, struct ibv_device *ibdev, hwloc_cpuset_t set)" -->
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">static __inline int hwloc_ibv_get_device_cpuset </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype"><a class="el" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38">hwloc_topology_t</a> topology </td>
|
||||
<td class="paramname"> <em>__hwloc_attribute_unused</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype">struct ibv_device * </td>
|
||||
<td class="paramname"> <em>ibdev</em>, </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="paramkey"></td>
|
||||
<td></td>
|
||||
<td class="paramtype"><a class="el" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411">hwloc_cpuset_t</a> </td>
|
||||
<td class="paramname"> <em>set</em></td><td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>)</td>
|
||||
<td></td><td></td><td><code> [static]</code></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="memdoc">
|
||||
|
||||
<p>Get the CPU set of logical processors that are physically close to device <code>ibdev</code>. </p>
|
||||
<p>For the given OpenFabrics device <code>ibdev</code>, 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. </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Data Structures</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Data Structures</h1>Here are the data structures with brief descriptions:<table>
|
||||
<tr><td class="indexkey"><a class="el" href="a00007.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a></td><td class="indexvalue">Cache-specific Object Attributes </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00008.html">hwloc_obj_attr_u::hwloc_group_attr_s</a></td><td class="indexvalue">Group-specific Object Attributes </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00009.html">hwloc_obj_attr_u::hwloc_machine_attr_s</a></td><td class="indexvalue">Machine-specific Object Attributes </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00010.html">hwloc_obj</a></td><td class="indexvalue">Structure of a topology object </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00011.html">hwloc_obj_attr_u</a></td><td class="indexvalue">Object type-specific Attributes </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00012.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a></td><td class="indexvalue">Array of local memory page types, <code>NULL</code> if no local memory and <code>page_types</code> is 0 </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00013.html">hwloc_obj_memory_s</a></td><td class="indexvalue">Object memory </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00014.html">hwloc_topology_cpubind_support</a></td><td class="indexvalue">Flags describing actual binding support for this topology </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00015.html">hwloc_topology_discovery_support</a></td><td class="indexvalue">Flags describing actual discovery support for this topology </td></tr>
|
||||
<tr><td class="indexkey"><a class="el" href="a00016.html">hwloc_topology_support</a></td><td class="indexvalue">Set of flags describing actual support for this topology </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
38
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/classes.html
Обычный файл
@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Alphabetical List</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Data Structure Index</h1><div class="qindex"><a class="qindex" href="#letter_H">H</a></div>
|
||||
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr><td><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> H </div></td></tr></table>
|
||||
</td><td><a class="el" href="a00009.html">hwloc_obj_attr_u::hwloc_machine_attr_s</a> </td><td><a class="el" href="a00011.html">hwloc_obj_attr_u</a> </td><td><a class="el" href="a00013.html">hwloc_obj_memory_s</a> </td><td><a class="el" href="a00015.html">hwloc_topology_discovery_support</a> </td></tr><tr><td><a class="el" href="a00007.html">hwloc_obj_attr_u::hwloc_cache_attr_s</a> </td><td><a class="el" href="a00010.html">hwloc_obj</a> </td><td><a class="el" href="a00012.html">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a> </td><td><a class="el" href="a00014.html">hwloc_topology_cpubind_support</a> </td><td><a class="el" href="a00016.html">hwloc_topology_support</a> </td></tr><tr><td><a class="el" href="a00008.html">hwloc_obj_attr_u::hwloc_group_attr_s</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_H">H</a></div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/diagram.png
Обычный файл
После Ширина: | Высота: | Размер: 25 KiB |
108
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.css
Обычный файл
@ -0,0 +1,108 @@
|
||||
body {
|
||||
font-size: 13px;
|
||||
/* margin-top: 0px; */
|
||||
}
|
||||
|
||||
div.menu {
|
||||
text-align: center;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 3px;
|
||||
background: #eeeeff;
|
||||
font-variant: small-caps;
|
||||
/* position: fixed;*/
|
||||
width: 100%;
|
||||
}
|
||||
div.menu a {
|
||||
text-decoration: none;
|
||||
color: #0020a0;
|
||||
}
|
||||
div.menu hr.menu {
|
||||
height: 4px;
|
||||
background: #fe0;
|
||||
border: 0px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font: bold normal 2.5em sans-serif ;
|
||||
margin: 0px;
|
||||
color: #0020a0;
|
||||
}
|
||||
h1.sub {
|
||||
font: bold normal 2em sans-serif ;
|
||||
text-align: right ;
|
||||
color: #0020a0;
|
||||
}
|
||||
h1 a {
|
||||
color: #0020a0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font: bold normal small-caps 1.5em sans-serif ;
|
||||
color: #0020a0;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font: bold normal small-caps 1em sans-serif ;
|
||||
color: #0020a0;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
h6.mirrors {
|
||||
text-align: right;
|
||||
margin: 0px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
div.section {
|
||||
background: #eeeeff;
|
||||
padding-left: 2px;
|
||||
padding-bottom: 2px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 8px;
|
||||
margin-bottom: 4px;
|
||||
margin-left: 6px;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 8px;
|
||||
background: #fe0;
|
||||
border: 0px;
|
||||
margin-top: 6px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 12px;
|
||||
background: #dddddd;
|
||||
padding: 3px;
|
||||
padding-left: 0px;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.publis-desc {
|
||||
text-align: right;
|
||||
font-style: italic;
|
||||
font-size: 12px;
|
||||
padding-left: 15%;
|
||||
}
|
||||
|
||||
p.updated {
|
||||
text-align: right;
|
||||
font-size: 10px;
|
||||
font-style: italic;
|
||||
}
|
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/doxygen.png
Обычный файл
После Ширина: | Высота: | Размер: 1.3 KiB |
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/dudley.png
Обычный файл
После Ширина: | Высота: | Размер: 18 KiB |
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/emmett.png
Обычный файл
После Ширина: | Высота: | Размер: 14 KiB |
42
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/files.html
Обычный файл
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): File Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>File List</h1>Here is a list of all files with brief descriptions:<table>
|
||||
<tr><td class="indexkey"><b>cpuset.h</b> <a href="a00017_source.html">[code]</a></td><td class="indexvalue">The Cpuset API, for use in hwloc itself </td></tr>
|
||||
<tr><td class="indexkey"><b>glibc-sched.h</b> <a href="a00018_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and glibc scheduling routines </td></tr>
|
||||
<tr><td class="indexkey"><b>helper.h</b> <a href="a00019_source.html">[code]</a></td><td class="indexvalue">High-level hwloc traversal helpers </td></tr>
|
||||
<tr><td class="indexkey"><b>hwloc.h</b> <a href="a00021_source.html">[code]</a></td><td class="indexvalue">The hwloc API </td></tr>
|
||||
<tr><td class="indexkey"><b>linux-libnuma.h</b> <a href="a00022_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and Linux libnuma </td></tr>
|
||||
<tr><td class="indexkey"><b>linux.h</b> <a href="a00023_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and Linux </td></tr>
|
||||
<tr><td class="indexkey"><b>openfabrics-verbs.h</b> <a href="a00024_source.html">[code]</a></td><td class="indexvalue">Macros to help interaction between hwloc and OpenFabrics verbs </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
256
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/functions.html
Обычный файл
@ -0,0 +1,256 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Data Fields</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="#index_a"><span>a</span></a></li>
|
||||
<li><a href="#index_c"><span>c</span></a></li>
|
||||
<li><a href="#index_d"><span>d</span></a></li>
|
||||
<li><a href="#index_f"><span>f</span></a></li>
|
||||
<li><a href="#index_g"><span>g</span></a></li>
|
||||
<li><a href="#index_l"><span>l</span></a></li>
|
||||
<li><a href="#index_m"><span>m</span></a></li>
|
||||
<li><a href="#index_n"><span>n</span></a></li>
|
||||
<li><a href="#index_o"><span>o</span></a></li>
|
||||
<li><a href="#index_p"><span>p</span></a></li>
|
||||
<li><a href="#index_s"><span>s</span></a></li>
|
||||
<li><a href="#index_t"><span>t</span></a></li>
|
||||
<li><a href="#index_u"><span>u</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
Here is a list of all struct and union fields with links to the structures/unions they belong to:
|
||||
|
||||
<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
|
||||
<li>allowed_cpuset
|
||||
: <a class="el" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34">hwloc_obj</a>
|
||||
</li>
|
||||
<li>allowed_nodeset
|
||||
: <a class="el" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b">hwloc_obj</a>
|
||||
</li>
|
||||
<li>arity
|
||||
: <a class="el" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1">hwloc_obj</a>
|
||||
</li>
|
||||
<li>attr
|
||||
: <a class="el" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
|
||||
<li>cache
|
||||
: <a class="el" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
<li>children
|
||||
: <a class="el" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>complete_cpuset
|
||||
: <a class="el" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c">hwloc_obj</a>
|
||||
</li>
|
||||
<li>complete_nodeset
|
||||
: <a class="el" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>count
|
||||
: <a class="el" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
|
||||
</li>
|
||||
<li>cpubind
|
||||
: <a class="el" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">hwloc_topology_support</a>
|
||||
</li>
|
||||
<li>cpuset
|
||||
: <a class="el" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
|
||||
<li>depth
|
||||
: <a class="el" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5">hwloc_obj</a>
|
||||
, <a class="el" href="a00007.html#a5c8f7f39193736c2187ed626940835d5">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
|
||||
, <a class="el" href="a00008.html#ad914eac61c77481e1b7037877bcc5579">hwloc_obj_attr_u::hwloc_group_attr_s</a>
|
||||
</li>
|
||||
<li>discovery
|
||||
: <a class="el" href="a00016.html#aea3fbd7653d987d81f848636c420504d">hwloc_topology_support</a>
|
||||
</li>
|
||||
<li>dmi_board_name
|
||||
: <a class="el" href="a00009.html#a8b99af84fd38753a91c861f0e856b461">hwloc_obj_attr_u::hwloc_machine_attr_s</a>
|
||||
</li>
|
||||
<li>dmi_board_vendor
|
||||
: <a class="el" href="a00009.html#aae85be0b4ebb86501718c4b460df5167">hwloc_obj_attr_u::hwloc_machine_attr_s</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
|
||||
<li>first_child
|
||||
: <a class="el" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
|
||||
<li>get_proc_cpubind
|
||||
: <a class="el" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thisproc_cpubind
|
||||
: <a class="el" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thisthread_cpubind
|
||||
: <a class="el" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thread_cpubind
|
||||
: <a class="el" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>group
|
||||
: <a class="el" href="a00011.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
|
||||
<li>last_child
|
||||
: <a class="el" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>local_memory
|
||||
: <a class="el" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>logical_index
|
||||
: <a class="el" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
|
||||
<li>machine
|
||||
: <a class="el" href="a00011.html#a5b42966df7c5bfdc36891e414cc31607">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
<li>memory
|
||||
: <a class="el" href="a00010.html#a1dc830816716213b5f797e4052487864">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
|
||||
<li>name
|
||||
: <a class="el" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d">hwloc_obj</a>
|
||||
</li>
|
||||
<li>next_cousin
|
||||
: <a class="el" href="a00010.html#a85a788017457129589318b6c39451acf">hwloc_obj</a>
|
||||
</li>
|
||||
<li>next_sibling
|
||||
: <a class="el" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40">hwloc_obj</a>
|
||||
</li>
|
||||
<li>nodeset
|
||||
: <a class="el" href="a00010.html#a79982ede313c2190505fc5e3714a16fb">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
|
||||
<li>online_cpuset
|
||||
: <a class="el" href="a00010.html#a8842d56c2975380f327ea401c5f53564">hwloc_obj</a>
|
||||
</li>
|
||||
<li>os_index
|
||||
: <a class="el" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9">hwloc_obj</a>
|
||||
</li>
|
||||
<li>os_level
|
||||
: <a class="el" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
|
||||
<li>page_types
|
||||
: <a class="el" href="a00013.html#a865eba7b12b986d72dbe7a2cfd97c50d">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>page_types_len
|
||||
: <a class="el" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>parent
|
||||
: <a class="el" href="a00010.html#adc494f6aed939992be1c55cca5822900">hwloc_obj</a>
|
||||
</li>
|
||||
<li>prev_cousin
|
||||
: <a class="el" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0">hwloc_obj</a>
|
||||
</li>
|
||||
<li>prev_sibling
|
||||
: <a class="el" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50">hwloc_obj</a>
|
||||
</li>
|
||||
<li>pu
|
||||
: <a class="el" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">hwloc_topology_discovery_support</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
|
||||
<li>set_proc_cpubind
|
||||
: <a class="el" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thisproc_cpubind
|
||||
: <a class="el" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thisthread_cpubind
|
||||
: <a class="el" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thread_cpubind
|
||||
: <a class="el" href="a00014.html#a46fba33e307909ce256624687799dd6d">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>sibling_rank
|
||||
: <a class="el" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd">hwloc_obj</a>
|
||||
</li>
|
||||
<li>size
|
||||
: <a class="el" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
|
||||
, <a class="el" href="a00007.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
|
||||
<li>total_memory
|
||||
: <a class="el" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>type
|
||||
: <a class="el" href="a00010.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
|
||||
<li>userdata
|
||||
: <a class="el" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,256 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Data Fields - Variables</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="functions.html"><span>All</span></a></li>
|
||||
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="#index_a"><span>a</span></a></li>
|
||||
<li><a href="#index_c"><span>c</span></a></li>
|
||||
<li><a href="#index_d"><span>d</span></a></li>
|
||||
<li><a href="#index_f"><span>f</span></a></li>
|
||||
<li><a href="#index_g"><span>g</span></a></li>
|
||||
<li><a href="#index_l"><span>l</span></a></li>
|
||||
<li><a href="#index_m"><span>m</span></a></li>
|
||||
<li><a href="#index_n"><span>n</span></a></li>
|
||||
<li><a href="#index_o"><span>o</span></a></li>
|
||||
<li><a href="#index_p"><span>p</span></a></li>
|
||||
<li><a href="#index_s"><span>s</span></a></li>
|
||||
<li><a href="#index_t"><span>t</span></a></li>
|
||||
<li><a href="#index_u"><span>u</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_a">- a -</a></h3><ul>
|
||||
<li>allowed_cpuset
|
||||
: <a class="el" href="a00010.html#afa3c59a6dd3da8ffa48710780a1bfb34">hwloc_obj</a>
|
||||
</li>
|
||||
<li>allowed_nodeset
|
||||
: <a class="el" href="a00010.html#a9c1af614e0978a65ce309f921a822c8b">hwloc_obj</a>
|
||||
</li>
|
||||
<li>arity
|
||||
: <a class="el" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1">hwloc_obj</a>
|
||||
</li>
|
||||
<li>attr
|
||||
: <a class="el" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
|
||||
<li>cache
|
||||
: <a class="el" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
<li>children
|
||||
: <a class="el" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>complete_cpuset
|
||||
: <a class="el" href="a00010.html#a91788a9da687beb7224cc1fd7b75208c">hwloc_obj</a>
|
||||
</li>
|
||||
<li>complete_nodeset
|
||||
: <a class="el" href="a00010.html#adc473a52c071d7fd49e659ac90467a0f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>count
|
||||
: <a class="el" href="a00012.html#ab5d01db7b26177a6b5361107cad152c3">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
|
||||
</li>
|
||||
<li>cpubind
|
||||
: <a class="el" href="a00016.html#adef2bb91f74c3e70a2a071393caf5f56">hwloc_topology_support</a>
|
||||
</li>
|
||||
<li>cpuset
|
||||
: <a class="el" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
|
||||
<li>depth
|
||||
: <a class="el" href="a00010.html#a9d82690370275d42d652eccdea5d3ee5">hwloc_obj</a>
|
||||
, <a class="el" href="a00007.html#a5c8f7f39193736c2187ed626940835d5">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
|
||||
, <a class="el" href="a00008.html#ad914eac61c77481e1b7037877bcc5579">hwloc_obj_attr_u::hwloc_group_attr_s</a>
|
||||
</li>
|
||||
<li>discovery
|
||||
: <a class="el" href="a00016.html#aea3fbd7653d987d81f848636c420504d">hwloc_topology_support</a>
|
||||
</li>
|
||||
<li>dmi_board_name
|
||||
: <a class="el" href="a00009.html#a8b99af84fd38753a91c861f0e856b461">hwloc_obj_attr_u::hwloc_machine_attr_s</a>
|
||||
</li>
|
||||
<li>dmi_board_vendor
|
||||
: <a class="el" href="a00009.html#aae85be0b4ebb86501718c4b460df5167">hwloc_obj_attr_u::hwloc_machine_attr_s</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_f">- f -</a></h3><ul>
|
||||
<li>first_child
|
||||
: <a class="el" href="a00010.html#af51d08a0a79dba517c06c5afedc8d2dc">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
|
||||
<li>get_proc_cpubind
|
||||
: <a class="el" href="a00014.html#aae705bc447adc163ead377362c4dfe9f">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thisproc_cpubind
|
||||
: <a class="el" href="a00014.html#a77a09ddd78ee3e9ff5f532a6ac74f7eb">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thisthread_cpubind
|
||||
: <a class="el" href="a00014.html#a80d762e532d677dff262d83cc7bb1c60">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>get_thread_cpubind
|
||||
: <a class="el" href="a00014.html#a8dd4d8531ed2eebdce1507e7d104154e">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>group
|
||||
: <a class="el" href="a00011.html#ae4ba157cc313e2cdd9a82f1c1df7aaa6">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
|
||||
<li>last_child
|
||||
: <a class="el" href="a00010.html#a84bd65634dbc55f4158b74443a9bd04f">hwloc_obj</a>
|
||||
</li>
|
||||
<li>local_memory
|
||||
: <a class="el" href="a00013.html#a27043a3150660f44ed84916c2d0d7e0e">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>logical_index
|
||||
: <a class="el" href="a00010.html#a0d07fb7b8935e137c94d75a3eb492ae9">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_m">- m -</a></h3><ul>
|
||||
<li>machine
|
||||
: <a class="el" href="a00011.html#a5b42966df7c5bfdc36891e414cc31607">hwloc_obj_attr_u</a>
|
||||
</li>
|
||||
<li>memory
|
||||
: <a class="el" href="a00010.html#a1dc830816716213b5f797e4052487864">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_n">- n -</a></h3><ul>
|
||||
<li>name
|
||||
: <a class="el" href="a00010.html#abb709ec38f2970677e4e57d1d30be96d">hwloc_obj</a>
|
||||
</li>
|
||||
<li>next_cousin
|
||||
: <a class="el" href="a00010.html#a85a788017457129589318b6c39451acf">hwloc_obj</a>
|
||||
</li>
|
||||
<li>next_sibling
|
||||
: <a class="el" href="a00010.html#a7f2343ed476fe4942e6fffd4cade1b40">hwloc_obj</a>
|
||||
</li>
|
||||
<li>nodeset
|
||||
: <a class="el" href="a00010.html#a79982ede313c2190505fc5e3714a16fb">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_o">- o -</a></h3><ul>
|
||||
<li>online_cpuset
|
||||
: <a class="el" href="a00010.html#a8842d56c2975380f327ea401c5f53564">hwloc_obj</a>
|
||||
</li>
|
||||
<li>os_index
|
||||
: <a class="el" href="a00010.html#a61a7a80a68eaccbaaa28269e678c81a9">hwloc_obj</a>
|
||||
</li>
|
||||
<li>os_level
|
||||
: <a class="el" href="a00010.html#a68766f0b1c4d61b5bad87e3b81dacfde">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
|
||||
<li>page_types
|
||||
: <a class="el" href="a00013.html#a865eba7b12b986d72dbe7a2cfd97c50d">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>page_types_len
|
||||
: <a class="el" href="a00013.html#a208c27f4491077d7fb9ba5db8b29cb57">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>parent
|
||||
: <a class="el" href="a00010.html#adc494f6aed939992be1c55cca5822900">hwloc_obj</a>
|
||||
</li>
|
||||
<li>prev_cousin
|
||||
: <a class="el" href="a00010.html#ac715989f55ff5a0eb6be2969ee477ec0">hwloc_obj</a>
|
||||
</li>
|
||||
<li>prev_sibling
|
||||
: <a class="el" href="a00010.html#a7b89e8c189876c0158a9282aaaf17f50">hwloc_obj</a>
|
||||
</li>
|
||||
<li>pu
|
||||
: <a class="el" href="a00015.html#ad7bb4ecf7a82f5a04fc632e9592ad3ab">hwloc_topology_discovery_support</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
|
||||
<li>set_proc_cpubind
|
||||
: <a class="el" href="a00014.html#aa166223d1c2a6de7256ab2d8b675a87e">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thisproc_cpubind
|
||||
: <a class="el" href="a00014.html#a9403d51657a4d546b3ea9553a2973a27">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thisthread_cpubind
|
||||
: <a class="el" href="a00014.html#a57a89a4b5f1f74fa6cfe176f1e8b0798">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>set_thread_cpubind
|
||||
: <a class="el" href="a00014.html#a46fba33e307909ce256624687799dd6d">hwloc_topology_cpubind_support</a>
|
||||
</li>
|
||||
<li>sibling_rank
|
||||
: <a class="el" href="a00010.html#aaa6043eee6f55869933c1d974efd9acd">hwloc_obj</a>
|
||||
</li>
|
||||
<li>size
|
||||
: <a class="el" href="a00012.html#af0619463fb5d10052b7fe3495a66d74b">hwloc_obj_memory_s::hwloc_obj_memory_page_type_s</a>
|
||||
, <a class="el" href="a00007.html#a3c68235220554308f89768f281ad1e62">hwloc_obj_attr_u::hwloc_cache_attr_s</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_t">- t -</a></h3><ul>
|
||||
<li>total_memory
|
||||
: <a class="el" href="a00013.html#a68c3323d2d0a248d1b7fec7af44bebe3">hwloc_obj_memory_s</a>
|
||||
</li>
|
||||
<li>type
|
||||
: <a class="el" href="a00010.html#acc4f0803f244867e68fe0036800be5de">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
|
||||
<li>userdata
|
||||
: <a class="el" href="a00010.html#a76fd3ac94401cf32dfccc3a3a8de68a5">hwloc_obj</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/hagrid.png
Обычный файл
После Ширина: | Высота: | Размер: 13 KiB |
374
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/index.html
Обычный файл
@ -0,0 +1,374 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Hardware Locality</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Hardware Locality </h1><h3 class="version">1.0rc1 </h3><h1 class="sub">Portable abstraction of hierarchical architectures for high-performance computing</h1>
|
||||
<hr/>
|
||||
|
||||
<div class="section" id="introduction">
|
||||
<h2><a class="anchor" id="Introduction">
|
||||
Introduction</a></h2>
|
||||
<p>hwloc provides command line tools and a C API to obtain the hierarchical map of key computing elements, such as: NUMA memory nodes, shared caches, processor sockets, processor cores, and processing units (logical processors or "threads"). hwloc also gathers various attributes such as cache and memory information, and is portable across a variety of different operating systems and platforms.</p>
|
||||
<p>hwloc primarily aims at helping high-performance computing (HPC) applications, but is also applicable to any project seeking to exploit code and/or data locality on modern computing platforms.</p>
|
||||
<p>Note that the hwloc project represents the merger of the libtopology project from INRIA and the Portable Linux Processor Affinity (PLPA) sub-project from Open MPI. <em>Both of these prior projects are now deprecated.</em> The first hwloc release is essentially a "re-branding" of the libtopology code base, but with both a few genuinely new features and a few PLPA-like features added in. More new features and more PLPA-like features will be added to hwloc over time. See <a class="el" href="a00006.html">Switching from PLPA to hwloc</a> for more details about converting your application from PLPA to hwloc.</p>
|
||||
<p>hwloc supports the following operating systems:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Linux (including old kernels not having sysfs topology information, with knowledge of cpusets, offline cpus, ScaleMP vSMP, and Kerrighed support) </li>
|
||||
<li>
|
||||
Solaris </li>
|
||||
<li>
|
||||
AIX </li>
|
||||
<li>
|
||||
Darwin / OS X </li>
|
||||
<li>
|
||||
FreeBSD and its variants, such as kFreeBSD/GNU </li>
|
||||
<li>
|
||||
OSF/1 (a.k.a., Tru64) </li>
|
||||
<li>
|
||||
HP-UX </li>
|
||||
<li>
|
||||
Microsoft Windows </li>
|
||||
</ul>
|
||||
<p>hwloc only reports the number of processors on unsupported operating systems; no topology information is available.</p>
|
||||
<p>For development and debugging purposes, hwloc also offers the ability to work on "fake" topologies:</p>
|
||||
<ul>
|
||||
<li>
|
||||
Symmetrical tree of resources generated from a list of level arities </li>
|
||||
<li>
|
||||
Remote machine simulation through the gathering of Linux sysfs topology files </li>
|
||||
</ul>
|
||||
<p>hwloc can display the topology in a human-readable format, either in graphical mode (X11), or by exporting in one of several different formats, including: plain text, PDF, PNG, and FIG (see Examples below). Note that some of the export formats require additional support libraries.</p>
|
||||
<p>hwloc offers a programming interface for manipulating topologies and objects. It also brings a powerful CPU bitmap API that is used to describe topology objects location on physical/logical processors. See the <a class="el" href="index.html#interface">Programming interface</a> below. It may also be used to binding applications onto certain cores or memory nodes. Several utility programs are also provided to ease command-line manipulation of topology objects, binding of processes, and so on.</p>
|
||||
|
||||
</div><div class="section" id="installation">
|
||||
<h2><a class="anchor" id="installation">
|
||||
Installation</a></h2>
|
||||
<p>hwloc (<a href="http://www.open-mpi.org/projects/hwloc/">http://www.open-mpi.org/projects/hwloc/</a>) is available under the BSD license. It is hosted as a sub-project of the overall Open MPI project (<a href="http://www.open-mpi.org/">http://www.open-mpi.org/</a>). Note that hwloc does not require any functionality from Open MPI -- it is a wholly separate (and much smaller!) project and code base. It just happens to be hosted as part of the overall Open MPI project.</p>
|
||||
<p>Nightly development snapshots are available on the web site. Additionally, the code can be directly checked out of Subversion:</p>
|
||||
<div class="fragment"><pre class="fragment">shell$ svn checkout http:<span class="comment">//svn.open-mpi.org/svn/hwloc/trunk hwloc-trunk</span>
|
||||
shell$ cd hwloc-trunk
|
||||
shell$ ./autogen.sh
|
||||
</pre></div><p>Note that GNU Autoconf >=2.63, Automake >=1.10 and Libtool >=2.2.6 are required when building from a Subversion checkout.</p>
|
||||
<p>Installation by itself is the fairly common GNU-based process:</p>
|
||||
<div class="fragment"><pre class="fragment">shell$ ./configure --prefix=...
|
||||
shell$ make
|
||||
shell$ make install
|
||||
</pre></div><p>The hwloc command-line tool "lstopo" produces human-readable topology maps, as mentioned above. It can also export maps to the "fig" file format. Support for PDF, Postscript, and PNG exporting is provided if the "Cairo" development package can be found when hwloc is configured and build. Similarly, lstopo's XML support requires the libxml2 development package.</p>
|
||||
|
||||
</div><div class="section" id="examples">
|
||||
<h2><a class="anchor" id="examples">
|
||||
Examples</a></h2>
|
||||
<p>On a 4-socket 2-core machine with hyperthreading, the <code>lstopo</code> tool may show the following outputs:</p>
|
||||
<div align="center">
|
||||
<img src="dudley.png" alt="dudley.png"/>
|
||||
</div>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
Machine (16GB)
|
||||
Socket #0 + L3 #0 (4096KB)
|
||||
L2 #0 (1024KB) + L1 #0 (16KB) + Core #0
|
||||
PU #0 (phys=0)
|
||||
PU #1 (phys=8)
|
||||
L2 #1 (1024KB) + L1 #1 (16KB) + Core #1
|
||||
PU #2 (phys=4)
|
||||
PU #3 (phys=12)
|
||||
Socket #1 + L3 #1 (4096KB)
|
||||
L2 #2 (1024KB) + L1 #2 (16KB) + Core #2
|
||||
PU #4 (phys=1)
|
||||
PU #5 (phys=9)
|
||||
L2 #3 (1024KB) + L1 #3 (16KB) + Core #3
|
||||
PU #6 (phys=5)
|
||||
PU #7 (phys=13)
|
||||
Socket #2 + L3 #2 (4096KB)
|
||||
L2 #4 (1024KB) + L1 #4 (16KB) + Core #4
|
||||
PU #8 (phys=2)
|
||||
PU #9 (phys=10)
|
||||
L2 #5 (1024KB) + L1 #5 (16KB) + Core #5
|
||||
PU #10 (phys=6)
|
||||
PU #11 (phys=14)
|
||||
Socket #3 + L3 #3 (4096KB)
|
||||
L2 #6 (1024KB) + L1 #6 (16KB) + Core #6
|
||||
PU #12 (phys=3)
|
||||
PU #13 (phys=11)
|
||||
L2 #7 (1024KB) + L1 #7 (16KB) + Core #7
|
||||
PU #14 (phys=7)
|
||||
PU #15 (phys=15)
|
||||
</pre></div><p>On a 4-socket 2-core Opteron NUMA machine, the <code>lstopo</code> tool may show the following outputs:</p>
|
||||
<div align="center">
|
||||
<img src="hagrid.png" alt="hagrid.png"/>
|
||||
</div>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
Machine (64GB)
|
||||
NUMANode #0 (phys=0 8190MB) + Socket #0
|
||||
L2 #0 (1024KB) + L1 #0 (64KB) + Core #0 + PU #0 (phys=0)
|
||||
L2 #1 (1024KB) + L1 #1 (64KB) + Core #1 + PU #1 (phys=1)
|
||||
NUMANode #1 (phys=1 8192MB) + Socket #1
|
||||
L2 #2 (1024KB) + L1 #2 (64KB) + Core #2 + PU #2 (phys=2)
|
||||
L2 #3 (1024KB) + L1 #3 (64KB) + Core #3 + PU #3 (phys=3)
|
||||
NUMANode #2 (phys=2 8192MB) + Socket #2
|
||||
L2 #4 (1024KB) + L1 #4 (64KB) + Core #4 + PU #4 (phys=4)
|
||||
L2 #5 (1024KB) + L1 #5 (64KB) + Core #5 + PU #5 (phys=5)
|
||||
NUMANode #3 (phys=3 8192MB) + Socket #3
|
||||
L2 #6 (1024KB) + L1 #6 (64KB) + Core #6 + PU #6 (phys=6)
|
||||
L2 #7 (1024KB) + L1 #7 (64KB) + Core #7 + PU #7 (phys=7)
|
||||
NUMANode #4 (phys=4 8192MB) + Socket #4
|
||||
L2 #8 (1024KB) + L1 #8 (64KB) + Core #8 + PU #8 (phys=8)
|
||||
L2 #9 (1024KB) + L1 #9 (64KB) + Core #9 + PU #9 (phys=9)
|
||||
NUMANode #5 (phys=5 8192MB) + Socket #5
|
||||
L2 #10 (1024KB) + L1 #10 (64KB) + Core #10 + PU #10 (phys=10)
|
||||
L2 #11 (1024KB) + L1 #11 (64KB) + Core #11 + PU #11 (phys=11)
|
||||
NUMANode #6 (phys=6 8192MB) + Socket #6
|
||||
L2 #12 (1024KB) + L1 #12 (64KB) + Core #12 + PU #12 (phys=12)
|
||||
L2 #13 (1024KB) + L1 #13 (64KB) + Core #13 + PU #13 (phys=13)
|
||||
NUMANode #7 (phys=7 8192MB) + Socket #7
|
||||
L2 #14 (1024KB) + L1 #14 (64KB) + Core #14 + PU #14 (phys=14)
|
||||
L2 #15 (1024KB) + L1 #15 (64KB) + Core #15 + PU #15 (phys=15)
|
||||
</pre></div><p>On a 2-socket quad-core Xeon (pre-Nehalem, with 2 dual-core dies into each socket):</p>
|
||||
<div align="center">
|
||||
<img src="emmett.png" alt="emmett.png"/>
|
||||
</div>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
Machine (16GB)
|
||||
Socket #0
|
||||
L2 #0 (4096KB)
|
||||
L1 #0 (32KB) + Core #0 + PU #0 (phys=0)
|
||||
L1 #1 (32KB) + Core #1 + PU #1 (phys=4)
|
||||
L2 #1 (4096KB)
|
||||
L1 #2 (32KB) + Core #2 + PU #2 (phys=2)
|
||||
L1 #3 (32KB) + Core #3 + PU #3 (phys=6)
|
||||
Socket #1
|
||||
L2 #2 (4096KB)
|
||||
L1 #4 (32KB) + Core #4 + PU #4 (phys=1)
|
||||
L1 #5 (32KB) + Core #5 + PU #5 (phys=5)
|
||||
L2 #3 (4096KB)
|
||||
L1 #6 (32KB) + Core #6 + PU #6 (phys=3)
|
||||
L1 #7 (32KB) + Core #7 + PU #7 (phys=7)
|
||||
</pre></div>
|
||||
</div><div class="section" id="interface">
|
||||
<h2><a class="anchor" id="interface">
|
||||
Programming interface</a></h2>
|
||||
<p>The basic interface is available in <a class="el" href="a00021_source.html" title="The hwloc API.">hwloc.h</a>. It mostly offers low-level routines for advanced programmers that want to manually manipulate objects and follow links between them. Developers should look at <a class="el" href="a00019_source.html" title="High-level hwloc traversal helpers.">hwloc/helper.h</a>, which provides good higher-level topology traversal examples.</p>
|
||||
<p>Each object contains a cpuset describing the list of processing units that it contains. These cpusets may be used for <a class="el" href="a00035.html">Binding</a>. hwloc offers an extensive cpuset manipulation interface in <a class="el" href="a00017_source.html" title="The Cpuset API, for use in hwloc itself.">hwloc/cpuset.h</a>.</p>
|
||||
<p>Moreover, hwloc also comes with additional helpers for interoperability with several commonly used environments. For Linux, some specific helpers are available in <a class="el" href="a00023_source.html" title="Macros to help interaction between hwloc and Linux.">hwloc/linux.h</a>, and <a class="el" href="a00022_source.html" title="Macros to help interaction between hwloc and Linux libnuma.">hwloc/linux-libnuma.h</a> if using libnuma. On glibc-based systems, additional helpers are available in <a class="el" href="a00018_source.html" title="Macros to help interaction between hwloc and glibc scheduling routines.">hwloc/glibc-sched.h</a>. For Linux systems with the OpenFabrics verbs library, some dedicated helpers are provided in <a class="el" href="a00024_source.html" title="Macros to help interaction between hwloc and OpenFabrics verbs.">hwloc/openfabrics-verbs.h</a> (this helper file is not yet useful on non-Linux systems with the OpenFabrics verbs library).</p>
|
||||
<p>To precisely define the vocabulary used by hwloc, a <a class="el" href="a00001.html">Terms and Definitions</a> section is available and should probably be read first.</p>
|
||||
<p>Further documentation is available in a full set of HTML pages, man pages, and self-contained PDF files (formatted for both both US letter and A4 formats) in the source tarball in doc/doxygen-doc/. If you are building from a Subversion checkout, you will need to have Doxygen and pdflatex installed -- the documentation will be built during the normal "make" process. The documentation is installed during "make
|
||||
install" to $prefix/share/doc/hwloc/ and your systems default man page tree (under $prefix, of course).</p>
|
||||
<p>The following section presents an example of API usage.</p>
|
||||
<h2><a class="anchor" id="interface_example">
|
||||
API example</a></h2>
|
||||
<p>The following small C example (named ``hwloc-hello.c'') prints the topology of the machine and bring the process to the first logical processor of the second core of the machine.</p>
|
||||
<div class="fragment"><pre class="fragment"><span class="comment">/* Example hwloc API program.</span>
|
||||
<span class="comment"> *</span>
|
||||
<span class="comment"> * Copyright © 2009 INRIA, Université Bordeaux 1</span>
|
||||
<span class="comment"> * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.</span>
|
||||
<span class="comment"> *</span>
|
||||
<span class="comment"> * hwloc-hello.c </span>
|
||||
<span class="comment"> */</span>
|
||||
|
||||
<span class="preprocessor">#include <hwloc.h></span>
|
||||
|
||||
<span class="keyword">static</span> <span class="keywordtype">void</span> print_children(<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology, <a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj,
|
||||
<span class="keywordtype">int</span> depth)
|
||||
{
|
||||
<span class="keywordtype">char</span> <span class="keywordtype">string</span>[128];
|
||||
<span class="keywordtype">unsigned</span> i;
|
||||
|
||||
<a class="code" href="a00034.html#ga5c6a61a83f4790b421e2f62e9088446f" title="Stringify a given topology object into a human-readable form.">hwloc_obj_snprintf</a>(<span class="keywordtype">string</span>, <span class="keyword">sizeof</span>(<span class="keywordtype">string</span>), topology, obj, <span class="stringliteral">"#"</span>, 0);
|
||||
printf(<span class="stringliteral">"%*s%s\n"</span>, 2*depth, <span class="stringliteral">""</span>, <span class="keywordtype">string</span>);
|
||||
<span class="keywordflow">for</span> (i = 0; i < obj-><a class="code" href="a00010.html#aac3f6da35c9b57599909a44ce2b716c1" title="Number of children.">arity</a>; i++) {
|
||||
print_children(topology, obj-><a class="code" href="a00010.html#a04d05403da37bfe17cd63b7c7dd07b1f" title="Children, children[0 .. arity -1].">children</a>[i], depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
<span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)
|
||||
{
|
||||
<span class="keywordtype">int</span> depth;
|
||||
<span class="keywordtype">unsigned</span> i;
|
||||
<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size;
|
||||
<span class="keywordtype">int</span> levels;
|
||||
<span class="keywordtype">char</span> <span class="keywordtype">string</span>[128];
|
||||
<span class="keywordtype">int</span> topodepth;
|
||||
<a class="code" href="a00026.html#ga9d1e76ee15a7dee158b786c30b6a6e38" title="Topology context.">hwloc_topology_t</a> topology;
|
||||
<a class="code" href="a00045.html#ga7366332f7090f5b54d4b25a0c2c4b411" title="Set of CPUs represented as an opaque pointer to an internal bitmask.">hwloc_cpuset_t</a> cpuset;
|
||||
<a class="code" href="a00010.html" title="Structure of a topology object.">hwloc_obj_t</a> obj;
|
||||
|
||||
<span class="comment">/* Allocate and initialize topology object. */</span>
|
||||
<a class="code" href="a00029.html#ga5c2d6f476af87005c7bd0811d4548b9f" title="Allocate a topology context.">hwloc_topology_init</a>(&topology);
|
||||
|
||||
<span class="comment">/* ... Optionally, put detection configuration here to ignore</span>
|
||||
<span class="comment"> some objects types, define a synthetic topology, etc.... </span>
|
||||
<span class="comment"></span>
|
||||
<span class="comment"> The default is to detect all the objects of the machine that</span>
|
||||
<span class="comment"> the caller is allowed to access. See Configure Topology</span>
|
||||
<span class="comment"> Detection. */</span>
|
||||
|
||||
<span class="comment">/* Perform the topology detection. */</span>
|
||||
<a class="code" href="a00029.html#ga91e2e6427b95fb7339c99dbbef996e71" title="Build the actual topology.">hwloc_topology_load</a>(topology);
|
||||
|
||||
<span class="comment">/* Optionally, get some additional topology information</span>
|
||||
<span class="comment"> in case we need the topology depth later. */</span>
|
||||
topodepth = <a class="code" href="a00032.html#ga8c30b0cec55074eb3ed34e4f2a1a9937" title="Get the depth of the hierachical tree of objects.">hwloc_topology_get_depth</a>(topology);
|
||||
|
||||
<span class="comment">/*****************************************************************</span>
|
||||
<span class="comment"> * First example:</span>
|
||||
<span class="comment"> * Walk the topology with an array style, from level 0 (always</span>
|
||||
<span class="comment"> * the system level) to the lowest level (always the proc level).</span>
|
||||
<span class="comment"> *****************************************************************/</span>
|
||||
<span class="keywordflow">for</span> (depth = 0; depth < topodepth; depth++) {
|
||||
printf(<span class="stringliteral">"*** Objects at level %d\n"</span>, depth);
|
||||
<span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth);
|
||||
i++) {
|
||||
<a class="code" href="a00034.html#ga5c6a61a83f4790b421e2f62e9088446f" title="Stringify a given topology object into a human-readable form.">hwloc_obj_snprintf</a>(<span class="keywordtype">string</span>, <span class="keyword">sizeof</span>(<span class="keywordtype">string</span>), topology,
|
||||
<a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth, i),
|
||||
<span class="stringliteral">"#"</span>, 0);
|
||||
printf(<span class="stringliteral">"Index %u: %s\n"</span>, i, <span class="keywordtype">string</span>);
|
||||
}
|
||||
}
|
||||
|
||||
<span class="comment">/*****************************************************************</span>
|
||||
<span class="comment"> * Second example:</span>
|
||||
<span class="comment"> * Walk the topology with a tree style.</span>
|
||||
<span class="comment"> *****************************************************************/</span>
|
||||
printf(<span class="stringliteral">"*** Printing overall tree\n"</span>);
|
||||
print_children(topology, <a class="code" href="a00037.html#ga643d25c9fa7e0ca3ac7e0c74f1b0bdc6" title="Returns the top-object of the topology-tree.">hwloc_get_root_obj</a>(topology), 0);
|
||||
|
||||
<span class="comment">/*****************************************************************</span>
|
||||
<span class="comment"> * Third example:</span>
|
||||
<span class="comment"> * Print the number of sockets.</span>
|
||||
<span class="comment"> *****************************************************************/</span>
|
||||
depth = <a class="code" href="a00032.html#gaea7c64dd59467f5201ba87712710b14d" title="Returns the depth of objects of type type.">hwloc_get_type_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a1ac6e07775ae4324b3fe9dbd72c785ec" title="Socket, physical package, or chip. In the physical meaning, i.e. that you can add...">HWLOC_OBJ_SOCKET</a>);
|
||||
<span class="keywordflow">if</span> (depth == <a class="code" href="a00032.html#ggaf4e663cf42bbe20756b849c6293ef575a0565ab92ab72cb0cec91e23003294aad" title="No object of given type exists in the topology.">HWLOC_TYPE_DEPTH_UNKNOWN</a>) {
|
||||
printf(<span class="stringliteral">"*** The number of sockets is unknown\n"</span>);
|
||||
} <span class="keywordflow">else</span> {
|
||||
printf(<span class="stringliteral">"*** %u socket(s)\n"</span>,
|
||||
<a class="code" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth));
|
||||
}
|
||||
|
||||
<span class="comment">/*****************************************************************</span>
|
||||
<span class="comment"> * Fourth example:</span>
|
||||
<span class="comment"> * Compute the amount of cache that the first logical processor</span>
|
||||
<span class="comment"> * has above it.</span>
|
||||
<span class="comment"> *****************************************************************/</span>
|
||||
levels = 0;
|
||||
size = 0;
|
||||
<span class="keywordflow">for</span> (obj = <a class="code" href="a00033.html#gaabd26357fea30ceb7754ad970b9a0aaa" title="Returns the topology object at index index with type type.">hwloc_get_obj_by_type</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55abca6887e80cb291353b0a0c1da83f661" title="Processing Unit, or (Logical) Processor. An execution unit (may share a core with...">HWLOC_OBJ_PU</a>, 0);
|
||||
obj;
|
||||
obj = obj-><a class="code" href="a00010.html#adc494f6aed939992be1c55cca5822900" title="Parent, NULL if root (system object).">parent</a>)
|
||||
<span class="keywordflow">if</span> (obj-><a class="code" href="a00010.html#acc4f0803f244867e68fe0036800be5de" title="Type of object.">type</a> == <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55a56ee0b7eca88f363b75b34fdde8c9ddc" title="Data cache. Can be L1, L2, L3, ...">HWLOC_OBJ_CACHE</a>) {
|
||||
levels++;
|
||||
size += obj-><a class="code" href="a00010.html#accd40e29f71f19e88db62ea3df02adc8" title="Object type-specific Attributes.">attr</a>-><a class="code" href="a00011.html#ab5a8ae3bf490e6b1071fea53f7382836" title="Cache-specific Object Attributes.">cache</a>.<a class="code" href="a00007.html#a3c68235220554308f89768f281ad1e62" title="Size of cache in bytes.">size</a>;
|
||||
}
|
||||
printf(<span class="stringliteral">"*** Logical processor 0 has %u caches totaling %luKB\n"</span>,
|
||||
levels, size / 1024);
|
||||
|
||||
<span class="comment">/*****************************************************************</span>
|
||||
<span class="comment"> * Fifth example:</span>
|
||||
<span class="comment"> * Bind to only one thread of the last core of the machine.</span>
|
||||
<span class="comment"> *</span>
|
||||
<span class="comment"> * First find out where cores are, or else smaller sets of CPUs if</span>
|
||||
<span class="comment"> * the OS doesn't have the notion of a "core".</span>
|
||||
<span class="comment"> *****************************************************************/</span>
|
||||
depth = <a class="code" href="a00036.html#gaf324fdd1fcb895c32cc6540c92e9245a" title="Returns the depth of objects of type type or below.">hwloc_get_type_or_below_depth</a>(topology, <a class="code" href="a00027.html#ggacd37bb612667dc437d66bfb175a8dc55ac793958f330bca371aa1535de8aff45f" title="Core. A computation unit (may be shared by several logical processors).">HWLOC_OBJ_CORE</a>);
|
||||
|
||||
<span class="comment">/* Get last core. */</span>
|
||||
obj = <a class="code" href="a00033.html#gaedd78240b0c1108355586a268ec5a697" title="Returns the topology object at index index from depth depth.">hwloc_get_obj_by_depth</a>(topology, depth,
|
||||
<a class="code" href="a00032.html#ga20cfe2456f4cfdd789c9aca6d2fdd69f" title="Returns the width of level at depth depth.">hwloc_get_nbobjs_by_depth</a>(topology, depth) - 1);
|
||||
<span class="keywordflow">if</span> (obj) {
|
||||
<span class="comment">/* Get a copy of its cpuset that we may modify. */</span>
|
||||
cpuset = <a class="code" href="a00045.html#ga468c6e3fd92a9d0db1fb56634a851be3" title="Duplicate CPU set set by allocating a new CPU set and copying set&#39;s contents...">hwloc_cpuset_dup</a>(obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
|
||||
<span class="comment">/* Get only one logical processor (in case the core is</span>
|
||||
<span class="comment"> SMT/hyperthreaded). */</span>
|
||||
<a class="code" href="a00045.html#gace7ad3d2a71d9884e7a28311228931af" title="Keep a single CPU among those set in CPU set set.">hwloc_cpuset_singlify</a>(cpuset);
|
||||
|
||||
<span class="comment">/* And try to bind ourself there. */</span>
|
||||
<span class="keywordflow">if</span> (<a class="code" href="a00035.html#ga42f02baaf7dc0c0f5a6bbeca731fd144" title="Bind current process or thread on cpus given in cpuset set.">hwloc_set_cpubind</a>(topology, cpuset, 0)) {
|
||||
<span class="keywordtype">char</span> *str;
|
||||
<a class="code" href="a00045.html#ga7a89398cbc58c9095aa094b9aeacbf00" title="Stringify a cpuset into a newly allocated string.">hwloc_cpuset_asprintf</a>(&str, obj-><a class="code" href="a00010.html#a67925e0f2c47f50408fbdb9bddd0790f" title="CPUs covered by this object.">cpuset</a>);
|
||||
printf(<span class="stringliteral">"Couldn't bind to cpuset %s\n"</span>, str);
|
||||
free(str);
|
||||
}
|
||||
|
||||
<span class="comment">/* Free our cpuset copy */</span>
|
||||
<a class="code" href="a00045.html#gaaac6c1536cdcc35f1a1a3a9ab84da80d" title="Free CPU set set.">hwloc_cpuset_free</a>(cpuset);
|
||||
}
|
||||
|
||||
<span class="comment">/* Destroy topology object. */</span>
|
||||
<a class="code" href="a00029.html#ga6040925d3ee4bbb2647f2a321aca5f4b" title="Terminate and free a topology context.">hwloc_topology_destroy</a>(topology);
|
||||
|
||||
<span class="keywordflow">return</span> 0;
|
||||
}
|
||||
</pre></div><p>hwloc provides a <code>pkg-config</code> executable to obtain relevant compiler and linker flags. For example, it can be used thusly to compile applications that utilize the hwloc library (assuming GNU Make):</p>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
CFLAGS += $(pkg-config --cflags hwloc)
|
||||
LDLIBS += $(pkg-config --libs hwloc)
|
||||
cc hwloc-hello.c $(CFLAGS) -o hwloc-hello $(LDLIBS)
|
||||
</pre></div><p>On a machine with 4GB of RAM and 2 processor sockets -- each socket of which has two processing cores -- the output from running <code>hwloc-hello</code> could be something like the following:</p>
|
||||
<div class="fragment"><pre class="fragment">
|
||||
shell$ ./hwloc-hello
|
||||
*** Objects at level 0
|
||||
Index 0: Machine(3938MB)
|
||||
*** Objects at level 1
|
||||
Index 0: Socket#0
|
||||
Index 1: Socket#1
|
||||
*** Objects at level 2
|
||||
Index 0: Core#0
|
||||
Index 1: Core#1
|
||||
Index 2: Core#3
|
||||
Index 3: Core#2
|
||||
*** Objects at level 3
|
||||
Index 0: PU#0
|
||||
Index 1: PU#1
|
||||
Index 2: PU#2
|
||||
Index 3: PU#3
|
||||
*** Printing overall tree
|
||||
Machine(3938MB)
|
||||
Socket#0
|
||||
Core#0
|
||||
PU#0
|
||||
Core#1
|
||||
PU#1
|
||||
Socket#1
|
||||
Core#3
|
||||
PU#2
|
||||
Core#2
|
||||
PU#3
|
||||
*** 2 socket(s)
|
||||
shell$
|
||||
</pre></div>
|
||||
</div><div class="section" id="bugs">
|
||||
<h2><a class="anchor" id="bugs">
|
||||
Questions and bugs</a></h2>
|
||||
<p>Questions should be sent to the devel mailing list (<a href="http://www.open-mpi.org/community/lists/hwloc.php">http://www.open-mpi.org/community/lists/hwloc.php</a>). Bug reports should be reported in the tracker (<a href="https://svn.open-mpi.org/trac/hwloc/">https://svn.open-mpi.org/trac/hwloc/</a>).</p>
|
||||
|
||||
</div><div class="section" id="credits">
|
||||
<h2><a class="anchor" id="history">
|
||||
History / credits</a></h2>
|
||||
<p>hwloc is the evolution and merger of the libtopology (<a href="http://runtime.bordeaux.inria.fr/libtopology/">http://runtime.bordeaux.inria.fr/libtopology/</a>) project and the Portable Linux Processor Affinity (PLPA) (<a href="http://www.open-mpi.org/projects/plpa/">http://www.open-mpi.org/projects/plpa/</a>) project. Because of functional and ideological overlap, these two code bases and ideas were merged and released under the name "hwloc" as an Open MPI sub-project.</p>
|
||||
<p>libtopology was initially developed by the INRIA Runtime Team-Project (<a href="http://runtime.bordeaux.inria.fr/">http://runtime.bordeaux.inria.fr/</a>) (headed by Raymond Namyst (<a href="http://dept-info.labri.fr/~namyst/">http://dept-info.labri.fr/~namyst/</a>). PLPA was initially developed by the Open MPI development team as a sub-project. Both are now deprecated in favor of hwloc, which is distributed as an Open MPI sub-project.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
57
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/modules.html
Обычный файл
@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Module Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Modules</h1>Here is a list of all modules:<ul>
|
||||
<li><a class="el" href="a00025.html">API version</a></li>
|
||||
<li><a class="el" href="a00026.html">Topology context</a></li>
|
||||
<li><a class="el" href="a00027.html">Topology Object Types</a></li>
|
||||
<li><a class="el" href="a00028.html">Topology Objects</a></li>
|
||||
<li><a class="el" href="a00029.html">Create and Destroy Topologies</a></li>
|
||||
<li><a class="el" href="a00030.html">Configure Topology Detection</a></li>
|
||||
<li><a class="el" href="a00031.html">Tinker with topologies.</a></li>
|
||||
<li><a class="el" href="a00032.html">Get some Topology Information</a></li>
|
||||
<li><a class="el" href="a00033.html">Retrieve Objects</a></li>
|
||||
<li><a class="el" href="a00034.html">Object/String Conversion</a></li>
|
||||
<li><a class="el" href="a00035.html">Binding</a></li>
|
||||
<li><a class="el" href="a00036.html">Object Type Helpers</a></li>
|
||||
<li><a class="el" href="a00037.html">Basic Traversal Helpers</a></li>
|
||||
<li><a class="el" href="a00038.html">Finding Objects Inside a CPU set</a></li>
|
||||
<li><a class="el" href="a00039.html">Finding a single Object covering at least CPU set</a></li>
|
||||
<li><a class="el" href="a00040.html">Finding a set of similar Objects covering at least a CPU set</a></li>
|
||||
<li><a class="el" href="a00041.html">Cache-specific Finding Helpers</a></li>
|
||||
<li><a class="el" href="a00042.html">Advanced Traversal Helpers</a></li>
|
||||
<li><a class="el" href="a00043.html">Binding Helpers</a></li>
|
||||
<li><a class="el" href="a00044.html">Cpuset Helpers</a></li>
|
||||
<li><a class="el" href="a00045.html">The Cpuset API</a></li>
|
||||
<li><a class="el" href="a00046.html">Helpers for manipulating glibc sched affinity</a></li>
|
||||
<li><a class="el" href="a00047.html">Linux-only helpers</a></li>
|
||||
<li><a class="el" href="a00048.html">Helpers for manipulating Linux libnuma unsigned long masks</a></li>
|
||||
<li><a class="el" href="a00049.html">Helpers for manipulating Linux libnuma bitmask</a></li>
|
||||
<li><a class="el" href="a00050.html">Helpers for manipulating Linux libnuma nodemask_t</a></li>
|
||||
<li><a class="el" href="a00051.html">OpenFabrics-Specific Functions</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
42
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/pages.html
Обычный файл
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<title>Hardware Locality (hwloc): Page Index</title>
|
||||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Generated by Doxygen 1.6.2 -->
|
||||
<div class="navigation" id="top">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||
<li><a href="files.html"><span>Files</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="contents">
|
||||
<h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
|
||||
<li><a class="el" href="a00001.html">Terms and Definitions</a>
|
||||
</li>
|
||||
<li><a class="el" href="a00002.html">Command-line tools</a>
|
||||
</li>
|
||||
<li><a class="el" href="a00003.html">Environment variables</a>
|
||||
</li>
|
||||
<li><a class="el" href="a00004.html">Thread safety</a>
|
||||
</li>
|
||||
<li><a class="el" href="a00005.html">Embedding hwloc in other software</a>
|
||||
</li>
|
||||
<li><a class="el" href="a00006.html">Switching from PLPA to hwloc</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
|
||||
</body>
|
||||
</html>
|
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_b.gif
Обычный файл
После Ширина: | Высота: | Размер: 35 B |
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_l.gif
Обычный файл
После Ширина: | Высота: | Размер: 706 B |
Двоичные данные
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tab_r.gif
Обычный файл
После Ширина: | Высота: | Размер: 2.5 KiB |
105
opal/mca/paffinity/hwloc/hwloc/doc/doxygen-doc/html/tabs.css
Обычный файл
@ -0,0 +1,105 @@
|
||||
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
|
||||
|
||||
DIV.tabs
|
||||
{
|
||||
float : left;
|
||||
width : 100%;
|
||||
background : url("tab_b.gif") repeat-x bottom;
|
||||
margin-bottom : 4px;
|
||||
}
|
||||
|
||||
DIV.tabs UL
|
||||
{
|
||||
margin : 0px;
|
||||
padding-left : 10px;
|
||||
list-style : none;
|
||||
}
|
||||
|
||||
DIV.tabs LI, DIV.tabs FORM
|
||||
{
|
||||
display : inline;
|
||||
margin : 0px;
|
||||
padding : 0px;
|
||||
}
|
||||
|
||||
DIV.tabs FORM
|
||||
{
|
||||
float : right;
|
||||
}
|
||||
|
||||
DIV.tabs A
|
||||
{
|
||||
float : left;
|
||||
background : url("tab_r.gif") no-repeat right top;
|
||||
border-bottom : 1px solid #84B0C7;
|
||||
font-size : 80%;
|
||||
font-weight : bold;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
DIV.tabs A:hover
|
||||
{
|
||||
background-position: 100% -150px;
|
||||
}
|
||||
|
||||
DIV.tabs A:link, DIV.tabs A:visited,
|
||||
DIV.tabs A:active, DIV.tabs A:hover
|
||||
{
|
||||
color: #1A419D;
|
||||
}
|
||||
|
||||
DIV.tabs SPAN
|
||||
{
|
||||
float : left;
|
||||
display : block;
|
||||
background : url("tab_l.gif") no-repeat left top;
|
||||
padding : 5px 9px;
|
||||
white-space : nowrap;
|
||||
}
|
||||
|
||||
DIV.tabs #MSearchBox
|
||||
{
|
||||
float : right;
|
||||
display : inline;
|
||||
font-size : 1em;
|
||||
}
|
||||
|
||||
DIV.tabs TD
|
||||
{
|
||||
font-size : 80%;
|
||||
font-weight : bold;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Commented Backslash Hack hides rule from IE5-Mac \*/
|
||||
DIV.tabs SPAN {float : none;}
|
||||
/* End IE5-Mac hack */
|
||||
|
||||
DIV.tabs A:hover SPAN
|
||||
{
|
||||
background-position: 0% -150px;
|
||||
}
|
||||
|
||||
DIV.tabs LI.current A
|
||||
{
|
||||
background-position: 100% -150px;
|
||||
border-width : 0px;
|
||||
}
|
||||
|
||||
DIV.tabs LI.current SPAN
|
||||
{
|
||||
background-position: 0% -150px;
|
||||
padding-bottom : 6px;
|
||||
}
|
||||
|
||||
DIV.navpath
|
||||
{
|
||||
background : none;
|
||||
border : none;
|
||||
border-bottom : 1px solid #84B0C7;
|
||||
text-align : center;
|
||||
margin : 2px;
|
||||
padding : 2px;
|
||||
}
|