src/cpu/cpu_core.cpp \
src/cpu/cpu_package.cpp \
src/cpu/abstract_cpu.cpp \
+ src/cpu/cpu_rapl_device.cpp \
+ src/cpu/dram_rapl_device.cpp \
+ src/cpu/rapl/rapl_interface.cpp \
src/measurement/measurement.cpp \
src/measurement/acpi.cpp \
src/measurement/extech.cpp \
- src/measurement/power_supply.cpp \
+ src/measurement/sysfs.cpp \
src/display.cpp \
src/report.cpp \
src/main.cpp \
src/devices/backlight.cpp \
src/devices/network.cpp \
src/devices/device.cpp \
+ src/devices/gpu_rapl_device.cpp \
src/devlist.cpp \
src/calibrate/calibrate.cpp \
src/lib.cpp \
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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.
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
esac; \
- test $$am__dry = yes; \
- }
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(top_srcdir)/configure ABOUT-NLS COPYING INSTALL TODO ar-lib \
- compile config.guess config.rpath config.sub depcomp \
- install-sh ltmain.sh missing
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/config.h.in ABOUT-NLS COPYING INSTALL README TODO \
+ ar-lib compile config.guess config.rpath config.sub depcomp \
+ install-sh missing ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
+am__v_at_1 =
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
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-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 \
+ tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
esac
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
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-rm -f libtool config.lt
# 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; \
+# 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.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
$(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: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
-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) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
$(am__remove_distdir)
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__remove_distdir)
-
-dist-lzma: distdir
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
- $(am__remove_distdir)
+ $(am__post_remove_distdir)
-dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__remove_distdir)
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_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
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.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod u+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
- $(am__remove_distdir)
+ $(am__post_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'
uninstall-am:
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
- 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-lzip 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-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
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-lzip 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-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-am uninstall \
+ uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
CONFIG_TRACEPOINTS
CONFIG_TRACING
CONFIG_EVENT_POWER_TRACING_DEPRECATED
+CONFIG_X86_MSR
ACPI_PROCFS_POWER
+CONFIG_DEBUG_FS
The patches in the patches/ sub-directory are required for PowerTOP to function
fully.
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
# 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.
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
-[m4_warning([this file was generated for autoconf 2.68.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24)
# ----------------------------------
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
[pkg_failed=yes])
else
pkg_failed=untried
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-_PKG_TEXT])
+_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
_PKG_TEXT
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
fi[]dnl
])# PKG_CHECK_MODULES
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
#
# 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 1
-
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.13'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.13.4], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.13.4])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
#
# 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 1
-
# AM_PROG_AR([ACT-IF-FAIL])
# -------------------------
# Try to determine the archiver interface, and trigger the ar-lib wrapper
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# 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 1
-
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
#
# 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 9
-
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
#
# 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 12
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], UPC, [depcc="$UPC" am_compiler_list=],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
#
# 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 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
+ # We used to match only the files named 'Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
+ # from the Makefile without running 'make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
+ test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
+# is enabled. FIXME. This creates each '.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
#
# 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 16
-
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# 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 1
-
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
#
# 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 2
-
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# 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
-
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
rm -f confinc confmf
])
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
#
# 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
-
# AM_PROG_CC_C_O
# --------------
# Like AC_PROG_CC_C_O, but changed for automake.
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
#
# 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
-
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
-
# AM_MISSING_HAS_RUN
# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
esac
fi
# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
else
am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
+ AC_MSG_WARN(['missing' script is too old or missing])
fi
])
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
#
# 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 1
-
# AM_PROG_MKDIR_P
# ---------------
-# Check for `mkdir -p'.
+# Check for 'mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl FIXME we are no longer going to remove this! adjust warning
+dnl FIXME message accordingly.
+AC_DIAGNOSE([obsolete],
+[$0: this macro is deprecated, and will soon be removed.
+You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
+and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.])
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# 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 5
-
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
# _AM_SET_OPTIONS(OPTIONS)
# ------------------------
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
#
# 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 5
-
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
esac
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
test "$[2]" = conftest.file
)
then
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
-# Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
#
# 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 2
-
# AM_SILENT_RULES([DEFAULT])
# --------------------------
# Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[ --enable-silent-rules less verbose build output (undo: `make V=1')
- --disable-silent-rules verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no) AM_DEFAULT_VERBOSITY=1;;
-*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
esac
dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
dnl do not support nested variable expansions.
dnl See automake bug#9928 and bug#10237.
am_make=${MAKE-make}
am_cv_make_support_nested_variables=no
fi])
if test $am_cv_make_support_nested_variables = yes; then
- dnl Using `$V' instead of `$(V)' breaks IRIX make.
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# 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 1
-
# AM_PROG_INSTALL_STRIP
# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
#
# 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 3
-
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
#
# 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 2
-
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
+#
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for powertop 2.3.
+# Generated by GNU Autoconf 2.69 for powertop 2.5.
#
# Report bugs to <powertop@lists.01.org>.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Identity of this package.
PACKAGE_NAME='powertop'
PACKAGE_TARNAME='powertop'
-PACKAGE_VERSION='2.3'
-PACKAGE_STRING='powertop 2.3'
+PACKAGE_VERSION='2.5'
+PACKAGE_STRING='powertop 2.5'
PACKAGE_BUGREPORT='powertop@lists.01.org'
PACKAGE_URL=''
MSGFMT
GETTEXT_MACRO_VERSION
USE_NLS
+GETTEXT_PACKAGE
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
-GETTEXT_PACKAGE
am__untar
am__tar
AMTAR
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures powertop 2.3 to adapt to many kinds of systems.
+\`configure' configures powertop 2.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of powertop 2.3:";;
+ short | recursive ) echo "Configuration of powertop 2.5:";;
esac
cat <<\_ACEOF
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: `make V=1')
- --disable-silent-rules verbose build output (undo: `make V=0')
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
--disable-nls do not use Native Language Support
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
--disable-rpath do not hardcode runtime library paths
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-powertop configure 2.3
-generated by GNU Autoconf 2.68
+powertop configure 2.5
+generated by GNU Autoconf 2.69
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
main ()
{
static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
{
static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
< ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
main ()
{
static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by powertop $as_me 2.3, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+It was created by powertop $as_me 2.5, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-am__api_version='1.11'
+am__api_version='1.13'
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
$as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
esac
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
-alias in your environment" "$LINENO" 5
- fi
-
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
test "$2" = conftest.file
)
then
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
esac
fi
# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
else
am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh}" != xset; then
esac
fi
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
$as_echo "$MKDIR_P" >&6; }
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
rmdir .tst 2>/dev/null
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
# Define the identity of the package.
PACKAGE='powertop'
- VERSION='2.3'
+ VERSION='2.5'
cat >>confdefs.h <<_ACEOF
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
enableval=$enable_silent_rules;
fi
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no) AM_DEFAULT_VERBOSITY=1;;
-*) AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
AM_BACKSLASH='\'
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
$as_echo_n "checking whether NLS is requested... " >&6; }
# Check whether --enable-nls was given.
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
for ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+ as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
for ac_prog in fgrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+ as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdbool.h>
-#ifndef bool
- "error: bool is not defined"
-#endif
-#ifndef false
- "error: false is not defined"
-#endif
-#if false
- "error: false is not 0"
-#endif
-#ifndef true
- "error: true is not defined"
-#endif
-#if true != 1
- "error: true is not 1"
-#endif
-#ifndef __bool_true_false_are_defined
- "error: __bool_true_false_are_defined is not defined"
-#endif
-
- struct s { _Bool s: 1; _Bool t; } s;
-
- char a[true == 1 ? 1 : -1];
- char b[false == 0 ? 1 : -1];
- char c[__bool_true_false_are_defined == 1 ? 1 : -1];
- char d[(bool) 0.5 == true ? 1 : -1];
- /* See body of main program for 'e'. */
- char f[(_Bool) 0.0 == false ? 1 : -1];
- char g[true];
- char h[sizeof (_Bool)];
- char i[sizeof s.t];
- enum { j = false, k = true, l = false * true, m = true * 256 };
- /* The following fails for
- HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
- _Bool n[m];
- char o[sizeof n == m * sizeof n[0] ? 1 : -1];
- char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
- /* Catch a bug in an HP-UX C compiler. See
- http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
- http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
- */
- _Bool q = true;
- _Bool *pq = &q;
+ #include <stdbool.h>
+ #ifndef bool
+ "error: bool is not defined"
+ #endif
+ #ifndef false
+ "error: false is not defined"
+ #endif
+ #if false
+ "error: false is not 0"
+ #endif
+ #ifndef true
+ "error: true is not defined"
+ #endif
+ #if true != 1
+ "error: true is not 1"
+ #endif
+ #ifndef __bool_true_false_are_defined
+ "error: __bool_true_false_are_defined is not defined"
+ #endif
+
+ struct s { _Bool s: 1; _Bool t; } s;
+
+ char a[true == 1 ? 1 : -1];
+ char b[false == 0 ? 1 : -1];
+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+ char d[(bool) 0.5 == true ? 1 : -1];
+ /* See body of main program for 'e'. */
+ char f[(_Bool) 0.0 == false ? 1 : -1];
+ char g[true];
+ char h[sizeof (_Bool)];
+ char i[sizeof s.t];
+ enum { j = false, k = true, l = false * true, m = true * 256 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _Bool n[m];
+ char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+ char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+ /* Catch a bug in an HP-UX C compiler. See
+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ */
+ _Bool q = true;
+ _Bool *pq = &q;
int
main ()
{
- bool e = &s;
- *pq |= q;
- *pq |= ! q;
- /* Refer to every declared value, to avoid compiler optimizations. */
- return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
- + !m + !n + !o + !p + !q + !pq);
+ bool e = &s;
+ *pq |= q;
+ *pq |= ! q;
+ /* Refer to every declared value, to avoid compiler optimizations. */
+ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+ + !m + !n + !o + !p + !q + !pq);
;
return 0;
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
$as_echo "$ac_cv_header_stdbool_h" >&6; }
-ac_fn_cxx_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+ ac_fn_cxx_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
if test "x$ac_cv_type__Bool" = xyes; then :
cat >>confdefs.h <<_ACEOF
fi
+
if test $ac_cv_header_stdbool_h = yes; then
$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCIUTILS_CFLAGS=`$PKG_CONFIG --cflags "libpci" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCIUTILS_LIBS=`$PKG_CONFIG --libs "libpci" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- PCIUTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpci" 2>&1`
+ PCIUTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpci" 2>&1`
else
- PCIUTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpci" 2>&1`
+ PCIUTILS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpci" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$PCIUTILS_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-3.0 >= 3.0 libnl-genl-3.0 >= 3.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-2.0 >= 2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-2.0 >= 2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-2.0 >= 2.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-2.0 >= 2.0" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-2.0 >= 2.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-2.0 >= 2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-1" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-1" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-1" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-1" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-2.0 >= 2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-2.0 >= 2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-2.0 >= 2.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-2.0 >= 2.0" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-2.0 >= 2.0" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-2.0 >= 2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-1" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-1" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_CFLAGS=`$PKG_CONFIG --cflags "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBNL_LIBS=`$PKG_CONFIG --libs "libnl-1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnl-1" 2>&1`
else
- LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-1" 2>&1`
+ LIBNL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnl-1" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBNL_PKG_ERRORS" >&5
LTLIBOBJS=$ac_ltlibobjs
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
if test -n "$EXEEXT"; then
am__EXEEXT_TRUE=
am__EXEEXT_FALSE='#'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by powertop $as_me 2.3, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+This file was extended by powertop $as_me 2.5, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-powertop config.status 2.3
-configured by $0, generated by GNU Autoconf 2.68,
+powertop config.status 2.5
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
esac
done ;;
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
+ # We used to match only the files named 'Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
+ # from the Makefile without running 'make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
+ test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`$as_dirname -- "$file" ||
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
-AC_INIT([powertop], [2.3], [powertop@lists.01.org])
+AC_INIT([powertop], [2.5], [powertop@lists.01.org])
AM_INIT_AUTOMAKE([-Wall foreign ])
AC_LANG([C++])
AC_CONFIG_FILES([Makefile src/Makefile traceevent/Makefile po/Makefile.in doc/Makefile])
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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.
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
+am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
am__installdirs = "$(DESTDIR)$(man8dir)"
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically \`make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- distclean distclean-generic distclean-libtool distdir 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-man8 \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- uninstall uninstall-am uninstall-man uninstall-man8
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir 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-man8 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags-am uninstall uninstall-am uninstall-man \
+ uninstall-man8
# Tell versions [3.59,3.63) of GNU make to not export all variables.
.TP
\fB\-\-version
print version information and exit.
+.SH COMMANDS
+In interactive mode, the following key bindings are available:
+.TP
+\fBTab
+Show next tab
+.TP
+\fBBackTab
+Show previous tab
+.TP
+\fBRight Arrow
+Scroll to the right
+.TP
+\fBLeft Arrow
+Scroll to the left
+.TP
+\fBUp Arrow, PageUp
+Scroll up or select previous item
+.TP
+\fBDown Arrow, PageDown
+Scroll down or select next item
+.TP
+\fBSpace, Return
+Activate current item
+.TP
+\fBs
+Set refresh timeout
+.TP
+\fBr
+Refresh window
+.TP
+\fBq, Ctrl-C, Escape
+Exit powertop
.SH BUGS
Send bug reports to <powertop@lists.01.org>
.SH SEE ALSO
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# capimans, 2012.
-# Il_Tifossi <lluita_i_no_dorm@hotmail.com>, 2011.
-# Juanma Hernández <juanmah@gmail.com>, 2012.
+# capimans, 2012
+# Il_Tifossi <lluita_i_no_dorm@hotmail.com>, 2011
+# Juanma Hernández <juanmah@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: ceferron <chris.e.ferron@linux.intel.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/PowerTOP/"
"language/ca/)\n"
"Language: ca\n"
msgid "Exit"
msgstr "Surt"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "Paquet CPU %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "paquet cpu"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "l'event cpu_idle no ha retornat cap estat?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 sondejant"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "No s'ha trobat msr reg"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 actiu"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Autèntic"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Teclat / Ratolí"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "Controlador SATA"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel connectat a port USB"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s necessita que el kernel suporti el subsistema 'perf'\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "així com suport per a punts de seguiment en el kernel:\n"
msgid " Usage Device name\n"
msgstr " Ús Nom del dispositiu\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Còdec d'àudio %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Còdec d'àudio %s: %s"
msgid "PCI Device: %s"
msgstr "Dispositiu PCI: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "Dispositiu USB: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "Dispositiu USB: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "Connexió SATA: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "Disc SATA: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Dispositiu de ràdio: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Interfície de xarxa: %s(%s)"
msgid "Bluetooth device interface status"
msgstr "Estat de la interfície del dispositiu Bluetooth"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Bo"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Malament"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Desconegut"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr "<ESC> Sortir | <ENTRAR> canvia optimitzable | <r> Actualitza finestra"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Estat Wake-on-lan per a dispositiu %s"
msgid "Runtime PM for PCI Device %s"
msgstr "Temps d'execució PM per dispositiu PCI %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Autosuspès per a dispositiu USB desconegut %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Autosuspès per a dipositiu USB %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "No es pot crear el fitxer temporal\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Calibrant: ús de CPU en %i discussions\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Calibrant: consum d'energia de l'encesa de CPU\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Calibrant dispositius USB\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... dispositiu %s\n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Calibrant dispositius de ràdio\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Calibrant llum de fons\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Calibrant repòs\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Calibrant: ús de disc\n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Iniciant calibrat d'estimació d'energia PowerTOP\n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Finalitzant calibració d'estimació d'energia de PowerTOP\n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Paràmetres després del calibrat:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr ""
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr ""
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "sortint...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr ""
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Otto Bříza <otto.briza@gmail.com>, 2012.
+# Alois Nešpor <info@aloisnespor.info>, 2013
+# Otto Bříza <otto.briza@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Alois Nešpor <info@aloisnespor.info>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/"
"PowerTOP/language/cs_CZ/)\n"
"Language: cs_CZ\n"
#: src/parameters/persistent.cpp:123
#, c-format
msgid "Loaded %i prior measurements\n"
-msgstr "Nahráno %i měření\n"
+msgstr ""
+"Nahráno %i měření\n"
+"\n"
#: src/display.cpp:70
msgid "Overview"
msgid "Exit"
msgstr "Konec"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
-msgstr ""
+msgstr " Jádro"
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "cpu svazek %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "cpu svazek"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr "Balíček %i"
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr "Jádro %i"
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "cpu_idle událost nevrátila stav?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
+"power nebo cpu_frequecny událost nevrátila žádný stav?\n"
+"\n"
#: src/cpu/cpu_linux.cpp:79
msgid "C0 polling"
msgstr "C0 sdílení"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
-msgstr ""
+msgstr " CPU %i"
#: src/cpu/cpu_package.cpp:47
#, c-format
msgid "Package"
-msgstr ""
+msgstr "Balíček"
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
-msgstr ""
+msgstr " Balíček"
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "msr reg nenalezen"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr "pread cpu%d 0x%llx : "
+msgid "read_msr cpu%d 0x%llx : "
+msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 aktivní"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Aktuální"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Klávesnice / Myš"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA ovladač"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel vestavěný v USB hubu"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "Souhrn"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr "probuzení/sekund"
msgid "VFS ops/sec and"
msgstr "VFS ops/sec a"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr "využití CPU"
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr "Energie zbývá"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "Využití"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr "Událost/i"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr "Kategorie"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr "Popis"
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr "Přehled Software Power uživatelů"
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr "Probuzení/s"
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr "GPU ops/s"
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr "Disk IO/s"
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr "GFX Probuzení/s"
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr "Souhrn spotřeby energie"
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr "GPU ops/sekund"
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr "VFS ops/sekund"
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr "GFX probuzení/sek a"
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s potřebuje jádro k podpoře 'perf' subsystému\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "stejně jako podpora pro sledované body v jádru:\n"
msgid " Usage Device name\n"
msgstr " Použití Jméno zařízení\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Audio kodek %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Audio kodek %s: %s"
msgid "PCI Device: %s"
msgstr "PCI Zařízení: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "USB zařízení: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "USB zařízení: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "SATA link: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "SATA disk: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Radio zařízení: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Síťové rozhraní: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Status rozhraní zařízení Bluetooth"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Dobré"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Špatné"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Neznámé"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr " <ESC> Konec | <Enter> Přepnout změnitelné | <r> Obnovit okno"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Wake-on-lan status zařízení %s"
msgid "Runtime PM for PCI Device %s"
msgstr "Trvání PM pro PCI zařízení %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Automatické uspání pro neznámé USB zařízení %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Automatické uspání pro USB zařízení %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr "Zapnout správu napájení SATA linku pro %s"
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "Nelze vytvořit dočasný soubor\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Kalibrace: CPU použito na %i vláken\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Kalibrace: spotřeba energie na probuzení CPU\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Kalibrace USB zařízení\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... zařízení %s \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Kalibrace radio zařízení\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Kalibrace podsvícení\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Kalibrace nečinnosti\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Kalibrace: užití disku \n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Začínání kalibrace odhadování energie PowerTOP\n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Ukončování kalibrace odhadování energie PowerTOP\n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parametry po kalibraci:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr "PowerTOP verze"
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Nastavit čas obnovení"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr "Použití: powertop [VOLBY]"
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr "spustit v \"debug\" módu"
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr "vypíše informace o verzi"
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr "spustit powertop v kalibračním režimu"
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr "[=devnode]"
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr "využití Extech Power Analyzéru pro měření"
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr "[=JMENOSOUBORU]"
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr "vytvoření html hlášení"
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr "vytvoření csv hlášení"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr "[=sekundy]"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr "vytvoření hlášení pro \"x\" sekund"
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr "[=iterace] počet spuštění každého testu"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
-msgstr ""
+msgstr "[=zatížení]"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
-msgstr ""
+msgstr "soubor ke spuštění pro zatížení"
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr "vypíše tuto nápovědu"
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr "Pro více nápovědy přejděte prosím do README"
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
-msgstr ""
+msgstr "Neznámý problém při spuštění zatížení!\n"
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr "PowerTOPu došla paměť. Power TOP je přerušen."
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "Příprava k měření\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr "Změřeno %d výsledků za dobu trvání %d vteřin každý.\n"
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
-msgstr ""
+msgstr "Měření zatížení %s.\n"
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "ukončuji...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "Selhalo připojení debugfs!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
-msgstr ""
+msgstr "Selhal tichý mód!\n"
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr "Ukončuji PowerTOP"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Ettore Atalan <atalanttore@googlemail.com>, 2012.
-# Fabian Affolter <fab@fedoraproject.org>, 2011.
-# <ulf.hofemeier@intel.com>, 2012.
+# Ettore Atalan <atalanttore@googlemail.com>, 2012-2013
+# Fabian Affolter <fab@fedoraproject.org>, 2011
+# uhofemei <ulf.hofemeier@intel.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 19:48+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/"
"PowerTOP/language/de_DE/)\n"
msgid "Exit"
msgstr "Beenden"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
-msgstr ""
+msgstr "Kern"
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "CPU-Paket %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "CPU-Paket"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr "Paket %i"
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr "Kern %i"
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "cpu_idle-Ereignis gab keinen Status zurück?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
-msgstr ""
+msgstr "power- oder cpu_frequency-Ereignis gab kein Status zurück?\n"
#: src/cpu/cpu_linux.cpp:79
msgid "C0 polling"
msgstr "C0 sammeln"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
-msgstr ""
+msgstr "CPU %i"
#: src/cpu/cpu_package.cpp:47
#, c-format
msgid "Package"
-msgstr ""
+msgstr "Paket"
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
-msgstr ""
+msgstr "Paket"
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "msr reg nicht gefunden"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr "pread CPU%d 0x%llx :"
+msgid "read_msr cpu%d 0x%llx : "
+msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 aktiv"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Aktuell"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2-Tastfeld / Tastatur / Maus"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA-Controller"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel integrierter USB Hub"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "Zusammenfassung"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr "Aufwachvorgänge/Sekunde"
msgid "VFS ops/sec and"
msgstr "VFS-Operationen/Sekunde und"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr "CPU-Nutzung"
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr "Gesch. Leistung"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "Auslastung"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr "Ereignisse/s"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr "Kategorie"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr "Beschreibung"
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr "Übersicht der Software-Leistungsverbraucher"
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr "Aufwachvorgänge/s"
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr "GPU-Operationen/s"
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr "Platten-Ein-/Ausgabe/s"
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr "GFX-Aufwachvorgänge/s"
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr "Zusammenfassung der Leistungsaufnahme"
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr "GPU-Operationen/Sekunde"
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr "VFS-Operationen/Sek"
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr "GFX-Aufwachen/Sek und"
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+"Zu viele offene Dateien. Bitte erhöhen Sie die Begrenzung von offenen "
+"Dateideskriptoren.\n"
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr ""
"PowerTOP %s benötigt einen Kernel der das 'perf'-Subsystem unterstützt\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "sowie Unterstützung für Ablaufverfolgungspunkte im Kernel:\n"
msgid " Usage Device name\n"
msgstr " Auslastung Gerätename\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Audiocodec %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Audiocodec %s: %s"
msgid "PCI Device: %s"
msgstr "PCI-Gerät: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "USB-Gerät: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "USB-Gerät: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "SATA-Verbindung: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "SATA-Festplatte: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Funk-Gerät:%s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Netzwerkschnittstelle: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Bluetooth-Gerät Schnittstellenstatus"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Gut"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Schlecht"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Unbekannt"
" <ESC> Beenden | <Enter> Abstimmbare Option umschalten | <r> Fenster "
"aktualisieren"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Wake-On-LAN-Status für Gerät %s"
msgid "Runtime PM for PCI Device %s"
msgstr "Laufzeit-Energieverwaltung für PCI-Gerät %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "AutoSuspend für unbekanntes USB-Gerät %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "AutoSuspend für USB-Gerät %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr "Energieverwaltung für SATA-Verbindung %s aktivieren"
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "Temporäre Datei konnte nicht erzeugt werden\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Kalibriere CPU-Auslastung bei %i Thread\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Kalibriere CPU-Aufwach-Leistungsaufnahme\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Kalibriere USB-Geräte\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... Gerät %s\n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Kalibriere Funkvorrichtungen\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Kalibriere Hintergrundbeleuchtung\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Kalibriere Leerlauf\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Kalibriere Festplattennutzung\n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Starte Kalibrierung der PowerTOP-Leistungsschätzung\n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Schließe Kalibrierung der PowerTOP-Leistungsschätzung ab\n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parameter nach der Kalibrierung:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr "PowerTOP-Version"
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Aktualisierungs-Zeitüberschreitung festlegen"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr "Verwendung: powertop [OPTIONEN]"
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr "in \"Debug\"-Modus ausführen"
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr "Versionsinformation ausgeben"
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr "führt Powertop im Kalibrierungsmodus aus"
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr "Legt für alle einstellbaren Optionen die jeweils GUTE Einstellung fest"
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr "[=Entwicklungsmodus]"
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr "verwendet einen Extech Leistungsanalysator für Messungen"
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr "[=DATEINAME]"
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr "Einen HTML-Bericht generieren"
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr "Einen CSV-Bericht generieren"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr "[=Sekunden]"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr "Einen Bericht für 'x'-Sekunden generieren"
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr "[=Wiederholungen] Anzahl der Wiederholungen für jeden Testlauf"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr "[=Auslastung]"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr "Für Auslastung auszuführende Datei"
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr "stderr-Ausgabe unterdrücken"
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr "Dieses Hilfemenü ausgeben"
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr "Für weitere Hilfe ziehen Sie bitte die README zu Rate"
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
-msgstr ""
+msgstr "Unbekanntes Ergebnis beim Ausführen der Arbeitsbelastung\n"
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
"PowerTOP hat keinen Speicherplatz mehr im Hauptspeicher. PowerTOP wird "
"abgebrochen"
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "Das Vornehmen von Messungen wird vorbereitet\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
"%d Messung(en) mit einer Dauer von je %d Sekunde(n) wird/werden "
"vorgenommen.\n"
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr "Auslastung %s wird gemessen.\n"
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "Verlassen ...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "Das Einhängen von debugfs ist gescheitert!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr "PowerTOP wird verlassen"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Margie Foster <margie@linux.intel.com>, 2012.
-# Patrick McCarty <patrick.mccarty@linux.intel.com>, 2013.
+# Margie Foster <margie@linux.intel.com>, 2012
+# Patrick McCarty <patrick.mccarty@linux.intel.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Patrick McCarty <patrick.mccarty@linux.intel.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/"
"PowerTOP/language/en_GB/)\n"
"Language: en_GB\n"
msgid "Exit"
msgstr ""
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "CPU package %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "CPU package"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr ""
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 polling"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr ""
-
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 active"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Actual"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Keyboard / Mouse"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA controller"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel built in USB hub"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "Usage"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "as well as support for trace points in the kernel:\n"
msgid " Usage Device name\n"
msgstr ""
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr ""
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr ""
msgid "PCI Device: %s"
msgstr ""
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr ""
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr ""
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr ""
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr ""
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr ""
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr ""
msgid "Bluetooth device interface status"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr ""
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr ""
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr ""
msgid "Runtime PM for PCI Device %s"
msgstr ""
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr ""
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr ""
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr ""
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr ""
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr ""
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr ""
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr ""
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr ""
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Dimitris Glezos <glezos@indifex.com>, 2011.
+# Dimitris Glezos <glezos@indifex.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Patrick McCarty <patrick.mccarty@linux.intel.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: English (United States) (http://www.transifex.com/projects/p/"
"PowerTOP/language/en_US/)\n"
"Language: en_US\n"
msgid "Exit"
msgstr ""
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "cpu package %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "cpu package"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr ""
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 polling"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr ""
-
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 active"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Actual"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Keyboard / Mouse"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA controller"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel built in USB hub"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "as well as support for trace points in the kernel:\n"
msgid " Usage Device name\n"
msgstr " Usage Device name\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Audio codec %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Audio codec %s: %s"
msgid "PCI Device: %s"
msgstr "PCI Device: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "USB device: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "USB device: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "SATA link: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "SATA disk: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Radio device: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Network interface: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Bluetooth device interface status"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Good"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Bad"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Unknown"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr ""
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Wake-on-lan status for device %s"
msgid "Runtime PM for PCI Device %s"
msgstr "Runtime PM for PCI Device %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Autosuspend for unknown USB device %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Autosuspend for USB device %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "Cannot create temp file\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Calibrating: CPU usage on %i threads\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Calibrating: CPU wakeup power consumption\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Calibrating USB devices\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... device %s \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Calibrating radio devices\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Calibrating backlight\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Calibrating idle\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Calibrating: disk usage \n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Starting PowerTOP power estimate calibration \n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Finishing PowerTOP power estimate calibration \n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parameters after calibration:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr ""
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr ""
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "exiting...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr ""
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Andres <andreshko9@hotmail.com>, 2011.
-# Patrick McCarty <patrick.mccarty@linux.intel.com>, 2013.
+# Andres <andreshko9@hotmail.com>, 2011
+# Patrick McCarty <patrick.mccarty@linux.intel.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Patrick McCarty <patrick.mccarty@linux.intel.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/projects/p/PowerTOP/"
"language/es_ES/)\n"
"Language: es_ES\n"
msgid "Exit"
msgstr "Salida"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "package cpu %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "paquete cpu"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr " CPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr ""
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 sondeando"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr ""
-
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 activo"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Actual"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Teclado / Ratón"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "Controlador SATA"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel construido en concentrador USB"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "Resumen"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s necesita que el kernel soporte el subsistema 'perf'\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "así como soporte para puntos de seguimiento en el kernel:\n"
msgid " Usage Device name\n"
msgstr " Uso Nombre del dispositivo\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Codec de audio %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Codec de audio %s: %s"
msgid "PCI Device: %s"
msgstr "Dispositivo PCI: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "Dispositivo USB: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "Dispositivo USB: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "Enlace SATA: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "Disco SATA: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Dispositivo de radio: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Interfaz de red: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Estado de la interfaz de dispositivo Bluetooth"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Bueno"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Malo"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Desconocido"
msgstr ""
" Salida de <ESC>| <Enter>Palanca ajustable | Actualización de <r>ventana"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Estado Wake-on-lan para dispositivo %s"
msgid "Runtime PM for PCI Device %s"
msgstr "Tiempo de ejecución PM para dispositivo PCI %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Autosuspender para dispositivo USB desconocido %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Autosuspender para dispositivo USB %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "No puede crear archivo temp\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Calibrando: uso de CPU en %i discusiones\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Calibrando: consumo de energía del despertado de la CPU\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Calibrando dispositivos USB\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... dispositivo %s \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Calibrando dispositivos de radio\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Calibrando luz trasera\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Calibrando parado\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Calibrando: uso de disco \n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Iniciando calibración de estimado de energía PowerTOP \n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Finalizando calibración de estimación de energía de PowerTOP \n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parámetros tras calibración:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Actualización Set time out"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr ""
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "saliendo...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr ""
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <chris.e.ferron@linux.intel.com>, 2012.
-# Márton Németh <nemeth.marton@gmail.com>, 2012.
-# Márton Németh <nm127@freemail.hu>, 2012.
-# Zoltan Hoppár <hopparz@gmail.com>, 2012.
+# ceferron <chris.e.ferron@linux.intel.com>, 2012
+# Márton Németh <nemeth.marton@gmail.com>, 2012
+# Márton Németh <nm127@freemail.hu>, 2012
+# Zoltan Hoppár <hopparz@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Zoltan Hoppár <hopparz@gmail.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/"
"PowerTOP/language/hu_HU/)\n"
"Language: hu_HU\n"
msgid "Exit"
msgstr "Kilépés"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "CPU tok %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "CPU tok"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr "Csomag %i"
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr "Mag %i"
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr "CPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "a CPU üresjáratesemény nem adott vissza állapotot?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 ciklikus lekérdezés"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "Az msr regiszterek nem találhatók"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr "pread cpu%d 0x%llx: "
+msgid "read_msr cpu%d 0x%llx : "
+msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 aktív"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Aktuális"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 tapipad / billentyűzet / egér"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA vezérlő"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Beépített Intel USB hub"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "Összefoglalás"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr "felébredés/másodperc"
msgid "VFS ops/sec and"
msgstr "VFS művelet/másodperc"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr "CPU használtság"
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr "Becsült telj."
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "Használat"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr "Esemény/s"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr "Kategória"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr "Leírás"
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr "Szofver teljesítményfogyasztók áttekintése"
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr "Felébredés/s"
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr "GPU művelet/s"
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr "Lemez BK/s"
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr "GFX felébredés/s"
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr "Teljesítményfelvétel összefoglaló"
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr "GPU művelet/másodperc"
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr "VFS művelet/mp"
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr "GFX felébredés/mp és"
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr ""
"A PowerTOP %s verziójának szüksége van arra, hogy a rendszermag támogassa a "
"„perf” alrendszert\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "valamint a nyomkövetési pontokra is a rendszermagban:\n"
msgid " Usage Device name\n"
msgstr " Használat Eszköz név\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Hangkodek %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Hangkodek %s: %s"
msgid "PCI Device: %s"
msgstr "PCI eszköz: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "USB eszköz: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "USB eszköz: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "SATA kapcsolat: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "SATA lemez: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Rádiós eszköz: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Hálózati csatoló: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Bluetooth eszközcsatoló állapota"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Jó"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Rossz"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Ismeretlen"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr " <ESC> Kilépés | <Enter> Hangolás átkapcsolása | <r> Ablak frissítése"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Felébredés hálózati eseményre (wake-on-lan) állapot a(z) %s eszközön"
msgid "Runtime PM for PCI Device %s"
msgstr "Futásidejű energiagazdálkodás a(z) %s PCI eszközön"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Automatikus felfüggesztés a(z) %s (%s:%s) ismeretlen USB eszközön"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Automatikus felfüggesztés a(z) %s [%s] USB eszközön"
msgid "Enable SATA link power Managmenet for %s"
msgstr "SATA link energiaszabályozás engedélyezése %s számára"
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "Nem tudok létrehozni ideiglenes fájlt\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Kalibrálás: CPU használtság %i szálon\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Kalibrálás: CPU felébredési teljesítményfelvétel\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "USB eszközök kalibrálása\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... %s eszköz \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Rádiós eszközök kalibrálása\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Háttérvilágítás kalibrálása\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Üresjárat kalibrálása\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Kalibrálás: lemezhasználat \n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "PowerTop teljesítménybecslés kalibrálás indítása \n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "PowerTop teljesítménybecslés-kalibrálás befejezése \n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Paraméterek a kalibrálás után:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr "PowerTOP verzió"
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Frissítés időkorlát leteltének beállítása"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr "Használat: powertop [OPCIÓK]"
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr "futtatás hibakeresési módban"
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr "verzió-információ kiíratása"
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr "a powertop futtatása kalibrációs módban"
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr "[=eszköznév]"
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr "Extech Power Analyzer eszköz használata a mérésekhez"
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr "[=FÁJLNÉV]"
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr "HTML jelentés készítése"
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr "CSV jelentés készítése"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr "[=másodperc]"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr "ennyi másodpercig készüljön a jelentés"
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr "[=iterációk] ennyiszer fusson le minden egyes teszt"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr "[=terhelés]"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr "végrehajtandó fájl a terheléshez"
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr "szabványos hibakimenet elnyomása"
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr "e súgó kiíratása"
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr "További információk a README fájlban találhatók"
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr "Nincs elég memória a PowerTOP-nak. A PowerTOP futása megszakad"
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "Előkészülés a mérések elvégzéséhez\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr "%d darab, egyenként %d másodperces mérés készítése.\n"
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr "Terhelés mérése %s.\n"
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "kilépés...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "Nem tudtam csatolni a debugfs-t!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr "A PowerTOP elhagyása"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Andika Triwidada <andika@gmail.com>, 2012-2013.
+# Andika Triwidada <andika@gmail.com>, 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-03-15 11:29+0000\n"
-"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Indonesian (Indonesia) (http://www.transifex.com/projects/p/"
"PowerTOP/language/id_ID/)\n"
"Language: id_ID\n"
msgid "Exit"
msgstr "Keluar"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr " Core"
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "paket %i cpu"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "paket cpu"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr "Paket %i"
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr "Core %i"
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr "CPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "kejadian cpu_idle tak mengembalikan keadaan?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr "kejadian power atau cpu_frequency tak mengembalikan keadaan?\n"
msgstr "C0 polling"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr " CPU %i"
msgid "Package"
msgstr "Paket"
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr "Paket"
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "msg reg tak ditemukan"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr "pread cpu%d 0x%llx : "
+msgid "read_msr cpu%d 0x%llx : "
+msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 aktif"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Aktual"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 Touchpad / Keyboard / Mouse"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "Pengendali SATA"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Hub USB built in Intel"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "Ringkasan"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr "bangun/detik"
msgid "VFS ops/sec and"
msgstr "op VFS/detik"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr "pakai CPU"
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr "Est. daya"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "Pakai"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr "Kejadian/d"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr "Kategori"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr "Deskripsi"
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr "Ringkasan Pemakai Daya Perangkat Lunak"
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr "Bangun/d"
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr "Op GPU/d"
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr "IO Disk/d"
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr "GFX Bangun/d"
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr "Ringkasan Konsumsi Daya"
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr "Op GPU/detik"
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr "Op VFS/det"
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr "GFX bangu/det dan"
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTop %s memerlukan kernel yang mendukung subsistem 'perf'\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "dan juga dukungan trace point dalam kernel:\n"
msgid " Usage Device name\n"
msgstr " Pakai Nama perangkat\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "Codec audio %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "Codec audio %s: %s"
msgid "PCI Device: %s"
msgstr "Perangkat PCI: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "Perangkat USB: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "Perangkat USB: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "Link SATA: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "Disk SATA: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "Perangkat radio: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "Antarmuka jaringa: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "Status antarmuka perangkat Bluetooth"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Baik"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Buruk"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Tak diketahui"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr " <ESC> Keluar | <Enter> Jungkit tunable | <r> Segarkan jendela"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "Status wake-on-lan bagi perangkat %s"
msgid "Runtime PM for PCI Device %s"
msgstr "PM runtime bagi Perangkat PCI %s"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "Suspensi otomatis bagi perangkat USB tak dikenal %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "Suspensi otomatis bagi perangkat USB %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr "Fungsikan Manajemen daya link SATA bagi %s"
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "Tak bisa membuat berkas temp\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "Kalibrasi: Pemakaian CPU pada %i thread \n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "Kalibrasi: Konsumsi daya CPU bangun \n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "Kalibrasi perangkat USB \n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... perangkat %s \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "Kalibrasi perangkat radio \n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "Kalibrasi cahaya latar \n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "Kalibrasi menganggur \n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "Kalibrasi: pemakaian disk \n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "Memulai kalibrasi estimasi daya PowerTop \n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "Mengakhiri kalibrasi estimasi daya PowerTop \n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parameter setelah kalibrasi:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr "PowerTop versi"
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Tata tenggang waktu penyegaran"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr "Cara pakai: powertop [OPSI]"
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr "jalankan dalam mode \"debug\""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr "cetak informasi versi"
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr "jalankan powertop dalam mode kalibrasi"
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr "[=devnode]"
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr "pakai Extech Power Analyzer untuk pengukuran"
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr "[=NAMAFILE]"
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr "buat laporan html"
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr "buat laporan csv"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr "[=detik]"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr "buat laporan untuk 'x' detik"
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr "[=iterasi] berapa kali menjalankan tiap tes"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr "[=beban kerja]"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr "berkas yang akan dieksekusi untuk beban kerja"
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr "redam keluaran stderr"
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr "cetik menu bantuan ini"
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr "Untuk bantuan lebih lanjut lihatlah README"
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr "Masalah tak dikenal saat menjalankan beban!\n"
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr "PowerTop kehabisan memori. PowerTop digugurkan."
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "Bersiap melakukan pengkukuran\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr "Melakukan %d pengukuran selama masing-masing %d detik.\n"
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr "Mengukur beban kerja %s.\n"
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "keluar...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "Gagal mengait debugfs!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr "Mode hening gagal!\n"
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr "Meninggalkan PowerTop"
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# <auke-jan.h.kok@intel.com>, 2012.
-# <jan.ceuleers@computer.org>, 2012.
+# auke <auke-jan.h.kok@intel.com>, 2012
+# JanCeuleers <jan.ceuleers@computer.org>, 2012
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: ceferron <chris.e.ferron@linux.intel.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
"PowerTOP/language/nl_NL/)\n"
"Language: nl_NL\n"
msgid "Exit"
msgstr ""
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "cpu package %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "cpu package"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr ""
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr "C0 polling"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr ""
-
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 active"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "Huidig"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr ""
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr ""
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr ""
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr ""
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr ""
msgid " Usage Device name\n"
msgstr ""
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr ""
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr ""
msgid "PCI Device: %s"
msgstr ""
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr ""
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr ""
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr ""
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr ""
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr ""
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr ""
msgid "Bluetooth device interface status"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "Goed"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "Slecht"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "Onbekend"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr ""
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr ""
msgid "Runtime PM for PCI Device %s"
msgstr ""
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr ""
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr ""
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "Parameters na calibratie:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "Stel verversingstijd in"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "Voorbereiding om metingen te nemen\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP"
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "afsluiten...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "Kan debugfs niet aankoppelen!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: powertop 2.3\n"
+"Project-Id-Version: powertop 2.5\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Exit"
msgstr ""
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
msgstr ""
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr ""
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr ""
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr ""
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr ""
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr ""
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr ""
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
msgstr ""
msgstr ""
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
msgstr ""
msgid "Package"
msgstr ""
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
msgstr ""
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
+msgid "read_msr cpu%d 0x%llx : "
msgstr ""
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr ""
-
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr ""
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr ""
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr ""
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr ""
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr ""
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr ""
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr ""
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr ""
msgid "VFS ops/sec and"
msgstr ""
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr ""
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr ""
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr ""
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr ""
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr ""
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr ""
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr ""
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr ""
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr ""
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr ""
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr ""
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr ""
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr ""
msgid " Usage Device name\n"
msgstr ""
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr ""
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr ""
msgid "PCI Device: %s"
msgstr ""
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr ""
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr ""
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr ""
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr ""
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr ""
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr ""
msgid "Bluetooth device interface status"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr ""
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr ""
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr ""
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr ""
msgid "Runtime PM for PCI Device %s"
msgstr ""
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr ""
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr ""
msgid "Enable SATA link power Managmenet for %s"
msgstr ""
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr ""
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr ""
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr ""
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr ""
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr ""
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr ""
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr ""
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr ""
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr ""
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr ""
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr ""
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr ""
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr ""
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr ""
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr ""
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr ""
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr ""
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr ""
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr ""
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
msgstr ""
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr ""
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr ""
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr ""
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr ""
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr ""
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr ""
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr ""
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
msgstr ""
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr ""
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
-# Yuan CHAO <yuanchao@gmail.com>, 2012.
+# Yuan CHAO <yuanchao@gmail.com>, 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: PowerTOP\n"
"Report-Msgid-Bugs-To: \"powertop@lists.01.org\"\n"
-"POT-Creation-Date: 2013-03-18 11:06-0700\n"
-"PO-Revision-Date: 2013-02-26 19:08+0000\n"
-"Last-Translator: Yuan CHAO <yuanchao@gmail.com>\n"
+"POT-Creation-Date: 2013-11-04 10:45-0800\n"
+"PO-Revision-Date: 2013-11-05 08:40+0000\n"
+"Last-Translator: Margie Foster <margie@linux.intel.com>\n"
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/"
"PowerTOP/language/zh_TW/)\n"
"Language: zh_TW\n"
#: src/parameters/persistent.cpp:123
#, c-format
msgid "Loaded %i prior measurements\n"
-msgstr "載入 %i 先前量測數據\n"
+msgstr "已載入 %i 筆先前量測數據\n"
#: src/display.cpp:70
msgid "Overview"
msgid "Exit"
msgstr "離開"
-#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:201
+#: src/cpu/cpu_core.cpp:37 src/cpu/cpu_core.cpp:93 src/cpu/intel_cpus.cpp:245
#, c-format
msgid " Core"
-msgstr ""
+msgstr " 核心"
-#: src/cpu/cpu.cpp:94
+#: src/cpu/cpu.cpp:80
#, c-format
msgid "cpu package %i"
msgstr "cpu 代號 %i"
-#: src/cpu/cpu.cpp:95
+#: src/cpu/cpu.cpp:81
msgid "cpu package"
msgstr "cpu 代號"
-#: src/cpu/cpu.cpp:446 src/cpu/cpu.cpp:573
+#: src/cpu/cpu.cpp:84
+#, c-format
+msgid "cpu rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:85
+msgid "cpu rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:89
+#, c-format
+msgid "dram rapl package %i"
+msgstr ""
+
+#: src/cpu/cpu.cpp:90
+msgid "dram rapl package"
+msgstr ""
+
+#: src/cpu/cpu.cpp:459 src/cpu/cpu.cpp:586
#, c-format
msgid "Package %i"
msgstr "代號 %i"
-#: src/cpu/cpu.cpp:478 src/cpu/cpu.cpp:593
+#: src/cpu/cpu.cpp:491 src/cpu/cpu.cpp:606
#, c-format
msgid "Core %i"
msgstr "核心 %i"
-#: src/cpu/cpu.cpp:480
+#: src/cpu/cpu.cpp:493
#, c-format
msgid "GPU %i"
msgstr "GPU %i"
-#: src/cpu/cpu.cpp:502 src/cpu/cpu.cpp:614
+#: src/cpu/cpu.cpp:515 src/cpu/cpu.cpp:627
#, c-format
msgid "CPU %i"
msgstr "CPU %i"
-#: src/cpu/cpu.cpp:796
+#: src/cpu/cpu.cpp:807
#, c-format
msgid "cpu_idle event returned no state?\n"
msgstr "cpu_idle 事件沒有傳回狀態?\n"
-#: src/cpu/cpu.cpp:811
+#: src/cpu/cpu.cpp:822
#, c-format
msgid "power or cpu_frequency event returned no state?\n"
-msgstr ""
+msgstr "power 或 cpu_frequecny 事件沒有傳回狀態?\n"
#: src/cpu/cpu_linux.cpp:79
msgid "C0 polling"
msgstr "C0 輪巡"
#: src/cpu/cpu_linux.cpp:240 src/cpu/cpu_linux.cpp:339
-#: src/cpu/intel_cpus.cpp:423
+#: src/cpu/intel_cpus.cpp:521
#, c-format
msgid " CPU %i"
-msgstr ""
+msgstr " CPU %i"
#: src/cpu/cpu_package.cpp:47
#, c-format
msgid "Package"
-msgstr ""
+msgstr "代號"
-#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:226
+#: src/cpu/cpu_package.cpp:105 src/cpu/intel_cpus.cpp:297
#, c-format
msgid " Package"
-msgstr ""
+msgstr "代號"
-#: src/cpu/intel_cpus.cpp:61
+#: src/cpu/intel_cpus.cpp:81
#, c-format
-msgid "msr reg not found"
-msgstr "找不到 msr 暫存器"
-
-#: src/cpu/intel_cpus.cpp:71
-#, c-format
-msgid "pread cpu%d 0x%llx : "
-msgstr "pread cpu%d 0x%llx : "
+msgid "read_msr cpu%d 0x%llx : "
+msgstr ""
-#: src/cpu/intel_cpus.cpp:347
+#: src/cpu/intel_cpus.cpp:445
msgid "C0 active"
msgstr "C0 運作中"
-#: src/cpu/intel_cpus.cpp:406
+#: src/cpu/intel_cpus.cpp:504
#, c-format
msgid "Actual"
msgstr "實際"
-#: src/lib.cpp:266
+#: src/lib.cpp:286
#, c-format
msgid "%7sW"
msgstr "%7sW"
-#: src/lib.cpp:269
+#: src/lib.cpp:289
#, c-format
msgid " 0 mW"
msgstr " 0 mW"
-#: src/lib.cpp:390
+#: src/lib.cpp:408
msgid "PS/2 Touchpad / Keyboard / Mouse"
msgstr "PS/2 觸控板 / 鍵盤 / 滑鼠"
-#: src/lib.cpp:391
+#: src/lib.cpp:409
msgid "SATA controller"
msgstr "SATA 控制器"
-#: src/lib.cpp:392
+#: src/lib.cpp:410
msgid "Intel built in USB hub"
msgstr "Intel 內建 USB 集線器"
+#: src/lib.cpp:482 src/lib.cpp:514
+#, c-format
+msgid ""
+"Model-specific registers (MSR)\t\t\t not found (try enabling "
+"CONFIG_X86_MSR).\n"
+msgstr ""
+
#: src/process/do_process.cpp:817
#, c-format
msgid ""
msgid "Summary"
msgstr "總覽"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1011
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1013
msgid "wakeups/second"
msgstr "喚醒 / 秒"
msgid "VFS ops/sec and"
msgstr "VFS 指令 / 秒 以及"
-#: src/process/do_process.cpp:841 src/process/do_process.cpp:1015
+#: src/process/do_process.cpp:841 src/process/do_process.cpp:1017
msgid "CPU use"
msgstr "CPU 用量"
-#: src/process/do_process.cpp:845 src/process/do_process.cpp:902
-#: src/process/do_process.cpp:1021
+#: src/process/do_process.cpp:845 src/process/do_process.cpp:904
+#: src/process/do_process.cpp:1023
msgid "Power est."
msgstr "電源預計"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:906 src/process/do_process.cpp:1025
+#: src/process/do_process.cpp:908 src/process/do_process.cpp:1027
msgid "Usage"
msgstr "用法"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:1027
+#: src/process/do_process.cpp:1029
msgid "Events/s"
msgstr "事件 / 秒"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:916 src/process/do_process.cpp:1029
+#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
msgid "Category"
msgstr "分類"
#: src/process/do_process.cpp:845 src/process/do_process.cpp:847
-#: src/process/do_process.cpp:918 src/process/do_process.cpp:1031
+#: src/process/do_process.cpp:920 src/process/do_process.cpp:1033
msgid "Description"
msgstr "描述"
-#: src/process/do_process.cpp:897
+#: src/process/do_process.cpp:899
msgid "Overview of Software Power Consumers"
msgstr "軟體耗電量大戶總覽"
-#: src/process/do_process.cpp:908
+#: src/process/do_process.cpp:910
msgid "Wakeups/s"
msgstr "喚醒 / 秒"
-#: src/process/do_process.cpp:910
+#: src/process/do_process.cpp:912
msgid "GPU ops/s"
msgstr "GPU 指令 / 秒"
-#: src/process/do_process.cpp:912
+#: src/process/do_process.cpp:914
msgid "Disk IO/s"
msgstr "磁碟 IO / 秒"
-#: src/process/do_process.cpp:914
+#: src/process/do_process.cpp:916
msgid "GFX Wakeups/s"
msgstr "GFX 喚醒 / 秒"
-#: src/process/do_process.cpp:1008
+#: src/process/do_process.cpp:1010
msgid "Power Consumption Summary"
msgstr "電源使用量總覽"
-#: src/process/do_process.cpp:1012
+#: src/process/do_process.cpp:1014
msgid "GPU ops/second"
msgstr "GPU 指令 / 秒"
-#: src/process/do_process.cpp:1013
+#: src/process/do_process.cpp:1015
msgid "VFS ops/sec"
msgstr "VFS 指令 / 秒"
-#: src/process/do_process.cpp:1014
+#: src/process/do_process.cpp:1016
msgid "GFX wakes/sec and"
msgstr "GFX 喚醒 / 秒 以及"
-#: src/perf/perf.cpp:111
+#: src/perf/perf.cpp:115
+#, c-format
+msgid ""
+"Too many open files, please increase the limit of open file descriptors.\n"
+msgstr ""
+
+#: src/perf/perf.cpp:117
#, c-format
msgid "PowerTOP %s needs the kernel to support the 'perf' subsystem\n"
msgstr "PowerTOP %s 需要 Linux 核心 'perf' 子系統支援\n"
-#: src/perf/perf.cpp:112
+#: src/perf/perf.cpp:118
#, c-format
msgid "as well as support for trace points in the kernel:\n"
msgstr "以及 Linux 核心中斷點 (trace point) 支援:\n"
msgid " Usage Device name\n"
msgstr " 使用量 設備名稱\n"
-#: src/devices/alsa.cpp:79
+#: src/devices/alsa.cpp:77
#, c-format
msgid "Audio codec %s: %s (%s)"
msgstr "音效設備 %s: %s (%s)"
-#: src/devices/alsa.cpp:81 src/devices/alsa.cpp:83
+#: src/devices/alsa.cpp:79 src/devices/alsa.cpp:81
#, c-format
msgid "Audio codec %s: %s"
msgstr "音效設備 %s: %s"
msgid "PCI Device: %s"
msgstr "PCI 設備: %s"
-#: src/devices/usb.cpp:51 src/devices/usb.cpp:94 src/devices/usb.cpp:96
+#: src/devices/usb.cpp:49 src/devices/usb.cpp:92 src/devices/usb.cpp:94
#, c-format
msgid "USB device: %s"
msgstr "USB 設備: %s"
-#: src/devices/usb.cpp:92
+#: src/devices/usb.cpp:90
#, c-format
msgid "USB device: %s (%s)"
msgstr "USB 設備: %s (%s)"
-#: src/devices/ahci.cpp:140
+#: src/devices/ahci.cpp:142
#, c-format
msgid "SATA link: %s"
msgstr "SATA 連線: %s"
-#: src/devices/ahci.cpp:142
+#: src/devices/ahci.cpp:144
#, c-format
msgid "SATA disk: %s"
msgstr "SATA 磁碟: %s"
-#: src/devices/rfkill.cpp:65 src/devices/rfkill.cpp:69
+#: src/devices/rfkill.cpp:64 src/devices/rfkill.cpp:68
#, c-format
msgid "Radio device: %s"
msgstr "無線電設備: %s"
-#: src/devices/network.cpp:177
+#: src/devices/network.cpp:176
#, c-format
msgid "Network interface: %s (%s)"
msgstr "網路介面卡: %s (%s)"
msgid "Bluetooth device interface status"
msgstr "藍牙設備介面狀態"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:48 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Good"
msgstr "好"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:49 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Bad"
msgstr "壞"
-#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:53
+#: src/tuning/cpufreq.cpp:44 src/tuning/ethernet.cpp:50
#: src/tuning/tunable.cpp:50 src/tuning/wifi.cpp:45 src/tuning/runtime.cpp:41
-#: src/tuning/tuningusb.cpp:40 src/tuning/tuningsysfs.cpp:44
+#: src/tuning/tuningusb.cpp:37 src/tuning/tuningsysfs.cpp:44
msgid "Unknown"
msgstr "未知"
msgid " <ESC> Exit | <Enter> Toggle tunable | <r> Window refresh"
msgstr " <ESC> 離開 | <Enter> 切換選項開關 | <r> 更新視窗內容"
-#: src/tuning/ethernet.cpp:57
+#: src/tuning/ethernet.cpp:54
#, c-format
msgid "Wake-on-lan status for device %s"
msgstr "網路喚醒啟用狀態於設備 %s"
msgid "Runtime PM for PCI Device %s"
msgstr "PCI 設備 %s 電源管理"
-#: src/tuning/tuningusb.cpp:55
+#: src/tuning/tuningusb.cpp:52
#, c-format
msgid "Autosuspend for unknown USB device %s (%s:%s)"
msgstr "自動閒置於未知的 USB 設備 %s (%s:%s)"
-#: src/tuning/tuningusb.cpp:72 src/tuning/tuningusb.cpp:74
-#: src/tuning/tuningusb.cpp:76
+#: src/tuning/tuningusb.cpp:69 src/tuning/tuningusb.cpp:71
+#: src/tuning/tuningusb.cpp:73
#, c-format
msgid "Autosuspend for USB device %s [%s]"
msgstr "自動閒置於 USB 設備 %s [%s]"
msgid "Enable SATA link power Managmenet for %s"
msgstr "啟用 %s 的 SATA 連線電源管理"
-#: src/calibrate/calibrate.cpp:291
+#: src/calibrate/calibrate.cpp:236
#, c-format
msgid "Cannot create temp file\n"
msgstr "無法建立暫存檔案\n"
-#: src/calibrate/calibrate.cpp:310
+#: src/calibrate/calibrate.cpp:255
#, c-format
msgid "Calibrating: CPU usage on %i threads\n"
msgstr "校正: CPU 使用量於 %i 執行緒\n"
-#: src/calibrate/calibrate.cpp:325
+#: src/calibrate/calibrate.cpp:270
#, c-format
msgid "Calibrating: CPU wakeup power consumption\n"
msgstr "校正: CPU 喚醒電源使用量\n"
-#: src/calibrate/calibrate.cpp:342
+#: src/calibrate/calibrate.cpp:287
#, c-format
msgid "Calibrating USB devices\n"
msgstr "校正 USB 設備\n"
-#: src/calibrate/calibrate.cpp:344 src/calibrate/calibrate.cpp:361
-#: src/calibrate/calibrate.cpp:369 src/calibrate/calibrate.cpp:386
+#: src/calibrate/calibrate.cpp:289 src/calibrate/calibrate.cpp:306
+#: src/calibrate/calibrate.cpp:314 src/calibrate/calibrate.cpp:331
#, c-format
msgid ".... device %s \n"
msgstr ".... 裝置 %s \n"
-#: src/calibrate/calibrate.cpp:359
+#: src/calibrate/calibrate.cpp:304
#, c-format
msgid "Calibrating radio devices\n"
msgstr "校正無線電設備\n"
-#: src/calibrate/calibrate.cpp:383
+#: src/calibrate/calibrate.cpp:328
#, c-format
msgid "Calibrating backlight\n"
msgstr "校正螢幕背光\n"
-#: src/calibrate/calibrate.cpp:407 src/calibrate/calibrate.cpp:415
+#: src/calibrate/calibrate.cpp:352 src/calibrate/calibrate.cpp:360
#, c-format
msgid "Calibrating idle\n"
msgstr "校正閒置\n"
-#: src/calibrate/calibrate.cpp:426
+#: src/calibrate/calibrate.cpp:371
#, c-format
msgid "Calibrating: disk usage \n"
msgstr "校正: 磁碟使用\n"
-#: src/calibrate/calibrate.cpp:451
+#: src/calibrate/calibrate.cpp:396
msgid "Starting PowerTOP power estimate calibration \n"
msgstr "開始 PowerTOP 電源估計校正 \n"
-#: src/calibrate/calibrate.cpp:474
+#: src/calibrate/calibrate.cpp:419
msgid "Finishing PowerTOP power estimate calibration \n"
msgstr "完成 PowerTOP 電源估計校正 \n"
-#: src/calibrate/calibrate.cpp:478
+#: src/calibrate/calibrate.cpp:423
#, c-format
msgid "Parameters after calibration:\n"
msgstr "校正取得參數:\n"
-#: src/main.cpp:86
+#: src/main.cpp:91
#, c-format
msgid "PowerTOP version"
msgstr "PowerTop 版本"
-#: src/main.cpp:92
+#: src/main.cpp:97
msgid "Set refresh time out"
msgstr "設定更新週期"
-#: src/main.cpp:105
+#: src/main.cpp:110
msgid "Usage: powertop [OPTIONS]"
msgstr "用法: powertop [選項]"
-#: src/main.cpp:106
+#: src/main.cpp:111
msgid "run in \"debug\" mode"
msgstr "以 \"debug\" 模式執行"
-#: src/main.cpp:107
+#: src/main.cpp:112
msgid "print version information"
msgstr "顯示版本資訊"
-#: src/main.cpp:108
+#: src/main.cpp:113
msgid "runs powertop in calibration mode"
msgstr "以校正模式執行 powertop"
-#: src/main.cpp:109
+#: src/main.cpp:114
+msgid "Sets all tunable options to their GOOD setting"
+msgstr ""
+
+#: src/main.cpp:115
msgid "[=devnode]"
msgstr "[= 設備節點]"
-#: src/main.cpp:109
+#: src/main.cpp:115
msgid "uses an Extech Power Analyzer for measurements"
msgstr "使用 Extech 電源分析儀進行量測"
-#: src/main.cpp:110 src/main.cpp:111
+#: src/main.cpp:116 src/main.cpp:117
msgid "[=FILENAME]"
msgstr "[= 檔案名稱]"
-#: src/main.cpp:110
+#: src/main.cpp:116
msgid "generate a html report"
msgstr "產生 html 報告"
-#: src/main.cpp:111
+#: src/main.cpp:117
msgid "generate a csv report"
msgstr "產生 csv 報告"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "[=seconds]"
msgstr "[= 秒]"
-#: src/main.cpp:112
+#: src/main.cpp:118
msgid "generate a report for 'x' seconds"
msgstr "產生蒐集資料 'x' 秒鐘的報告"
-#: src/main.cpp:113
+#: src/main.cpp:119
msgid "[=iterations] number of times to run each test"
msgstr "[=iterations] 每次檢驗進行量測次數"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "[=workload]"
msgstr "[=工作負載]"
-#: src/main.cpp:114
+#: src/main.cpp:120
msgid "file to execute for workload"
msgstr "工作負載要執行的檔案"
-#: src/main.cpp:115
+#: src/main.cpp:121
msgid "suppress stderr output"
msgstr "關閉標準錯誤輸出"
-#: src/main.cpp:116
+#: src/main.cpp:122
msgid "print this help menu"
msgstr "顯示此輔助說明選單"
-#: src/main.cpp:118
+#: src/main.cpp:124
msgid "For more help please refer to the README"
msgstr "更多的輔助說明請參閱 README"
-#: src/main.cpp:195
+#: src/main.cpp:201
#, c-format
msgid "Unknown issue running workload!\n"
-msgstr ""
+msgstr "執行工作負載發生未知問題!\n"
-#: src/main.cpp:236
+#: src/main.cpp:242
msgid "PowerTOP is out of memory. PowerTOP is Aborting"
msgstr "PowerTOP 已耗盡記憶體,退出中。"
-#: src/main.cpp:244
+#: src/main.cpp:250
#, c-format
msgid "Preparing to take measurements\n"
msgstr "量測準備中\n"
-#: src/main.cpp:249
+#: src/main.cpp:255
#, c-format
msgid "Taking %d measurement(s) for a duration of %d second(s) each.\n"
msgstr "測量 %d 次於每 %d 秒。\n"
-#: src/main.cpp:251
+#: src/main.cpp:257
#, c-format
msgid "Measuring workload %s.\n"
msgstr "量測工作負載 %s 。\n"
-#: src/main.cpp:274
+#: src/main.cpp:280
#, c-format
msgid "PowerTOP "
msgstr "PowerTOP "
-#: src/main.cpp:275 src/main.cpp:303
+#: src/main.cpp:281 src/main.cpp:328
#, c-format
msgid "exiting...\n"
msgstr "離開中...\n"
-#: src/main.cpp:302
+#: src/main.cpp:327
#, c-format
msgid "Failed to mount debugfs!\n"
msgstr "debugfs 掛載失敗!\n"
-#: src/main.cpp:394
+#: src/main.cpp:422
#, c-format
msgid "Quite mode failed!\n"
-msgstr ""
+msgstr "進入安靜模式失敗!\n"
-#: src/main.cpp:440
+#: src/main.cpp:472
msgid "Leaving PowerTOP"
msgstr "離開 PowerTOP"
tuning/tunable.cpp tuning/nl80211.h tuning/iw.c tuning/wifi.cpp tuning/tuningsysfs.h \
tuning/tuningsysfs.cpp tuning/wifi.h tuning/runtime.cpp tuning/tunable.h \
tuning/runtime.h tuning/tuningusb.h tuning/iw.h calibrate/calibrate.cpp \
- calibrate/calibrate.h measurement/measurement.cpp measurement/power_supply.cpp \
+ calibrate/calibrate.h measurement/measurement.cpp \
measurement/measurement.h measurement/acpi.cpp measurement/sysfs.h measurement/sysfs.cpp \
- measurement/acpi.h measurement/extech.cpp measurement/power_supply.h measurement/extech.h \
+ measurement/acpi.h measurement/extech.cpp measurement/extech.h \
report/report-maker.cpp report/report-maker.h report/report-formatter.h \
report/report-formatter-base.cpp report/report-formatter-base.h \
report/report-formatter-csv.cpp report/report-formatter-csv.h \
report/report-formatter-html.cpp report/report-formatter-html.h \
- main.cpp css.h powertop.css cpu/intel_gpu.cpp
+ main.cpp css.h powertop.css cpu/intel_gpu.cpp \
+ cpu/rapl/rapl_interface.cpp cpu/cpu_rapl_device.cpp cpu/rapl/rapl_interface.h\
+ cpu/dram_rapl_device.cpp devices/gpu_rapl_device.cpp cpu/cpu_rapl_device.h \
+ cpu/dram_rapl_device.h devices/gpu_rapl_device.h
powertop_CXXFLAGS = -fno-omit-frame-pointer -fstack-protector -Wall -Wshadow -Wformat $(NCURSES_CFLAGS) $(PCIUTILS_CFLAGS) $(LIBNL_CFLAGS) $(GLIB2_CFLAGS)
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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.
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
esac; \
- test $$am__dry = yes; \
- }
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
host_triplet = @host@
sbin_PROGRAMS = powertop$(EXEEXT)
subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
tuning/powertop-runtime.$(OBJEXT) \
calibrate/powertop-calibrate.$(OBJEXT) \
measurement/powertop-measurement.$(OBJEXT) \
- measurement/powertop-power_supply.$(OBJEXT) \
measurement/powertop-acpi.$(OBJEXT) \
measurement/powertop-sysfs.$(OBJEXT) \
measurement/powertop-extech.$(OBJEXT) \
report/powertop-report-formatter-base.$(OBJEXT) \
report/powertop-report-formatter-csv.$(OBJEXT) \
report/powertop-report-formatter-html.$(OBJEXT) \
- powertop-main.$(OBJEXT) cpu/powertop-intel_gpu.$(OBJEXT)
+ powertop-main.$(OBJEXT) cpu/powertop-intel_gpu.$(OBJEXT) \
+ cpu/rapl/powertop-rapl_interface.$(OBJEXT) \
+ cpu/powertop-cpu_rapl_device.$(OBJEXT) \
+ cpu/powertop-dram_rapl_device.$(OBJEXT) \
+ devices/powertop-gpu_rapl_device.$(OBJEXT)
nodist_powertop_OBJECTS =
powertop_OBJECTS = $(am_powertop_OBJECTS) $(nodist_powertop_OBJECTS)
powertop_DEPENDENCIES = ../traceevent/libtraceevnet.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+am__v_lt_1 =
powertop_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(powertop_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_0 = @echo " CXX " $@;
+am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo " CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
+am__v_CXXLD_0 = @echo " CXXLD " $@;
+am__v_CXXLD_1 =
SOURCES = $(powertop_SOURCES) $(nodist_powertop_SOURCES)
DIST_SOURCES = $(powertop_SOURCES)
am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
tuning/tunable.cpp tuning/nl80211.h tuning/iw.c tuning/wifi.cpp tuning/tuningsysfs.h \
tuning/tuningsysfs.cpp tuning/wifi.h tuning/runtime.cpp tuning/tunable.h \
tuning/runtime.h tuning/tuningusb.h tuning/iw.h calibrate/calibrate.cpp \
- calibrate/calibrate.h measurement/measurement.cpp measurement/power_supply.cpp \
+ calibrate/calibrate.h measurement/measurement.cpp \
measurement/measurement.h measurement/acpi.cpp measurement/sysfs.h measurement/sysfs.cpp \
- measurement/acpi.h measurement/extech.cpp measurement/power_supply.h measurement/extech.h \
+ measurement/acpi.h measurement/extech.cpp measurement/extech.h \
report/report-maker.cpp report/report-maker.h report/report-formatter.h \
report/report-formatter-base.cpp report/report-formatter-base.h \
report/report-formatter-csv.cpp report/report-formatter-csv.h \
report/report-formatter-html.cpp report/report-formatter-html.h \
- main.cpp css.h powertop.css cpu/intel_gpu.cpp
+ main.cpp css.h powertop.css cpu/intel_gpu.cpp \
+ cpu/rapl/rapl_interface.cpp cpu/cpu_rapl_device.cpp cpu/rapl/rapl_interface.h\
+ cpu/dram_rapl_device.cpp devices/gpu_rapl_device.cpp cpu/cpu_rapl_device.h \
+ cpu/dram_rapl_device.h devices/gpu_rapl_device.h
powertop_CXXFLAGS = -fno-omit-frame-pointer -fstack-protector -Wall -Wshadow -Wformat $(NCURSES_CFLAGS) $(PCIUTILS_CFLAGS) $(LIBNL_CFLAGS) $(GLIB2_CFLAGS)
powertop_CPPFLAGS = -D_FORTIFY_SOURCE=2 $(NCURSES_CFLAGS) $(PCIUTILS_CFLAGS) $(LIBNL_CFLAGS) $(GLIB2_CFLAGS) $(LIBZ_CFLAGS) -DLOCALEDIR=\"$(localedir)\"
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
measurement/powertop-measurement.$(OBJEXT): \
measurement/$(am__dirstamp) \
measurement/$(DEPDIR)/$(am__dirstamp)
-measurement/powertop-power_supply.$(OBJEXT): \
- measurement/$(am__dirstamp) \
- measurement/$(DEPDIR)/$(am__dirstamp)
measurement/powertop-acpi.$(OBJEXT): measurement/$(am__dirstamp) \
measurement/$(DEPDIR)/$(am__dirstamp)
measurement/powertop-sysfs.$(OBJEXT): measurement/$(am__dirstamp) \
report/$(am__dirstamp) report/$(DEPDIR)/$(am__dirstamp)
cpu/powertop-intel_gpu.$(OBJEXT): cpu/$(am__dirstamp) \
cpu/$(DEPDIR)/$(am__dirstamp)
+cpu/rapl/$(am__dirstamp):
+ @$(MKDIR_P) cpu/rapl
+ @: > cpu/rapl/$(am__dirstamp)
+cpu/rapl/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) cpu/rapl/$(DEPDIR)
+ @: > cpu/rapl/$(DEPDIR)/$(am__dirstamp)
+cpu/rapl/powertop-rapl_interface.$(OBJEXT): cpu/rapl/$(am__dirstamp) \
+ cpu/rapl/$(DEPDIR)/$(am__dirstamp)
+cpu/powertop-cpu_rapl_device.$(OBJEXT): cpu/$(am__dirstamp) \
+ cpu/$(DEPDIR)/$(am__dirstamp)
+cpu/powertop-dram_rapl_device.$(OBJEXT): cpu/$(am__dirstamp) \
+ cpu/$(DEPDIR)/$(am__dirstamp)
+devices/powertop-gpu_rapl_device.$(OBJEXT): devices/$(am__dirstamp) \
+ devices/$(DEPDIR)/$(am__dirstamp)
+
powertop$(EXEEXT): $(powertop_OBJECTS) $(powertop_DEPENDENCIES) $(EXTRA_powertop_DEPENDENCIES)
@rm -f powertop$(EXEEXT)
$(AM_V_CXXLD)$(powertop_LINK) $(powertop_OBJECTS) $(powertop_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
- -rm -f calibrate/powertop-calibrate.$(OBJEXT)
- -rm -f cpu/powertop-abstract_cpu.$(OBJEXT)
- -rm -f cpu/powertop-cpu.$(OBJEXT)
- -rm -f cpu/powertop-cpu_core.$(OBJEXT)
- -rm -f cpu/powertop-cpu_linux.$(OBJEXT)
- -rm -f cpu/powertop-cpu_package.$(OBJEXT)
- -rm -f cpu/powertop-cpudevice.$(OBJEXT)
- -rm -f cpu/powertop-intel_cpus.$(OBJEXT)
- -rm -f cpu/powertop-intel_gpu.$(OBJEXT)
- -rm -f devices/powertop-ahci.$(OBJEXT)
- -rm -f devices/powertop-alsa.$(OBJEXT)
- -rm -f devices/powertop-backlight.$(OBJEXT)
- -rm -f devices/powertop-device.$(OBJEXT)
- -rm -f devices/powertop-i915-gpu.$(OBJEXT)
- -rm -f devices/powertop-network.$(OBJEXT)
- -rm -f devices/powertop-rfkill.$(OBJEXT)
- -rm -f devices/powertop-runtime_pm.$(OBJEXT)
- -rm -f devices/powertop-thinkpad-fan.$(OBJEXT)
- -rm -f devices/powertop-thinkpad-light.$(OBJEXT)
- -rm -f devices/powertop-usb.$(OBJEXT)
- -rm -f measurement/powertop-acpi.$(OBJEXT)
- -rm -f measurement/powertop-extech.$(OBJEXT)
- -rm -f measurement/powertop-measurement.$(OBJEXT)
- -rm -f measurement/powertop-power_supply.$(OBJEXT)
- -rm -f measurement/powertop-sysfs.$(OBJEXT)
- -rm -f parameters/powertop-learn.$(OBJEXT)
- -rm -f parameters/powertop-parameters.$(OBJEXT)
- -rm -f parameters/powertop-persistent.$(OBJEXT)
- -rm -f perf/powertop-perf.$(OBJEXT)
- -rm -f perf/powertop-perf_bundle.$(OBJEXT)
- -rm -f process/powertop-do_process.$(OBJEXT)
- -rm -f process/powertop-interrupt.$(OBJEXT)
- -rm -f process/powertop-powerconsumer.$(OBJEXT)
- -rm -f process/powertop-process.$(OBJEXT)
- -rm -f process/powertop-processdevice.$(OBJEXT)
- -rm -f process/powertop-timer.$(OBJEXT)
- -rm -f process/powertop-work.$(OBJEXT)
- -rm -f report/powertop-report-formatter-base.$(OBJEXT)
- -rm -f report/powertop-report-formatter-csv.$(OBJEXT)
- -rm -f report/powertop-report-formatter-html.$(OBJEXT)
- -rm -f report/powertop-report-maker.$(OBJEXT)
- -rm -f report/powertop-report.$(OBJEXT)
- -rm -f tuning/powertop-bluetooth.$(OBJEXT)
- -rm -f tuning/powertop-cpufreq.$(OBJEXT)
- -rm -f tuning/powertop-ethernet.$(OBJEXT)
- -rm -f tuning/powertop-iw.$(OBJEXT)
- -rm -f tuning/powertop-runtime.$(OBJEXT)
- -rm -f tuning/powertop-tunable.$(OBJEXT)
- -rm -f tuning/powertop-tuning.$(OBJEXT)
- -rm -f tuning/powertop-tuningsysfs.$(OBJEXT)
- -rm -f tuning/powertop-tuningusb.$(OBJEXT)
- -rm -f tuning/powertop-wifi.$(OBJEXT)
+ -rm -f calibrate/*.$(OBJEXT)
+ -rm -f cpu/*.$(OBJEXT)
+ -rm -f cpu/rapl/*.$(OBJEXT)
+ -rm -f devices/*.$(OBJEXT)
+ -rm -f measurement/*.$(OBJEXT)
+ -rm -f parameters/*.$(OBJEXT)
+ -rm -f perf/*.$(OBJEXT)
+ -rm -f process/*.$(OBJEXT)
+ -rm -f report/*.$(OBJEXT)
+ -rm -f tuning/*.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-cpu_core.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-cpu_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-cpu_package.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-cpu_rapl_device.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-cpudevice.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-dram_rapl_device.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-intel_cpus.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@cpu/$(DEPDIR)/powertop-intel_gpu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-ahci.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-alsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-backlight.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-device.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-gpu_rapl_device.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-i915-gpu.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-network.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@devices/$(DEPDIR)/powertop-rfkill.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@measurement/$(DEPDIR)/powertop-acpi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@measurement/$(DEPDIR)/powertop-extech.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@measurement/$(DEPDIR)/powertop-measurement.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@measurement/$(DEPDIR)/powertop-power_supply.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@measurement/$(DEPDIR)/powertop-sysfs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@parameters/$(DEPDIR)/powertop-learn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@parameters/$(DEPDIR)/powertop-parameters.Po@am__quote@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o measurement/powertop-measurement.obj `if test -f 'measurement/measurement.cpp'; then $(CYGPATH_W) 'measurement/measurement.cpp'; else $(CYGPATH_W) '$(srcdir)/measurement/measurement.cpp'; fi`
-measurement/powertop-power_supply.o: measurement/power_supply.cpp
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT measurement/powertop-power_supply.o -MD -MP -MF measurement/$(DEPDIR)/powertop-power_supply.Tpo -c -o measurement/powertop-power_supply.o `test -f 'measurement/power_supply.cpp' || echo '$(srcdir)/'`measurement/power_supply.cpp
-@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) measurement/$(DEPDIR)/powertop-power_supply.Tpo measurement/$(DEPDIR)/powertop-power_supply.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='measurement/power_supply.cpp' object='measurement/powertop-power_supply.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o measurement/powertop-power_supply.o `test -f 'measurement/power_supply.cpp' || echo '$(srcdir)/'`measurement/power_supply.cpp
-
-measurement/powertop-power_supply.obj: measurement/power_supply.cpp
-@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT measurement/powertop-power_supply.obj -MD -MP -MF measurement/$(DEPDIR)/powertop-power_supply.Tpo -c -o measurement/powertop-power_supply.obj `if test -f 'measurement/power_supply.cpp'; then $(CYGPATH_W) 'measurement/power_supply.cpp'; else $(CYGPATH_W) '$(srcdir)/measurement/power_supply.cpp'; fi`
-@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) measurement/$(DEPDIR)/powertop-power_supply.Tpo measurement/$(DEPDIR)/powertop-power_supply.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='measurement/power_supply.cpp' object='measurement/powertop-power_supply.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o measurement/powertop-power_supply.obj `if test -f 'measurement/power_supply.cpp'; then $(CYGPATH_W) 'measurement/power_supply.cpp'; else $(CYGPATH_W) '$(srcdir)/measurement/power_supply.cpp'; fi`
-
measurement/powertop-acpi.o: measurement/acpi.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT measurement/powertop-acpi.o -MD -MP -MF measurement/$(DEPDIR)/powertop-acpi.Tpo -c -o measurement/powertop-acpi.o `test -f 'measurement/acpi.cpp' || echo '$(srcdir)/'`measurement/acpi.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) measurement/$(DEPDIR)/powertop-acpi.Tpo measurement/$(DEPDIR)/powertop-acpi.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/powertop-intel_gpu.obj `if test -f 'cpu/intel_gpu.cpp'; then $(CYGPATH_W) 'cpu/intel_gpu.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/intel_gpu.cpp'; fi`
+cpu/rapl/powertop-rapl_interface.o: cpu/rapl/rapl_interface.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/rapl/powertop-rapl_interface.o -MD -MP -MF cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Tpo -c -o cpu/rapl/powertop-rapl_interface.o `test -f 'cpu/rapl/rapl_interface.cpp' || echo '$(srcdir)/'`cpu/rapl/rapl_interface.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Tpo cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/rapl/rapl_interface.cpp' object='cpu/rapl/powertop-rapl_interface.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/rapl/powertop-rapl_interface.o `test -f 'cpu/rapl/rapl_interface.cpp' || echo '$(srcdir)/'`cpu/rapl/rapl_interface.cpp
+
+cpu/rapl/powertop-rapl_interface.obj: cpu/rapl/rapl_interface.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/rapl/powertop-rapl_interface.obj -MD -MP -MF cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Tpo -c -o cpu/rapl/powertop-rapl_interface.obj `if test -f 'cpu/rapl/rapl_interface.cpp'; then $(CYGPATH_W) 'cpu/rapl/rapl_interface.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/rapl/rapl_interface.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Tpo cpu/rapl/$(DEPDIR)/powertop-rapl_interface.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/rapl/rapl_interface.cpp' object='cpu/rapl/powertop-rapl_interface.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/rapl/powertop-rapl_interface.obj `if test -f 'cpu/rapl/rapl_interface.cpp'; then $(CYGPATH_W) 'cpu/rapl/rapl_interface.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/rapl/rapl_interface.cpp'; fi`
+
+cpu/powertop-cpu_rapl_device.o: cpu/cpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/powertop-cpu_rapl_device.o -MD -MP -MF cpu/$(DEPDIR)/powertop-cpu_rapl_device.Tpo -c -o cpu/powertop-cpu_rapl_device.o `test -f 'cpu/cpu_rapl_device.cpp' || echo '$(srcdir)/'`cpu/cpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/$(DEPDIR)/powertop-cpu_rapl_device.Tpo cpu/$(DEPDIR)/powertop-cpu_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/cpu_rapl_device.cpp' object='cpu/powertop-cpu_rapl_device.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/powertop-cpu_rapl_device.o `test -f 'cpu/cpu_rapl_device.cpp' || echo '$(srcdir)/'`cpu/cpu_rapl_device.cpp
+
+cpu/powertop-cpu_rapl_device.obj: cpu/cpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/powertop-cpu_rapl_device.obj -MD -MP -MF cpu/$(DEPDIR)/powertop-cpu_rapl_device.Tpo -c -o cpu/powertop-cpu_rapl_device.obj `if test -f 'cpu/cpu_rapl_device.cpp'; then $(CYGPATH_W) 'cpu/cpu_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/cpu_rapl_device.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/$(DEPDIR)/powertop-cpu_rapl_device.Tpo cpu/$(DEPDIR)/powertop-cpu_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/cpu_rapl_device.cpp' object='cpu/powertop-cpu_rapl_device.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/powertop-cpu_rapl_device.obj `if test -f 'cpu/cpu_rapl_device.cpp'; then $(CYGPATH_W) 'cpu/cpu_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/cpu_rapl_device.cpp'; fi`
+
+cpu/powertop-dram_rapl_device.o: cpu/dram_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/powertop-dram_rapl_device.o -MD -MP -MF cpu/$(DEPDIR)/powertop-dram_rapl_device.Tpo -c -o cpu/powertop-dram_rapl_device.o `test -f 'cpu/dram_rapl_device.cpp' || echo '$(srcdir)/'`cpu/dram_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/$(DEPDIR)/powertop-dram_rapl_device.Tpo cpu/$(DEPDIR)/powertop-dram_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/dram_rapl_device.cpp' object='cpu/powertop-dram_rapl_device.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/powertop-dram_rapl_device.o `test -f 'cpu/dram_rapl_device.cpp' || echo '$(srcdir)/'`cpu/dram_rapl_device.cpp
+
+cpu/powertop-dram_rapl_device.obj: cpu/dram_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT cpu/powertop-dram_rapl_device.obj -MD -MP -MF cpu/$(DEPDIR)/powertop-dram_rapl_device.Tpo -c -o cpu/powertop-dram_rapl_device.obj `if test -f 'cpu/dram_rapl_device.cpp'; then $(CYGPATH_W) 'cpu/dram_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/dram_rapl_device.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) cpu/$(DEPDIR)/powertop-dram_rapl_device.Tpo cpu/$(DEPDIR)/powertop-dram_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cpu/dram_rapl_device.cpp' object='cpu/powertop-dram_rapl_device.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o cpu/powertop-dram_rapl_device.obj `if test -f 'cpu/dram_rapl_device.cpp'; then $(CYGPATH_W) 'cpu/dram_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/cpu/dram_rapl_device.cpp'; fi`
+
+devices/powertop-gpu_rapl_device.o: devices/gpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT devices/powertop-gpu_rapl_device.o -MD -MP -MF devices/$(DEPDIR)/powertop-gpu_rapl_device.Tpo -c -o devices/powertop-gpu_rapl_device.o `test -f 'devices/gpu_rapl_device.cpp' || echo '$(srcdir)/'`devices/gpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) devices/$(DEPDIR)/powertop-gpu_rapl_device.Tpo devices/$(DEPDIR)/powertop-gpu_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='devices/gpu_rapl_device.cpp' object='devices/powertop-gpu_rapl_device.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o devices/powertop-gpu_rapl_device.o `test -f 'devices/gpu_rapl_device.cpp' || echo '$(srcdir)/'`devices/gpu_rapl_device.cpp
+
+devices/powertop-gpu_rapl_device.obj: devices/gpu_rapl_device.cpp
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -MT devices/powertop-gpu_rapl_device.obj -MD -MP -MF devices/$(DEPDIR)/powertop-gpu_rapl_device.Tpo -c -o devices/powertop-gpu_rapl_device.obj `if test -f 'devices/gpu_rapl_device.cpp'; then $(CYGPATH_W) 'devices/gpu_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/devices/gpu_rapl_device.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) devices/$(DEPDIR)/powertop-gpu_rapl_device.Tpo devices/$(DEPDIR)/powertop-gpu_rapl_device.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='devices/gpu_rapl_device.cpp' object='devices/powertop-gpu_rapl_device.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(powertop_CPPFLAGS) $(CPPFLAGS) $(powertop_CXXFLAGS) $(CXXFLAGS) -c -o devices/powertop-gpu_rapl_device.obj `if test -f 'devices/gpu_rapl_device.cpp'; then $(CYGPATH_W) 'devices/gpu_rapl_device.cpp'; else $(CYGPATH_W) '$(srcdir)/devices/gpu_rapl_device.cpp'; fi`
+
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
-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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- 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; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f calibrate/$(am__dirstamp)
-rm -f cpu/$(DEPDIR)/$(am__dirstamp)
-rm -f cpu/$(am__dirstamp)
+ -rm -f cpu/rapl/$(DEPDIR)/$(am__dirstamp)
+ -rm -f cpu/rapl/$(am__dirstamp)
-rm -f devices/$(DEPDIR)/$(am__dirstamp)
-rm -f devices/$(am__dirstamp)
-rm -f measurement/$(DEPDIR)/$(am__dirstamp)
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR) calibrate/$(DEPDIR) cpu/$(DEPDIR) devices/$(DEPDIR) measurement/$(DEPDIR) parameters/$(DEPDIR) perf/$(DEPDIR) process/$(DEPDIR) report/$(DEPDIR) tuning/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) calibrate/$(DEPDIR) cpu/$(DEPDIR) cpu/rapl/$(DEPDIR) devices/$(DEPDIR) measurement/$(DEPDIR) parameters/$(DEPDIR) perf/$(DEPDIR) process/$(DEPDIR) report/$(DEPDIR) tuning/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR) calibrate/$(DEPDIR) cpu/$(DEPDIR) devices/$(DEPDIR) measurement/$(DEPDIR) parameters/$(DEPDIR) perf/$(DEPDIR) process/$(DEPDIR) report/$(DEPDIR) tuning/$(DEPDIR)
+ -rm -rf ./$(DEPDIR) calibrate/$(DEPDIR) cpu/$(DEPDIR) cpu/rapl/$(DEPDIR) devices/$(DEPDIR) measurement/$(DEPDIR) parameters/$(DEPDIR) perf/$(DEPDIR) process/$(DEPDIR) report/$(DEPDIR) tuning/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-sbinPROGRAMS ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir 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-ps install-ps-am \
- install-sbinPROGRAMS install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-sbinPROGRAMS cscopelist-am ctags ctags-am \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-sbinPROGRAMS install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-sbinPROGRAMS
+ tags tags-am uninstall uninstall-am uninstall-sbinPROGRAMS
css.h: powertop.css
$(SHELL) ./csstoh.sh powertop.css css.h
#include <pthread.h>
#include <math.h>
#include <sys/types.h>
-#include <dirent.h>
#include "../parameters/parameters.h"
extern "C" {
set_wifi_power_saving("wlan0", wireless_PS);
}
-static void find_all_usb(void)
+static void find_all_usb_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
+ ifstream file;
- dir = opendir("/sys/bus/usb/devices/");
- if (!dir)
+ sprintf(filename, "/sys/bus/usb/devices/%s/power/active_duration", d_name);
+ if (access(filename, R_OK) != 0)
return;
- while (1) {
- ifstream file;
-
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/bus/usb/devices/%s/power/active_duration", entry->d_name);
- if (access(filename, R_OK)!=0)
- continue;
-
- sprintf(filename, "/sys/bus/usb/devices/%s/power/idVendor", entry->d_name);
- file.open(filename, ios::in);
- if (file) {
- file.getline(filename, 4096);
- file.close();
- if (strcmp(filename, "1d6b")==0)
- continue;
- }
- sprintf(filename, "/sys/bus/usb/devices/%s/power/control", entry->d_name);
+ sprintf(filename, "/sys/bus/usb/devices/%s/power/idVendor", d_name);
+ file.open(filename, ios::in);
+ if (file) {
+ file.getline(filename, 4096);
+ file.close();
+ if (strcmp(filename, "1d6b") == 0)
+ return;
+ }
- save_sysfs(filename);
+ sprintf(filename, "/sys/bus/usb/devices/%s/power/control", d_name);
+ save_sysfs(filename);
+ usb_devices.push_back(filename);
+}
- usb_devices.push_back(filename);
- }
- closedir(dir);
+static void find_all_usb(void)
+{
+ process_directory("/sys/bus/usb/devices/", find_all_usb_callback);
}
static void suspend_all_usb_devices(void)
write_sysfs(usb_devices[i], "auto\n");
}
-
-static void find_all_rfkill(void)
+static void find_all_rfkill_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
-
- dir = opendir("/sys/class/rfkill/");
- if (!dir)
+ sprintf(filename, "/sys/class/rfkill/%s/soft", d_name);
+ if (access(filename, R_OK) != 0)
return;
- while (1) {
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/class/rfkill/%s/soft", entry->d_name);
- if (access(filename, R_OK)!=0)
- continue;
-
- save_sysfs(filename);
+ save_sysfs(filename);
+ rfkill_devices.push_back(filename);
+}
- rfkill_devices.push_back(filename);
- }
- closedir(dir);
+static void find_all_rfkill(void)
+{
+ process_directory("/sys/class/rfkill/", find_all_rfkill_callback);
}
static void rfkill_all_radios(void)
write_sysfs(rfkill_devices[i], "0\n");
}
-static void find_backlight(void)
+static void find_backlight_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
-
- dir = opendir("/sys/class/backlight/");
- if (!dir)
+ sprintf(filename, "/sys/class/backlight/%s/brightness", d_name);
+ if (access(filename, R_OK) != 0)
return;
- while (1) {
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/class/backlight/%s/brightness", entry->d_name);
- if (access(filename, R_OK)!=0)
- continue;
- save_sysfs(filename);
-
- backlight_devices.push_back(filename);
+ save_sysfs(filename);
+ backlight_devices.push_back(filename);
+ sprintf(filename, "/sys/class/backlight/%s/max_brightness", d_name);
+ blmax = read_sysfs(filename);
+}
- sprintf(filename, "/sys/class/backlight/%s/max_brightness", entry->d_name);
- blmax = read_sysfs(filename);
- }
- closedir(dir);
+static void find_backlight(void)
+{
+ process_directory("/sys/class/backlight/", find_backlight_callback);
}
static void lower_backlight(void)
write_sysfs(backlight_devices[i], "0\n");
}
-
-static void find_scsi_link(void)
+static void find_scsi_link_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
-
- dir = opendir("/sys/class/scsi_host/");
- if (!dir)
+ sprintf(filename, "/sys/class/scsi_host/%s/link_power_management_policy", d_name);
+ if (access(filename, R_OK)!=0)
return;
- while (1) {
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/class/scsi_host/%s/link_power_management_policy", entry->d_name);
- if (access(filename, R_OK)!=0)
- continue;
- save_sysfs(filename);
-
- scsi_link_devices.push_back(filename);
+ save_sysfs(filename);
+ scsi_link_devices.push_back(filename);
+}
- }
- closedir(dir);
+static void find_scsi_link(void)
+{
+ process_directory("/sys/class/scsi_host/", find_scsi_link_callback);
}
static void set_scsi_link(const char *state)
#include <unistd.h>
#include "cpu.h"
#include "cpudevice.h"
+#include "cpu_rapl_device.h"
+#include "dram_rapl_device.h"
#include "intel_cpus.h"
#include "../parameters/parameters.h"
{
class abstract_cpu *ret = NULL;
class cpudevice *cpudev;
+ class cpu_rapl_device *cpu_rapl_dev;
+ class dram_rapl_device *dram_rapl_dev;
+
char packagename[128];
- if (strcmp(vendor, "GenuineIntel") == 0) {
+ if (strcmp(vendor, "GenuineIntel") == 0)
if (family == 6)
- switch (model) {
- case 0x1A: /* Core i7, Xeon 5500 series */
- case 0x1E: /* Core i7 and i5 Processor - Lynnfield Jasper Forest */
- case 0x1F: /* Core i7 and i5 Processor - Nehalem */
- case 0x2E: /* Nehalem-EX Xeon */
- case 0x2F: /* Westmere-EX Xeon */
- case 0x25: /* Westmere */
- case 0x27: /* Medfield Atom*/
- case 0x2C: /* Westmere */
- ret = new class nhm_package;
- break;
- case 0x2A: /* SNB */
- case 0x2D: /* SNB Xeon */
- case 0x3A: /* IVB */
- case 0x3C:
- case 0x3D: /* IVB Xeon */
- has_c2c7_res = 1;
- ret = new class nhm_package;
- break;
- }
- }
+ if (is_supported_intel_cpu(model))
+ ret = new class nhm_package(model);
if (!ret)
ret = new class cpu_package;
sprintf(packagename, _("cpu package %i"), cpu);
cpudev = new class cpudevice(_("cpu package"), packagename, ret);
all_devices.push_back(cpudev);
+
+ sprintf(packagename, _("cpu rapl package %i"), cpu);
+ cpu_rapl_dev = new class cpu_rapl_device(cpudev, _("cpu rapl package"), packagename, ret);
+ if (cpu_rapl_dev->device_present())
+ all_devices.push_back(cpu_rapl_dev);
+
+ sprintf(packagename, _("dram rapl package %i"), cpu);
+ dram_rapl_dev = new class dram_rapl_device(cpudev, _("dram rapl package"), packagename, ret);
+ if (dram_rapl_dev->device_present())
+ all_devices.push_back(dram_rapl_dev);
+
return ret;
}
{
class abstract_cpu *ret = NULL;
- if (strcmp(vendor, "GenuineIntel") == 0) {
+ if (strcmp(vendor, "GenuineIntel") == 0)
if (family == 6)
- switch (model) {
- case 0x1A: /* Core i7, Xeon 5500 series */
- case 0x1E: /* Core i7 and i5 Processor - Lynnfield Jasper Forest */
- case 0x1F: /* Core i7 and i5 Processor - Nehalem */
- case 0x2E: /* Nehalem-EX Xeon */
- case 0x2F: /* Westmere-EX Xeon */
- case 0x25: /* Westmere */
- case 0x2C: /* Westmere */
- case 0x2A: /* SNB */
- case 0x2D: /* SNB Xeon */
- case 0x3A: /* IVB */
- case 0x3C:
- case 0x3D: /* IVB Xeon */
- ret = new class nhm_core;
- }
- }
+ if (is_supported_intel_cpu(model))
+ ret = new class nhm_core(model);
if (!ret)
ret = new class cpu_core;
{
class abstract_cpu * ret = NULL;
- if (strcmp(vendor, "GenuineIntel") == 0) {
+ if (strcmp(vendor, "GenuineIntel") == 0)
if (family == 6)
- switch (model) {
- case 0x1A: /* Core i7, Xeon 5500 series */
- case 0x1E: /* Core i7 and i5 Processor - Lynnfield Jasper Forest */
- case 0x1F: /* Core i7 and i5 Processor - Nehalem */
- case 0x2E: /* Nehalem-EX Xeon */
- case 0x2F: /* Westmere-EX Xeon */
- case 0x25: /* Westmere */
- case 0x2C: /* Westmere */
- case 0x2A: /* SNB */
- case 0x2D: /* SNB Xeon */
- case 0x3A: /* IVB */
- case 0x3C:
- case 0x3D: /* IVB Xeon */
+ if (is_supported_intel_cpu(model))
ret = new class nhm_cpu;
- }
- }
if (!ret)
ret = new class cpu_linux;
return "-EINVAL";
}
+static int get_cstates_num(void)
+{
+ unsigned int package, core, cpu;
+ class abstract_cpu *_package, * _core, * _cpu;
+ unsigned int i;
+ int cstates_num;
+
+ for (package = 0, cstates_num = 0;
+ package < system_level.children.size(); package++) {
+ _package = system_level.children[package];
+ if (_package == NULL)
+ continue;
+
+ /* walk package cstates and get largest cstates number */
+ for (i = 0; i < _package->cstates.size(); i++)
+ cstates_num = std::max(cstates_num,
+ (_package->cstates[i])->line_level);
+
+ /*
+ * for each core in this package, walk core cstates and get
+ * largest cstates number
+ */
+ for (core = 0; core < _package->children.size(); core++) {
+ _core = _package->children[core];
+ if (_core == NULL)
+ continue;
+
+ for (i = 0; i < _core->cstates.size(); i++)
+ cstates_num = std::max(cstates_num,
+ (_core->cstates[i])->line_level);
+
+ /*
+ * for each core, walk the logical cpus in case
+ * there is are more linux cstates than hw cstates
+ */
+ for (cpu = 0; cpu < _core->children.size(); cpu++) {
+ _cpu = _core->children[cpu];
+ if (_cpu == NULL)
+ continue;
+
+ for (i = 0; i < _cpu->cstates.size(); i++)
+ cstates_num = std::max(cstates_num,
+ (_cpu->cstates[i])->line_level);
+ }
+ }
+ }
+
+ return cstates_num;
+}
+
void report_display_cpu_cstates(void)
{
char buffer[512], buffer2[512];
unsigned int package, core, cpu;
int line, cstates_num;
class abstract_cpu *_package, * _core, * _cpu;
- unsigned int i, j;
- for (i = 0, cstates_num = 0; i < all_cpus.size(); i++) {
- if (all_cpus[i])
- for (j = 0; j < all_cpus[i]->cstates.size(); j++)
- cstates_num = std::max(cstates_num,
- (all_cpus[i]->cstates[j])->line_level);
- }
+ cstates_num = get_cstates_num();
report.begin_section(SECTION_CPUIDLE);
report.add_header("Processor Idle state report");
int line, loop, cstates_num, pstates_num;
class abstract_cpu *_package, * _core, * _cpu;
int ctr = 0;
- unsigned int i, j;
+ unsigned int i;
+
+ cstates_num = get_cstates_num();
- for (i = 0, cstates_num = 0, pstates_num = 0; i < all_cpus.size(); i++) {
+ for (i = 0, pstates_num = 0; i < all_cpus.size(); i++) {
if (!all_cpus[i])
continue;
pstates_num = std::max<int>(pstates_num, all_cpus[i]->pstates.size());
-
- for (j = 0; j < all_cpus[i]->cstates.size(); j++)
- cstates_num = std::max(cstates_num,
- (all_cpus[i]->cstates[j])->line_level);
}
if (state == PSTATE) {
exit(-1);
}
- if (val == 4294967295)
+ if (val == (unsigned int)-1)
cpu->go_unidle(time);
else
cpu->go_idle(time);
class abstract_cpu *parent;
+ int get_first_cpu() { return first_cpu; }
void set_number(int _number, int cpu) {this->number = _number; this->first_cpu = cpu;};
void set_type(const char* _name) {this->name = _name;};
int get_number(void) { return number; };
--- /dev/null
+/*
+ * Copyright 2010, Intel Corporation
+ *
+ * This file is part of PowerTOP
+ *
+ * This program file 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; version 2 of the License.
+ *
+ * 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 in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ * or just google for it.
+ *
+ * Authors:
+ * Srinivas Pandruvada<Srinivas.Pandruvada@linux.intel.com>
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "../parameters/parameters.h"
+#include "cpu_rapl_device.h"
+
+cpu_rapl_device::cpu_rapl_device(cpudevice *parent, const char *classname, const char *dev_name, class abstract_cpu *_cpu)
+ : cpudevice(classname, dev_name, _cpu),
+ device_valid(false)
+{
+ if (_cpu)
+ rapl = new c_rapl_interface(cpu->get_first_cpu());
+ else
+ rapl = new c_rapl_interface(0);
+ last_time = time(NULL);
+ if (rapl->pp0_domain_present()) {
+ device_valid = true;
+ parent->add_child(this);
+ rapl->get_pp0_energy_status(&last_energy);
+ }
+}
+
+void cpu_rapl_device::start_measurement(void)
+{
+ last_time = time(NULL);
+
+ rapl->get_pp0_energy_status(&last_energy);
+}
+
+void cpu_rapl_device::end_measurement(void)
+{
+ time_t curr_time = time(NULL);
+ double energy;
+
+ consumed_power = 0.0;
+ if ((curr_time - last_time) > 0) {
+ rapl->get_pp0_energy_status(&energy);
+ consumed_power = (energy-last_energy)/(curr_time-last_time);
+ last_energy = energy;
+ last_time = curr_time;
+ }
+}
+
+double cpu_rapl_device::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
+{
+ if (rapl->pp0_domain_present())
+ return consumed_power;
+ else
+ return 0.0;
+}
--- /dev/null
+/*
+ * Copyright 2010, Intel Corporation
+ *
+ * This file is part of PowerTOP
+ *
+ * This program file 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; version 2 of the License.
+ *
+ * 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 in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ * or just google for it.
+ *
+ * Authors:
+ * Srinivas Pandruvada <Srinivas.Pandruvada@linux.intel.com>
+ */
+#ifndef _INCLUDE_GUARD_CPU_RAPL_DEVICE_H
+#define _INCLUDE_GUARD_CPU_RAPL_DEVICE_H
+
+#include <vector>
+#include <string>
+
+using namespace std;
+
+#include <sys/time.h>
+#include "cpudevice.h"
+#include "rapl/rapl_interface.h"
+
+class cpu_rapl_device: public cpudevice {
+
+ c_rapl_interface *rapl;
+ time_t last_time;
+ double last_energy;
+ double consumed_power;
+ bool device_valid;
+
+public:
+ cpu_rapl_device(cpudevice *parent, const char *classname = "cpu_core", const char *device_name = "cpu_core", class abstract_cpu *_cpu = NULL);
+ ~cpu_rapl_device() { delete rapl; }
+ virtual const char * device_name(void) {return "CPU core";};
+ bool device_present() { return device_valid;}
+ virtual double power_usage(struct result_bundle *result, struct parameter_bundle *bundle);
+ virtual void start_measurement(void);
+ virtual void end_measurement(void);
+
+};
+
+
+#endif
r_consumption_index = get_result_index("cpu-consumption");;
}
+const char * cpudevice::device_name(void)
+{
+ if (child_devices.size())
+ return "CPU misc";
+ else
+ return "CPU use";
+}
double cpudevice::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
{
double power;
double factor;
double _utilization;
+ double child_power;
power = 0;
factor = get_parameter_value(wake_index, bundle);
power += _utilization * factor;
+ for (unsigned int i = 0; i < child_devices.size(); ++i) {
+ child_power = child_devices[i]->power_usage(result, bundle);
+ if ((power - child_power) > 0.0)
+ power -= child_power;
+ }
+
return power;
}
#include "cpu.h"
class cpudevice: public device {
+protected:
char _class[128];
char _cpuname[128];
int r_wake_index;
int r_consumption_index;
+ vector<device *>child_devices;
+
public:
cpudevice(const char *classname = "cpu", const char *device_name = "cpu0", class abstract_cpu *_cpu = NULL);
virtual const char * class_name(void) { return _class;};
- virtual const char * device_name(void) {return "CPU use";};
+ virtual const char * device_name(void);
virtual double power_usage(struct result_bundle *result, struct parameter_bundle *bundle);
virtual bool show_in_list(void) {return false;};
virtual double utilization(void); /* percentage */
+ void add_child(device *dev_ptr) { child_devices.push_back(dev_ptr);}
};
--- /dev/null
+/*
+ * Copyright 2010, Intel Corporation
+ *
+ * This file is part of PowerTOP
+ *
+ * This program file 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; version 2 of the License.
+ *
+ * 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 in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ * or just google for it.
+ *
+ * Authors:
+ * Srinivas Pandruvada <Srinivas.Pandruvada@linux.intel.com>
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "../parameters/parameters.h"
+#include "dram_rapl_device.h"
+
+
+dram_rapl_device::dram_rapl_device(cpudevice *parent, const char *classname, const char *dev_name, class abstract_cpu *_cpu)
+ : cpudevice(classname, dev_name, _cpu),
+ device_valid(false)
+{
+ if (_cpu)
+ rapl = new c_rapl_interface(cpu->get_first_cpu());
+ else
+ rapl = new c_rapl_interface(0);
+ last_time = time(NULL);
+ if (rapl->dram_domain_present()) {
+ device_valid = true;
+ parent->add_child(this);
+ rapl->get_dram_energy_status(&last_energy);
+ }
+}
+
+void dram_rapl_device::start_measurement(void)
+{
+ last_time = time(NULL);
+
+ rapl->get_dram_energy_status(&last_energy);
+}
+
+void dram_rapl_device::end_measurement(void)
+{
+ time_t curr_time = time(NULL);
+ double energy;
+
+ consumed_power = 0.0;
+ if ((curr_time - last_time) > 0) {
+ rapl->get_dram_energy_status(&energy);
+ consumed_power = (energy-last_energy)/(curr_time-last_time);
+ last_energy = energy;
+ last_time = curr_time;
+ }
+}
+
+double dram_rapl_device::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
+{
+ if (rapl->dram_domain_present())
+ return consumed_power;
+ else
+ return 0.0;
+}
--- /dev/null
+/*
+ * Copyright 2010, Intel Corporation
+ *
+ * This file is part of PowerTOP
+ *
+ * This program file 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; version 2 of the License.
+ *
+ * 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 in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ * or just google for it.
+ *
+ * Authors:
+ * Srinivas Pandruvada <Srinivas.Pandruvada@linux.intel.com>
+ */
+#ifndef _INCLUDE_GUARD_DRAM_RAPL_DEVICE_H
+#define _INCLUDE_GUARD_DRAM_RAPL_DEVICE_H
+
+#include <vector>
+#include <string>
+
+using namespace std;
+
+#include <sys/time.h>
+#include "cpudevice.h"
+#include "rapl/rapl_interface.h"
+
+class dram_rapl_device: public cpudevice {
+
+ c_rapl_interface *rapl;
+ time_t last_time;
+ double last_energy;
+ double consumed_power;
+ bool device_valid;
+
+public:
+ dram_rapl_device(cpudevice *parent, const char *classname = "dram_core", const char *device_name = "dram_core", class abstract_cpu *_cpu = NULL);
+ ~dram_rapl_device() { delete rapl; }
+ virtual const char * device_name(void) {return "DRAM";};
+ bool device_present() { return device_valid;}
+ virtual double power_usage(struct result_bundle *result, struct parameter_bundle *bundle);
+ void start_measurement(void);
+ void end_measurement(void);
+
+};
+
+
+#endif
#include "../parameters/parameters.h"
#include "../display.h"
+static int intel_cpu_models[] = {
+ 0x1A, /* Core i7, Xeon 5500 series */
+ 0x1E, /* Core i7 and i5 Processor - Lynnfield Jasper Forest */
+ 0x1F, /* Core i7 and i5 Processor - Nehalem */
+ 0x2E, /* Nehalem-EX Xeon */
+ 0x2F, /* Westmere-EX Xeon */
+ 0x25, /* Westmere */
+ 0x27, /* Medfield Atom*/
+ 0x2C, /* Westmere */
+ 0x2A, /* SNB */
+ 0x2D, /* SNB Xeon */
+ 0x3A, /* IVB */
+ 0x3C,
+ 0x3D, /* IVB Xeon */
+ 0x37, /* BYT-M */
+ 0x45, /* HSW-ULT */
+ 0 /* last entry must be zero */
+};
+
+int is_supported_intel_cpu(int model)
+{
+ int i;
-int has_c2c7_res;
-
+ for (i = 0; intel_cpu_models[i] != 0; i++)
+ if (model == intel_cpu_models[i])
+ return 1;
+ return 0;
+}
static uint64_t get_msr(int cpu, uint64_t offset)
{
ssize_t retval;
uint64_t msr;
- int fd;
- char msr_path[256];
-
- fd = sprintf(msr_path, "/dev/cpu/%d/msr", cpu);
-
- if (access(msr_path, R_OK) != 0){
- fd = sprintf(msr_path, "/dev/msr%d", cpu);
-
- if (access(msr_path, R_OK) != 0){
- fprintf(stderr, _("msr reg not found"));
- exit(-2);
- }
- }
- fd = open(msr_path, O_RDONLY);
-
- retval = pread(fd, &msr, sizeof msr, offset);
- if (retval != sizeof msr) {
+ retval = read_msr(cpu, offset, &msr);
+ if (retval < 0) {
reset_display();
- fprintf(stderr, _("pread cpu%d 0x%llx : "), cpu, (unsigned long long)offset);
+ fprintf(stderr, _("read_msr cpu%d 0x%llx : "), cpu, (unsigned long long)offset);
fprintf(stderr, "%s\n", strerror(errno));
exit(-2);
}
- close(fd);
+
return msr;
}
+nhm_core::nhm_core(int model)
+{
+ has_c2c7_res = 0;
+
+ switch(model) {
+ case 0x2A: /* SNB */
+ case 0x2D: /* SNB Xeon */
+ case 0x3A: /* IVB */
+ case 0x3C:
+ case 0x3D: /* IVB Xeon */
+ case 0x45: /* Next Gen Intel Core Processor */
+ has_c2c7_res = 1;
+ }
+
+ /* BYT-M does not support C3/C4 */
+ if (model == 0x37) {
+ has_c3_res = 0;
+ has_c1_res = 1;
+ } else {
+ has_c3_res = 1;
+ has_c1_res = 0;
+ }
+}
+
void nhm_core::measurement_start(void)
{
ifstream file;
last_stamp = 0;
- c3_before = get_msr(first_cpu, MSR_CORE_C3_RESIDENCY);
+ if (this->has_c1_res)
+ c1_before = get_msr(first_cpu, MSR_CORE_C1_RESIDENCY);
+ if (this->has_c3_res)
+ c3_before = get_msr(first_cpu, MSR_CORE_C3_RESIDENCY);
c6_before = get_msr(first_cpu, MSR_CORE_C6_RESIDENCY);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c7_before = get_msr(first_cpu, MSR_CORE_C7_RESIDENCY);
tsc_before = get_msr(first_cpu, MSR_TSC);
- insert_cstate("core c3", "C3 (cc3)", 0, c3_before, 1);
+ if (this->has_c1_res)
+ insert_cstate("core c1", "C1 (cc1)", 0, c1_before, 1);
+ if (this->has_c3_res)
+ insert_cstate("core c3", "C3 (cc3)", 0, c3_before, 1);
insert_cstate("core c6", "C6 (cc6)", 0, c6_before, 1);
- if (has_c2c7_res) {
+ if (this->has_c2c7_res) {
insert_cstate("core c7", "C7 (cc7)", 0, c7_before, 1);
}
uint64_t time_delta;
double ratio;
- c3_after = get_msr(first_cpu, MSR_CORE_C3_RESIDENCY);
+ if (this->has_c1_res)
+ c1_after = get_msr(first_cpu, MSR_CORE_C1_RESIDENCY);
+ if (this->has_c3_res)
+ c3_after = get_msr(first_cpu, MSR_CORE_C3_RESIDENCY);
c6_after = get_msr(first_cpu, MSR_CORE_C6_RESIDENCY);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c7_after = get_msr(first_cpu, MSR_CORE_C7_RESIDENCY);
tsc_after = get_msr(first_cpu, MSR_TSC);
-
-
- finalize_cstate("core c3", 0, c3_after, 1);
+ if (this->has_c1_res)
+ finalize_cstate("core c1", 0, c1_after, 1);
+ if (this->has_c3_res)
+ finalize_cstate("core c3", 0, c3_after, 1);
finalize_cstate("core c6", 0, c6_after, 1);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
finalize_cstate("core c7", 0, c7_after, 1);
gettimeofday(&stamp_after, NULL);
return buffer;
}
+nhm_package::nhm_package(int model)
+{
+ has_c8c9c10_res = 0;
+ has_c2c7_res = 0;
+
+ switch(model) {
+ case 0x2A: /* SNB */
+ case 0x2D: /* SNB Xeon */
+ case 0x3A: /* IVB */
+ case 0x3C:
+ case 0x37:
+ case 0x3D: /* IVB Xeon */
+ case 0x45:
+ has_c2c7_res = 1;
+ }
+
+ /* BYT-M doesn't have C3 */
+ if (model == 0x37)
+ has_c3_res = 0;
+ else
+ has_c3_res = 1;
+
+ /* Haswell-ULT has C8/9/10*/
+ if (model == 0x45)
+ has_c8c9c10_res = 1;
+}
+
char * nhm_package::fill_pstate_line(int line_nr, char *buffer)
{
buffer[0] = 0;
last_stamp = 0;
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c2_before = get_msr(number, MSR_PKG_C2_RESIDENCY);
- c3_before = get_msr(number, MSR_PKG_C3_RESIDENCY);
+
+ if (this->has_c3_res)
+ c3_before = get_msr(number, MSR_PKG_C3_RESIDENCY);
c6_before = get_msr(number, MSR_PKG_C6_RESIDENCY);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c7_before = get_msr(number, MSR_PKG_C7_RESIDENCY);
+ if (this->has_c8c9c10_res) {
+ c8_before = get_msr(number, MSR_PKG_C8_RESIDENCY);
+ c9_before = get_msr(number, MSR_PKG_C9_RESIDENCY);
+ c10_before = get_msr(number, MSR_PKG_C10_RESIDENCY);
+ }
tsc_before = get_msr(first_cpu, MSR_TSC);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
insert_cstate("pkg c2", "C2 (pc2)", 0, c2_before, 1);
- insert_cstate("pkg c3", "C3 (pc3)", 0, c3_before, 1);
+ if (this->has_c3_res)
+ insert_cstate("pkg c3", "C3 (pc3)", 0, c3_before, 1);
insert_cstate("pkg c6", "C6 (pc6)", 0, c6_before, 1);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
insert_cstate("pkg c7", "C7 (pc7)", 0, c7_before, 1);
+ if (this->has_c8c9c10_res) {
+ insert_cstate("pkg c8", "C8 (pc8)", 0, c8_before, 1);
+ insert_cstate("pkg c9", "C9 (pc9)", 0, c9_before, 1);
+ insert_cstate("pkg c10", "C10 (pc10)", 0, c10_before, 1);
+ }
}
void nhm_package::measurement_end(void)
children[i]->wiggle();
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c2_after = get_msr(number, MSR_PKG_C2_RESIDENCY);
- c3_after = get_msr(number, MSR_PKG_C3_RESIDENCY);
+
+ if (this->has_c3_res)
+ c3_after = get_msr(number, MSR_PKG_C3_RESIDENCY);
c6_after = get_msr(number, MSR_PKG_C6_RESIDENCY);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
c7_after = get_msr(number, MSR_PKG_C7_RESIDENCY);
+ if (has_c8c9c10_res) {
+ c8_after = get_msr(number, MSR_PKG_C8_RESIDENCY);
+ c9_after = get_msr(number, MSR_PKG_C9_RESIDENCY);
+ c10_after = get_msr(number, MSR_PKG_C10_RESIDENCY);
+ }
tsc_after = get_msr(first_cpu, MSR_TSC);
gettimeofday(&stamp_after, NULL);
time_factor = 1000000.0 * (stamp_after.tv_sec - stamp_before.tv_sec) + stamp_after.tv_usec - stamp_before.tv_usec;
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
finalize_cstate("pkg c2", 0, c2_after, 1);
- finalize_cstate("pkg c3", 0, c3_after, 1);
+
+ if (this->has_c3_res)
+ finalize_cstate("pkg c3", 0, c3_after, 1);
finalize_cstate("pkg c6", 0, c6_after, 1);
- if (has_c2c7_res)
+ if (this->has_c2c7_res)
finalize_cstate("pkg c7", 0, c7_after, 1);
+ if (has_c8c9c10_res) {
+ finalize_cstate("pkg c8", 0, c8_after, 1);
+ finalize_cstate("pkg c9", 0, c9_after, 1);
+ finalize_cstate("pkg c10", 0, c10_after, 1);
+ }
for (i = 0; i < children.size(); i++)
if (children[i])
#define MSR_PKG_C3_RESIDENCY 0x3F8
#define MSR_PKG_C6_RESIDENCY 0x3F9
#define MSR_PKG_C7_RESIDENCY 0x3FA
+#define MSR_PKG_C8_RESIDENCY 0x630
+#define MSR_PKG_C9_RESIDENCY 0x631
+#define MSR_PKG_C10_RESIDENCY 0x632
+#define MSR_CORE_C1_RESIDENCY 0x660
#define MSR_CORE_C3_RESIDENCY 0x3FC
#define MSR_CORE_C6_RESIDENCY 0x3FD
#define MSR_CORE_C7_RESIDENCY 0x3FE
-
class nhm_package: public cpu_package
{
private:
uint64_t c3_before, c3_after;
uint64_t c6_before, c6_after;
uint64_t c7_before, c7_after;
+ uint64_t c8_before, c8_after;
+ uint64_t c9_before, c9_after;
+ uint64_t c10_before, c10_after;
uint64_t tsc_before, tsc_after;
uint64_t last_stamp;
uint64_t total_stamp;
public:
+ int has_c2c7_res;
+ int has_c3_res;
+ int has_c8c9c10_res;
+ nhm_package(int model);
virtual void measurement_start(void);
virtual void measurement_end(void);
virtual int can_collapse(void) { return 0;};
class nhm_core: public cpu_core
{
private:
+ uint64_t c1_before, c1_after;
uint64_t c3_before, c3_after;
uint64_t c6_before, c6_after;
uint64_t c7_before, c7_after;
uint64_t last_stamp;
uint64_t total_stamp;
public:
+ int has_c1_res;
+ int has_c2c7_res;
+ int has_c3_res;
+ nhm_core(int model);
virtual void measurement_start(void);
virtual void measurement_end(void);
virtual int can_collapse(void) { return 0;};
};
-extern int has_c2c7_res;
-
class i965_core: public cpu_core
{
private:
virtual void wiggle(void) { };
};
+
+int is_supported_intel_cpu(int model);
--- /dev/null
+/* rapl_interface.cpp: rapl interface for power top implementation
+ *
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ *
+ * Author Name <Srinivas.Pandruvada@linux.intel.com>
+ *
+ */
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <math.h>
+#include "lib.h"
+#include "rapl_interface.h"
+
+#ifdef DEBUG
+#define RAPL_DBG_PRINT printf
+#define RAPL_ERROR_PRINT printf
+#else
+#define RAPL_DBG_PRINT(...) ((void) 0)
+#define RAPL_ERROR_PRINT(...) ((void) 0)
+#endif
+#define RAPL_INFO_PRINT printf
+
+#define MAX_TEMP_STR_SIZE 20
+
+// RAPL interface
+#define MSR_RAPL_POWER_UNIT 0x606
+#define MSR_PKG_POWER_LIMIT 0x610
+
+#define MSR_PKG_ENERY_STATUS 0x611
+#define MSR_PKG_POWER_INFO 0x614
+#define MSR_PKG_PERF_STATUS 0x613
+
+#define MSR_DRAM_POWER_LIMIT 0x618
+#define MSR_DRAM_ENERY_STATUS 0x619
+#define MSR_DRAM_PERF_STATUS 0x61B
+#define MSR_DRAM_POWER_INFO 0x61c
+
+#define MSR_PP0_POWER_LIMIT 0x638
+#define MSR_PP0_ENERY_STATUS 0x639
+#define MSR_PP0_POLICY 0x63A
+#define MSR_PP0_PERF_STATUS 0x63B
+
+#define MSR_PP1_POWER_LIMIT 0x640
+#define MSR_PP1_ENERY_STATUS 0x641
+#define MSR_PP1_POLICY 0x642
+
+#define PKG_DOMAIN_PRESENT 0x01
+#define DRAM_DOMAIN_PRESENT 0x02
+#define PP0_DOMAIN_PRESENT 0x04
+#define PP1_DOMAIN_PRESENT 0x08
+
+c_rapl_interface::c_rapl_interface(int cpu) :
+ measurment_interval(def_sampling_interval),
+ first_cpu(cpu),
+ last_pkg_energy_status(0.0),
+ last_dram_energy_status(0.0),
+ last_pp0_energy_status(0.0),
+ last_pp1_energy_status(0.0)
+{
+ uint64_t value;
+ int ret;
+
+ RAPL_INFO_PRINT("RAPL device for cpu %d\n", cpu);
+
+ rapl_domains = 0;
+ // presence of each domain
+ // Check presence of PKG domain
+ ret = read_msr(first_cpu, MSR_PKG_ENERY_STATUS, &value);
+ if (ret > 0) {
+ rapl_domains |= PKG_DOMAIN_PRESENT;
+ RAPL_DBG_PRINT("Domain : PKG present\n");
+ } else {
+ RAPL_DBG_PRINT("Domain : PKG Not present\n");
+ }
+
+ // Check presence of DRAM domain
+ ret = read_msr(first_cpu, MSR_DRAM_ENERY_STATUS, &value);
+ if (ret > 0) {
+ rapl_domains |= DRAM_DOMAIN_PRESENT;
+ RAPL_DBG_PRINT("Domain : DRAM present\n");
+ } else {
+ RAPL_DBG_PRINT("Domain : DRAM Not present\n");
+ }
+
+ // Check presence of PP0 domain
+ ret = read_msr(first_cpu, MSR_PP0_ENERY_STATUS, &value);
+ if (ret > 0) {
+ rapl_domains |= PP0_DOMAIN_PRESENT;
+ RAPL_DBG_PRINT("Domain : PP0 present\n");
+ } else {
+ RAPL_DBG_PRINT("Domain : PP0 Not present\n");
+ }
+
+ // Check presence of PP1 domain
+ ret = read_msr(first_cpu, MSR_PP1_ENERY_STATUS, &value);
+ if (ret > 0) {
+ rapl_domains |= PP1_DOMAIN_PRESENT;
+ RAPL_DBG_PRINT("Domain : PP1 present\n");
+ } else {
+ RAPL_DBG_PRINT("Domain : PP1 Not present\n");
+ }
+
+ power_units = get_power_unit();
+ energy_status_units = get_energy_status_unit();
+ time_units = get_time_unit();
+
+ RAPL_DBG_PRINT("RAPL Domain mask: %x\n", rapl_domains);
+}
+
+bool c_rapl_interface::pkg_domain_present()
+{
+ if ((rapl_domains & PKG_DOMAIN_PRESENT)) {
+ return true;
+ }
+
+ return false;
+}
+
+bool c_rapl_interface::dram_domain_present()
+{
+ if ((rapl_domains & DRAM_DOMAIN_PRESENT)) {
+ return true;
+ }
+
+ return false;
+}
+
+bool c_rapl_interface::pp0_domain_present()
+{
+ if ((rapl_domains & PP0_DOMAIN_PRESENT)) {
+ return true;
+ }
+
+ return false;
+}
+
+bool c_rapl_interface::pp1_domain_present()
+{
+ if ((rapl_domains & PP1_DOMAIN_PRESENT)) {
+ return true;
+ }
+
+ return false;
+}
+
+int c_rapl_interface::read_msr(int cpu, unsigned int idx, uint64_t *val)
+{
+ return ::read_msr(cpu, idx, val);
+}
+
+int c_rapl_interface::write_msr(int cpu, unsigned int idx, uint64_t val)
+{
+ return ::write_msr(cpu, idx, val);
+}
+
+int c_rapl_interface::get_rapl_power_unit(uint64_t *value)
+{
+ int ret;
+
+ ret = read_msr(first_cpu, MSR_RAPL_POWER_UNIT, value);
+
+ return ret;
+}
+
+double c_rapl_interface::get_power_unit()
+{
+ int ret;
+ uint64_t value;
+
+ ret = get_rapl_power_unit(&value);
+ if(ret < 0)
+ {
+ return ret;
+ }
+
+ return (double) 1/pow((double)2, (double)(value & 0xf));
+}
+
+double c_rapl_interface::get_energy_status_unit()
+{
+ int ret;
+ uint64_t value;
+
+ ret = get_rapl_power_unit(&value);
+ if(ret < 0)
+ {
+ return ret;
+ }
+
+ return (double)1/ pow((double)2, (double)((value & 0x1f00) >> 8));
+}
+
+double c_rapl_interface::get_time_unit()
+{
+ int ret;
+ uint64_t value;
+
+ ret = get_rapl_power_unit(&value);
+ if(ret < 0)
+ {
+ return ret;
+ }
+
+ return (double)1 / pow((double)2, (double)((value & 0xf0000) >> 16));
+}
+
+int c_rapl_interface::get_pkg_energy_status(double *status)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pkg_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PKG_ENERY_STATUS, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pkg_energy_status failed\n");
+ return ret;
+ }
+
+ *status = (double) (value & 0xffffffff) * get_energy_status_unit();
+
+ return ret;
+}
+
+int c_rapl_interface::get_pkg_power_info(double *thermal_spec_power,
+ double *max_power, double *min_power, double *max_time_window)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pkg_domain_present()) {
+ return -1;
+ }
+ ret = read_msr(first_cpu, MSR_PKG_POWER_INFO, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pkg_power_info failed\n");
+ return ret;
+ }
+ *thermal_spec_power = (value & 0x7FFF) * power_units;
+ *min_power = ((value & 0x7FFF0000) >> 16) * power_units;
+ *max_power = ((value & 0x7FFF00000000) >> 32) * power_units;
+ *max_time_window = ((value & 0x3f000000000000)>>48) * time_units;
+
+ return ret;
+}
+
+int c_rapl_interface::get_pkg_power_limit(uint64_t *value)
+{
+ int ret;
+
+ if (!pkg_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PKG_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pkg_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::set_pkg_power_limit(uint64_t value)
+{
+ int ret;
+
+ if (!pkg_domain_present()) {
+ return -1;
+ }
+
+ ret = write_msr(first_cpu, MSR_PKG_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("set_pkg_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::get_dram_energy_status(double *status)
+{
+ int ret;
+ uint64_t value;
+
+ if (!dram_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_DRAM_ENERY_STATUS, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_dram_energy_status failed\n");
+ return ret;
+ }
+
+ *status = (double) (value & 0xffffffff) * get_energy_status_unit();
+
+ return ret;
+}
+
+int c_rapl_interface::get_dram_power_info(double *thermal_spec_power,
+ double *max_power, double *min_power, double *max_time_window)
+{
+ int ret;
+ uint64_t value;
+
+ if (!dram_domain_present()) {
+ return -1;
+ }
+ ret = read_msr(first_cpu, MSR_DRAM_POWER_INFO, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_dram_power_info failed\n");
+ return ret;
+ }
+
+ *thermal_spec_power = (value & 0x7FFF) * power_units;
+ *min_power = ((value & 0x7FFF0000) >> 16) * power_units;
+ *max_power = ((value & 0x7FFF00000000) >> 32) * power_units;
+ *max_time_window = ((value & 0x3f000000000000)>>48) * time_units;
+
+ return ret;
+}
+
+int c_rapl_interface::get_dram_power_limit(uint64_t *value)
+{
+ int ret;
+
+ if (!dram_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_DRAM_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_dram_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::set_dram_power_limit(uint64_t value)
+{
+ int ret;
+
+ if (!dram_domain_present()) {
+ return -1;
+ }
+
+ ret = write_msr(first_cpu, MSR_DRAM_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("set_dram_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp0_energy_status(double *status)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pp0_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP0_ENERY_STATUS, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp0_energy_status failed\n");
+ return ret;
+ }
+
+ *status = (double) (value & 0xffffffff) * get_energy_status_unit();
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp0_power_limit(uint64_t *value)
+{
+ int ret;
+
+ if (!pp0_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP0_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp0_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::set_pp0_power_limit(uint64_t value)
+{
+ int ret;
+
+ if (!pp0_domain_present()) {
+ return -1;
+ }
+
+ ret = write_msr(first_cpu, MSR_PP0_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("set_pp0_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp0_power_policy(unsigned int *pp0_power_policy)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pp0_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP0_POLICY, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp0_power_policy failed\n");
+ return ret;
+ }
+
+ *pp0_power_policy = value & 0x0f;
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp1_energy_status(double *status)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pp1_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP1_ENERY_STATUS, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp1_energy_status failed\n");
+ return ret;
+ }
+
+ *status = (double) (value & 0xffffffff) * get_energy_status_unit();
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp1_power_limit(uint64_t *value)
+{
+ int ret;
+
+ if (!pp1_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP1_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp1_power_info failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::set_pp1_power_limit(uint64_t value)
+{
+ int ret;
+
+ if (!pp1_domain_present()) {
+ return -1;
+ }
+
+ ret = write_msr(first_cpu, MSR_PP1_POWER_LIMIT, value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("set_pp1_power_limit failed\n");
+ return ret;
+ }
+
+ return ret;
+}
+
+int c_rapl_interface::get_pp1_power_policy(unsigned int *pp1_power_policy)
+{
+ int ret;
+ uint64_t value;
+
+ if (!pp1_domain_present()) {
+ return -1;
+ }
+
+ ret = read_msr(first_cpu, MSR_PP1_POLICY, &value);
+ if(ret < 0)
+ {
+ RAPL_ERROR_PRINT("get_pp1_power_policy failed\n");
+ return ret;
+ }
+
+ *pp1_power_policy = value & 0x0f;
+
+ return ret;
+}
+
+void c_rapl_interface::rapl_measure_energy()
+{
+#ifdef RAPL_TEST_MODE
+ int ret;
+ double energy_status;
+ double thermal_spec_power;
+ double max_power;
+ double min_power;
+ double max_time_window;
+ double pkg_watts = 0;
+ double dram_watts = 0;
+ double pp0_watts = 0;
+ double pp1_watts = 0;
+ double pkg_joules = 0;
+ double dram_joules = 0;
+ double pp0_joules = 0;
+ double pp1_joules = 0;
+
+ ret = get_pkg_power_info(&thermal_spec_power, &max_power, &min_power, &max_time_window);
+ RAPL_DBG_PRINT("Pkg Power Info: Thermal spec %f watts, max %f watts, min %f watts, max time window %f seconds\n", thermal_spec_power, max_power, min_power, max_time_window);
+ ret = get_dram_power_info(&thermal_spec_power, &max_power, &min_power, &max_time_window);
+ RAPL_DBG_PRINT("DRAM Power Info: Thermal spec %f watts, max %f watts, min %f watts, max time window %f seconds\n", thermal_spec_power, max_power, min_power, max_time_window);
+
+ for (;;) {
+ if (pkg_domain_present()) {
+ ret = get_pkg_energy_status(&energy_status);
+ if (last_pkg_energy_status == 0)
+ last_pkg_energy_status = energy_status;
+ if (ret > 0) {
+ pkg_joules = energy_status;
+ pkg_watts = (energy_status-last_pkg_energy_status)/measurment_interval;
+ }
+ last_pkg_energy_status = energy_status;
+ }
+ if (dram_domain_present()) {
+ ret = get_dram_energy_status(&energy_status);
+ if (last_dram_energy_status == 0)
+ last_dram_energy_status = energy_status;
+ if (ret > 0){
+ dram_joules = energy_status;
+ dram_watts = (energy_status-last_dram_energy_status)/measurment_interval;
+ }
+ last_dram_energy_status = energy_status;
+ }
+ if (pp0_domain_present()) {
+ ret = get_pp0_energy_status(&energy_status);
+ if (last_pp0_energy_status == 0)
+ last_pp0_energy_status = energy_status;
+ if (ret > 0){
+ pp0_joules = energy_status;
+ pp0_watts = (energy_status-last_pp0_energy_status)/measurment_interval;
+ }
+ last_pp0_energy_status = energy_status;
+ }
+ if (pp1_domain_present()) {
+ ret = get_pp1_energy_status(&energy_status);
+ if (last_pp1_energy_status == 0)
+ last_pp1_energy_status = energy_status;
+ if (ret > 0){
+ pp1_joules = energy_status;
+ pp1_watts = (energy_status-last_pp1_energy_status)/measurment_interval;
+ }
+ last_pp1_energy_status = energy_status;
+ }
+ RAPL_DBG_PRINT("%f, %f, %f, %f\n", pkg_watts, dram_watts, pp0_watts, pp1_watts);
+ sleep(measurment_interval);
+ }
+#endif
+}
--- /dev/null
+/* rapl_interface.h: rapl interface for power top
+ *
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ *
+ * Author Name <Srinivas.Pandruvada@linux.intel.com>
+ *
+ */
+
+#ifndef RAPL_INTERFACE_H
+#define RAPL_INTERFACE_H
+
+class c_rapl_interface
+{
+private:
+ static const int def_sampling_interval = 1; //In seconds
+ unsigned char rapl_domains;
+ int measurment_interval;
+ int first_cpu;
+
+ double power_units;
+ double energy_status_units;
+ double time_units;
+
+ double last_pkg_energy_status;
+ double last_dram_energy_status;
+ double last_pp0_energy_status;
+ double last_pp1_energy_status;
+
+ int read_msr(int cpu, unsigned int idx, uint64_t *val);
+ int write_msr(int cpu, unsigned int idx, uint64_t val);
+
+public:
+ c_rapl_interface(int cpu = 0);
+
+ int get_rapl_power_unit(uint64_t *value);
+ double get_power_unit();
+ double get_energy_status_unit();
+ double get_time_unit();
+
+ int get_pkg_energy_status(double *status);
+ int get_pkg_power_info(double *thermal_spec_power,
+ double *max_power, double *min_power, double *max_time_window);
+ int get_pkg_power_limit(uint64_t *value);
+ int set_pkg_power_limit(uint64_t value);
+
+ int get_dram_energy_status(double *status);
+ int get_dram_power_info(double *thermal_spec_power,
+ double *max_power, double *min_power, double *max_time_window);
+ int get_dram_power_limit(uint64_t *value);
+ int set_dram_power_limit(uint64_t value);
+
+ int get_pp0_energy_status(double *status);
+ int get_pp0_power_limit(uint64_t *value);
+ int set_pp0_power_limit(uint64_t value);
+ int get_pp0_power_policy(unsigned int *pp0_power_policy);
+
+ int get_pp1_energy_status(double *status);
+ int get_pp1_power_limit(uint64_t *value);
+ int set_pp1_power_limit(uint64_t value);
+ int get_pp1_power_policy(unsigned int *pp1_power_policy);
+
+ bool pkg_domain_present();
+ bool dram_domain_present();
+ bool pp0_domain_present();
+ bool pp1_domain_present();
+
+ void rapl_measure_energy();
+};
+
+#endif
"<head>\n"
"<title>PowerTOP report</title>\n"
"<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n"
- "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>\n"
- "<script type=\"text/javascript\">\n"
- "$(document).ready(function(){\n"
- "\n"
- " $('#system h2').addClass('hide');\n"
- " $('#system table').addClass('hide');\n"
- " $('#cpuidle h2').addClass('hide');\n"
- " $('#cpuidle table').addClass('hide');\n"
- " $('#cpufreq h2').addClass('hide');\n"
- " $('#cpufreq table').addClass('hide');\n"
- " $('#software h2').addClass('hide');\n"
- " $('#software table').addClass('hide');\n"
- " $('#device h2').addClass('hide');\n"
- " $('#device table').addClass('hide');\n"
- " $('#device p').addClass('hide');\n"
- " $('#tuning h2').addClass('hide');\n"
- " $('#tuning table').addClass('hide');\n"
- "\n"
- " $('#top').append('<div class=\"SystemButton\" onclick=\"toggleSystem()\">System Info</div>');\n"
- " $('#top').append('<div class=\"SummaryButton\" onclick=\"toggleSummary()\">Summary</div>');\n"
- " $('#top').append('<div class=\"CpuidleButton\" onclick=\"toggleCpuidle()\">CPU Idle</div>');\n"
- " $('#top').append('<div class=\"CpufreqButton\" onclick=\"toggleCpufreq()\">CPU Frequency</div>');\n"
- " $('#top').append('<div class=\"SoftwareButton\" onclick=\"toggleSoftware()\">Software info</div>');\n"
- " $('#top').append('<div class=\"DeviceButton\" onclick=\"toggleDevice()\">Device Info</div>');\n"
- " $('#top').append('<div class=\"TuningButton\" onclick=\"toggleTuning()\">Tuning</div>');\n"
- " $('#top').append('<div class=\"AllButton\" onclick=\"toggleAll()\">All</div>');\n"
- " $('#top .SummaryButton').toggleClass('pressed');\n"
- "\n"
- " }\n"
- " );\n"
- "function toggleDummy() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "function toggleSystem() {\n"
- " $('#system table').toggleClass('hide', false);\n"
- " $('#system h2').toggleClass('hide', false);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', true);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "function toggleSummary() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', false);\n"
- " $('#summary h2').toggleClass('hide', false);\n"
- " $('#summary p').toggleClass('hide', false);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', true);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "function toggleCpuidle() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', false);\n"
- " $('#cpuidle h2').toggleClass('hide', false);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', true);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "\n"
- "}\n"
- "function toggleCpufreq() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', false);\n"
- " $('#cpufreq h2').toggleClass('hide', false);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', true);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "\n"
- "function toggleSoftware() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', false);\n"
- " $('#software h2').toggleClass('hide', false);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', true);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "\n"
- "function toggleDevice() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', false);\n"
- " $('#device h2').toggleClass('hide', false);\n"
- " $('#device p').toggleClass('hide', false);\n"
- " $('#tuning table').toggleClass('hide', true);\n"
- " $('#tuning h2').toggleClass('hide', true);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', true);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
+ "<script type='text/javascript'>\n"
+ "\n"
+ "var powertop = {\n"
+ " blocks: {\n"
+ " system: 'System Info',\n"
+ " summary: 'Summary',\n"
+ " cpuidle: 'CPU Idle',\n"
+ " cpufreq: 'CPU Frequency',\n"
+ " software: 'Software Info',\n"
+ " device: 'Device Info',\n"
+ " tuning: 'Tuning'\n"
+ " },\n"
+ " cadd: function(idx, c){\n"
+ " var el = document.getElementById(idx);\n"
+ " if (el) {\n"
+ " var cn = el.className;\n"
+ " if (cn.indexOf(c) != -1)\n"
+ " return;\n"
+ " cn += ' ' + c;\n"
+ " el.className = cn;\n"
+ " }\n"
+ " },\n"
+ " crm: function(id, c){\n"
+ " var el = document.getElementById(id);\n"
+ " if (el) {\n"
+ " var cn = el.className\n"
+ " while (cn.indexOf(' ' + c) != -1)\n"
+ " cn = cn.replace(' ' + c,'');\n"
+ " el.className = cn;\n"
+ " }\n"
+ " },\n"
+ " newbutton: function(id, txt) {\n"
+ " var x = document.createElement('div');\n"
+ " x.id = id + '_button';\n"
+ " x.className = 'nav_button';\n"
+ " x.textContent = txt;\n"
+ " x.innerText = txt;\n"
+ " x.onclick = function() { powertop.toggle(id); };\n"
+ " return x;\n"
+ " },\n"
+ " setupbuttons: function() {\n"
+ " var t = document.getElementById('top');\n"
+ " if (t) {\n"
+ " for (var b in powertop.blocks) {\n"
+ " t.appendChild(powertop.newbutton(b, powertop.blocks[b]));\n"
+ " }\n"
+ " t.appendChild(powertop.newbutton('all', 'All'));\n"
+ " }\n"
+ " },\n"
+ " toggle: function(b) {\n"
+ " powertop.baseall();\n"
+ " if (b == 'all') {\n"
+ " for (var c in powertop.blocks) {\n"
+ " powertop.crm(c, 'hide');\n"
+ " }\n"
+ " } else {\n"
+ " powertop.crm(b, 'hide');\n"
+ " }\n"
+ " powertop.cadd(b + '_button', 'pressed');\n"
+ " },\n"
+ " baseall: function() {\n"
+ " for (var b in powertop.blocks) {\n"
+ " powertop.cadd(b, 'hide');\n"
+ " powertop.crm(b + '_button', 'pressed');\n"
+ " }\n"
+ " powertop.cadd('all', 'hide');\n"
+ " powertop.crm('all_button', 'pressed');\n"
+ " },\n"
+ " onload: function() {\n"
+ " powertop.setupbuttons();\n"
+ " powertop.toggle('summary');\n"
+ " }\n"
"}\n"
"\n"
- "function toggleTuning() {\n"
- " $('#system table').toggleClass('hide', true);\n"
- " $('#system h2').toggleClass('hide', true);\n"
- " $('#summary table').toggleClass('hide', true);\n"
- " $('#summary h2').toggleClass('hide', true);\n"
- " $('#summary p').toggleClass('hide', true);\n"
- " $('#cpuidle table').toggleClass('hide', true);\n"
- " $('#cpuidle h2').toggleClass('hide', true);\n"
- " $('#cpufreq table').toggleClass('hide', true);\n"
- " $('#cpufreq h2').toggleClass('hide', true);\n"
- " $('#software table').toggleClass('hide', true);\n"
- " $('#software h2').toggleClass('hide', true);\n"
- " $('#device table').toggleClass('hide', true);\n"
- " $('#device h2').toggleClass('hide', true);\n"
- " $('#device p').toggleClass('hide', true);\n"
- " $('#tuning table').toggleClass('hide', false);\n"
- " $('#tuning h2').toggleClass('hide', false);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', true);\n"
- " $('#top .AllButton').toggleClass('pressed', false);\n"
- "}\n"
- "function toggleAll() {\n"
- " $('#system table').toggleClass('hide', false);\n"
- " $('#system h2').toggleClass('hide', false);\n"
- " $('#summary table').toggleClass('hide', false);\n"
- " $('#summary h2').toggleClass('hide', false);\n"
- " $('#summary p').toggleClass('hide', false);\n"
- " $('#cpuidle table').toggleClass('hide', false);\n"
- " $('#cpuidle h2').toggleClass('hide', false);\n"
- " $('#cpufreq table').toggleClass('hide', false);\n"
- " $('#cpufreq h2').toggleClass('hide', false);\n"
- " $('#software table').toggleClass('hide', false);\n"
- " $('#software h2').toggleClass('hide', false);\n"
- " $('#device table').toggleClass('hide', false);\n"
- " $('#device h2').toggleClass('hide', false);\n"
- " $('#device p').toggleClass('hide', false);\n"
- " $('#tuning table').toggleClass('hide', false);\n"
- " $('#tuning h2').toggleClass('hide', false);\n"
- " $('#top .SystemButton').toggleClass('pressed', false);\n"
- " $('#top .SummaryButton').toggleClass('pressed', false);\n"
- " $('#top .CpuidleButton').toggleClass('pressed', false);\n"
- " $('#top .CpufreqButton').toggleClass('pressed', false);\n"
- " $('#top .SoftwareButton').toggleClass('pressed', false);\n"
- " $('#top .DeviceButton').toggleClass('pressed', false);\n"
- " $('#top .TuningButton').toggleClass('pressed', false);\n"
- " $('#top .AllButton').toggleClass('pressed', true);\n"
- "}\n"
"</script>\n"
- "<style type=\"text/css\">\n"
+ "<style type='text/css'>\n"
"table\n"
"{\n"
" background-color: #F8F8F8;\n"
" padding: 0; /* Amount of negative space around the\n"
" inside of the body */\n"
"}\n"
- "#top h1 {\n"
- " margin: 0;\n"
- " padding: 0;\n"
- "}\n"
- "#top h1 a {\n"
+ "#top {\n"
" background-color: #ccc;\n"
" border-bottom: 1px solid #666;\n"
" color: #222;\n"
" line-height: 28px;\n"
" border-width:0px 8px 0px 8px;\n"
"}\n"
- "#top div.SystemButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 6px;\n"
- "}\n"
- "#top div.SummaryButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 160px;\n"
- "}\n"
- "#top div.CpuidleButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 320px;\n"
- "}\n"
- "#top div.CpufreqButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 480px;\n"
- "}\n"
- "#top div.SoftwareButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 640px;\n"
- "}\n"
- "#top div.DeviceButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 800px;\n"
- "}\n"
- "#top div.TuningButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 960px;\n"
- "}\n"
- "#top div.AllButton {\n"
- " position: absolute;\n"
- " top: 7px;\n"
- " left: 1120px;\n"
+ "#top div.nav_button {\n"
+ " display: inline;\n"
+ " cursor: pointer;\n"
+ " padding: 0.3em 0.5em;\n"
+ " margin: 0 0.2em;\n"
"}\n"
+ "\n"
"div.pressed {\n"
" background-color: #000000;\n"
" border: 1px solid #000000;\n"
" color: #000000;\n"
- " display: block;\n"
- " border-width:0px 8px 0px 8px;\n"
- " -webkit-border-top-left-radius: 8px;\n"
- " -webkit-border-top-right-radius: 8px;\n"
- " -webkit-border-bottom-left-radius: 8px;\n"
- " -webkit-border-bottom-right-radius: 8px;\n"
- "}\n"
- "table.hide {\n"
- " display: none;\n"
+ " border-radius: 8px;\n"
"}\n"
- "h2.hide {\n"
- " display: none;\n"
- "}\n"
- "p.hide {\n"
- " display: none\n"
+ "div.hide {\n"
+ " display: none;\n"
"}\n"
"</style>\n"
"</head>\n"
"\n"
- "<body>\n"
- "\n"
+ "<body onload='powertop.onload();'>\n"
"<div id='top'>\n"
- "<h1><a href='#top'> </a></h1>\n"
"</div>\n"
"\n"
;
end_active = 0;
end_slumber = 0;
+ end_devslp = 0;
end_partial = 0;
start_active = 0;
start_slumber = 0;
+ start_devslp = 0;
start_partial = 0;
strncpy(sysfs_path, path, sizeof(sysfs_path));
sprintf(filename, "%s/ahci_alpm_slumber", sysfs_path);
file.open(filename, ios::in);
if (file) {
- file >> start_slumber;
+ file >> start_slumber;
+ }
+ file.close();
+ sprintf(filename, "%s/ahci_alpm_devslp", sysfs_path);
+ file.open(filename, ios::in);
+ if (file) {
+ file >> start_devslp;
}
file.close();
}
file >> end_slumber;
}
file.close();
+ sprintf(filename, "%s/ahci_alpm_devslp", sysfs_path);
+ file.open(filename, ios::in);
+ if (file) {
+ file >> end_devslp;
+ }
+ file.close();
}
catch (std::ios_base::failure &c) {
fprintf(stderr, "%s\n", c.what());
if (end_active < start_active)
end_active = start_active;
- p = (end_active - start_active) / (0.001 + end_active + end_partial + end_slumber - start_active - start_partial - start_slumber) * 100.0;
+ p = (end_active - start_active) / (0.001 + end_active + end_partial + end_slumber + end_devslp - start_active - start_partial - start_slumber - start_devslp) * 100.0;
if (p < 0)
p = 0;
sprintf(powername, "%s-active", name);
if (end_partial < start_partial)
end_partial = start_partial;
- p = (end_partial - start_partial) / (0.001 + end_active + end_partial + end_slumber - start_active - start_partial - start_slumber) * 100.0;
+ p = (end_partial - start_partial) / (0.001 + end_active + end_partial + end_slumber + end_devslp - start_active - start_partial - start_slumber - start_devslp) * 100.0;
if (p < 0)
p = 0;
sprintf(powername, "%s-partial", name);
{
double p;
- p = (end_partial - start_partial + end_active - start_active) / (0.001 + end_active + end_partial + end_slumber - start_active - start_partial - start_slumber) * 100.0;
+ p = (end_partial - start_partial + end_active - start_active) / (0.001 + end_active + end_partial + end_slumber + end_devslp - start_active - start_partial - start_slumber - start_devslp) * 100.0;
if (p < 0)
p = 0;
uint64_t start_active, end_active;
uint64_t start_partial, end_partial;
uint64_t start_slumber, end_slumber;
+ uint64_t start_devslp, end_devslp;
char sysfs_path[4096];
char name[4096];
int partial_rindex;
#include <stdio.h>
#include <sys/types.h>
-#include <dirent.h>
#include <unistd.h>
-
using namespace std;
#include "device.h"
#include <string.h>
#include <unistd.h>
-alsa::alsa(char *_name, char *path): device()
+alsa::alsa(const char *_name, const char *path): device()
{
ifstream file;
return name;
}
-void create_all_alsa(void)
+static void create_all_alsa_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
+ class alsa *bl;
+ ofstream file;
- dir = opendir("/sys/class/sound/card0/");
- if (!dir)
+ if (strncmp(d_name, "hwC", 3) != 0)
return;
- while (1) {
- class alsa *bl;
- ofstream file;
- entry = readdir(dir);
- if (!entry)
- break;
- if (strncmp(entry->d_name, "hwC", 3) != 0)
- continue;
- sprintf(filename, "/sys/class/sound/card0/%s/power_on_acct", entry->d_name);
-
- if (access(filename, R_OK) != 0)
- continue;
-
- sprintf(filename, "/sys/class/sound/card0/%s", entry->d_name);
-
- bl = new class alsa(entry->d_name, filename);
- all_devices.push_back(bl);
- register_parameter("alsa-codec-power", 0.5);
- }
- closedir(dir);
-}
+ sprintf(filename, "/sys/class/sound/card0/%s/power_on_acct", d_name);
+ if (access(filename, R_OK) != 0)
+ return;
+ sprintf(filename, "/sys/class/sound/card0/%s", d_name);
+ bl = new class alsa(d_name, filename);
+ all_devices.push_back(bl);
+ register_parameter("alsa-codec-power", 0.5);
+}
+void create_all_alsa(void)
+{
+ process_directory("/sys/class/sound/card0/", create_all_alsa_callback);
+}
double alsa::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
{
int rindex;
public:
- alsa(char *_name, char *path);
+ alsa(const char *_name, const char *path);
virtual void start_measurement(void);
virtual void end_measurement(void);
extern void create_all_alsa(void);
-#endif
\ No newline at end of file
+#endif
#include <string.h>
-backlight::backlight(char *_name, char *path): device()
+backlight::backlight(const char *_name, const char *path): device()
{
- char devname[128];
min_level = 0;
max_level = 0;
start_level = 0;
end_level = 0;
strncpy(sysfs_path, path, sizeof(sysfs_path));
register_sysfs_path(sysfs_path);
- sprintf(devname, "backlight:%s", _name);
- strncpy(name, devname, sizeof(name));
+ snprintf(name, sizeof(name) - 1, "backlight:%s", _name);
r_index = get_result_index(name);
r_index_power = 0;
}
return name;
}
-void create_all_backlights(void)
+static void create_all_backlights_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
+ class backlight *bl;
char filename[4096];
-
- dir = opendir("/sys/class/backlight/");
- if (!dir)
- return;
- while (1) {
- class backlight *bl;
- entry = readdir(dir);
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
- sprintf(filename, "/sys/class/backlight/%s", entry->d_name);
- bl = new class backlight(entry->d_name, filename);
- all_devices.push_back(bl);
- register_parameter("backlight");
- register_parameter("backlight-power");
- register_parameter("backlight-boost-40", 0, 0.5);
- register_parameter("backlight-boost-80", 0, 0.5);
- register_parameter("backlight-boost-100", 0, 0.5);
- }
- closedir(dir);
-
+ sprintf(filename, "/sys/class/backlight/%s", d_name);
+ bl = new class backlight(d_name, filename);
+ all_devices.push_back(bl);
}
-
+void create_all_backlights(void)
+{
+ process_directory("/sys/class/backlight/", create_all_backlights_callback);
+ register_parameter("backlight");
+ register_parameter("backlight-power");
+ register_parameter("backlight-boost-40", 0, 0.5);
+ register_parameter("backlight-boost-80", 0, 0.5);
+ register_parameter("backlight-boost-100", 0, 0.5);
+}
double backlight::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
{
int r_index_power;
public:
- backlight(char *_name, char *path);
+ backlight(const char *_name, const char *path);
virtual void start_measurement(void);
virtual void end_measurement(void);
extern void create_all_backlights(void);
-#endif
\ No newline at end of file
+#endif
--- /dev/null
+/*
+ * Copyright 2010, Intel Corporation
+ *
+ * This file is part of PowerTOP
+ *
+ * This program file 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; version 2 of the License.
+ *
+ * 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 in a file named COPYING; if not, write to the
+ * Free Software Foundation, Inc,
+ * 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ * or just google for it.
+ *
+ * Authors:
+ * Srinivas Pandruvada<Srinivas.Pandruvada@linux.intel.com>
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "../parameters/parameters.h"
+#include "gpu_rapl_device.h"
+
+gpu_rapl_device::gpu_rapl_device(i915gpu *parent)
+ : i915gpu(),
+ device_valid(false)
+{
+ last_time = time(NULL);
+ if (rapl.pp1_domain_present()) {
+ device_valid = true;
+ parent->add_child(this);
+ rapl.get_pp1_energy_status(&last_energy);
+ }
+}
+
+void gpu_rapl_device::start_measurement(void)
+{
+ last_time = time(NULL);
+
+ rapl.get_pp1_energy_status(&last_energy);
+}
+
+void gpu_rapl_device::end_measurement(void)
+{
+ time_t curr_time = time(NULL);
+ double energy;
+
+ consumed_power = 0.0;
+ if ((curr_time - last_time) > 0) {
+ rapl.get_pp1_energy_status(&energy);
+ consumed_power = (energy-last_energy)/(curr_time-last_time);
+ last_energy = energy;
+ last_time = curr_time;
+ }
+}
+
+double gpu_rapl_device::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
+{
+ if (rapl.pp1_domain_present())
+ return consumed_power;
+ else
+ return 0.0;
+}
/*
- * Copyright 2011, Intel Corporation
+ * Copyright 2010, Intel Corporation
*
* This file is part of PowerTOP
*
* or just google for it.
*
* Authors:
- * John Mathew <johnx.mathew@intel.com>
+ * Srinivas Pandruvada <Srinivas.Pandruvada@linux.intel.com>
*/
-#ifndef __INCLUDE_GUARD_POWER_SUPPLY_H
-#define __INCLUDE_GUARD_POWER_SUPPLY_H
+#ifndef _INCLUDE_GUARD_GPU_RAPL_DEVICE_H
+#define _INCLUDE_GUARD_GPU_RAPL_DEVICE_H
-#include "measurement.h"
+#include <vector>
+#include <string>
-class power_supply:public power_meter {
- char battery_name[256];
+using namespace std;
+
+#include <sys/time.h>
+#include "i915-gpu.h"
+#include "cpu/rapl/rapl_interface.h"
+
+class gpu_rapl_device: public i915gpu {
+
+ c_rapl_interface rapl;
+ time_t last_time;
+ double last_energy;
+ double consumed_power;
+ bool device_valid;
- double capacity;
- double rate;
- double voltage;
- void measure(void);
public:
- power_supply(const char *_battery_name);
+ gpu_rapl_device(i915gpu *parent);
+ virtual const char * class_name(void) { return "GPU core";};
+ virtual const char * device_name(void) { return "GPU core";};
+ bool device_present() { return device_valid;}
+ virtual double power_usage(struct result_bundle *result, struct parameter_bundle *bundle);
virtual void start_measurement(void);
virtual void end_measurement(void);
- virtual double joules_consumed(void);
- virtual double dev_capacity(void) { return capacity; };
};
+
#endif
#include "i915-gpu.h"
#include "../parameters/parameters.h"
#include "../process/powerconsumer.h"
+#include "gpu_rapl_device.h"
#include <string.h>
#include <unistd.h>
rindex = get_result_index("gpu-operations");
}
+const char * i915gpu::device_name(void)
+{
+ if (child_devices.size())
+ return "GPU misc";
+ else
+ return "GPU";
+}
+
void i915gpu::start_measurement(void)
{
}
{
char filename[4096];
class i915gpu *gpu;
+ gpu_rapl_device *rapl_dev;
strcpy(filename, "/sys/kernel/debug/tracing/events/i915/i915_gem_ring_dispatch/format");
gpu = new class i915gpu();
all_devices.push_back(gpu);
+
+ rapl_dev = new class gpu_rapl_device(gpu);
+ if (rapl_dev->device_present())
+ all_devices.push_back(rapl_dev);
}
double power;
double factor;
double util;
+ double child_power;
power = 0;
factor = get_parameter_value(index, bundle);
util = get_result_value(rindex, result);
power += util * factor / 100.0;
+ for (unsigned int i = 0; i < child_devices.size(); ++i) {
+ child_power = child_devices[i]->power_usage(result, bundle);
+ if ((power - child_power) > 0.0)
+ power -= child_power;
+ }
+
return power;
}
class i915gpu: public device {
int index;
int rindex;
+ vector<device *>child_devices;
+
public:
i915gpu();
virtual const char * class_name(void) { return "GPU";};
- virtual const char * device_name(void) { return "GPU";};
+ virtual const char * device_name(void);
virtual double power_usage(struct result_bundle *result, struct parameter_bundle *bundle);
virtual bool show_in_list(void) {return false;};
virtual const char * util_units(void) { return " ops/s"; };
+
+ virtual void add_child(device *dev_ptr) { child_devices.push_back(dev_ptr);}
};
extern void create_i915_gpu(void);
#include <stdio.h>
#include <sys/types.h>
-#include <dirent.h>
#include <libgen.h>
#include <stdlib.h>
#include <unistd.h>
return name;
}
-void netdev_callback(const char *d_name)
+static void netdev_callback(const char *d_name)
{
+ char devname[128];
+
std::string f_name("/sys/class/net/");
+ if (strcmp(d_name, "lo") == 0)
+ return;
+
f_name.append(d_name);
+ sprintf(devname, "%s-up", d_name);
+ register_parameter(devname);
+
+ sprintf(devname, "%s-powerunsave", d_name);
+ register_parameter(devname);
+
+ sprintf(devname, "%s-link-100", d_name);
+ register_parameter(devname);
+
+ sprintf(devname, "%s-link-1000", d_name);
+ register_parameter(devname);
+
+ sprintf(devname, "%s-link-high", d_name);
+ register_parameter(devname);
+
+ sprintf(devname, "%s-packets", d_name);
+ register_parameter(devname);
+
network *bl = new(std::nothrow) class network(d_name, f_name.c_str());
if (bl) {
all_devices.push_back(bl);
}
}
-
void create_all_nics(callback fn)
{
if (!fn)
#include <stdio.h>
#include <sys/types.h>
-#include <dirent.h>
#include <libgen.h>
#include <unistd.h>
return name;
}
-void create_all_rfkills(void)
+static void create_all_rfkills_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
char name[4096];
+ class rfkill *bl;
+ ifstream file;
- dir = opendir("/sys/class/rfkill/");
- if (!dir)
- return;
- while (1) {
- class rfkill *bl;
- ifstream file;
- entry = readdir(dir);
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
- sprintf(filename, "/sys/class/rfkill/%s/name", entry->d_name);
- strcpy(name, entry->d_name);
- file.open(filename, ios::in);
- if (file) {
- file.getline(name, 100);
- file.close();
- }
-
- sprintf(filename, "/sys/class/rfkill/%s", entry->d_name);
- bl = new class rfkill(name, filename);
- all_devices.push_back(bl);
+ sprintf(filename, "/sys/class/rfkill/%s/name", d_name);
+ strcpy(name, d_name);
+ file.open(filename, ios::in);
+ if (file) {
+ file.getline(name, 100);
+ file.close();
}
- closedir(dir);
+ sprintf(filename, "/sys/class/rfkill/%s", d_name);
+ bl = new class rfkill(name, filename);
+ all_devices.push_back(bl);
}
-
+void create_all_rfkills(void)
+{
+ process_directory("/sys/class/rfkill/", create_all_rfkills_callback);
+}
double rfkill::power_usage(struct result_bundle *result, struct parameter_bundle *bundle)
{
power += util * factor / 100.0;
return power;
-}
\ No newline at end of file
+}
#include "usb.h"
#include <string.h>
-
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
-#include <dirent.h>
#include "../lib.h"
#include "../parameters/parameters.h"
return power;
}
-
-void create_all_usb_devices(void)
+static void create_all_usb_devices_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
char filename[4096];
-
- dir = opendir("/sys/bus/usb/devices/");
- if (!dir)
+ ifstream file;
+ class usbdevice *usb;
+ char device_name[4096];
+ char vendorid[64], devid[64];
+ char devid_name[4096];
+
+ sprintf(filename, "/sys/bus/usb/devices/%s", d_name);
+ sprintf(device_name, "%s/power/active_duration", filename);
+ if (access(device_name, R_OK) != 0)
return;
- while (1) {
- ifstream file;
- class usbdevice *usb;
- char device_name[4096];
- char vendorid[64], devid[64];
- char devid_name[4096];
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/bus/usb/devices/%s", entry->d_name);
-
- sprintf(device_name, "%s/power/active_duration", filename);
- if (access(device_name, R_OK)!=0)
- continue;
-
- sprintf(device_name, "%s/idVendor", filename);
- file.open(device_name, ios::in);
- if (file)
- file.getline(vendorid, 64);
- file.close();
- sprintf(device_name, "%s/idProduct", filename);
- file.open(device_name, ios::in);
- if (file)
- file.getline(devid, 64);
- file.close();
-
- sprintf(devid_name, "usb-device-%s-%s", vendorid, devid);
- sprintf(device_name, "usb-device-%s-%s-%s", entry->d_name, vendorid, devid);
+ sprintf(device_name, "%s/idVendor", filename);
+ file.open(device_name, ios::in);
+ if (file)
+ file.getline(vendorid, 64);
+ file.close();
+ sprintf(device_name, "%s/idProduct", filename);
+ file.open(device_name, ios::in);
+ if (file)
+ file.getline(devid, 64);
+ file.close();
- if (result_device_exists(device_name))
- continue;
+ sprintf(devid_name, "usb-device-%s-%s", vendorid, devid);
+ sprintf(device_name, "usb-device-%s-%s-%s", d_name, vendorid, devid);
+ if (result_device_exists(device_name))
+ return;
- usb = new class usbdevice(device_name, filename, devid_name);
- all_devices.push_back(usb);
+ usb = new class usbdevice(device_name, filename, devid_name);
+ all_devices.push_back(usb);
+ register_parameter(devid_name, 0.1);
+}
- register_parameter(devid_name, 0.1);
- }
- closedir(dir);
+void create_all_usb_devices(void)
+{
+ process_directory("/sys/bus/usb/devices/", create_all_usb_devices_callback);
}
#include <limits>
#include <math.h>
#include <ncurses.h>
+#include <fcntl.h>
static int kallsyms_read = 0;
return content;
}
+void align_string(char *buffer, size_t min_sz, size_t max_sz)
+{
+ size_t sz;
+
+ /** mbsrtowcs() allows NULL dst and zero sz,
+ * comparing to mbstowcs(), which causes undefined
+ * behaviour under given circumstances*/
+
+ /* start with mbsrtowcs() local mbstate_t * and
+ * NULL dst pointer*/
+ sz = mbsrtowcs(NULL, (const char **)&buffer, max_sz, NULL);
+ if (sz == (size_t)-1) {
+ buffer[min_sz] = 0x00;
+ return;
+ }
+ while (sz < min_sz) {
+ strcat(buffer, " ");
+ sz++;
+ }
+}
void format_watts(double W, char *buffer, unsigned int len)
{
buffer[0] = 0;
char buf[32];
-
sprintf(buffer, _("%7sW"), fmt_prefix(W, buf));
if (W < 0.0001)
sprintf(buffer, _(" 0 mW"));
- while (mbstowcs(NULL,buffer,0) < len)
- strcat(buffer, " ");
+ align_string(buffer, len, len);
}
-
#ifndef HAVE_NO_PCI
static struct pci_access *pci_access;
break;
if (entry->d_name[0] == '.')
continue;
- if (strcmp(entry->d_name, "lo")==0)
- continue;
-
fn(entry->d_name);
}
-
closedir(dir);
}
/* to distinguish between getnstr error and empty line */
return ret || strlen(buf);
}
+
+int read_msr(int cpu, uint64_t offset, uint64_t *value)
+{
+ ssize_t retval;
+ uint64_t msr;
+ int fd;
+ char msr_path[256];
+
+ fd = sprintf(msr_path, "/dev/cpu/%d/msr", cpu);
+
+ if (access(msr_path, R_OK) != 0){
+ fd = sprintf(msr_path, "/dev/msr%d", cpu);
+
+ if (access(msr_path, R_OK) != 0){
+ fprintf(stderr,
+ _("Model-specific registers (MSR)\
+ not found (try enabling CONFIG_X86_MSR).\n"));
+ return -1;
+ }
+ }
+
+ fd = open(msr_path, O_RDONLY);
+ if (fd < 0)
+ return -1;
+ retval = pread(fd, &msr, sizeof msr, offset);
+ close(fd);
+ if (retval != sizeof msr) {
+ return -1;
+ }
+ *value = msr;
+
+ return retval;
+}
+
+int write_msr(int cpu, uint64_t offset, uint64_t value)
+{
+ ssize_t retval;
+ int fd;
+ char msr_path[256];
+
+ fd = sprintf(msr_path, "/dev/cpu/%d/msr", cpu);
+
+ if (access(msr_path, R_OK) != 0){
+ fd = sprintf(msr_path, "/dev/msr%d", cpu);
+
+ if (access(msr_path, R_OK) != 0){
+ fprintf(stderr,
+ _("Model-specific registers (MSR)\
+ not found (try enabling CONFIG_X86_MSR).\n"));
+ return -1;
+ }
+ }
+
+ fd = open(msr_path, O_WRONLY);
+ if (fd < 0)
+ return -1;
+ retval = pwrite(fd, &value, sizeof value, offset);
+ close(fd);
+ if (retval != sizeof value) {
+ return -1;
+ }
+
+ return retval;
+}
+
+#define UI_NOTIFY_BUFF_SZ 2048
+
+void ui_notify_user(const char *frmt, ...)
+{
+ char notify[UI_NOTIFY_BUFF_SZ];
+ va_list list;
+
+ start_color();
+ init_pair(1, COLOR_BLACK, COLOR_WHITE);
+ attron(COLOR_PAIR(1));
+ va_start(list, frmt);
+ /* there is no ncurses *print() function which takes
+ * int x, int y and va_list, this is why we use temp
+ * buffer */
+ vsnprintf(notify, UI_NOTIFY_BUFF_SZ - 1, frmt, list);
+ va_end(list);
+ mvprintw(1, 0, notify);
+ attroff(COLOR_PAIR(1));
+}
extern void process_directory(const char *d_name, callback fn);
extern int utf_ok;
extern int get_user_input(char *buf, unsigned sz);
+extern int read_msr(int cpu, uint64_t offset, uint64_t *value);
+extern int write_msr(int cpu, uint64_t offset, uint64_t value);
+extern void align_string(char *buffer, size_t min_sz, size_t max_sz);
+
+extern void ui_notify_user(const char *frmt, ...);
#endif
* Arjan van de Ven <arjan@linux.intel.com>
*/
#include <iostream>
+#include <fstream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <getopt.h>
#include <unistd.h>
#include <locale.h>
+#include <sys/resource.h>
#include "cpu/cpu.h"
#include "process/process.h"
#define DEBUGFS_MAGIC 0x64626720
+#define NR_OPEN_DEF 1024 * 1024
+
int debug_learning = 0;
unsigned time_out = 20;
int leave_powertop = 0;
{"version", no_argument, NULL, 'V'},
{"help",no_argument, NULL, 'u'}, /* u for usage */
{"calibrate",no_argument, NULL, 'c'},
+ {"auto-tune",no_argument, NULL, 'a'},
{"html", optional_argument, NULL, 'h'},
{"csv", optional_argument, NULL, 'C'},
{"extech", optional_argument, NULL, 'e'},
printf("--debug \t\t %s\n",_("run in \"debug\" mode"));
printf("--version \t\t %s\n",_("print version information"));
printf("--calibrate \t\t %s\n",_("runs powertop in calibration mode"));
+ printf("--auto-tune \t\t %s\n",_("Sets all tunable options to their GOOD setting"));
printf("--extech%s \t %s\n",_("[=devnode]"),_("uses an Extech Power Analyzer for measurements"));
printf("--html%s \t %s\n",_("[=FILENAME]"),_("generate a html report"));
printf("--csv%s \t %s\n",_("[=FILENAME]"),_("generate a csv report"));
c = getch();
switch (c) {
- case 353:
+ case KEY_BTAB:
show_prev_tab();
break;
- case 9:
+ case '\t':
show_next_tab();
break;
case KEY_RIGHT:
case KEY_UP:
cursor_up();
break;
- case 32:
- case 10:
+ case ' ':
+ case '\n':
cursor_enter();
break;
case 's':
return;
case KEY_EXIT:
case 'q':
- case 27:
+ case 27: // Escape
leave_powertop = 1;
return;
}
}
+static int get_nr_open(void) {
+ int nr_open = NR_OPEN_DEF;
+ ifstream file;
+
+ file.open("/proc/sys/fs/nr_open", ios::in);
+ if (file) {
+ file >> nr_open;
+ if (!file)
+ nr_open = NR_OPEN_DEF;
+ file.close();
+ }
+ return nr_open;
+}
+
static void powertop_init(void)
{
static char initialized = 0;
int ret;
struct statfs st_fs;
+ struct rlimit rlmt;
if (initialized)
return;
checkroot();
+
+ rlmt.rlim_cur = rlmt.rlim_max = get_nr_open();
+ setrlimit (RLIMIT_NOFILE, &rlmt);
+
ret = system("/sbin/modprobe cpufreq_stats > /dev/null 2>&1");
ret = system("/sbin/modprobe msr > /dev/null 2>&1");
statfs("/sys/kernel/debug", &st_fs);
int c;
char filename[4096];
char workload[4096] = {0,};
- int iterations = 1;
+ int iterations = 1, auto_tune = 0;
set_new_handler(out_of_memory);
print_usage();
exit(0);
break;
-
+ case 'a':
+ auto_tune = 1;
+ leave_powertop = 1;
+ break;
case 'c':
powertop_init();
calibrate();
end_pci_access();
exit(0);
}
-
- /* first one is short to not let the user wait too long */
init_display();
- one_measurement(1, NULL);
initialize_tuning();
- tuning_update_display();
- show_tab(0);
+ /* first one is short to not let the user wait too long */
+ one_measurement(1, NULL);
+
+ if (!auto_tune) {
+ tuning_update_display();
+ show_tab(0);
+ } else {
+ auto_toggle_tuning();
+ }
while (!leave_powertop) {
show_cur_tab();
#include "measurement.h"
#include "acpi.h"
#include "extech.h"
-#include "power_supply.h"
#include "sysfs.h"
#include "../parameters/parameters.h"
#include "../lib.h"
return 0.0;
}
-double power_meter::time_left(void)
-{
- double cap, rate;
-
- cap = dev_capacity();
- rate = joules_consumed();
-
- if (cap < 0.001)
- return 0.0;
-
- /* return 0.0 instead of INF+ */
- if (rate < 0.001)
- return 0.0;
-
- return cap / rate;
-}
-
vector<class power_meter *> power_meters;
void start_power_measurement(void)
double global_joules_consumed(void)
{
+ bool global_discharging = false;
double total = 0.0;
unsigned int i;
- for (i = 0; i < power_meters.size(); i++)
+
+ for (i = 0; i < power_meters.size(); i++) {
+ global_discharging |= power_meters[i]->is_discharging();
total += power_meters[i]->joules_consumed();
+ }
+ /* report global time left if at least one battery is discharging */
+ if (!global_discharging)
+ return 0.0;
all_results.power = total;
if (total < min_power && total > 0.01)
double global_time_left(void)
{
+ bool global_discharging = false;
double total_capacity = 0.0;
double total_rate = 0.0;
unsigned int i;
for (i = 0; i < power_meters.size(); i++) {
+ global_discharging |= power_meters[i]->is_discharging();
total_capacity += power_meters[i]->dev_capacity();
total_rate += power_meters[i]->joules_consumed();
}
+ /* report global time left if at least one battery is discharging */
+ if (!global_discharging)
+ return 0.0;
+
/* return 0.0 instead of INF+ */
if (total_rate < 0.001)
return 0.0;
power_meters.push_back(meter);
}
-void power_supply_callback(const char *d_name)
-{
- char filename[4096];
- char line[4096];
- ifstream file;
- bool discharging = false;
-
- sprintf(filename, "/sys/class/power_supply/%s/uevent", d_name);
- file.open(filename, ios::in);
- if (!file)
- return;
-
- while (file) {
- file.getline(line, 4096);
-
- if (strstr(line, "POWER_SUPPLY_STATUS") && strstr(line, "Discharging"))
- discharging = true;
- }
- file.close();
-
- if (!discharging)
- return;
-
- class power_supply *power;
- power = new(std::nothrow) class power_supply(d_name);
- if (power)
- power_meters.push_back(power);
-}
-
void detect_power_meters(void)
{
process_directory("/sys/class/power_supply", sysfs_power_meters_callback);
using namespace std;
class power_meter {
+ bool discharging;
public:
+ virtual ~power_meter() {};
+
virtual void start_measurement(void);
virtual void end_measurement(void);
-
virtual double joules_consumed(void);
- virtual double dev_capacity(void) { return 0.0;}; /* in Joules */
- virtual double time_left(void);
+ virtual double dev_capacity(void)
+ {
+ return 0.0; /* in Joules */
+ }
- virtual ~power_meter() {};
-};
+ virtual void set_discharging(bool d)
+ {
+ discharging = d;
+ }
+ virtual bool is_discharging()
+ {
+ return discharging;
+ }
+};
extern vector<class power_meter *> power_meters;
extern void detect_power_meters(void);
extern void extech_power_meter(const char *devnode);
-
extern double min_power;
-#endif
\ No newline at end of file
+#endif
+++ /dev/null
-/*
- * Copyright 2011, Intel Corporation
- *
- * This file is part of PowerTOP
- *
- * This program file 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; version 2 of the License.
- *
- * 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 in a file named COPYING; if not, write to the
- * Free Software Foundation, Inc,
- * 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301 USA
- * or just google for it.
- *
- * Authors:
- * John Mathew <johnx.mathew@intel.com>
- */
-#include "measurement.h"
-#include "power_supply.h"
-#include <iostream>
-#include <fstream>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-using namespace std;
-
-power_supply::power_supply(const char *supply_name)
-{
- rate = 0.0;
- capacity = 0.0;
- voltage = 0.0;
- strncpy(battery_name, supply_name, sizeof(battery_name));
-}
-
-/*
-POWER_SUPPLY_NAME=msic-battery
-POWER_SUPPLY_STATUS=Discharging
-POWER_SUPPLY_HEALTH=Cold
-POWER_SUPPLY_PRESENT=1
-POWER_SUPPLY_TECHNOLOGY=Li-ion
-POWER_SUPPLY_VOLTAGE_MAX_DESIGN=4200000
-POWER_SUPPLY_VOLTAGE_NOW=4119000
-POWER_SUPPLY_CURRENT_NOW=-290000
-POWER_SUPPLY_CHARGE_NOW=1503000
-POWER_SUPPLY_CHARGE_COUNTER=-254923
-POWER_SUPPLY_CHARGE_FULL_DESIGN=1500000
-POWER_SUPPLY_CHARGE_FULL=1500000
-POWER_SUPPLY_CHARGE_AVG=32762000
-POWER_SUPPLY_ENERGY_FULL=6300000
-POWER_SUPPLY_ENERGY_NOW=6235000
-POWER_SUPPLY_CAPACITY_LEVEL=Full
-POWER_SUPPLY_CAPACITY=100
-POWER_SUPPLY_TEMP=-340
-POWER_SUPPLY_MODEL_NAME=CDK0
-POWER_SUPPLY_MANUFACTURER=IN
-
-Quoting include/linux/power_supply.h:
-
-All voltages, currents, charges, energies, time and temperatures in µV,
-µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
-stated. It's driver's job to convert its raw values to units in which
-this class operates.
-*/
-
-void power_supply::measure(void)
-{
- char filename[4096];
- char line[4096];
- ifstream file;
-
- double _power_rate = 0;
- double _current_rate = 0;
- double _capacity = 0;
- double _voltage = 0;
-
- rate = 0;
- voltage = 0;
- capacity = 0;
-
- sprintf(filename, "/sys/class/power_supply/%s/uevent", battery_name);
-
- file.open(filename, ios::in);
- if (!file)
- return;
-
- while (file) {
- char *c;
- file.getline(line, 4096);
-
- if (strstr(line, "PRESENT")) {
- c = strchr(line, '=');
- c++;
- if(*c == '0'){
- printf ("Battery not present");
- return;
- }
- }
- if (strstr(line, "CURRENT_NOW")) {
- c = strchr(line, '=');
- c++;
- if(*c == '-') c++; // ignoring the negative sign
- _current_rate = strtoull(c, NULL, 10);
- if (c) {
- //printf ("CURRENT: %f. \n",_current_rate);
- } else {
- _current_rate = 0;
- }
- }
- if (strstr(line, "POWER_NOW")) {
- c = strchr(line, '=');
- c++;
- _power_rate = strtoull(c, NULL, 10);
- if (c) {
- //printf ("POWER: %f. \n",_power_rate);
- } else {
- _power_rate = 0;
- }
- }
- if (strstr(line, "CAPACITY=")) {
- c = strchr(line, '=');
- c++;
- _capacity = strtoull(c, NULL, 10);
- if (c) {
- //printf ("CAPACITY: %f. \n",_capacity);
- } else {
- _capacity = 0;
- }
- }
- if (strstr(line, "VOLTAGE_NOW")) {
- c = strchr(line, '=');
- c++;
- while (*c == ' ') c++;
- _voltage = strtoull(c, NULL, 10);
- if (c) {
- //printf ("VOLTAGE_NOW: %f. \n",_voltage);
- } else {
- _voltage = 0;
- }
- }
- }
- file.close();
-
- if(_voltage) {
- _voltage = _voltage / 1000.0;
- voltage = _voltage;
- } else {
- voltage = 0.0;
- }
-
- if(_power_rate)
- {
- rate = _power_rate / 1000000.0;
- }
- else if(_current_rate) {
- _current_rate = _current_rate / 1000.0;
- rate = _current_rate * _voltage;
- } else {
- rate = 0.0;
- }
-
- if(_capacity)
- capacity = _capacity;
- else
- capacity = 0.0;
-}
-
-
-void power_supply::end_measurement(void)
-{
- measure();
-}
-
-void power_supply::start_measurement(void)
-{
- /* ACPI battery state is a lagging indication, lets only measure at the end */
-}
-
-
-double power_supply::joules_consumed(void)
-{
- return rate;
-}
rate = 0.0;
capacity = 0.0;
+ this->set_discharging(false);
if (!is_present())
return;
- if (read_sysfs_string("/sys/class/power_supply/%s/status", name) != "Discharging")
- return;
+ /** do not jump over. we may have discharging battery */
+ if (read_sysfs_string("/sys/class/power_supply/%s/status", name) == "Discharging")
+ this->set_discharging(true);
got_rate = set_rate_from_power();
got_capacity = set_capacity_from_energy();
}
}
-
void sysfs_power_meter::end_measurement(void)
{
measure();
if (!bpi)
bpi = get_param_index("base power");
- power = parameters->parameters[bpi];
-
- for (i = 0; i < all_devices.size(); i++) {
-
+ for (i = 0; i < all_devices.size(); i++)
power += all_devices[i]->power_usage(results, parameters);
- }
-// printf("result power is %6.2f guessed is %6.2f\n", results->power, power);
+
parameters->actual_power = results->power;
parameters->guessed_power = power;
/* scale the squared error by the actual power so that non-idle data points weigh heavier */
parameters->score += results->power * (power - results->power) * (power - results->power);
-
+ parameters->parameters[bpi] = power;
return power;
}
#include <iostream>
#include <fstream>
+#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
{
struct perf_event_attr attr;
int ret;
+ int err;
struct {
__u64 count;
perf_fd = sys_perf_event_open(&attr, -1, _cpu, -1, 0);
if (perf_fd < 0) {
+ err = errno;
reset_display();
- fprintf(stderr, _("PowerTOP %s needs the kernel to support the 'perf' subsystem\n"), POWERTOP_VERSION);
- fprintf(stderr, _("as well as support for trace points in the kernel:\n"));
- fprintf(stderr, "CONFIG_PERF_EVENTS=y\nCONFIG_PERF_COUNTERS=y\nCONFIG_TRACEPOINTS=y\nCONFIG_TRACING=y\n");
+ if (err == EMFILE)
+ fprintf(stderr, _("Too many open files, please increase the limit of open file descriptors.\n"));
+ else {
+ fprintf(stderr, _("PowerTOP %s needs the kernel to support the 'perf' subsystem\n"), POWERTOP_VERSION);
+ fprintf(stderr, _("as well as support for trace points in the kernel:\n"));
+ fprintf(stderr, "CONFIG_PERF_EVENTS=y\nCONFIG_PERF_COUNTERS=y\nCONFIG_TRACEPOINTS=y\nCONFIG_TRACING=y\n");
+ }
exit(EXIT_FAILURE);
}
if (read(perf_fd, &read_data, sizeof(read_data)) == -1) {
if (perf_event::pevent->ref_count == 1) {
pevent_free(perf_event::pevent);
perf_event::pevent = NULL;
+ clear();
} else
pevent_unref(perf_event::pevent);
}
buffer[len] = '\0';
}
out:
+ close(fd);
return buffer;
}
return (timestamp(I)<timestamp(J));
}
+/*
+ * sample's PERF_SAMPLE_CPU cpu nr is a raw_smp_processor_id() by the
+ * time of perf_event_output(), which may differ from struct perf_event
+ * cpu, thus we need to fix sample->trace.cpu.
+ */
+static void fixup_sample_trace_cpu(struct perf_sample *sample)
+{
+ struct event_format *event;
+ struct pevent_record rec;
+ unsigned long long cpu_nr;
+ int type;
+ int ret;
+
+ rec.data = &sample->data;
+ type = pevent_data_type(perf_event::pevent, &rec);
+ event = pevent_find_event(perf_event::pevent, type);
+ if (!event)
+ return;
+ /** don't touch trace if event does not contain cpu_id field*/
+ ret = pevent_get_field_val(NULL, event, "cpu_id", &rec, &cpu_nr, 0);
+ if (ret < 0)
+ return;
+ sample->trace.cpu = cpu_nr;
+}
+
void perf_bundle::process(void)
{
unsigned int i;
if (sample->header.type != PERF_RECORD_SAMPLE)
continue;
+ fixup_sample_trace_cpu(sample);
handle_trace_point(&sample->data, sample->trace.cpu, sample->trace.time);
}
}
<head>
<title>PowerTOP report</title>
<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">
-<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>
-<script type=\"text/javascript\">
-$(document).ready(function(){
-
- $('#system h2').addClass('hide');
- $('#system table').addClass('hide');
- $('#cpuidle h2').addClass('hide');
- $('#cpuidle table').addClass('hide');
- $('#cpufreq h2').addClass('hide');
- $('#cpufreq table').addClass('hide');
- $('#software h2').addClass('hide');
- $('#software table').addClass('hide');
- $('#device h2').addClass('hide');
- $('#device table').addClass('hide');
- $('#device p').addClass('hide');
- $('#tuning h2').addClass('hide');
- $('#tuning table').addClass('hide');
-
- $('#top').append('<div class=\"SystemButton\" onclick=\"toggleSystem()\">System Info</div>');
- $('#top').append('<div class=\"SummaryButton\" onclick=\"toggleSummary()\">Summary</div>');
- $('#top').append('<div class=\"CpuidleButton\" onclick=\"toggleCpuidle()\">CPU Idle</div>');
- $('#top').append('<div class=\"CpufreqButton\" onclick=\"toggleCpufreq()\">CPU Frequency</div>');
- $('#top').append('<div class=\"SoftwareButton\" onclick=\"toggleSoftware()\">Software info</div>');
- $('#top').append('<div class=\"DeviceButton\" onclick=\"toggleDevice()\">Device Info</div>');
- $('#top').append('<div class=\"TuningButton\" onclick=\"toggleTuning()\">Tuning</div>');
- $('#top').append('<div class=\"AllButton\" onclick=\"toggleAll()\">All</div>');
- $('#top .SummaryButton').toggleClass('pressed');
-
- }
- );
-function toggleDummy() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-function toggleSystem() {
- $('#system table').toggleClass('hide', false);
- $('#system h2').toggleClass('hide', false);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', true);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-function toggleSummary() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', false);
- $('#summary h2').toggleClass('hide', false);
- $('#summary p').toggleClass('hide', false);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', true);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-function toggleCpuidle() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', false);
- $('#cpuidle h2').toggleClass('hide', false);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', true);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-
-}
-function toggleCpufreq() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', false);
- $('#cpufreq h2').toggleClass('hide', false);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', true);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-
-function toggleSoftware() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', false);
- $('#software h2').toggleClass('hide', false);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', true);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-
-function toggleDevice() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', false);
- $('#device h2').toggleClass('hide', false);
- $('#device p').toggleClass('hide', false);
- $('#tuning table').toggleClass('hide', true);
- $('#tuning h2').toggleClass('hide', true);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', true);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', false);
+<script type='text/javascript'>
+
+var powertop = {
+ blocks: {
+ system: 'System Info',
+ summary: 'Summary',
+ cpuidle: 'CPU Idle',
+ cpufreq: 'CPU Frequency',
+ software: 'Software Info',
+ device: 'Device Info',
+ tuning: 'Tuning'
+ },
+ cadd: function(idx, c){
+ var el = document.getElementById(idx);
+ if (el) {
+ var cn = el.className;
+ if (cn.indexOf(c) != -1)
+ return;
+ cn += ' ' + c;
+ el.className = cn;
+ }
+ },
+ crm: function(id, c){
+ var el = document.getElementById(id);
+ if (el) {
+ var cn = el.className
+ while (cn.indexOf(' ' + c) != -1)
+ cn = cn.replace(' ' + c,'');
+ el.className = cn;
+ }
+ },
+ newbutton: function(id, txt) {
+ var x = document.createElement('div');
+ x.id = id + '_button';
+ x.className = 'nav_button';
+ x.textContent = txt;
+ x.innerText = txt;
+ x.onclick = function() { powertop.toggle(id); };
+ return x;
+ },
+ setupbuttons: function() {
+ var t = document.getElementById('top');
+ if (t) {
+ for (var b in powertop.blocks) {
+ t.appendChild(powertop.newbutton(b, powertop.blocks[b]));
+ }
+ t.appendChild(powertop.newbutton('all', 'All'));
+ }
+ },
+ toggle: function(b) {
+ powertop.baseall();
+ if (b == 'all') {
+ for (var c in powertop.blocks) {
+ powertop.crm(c, 'hide');
+ }
+ } else {
+ powertop.crm(b, 'hide');
+ }
+ powertop.cadd(b + '_button', 'pressed');
+ },
+ baseall: function() {
+ for (var b in powertop.blocks) {
+ powertop.cadd(b, 'hide');
+ powertop.crm(b + '_button', 'pressed');
+ }
+ powertop.cadd('all', 'hide');
+ powertop.crm('all_button', 'pressed');
+ },
+ onload: function() {
+ powertop.setupbuttons();
+ powertop.toggle('summary');
+ }
}
-function toggleTuning() {
- $('#system table').toggleClass('hide', true);
- $('#system h2').toggleClass('hide', true);
- $('#summary table').toggleClass('hide', true);
- $('#summary h2').toggleClass('hide', true);
- $('#summary p').toggleClass('hide', true);
- $('#cpuidle table').toggleClass('hide', true);
- $('#cpuidle h2').toggleClass('hide', true);
- $('#cpufreq table').toggleClass('hide', true);
- $('#cpufreq h2').toggleClass('hide', true);
- $('#software table').toggleClass('hide', true);
- $('#software h2').toggleClass('hide', true);
- $('#device table').toggleClass('hide', true);
- $('#device h2').toggleClass('hide', true);
- $('#device p').toggleClass('hide', true);
- $('#tuning table').toggleClass('hide', false);
- $('#tuning h2').toggleClass('hide', false);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', true);
- $('#top .AllButton').toggleClass('pressed', false);
-}
-function toggleAll() {
- $('#system table').toggleClass('hide', false);
- $('#system h2').toggleClass('hide', false);
- $('#summary table').toggleClass('hide', false);
- $('#summary h2').toggleClass('hide', false);
- $('#summary p').toggleClass('hide', false);
- $('#cpuidle table').toggleClass('hide', false);
- $('#cpuidle h2').toggleClass('hide', false);
- $('#cpufreq table').toggleClass('hide', false);
- $('#cpufreq h2').toggleClass('hide', false);
- $('#software table').toggleClass('hide', false);
- $('#software h2').toggleClass('hide', false);
- $('#device table').toggleClass('hide', false);
- $('#device h2').toggleClass('hide', false);
- $('#device p').toggleClass('hide', false);
- $('#tuning table').toggleClass('hide', false);
- $('#tuning h2').toggleClass('hide', false);
- $('#top .SystemButton').toggleClass('pressed', false);
- $('#top .SummaryButton').toggleClass('pressed', false);
- $('#top .CpuidleButton').toggleClass('pressed', false);
- $('#top .CpufreqButton').toggleClass('pressed', false);
- $('#top .SoftwareButton').toggleClass('pressed', false);
- $('#top .DeviceButton').toggleClass('pressed', false);
- $('#top .TuningButton').toggleClass('pressed', false);
- $('#top .AllButton').toggleClass('pressed', true);
-}
</script>
-<style type=\"text/css\">
+<style type='text/css'>
table
{
background-color: #F8F8F8;
padding: 0; /* Amount of negative space around the
inside of the body */
}
-#top h1 {
- margin: 0;
- padding: 0;
-}
-#top h1 a {
+#top {
background-color: #ccc;
border-bottom: 1px solid #666;
color: #222;
line-height: 28px;
border-width:0px 8px 0px 8px;
}
-#top div.SystemButton {
- position: absolute;
- top: 7px;
- left: 6px;
-}
-#top div.SummaryButton {
- position: absolute;
- top: 7px;
- left: 160px;
-}
-#top div.CpuidleButton {
- position: absolute;
- top: 7px;
- left: 320px;
-}
-#top div.CpufreqButton {
- position: absolute;
- top: 7px;
- left: 480px;
-}
-#top div.SoftwareButton {
- position: absolute;
- top: 7px;
- left: 640px;
-}
-#top div.DeviceButton {
- position: absolute;
- top: 7px;
- left: 800px;
-}
-#top div.TuningButton {
- position: absolute;
- top: 7px;
- left: 960px;
-}
-#top div.AllButton {
- position: absolute;
- top: 7px;
- left: 1120px;
+#top div.nav_button {
+ display: inline;
+ cursor: pointer;
+ padding: 0.3em 0.5em;
+ margin: 0 0.2em;
}
+
div.pressed {
background-color: #000000;
border: 1px solid #000000;
color: #000000;
- display: block;
- border-width:0px 8px 0px 8px;
- -webkit-border-top-left-radius: 8px;
- -webkit-border-top-right-radius: 8px;
- -webkit-border-bottom-left-radius: 8px;
- -webkit-border-bottom-right-radius: 8px;
-}
-table.hide {
- display: none;
+ border-radius: 8px;
}
-h2.hide {
- display: none;
-}
-p.hide {
- display: none
+div.hide {
+ display: none;
}
</style>
</head>
-<body>
-
+<body onload='powertop.onload();'>
<div id='top'>
-<h1><a href='#top'> </a></h1>
</div>
}
else if (strcmp(event->name, "cpu_idle") == 0) {
ret = pevent_get_field_val(NULL, event, "state", &rec, &val, 0);
- if (val == 4294967295)
+ if (val == (unsigned int)-1)
consume_blame(cpu);
else
set_wakeup_pending(cpu);
char usage[20];
char events[20];
char descr[128];
- format_watts(all_power[i]->Witts(), power, 10);
+ format_watts(all_power[i]->Witts(), power, 10);
if (!show_power)
strcpy(power, " ");
sprintf(name, "%s", all_power[i]->type());
- while (mbstowcs(NULL,name,0) < 14) strcat(name, " ");
+ align_string(name, 14, 20);
if (all_power[i]->events() == 0 && all_power[i]->usage() == 0 && all_power[i]->Witts() == 0)
break;
else
sprintf(usage, "%5i%s", (int)all_power[i]->usage(), all_power[i]->usage_units());
}
- while (mbstowcs(NULL,usage,0) < 14) strcat(usage, " ");
+
+ align_string(usage, 14, 20);
+
sprintf(events, "%5.1f", all_power[i]->events());
if (!all_power[i]->show_events())
events[0] = 0;
else if (all_power[i]->events() <= 0.3)
sprintf(events, "%5.2f", all_power[i]->events());
- while (strlen(events) < 12) strcat(events, " ");
+ align_string(events, 12, 20);
wprintw(win, "%s %s %s %s %s\n", power, usage, events, name, pretty_print(all_power[i]->description(), descr, 128));
}
}
#include "tuning.h"
#include "tunable.h"
+#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <utility>
#include <iostream>
#include <fstream>
-#include <unistd.h>
-#include <dirent.h>
#include <sys/socket.h>
#include <errno.h>
-#include <sys/types.h>
-#include <dirent.h>
#include <linux/types.h>
#include <net/if.h>
#include <linux/sockios.h>
void ethtunable_callback(const char *d_name)
{
- class ethernet_tunable *eth = new(std::nothrow) class ethernet_tunable(d_name);
+ class ethernet_tunable *eth;
+ if (strcmp(d_name, "lo") == 0)
+ return;
+ eth = new(std::nothrow) class ethernet_tunable(d_name);
if (eth)
all_tunables.push_back(eth);
}
void tuning_window::cursor_enter(void)
{
class tunable *tun;
-
+ const char *toggle_script;
tun = all_tunables[cursor_pos];
if (!tun)
return;
+ /** device will change its state so need to store toggle script before
+ * we toggle()*/
+ toggle_script = tun->toggle_script();
tun->toggle();
+ ui_notify_user(">> %s\n", toggle_script);
}
static bool tunables_sort(class tunable * i, class tunable * j)
}
all_untunables.clear();
}
+
+void auto_toggle_tuning()
+{
+ for (unsigned int i = 0; i < all_tunables.size(); i++) {
+ if (all_tunables[i]->good_bad() == TUNE_BAD)
+ all_tunables[i]->toggle();
+ }
+}
extern void tuning_update_display(void);
extern void report_show_tunables(void);
extern void clear_tuning(void);
-
-
-
+extern void auto_toggle_tuning(void);
#endif
#include <utility>
#include <iostream>
#include <fstream>
-#include <unistd.h>
-#include <sys/types.h>
-#include <dirent.h>
#include "../lib.h"
return toggle_good;
}
-void add_usb_tunables(void)
+static void add_usb_callback(const char *d_name)
{
- struct dirent *entry;
- DIR *dir;
+ class usb_tunable *usb;
char filename[4096];
- dir = opendir("/sys/bus/usb/devices/");
- if (!dir)
+ sprintf(filename, "/sys/bus/usb/devices/%s/power/control", d_name);
+ if (access(filename, R_OK) != 0)
return;
- while (1) {
- class usb_tunable *usb;
-
- entry = readdir(dir);
-
- if (!entry)
- break;
- if (entry->d_name[0] == '.')
- continue;
-
- sprintf(filename, "/sys/bus/usb/devices/%s/power/control", entry->d_name);
-
- if (access(filename, R_OK) != 0)
- continue;
-
- sprintf(filename, "/sys/bus/usb/devices/%s/power/active_duration", entry->d_name);
- if (access(filename, R_OK)!=0)
- continue;
- sprintf(filename, "/sys/bus/usb/devices/%s", entry->d_name);
-
- usb = new class usb_tunable(filename, entry->d_name);
+ sprintf(filename, "/sys/bus/usb/devices/%s/power/active_duration", d_name);
+ if (access(filename, R_OK)!=0)
+ return;
- all_tunables.push_back(usb);
+ sprintf(filename, "/sys/bus/usb/devices/%s", d_name);
+ usb = new class usb_tunable(filename, d_name);
+ all_tunables.push_back(usb);
+}
- }
- closedir(dir);
+void add_usb_tunables(void)
+{
+ process_directory("/sys/bus/usb/devices/", add_usb_callback);
}
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 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.
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
esac; \
- test $$am__dry = yes; \
- }
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = traceevent
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
SOURCES = $(libtraceevnet_la_SOURCES)
DIST_SOURCES = $(libtraceevnet_la_SOURCES)
am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
libtraceevnet.la: $(libtraceevnet_la_OBJECTS) $(libtraceevnet_la_DEPENDENCIES) $(EXTRA_libtraceevnet_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(libtraceevnet_la_OBJECTS) $(libtraceevnet_la_LIBADD) $(LIBS)
clean-libtool:
-rm -rf .libs _libs
-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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- 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; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(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; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir 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-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+ ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir 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-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Frederic Weisbecker gave his permission to relicense the code to
* the Lesser General Public License.
*/
-#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <ctype.h>
#include <errno.h>
+#include <stdint.h>
+#include <limits.h>
#include "event-parse.h"
#include "event-utils.h"
struct print_arg *alloc_arg(void)
{
- struct print_arg *arg;
-
- arg = malloc_or_die(sizeof(*arg));
- if (!arg)
- return NULL;
- memset(arg, 0, sizeof(*arg));
-
- return arg;
+ return calloc(1, sizeof(struct print_arg));
}
struct cmdline {
struct cmdline *cmdlines;
int i;
- cmdlines = malloc_or_die(sizeof(*cmdlines) * pevent->cmdline_count);
+ cmdlines = malloc(sizeof(*cmdlines) * pevent->cmdline_count);
+ if (!cmdlines)
+ return -1;
i = 0;
while (cmdlist) {
return 0;
}
-static char *find_cmdline(struct pevent *pevent, int pid)
+static const char *find_cmdline(struct pevent *pevent, int pid)
{
const struct cmdline *comm;
struct cmdline key;
if (!pid)
return "<idle>";
- if (!pevent->cmdlines)
- cmdline_init(pevent);
+ if (!pevent->cmdlines && cmdline_init(pevent))
+ return "<not enough memory for cmdlines!>";
key.pid = pid;
if (!pid)
return 1;
- if (!pevent->cmdlines)
- cmdline_init(pevent);
+ if (!pevent->cmdlines && cmdline_init(pevent))
+ return 0;
key.pid = pid;
return -1;
}
- cmdlines[pevent->cmdline_count].pid = pid;
cmdlines[pevent->cmdline_count].comm = strdup(comm);
- if (!cmdlines[pevent->cmdline_count].comm)
- die("malloc comm");
+ if (!cmdlines[pevent->cmdline_count].comm) {
+ free(cmdlines);
+ errno = ENOMEM;
+ return -1;
+ }
+
+ cmdlines[pevent->cmdline_count].pid = pid;
if (cmdlines[pevent->cmdline_count].comm)
pevent->cmdline_count++;
if (pevent->cmdlines)
return add_new_comm(pevent, comm, pid);
- item = malloc_or_die(sizeof(*item));
+ item = malloc(sizeof(*item));
+ if (!item)
+ return -1;
+
item->comm = strdup(comm);
- if (!item->comm)
- die("malloc comm");
+ if (!item->comm) {
+ free(item);
+ return -1;
+ }
item->pid = pid;
item->next = pevent->cmdlist;
struct func_map *func_map;
int i;
- func_map = malloc_or_die(sizeof(*func_map) * (pevent->func_count + 1));
+ func_map = malloc(sizeof(*func_map) * (pevent->func_count + 1));
+ if (!func_map)
+ return -1;
+
funclist = pevent->funclist;
i = 0;
int pevent_register_function(struct pevent *pevent, char *func,
unsigned long long addr, char *mod)
{
- struct func_list *item;
+ struct func_list *item = malloc(sizeof(*item));
- item = malloc_or_die(sizeof(*item));
+ if (!item)
+ return -1;
item->next = pevent->funclist;
item->func = strdup(func);
- if (mod)
+ if (!item->func)
+ goto out_free;
+
+ if (mod) {
item->mod = strdup(mod);
- else
+ if (!item->mod)
+ goto out_free_func;
+ } else
item->mod = NULL;
item->addr = addr;
- if (!item->func || (mod && !item->mod))
- die("malloc func");
-
pevent->funclist = item;
pevent->func_count++;
return 0;
+
+out_free_func:
+ free(item->func);
+ item->func = NULL;
+out_free:
+ free(item);
+ errno = ENOMEM;
+ return -1;
}
/**
return 0;
}
-static void printk_map_init(struct pevent *pevent)
+static int printk_map_init(struct pevent *pevent)
{
struct printk_list *printklist;
struct printk_list *item;
struct printk_map *printk_map;
int i;
- printk_map = malloc_or_die(sizeof(*printk_map) * (pevent->printk_count + 1));
+ printk_map = malloc(sizeof(*printk_map) * (pevent->printk_count + 1));
+ if (!printk_map)
+ return -1;
printklist = pevent->printklist;
pevent->printk_map = printk_map;
pevent->printklist = NULL;
+
+ return 0;
}
static struct printk_map *
struct printk_map *printk;
struct printk_map key;
- if (!pevent->printk_map)
- printk_map_init(pevent);
+ if (!pevent->printk_map && printk_map_init(pevent))
+ return NULL;
key.addr = addr;
int pevent_register_print_string(struct pevent *pevent, char *fmt,
unsigned long long addr)
{
- struct printk_list *item;
+ struct printk_list *item = malloc(sizeof(*item));
- item = malloc_or_die(sizeof(*item));
+ if (!item)
+ return -1;
item->next = pevent->printklist;
- item->printk = strdup(fmt);
item->addr = addr;
+ item->printk = strdup(fmt);
if (!item->printk)
- die("malloc fmt");
+ goto out_free;
pevent->printklist = item;
pevent->printk_count++;
return 0;
+
+out_free:
+ free(item);
+ errno = ENOMEM;
+ return -1;
}
/**
static struct event_format *alloc_event(void)
{
- struct event_format *event;
-
- event = malloc(sizeof(*event));
- if (!event)
- return NULL;
- memset(event, 0, sizeof(*event));
-
- return event;
+ return calloc(1, sizeof(struct event_format));
}
-static void add_event(struct pevent *pevent, struct event_format *event)
+static int add_event(struct pevent *pevent, struct event_format *event)
{
int i;
+ struct event_format **events = realloc(pevent->events, sizeof(event) *
+ (pevent->nr_events + 1));
+ if (!events)
+ return -1;
- pevent->events = realloc(pevent->events, sizeof(event) *
- (pevent->nr_events + 1));
- if (!pevent->events)
- die("Can not allocate events");
+ pevent->events = events;
for (i = 0; i < pevent->nr_events; i++) {
if (pevent->events[i]->id > event->id)
pevent->nr_events++;
event->pevent = pevent;
+
+ return 0;
}
static int event_item_type(enum event_type type)
switch (type) {
case EVENT_NEWLINE:
case EVENT_DELIM:
- *tok = malloc_or_die(2);
- (*tok)[0] = ch;
- (*tok)[1] = 0;
+ if (asprintf(tok, "%c", ch) < 0)
+ return EVENT_ERROR;
+
return type;
case EVENT_OP:
return 0;
}
+static unsigned int type_size(const char *name)
+{
+ /* This covers all FIELD_IS_STRING types. */
+ static struct {
+ const char *type;
+ unsigned int size;
+ } table[] = {
+ { "u8", 1 },
+ { "u16", 2 },
+ { "u32", 4 },
+ { "u64", 8 },
+ { "s8", 1 },
+ { "s16", 2 },
+ { "s32", 4 },
+ { "s64", 8 },
+ { "char", 1 },
+ { },
+ };
+ int i;
+
+ for (i = 0; table[i].type; i++) {
+ if (!strcmp(table[i].type, name))
+ return table[i].size;
+ }
+
+ return 0;
+}
+
static int event_read_fields(struct event_format *event, struct format_field **fields)
{
struct format_field *field = NULL;
int count = 0;
do {
+ unsigned int size_dynamic = 0;
+
type = read_token(&token);
if (type == EVENT_NEWLINE) {
free_token(token);
last_token = token;
- field = malloc_or_die(sizeof(*field));
- memset(field, 0, sizeof(*field));
+ field = calloc(1, sizeof(*field));
+ if (!field)
+ goto fail;
+
field->event = event;
/* read the rest of the type */
}
if (!field->type) {
- die("no type found");
+ do_warning("%s: no type found", __func__);
goto fail;
}
field->name = last_token;
free_token(token);
type = read_token(&token);
if (type == EVENT_NONE) {
- die("failed to find token");
+ do_warning("failed to find token");
goto fail;
}
}
field->type = new_type;
strcat(field->type, " ");
strcat(field->type, field->name);
+ size_dynamic = type_size(field->name);
free_token(field->name);
strcat(field->type, brackets);
field->name = token;
if (read_expect_type(EVENT_ITEM, &token))
goto fail;
- /* add signed type */
+ if (strtoul(token, NULL, 0))
+ field->flags |= FIELD_IS_SIGNED;
free_token(token);
if (read_expected(EVENT_OP, ";") < 0)
if (field->flags & FIELD_IS_ARRAY) {
if (field->arraylen)
field->elementsize = field->size / field->arraylen;
+ else if (field->flags & FIELD_IS_DYNAMIC)
+ field->elementsize = size_dynamic;
else if (field->flags & FIELD_IS_STRING)
field->elementsize = 1;
- else
- field->elementsize = event->pevent->long_size;
+ else if (field->flags & FIELD_IS_LONG)
+ field->elementsize = event->pevent ?
+ event->pevent->long_size :
+ sizeof(long);
} else
field->elementsize = field->size;
left = alloc_arg();
right = alloc_arg();
+ if (!arg || !left || !right) {
+ do_warning("%s: not enough memory!", __func__);
+ /* arg will be freed at out_free */
+ free_arg(left);
+ free_arg(right);
+ goto out_free;
+ }
+
arg->type = PRINT_OP;
arg->op.left = left;
arg->op.right = right;
char *token = NULL;
arg = alloc_arg();
+ if (!arg) {
+ do_warning("%s: not enough memory!", __func__);
+ /* '*tok' is set to top->op.op. No need to free. */
+ *tok = NULL;
+ return EVENT_ERROR;
+ }
*tok = NULL;
type = process_arg(event, arg, &token);
return type;
out_free:
- free_token(*tok);
- *tok = NULL;
+ free_token(token);
free_arg(arg);
return EVENT_ERROR;
}
if (arg->type == PRINT_OP && !arg->op.left) {
/* handle single op */
if (token[1]) {
- die("bad op token %s", token);
+ do_warning("bad op token %s", token);
goto out_free;
}
switch (token[0]) {
/* make an empty left */
left = alloc_arg();
+ if (!left)
+ goto out_warn_free;
+
left->type = PRINT_NULL;
arg->op.left = left;
right = alloc_arg();
+ if (!right)
+ goto out_warn_free;
+
arg->op.right = right;
/* do not free the token, it belongs to an op */
} else if (strcmp(token, "?") == 0) {
left = alloc_arg();
+ if (!left)
+ goto out_warn_free;
+
/* copy the top arg to the left */
*left = *arg;
arg->op.left = left;
arg->op.prio = 0;
+ /* it will set arg->op.right */
type = process_cond(event, arg, tok);
} else if (strcmp(token, ">>") == 0 ||
strcmp(token, "/") == 0 ||
strcmp(token, "<") == 0 ||
strcmp(token, ">") == 0 ||
+ strcmp(token, "<=") == 0 ||
+ strcmp(token, ">=") == 0 ||
strcmp(token, "==") == 0 ||
strcmp(token, "!=") == 0) {
left = alloc_arg();
+ if (!left)
+ goto out_warn_free;
/* copy the top arg to the left */
*left = *arg;
arg->type = PRINT_OP;
arg->op.op = token;
arg->op.left = left;
+ arg->op.right = NULL;
if (set_op_prio(arg) == -1) {
event->flags |= EVENT_FL_FAILED;
type == EVENT_DELIM && (strcmp(token, ")") == 0)) {
char *new_atom;
- if (left->type != PRINT_ATOM)
- die("bad pointer type");
+ if (left->type != PRINT_ATOM) {
+ do_warning("bad pointer type");
+ goto out_free;
+ }
new_atom = realloc(left->atom.atom,
strlen(left->atom.atom) + 3);
if (!new_atom)
- goto out_free;
+ goto out_warn_free;
left->atom.atom = new_atom;
strcat(left->atom.atom, " *");
}
right = alloc_arg();
+ if (!right)
+ goto out_warn_free;
+
type = process_arg_token(event, right, tok, type);
arg->op.right = right;
} else if (strcmp(token, "[") == 0) {
left = alloc_arg();
+ if (!left)
+ goto out_warn_free;
+
*left = *arg;
arg->type = PRINT_OP;
arg->op.prio = 0;
+ /* it will set arg->op.right */
type = process_array(event, arg, tok);
} else {
return type;
- out_free:
+out_warn_free:
+ do_warning("%s: not enough memory!", __func__);
+out_free:
free_token(token);
*tok = NULL;
return EVENT_ERROR;
}
static enum event_type
-process_entry(struct event_format *event __unused, struct print_arg *arg,
+process_entry(struct event_format *event __maybe_unused, struct print_arg *arg,
char **tok)
{
enum event_type type;
return val;
}
- ref = malloc_or_die(len);
+ ref = malloc(len);
+ if (!ref) {
+ do_warning("%s: not enough memory!", __func__);
+ return val;
+ }
memcpy(ref, type, len);
/* chop off the " *" */
static unsigned long long
eval_type(unsigned long long val, struct print_arg *arg, int pointer)
{
- if (arg->type != PRINT_TYPE)
- die("expected type argument");
+ if (arg->type != PRINT_TYPE) {
+ do_warning("expected type argument");
+ return 0;
+ }
return eval_type_str(val, arg->typecast.type, pointer);
}
case PRINT_STRING:
case PRINT_BSTRING:
default:
- die("invalid eval type %d", arg->type);
+ do_warning("invalid eval type %d", arg->type);
break;
}
break;
arg = alloc_arg();
+ if (!arg)
+ goto out_free;
free_token(token);
type = process_arg(event, arg, &token);
if (test_type_token(type, token, EVENT_DELIM, ","))
goto out_free;
- field = malloc_or_die(sizeof(*field));
- memset(field, 0, sizeof(*field));
+ field = calloc(1, sizeof(*field));
+ if (!field)
+ goto out_free;
value = arg_eval(arg);
if (value == NULL)
- goto out_free;
+ goto out_free_field;
field->value = strdup(value);
if (field->value == NULL)
- goto out_free;
+ goto out_free_field;
free_arg(arg);
arg = alloc_arg();
+ if (!arg)
+ goto out_free;
free_token(token);
type = process_arg(event, arg, &token);
if (test_type_token(type, token, EVENT_OP, "}"))
- goto out_free;
+ goto out_free_field;
value = arg_eval(arg);
if (value == NULL)
- goto out_free;
+ goto out_free_field;
field->str = strdup(value);
if (field->str == NULL)
- goto out_free;
+ goto out_free_field;
free_arg(arg);
arg = NULL;
*tok = token;
return type;
+out_free_field:
+ free_flag_sym(field);
out_free:
free_arg(arg);
free_token(token);
arg->type = PRINT_FLAGS;
field = alloc_arg();
+ if (!field) {
+ do_warning("%s: not enough memory!", __func__);
+ goto out_free;
+ }
type = process_arg(event, field, &token);
type = process_op(event, field, &token);
if (test_type_token(type, token, EVENT_DELIM, ","))
- goto out_free;
+ goto out_free_field;
free_token(token);
arg->flags.field = field;
type = read_token_item(tok);
return type;
- out_free:
+out_free_field:
+ free_arg(field);
+out_free:
free_token(token);
*tok = NULL;
return EVENT_ERROR;
arg->type = PRINT_SYMBOL;
field = alloc_arg();
+ if (!field) {
+ do_warning("%s: not enough memory!", __func__);
+ goto out_free;
+ }
type = process_arg(event, field, &token);
if (test_type_token(type, token, EVENT_DELIM, ","))
- goto out_free;
+ goto out_free_field;
arg->symbol.field = field;
type = read_token_item(tok);
return type;
- out_free:
+out_free_field:
+ free_arg(field);
+out_free:
free_token(token);
*tok = NULL;
return EVENT_ERROR;
arg->type = PRINT_HEX;
field = alloc_arg();
+ if (!field) {
+ do_warning("%s: not enough memory!", __func__);
+ goto out_free;
+ }
+
type = process_arg(event, field, &token);
if (test_type_token(type, token, EVENT_DELIM, ","))
free_token(token);
field = alloc_arg();
+ if (!field) {
+ do_warning("%s: not enough memory!", __func__);
+ *tok = NULL;
+ return EVENT_ERROR;
+ }
+
type = process_arg(event, field, &token);
if (test_type_token(type, token, EVENT_DELIM, ")"))
free_token(token);
arg = alloc_arg();
+ if (!arg) {
+ do_warning("%s: not enough memory!", __func__);
+ *tok = NULL;
+ return EVENT_ERROR;
+ }
+
type = process_arg(event, arg, &token);
if (type == EVENT_ERROR)
goto out_free_arg;
/* make this a typecast and contine */
/* prevous must be an atom */
- if (arg->type != PRINT_ATOM)
- die("previous needed to be PRINT_ATOM");
+ if (arg->type != PRINT_ATOM) {
+ do_warning("previous needed to be PRINT_ATOM");
+ goto out_free;
+ }
item_arg = alloc_arg();
+ if (!item_arg) {
+ do_warning("%s: not enough memory!", __func__);
+ goto out_free;
+ }
arg->type = PRINT_TYPE;
arg->typecast.type = arg->atom.atom;
static enum event_type
-process_str(struct event_format *event __unused, struct print_arg *arg, char **tok)
+process_str(struct event_format *event __maybe_unused, struct print_arg *arg,
+ char **tok)
{
enum event_type type;
char *token;
{
struct pevent_function_handler *func;
+ if (!pevent)
+ return NULL;
+
for (func = pevent->func_handlers; func; func = func->next) {
if (strcmp(func->name, func_name) == 0)
break;
struct print_arg *farg;
enum event_type type;
char *token;
- char *test;
+ const char *test;
int i;
arg->type = PRINT_FUNC;
next_arg = &(arg->func.args);
for (i = 0; i < func->nr_args; i++) {
farg = alloc_arg();
+ if (!farg) {
+ do_warning("%s: not enough memory!", __func__);
+ return EVENT_ERROR;
+ }
+
type = process_arg(event, farg, &token);
if (i < (func->nr_args - 1))
test = ",";
case EVENT_ERROR ... EVENT_NEWLINE:
default:
- die("unexpected type %d", type);
+ do_warning("unexpected type %d", type);
+ return EVENT_ERROR;
}
*tok = token;
}
arg = alloc_arg();
+ if (!arg) {
+ do_warning("%s: not enough memory!", __func__);
+ return -1;
+ }
type = process_arg(event, arg, &token);
if (type == EVENT_DQUOTE) {
char *cat;
- cat = malloc_or_die(strlen(event->print_fmt.format) +
- strlen(token) + 1);
- strcpy(cat, event->print_fmt.format);
- strcat(cat, token);
+ if (asprintf(&cat, "%s%s", event->print_fmt.format, token) < 0)
+ goto fail;
free_token(token);
free_token(event->print_fmt.format);
event->print_fmt.format = NULL;
* All events should have the same common elements.
* Pick any event to find where the type is;
*/
- if (!pevent->events)
- die("no event_list!");
+ if (!pevent->events) {
+ do_warning("no event_list!");
+ return -1;
+ }
event = pevent->events[0];
field = pevent_find_common_field(event, type);
if (!arg->field.field) {
arg->field.field = pevent_find_any_field(event, arg->field.name);
if (!arg->field.field)
- die("field %s not found", arg->field.name);
+ goto out_warning_field;
+
}
/* must be a number */
val = pevent_read_number(pevent, data + arg->field.field->offset,
if (!larg->field.field) {
larg->field.field =
pevent_find_any_field(event, larg->field.name);
- if (!larg->field.field)
- die("field %s not found", larg->field.name);
+ if (!larg->field.field) {
+ arg = larg;
+ goto out_warning_field;
+ }
}
field_size = larg->field.field->elementsize;
offset = larg->field.field->offset +
val = left != right;
break;
default:
- die("unknown op '%s'", arg->op.op);
+ goto out_warning_op;
}
break;
case '~':
val = left <= right;
break;
default:
- die("unknown op '%s'", arg->op.op);
+ goto out_warning_op;
}
break;
case '>':
val = left >= right;
break;
default:
- die("unknown op '%s'", arg->op.op);
+ goto out_warning_op;
}
break;
case '=':
if (arg->op.op[1] != '=')
- die("unknown op '%s'", arg->op.op);
+ goto out_warning_op;
+
val = left == right;
break;
case '-':
val = left * right;
break;
default:
- die("unknown op '%s'", arg->op.op);
+ goto out_warning_op;
}
break;
default: /* not sure what to do there */
return 0;
}
return val;
+
+out_warning_op:
+ do_warning("%s: unknown op '%s'", __func__, arg->op.op);
+ return 0;
+
+out_warning_field:
+ do_warning("%s: field %s not found", __func__, arg->field.name);
+ return 0;
}
struct flag {
field = arg->field.field;
if (!field) {
field = pevent_find_any_field(event, arg->field.name);
- if (!field)
- die("field %s not found", arg->field.name);
+ if (!field) {
+ str = arg->field.name;
+ goto out_warning_field;
+ }
arg->field.field = field;
}
/* Zero sized fields, mean the rest of the data */
trace_seq_printf(s, "%lx", addr);
break;
}
- str = malloc_or_die(len + 1);
+ str = malloc(len + 1);
+ if (!str) {
+ do_warning("%s: not enough memory!", __func__);
+ return;
+ }
memcpy(str, data + field->offset, len);
str[len] = 0;
print_str_to_seq(s, format, len_arg, str);
str = arg->hex.field->field.name;
field = pevent_find_any_field(event, str);
if (!field)
- die("field %s not found", str);
+ goto out_warning_field;
arg->hex.field->field.field = field;
}
hex = data + field->offset;
/* well... */
break;
}
+
+ return;
+
+out_warning_field:
+ do_warning("%s: field %s not found", __func__, arg->field.name);
}
static unsigned long long
farg = arg->func.args;
param = func_handle->params;
- args = malloc_or_die(sizeof(*args) * func_handle->nr_args);
+ ret = ULLONG_MAX;
+ args = malloc(sizeof(*args) * func_handle->nr_args);
+ if (!args)
+ goto out;
+
for (i = 0; i < func_handle->nr_args; i++) {
switch (param->type) {
case PEVENT_FUNC_ARG_INT:
trace_seq_init(&str);
print_str_arg(&str, data, size, event, "%s", -1, farg);
trace_seq_terminate(&str);
- string = malloc_or_die(sizeof(*string));
+ string = malloc(sizeof(*string));
+ if (!string) {
+ do_warning("%s(%d): malloc str", __func__, __LINE__);
+ goto out_free;
+ }
string->next = strings;
string->str = strdup(str.buffer);
- if (!string->str)
- die("malloc str");
-
- args[i] = (unsigned long long)string->str;
+ if (!string->str) {
+ free(string);
+ do_warning("%s(%d): malloc str", __func__, __LINE__);
+ goto out_free;
+ }
+ args[i] = (uintptr_t)string->str;
strings = string;
trace_seq_destroy(&str);
break;
* Something went totally wrong, this is not
* an input error, something in this code broke.
*/
- die("Unexpected end of arguments\n");
- break;
+ do_warning("Unexpected end of arguments\n");
+ goto out_free;
}
farg = farg->next;
param = param->next;
}
ret = (*func_handle->func)(s, args);
+out_free:
free(args);
while (strings) {
string = strings;
return ret;
}
+static void free_args(struct print_arg *args)
+{
+ struct print_arg *next;
+
+ while (args) {
+ next = args->next;
+
+ free_arg(args);
+ args = next;
+ }
+}
+
static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struct event_format *event)
{
struct pevent *pevent = event->pevent;
if (!field) {
field = pevent_find_field(event, "buf");
- if (!field)
- die("can't find buffer field for binary printk");
+ if (!field) {
+ do_warning("can't find buffer field for binary printk");
+ return NULL;
+ }
ip_field = pevent_find_field(event, "ip");
- if (!ip_field)
- die("can't find ip field for binary printk");
+ if (!ip_field) {
+ do_warning("can't find ip field for binary printk");
+ return NULL;
+ }
pevent->bprint_buf_field = field;
pevent->bprint_ip_field = ip_field;
}
* The first arg is the IP pointer.
*/
args = alloc_arg();
+ if (!args) {
+ do_warning("%s(%d): not enough memory!", __func__, __LINE__);
+ return NULL;
+ }
arg = args;
arg->next = NULL;
next = &arg->next;
arg->type = PRINT_ATOM;
- arg->atom.atom = malloc_or_die(32);
- sprintf(arg->atom.atom, "%lld", ip);
+
+ if (asprintf(&arg->atom.atom, "%lld", ip) < 0)
+ goto out_free;
/* skip the first "%pf : " */
for (ptr = fmt + 6, bptr = data + field->offset;
val = pevent_read_number(pevent, bptr, vsize);
bptr += vsize;
arg = alloc_arg();
+ if (!arg) {
+ do_warning("%s(%d): not enough memory!",
+ __func__, __LINE__);
+ goto out_free;
+ }
arg->next = NULL;
arg->type = PRINT_ATOM;
- arg->atom.atom = malloc_or_die(32);
- sprintf(arg->atom.atom, "%lld", val);
+ if (asprintf(&arg->atom.atom, "%lld", val) < 0) {
+ free(arg);
+ goto out_free;
+ }
*next = arg;
next = &arg->next;
/*
break;
case 's':
arg = alloc_arg();
+ if (!arg) {
+ do_warning("%s(%d): not enough memory!",
+ __func__, __LINE__);
+ goto out_free;
+ }
arg->next = NULL;
arg->type = PRINT_BSTRING;
arg->string.string = strdup(bptr);
if (!arg->string.string)
- break;
+ goto out_free;
bptr += strlen(bptr) + 1;
*next = arg;
next = &arg->next;
}
return args;
-}
-
-static void free_args(struct print_arg *args)
-{
- struct print_arg *next;
-
- while (args) {
- next = args->next;
- free_arg(args);
- args = next;
- }
+out_free:
+ free_args(args);
+ return NULL;
}
static char *
-get_bprint_format(void *data, int size __unused, struct event_format *event)
+get_bprint_format(void *data, int size __maybe_unused,
+ struct event_format *event)
{
struct pevent *pevent = event->pevent;
unsigned long long addr;
if (!field) {
field = pevent_find_field(event, "fmt");
- if (!field)
- die("can't find format field for binary printk");
+ if (!field) {
+ do_warning("can't find format field for binary printk");
+ return NULL;
+ }
pevent->bprint_fmt_field = field;
}
printk = find_printk(pevent, addr);
if (!printk) {
- format = malloc_or_die(45);
- sprintf(format, "%%pf : (NO FORMAT FOUND at %llx)\n",
- addr);
+ if (asprintf(&format, "%%pf : (NO FORMAT FOUND at %llx)\n", addr) < 0)
+ return NULL;
return format;
}
/* Remove any quotes. */
if (*p == '"')
p++;
- format = malloc_or_die(strlen(p) + 10);
- sprintf(format, "%s : %s", "%pf", p);
+ if (asprintf(&format, "%s : %s", "%pf", p) < 0)
+ return NULL;
/* remove ending quotes and new line since we will add one too */
p = format + strlen(format) - 1;
if (*p == '"')
struct event_format *event, struct print_arg *arg)
{
unsigned char *buf;
- char *fmt = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x";
+ const char *fmt = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x";
if (arg->type == PRINT_FUNC) {
process_defined_func(s, data, size, event, arg);
if (!arg->field.field) {
arg->field.field =
pevent_find_any_field(event, arg->field.name);
- if (!arg->field.field)
- die("field %s not found", arg->field.name);
+ if (!arg->field.field) {
+ do_warning("%s: field %s not found",
+ __func__, arg->field.name);
+ return;
+ }
}
if (arg->field.field->size != 6) {
trace_seq_printf(s, "INVALIDMAC");
return 1;
}
-static void print_event_fields(struct trace_seq *s, void *data, int size,
+static void print_event_fields(struct trace_seq *s, void *data,
+ int size __maybe_unused,
struct event_format *event)
{
struct format_field *field;
goto cont_process;
case '*':
/* The argument is the length. */
- if (!arg)
- die("no argument match");
+ if (!arg) {
+ do_warning("no argument match");
+ event->flags |= EVENT_FL_FAILED;
+ goto out_failed;
+ }
len_arg = eval_num_arg(data, size, event, arg);
len_as_arg = 1;
arg = arg->next;
case 'x':
case 'X':
case 'u':
- if (!arg)
- die("no argument match");
+ if (!arg) {
+ do_warning("no argument match");
+ event->flags |= EVENT_FL_FAILED;
+ goto out_failed;
+ }
len = ((unsigned long)ptr + 1) -
(unsigned long)saveptr;
/* should never happen */
- if (len > 31)
- die("bad format!");
+ if (len > 31) {
+ do_warning("bad format!");
+ event->flags |= EVENT_FL_FAILED;
+ len = 31;
+ }
memcpy(format, saveptr, len);
format[len] = 0;
trace_seq_printf(s, format, (long long)val);
break;
default:
- die("bad count (%d)", ls);
+ do_warning("bad count (%d)", ls);
+ event->flags |= EVENT_FL_FAILED;
}
break;
case 's':
- if (!arg)
- die("no matching argument");
+ if (!arg) {
+ do_warning("no matching argument");
+ event->flags |= EVENT_FL_FAILED;
+ goto out_failed;
+ }
len = ((unsigned long)ptr + 1) -
(unsigned long)saveptr;
/* should never happen */
- if (len > 31)
- die("bad format!");
+ if (len > 31) {
+ do_warning("bad format!");
+ event->flags |= EVENT_FL_FAILED;
+ len = 31;
+ }
memcpy(format, saveptr, len);
format[len] = 0;
trace_seq_putc(s, *ptr);
}
+ if (event->flags & EVENT_FL_FAILED) {
+out_failed:
+ trace_seq_printf(s, "[FAILED TO PARSE]");
+ }
+
if (args) {
free_args(args);
free(bprint_fmt);
void pevent_print_event(struct pevent *pevent, struct trace_seq *s,
struct pevent_record *record)
{
- static char *spaces = " "; /* 20 spaces */
+ static const char *spaces = " "; /* 20 spaces */
struct event_format *event;
unsigned long secs;
unsigned long usecs;
struct format_field *field;
int i = 0;
- fields = malloc_or_die(sizeof(*fields) * (count + 1));
+ fields = malloc(sizeof(*fields) * (count + 1));
+ if (!fields)
+ return NULL;
+
for (field = list; field; field = field->next) {
fields[i++] = field;
if (i == count + 1) {
}
/**
- * pevent_parse_event - parse the event format
- * @pevent: the handle to the pevent
+ * __pevent_parse_format - parse the event format
* @buf: the buffer storing the event format string
* @size: the size of @buf
* @sys: the system the event belongs to
*
* /sys/kernel/debug/tracing/events/.../.../format
*/
-int pevent_parse_event(struct pevent *pevent,
- const char *buf, unsigned long size,
- const char *sys)
+enum pevent_errno __pevent_parse_format(struct event_format **eventp,
+ struct pevent *pevent, const char *buf,
+ unsigned long size, const char *sys)
{
struct event_format *event;
int ret;
init_input_buf(buf, size);
- event = alloc_event();
+ *eventp = event = alloc_event();
if (!event)
- return -ENOMEM;
+ return PEVENT_ERRNO__MEM_ALLOC_FAILED;
event->name = event_read_name();
if (!event->name) {
/* Bad event? */
- free(event);
- return -1;
+ ret = PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ goto event_alloc_failed;
}
if (strcmp(sys, "ftrace") == 0) {
-
event->flags |= EVENT_FL_ISFTRACE;
if (strcmp(event->name, "bprint") == 0)
}
event->id = event_read_id();
- if (event->id < 0)
- die("failed to read event id");
+ if (event->id < 0) {
+ ret = PEVENT_ERRNO__READ_ID_FAILED;
+ /*
+ * This isn't an allocation error actually.
+ * But as the ID is critical, just bail out.
+ */
+ goto event_alloc_failed;
+ }
event->system = strdup(sys);
- if (!event->system)
- die("failed to allocate system");
+ if (!event->system) {
+ ret = PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ goto event_alloc_failed;
+ }
/* Add pevent to event so that it can be referenced */
event->pevent = pevent;
ret = event_read_format(event);
if (ret < 0) {
- do_warning("failed to read event format for %s", event->name);
- goto event_failed;
+ ret = PEVENT_ERRNO__READ_FORMAT_FAILED;
+ goto event_parse_failed;
}
/*
* If the event has an override, don't print warnings if the event
* print format fails to parse.
*/
- show_warning = 0;
+ if (pevent && find_event_handle(pevent, event))
+ show_warning = 0;
ret = event_read_print(event);
- if (ret < 0) {
- do_warning("failed to read event print fmt for %s",
- event->name);
- show_warning = 1;
- goto event_failed;
- }
show_warning = 1;
- add_event(pevent, event);
+ if (ret < 0) {
+ ret = PEVENT_ERRNO__READ_PRINT_FAILED;
+ goto event_parse_failed;
+ }
if (!ret && (event->flags & EVENT_FL_ISFTRACE)) {
struct format_field *field;
struct print_arg *arg, **list;
/* old ftrace had no args */
-
list = &event->print_fmt.args;
for (field = event->format.fields; field; field = field->next) {
arg = alloc_arg();
- *list = arg;
- list = &arg->next;
+ if (!arg) {
+ event->flags |= EVENT_FL_FAILED;
+ return PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED;
+ }
arg->type = PRINT_FIELD;
arg->field.name = strdup(field->name);
if (!arg->field.name) {
- do_warning("failed to allocate field name");
event->flags |= EVENT_FL_FAILED;
- return -1;
+ free_arg(arg);
+ return PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED;
}
arg->field.field = field;
+ *list = arg;
+ list = &arg->next;
}
return 0;
}
+ return 0;
+
+ event_parse_failed:
+ event->flags |= EVENT_FL_FAILED;
+ return ret;
+
+ event_alloc_failed:
+ free(event->system);
+ free(event->name);
+ free(event);
+ *eventp = NULL;
+ return ret;
+}
+
+/**
+ * pevent_parse_format - parse the event format
+ * @buf: the buffer storing the event format string
+ * @size: the size of @buf
+ * @sys: the system the event belongs to
+ *
+ * This parses the event format and creates an event structure
+ * to quickly parse raw data for a given event.
+ *
+ * These files currently come from:
+ *
+ * /sys/kernel/debug/tracing/events/.../.../format
+ */
+enum pevent_errno pevent_parse_format(struct event_format **eventp, const char *buf,
+ unsigned long size, const char *sys)
+{
+ return __pevent_parse_format(eventp, NULL, buf, size, sys);
+}
+
+/**
+ * pevent_parse_event - parse the event format
+ * @pevent: the handle to the pevent
+ * @buf: the buffer storing the event format string
+ * @size: the size of @buf
+ * @sys: the system the event belongs to
+ *
+ * This parses the event format and creates an event structure
+ * to quickly parse raw data for a given event.
+ *
+ * These files currently come from:
+ *
+ * /sys/kernel/debug/tracing/events/.../.../format
+ */
+enum pevent_errno pevent_parse_event(struct pevent *pevent, const char *buf,
+ unsigned long size, const char *sys)
+{
+ struct event_format *event = NULL;
+ int ret = __pevent_parse_format(&event, pevent, buf, size, sys);
+
+ if (event == NULL)
+ return ret;
+
+ if (add_event(pevent, event)) {
+ ret = PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ goto event_add_failed;
+ }
+
#define PRINT_ARGS 0
if (PRINT_ARGS && event->print_fmt.args)
print_args(event->print_fmt.args);
return 0;
- event_failed:
- event->flags |= EVENT_FL_FAILED;
- /* still add it even if it failed */
- add_event(pevent, event);
- return -1;
+event_add_failed:
+ pevent_free_format(event);
+ return ret;
+}
+
+#undef _PE
+#define _PE(code, str) str
+static const char * const pevent_error_str[] = {
+ PEVENT_ERRORS
+};
+#undef _PE
+
+int pevent_strerror(struct pevent *pevent __maybe_unused,
+ enum pevent_errno errnum, char *buf, size_t buflen)
+{
+ int idx;
+ const char *msg;
+
+ if (errnum >= 0) {
+ msg = strerror_r(errnum, buf, buflen);
+ if (msg != buf) {
+ size_t len = strlen(msg);
+ memcpy(buf, msg, min(buflen - 1, len));
+ *(buf + min(buflen - 1, len)) = '\0';
+ }
+ return 0;
+ }
+
+ if (errnum <= __PEVENT_ERRNO__START ||
+ errnum >= __PEVENT_ERRNO__END)
+ return -1;
+
+ idx = errnum - __PEVENT_ERRNO__START - 1;
+ msg = pevent_error_str[idx];
+
+ switch (errnum) {
+ case PEVENT_ERRNO__MEM_ALLOC_FAILED:
+ case PEVENT_ERRNO__PARSE_EVENT_FAILED:
+ case PEVENT_ERRNO__READ_ID_FAILED:
+ case PEVENT_ERRNO__READ_FORMAT_FAILED:
+ case PEVENT_ERRNO__READ_PRINT_FAILED:
+ case PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED:
+ case PEVENT_ERRNO__INVALID_ARG_TYPE:
+ snprintf(buf, buflen, "%s", msg);
+ break;
+
+ default:
+ /* cannot reach here */
+ break;
+ }
+
+ return 0;
}
int get_field_val(struct trace_seq *s, struct format_field *field,
struct pevent_func_params *param;
enum pevent_func_arg_type type;
va_list ap;
+ int ret;
func_handle = find_func_handler(pevent, name);
if (func_handle) {
remove_func_handler(pevent, name);
}
- func_handle = malloc_or_die(sizeof(*func_handle));
- memset(func_handle, 0, sizeof(*func_handle));
+ func_handle = calloc(1, sizeof(*func_handle));
+ if (!func_handle) {
+ do_warning("Failed to allocate function handler");
+ return PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ }
func_handle->ret_type = ret_type;
func_handle->name = strdup(name);
func_handle->func = func;
- if (!func_handle->name)
- die("Failed to allocate function name");
+ if (!func_handle->name) {
+ do_warning("Failed to allocate function name");
+ free(func_handle);
+ return PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ }
next_param = &(func_handle->params);
va_start(ap, name);
if (type == PEVENT_FUNC_ARG_VOID)
break;
- if (type < 0 || type >= PEVENT_FUNC_ARG_MAX_TYPES) {
- warning("Invalid argument type %d", type);
+ if (type >= PEVENT_FUNC_ARG_MAX_TYPES) {
+ do_warning("Invalid argument type %d", type);
+ ret = PEVENT_ERRNO__INVALID_ARG_TYPE;
goto out_free;
}
- param = malloc_or_die(sizeof(*param));
+ param = malloc(sizeof(*param));
+ if (!param) {
+ do_warning("Failed to allocate function param");
+ ret = PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ goto out_free;
+ }
param->type = type;
param->next = NULL;
out_free:
va_end(ap);
free_func_handle(func_handle);
- return -1;
+ return ret;
}
/**
* If @id is >= 0, then it is used to find the event.
* else @sys_name and @event_name are used.
*/
-int pevent_register_event_handler(struct pevent *pevent,
- int id, char *sys_name, char *event_name,
- pevent_event_handler_func func,
- void *context)
+int pevent_register_event_handler(struct pevent *pevent, int id,
+ const char *sys_name, const char *event_name,
+ pevent_event_handler_func func, void *context)
{
struct event_format *event;
struct event_handler *handle;
not_found:
/* Save for later use. */
- handle = malloc_or_die(sizeof(*handle));
- memset(handle, 0, sizeof(*handle));
+ handle = calloc(1, sizeof(*handle));
+ if (!handle) {
+ do_warning("Failed to allocate event handler");
+ return PEVENT_ERRNO__MEM_ALLOC_FAILED;
+ }
+
handle->id = id;
if (event_name)
handle->event_name = strdup(event_name);
if ((event_name && !handle->event_name) ||
(sys_name && !handle->sys_name)) {
- die("Failed to allocate event/sys name");
+ do_warning("Failed to allocate event/sys name");
+ free((void *)handle->event_name);
+ free((void *)handle->sys_name);
+ free(handle);
+ return PEVENT_ERRNO__MEM_ALLOC_FAILED;
}
handle->func = func;
*/
struct pevent *pevent_alloc(void)
{
- struct pevent *pevent;
+ struct pevent *pevent = calloc(1, sizeof(*pevent));
- pevent = malloc(sizeof(*pevent));
- if (!pevent)
- return NULL;
- memset(pevent, 0, sizeof(*pevent));
- pevent->ref_count = 1;
+ if (pevent)
+ pevent->ref_count = 1;
return pevent;
}
free_format_fields(format->fields);
}
-static void free_event(struct event_format *event)
+void pevent_free_format(struct event_format *event)
{
free(event->name);
free(event->system);
}
if (pevent->func_map) {
- for (i = 0; i < pevent->func_count; i++) {
+ for (i = 0; i < (int)pevent->func_count; i++) {
free(pevent->func_map[i].func);
free(pevent->func_map[i].mod);
}
}
if (pevent->printk_map) {
- for (i = 0; i < pevent->printk_count; i++)
+ for (i = 0; i < (int)pevent->printk_count; i++)
free(pevent->printk_map[i].printk);
free(pevent->printk_map);
}
}
for (i = 0; i < pevent->nr_events; i++)
- free_event(pevent->events[i]);
+ pevent_free_format(pevent->events[i]);
while (pevent->handlers) {
handle = pevent->handlers;
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
#include <stdarg.h>
#include <regex.h>
-#ifndef __unused
-#define __unused __attribute__ ((unused))
+#ifndef __maybe_unused
+#define __maybe_unused __attribute__((unused))
#endif
/* ----------------------- trace_seq ----------------------- */
int cpu;
int ref_count;
int locked; /* Do not free, even if ref_count is zero */
- void *p_private;
+ void *priv;
#if DEBUG_RECORD
struct pevent_record *prev;
struct pevent_record *next;
};
void trace_seq_init(struct trace_seq *s);
+void trace_seq_reset(struct trace_seq *s);
void trace_seq_destroy(struct trace_seq *s);
extern int trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
char *plugin_alias;
char *description;
char *value;
- void *p_private;
+ void *priv;
int set;
};
PEVENT_NSEC_OUTPUT = 1, /* output in NSECS */
};
+#define PEVENT_ERRORS \
+ _PE(MEM_ALLOC_FAILED, "failed to allocate memory"), \
+ _PE(PARSE_EVENT_FAILED, "failed to parse event"), \
+ _PE(READ_ID_FAILED, "failed to read event id"), \
+ _PE(READ_FORMAT_FAILED, "failed to read event format"), \
+ _PE(READ_PRINT_FAILED, "failed to read event print fmt"), \
+ _PE(OLD_FTRACE_ARG_FAILED,"failed to allocate field name for ftrace"),\
+ _PE(INVALID_ARG_TYPE, "invalid argument type")
+
+#undef _PE
+#define _PE(__code, __str) PEVENT_ERRNO__ ## __code
+enum pevent_errno {
+ PEVENT_ERRNO__SUCCESS = 0,
+
+ /*
+ * Choose an arbitrary negative big number not to clash with standard
+ * errno since SUS requires the errno has distinct positive values.
+ * See 'Issue 6' in the link below.
+ *
+ * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
+ */
+ __PEVENT_ERRNO__START = -100000,
+
+ PEVENT_ERRORS,
+
+ __PEVENT_ERRNO__END,
+};
+#undef _PE
+
struct cmdline;
struct cmdline_list;
struct func_map;
int cpus;
int long_size;
+ int page_size;
struct cmdline *cmdlines;
struct cmdline_list *cmdlist;
int pevent_parse_header_page(struct pevent *pevent, char *buf, unsigned long size,
int long_size);
-int pevent_parse_event(struct pevent *pevent, const char *buf,
- unsigned long size, const char *sys);
+enum pevent_errno pevent_parse_event(struct pevent *pevent, const char *buf,
+ unsigned long size, const char *sys);
+enum pevent_errno pevent_parse_format(struct event_format **eventp, const char *buf,
+ unsigned long size, const char *sys);
+void pevent_free_format(struct event_format *event);
void *pevent_get_field_raw(struct trace_seq *s, struct event_format *event,
const char *name, struct pevent_record *record,
struct event_format *event, const char *name,
struct pevent_record *record, int err);
-int pevent_register_event_handler(struct pevent *pevent, int id, char *sys_name, char *event_name,
+int pevent_register_event_handler(struct pevent *pevent, int id,
+ const char *sys_name, const char *event_name,
pevent_event_handler_func func, void *context);
int pevent_register_print_function(struct pevent *pevent,
pevent_func_handler func,
const char *pevent_data_comm_from_pid(struct pevent *pevent, int pid);
void pevent_event_info(struct trace_seq *s, struct event_format *event,
struct pevent_record *record);
+int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
+ char *buf, size_t buflen);
struct event_format **pevent_list_events(struct pevent *pevent, enum event_sort_type);
struct format_field **pevent_event_common_fields(struct event_format *event);
pevent->long_size = long_size;
}
+static inline int pevent_get_page_size(struct pevent *pevent)
+{
+ return pevent->page_size;
+}
+
+static inline void pevent_set_page_size(struct pevent *pevent, int _page_size)
+{
+ pevent->page_size = _page_size;
+}
+
static inline int pevent_is_file_bigendian(struct pevent *pevent)
{
return pevent->file_bigendian;
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
void __vwarning(const char *fmt, ...);
void __vpr_stat(const char *fmt, ...);
+#define min(x, y) ({ \
+ typeof(x) _min1 = (x); \
+ typeof(y) _min2 = (y); \
+ (void) (&_min1 == &_min2); \
+ _min1 < _min2 ? _min1 : _min2; })
+
static inline char *strim(char *string)
{
char *ret;
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
switch (arg->type) {
case FILTER_ARG_NONE:
case FILTER_ARG_BOOLEAN:
+ break;
+
case FILTER_ARG_NUM:
+ free_arg(arg->num.left);
+ free_arg(arg->num.right);
+ break;
+
+ case FILTER_ARG_EXP:
+ free_arg(arg->exp.left);
+ free_arg(arg->exp.right);
break;
case FILTER_ARG_STR:
free(arg->str.buffer);
break;
+ case FILTER_ARG_VALUE:
+ if (arg->value.type == FILTER_STRING ||
+ arg->value.type == FILTER_CHAR)
+ free(arg->value.str);
+ break;
+
case FILTER_ARG_OP:
free_arg(arg->op.left);
free_arg(arg->op.right);
+/*
+ * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License (not later!)
+ *
+ * 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * License along with this program; if not, see <http://www.gnu.org/licenses>
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
}
/**
+ * trace_seq_reset - re-initialize the trace_seq structure
+ * @s: a pointer to the trace_seq structure to reset
+ */
+void trace_seq_reset(struct trace_seq *s)
+{
+ if (!s)
+ return;
+ TRACE_SEQ_CHECK(s);
+ s->len = 0;
+ s->readpos = 0;
+}
+
+/**
* trace_seq_destroy - free up memory of a trace_seq
* @s: a pointer to the trace_seq to free the buffer
*