From 9a05f56e1bf36abab41d12f92f2c75266c44bd4a Mon Sep 17 00:00:00 2001 From: bigbear Date: Thu, 8 Feb 2024 19:52:52 +0100 Subject: Clean - HARDINFO2 BASE --- .clang-format | 117 - .github/workflows/codeql-analysis.yml | 74 - .gitignore | 2 +- AUTHORS.md | 57 - CMakeLists.txt | 406 - CONTRIBUTING.md | 28 - README.md | 80 - TODO | 43 - cmake/GNUInstallDirs.cmake | 1 - config.h.cmake | 38 - data/benchmark.data | Bin 65536 -> 0 bytes data/benchmark.json | 19960 ------------------------ doc/index.hlp | 35 - hardinfo.1 | 69 - hardinfo.desktop.cmake | 18 - hardinfo/binreloc.c | 668 - hardinfo/cpu_util.c | 251 - hardinfo/dmi_util.c | 450 - hardinfo/dt_util.c | 1187 -- hardinfo/expr.c | 250 - hardinfo/gg_key_file_parse_string_as_value.c | 111 - hardinfo/gg_strescape.c | 138 - hardinfo/gpu_util.c | 477 - hardinfo/hardinfo.c | 169 - hardinfo/hinote_util.c | 27 - hardinfo/info.c | 584 - hardinfo/pci_util.c | 463 - hardinfo/problem_marker.c | 13 - hardinfo/socket.c | 127 - hardinfo/storage_util.c | 250 - hardinfo/udisks2_util.c | 639 - hardinfo/usb_util.c | 553 - hardinfo/util.c | 1445 -- hardinfo/vendor.c | 655 - hardinfo/x_util.c | 342 - hardinfo2/binreloc.c | 668 + hardinfo2/cpu_util.c | 251 + hardinfo2/dmi_util.c | 450 + hardinfo2/dt_util.c | 1187 ++ hardinfo2/expr.c | 250 + hardinfo2/gg_key_file_parse_string_as_value.c | 111 + hardinfo2/gg_strescape.c | 138 + hardinfo2/gpu_util.c | 477 + hardinfo2/hardinfo.c | 169 + hardinfo2/hinote_util.c | 27 + hardinfo2/info.c | 584 + hardinfo2/pci_util.c | 463 + hardinfo2/problem_marker.c | 13 + hardinfo2/socket.c | 127 + hardinfo2/storage_util.c | 250 + hardinfo2/udisks2_util.c | 639 + hardinfo2/usb_util.c | 553 + hardinfo2/util.c | 1445 ++ hardinfo2/vendor.c | 655 + hardinfo2/x_util.c | 342 + includes/ssh-conn.h | 66 - includes/xmlrpc-client.h | 43 - includes/xmlrpc-server.h | 25 - po/HOWTO.txt | 9 - po/salvage.sh | 83 - po/updatepo.sh | 2 +- test/data/alpha_as_cpuinfo | 19 - test/data/arm_asus_android_cpuinfo | 17 - test/data/arm_jetsontx2_cpuinfo | 61 - test/data/arm_marv_cpuinfo | 9 - test/data/arm_rpi3_aarch32_cpuinfo | 44 - test/data/arm_rpi3_aarch64_cpuinfo | 36 - test/data/e2k_elbrus_4x_e4c_cpuinfo | 147 - test/data/e2k_elbrus_4x_e8c_cpuinfo | 292 - test/data/e2k_elbrus_801_pc_e8c_cpuinfo | 76 - test/data/e2k_elbrus_e16c_cpuinfo | 148 - test/data/e2k_elbrus_e1c+_cpuinfo | 11 - test/data/e2k_elbrus_e2c+_cpuinfo | 25 - test/data/e2k_elbrus_e2c3_cpuinfo | 21 - test/data/e2k_elbrus_e8c2_cpuinfo | 76 - test/data/e2k_elbrus_e8c_cpuinfo | 103 - test/data/ia64_x2_cpuinfo | 27 - test/data/m68k_sun3_cpuinfo | 6 - test/data/mips_loongson_cpuinfo | 13 - test/data/parisc_hppa_fortex4_cpuinfo | 59 - test/data/power8_cpuinfo | 325 - test/data/ppc_g5_cpuinfo | 30 - test/data/riscv_fake_cpuinfo | 2 - test/data/riscv_sim_cpuinfo | 2 - test/data/rpi1_raspbian.dts | 758 - test/data/rpi3_arch_arm64.dts | 666 - test/data/rpi3_raspbian.dts | 892 -- test/data/s390_hurcules_cpuinfo | 5 - test/data/sh_dreamcast_cpuinfo | 9 - test/data/sh_sh3_cpuinfo | 4 - test/data/sh_sh64_cpuinfo | 13 - test/data/sparc_m7_cpuinfo | 45 - test/data/x86_amdr7_cpuinfo | 447 - test/data/x86_cyrix6x86coma_cpuinfo | 17 - test/data/x86_pent_cpuinfo | 17 - test/data/x86_pentf00f_cpuinfo | 18 - test/just_bench.sh | 44 - test/rm_hardinfo.sh | 30 - test/test.sh | 42 - test/ws_scan.sh | 11 - tools/benchmark-conf-to-json.py | 230 - tools/populate.py | 17 - 102 files changed, 8801 insertions(+), 34767 deletions(-) delete mode 100644 .clang-format delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 AUTHORS.md delete mode 100644 CMakeLists.txt delete mode 100644 CONTRIBUTING.md delete mode 100644 README.md delete mode 100644 TODO delete mode 100644 config.h.cmake delete mode 100644 data/benchmark.data delete mode 100644 data/benchmark.json delete mode 100644 doc/index.hlp delete mode 100644 hardinfo.1 delete mode 100644 hardinfo.desktop.cmake delete mode 100644 hardinfo/binreloc.c delete mode 100644 hardinfo/cpu_util.c delete mode 100644 hardinfo/dmi_util.c delete mode 100644 hardinfo/dt_util.c delete mode 100644 hardinfo/expr.c delete mode 100644 hardinfo/gg_key_file_parse_string_as_value.c delete mode 100644 hardinfo/gg_strescape.c delete mode 100644 hardinfo/gpu_util.c delete mode 100644 hardinfo/hardinfo.c delete mode 100644 hardinfo/hinote_util.c delete mode 100644 hardinfo/info.c delete mode 100644 hardinfo/pci_util.c delete mode 100644 hardinfo/problem_marker.c delete mode 100644 hardinfo/socket.c delete mode 100644 hardinfo/storage_util.c delete mode 100644 hardinfo/udisks2_util.c delete mode 100644 hardinfo/usb_util.c delete mode 100644 hardinfo/util.c delete mode 100644 hardinfo/vendor.c delete mode 100644 hardinfo/x_util.c create mode 100644 hardinfo2/binreloc.c create mode 100644 hardinfo2/cpu_util.c create mode 100644 hardinfo2/dmi_util.c create mode 100644 hardinfo2/dt_util.c create mode 100644 hardinfo2/expr.c create mode 100644 hardinfo2/gg_key_file_parse_string_as_value.c create mode 100644 hardinfo2/gg_strescape.c create mode 100644 hardinfo2/gpu_util.c create mode 100644 hardinfo2/hardinfo.c create mode 100644 hardinfo2/hinote_util.c create mode 100644 hardinfo2/info.c create mode 100644 hardinfo2/pci_util.c create mode 100644 hardinfo2/problem_marker.c create mode 100644 hardinfo2/socket.c create mode 100644 hardinfo2/storage_util.c create mode 100644 hardinfo2/udisks2_util.c create mode 100644 hardinfo2/usb_util.c create mode 100644 hardinfo2/util.c create mode 100644 hardinfo2/vendor.c create mode 100644 hardinfo2/x_util.c delete mode 100644 includes/ssh-conn.h delete mode 100644 includes/xmlrpc-client.h delete mode 100644 includes/xmlrpc-server.h delete mode 100644 po/HOWTO.txt delete mode 100644 po/salvage.sh mode change 100644 => 100755 po/updatepo.sh delete mode 100644 test/data/alpha_as_cpuinfo delete mode 100644 test/data/arm_asus_android_cpuinfo delete mode 100644 test/data/arm_jetsontx2_cpuinfo delete mode 100644 test/data/arm_marv_cpuinfo delete mode 100644 test/data/arm_rpi3_aarch32_cpuinfo delete mode 100644 test/data/arm_rpi3_aarch64_cpuinfo delete mode 100644 test/data/e2k_elbrus_4x_e4c_cpuinfo delete mode 100644 test/data/e2k_elbrus_4x_e8c_cpuinfo delete mode 100644 test/data/e2k_elbrus_801_pc_e8c_cpuinfo delete mode 100644 test/data/e2k_elbrus_e16c_cpuinfo delete mode 100644 test/data/e2k_elbrus_e1c+_cpuinfo delete mode 100644 test/data/e2k_elbrus_e2c+_cpuinfo delete mode 100644 test/data/e2k_elbrus_e2c3_cpuinfo delete mode 100644 test/data/e2k_elbrus_e8c2_cpuinfo delete mode 100644 test/data/e2k_elbrus_e8c_cpuinfo delete mode 100644 test/data/ia64_x2_cpuinfo delete mode 100644 test/data/m68k_sun3_cpuinfo delete mode 100644 test/data/mips_loongson_cpuinfo delete mode 100644 test/data/parisc_hppa_fortex4_cpuinfo delete mode 100644 test/data/power8_cpuinfo delete mode 100644 test/data/ppc_g5_cpuinfo delete mode 100644 test/data/riscv_fake_cpuinfo delete mode 100644 test/data/riscv_sim_cpuinfo delete mode 100644 test/data/rpi1_raspbian.dts delete mode 100644 test/data/rpi3_arch_arm64.dts delete mode 100644 test/data/rpi3_raspbian.dts delete mode 100644 test/data/s390_hurcules_cpuinfo delete mode 100644 test/data/sh_dreamcast_cpuinfo delete mode 100644 test/data/sh_sh3_cpuinfo delete mode 100644 test/data/sh_sh64_cpuinfo delete mode 100644 test/data/sparc_m7_cpuinfo delete mode 100644 test/data/x86_amdr7_cpuinfo delete mode 100644 test/data/x86_cyrix6x86coma_cpuinfo delete mode 100644 test/data/x86_pent_cpuinfo delete mode 100644 test/data/x86_pentf00f_cpuinfo delete mode 100644 test/just_bench.sh delete mode 100644 test/rm_hardinfo.sh delete mode 100755 test/test.sh delete mode 100644 test/ws_scan.sh delete mode 100755 tools/benchmark-conf-to-json.py delete mode 100755 tools/populate.py diff --git a/.clang-format b/.clang-format deleted file mode 100644 index f11ba963..00000000 --- a/.clang-format +++ /dev/null @@ -1,117 +0,0 @@ ---- -Language: Cpp -AccessModifierOffset: -2 -AlignAfterOpenBracket: Align -AlignConsecutiveAssignments: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlines: Right -AlignOperands: true -AlignTrailingComments: true -AllowAllParametersOfDeclarationOnNextLine: true -AllowShortBlocksOnASingleLine: false -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: All -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -AlwaysBreakAfterDefinitionReturnType: None -AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: false -AlwaysBreakTemplateDeclarations: false -BinPackArguments: true -BinPackParameters: false -BraceWrapping: - AfterClass: false - AfterControlStatement: false - AfterEnum: false - AfterFunction: true - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: false - AfterUnion: false - BeforeCatch: false - BeforeElse: false - IndentBraces: false - SplitEmptyFunction: true - SplitEmptyRecord: true - SplitEmptyNamespace: true -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Custom -BreakBeforeInheritanceComma: false -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -BreakConstructorInitializers: BeforeColon -BreakAfterJavaFieldAnnotations: false -BreakStringLiterals: true -ColumnLimit: 80 -CommentPragmas: '^ IWYU pragma:' -CompactNamespaces: false -ConstructorInitializerAllOnOneLineOrOnePerLine: false -ConstructorInitializerIndentWidth: 4 -ContinuationIndentWidth: 4 -Cpp11BracedListStyle: true -DerivePointerAlignment: false -DisableFormat: false -ExperimentalAutoDetectBinPacking: false -FixNamespaceComments: true -ForEachMacros: - - list_for_each - - list_for_each_rev - - list_for_each_safe - - list_for_each_off - - list_for_each_safe_off - - LWAN_ARRAY_FOREACH_REVERSE - - LWAN_ARRAY_FOREACH - - STRING_SWITCH - - STRING_SWITCH_L - - STRING_SWITCH_SMALL - - STRING_SWITCH_SMALL_L - - STRING_SWITCH_LARGE - - STRING_SWITCH_LARGE_L -IncludeCategories: - - Regex: '^"lwan-.*' - Priority: 2 - - Regex: '^(<|"(gtest|gmock|isl|json)/)' - Priority: 3 - - Regex: '.*' - Priority: 1 -IncludeIsMainRegex: '(Test)?$' -IndentCaseLabels: false -IndentWidth: 4 -IndentWrappedFunctionNames: false -JavaScriptQuotes: Leave -JavaScriptWrapImports: true -KeepEmptyLinesAtTheStartOfBlocks: true -MacroBlockBegin: '' -MacroBlockEnd: '' -MaxEmptyLinesToKeep: 1 -NamespaceIndentation: None -ObjCBlockIndentWidth: 2 -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: true -PenaltyBreakAssignment: 2 -PenaltyBreakBeforeFirstCallParameter: 19 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 60 -PointerAlignment: Right -ReflowComments: true -SortIncludes: true -SortUsingDeclarations: true -SpaceAfterCStyleCast: false -SpaceAfterTemplateKeyword: true -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: ControlStatements -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInAngles: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: Cpp11 -TabWidth: 8 -UseTab: Never -... - diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 3a6425ec..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,74 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -name: "CodeQL" - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: '0 19 * * 1' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - # Override automatic language detection by changing the below list - # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ['cpp', 'python'] - # Learn more... - # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - # We must fetch at least the immediate parents so that if this is - # a pull request then we can checkout the head. - fetch-depth: 2 - - - name: Install dependencies - run: sudo apt-get install cmake libffi-dev libgtk2.0-dev liblzma-dev libselinux1-dev libsoup2.4-dev pciutils libjson-glib-dev - - # If this run was triggered by a pull request event, then checkout - # the head of the pull request instead of the merge commit. - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.gitignore b/.gitignore index b19644f5..8b1b0d95 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ build/ build-*/ test/build-* po/*.old - +po/*.mo diff --git a/AUTHORS.md b/AUTHORS.md deleted file mode 100644 index 18e568b9..00000000 --- a/AUTHORS.md +++ /dev/null @@ -1,57 +0,0 @@ -HardInfo was started in 2003, by L. Pereira, and has received -contributions from many people over the years. - -There was a time it didn't even use a version control system. The early -notes and changelogs were lost. Some important contributions were made -by simply submitting bug reports or comments. For these reasons, it -would be difficult to gather the names of all the people that -contributed to the project. - -Here is an incomplete list of contributors: - -* L. A. F. Pereira -* Stewart Adam -* Pascal F. Martin -* Burt P. -* TotalCaesar659 -* Andrey Esin -* Julian Ospald -* Julien Lavergne -* Fernando López -* PICCORO Lenz McKAY -* Alexander Münch -* Simon Quigley -* AsciiWolf -* George Schneeloch -* Mattia Rizzolo -* Yo -* "jamesbond" (http://chiselapp.com/user/jamesbond/) -* Ondrej Čerman -* Mike Hewitt -* Boris Afonot - -Includes code from or based on: - -* uber-graph by Christian Hergert , and others. -* BinReloc by Hongli Lai -* decode-dimms.pl by Philip Edelbrock , - Christian Zuckschwerdt , and - Burkart Lingner -* x86cpucaps by Osamu Kayasono -* MD5 implementation by Colin Plumb (see md5.c for details) -* SHA1 implementation by Steve Reid (see sha1.c for details) -* Blowfish implementation by Paul Kocher (see blowfish.c for details) -* Raytracing benchmark by John Walker (see fbench.c for details) -* FFT benchmark by Scott Robert Ladd (see fftbench.c for details) -* Vendor list based on GtkSysInfo by Pissens Sebastien - -Artwork: - -* Jakub Szypulka -* Tango Project -* The GNOME Project -* VMWare, Inc. (USB icon from VMWare Workstation 6) - -See also: - -* https://github.com/lpereira/hardinfo/graphs/contributors diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 7071909c..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,406 +0,0 @@ -project(HardInfo) -cmake_minimum_required(VERSION 2.6) -cmake_policy(VERSION 2.6) - -set(HARDINFO_VERSION "0.6-alpha") -option(HARDINFO_GTK3 "Attempt to build for GTK3 (0/off for GTK2)" 0) -set(OVRARCH "" CACHE STRING "Override HARDINFO_ARCH value") -set(OVRCPUINFO "" CACHE STRING "Specify a different file for /proc/cpuinfo") -set(OVRDTRROOT "" CACHE STRING "Specify a different path for /proc/device-tree") -SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ) -include(GNUInstallDirs) - -if(${CMAKE_BUILD_TYPE} MATCHES [Dd]ebug) - set(HARDINFO_DEBUG 1) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") -endif() - -if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux") - set(HARDINFO_OS "linux") -else() - message(FATAL_ERROR "Unsupported operating system: ${CMAKE_HOST_SYSTEM_NAME}") -endif() - -if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "i[3-6]86") - set(HARDINFO_ARCH "x86") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") - set(HARDINFO_ARCH "x86") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "(ppc|ppc32|ppc64|ppc64le)") - set(HARDINFO_ARCH "ppc") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "mips") - set(HARDINFO_ARCH "mips") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "parisc.*") - set(HARDINFO_ARCH "parisc") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "sparc{32,64}") - set(HARDINFO_ARCH "sparc") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm.*") - set(HARDINFO_ARCH "arm") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "aarch64.*") - set(HARDINFO_ARCH "arm") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "ia64") - set(HARDINFO_ARCH "ia64") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "loongarch64") - set(HARDINFO_ARCH "loongarch64") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "alpha") - set(HARDINFO_ARCH "alpha") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "s390.*") - set(HARDINFO_ARCH "s390") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "m68k") - set(HARDINFO_ARCH "m68k") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "sh[3-5]") - set(HARDINFO_ARCH "sh") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "(riscv|riscv32|riscv64)") - set(HARDINFO_ARCH "riscv") -elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "e2k") - set(HARDINFO_ARCH "e2k") -else() - message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}") -endif() - -if (OVRARCH) - set(HARDINFO_ARCH ${OVRARCH}) -endif() -if (OVRCPUINFO) - add_definitions(-DPROC_CPUINFO=${OVRCPUINFO}) - message(STATUS "/proc/cpuinfo override: ${OVRCPUINFO}") -endif() -if (OVRDTRROOT) - add_definitions(-DDTR_ROOT=${OVRDTRROOT}) - message(STATUS "/proc/device-tree override: ${OVRDTRROOT}") -endif() -add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") -message(STATUS "LOCALEDIR = ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") - -message(STATUS "Building HardInfo for architecture: ${HARDINFO_OS}-${HARDINFO_ARCH}") - -add_definitions("-std=gnu89") -add_definitions("-Wno-deprecated-declarations") -add_definitions("-Wformat") -add_definitions("-Wformat-security") - -add_subdirectory(po) - -include(FindPkgConfig) -if (HARDINFO_GTK3) - message(STATUS "Building for GTK3 (experimental!)") - pkg_check_modules(GTK REQUIRED gtk+-3.0>=3.0 cairo>=1.0 cairo-png>=1.0 glib-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) - add_definitions(-DGTK_DISABLE_SINGLE_INCLUDES) -else() - message(STATUS "Building for GTK2") - pkg_check_modules(GTK REQUIRED gtk+-2.0>=2.10 glib-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) -endif() - -pkg_check_modules(LIBSOUP libsoup-2.4>=2.42) -pkg_check_modules(JSON_GLIB REQUIRED json-glib-1.0) - -pkg_check_modules(X11 REQUIRED x11) - -include(FindZLIB REQUIRED) - -include_directories( - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/includes - ${CMAKE_SOURCE_DIR}/includes/${HARDINFO_ARCH} - ${CMAKE_SOURCE_DIR}/deps/uber-graph - ${CMAKE_SOURCE_DIR}/deps/sysobj_early/include - ${CMAKE_SOURCE_DIR}/deps/sysobj_early/gui - ${CMAKE_BINARY_DIR} - ${GTK_INCLUDE_DIRS} - ${LIBSOUP_INCLUDE_DIRS} - ${ZLIB_INCLUDE_DIRS} - ${X11_INCLUDE_DIRS} - ${JSON_GLIB_INCLUDE_DIRS} -) -link_directories( - ${GTK_LIBRARY_DIRS} - ${LIBSOUP_LIBRARY_DIRS} - ${X11_LIBRARY_DIRS} - ${JSON_GLIB_LIBRARY_DIRS} -) - -set(HARDINFO_MODULES - computer - devices - benchmark - network -) -set(HARDINFO_RESOURCES - "data/benchmark.data" - "data/benchmark.json" - "data/vendor.ids" - "data/sdcard.ids" - "data/usb.ids" - "data/arm.ids" - "data/edid.ids" - "data/ieee_oui.ids" - "data/pci.ids.min" - "data/kernel-module-icons.json" -) - -set(HARDINFO_MANPAGES - "hardinfo.1" -) - -set(MODULE_computer_SOURCES - modules/computer.c - modules/computer/alsa.c - modules/computer/boots.c - modules/computer/display.c - modules/computer/environment.c - modules/computer/filesystem.c - modules/computer/languages.c - modules/computer/loadavg.c - modules/computer/memory.c - modules/computer/memory_usage.c - modules/computer/modules.c - modules/computer/os.c - modules/computer/ubuntu_flavors.c - modules/computer/uptime.c - modules/computer/users.c - modules/computer/groups.c -) -set(MODULE_devices_SOURCES - modules/devices.c - modules/devices/${HARDINFO_ARCH}/processor.c - modules/devices/gpu.c - modules/devices/monitors.c - modules/devices/battery.c - modules/devices/dmi.c - modules/devices/dmi_memory.c - modules/devices/firmware.c - modules/devices/devicetree.c - modules/devices/inputdevices.c - modules/devices/pci.c - modules/devices/printers.c - modules/devices/resources.c - modules/devices/sensors.c -# modules/devices/spd-decode.c - modules/devices/storage.c - modules/devices/usb.c -) -set(MODULE_network_SOURCES - modules/network.c - modules/network/net.c - modules/network/nfs.c - modules/network/samba.c -) -set(MODULE_benchmark_SOURCES_GTKANY - modules/benchmark.c - modules/benchmark/bench_util.c - modules/benchmark/blowfish.c - modules/benchmark/blowfish2.c - modules/benchmark/cryptohash.c - modules/benchmark/fbench.c - modules/benchmark/fftbench.c - modules/benchmark/fft.c - modules/benchmark/fib.c - modules/benchmark/md5.c - modules/benchmark/nqueens.c - modules/benchmark/raytrace.c - modules/benchmark/sha1.c - modules/benchmark/zlib.c - modules/benchmark/sysbench.c -) -set(MODULE_benchmark_SOURCES_GTK2 - modules/benchmark/drawing.c - modules/benchmark/guibench.c -) -if (HARDINFO_GTK3) - set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY}) -else() - set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY} ${MODULE_benchmark_SOURCES_GTK2}) -endif() - -set_source_files_properties( - modules/benchmark/blowfish.c - modules/benchmark/fftbench.c - modules/benchmark/md5.c - modules/benchmark/sha1.c - PROPERTIES - COMPILE_FLAGS "-O0" -) - -set_source_files_properties( - modules/devices/monitors.c - modules/devices/dmi_memory.c -# modules/devices/spd-decode.c - hardinfo/problem_marker.c - hardinfo/hinote_util.c - PROPERTIES - COMPILE_FLAGS "-std=c99 -Wall -Wextra -Wno-unused-function -Wno-deprecated-declarations -Wno-switch" -) - -foreach (_module ${HARDINFO_MODULES}) - add_library(${_module} MODULE ${MODULE_${_module}_SOURCES}) - set_target_properties(${_module} PROPERTIES PREFIX "") - target_link_libraries(${_module} ${JSON_GLIB_LIBRARIES}) -endforeach() - -find_library(LIBSENSORS_LIBRARY NAMES libsensors.so) -if (LIBSENSORS_LIBRARY) - set(HAS_LIBSENSORS 1) - target_link_libraries(devices ${LIBSENSORS_LIBRARY}) -endif () - -add_library(sysobj_early STATIC - deps/sysobj_early/src/gg_slist.c - deps/sysobj_early/src/strstr_word.c - deps/sysobj_early/src/auto_free.c - deps/sysobj_early/src/util_ids.c - deps/sysobj_early/src/util_sysobj.c - deps/sysobj_early/src/appf.c - deps/sysobj_early/src/nice_name.c - deps/sysobj_early/gui/uri_handler.c - deps/sysobj_early/src/util_edid.c - deps/sysobj_early/src/format_early.c - deps/sysobj_early/src/cpubits.c -) -set_target_properties(sysobj_early PROPERTIES COMPILE_FLAGS "-std=c99 -Wall -Wextra -Wno-parentheses -Wno-unused-function") -target_link_libraries(sysobj_early m) - -if (HARDINFO_GTK3) -add_library(uber-graph STATIC - deps/uber-graph/g-ring.c - deps/uber-graph/uber-frame-source.c - deps/uber-graph/uber-graph.c - deps/uber-graph/uber-heat-map.c - deps/uber-graph/uber-label.c - deps/uber-graph/uber-line-graph.c - deps/uber-graph/uber-range.c - deps/uber-graph/uber-scale.c - deps/uber-graph/uber-scatter.c - deps/uber-graph/uber-timeout-interval.c - deps/uber-graph/uber-window.c -) -set_target_properties(uber-graph PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations") -endif() - -set_source_files_properties( - hardinfo/usb_util.c - hardinfo/pci_util.c - hardinfo/gpu_util.c - hardinfo/cpu_util.c - hardinfo/x_util.c - hardinfo/dt_util.c - PROPERTIES - COMPILE_FLAGS "-Wall -Wextra -Wno-parentheses -Wno-unused-function" -) - -if (HARDINFO_GTK3) -add_executable(hardinfo - hardinfo/usb_util.c - hardinfo/pci_util.c - hardinfo/binreloc.c - hardinfo/expr.c - hardinfo/hardinfo.c - hardinfo/socket.c - hardinfo/util.c - hardinfo/gg_key_file_parse_string_as_value.c - hardinfo/gg_strescape.c - hardinfo/problem_marker.c - hardinfo/hinote_util.c - hardinfo/vendor.c - hardinfo/info.c - hardinfo/cpu_util.c - hardinfo/dmi_util.c - hardinfo/dt_util.c - hardinfo/x_util.c - hardinfo/gpu_util.c - hardinfo/udisks2_util.c - hardinfo/storage_util.c - shell/callbacks.c - shell/iconcache.c - shell/menu.c - shell/report.c - shell/shell.c - shell/stock.c - shell/syncmanager.c - shell/loadgraph-uber.c -) -target_link_libraries(hardinfo - -Wl,-whole-archive sysobj_early -Wl,-no-whole-archive - uber-graph - ${GTK_LIBRARIES} - ${LIBSOUP_LIBRARIES} - m - ${ZLIB_LIBRARIES} - ${X11_LIBRARIES} - ${JSON_GLIB_LIBRARIES} -) -set_target_properties(hardinfo PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations") -else() -add_executable(hardinfo - hardinfo/usb_util.c - hardinfo/pci_util.c - hardinfo/binreloc.c - hardinfo/expr.c - hardinfo/hardinfo.c - hardinfo/socket.c - hardinfo/util.c - hardinfo/gg_key_file_parse_string_as_value.c - hardinfo/gg_strescape.c - hardinfo/problem_marker.c - hardinfo/hinote_util.c - hardinfo/vendor.c - hardinfo/info.c - hardinfo/cpu_util.c - hardinfo/dmi_util.c - hardinfo/dt_util.c - hardinfo/x_util.c - hardinfo/gpu_util.c - hardinfo/udisks2_util.c - hardinfo/storage_util.c - shell/callbacks.c - shell/iconcache.c - shell/menu.c - shell/report.c - shell/shell.c - shell/stock.c - shell/syncmanager.c - shell/loadgraph.c -) -target_link_libraries(hardinfo - -Wl,-whole-archive sysobj_early -Wl,-no-whole-archive - ${GTK_LIBRARIES} - ${LIBSOUP_LIBRARIES} - m - ${ZLIB_LIBRARIES} - ${X11_LIBRARIES} - ${JSON_GLIB_LIBRARIES} -) -endif() - -configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h @ONLY) -configure_file(hardinfo.desktop.cmake ${CMAKE_BINARY_DIR}/hardinfo.desktop @ONLY) - -install(TARGETS hardinfo ${HARDINFO_MODULES} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/hardinfo/modules - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE -) -install(FILES ${CMAKE_BINARY_DIR}/hardinfo.desktop - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) -install(FILES ${HARDINFO_RESOURCES} - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) -install(DIRECTORY pixmaps - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo - PATTERN "*.{png,svg}" - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) -install(DIRECTORY doc - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo - PATTERN "*.{hlp,png}" - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) -install(FILES ${HARDINFO_MANPAGES} - DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) -install(FILES pixmaps/hardinfo.png - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ -) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index e62ab5bd..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,28 +0,0 @@ -# Project - -Issues and Pull Requests via GitHub: - -* https://github.com/lpereira/hardinfo - -If this is your first contribution, feel free to add your name to -AUTHORS.md as a commit included in your pull request. - -## Pull requests - -Pull requests should contain related commits. Each commit should have a -descriptive title, and clearly describe the changes in the commit message. -Please make small commits that are easier to review. - -## Coding - -Ancient code used a mixture of tab and space for indentation, but newer -prefers four (4) spaces for each level of indentation. - -# Translators - -If possible, run `bash updatepo.sh` in the po/ directory before begining. -This will regenerate hardinfo.pot and update all the .po files. -Nothing is lost if this isn't done, but it prevents wasting time translating -strings that have changed, or are no longer used. - -DO NOT use `make pot`! diff --git a/README.md b/README.md deleted file mode 100644 index f3dc2b77..00000000 --- a/README.md +++ /dev/null @@ -1,80 +0,0 @@ -HARDINFO -======== - -HardInfo is a system profiler and benchmark for Linux systems. It is able to -obtain information from both hardware and basic software, and organize it -in a simple to use GUI. - -Features include: -- Report generation (in either HTML or plain text) -- Benchmark result synchronization -- Ability to explore the information on remote computers - -Status ------- - -Capabilities: HardInfo currently detects most software and hardware detected by the OS. -Features: The remote sync was disabled due to server loss. -Development: Currently done by contributors, a new dedicated maintainer is needed. - -Server code can be found in the "server" branch: https://github.com/lpereira/hardinfo/tree/server - -DEPENDENCIES ------------- - -Required: -- GTK+ 2.10 (or newer) -- GLib 2.10 (or newer) -- Zlib (for zlib benchmark) - -Optional (for synchronization/remote): -- Libsoup 2.24 (or newer) - -BUILDING --------- - -Create a build directory and build from there: - -``` bash - hardinfo $ mkdir build - hardinfo $ cd build - build $ cmake .. - build $ make -``` - -There are some variables that can be changed: - - * `CMAKE_BUILD_TYPE`: Can either be ``Release`` or ``Debug``. - * `[Default: Release]` ``Debug`` prints messages to console and is not recommended for general use. - * `CMAKE_INSTALL_PREFIX`: Sets the installation prefix. - * `[Default: /usr/local]`: Distributions usually change this to `/usr`. - * `HARDINFO_NOSYNC`: Disables network synchronization. - * `[Default: 1]`: Disabled by default due to the server being lost. - -To set a variable, use cmake's -D parameter. For example: - -` build $ cmake .. -DCMAKE_BUILD_TYPE=Debug ` - -Network sync is enabled if libsoup is detected. If having trouble building with libsoup, disable it with: - -` build $ cmake -DHARDINFO_NOSYNC=1` - -SETTING UP ----------- - -Most hardware is detected automatically by HardInfo, however, some hardware -needs manual set up. They are: - -### Sensors - -**lm-sensors**: If your computer is compatible with lm-sensors module, use by example the -`sensors-detect` program included with the lm-sensors package of Debian based distros, and be sure -to have the detected kernel modules loaded. - -**hddtemp**: To obtain the hard disk drive temperature, be sure to run hddtemp -in daemon mode, using the default port. - -### Memory Speed - -The module `eeprom` must be loaded to display info about your currently installed memory. -Load with `modprobe eeprom` and refresh the module screen. diff --git a/TODO b/TODO deleted file mode 100644 index b65d77f8..00000000 --- a/TODO +++ /dev/null @@ -1,43 +0,0 @@ - -- Report Generation - - * Ability to create more detailed reports - * Public web page to host user's reports - -- Benchmark - - * New benchmarks - o FPU+CPU - o Disk - o Phoronix? - * Change current benchmarks - o Remove CPU Fibonacci - * Add CPU Rubik Cube solver? :P - -- More information - - * PCMCIA/Cardbus information - * S.M.A.R.T. - * Show USB devices as a tree instead of a list - * x86info integration? - -- i18n, build system - - * GNU gettext - -- Misc - - * Round benchmark results to two decimal places at most, - or get rid of decimal places altogether. - * Add preferences window - * Save/restore - * Window position - * Window size - * Proxy configuration - * Use HTTP_PROXY variable; - * Use GNOME settings; - * Manual configuration. - * Default browser - * Auto-detect; - * Use GNOME settings; - * Manual configuration. diff --git a/cmake/GNUInstallDirs.cmake b/cmake/GNUInstallDirs.cmake index 4db4e18f..814d21ae 100644 --- a/cmake/GNUInstallDirs.cmake +++ b/cmake/GNUInstallDirs.cmake @@ -125,7 +125,6 @@ Macros #]=======================================================================] cmake_policy(PUSH) -cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced # Convert a cache variable to PATH type diff --git a/config.h.cmake b/config.h.cmake deleted file mode 100644 index 5316d9d6..00000000 --- a/config.h.cmake +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __CONFIG_H__ -#define __CONFIG_H__ - -#define VERSION "@HARDINFO_VERSION@" - -#define ARCH "ARCH_@HARDINFO_ARCH@" -#define OS "@HARDINFO_OS@" -#define PLATFORM OS "-" ARCH -#define KERNEL "" -#define HOSTNAME "" -#define ARCH_@HARDINFO_ARCH@ - -#define LIBDIR "@CMAKE_INSTALL_LIBDIR@" -#define LIBPREFIX "@CMAKE_INSTALL_FULL_LIBDIR@/hardinfo" -#define PREFIX "@CMAKE_INSTALL_DATAROOTDIR@/hardinfo" - -#cmakedefine LIBSOUP_FOUND -#cmakedefine HARDINFO_DEBUG @HARDINFO_DEBUG@ - -#ifdef LIBSOUP_FOUND -# define HAS_LIBSOUP -#endif /* LIBSOUP_FOUND */ - -#if defined(HARDINFO_DEBUG) && (HARDINFO_DEBUG==1) -# define RELEASE 0 -# define DEBUG(msg,...) fprintf(stderr, "*** %s:%d (%s) *** " msg "\n", \ - __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__) -#else -# define RELEASE 1 -# define DEBUG(msg,...) -#endif /* HARDINFO_DEBUG */ - -#define ENABLE_BINRELOC 1 -#define HAS_LINUX_WE 1 - -#cmakedefine01 HAS_LIBSENSORS - -#endif /* __CONFIG_H__ */ diff --git a/data/benchmark.data b/data/benchmark.data deleted file mode 100644 index efb964db..00000000 Binary files a/data/benchmark.data and /dev/null differ diff --git a/data/benchmark.json b/data/benchmark.json deleted file mode 100644 index 31a0f8fc..00000000 --- a/data/benchmark.json +++ /dev/null @@ -1,19960 +0,0 @@ -{ - "CPU Blowfish": [ - { - "MachineId": "2_0___X370_SLI_PLUS_(MS_7A33)_(Micro_Star_International_Co___Ltd_);AMD_Ryzen_5_1600_Six_Core_Processor;38400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.049676, - "ElapsedTime": 1.049676, - "UsedThreads": 12, - "Board": "2.0 / X370 SLI PLUS (MS-7A33) (Micro-Star International Co., Ltd.)", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16377260, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "AMD Radeon (TM) R9 390 Series (HAWAII, DRM 3.26.0, 4.18.0, LLVM 6.0.1)", - "GpuDesc": "AMD/ATI Hawaii PRO + NVIDIA GeForce GTX 750", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "CPU Blowfish (Multi-core)": [ - { - "MachineId": "CFL_Sienna_CFS_V1_26_(acer_Predator_PH317_52);Intel_Core_i5_8300H;32000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 62.09, - "ElapsedTime": 7.000107, - "UsedThreads": 4, - "Board": "CFL Sienna_CFS V1.26 (acer Predator PH317-52)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-8300H", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16240344, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 630 (CFL GT2)", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti + Intel UHD Graphics 630 (Mobile)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_4_Model_B_Rev_1_1;Broadcom_BCM2838;6000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 16.24, - "ElapsedTime": 7.000684, - "UsedThreads": 4, - "Board": "Raspberry Pi 4 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2838", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1500.00 MHz", - "CpuConfigMap": { - "1500.00": 4 - }, - "MemoryInKiB": 3999788, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "llvmpipe (LLVM 6.0, 128 bits)", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;68800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 254.58, - "ElapsedTime": 7.000265, - "UsedThreads": 8, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4300.00 MHz", - "CpuConfigMap": { - "4300.00": 16 - }, - "MemoryInKiB": 16371928, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.12.0-rc6.cloud4t0r+, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0X6W22_A00_(Latitude_E6430_01);Intel_Core_i5_3340M;13600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 18.74, - "ElapsedTime": 7.000155, - "UsedThreads": 2, - "Board": "Dell 0X6W22 A00 (Latitude E6430 01)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-3340M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 12158268, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;82910_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 253.69, - "ElapsedTime": 7.000365, - "UsedThreads": 8, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "2x 5414.00 MHz + 2x 5269.00 MHz + 2x 5129.00 MHz + 2x 4988.00 MHz + 2x 4844.00 MHz + 2x 4703.00 MHz + 4x 5554.00 MHz", - "CpuConfigMap": { - "4703.00": 2, - "4844.00": 2, - "4988.00": 2, - "5129.00": 2, - "5269.00": 2, - "5414.00": 2, - "5554.00": 4 - }, - "MemoryInKiB": 16371996, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.11.0.cloud4t0r, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MEDIONPC_WIM_2070;Intel_Pentium_M;1600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4.7, - "ElapsedTime": 7.00014, - "UsedThreads": 1, - "Board": "MEDIONPC WIM 2070", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 1008396, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Intel Mobile 915GM/GMS/910GML Express Graphics + Intel Mobile 915GM/GMS/910GML Express Graphics", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_3600_6_Core;50306_32", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 195.58, - "ElapsedTime": 7.000172, - "UsedThreads": 6, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "1x 4192.29 MHz + 1x 4191.85 MHz + 1x 4191.76 MHz + 1x 4190.14 MHz + 1x 4187.14 MHz + 1x 4203.16 MHz + 1x 4192.28 MHz + 1x 4192.19 MHz + 1x 4192.02 MHz + 1x 4191.59 MHz + 1x 4191.18 MHz + 1x 4190.72 MHz", - "CpuConfigMap": { - "4187.14": 1, - "4190.14": 1, - "4190.72": 1, - "4191.18": 1, - "4191.59": 1, - "4191.76": 1, - "4191.85": 1, - "4192.02": 1, - "4192.19": 1, - "4192.28": 1, - "4192.29": 1, - "4203.16": 1 - }, - "MemoryInKiB": 16415836, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.22-calculate, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X750JN_1_0;Intel_Core_i7_4710HQ;28000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 39.24, - "ElapsedTime": 7.000178, - "UsedThreads": 4, - "Board": "ASUS X750JN 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-4710HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16279596, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce 840M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce 840M + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_Lancer_4A5_SDK0E50515STD_(80E6_Lenovo_Z40_70);Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 15.48, - "ElapsedTime": 7.000164, - "UsedThreads": 2, - "Board": "Lenovo Lancer 4A5 SDK0E50515STD (80E6 Lenovo Z40-70)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 16264540, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "NVIDIA GeForce GT 820M + Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_3_Model_B_Rev_1_2;Broadcom_BCM2837;4800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.485, - "ElapsedTime": 7.000508, - "UsedThreads": 4, - "Board": "Raspberry Pi 3 Model B Rev 1.2", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2837", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1200.00 MHz", - "CpuConfigMap": { - "1200.00": 4 - }, - "MemoryInKiB": 948296, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_Z170_A_Rev_1_xx;Intel_Core_i5_6600K;15600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 61.01, - "ElapsedTime": 7.000127, - "UsedThreads": 4, - "Board": "ASUS Z170-A Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6600K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 49292304, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1070", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Firefly_ROC_RK3328_CC;Rockchip_RK3328;5568_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 11.72, - "ElapsedTime": 7.000391, - "UsedThreads": 4, - "Board": "Firefly ROC-RK3328-CC", - "MachineType": "Unknown", - "CpuName": "Rockchip RK3328", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1392.00 MHz", - "CpuConfigMap": { - "1392.00": 4 - }, - "MemoryInKiB": 946208, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "ARM Mali 450", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_9_5900X_12_Core;88800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 431.56, - "ElapsedTime": 7.00041, - "UsedThreads": 12, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 24 - }, - "MemoryInKiB": 16367924, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 3060 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B450_PLUS_II;AMD_Ryzen_7_3700X;64800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 208.92000000000002, - "ElapsedTime": 7.000286, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B450-PLUS II", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16307848, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GT 1030/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GT 1030", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0M277C_(Vostro1510_Null);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 15.48, - "ElapsedTime": 7.000187, - "UsedThreads": 2, - "Board": "Dell 0M277C (Vostro1510 Null)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 4021320, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 965GM (CL)", - "GpuDesc": "Intel Mobile GM965/GL960 Integrated Graphics (secondary) + Intel Mobile GM965/GL960 Integrated Graphics (primary)", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 203.74, - "ElapsedTime": 7.002647, - "UsedThreads": 22, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_MA770T_UD3P;AMD_Phenom(tm)_II_X2_550_Processor;6200_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 18.31, - "ElapsedTime": 7.000139, - "UsedThreads": 2, - "Board": "Gigabyte GA-MA770T-UD3P", - "MachineType": "Unknown", - "CpuName": "AMD Phenom II X2 550", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 2 - }, - "MemoryInKiB": 16425960, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "llvmpipe (LLVM 6.0, 128 bits)", - "GpuDesc": "AMD/ATI Caicos XT", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_MAXIMUS_VII_HERO_Rev_1_xx_(All_Series);Intel_Core_i7_4790K;32008_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 51.14, - "ElapsedTime": 7.000143, - "UsedThreads": 4, - "Board": "ASUS MAXIMUS VII HERO Rev 1.xx (All Series)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4790K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4001.00 MHz", - "CpuConfigMap": { - "4001.00": 8 - }, - "MemoryInKiB": 32620560, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)", - "GpuDesc": "nVidia GK104 [GeForce GTX 660 OEM] + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.75, - "ElapsedTime": 7.000211, - "UsedThreads": 1, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "QEMU_Standard_PC_(i440FX___PIIX__1996)_pc_i440fx_bionic;QEMU_Virtual_version_2_5_;6198_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 16.47, - "ElapsedTime": 7.00017, - "UsedThreads": 2, - "Board": "QEMU Standard PC (i440FX + PIIX, 1996) pc-i440fx-bionic", - "MachineType": "Virtual (QEMU)", - "CpuName": "QEMU Virtual version 2.5+", - "CpuDesc": "2 CPUs; 2 cores; 2 threads", - "NumCpus": 2, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3099.00 MHz", - "CpuConfigMap": { - "3099.00": 2 - }, - "MemoryInKiB": 4038892, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 128 bits)", - "GpuDesc": "Red Hat QXL paravirtual graphic card", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FUJITSU_D3544_A1_S26361_D3544_A14_(FUTRO_S740);Intel_Celeron_J4105;10000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 35.62, - "ElapsedTime": 7.000317, - "UsedThreads": 4, - "Board": "FUJITSU D3544-A1 S26361-D3544-A14 (FUTRO S740)", - "MachineType": "Desktop", - "CpuName": "Intel Celeron J4105", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 4 - }, - "MemoryInKiB": 3761396, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 600 (GLK 2)", - "GpuDesc": "Intel UHD Graphics 605", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_27763JG_Not_Available_(ThinkPad_X301);Intel_Core_2_Duo_U9400;2802_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 7.4, - "ElapsedTime": 7.00448, - "UsedThreads": 2, - "Board": "Lenovo 27763JG Not Available (ThinkPad X301)", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo U9400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 1401.00 MHz", - "CpuConfigMap": { - "1401.00": 2 - }, - "MemoryInKiB": 5976376, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_30C0_KBC_Version_71_2E_(F_20);Intel_Core_2_Duo_T7500;4400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 13.66, - "ElapsedTime": 7.000209, - "UsedThreads": 2, - "Board": "HP 30C0 KBC Version 71.2E (F.20)", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo T7500", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 2 - }, - "MemoryInKiB": 4027864, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 965GM (CL)", - "GpuDesc": "Intel Mobile GM965/GL960 Integrated Graphics (secondary) + Intel Mobile GM965/GL960 Integrated Graphics (primary)", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INTERNATIONAL_CO__LTD_MS_7388_1_0;AMD_Phenom_II_X4_965;16000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 44.64, - "ElapsedTime": 7.000198, - "UsedThreads": 4, - "Board": "MICRO-STAR INTERNATIONAL CO.,LTD MS-7388 1.0", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Phenom II X4 965", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 4 - }, - "MemoryInKiB": 8168284, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "NV132", - "GpuDesc": "nVidia GP102 [GeForce GTX 1080 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INC__MS_6728_3_00;Intel_Pentium_4;6766_84", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.94, - "ElapsedTime": 7.00024, - "UsedThreads": 1, - "Board": "MICRO-STAR INC. MS-6728 3.00", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3383.42 MHz", - "CpuConfigMap": { - "3383.42": 2 - }, - "MemoryInKiB": 3071692, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI R200 (RV280 5960) DRI2", - "GpuDesc": "AMD/ATI RV280", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Xeon_E5_2620_v4;48000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 62, - "ElapsedTime": 7.001455, - "UsedThreads": 8, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2620 v4", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 8068884, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_I_AORUS_PRO_WIFI_(_CF);AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 313.2, - "ElapsedTime": 7.00082, - "UsedThreads": 12, - "Board": "Gigabyte X570 I AORUS PRO WIFI (-CF)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32798764, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Steel_Legend;AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 65.18, - "ElapsedTime": 7.000284, - "UsedThreads": 6, - "Board": "ASRock B450 Steel Legend", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32801148, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.29-1.el7.x86_64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;85484_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 289.52666666666664, - "ElapsedTime": 7.000273, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "2x 5143.00 MHz + 2x 4994.00 MHz + 2x 4850.00 MHz + 4x 5725.00 MHz + 2x 5581.00 MHz + 2x 5436.00 MHz + 2x 5288.00 MHz", - "CpuConfigMap": { - "4850.00": 2, - "4994.00": 2, - "5143.00": 2, - "5288.00": 2, - "5436.00": 2, - "5581.00": 2, - "5725.00": 4 - }, - "MemoryInKiB": 32847612, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-051100-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0H275K_(Studio_1735);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 14.97, - "ElapsedTime": 7.000167, - "UsedThreads": 2, - "Board": "Dell 0H275K (Studio 1735)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 3065112, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV635 (DRM 2.50.0 / 5.9.0-1-amd64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI RV635/M86", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_F2A85_M_LE;AMD_A10_5700;6713_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 15.91, - "ElapsedTime": 7.000337, - "UsedThreads": 4, - "Board": "ASUS F2A85-M LE", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A10-5700", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "1x 1678.00 MHz + 1x 1676.00 MHz + 1x 1680.00 MHz + 1x 1679.00 MHz", - "CpuConfigMap": { - "1676.00": 1, - "1678.00": 1, - "1679.00": 1, - "1680.00": 1 - }, - "MemoryInKiB": 6057036, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Trinity", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_H110M_PRO_D_(MS_7996)_1_0_(MS_7996);Intel_Core_i3_6100;14800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 29.575, - "ElapsedTime": 7.000118, - "UsedThreads": 2, - "Board": "MSI H110M PRO-D (MS-7996) 1.0 (MS-7996)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-6100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8041372, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_T100TA_1_0;Intel_Atom_Z3740;7464_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 19.345, - "ElapsedTime": 7.000482, - "UsedThreads": 4, - "Board": "ASUS T100TA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Atom Z3740", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1866.00 MHz", - "CpuConfigMap": { - "1866.00": 4 - }, - "MemoryInKiB": 1915684, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 128 bits)", - "GpuDesc": "Intel Atom Z36xxx/Z37xxx Series Graphics & Display", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IBM_2376A26_Not_Available_(ThinkPad_T42);Intel_Pentium_M;1700_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4.94, - "ElapsedTime": 7.001248, - "UsedThreads": 1, - "Board": "IBM 2376A26 Not Available (ThinkPad T42)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1700.00 MHz", - "CpuConfigMap": { - "1700.00": 1 - }, - "MemoryInKiB": 2062316, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.1, 128 bits)", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_00F6D3_A00_(Latitude_7480);Intel_Core_i7_7600U;15600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 26.545, - "ElapsedTime": 7.000177, - "UsedThreads": 2, - "Board": "Dell 00F6D3 A00 (Latitude 7480)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7600U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 16017124, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_X5675;38401_14", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 112.11, - "ElapsedTime": 7.013221, - "UsedThreads": 12, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 12 threads", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "3x 3333.43 MHz + 6x 3066.76 MHz", - "CpuConfigMap": { - "3066.76": 6, - "3333.43": 3 - }, - "MemoryInKiB": 40950868, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B460_Phantom_Gaming_4;Intel_Core_i7_10700F;76800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 147.64, - "ElapsedTime": 7.000213, - "UsedThreads": 8, - "Board": "ASRock B460 Phantom Gaming 4", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10700F", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4800.00 MHz", - "CpuConfigMap": { - "4800.00": 16 - }, - "MemoryInKiB": 65783984, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_314D_SDK0J40697_WIN_3305309193205_(11AD002DMH_ThinkCentre_M90n_1);Intel_Core_i5_8265U;31200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 56.31, - "ElapsedTime": 7.000145, - "UsedThreads": 4, - "Board": "Lenovo 314D SDK0J40697 WIN 3305309193205 (11AD002DMH ThinkCentre M90n-1)", - "MachineType": "Mini PC", - "CpuName": "Intel Core i5-8265U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 7963152, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 620 (WHL GT2)", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X510UAR_1_0;Intel_Core_i7_8550U;32000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 28.84, - "ElapsedTime": 7.000209, - "UsedThreads": 4, - "Board": "ASUS X510UAR 1.0", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-8550U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16277736, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0X4N41_A01_(Precision_3440);Intel_Core_i9_10900;104000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 179.37, - "ElapsedTime": 7.000201, - "UsedThreads": 10, - "Board": "Dell 0X4N41 A01 (Precision 3440)", - "MachineType": "Desktop", - "CpuName": "Intel Core i9-10900", - "CpuDesc": "1 CPU; 10 cores; 20 threads", - "NumCpus": 1, - "NumCores": 10, - "NumThreads": 20, - "NumNodes": 1, - "CpuConfig": "20x 5200.00 MHz", - "CpuConfigMap": { - "5200.00": 20 - }, - "MemoryInKiB": 32574572, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia Device + Intel Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_Paris_5A8_SDK0J40709_WIN_(80Q7_Lenovo_ideapad_300_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 24.16, - "ElapsedTime": 7.00028, - "UsedThreads": 2, - "Board": "Lenovo Paris 5A8 SDK0J40709 WIN (80Q7 Lenovo ideapad 300-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8005472, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__Z590_A_PRO_(MS_7D09)_1_0_(MS_7D09);Intel_11th_Gen_Core_i5_11600K;58800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 155.63, - "ElapsedTime": 7.000159, - "UsedThreads": 6, - "Board": "Micro-Star International Co., Ltd. Z590-A PRO (MS-7D09) 1.0 (MS-7D09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "Intel 11th Gen Core i5-11600K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 12 - }, - "MemoryInKiB": 32760328, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B350M_K;AMD_Ryzen_5_2600;46200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 62.35, - "ElapsedTime": 7.000305, - "UsedThreads": 6, - "Board": "ASUS PRIME B350M-K", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3850.00 MHz", - "CpuConfigMap": { - "3850.00": 12 - }, - "MemoryInKiB": 16380832, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.39.0, 5.9.14-100.fc32.x86_64, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_CROSSHAIR_VIII_HERO;AMD_Ryzen_9_5900X_12_Core;88800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 373.58, - "ElapsedTime": 7.000289, - "UsedThreads": 12, - "Board": "ASUS ROG CROSSHAIR VIII HERO", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 9 5900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 24 - }, - "MemoryInKiB": 16296556, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Unknown", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_770TA_UD3;AMD_Phenom_II_X6_1090T;19200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 51.91, - "ElapsedTime": 7.010029, - "UsedThreads": 6, - "Board": "Gigabyte GA-770TA-UD3", - "MachineType": "Desktop", - "CpuName": "AMD Phenom II X6 1090T", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 6 - }, - "MemoryInKiB": 8148892, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CYPRESS (DRM 2.50.0 / 5.10.52-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_3600_6_Core;43200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 190.49, - "ElapsedTime": 7.000187, - "UsedThreads": 6, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 16415876, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0R32866WIN_(81UT_Lenovo_IdeaPad_S145_15API);AMD_Ryzen_3_3200U;10400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 17.46, - "ElapsedTime": 7.000181, - "UsedThreads": 2, - "Board": "Lenovo LNVNB161216 SDK0R32866WIN (81UT Lenovo IdeaPad S145-15API)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 3 3200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 5823412, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.39.0, 5.9.2-050902-generic, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X570ZD_1_0_(VivoBook_ASUSLaptop_X570ZD_F570ZD);AMD_Ryzen_5_2500U;16000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 36.08, - "ElapsedTime": 7.000239, - "UsedThreads": 4, - "Board": "ASUS X570ZD 1.0 (VivoBook_ASUSLaptop X570ZD_F570ZD)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 2500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15371664, - "PhysicalMemoryInMiB": 15360, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.38.0, 5.8.0-34-generic, LLVM 11.0.0)", - "GpuDesc": "NVIDIA GeForce GTX 1050 + AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 243.09, - "ElapsedTime": 7.000636, - "UsedThreads": 8, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_1991_KBC_Version_15_59_(HP_EliteBook_820_G1_A3009DD10303);Intel_Core_i5_4210U;10800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 14.8, - "ElapsedTime": 7.000136, - "UsedThreads": 2, - "Board": "HP 1991 KBC Version 15.59 (HP EliteBook 820 G1 A3009DD10303)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-4210U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2700.00 MHz", - "CpuConfigMap": { - "2700.00": 4 - }, - "MemoryInKiB": 3932836, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "CPU Blowfish (Multi-thread)": [ - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_X5675;38401_14", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 118.85, - "ElapsedTime": 7.003221, - "UsedThreads": 12, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 12 threads", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "3x 3333.43 MHz + 6x 3066.76 MHz", - "CpuConfigMap": { - "3066.76": 6, - "3333.43": 3 - }, - "MemoryInKiB": 40950868, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68C_GS_FX;AMD_Athlon_II_X4_645;12400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 35.2, - "ElapsedTime": 7.000394, - "UsedThreads": 4, - "Board": "ASRock N68C-GS FX", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon II X4 645", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8149656, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X512DA_1_0_(VivoBook_ASUSLaptop_X512DA_X512DA);AMD_Ryzen_5_3500U;16800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 65.05, - "ElapsedTime": 7.000295, - "UsedThreads": 8, - "Board": "ASUS X512DA 1.0 (VivoBook_ASUSLaptop X512DA_X512DA)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 3500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2100.00 MHz", - "CpuConfigMap": { - "2100.00": 8 - }, - "MemoryInKiB": 6091876, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.40.0, 5.10.1, LLVM 11.0.0)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_MA78GM_S2H;AMD_Athlon_64_X2_6000_;6000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 14.7, - "ElapsedTime": 7.000674, - "UsedThreads": 2, - "Board": "Gigabyte GA-MA78GM-S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Athlon 64 X2 6000+", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 2 - }, - "MemoryInKiB": 3769200, - "PhysicalMemoryInMiB": 3840, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD RS780 (DRM 2.50.0 / 5.4.0-48-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RS780", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0V5GVY_A00_(Precision_M4800);Intel_Core_i7_4810MQ;30400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 32.43, - "ElapsedTime": 7.000987, - "UsedThreads": 8, - "Board": "Dell 0V5GVY A00 (Precision M4800)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4810MQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8052692, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Unknown + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Xeon_E5_2620_v4;48000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 93.9, - "ElapsedTime": 7.001386, - "UsedThreads": 16, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2620 v4", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 8068884, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 262.85, - "ElapsedTime": 7.00045, - "UsedThreads": 16, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_F_GAMING_(WI_FI);AMD_Ryzen_7_5800X;70400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 295.65, - "ElapsedTime": 7.000468, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX B550-F GAMING (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 16 - }, - "MemoryInKiB": 32850544, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-22-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_Dimension_8100;Intel_Pentium_4;1395_86", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.47, - "ElapsedTime": 7.000285, - "UsedThreads": 1, - "Board": "Dell Dimension 8100", - "MachineType": "Unknown", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1395.86 MHz", - "CpuConfigMap": { - "1395.86": 1 - }, - "MemoryInKiB": 1023376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Mesa DRI nv25 x86/MMX/SSE2", - "GpuDesc": "nVidia NV25 [GeForce4 Ti 4400]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 302.04, - "ElapsedTime": 7.000806, - "UsedThreads": 16, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Gaming_K4;AMD_Ryzen_5_1600;38400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 95.1, - "ElapsedTime": 7.000463, - "UsedThreads": 12, - "Board": "ASRock X370 Gaming K4", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16387260, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.38.0, 5.8.0-44-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(____________________);Intel_Core_i7_8550U;32000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 94, - "ElapsedTime": 7.000529, - "UsedThreads": 8, - "Board": "(Неизвестно)", - "MachineType": "Настольный компьютер", - "CpuName": "Intel Core i7-8550U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16136368, - "PhysicalMemoryInMiB": 16256, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel UHD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);Intel_Core_i7_3930K;12796_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 41.11, - "ElapsedTime": 7.000753, - "UsedThreads": 4, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "Intel Core i7-3930K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3199.00 MHz", - "CpuConfigMap": { - "3199.00": 4 - }, - "MemoryInKiB": 8138080, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "SVGA3D; build: RELEASE; LLVM;", - "GpuDesc": "VMware SVGA II Adapter", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_02JCHC_A08_(Inspiron_N4050_Not_Specified);Intel_Core_i5_2450M;12400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 29.23, - "ElapsedTime": 7.000531, - "UsedThreads": 4, - "Board": "Dell 02JCHC A08 (Inspiron N4050 Not Specified)", - "MachineType": "Portable", - "CpuName": "Intel Core i5-2450M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8047360, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ATARI_VCS_800_(VCS_800_Classic_1);AMD_Ryzen_Embedded_R1606G;10400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 30.43, - "ElapsedTime": 7.000204, - "UsedThreads": 4, - "Board": "ATARI VCS 800 (VCS 800 Classic 1)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen Embedded R1606G", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 6018124, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RAVEN2 (DRM 3.38.0, 5.8.0-36-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INC__MS_6728_3_00;Intel_Pentium_4;6766_84", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.58, - "ElapsedTime": 7.000293, - "UsedThreads": 2, - "Board": "MICRO-STAR INC. MS-6728 3.00", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3383.42 MHz", - "CpuConfigMap": { - "3383.42": 2 - }, - "MemoryInKiB": 3071692, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI R200 (RV280 5960) DRI2", - "GpuDesc": "AMD/ATI RV280", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);Intel_Xeon_E3_1225_v6;13244_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 38.22, - "ElapsedTime": 7.011309, - "UsedThreads": 4, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "Intel Xeon E3-1225 v6", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3311.00 MHz", - "CpuConfigMap": { - "3311.00": 4 - }, - "MemoryInKiB": 8150424, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "SVGA3D; build: RELEASE; LLVM;", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 150.26333333333335, - "ElapsedTime": 7.000325, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16368932, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.1-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ZOTAC_ZBOXNANO_AD12;AMD_E2_1800_with_Radeon_HD_Graphics;3400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 7.78, - "ElapsedTime": 7.000375, - "UsedThreads": 2, - "Board": "ZOTAC ZBOXNANO-AD12", - "MachineType": "Unknown", - "CpuName": "AMD E2-1800 with Radeon HD Graphics", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 1700.00 MHz", - "CpuConfigMap": { - "1700.00": 2 - }, - "MemoryInKiB": 7867808, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Wrestler", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_X470_PRO;AMD_Ryzen_7_2700;54400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 140.48, - "ElapsedTime": 7.000575, - "UsedThreads": 16, - "Board": "ASUS PRIME X470-PRO", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 16 - }, - "MemoryInKiB": 32856940, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.38.0, 5.8.12-gentoo-x86_64, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Ellesmere + AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 126.148, - "ElapsedTime": 7.000861, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32780940, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_2320HQU_Win8_Pro_DPK_TPG_(ThinkPad_X230);Intel_Core_i7_3520M;14400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 31.75, - "ElapsedTime": 7.009944, - "UsedThreads": 4, - "Board": "Lenovo 2320HQU Win8 Pro DPK TPG (ThinkPad X230)", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-3520M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 15949752, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) Ivybridge Mobile", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_3_Model_B_Plus_Rev_1_3;Broadcom_BCM2837;5600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 12.43, - "ElapsedTime": 7.000546, - "UsedThreads": 4, - "Board": "Raspberry Pi 3 Model B Plus Rev 1.3", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2837", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1400.00 MHz", - "CpuConfigMap": { - "1400.00": 4 - }, - "MemoryInKiB": 948952, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_212B_1_01_(HP_Z440_Workstation);Intel_Xeon_E5_1630_v4;32000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 76.59, - "ElapsedTime": 7.000415, - "UsedThreads": 8, - "Board": "HP 212B 1.01 (HP Z440 Workstation)", - "MachineType": "Mini Tower", - "CpuName": "Intel Xeon E5-1630 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16303440, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro K620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;31794_28", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 75.34, - "ElapsedTime": 7.000257, - "UsedThreads": 8, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 3917.00 MHz + 1x 3991.08 MHz + 1x 3991.07 MHz + 1x 3989.75 MHz + 1x 3988.45 MHz + 1x 3984.50 MHz + 1x 3972.20 MHz + 1x 3960.23 MHz", - "CpuConfigMap": { - "3917.00": 1, - "3960.23": 1, - "3972.20": 1, - "3984.50": 1, - "3988.45": 1, - "3989.75": 1, - "3991.07": 1, - "3991.08": 1 - }, - "MemoryInKiB": 14341892, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.53-calculate, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;112000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 653.09, - "ElapsedTime": 7.001287, - "UsedThreads": 32, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Supermicro_H8DG6_H8DGi_1_0_(1234567890);AMD_Opteron_6380;40000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 106.23, - "ElapsedTime": 7.011497, - "UsedThreads": 16, - "Board": "Supermicro H8DG6/H8DGi 1.0 (1234567890)", - "MachineType": "Main Server Chassis", - "CpuName": "AMD Opteron 6380", - "CpuDesc": "2 CPUs; 8 cores; 16 threads", - "NumCpus": 2, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 16 - }, - "MemoryInKiB": 8073288, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Matrox Electronics Systems Ltd. MGA G200eW WPCM450 + AMD/ATI Caicos + AMD/ATI Turks XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "acer_T_Rex_SK_V1_11_(Aspire_ES1_572);Intel_Core_i5_7200U;12400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 34.43, - "ElapsedTime": 7.000372, - "UsedThreads": 4, - "Board": "acer T-Rex_SK V1.11 (Aspire ES1-572)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-7200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16259948, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_DS3H_CF_(B450M_DS3H);AMD_Ryzen_9_3900_12_Core;74400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 423.04, - "ElapsedTime": 7.002701, - "UsedThreads": 24, - "Board": "Gigabyte B450M DS3H-CF (B450M DS3H)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 24 - }, - "MemoryInKiB": 32895004, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.36.0, 5.6.19-159.current, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_2_Model_B_Rev_1_1;Broadcom_BCM2836;3600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 7.01, - "ElapsedTime": 7.001122, - "UsedThreads": 4, - "Board": "Raspberry Pi 2 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2836", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 900.00 MHz", - "CpuConfigMap": { - "900.00": 4 - }, - "MemoryInKiB": 948952, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Gallium 0.4 on llvmpipe (LLVM 3.9, 128 bits)", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5Q_SE2;Intel_Xeon_E5450;12036_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 38.38, - "ElapsedTime": 7.000216, - "UsedThreads": 4, - "Board": "ASUS P5Q SE2", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5450", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3009.00 MHz", - "CpuConfigMap": { - "3009.00": 4 - }, - "MemoryInKiB": 6093180, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "GeForce GT 220/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 220", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_00F6D3_A00_(Latitude_7480);Intel_Core_i7_7600U;15600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 45.400000000000006, - "ElapsedTime": 7.000293, - "UsedThreads": 4, - "Board": "Dell 00F6D3 A00 (Latitude 7480)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7600U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 16017124, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "PowerBook6_8;7447A__altivec_supported;1499_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.5, - "ElapsedTime": 7.000355, - "UsedThreads": 1, - "Board": "PowerBook6,8", - "MachineType": "Unknown", - "CpuName": "7447A, altivec supported", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1499.00 MHz", - "CpuConfigMap": { - "1499.00": 1 - }, - "MemoryInKiB": 1287664, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia NV34M [GeForce FX Go5200]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 312.11, - "ElapsedTime": 7.000302, - "UsedThreads": 16, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32864880, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 770", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0C7K68_A04_(Latitude_E5450);Intel_Core_i5_5300U;8800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 14.644, - "ElapsedTime": 7.000256, - "UsedThreads": 4, - "Board": "Dell 0C7K68 A04 (Latitude E5450)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-5300U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 4 - }, - "MemoryInKiB": 16284832, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 5500 (BDW GT2)", - "GpuDesc": "Intel HD Graphics 5500", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 337.58, - "ElapsedTime": 7.00043, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32846468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.12.0-051200-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FOXCONN_A88GMV_1_0;AMD_model_unknown;18000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 56.05666666666667, - "ElapsedTime": 7.000326, - "UsedThreads": 6, - "Board": "FOXCONN A88GMV 1.0", - "MachineType": "Настольный компьютер", - "CpuName": "AMD model unknown", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 6 - }, - "MemoryInKiB": 8150168, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.12-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X399_Taichi;AMD_Ryzen_Threadripper_1900X;61600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 77.57, - "ElapsedTime": 7.000348, - "UsedThreads": 16, - "Board": "ASRock X399 Taichi", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen Threadripper 1900X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3850.00 MHz", - "CpuConfigMap": { - "3850.00": 16 - }, - "MemoryInKiB": 32804468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GM204 [GeForce GTX 970] + NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IGEL_Technology_GmbH_VX900_Type2___Board_Version_(M330C_M330C_V_3_0_13_09182013);VIA_Eden_X2_U4200;2000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 6.56, - "ElapsedTime": 7.000471, - "UsedThreads": 2, - "Board": "IGEL Technology GmbH VX900 Type2 - Board Version (M330C M330C V:3.0.13-09182013)", - "MachineType": "IGEL Endpoint", - "CpuName": "VIA Eden X2 U4200", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 1000.00 MHz", - "CpuConfigMap": { - "1000.00": 2 - }, - "MemoryInKiB": 3857568, - "PhysicalMemoryInMiB": 3968, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "VIA VX900 Graphics [Chrome9 HD]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_I_AORUS_PRO_WIFI_(_CF);AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 442.24, - "ElapsedTime": 7.001341, - "UsedThreads": 24, - "Board": "Gigabyte X570 I AORUS PRO WIFI (-CF)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32798764, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X470_GAMING_PLUS_MAX_(MS_7B79)_3_0_(MS_7B79);AMD_Ryzen_5_3600_6_Core;43200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 230.265, - "ElapsedTime": 7.00044, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. X470 GAMING PLUS MAX (MS-7B79) 3.0 (MS-7B79)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 16372076, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-7620-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;94480_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 319, - "ElapsedTime": 7.00041, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "2x 6008.00 MHz + 2x 5844.00 MHz + 2x 5684.00 MHz + 2x 5520.00 MHz + 2x 5360.00 MHz + 4x 6328.00 MHz + 2x 6168.00 MHz", - "CpuConfigMap": { - "5360.00": 2, - "5520.00": 2, - "5684.00": 2, - "5844.00": 2, - "6008.00": 2, - "6168.00": 2, - "6328.00": 4 - }, - "MemoryInKiB": 32847604, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-051100-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_1991_KBC_Version_15_59_(HP_EliteBook_820_G1_A3009DD10303);Intel_Core_i5_4210U;10800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 24.57, - "ElapsedTime": 7.000273, - "UsedThreads": 4, - "Board": "HP 1991 KBC Version 15.59 (HP EliteBook 820 G1 A3009DD10303)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-4210U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2700.00 MHz", - "CpuConfigMap": { - "2700.00": 4 - }, - "MemoryInKiB": 3932836, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A520M_E;AMD_Ryzen_7_5700G;60800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 297.69666666666666, - "ElapsedTime": 7.001584, - "UsedThreads": 16, - "Board": "ASUS PRIME A520M-E", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5700G", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32151660, - "PhysicalMemoryInMiB": 32128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.42.0, 5.14.0-2-amd64, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Cezanne", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_3600_6_Core;50306_32", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 247.45, - "ElapsedTime": 7.000272, - "UsedThreads": 12, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "1x 4192.28 MHz + 1x 4191.59 MHz + 1x 4191.18 MHz + 1x 4190.14 MHz + 1x 4191.76 MHz + 1x 4190.72 MHz + 1x 4187.14 MHz + 1x 4203.16 MHz + 1x 4192.29 MHz + 1x 4192.19 MHz + 1x 4192.02 MHz + 1x 4191.85 MHz", - "CpuConfigMap": { - "4187.14": 1, - "4190.14": 1, - "4190.72": 1, - "4191.18": 1, - "4191.59": 1, - "4191.76": 1, - "4191.85": 1, - "4192.02": 1, - "4192.19": 1, - "4192.28": 1, - "4192.29": 1, - "4203.16": 1 - }, - "MemoryInKiB": 16415836, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.22-calculate, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8D_V2_2_(HUANANZHI_X99);Intel_Xeon_E5_2697A_v4;230400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 505.8066666666667, - "ElapsedTime": 7.007496, - "UsedThreads": 64, - "Board": "HUANANZHI X99 F8D V2.2 (HUANANZHI X99)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2697A v4", - "CpuDesc": "2 CPUs; 32 cores; 64 threads", - "NumCpus": 2, - "NumCores": 32, - "NumThreads": 64, - "NumNodes": 0, - "CpuConfig": "64x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 64 - }, - "MemoryInKiB": 131912664, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA T600/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA T600", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_Paris_5A8_SDK0J40709_WIN_(80Q7_Lenovo_ideapad_300_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 41.74, - "ElapsedTime": 7.000212, - "UsedThreads": 4, - "Board": "Lenovo Paris 5A8 SDK0J40709 WIN (80Q7 Lenovo ideapad 300-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8005472, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_A320M_DVS_R4_0;AMD_Ryzen_5_2600;40800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 110.56, - "ElapsedTime": 7.003369, - "UsedThreads": 12, - "Board": "ASRock A320M-DVS R4.0", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 12 - }, - "MemoryInKiB": 8092532, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.27.0, 4.19.162-NuTyX-419, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_20N4001YPB_SDK0J40697_WIN_(ThinkPad_T590);Intel_Core_i7_8565U;36800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 97.38, - "ElapsedTime": 7.005554, - "UsedThreads": 8, - "Board": "Lenovo 20N4001YPB SDK0J40697 WIN (ThinkPad T590)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8565U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 24269460, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Lancer_4A5_SDK0E50515STD_(80E6_Lenovo_Z40_70);Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 23.240000000000002, - "ElapsedTime": 7.000404, - "UsedThreads": 4, - "Board": "Lenovo Lancer 4A5 SDK0E50515STD (80E6 Lenovo Z40-70)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 16264540, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "NVIDIA GeForce GT 820M + Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "CPU Blowfish (Single-thread)": [ - { - "MachineId": "Packard_Bell_SJV50_HR_(EasyNote_TS11HR_V1_21);Intel_Core_i7_2820QM;27200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.92, - "ElapsedTime": 7.000104, - "UsedThreads": 1, - "Board": "Packard Bell SJV50_HR (EasyNote TS11HR V1.21)", - "MachineType": "Portátil", - "CpuName": "Intel Core i7-2820QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 8 - }, - "MemoryInKiB": 7994804, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "nVidia GF119M [GeForce GT 520M] + Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0TGH4T_A04_(PowerEdge_R930);Intel_Xeon_E7_4850_v3;313600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.64, - "ElapsedTime": 7.000388, - "UsedThreads": 1, - "Board": "Dell 0TGH4T A04 (PowerEdge R930)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E7-4850 v3", - "CpuDesc": "4 CPUs; 56 cores; 112 threads", - "NumCpus": 4, - "NumCores": 56, - "NumThreads": 112, - "NumNodes": 1, - "CpuConfig": "112x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 112 - }, - "MemoryInKiB": 528273168, - "PhysicalMemoryInMiB": 524288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 7.0, 256 bits)", - "GpuDesc": "Matrox Electronics Systems Ltd. G200eR2", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_30D2_SDK0J40700_WIN_3258065859177_(10HYCTO1WW_ThinkCentre_M700);Intel_Core_i5_6400T;11200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.465, - "ElapsedTime": 7.000138, - "UsedThreads": 1, - "Board": "Lenovo 30D2 SDK0J40700 WIN 3258065859177 (10HYCTO1WW ThinkCentre M700)", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6400T", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 4 - }, - "MemoryInKiB": 8040416, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 11.92, - "ElapsedTime": 7.000095, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_AORUS_ELITE_WIFI_(_CF);AMD_Ryzen_9_3950X;112000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 33.14, - "ElapsedTime": 7.00013, - "UsedThreads": 1, - "Board": "Gigabyte X570 AORUS ELITE WIFI (-CF)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 1, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32819444, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_nForce;AMD_Athlon_64_3000_;1800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.6, - "ElapsedTime": 7.00024, - "UsedThreads": 1, - "Board": "Gigabyte nForce", - "MachineType": "Desktop", - "CpuName": "AMD Athlon 64 3000+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 1, - "CpuConfig": "1x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 1 - }, - "MemoryInKiB": 2049540, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.05, - "ElapsedTime": 7.00026, - "UsedThreads": 1, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "2x 1800.00 MHz + 4x 1416.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_1991_KBC_Version_15_59_(HP_EliteBook_820_G1_A3009DD10303);Intel_Core_i5_4210U;10800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.18, - "ElapsedTime": 7.00013, - "UsedThreads": 1, - "Board": "HP 1991 KBC Version 15.59 (HP EliteBook 820 G1 A3009DD10303)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-4210U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2700.00 MHz", - "CpuConfigMap": { - "2700.00": 4 - }, - "MemoryInKiB": 3932836, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z97X_UD5H;Intel_Core_i7_4790K;35200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 13.61, - "ElapsedTime": 7.00011, - "UsedThreads": 1, - "Board": "Gigabyte Z97X-UD5H", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4790K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 8 - }, - "MemoryInKiB": 16300800, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 980/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 980", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;121600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 30.83, - "ElapsedTime": 7.00007, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_78LMT_USB3;AMD_FX__8350;32000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.17, - "ElapsedTime": 7.000179, - "UsedThreads": 1, - "Board": "Gigabyte GA-78LMT-USB3", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD FX -8350", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16376796, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.40.0, 5.10.30-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "XMG_P65_P67RGRERA_Not_Applicable;Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 13.18, - "ElapsedTime": 7.000145, - "UsedThreads": 1, - "Board": "XMG P65_P67RGRERA Not Applicable", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16212412, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "PowerBook6_8;7447A__altivec_supported;1499_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.3050000000000002, - "ElapsedTime": 7.000354, - "UsedThreads": 1, - "Board": "PowerBook6,8", - "MachineType": "Unknown", - "CpuName": "7447A, altivec supported", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1499.00 MHz", - "CpuConfigMap": { - "1499.00": 1 - }, - "MemoryInKiB": 1287664, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia NV34M [GeForce FX Go5200]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_MZAPLBP_00_1_x_(GB_BPCE_3455);Intel_Celeron_J3455;9200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.22, - "ElapsedTime": 7.000244, - "UsedThreads": 1, - "Board": "Gigabyte MZAPLBP-00 1.x (GB-BPCE-3455)", - "MachineType": "Desktop", - "CpuName": "Intel Celeron J3455", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2300.00 MHz", - "CpuConfigMap": { - "2300.00": 4 - }, - "MemoryInKiB": 7961124, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 500 (APL 2)", - "GpuDesc": "Intel HD Graphics 500", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_TOMAHAWK_MAX_(MS_7C02)_1_0_(MS_7C02);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 32.64, - "ElapsedTime": 7.00011, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd B450 TOMAHAWK MAX (MS-7C02) 1.0 (MS-7C02)", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32902064, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 5.6.12-arch1-1, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_AB350_Gaming_3_CF_(AB350_Gaming_3);AMD_Ryzen_7_1700;48000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 9.21, - "ElapsedTime": 7.000262, - "UsedThreads": 1, - "Board": "Gigabyte AB350-Gaming 3-CF (AB350-Gaming 3)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 16335760, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_3600_6_Core;50306_32", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 33.48, - "ElapsedTime": 7.000088, - "UsedThreads": 1, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "1x 4192.28 MHz + 1x 4192.19 MHz + 1x 4192.02 MHz + 1x 4191.85 MHz + 1x 4191.59 MHz + 1x 4191.18 MHz + 1x 4190.14 MHz + 1x 4203.16 MHz + 1x 4192.29 MHz + 1x 4191.76 MHz + 1x 4190.72 MHz + 1x 4187.14 MHz", - "CpuConfigMap": { - "4187.14": 1, - "4190.14": 1, - "4190.72": 1, - "4191.18": 1, - "4191.59": 1, - "4191.76": 1, - "4191.85": 1, - "4192.02": 1, - "4192.19": 1, - "4192.28": 1, - "4192.29": 1, - "4203.16": 1 - }, - "MemoryInKiB": 16415836, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.22-calculate, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 38.56, - "ElapsedTime": 7.00004, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32846468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.12.0-051200-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Insyde_MCALLAN_Station17_(Wacom_Co__Ltd_Wacom_MobileStudio_Pro_16_157655120000157);Intel_Core_i7_6567U;14400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 13.47, - "ElapsedTime": 7.000116, - "UsedThreads": 1, - "Board": "Insyde MCALLAN Station17 (Wacom Co.,Ltd Wacom MobileStudio Pro 16 157655120000157)", - "MachineType": "Portable", - "CpuName": "Intel Core i7-6567U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 15827384, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) Iris(R) Graphics 550 (SKL GT3)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_S301LA_1_0;Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.3, - "ElapsedTime": 7.000156, - "UsedThreads": 1, - "Board": "ASUS S301LA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 11729212, - "PhysicalMemoryInMiB": 11776, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa DRI Intel(R) Haswell Mobile", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Gaming_K4;AMD_Ryzen_5_5600X_6_Core;59732_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 33.61, - "ElapsedTime": 7.000082, - "UsedThreads": 1, - "Board": "ASRock B450 Gaming K4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 5600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "2x 4932.00 MHz + 2x 4791.00 MHz + 2x 4650.00 MHz + 4x 5210.00 MHz + 2x 5073.00 MHz", - "CpuConfigMap": { - "4650.00": 2, - "4791.00": 2, - "4932.00": 2, - "5073.00": 2, - "5210.00": 4 - }, - "MemoryInKiB": 32793024, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1660 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_N71Vn_1_0;Intel_Core_2_Duo_P8700;5068_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 8.35, - "ElapsedTime": 7.000166, - "UsedThreads": 1, - "Board": "ASUS N71Vn 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo P8700", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2534.00 MHz", - "CpuConfigMap": { - "2534.00": 2 - }, - "MemoryInKiB": 4032048, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 240M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 240M", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_Z490_H_GAMING_Rev_1_xx;Intel_Core_i9_10900KF;106000_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 20.97, - "ElapsedTime": 7.000114, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX Z490-H GAMING Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i9-10900KF", - "CpuDesc": "1 CPU; 10 cores; 20 threads", - "NumCpus": 1, - "NumCores": 10, - "NumThreads": 20, - "NumNodes": 0, - "CpuConfig": "20x 5300.00 MHz", - "CpuConfigMap": { - "5300.00": 20 - }, - "MemoryInKiB": 32766244, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1660 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1660 SUPER", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.77, - "ElapsedTime": 7.000207, - "UsedThreads": 1, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Khadas_VIM3;Amlogic_(Unknown);12432_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 7.006666666666667, - "ElapsedTime": 7.00015, - "UsedThreads": 1, - "Board": "Khadas VIM3", - "MachineType": "Unknown physical machine type", - "CpuName": "Amlogic (Unknown)", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "2x 1800.00 MHz + 4x 2208.00 MHz", - "CpuConfigMap": { - "1800.00": 2, - "2208.00": 4 - }, - "MemoryInKiB": 3797080, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 128 bits)", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_400_Rev_1_0;Broadcom_(Unknown);7200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4.864000000000001, - "ElapsedTime": 7.000192, - "UsedThreads": 1, - "Board": "Raspberry Pi 400 Rev 1.0", - "MachineType": "Single-board computer", - "CpuName": "Broadcom (Unknown)", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 4 - }, - "MemoryInKiB": 3737628, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "V3D 4.2", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;15200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 9.62, - "ElapsedTime": 7.000195, - "UsedThreads": 1, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 8133068, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z170X_Gaming_3;Intel_Core_i7_6700K;33600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 16.53, - "ElapsedTime": 7.000085, - "UsedThreads": 1, - "Board": "Gigabyte Z170X-Gaming 3", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 8 - }, - "MemoryInKiB": 32841984, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_20N4001YPB_SDK0J40697_WIN_(ThinkPad_T590);Intel_Core_i7_8565U;36800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 17.56, - "ElapsedTime": 7.000128, - "UsedThreads": 1, - "Board": "Lenovo 20N4001YPB SDK0J40697 WIN (ThinkPad T590)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8565U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 24269460, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_Model_B_Rev_1;Broadcom_BCM2835;900_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.43, - "ElapsedTime": 7.000866, - "UsedThreads": 1, - "Board": "Raspberry Pi Model B Rev 1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2835", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 900.00 MHz", - "CpuConfigMap": { - "900.00": 1 - }, - "MemoryInKiB": 233612, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_85B3_91_45_(HP_Laptop_17_ca1xxx);AMD_Ryzen_5_3500U;16800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 9.36, - "ElapsedTime": 7.000127, - "UsedThreads": 1, - "Board": "HP 85B3 91.45 (HP Laptop 17-ca1xxx)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 3500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2100.00 MHz", - "CpuConfigMap": { - "2100.00": 8 - }, - "MemoryInKiB": 14309152, - "PhysicalMemoryInMiB": 14464, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.39.0, 5.9.12-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_23252UG_Not_Defined_(ThinkPad_X230);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 9.77, - "ElapsedTime": 7.00011, - "UsedThreads": 1, - "Board": "Lenovo 23252UG Not Defined (ThinkPad X230)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 16071640, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Panasonic_CF53_3_1_(CF_53SU64KLM_003);Intel_Core_i5_3340M;13600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.13, - "ElapsedTime": 7.00012, - "UsedThreads": 1, - "Board": "Panasonic CF53-3 1 (CF-53SU64KLM 003)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3340M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 16234740, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "jetson_nano;nVidia_Tegra_family;5712_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3.9425, - "ElapsedTime": 7.000281, - "UsedThreads": 1, - "Board": "jetson-nano", - "MachineType": "Unknown physical machine type", - "CpuName": "nVidia Tegra-family", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1428.00 MHz", - "CpuConfigMap": { - "1428.00": 4 - }, - "MemoryInKiB": 4051520, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA Tegra X1 (nvgpu)/integrated", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_AORUS_PRO_(_CF);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 27.72, - "ElapsedTime": 7.000076, - "UsedThreads": 1, - "Board": "Gigabyte X570 AORUS PRO (-CF)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32821212, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450M_PLUS_GAMING;AMD_Ryzen_5_5600X_6_Core;50400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 30.919999999999998, - "ElapsedTime": 7.000083, - "UsedThreads": 1, - "Board": "ASUS TUF B450M-PLUS GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 5600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 12 - }, - "MemoryInKiB": 32853232, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.35.0, 5.4.97-gentoo, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "QEMU_Standard_PC_(Q35___ICH9__2009)_pc_q35_5_0;Intel_Core_(Skylake__IBRS);6624_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 12.59, - "ElapsedTime": 7.000114, - "UsedThreads": 1, - "Board": "QEMU Standard PC (Q35 + ICH9, 2009) pc-q35-5.0", - "MachineType": "Unknown", - "CpuName": "Intel Core (Skylake, IBRS)", - "CpuDesc": "2 CPUs; 2 cores; 2 threads", - "NumCpus": 2, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3312.00 MHz", - "CpuConfigMap": { - "3312.00": 2 - }, - "MemoryInKiB": 4030588, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Red Hat QXL paravirtual graphic card", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X470_Master_SLI;AMD_Ryzen_7_2700;64800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.945, - "ElapsedTime": 7.000096, - "UsedThreads": 1, - "Board": "ASRock X470 Master SLI", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16318156, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 550 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 550 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;17600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 10.63, - "ElapsedTime": 7.000134, - "UsedThreads": 1, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 4 - }, - "MemoryInKiB": 8133064, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8D_V2_2_(HUANANZHI_X99);Intel_Xeon_E5_2697A_v4;230400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 12.016666666666666, - "ElapsedTime": 7.000156, - "UsedThreads": 1, - "Board": "HUANANZHI X99 F8D V2.2 (HUANANZHI X99)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2697A v4", - "CpuDesc": "2 CPUs; 32 cores; 64 threads", - "NumCpus": 2, - "NumCores": 32, - "NumThreads": 64, - "NumNodes": 0, - "CpuConfig": "64x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 64 - }, - "MemoryInKiB": 131912664, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA T600/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA T600", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_5_3600X_6_Core;45600_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 27.28, - "ElapsedTime": 7.000092, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 3600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 12 - }, - "MemoryInKiB": 16299368, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.42.0, 5.14.8-gentoo-dist, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0NW73C_A01_(XPS_8500);Intel_Core_i7_3770;31200_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 12.01, - "ElapsedTime": 7.000103, - "UsedThreads": 1, - "Board": "Dell 0NW73C A01 (XPS 8500)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 8114280, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.38.0, 5.8.1-desktop-4.mga8, LLVM 10.0.0)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);AMD_E_450;1713_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3.53, - "ElapsedTime": 7.000469, - "UsedThreads": 1, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "AMD E-450", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1713.00 MHz", - "CpuConfigMap": { - "1713.00": 1 - }, - "MemoryInKiB": 1519408, - "PhysicalMemoryInMiB": 1536, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 9.0.1, 128 bits)", - "GpuDesc": "Oracle (InnoTek) VirtualBox Graphics Adapter", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_MAXIMUS_VIII_GENE_Rev_1_xx;Intel_Core_i7_6700K;16800_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 14.38, - "ElapsedTime": 7.000178, - "UsedThreads": 1, - "Board": "ASUS MAXIMUS VIII GENE Rev 1.xx", - "MachineType": "Invalid chassis type (0)", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 4 - }, - "MemoryInKiB": 4019208, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)", - "GpuDesc": "nVidia Device", - "PointerBits": 32, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_DS3H_CF_(B450M_DS3H);AMD_Ryzen_9_3900_12_Core;74400_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 34.36, - "ElapsedTime": 7.000153, - "UsedThreads": 1, - "Board": "Gigabyte B450M DS3H-CF (B450M DS3H)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 24 - }, - "MemoryInKiB": 32895004, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.36.0, 5.6.19-159.current, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0N9Y46_A00_(Vostro_3668);Intel_Core_i3_7100;15600_00", - "ExtraInfo": "7.0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 15.41, - "ElapsedTime": 7.000141, - "UsedThreads": 1, - "Board": "Dell 0N9Y46 A00 (Vostro 3668)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-7100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 8059516, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel HD Graphics 630", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_A75M_UD2H;AMD_A6_3650;10400_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 7.54, - "ElapsedTime": 7.000186, - "UsedThreads": 1, - "Board": "Gigabyte GA-A75M-UD2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A6-3650", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 16136804, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD SUMO (DRM 2.50.0 / 5.3.0-55-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Sumo", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_G41C_GS;Intel_Pentium_4;6026_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.24, - "ElapsedTime": 7.000171, - "UsedThreads": 1, - "Board": "ASRock G41C-GS", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3013.00 MHz", - "CpuConfigMap": { - "3013.00": 2 - }, - "MemoryInKiB": 2041780, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_M3A_UCC;AMD_Phenom_II_X4_955;12800_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 9.14, - "ElapsedTime": 7.000162, - "UsedThreads": 1, - "Board": "ASRock M3A UCC", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Phenom II X4 955", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 4 - }, - "MemoryInKiB": 6085712, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD REDWOOD (DRM 2.50.0 / 5.10.70-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_MS_6702E_1_0;AMD_Athlon_64_3200_;2000_00", - "ExtraInfo": "7,0s, k:6eac709cca51a228bfa70150c9c5a7c4, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.54, - "ElapsedTime": 7.000385, - "UsedThreads": 1, - "Board": "MSI MS-6702E 1.0", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon 64 3200+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 1 - }, - "MemoryInKiB": 3064240, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RV630 (DRM 2.50.0 / 5.4.0-40-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV630 PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - } - ], - "CPU CryptoHash": [ - { - "MachineId": "CFL_Sienna_CFS_V1_26_(acer_Predator_PH317_52);Intel_Core_i5_8300H;32000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3064.196843, - "ElapsedTime": 0.10337, - "UsedThreads": 8, - "Board": "CFL Sienna_CFS V1.26 (acer Predator PH317-52)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-8300H", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16240344, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 630 (CFL GT2)", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti + Intel UHD Graphics 630 (Mobile)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X570ZD_1_0_(VivoBook_ASUSLaptop_X570ZD_F570ZD);AMD_Ryzen_5_2500U;16000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1147.527116, - "ElapsedTime": 0.271889, - "UsedThreads": 8, - "Board": "ASUS X570ZD 1.0 (VivoBook_ASUSLaptop X570ZD_F570ZD)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 2500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15371664, - "PhysicalMemoryInMiB": 15360, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.38.0, 5.8.0-34-generic, LLVM 11.0.0)", - "GpuDesc": "NVIDIA GeForce GTX 1050 + AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z97X_Gaming_5;Intel_Core_i7_4770;31200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 466.627183, - "ElapsedTime": 0.668628, - "UsedThreads": 8, - "Board": "Gigabyte Z97X-Gaming 5", - "MachineType": "Настольный компьютер", - "CpuName": "Intel Core i7-4770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 32555440, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "GeForce GTX 770/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 770 + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0NW73C_A01_(XPS_8500);Intel_Core_i7_3770;31200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1225.235131, - "ElapsedTime": 0.254645, - "UsedThreads": 8, - "Board": "Dell 0NW73C A01 (XPS 8500)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 8114280, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.38.0, 5.8.1-desktop-4.mga8, LLVM 10.0.0)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_20U70003CK_SDK0J40697_WIN_(ThinkPad_L15_Gen_1);AMD_Ryzen_5_4500U;14250_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1183.555041, - "ElapsedTime": 0.263385, - "UsedThreads": 6, - "Board": "Lenovo 20U70003CK SDK0J40697 WIN (ThinkPad L15 Gen 1)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 4500U", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 2375.00 MHz", - "CpuConfigMap": { - "2375.00": 6 - }, - "MemoryInKiB": 15804444, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.40.0, 5.10.20-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_888D_KBC_Version_51_17_00_(HP_ZBook_Power_15_6_inch_G8_Mobile_Workstation_PC);Intel_11th_Gen_Core_i7_11800H;73600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4171.680706, - "ElapsedTime": 0.07479, - "UsedThreads": 16, - "Board": "HP 888D KBC Version 51.17.00 (HP ZBook Power 15.6 inch G8 Mobile Workstation PC)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i7-11800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 16 - }, - "MemoryInKiB": 32540932, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT1)", - "GpuDesc": "nVidia GA107GLM [RTX A2000 Mobile] + Intel TigerLake-H GT1 [UHD Graphics]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;31794_28", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3017.524856, - "ElapsedTime": 0.103396, - "UsedThreads": 8, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 3984.50 MHz + 1x 3972.20 MHz + 1x 3960.23 MHz + 1x 3917.00 MHz + 1x 3991.08 MHz + 1x 3991.07 MHz + 1x 3989.75 MHz + 1x 3988.45 MHz", - "CpuConfigMap": { - "3917.00": 1, - "3960.23": 1, - "3972.20": 1, - "3984.50": 1, - "3988.45": 1, - "3989.75": 1, - "3991.07": 1, - "3991.08": 1 - }, - "MemoryInKiB": 14341892, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.53-calculate, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);AMD_E_450;1713_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 33.155086, - "ElapsedTime": 9.410321, - "UsedThreads": 1, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "AMD E-450", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1713.00 MHz", - "CpuConfigMap": { - "1713.00": 1 - }, - "MemoryInKiB": 1519408, - "PhysicalMemoryInMiB": 1536, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 9.0.1, 128 bits)", - "GpuDesc": "Oracle (InnoTek) VirtualBox Graphics Adapter", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2212.718878, - "ElapsedTime": 0.141003, - "UsedThreads": 16, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3047.738129, - "ElapsedTime": 0.102371, - "UsedThreads": 24, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32856400, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.37.0, 5.7.7-desktop-1.mga8, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INC__MS_6728_3_00;Intel_Pentium_4;6766_84", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 300.798562, - "ElapsedTime": 1.037239, - "UsedThreads": 2, - "Board": "MICRO-STAR INC. MS-6728 3.00", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3383.42 MHz", - "CpuConfigMap": { - "3383.42": 2 - }, - "MemoryInKiB": 3071692, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI R200 (RV280 5960) DRI2", - "GpuDesc": "AMD/ATI RV280", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Panasonic_CF53_3_1_(CF_53SU64KLM_003);Intel_Core_i5_3340M;13600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 340.076365, - "ElapsedTime": 0.917441, - "UsedThreads": 4, - "Board": "Panasonic CF53-3 1 (CF-53SU64KLM 003)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3340M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 16234740, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0V5GVY_A00_(Precision_M4800);Intel_Core_i7_4810MQ;30400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 591.060214, - "ElapsedTime": 0.527865, - "UsedThreads": 8, - "Board": "Dell 0V5GVY A00 (Precision M4800)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4810MQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8052692, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Unknown + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1226.416038, - "ElapsedTime": 0.249503, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16368932, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.1-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);Intel_Core_i7_10510U;39200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 803.2390849166667, - "ElapsedTime": 0.45921, - "UsedThreads": 8, - "Board": "(Unknown)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10510U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 8 - }, - "MemoryInKiB": 32760728, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_T100TA_1_0;Intel_Atom_Z3740;7464_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 586.8440820000001, - "ElapsedTime": 0.544526, - "UsedThreads": 4, - "Board": "ASUS T100TA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Atom Z3740", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1866.00 MHz", - "CpuConfigMap": { - "1866.00": 4 - }, - "MemoryInKiB": 1915684, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 128 bits)", - "GpuDesc": "Intel Atom Z36xxx/Z37xxx Series Graphics & Display", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 167.506076, - "ElapsedTime": 1.862619, - "UsedThreads": 1, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_A320M_HDV_R4_0;AMD_Ryzen_5_1600;38400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3648.866746, - "ElapsedTime": 0.085506, - "UsedThreads": 12, - "Board": "ASRock A320M-HDV R4.0", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16312616, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-7620-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_CROSSHAIR_VIII_DARK_HERO;AMD_Ryzen_9_5950X;108800_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3743.161532, - "ElapsedTime": 0.083352, - "UsedThreads": 32, - "Board": "ASUS ROG CROSSHAIR VIII DARK HERO", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 1, - "CpuConfig": "32x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 32 - }, - "MemoryInKiB": 65765632, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 3090/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 3090", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Cairo_5A_SDK0J40688_WIN_(80YH_Lenovo_ideapad_320_15IKB);Intel_Core_i7_7500U;14000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 541.204388, - "ElapsedTime": 0.576492, - "UsedThreads": 4, - "Board": "Lenovo Cairo 5A SDK0J40688 WIN (80YH Lenovo ideapad 320-15IKB)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 8045356, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "NVIDIA GeForce 940MX + Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X550JX_1_0;Intel_Core_i5_4200H;13600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 606.438747, - "ElapsedTime": 0.514479, - "UsedThreads": 4, - "Board": "ASUS X550JX 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-4200H", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 7585672, - "PhysicalMemoryInMiB": 7680, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Supermicro_X10SAE_0123456789;Intel_Xeon_E3_1275_v3;31200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1209.147667, - "ElapsedTime": 0.258033, - "UsedThreads": 8, - "Board": "Supermicro X10SAE 0123456789", - "MachineType": "Unknown", - "CpuName": "Intel Xeon E3-1275 v3", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 32810948, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3 Processor Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_2349MXP_Not_Defined_(ThinkPad_T430);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 297.231177, - "ElapsedTime": 1.049688, - "UsedThreads": 4, - "Board": "Lenovo 2349MXP Not Defined (ThinkPad T430)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 7857752, - "PhysicalMemoryInMiB": 7936, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_TRX40_PRO_S_Rev_1_xx;AMD_Ryzen_Threadripper_3960X;182400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5055.4678825, - "ElapsedTime": 0.067538, - "UsedThreads": 48, - "Board": "ASUS PRIME TRX40-PRO S Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen Threadripper 3960X", - "CpuDesc": "1 CPU; 24 cores; 48 threads", - "NumCpus": 1, - "NumCores": 24, - "NumThreads": 48, - "NumNodes": 1, - "CpuConfig": "48x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 48 - }, - "MemoryInKiB": 263772048, - "PhysicalMemoryInMiB": 264192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVD9", - "GpuDesc": "nVidia GF119 [GeForce GT 610]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_1791_REV_0_B_(GE72_2QF_REV_1_0);Intel_Core_i7_5700HQ;28000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1151.886583, - "ElapsedTime": 0.27086, - "UsedThreads": 8, - "Board": "Micro-Star International Co., Ltd. MS-1791 REV:0.B (GE72 2QF REV:1.0)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-5700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16276880, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 5600 (BDW GT2)", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel HD Graphics 5600", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_SHARKBAY_SDK0J40709_WIN_(90B700H6US_Lenovo_H50_50);Intel_Core_i7_4790;32000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1339.647999, - "ElapsedTime": 0.232897, - "UsedThreads": 8, - "Board": "Lenovo SHARKBAY SDK0J40709 WIN (90B700H6US Lenovo H50-50)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4790", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 12215456, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GT 730", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Toronto_5A2_SDK0J40688_WIN_(80UH_Lenovo_ideapad_310_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 443.727023, - "ElapsedTime": 0.703135, - "UsedThreads": 4, - "Board": "Lenovo Toronto 5A2 SDK0J40688 WIN (80UH Lenovo ideapad 310-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8048144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "nVidia GK208BM [GeForce 920M] + Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Gaming_K4;AMD_Ryzen_7_1700;48000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1345.424908, - "ElapsedTime": 0.231897, - "UsedThreads": 16, - "Board": "ASRock X370 Gaming K4", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 32812680, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_Inc__07T4MC_A06_(PowerEdge_T30);Intel_Xeon_E3_1225_v5;14800_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 523.108134, - "ElapsedTime": 0.596435, - "UsedThreads": 4, - "Board": "Dell Inc. 07T4MC A06 (PowerEdge T30)", - "MachineType": "Unknown", - "CpuName": "Intel Xeon E3-1225 v5", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 32818692, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Corporation GP104 [GeForce GTX 1070 Ti] + Intel Corporation HD Graphics P530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_B550_GAMING_CARBON_WIFI_(MS_7C90)_1_0_(MS_7C90);AMD_Ryzen_9_5900X_12_Core;88800_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3373.5102285000003, - "ElapsedTime": 0.093626, - "UsedThreads": 24, - "Board": "Micro-Star International Co., Ltd. MPG B550 GAMING CARBON WIFI (MS-7C90) 1.0 (MS-7C90)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 1, - "CpuConfig": "24x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 24 - }, - "MemoryInKiB": 65841708, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6800 XT (SIENNA_CICHLID, DRM 3.40.0, 5.12.15-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Navi 21", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_01TN68_A02_(Precision_Tower_3431);Intel_Core_i7_9700;37600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1527.756695, - "ElapsedTime": 0.204221, - "UsedThreads": 8, - "Board": "Dell 01TN68 A02 (Precision Tower 3431)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-9700", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 65673764, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro P620 + Intel UHD Graphics 630 (Desktop 9 Series)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X399_Taichi;AMD_Ryzen_Threadripper_1900X;61600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2824.04055, - "ElapsedTime": 0.11048, - "UsedThreads": 16, - "Board": "ASRock X399 Taichi", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen Threadripper 1900X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3850.00 MHz", - "CpuConfigMap": { - "3850.00": 16 - }, - "MemoryInKiB": 32804468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GM204 [GeForce GTX 970] + NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__Z590_A_PRO_(MS_7D09)_1_0_(MS_7D09);Intel_11th_Gen_Core_i5_11600K;58800_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2345.8823, - "ElapsedTime": 0.132999, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. Z590-A PRO (MS-7D09) 1.0 (MS-7D09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "Intel 11th Gen Core i5-11600K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 12 - }, - "MemoryInKiB": 32760328, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_S301LA_1_0;Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 450.352271, - "ElapsedTime": 0.692791, - "UsedThreads": 4, - "Board": "ASUS S301LA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 11729212, - "PhysicalMemoryInMiB": 11776, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa DRI Intel(R) Haswell Mobile", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": " r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2681.103377, - "ElapsedTime": 0.11637, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32861164, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 590 Series (POLARIS10, DRM 3.33.0, 5.3.0-24-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__A320M_PRO_M2_V2_(MS_7B84)_2_0_(MS_7B84);AMD_Ryzen_5_1600X;37915_58", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1311.502974, - "ElapsedTime": 0.237895, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. A320M PRO-M2 V2 (MS-7B84) 2.0 (MS-7B84)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 1600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "1x 3238.21 MHz + 1x 2966.63 MHz + 1x 2963.44 MHz + 1x 2931.02 MHz + 1x 3398.83 MHz + 1x 3389.90 MHz + 1x 3376.45 MHz + 1x 3298.91 MHz + 1x 3443.23 MHz + 1x 3002.24 MHz + 1x 2959.37 MHz + 1x 2947.35 MHz", - "CpuConfigMap": { - "2931.02": 1, - "2947.35": 1, - "2959.37": 1, - "2963.44": 1, - "2966.63": 1, - "3002.24": 1, - "3238.21": 1, - "3298.91": 1, - "3376.45": 1, - "3389.90": 1, - "3398.83": 1, - "3443.23": 1 - }, - "MemoryInKiB": 16405508, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 3609.2106304999998, - "ElapsedTime": 0.085503, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_X510UAR_1_0;Intel_Core_i7_8550U;32000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 543.222774, - "ElapsedTime": 0.57435, - "UsedThreads": 8, - "Board": "ASUS X510UAR 1.0", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-8550U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16277736, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_3148_SDK0J40697_WIN_3305309690110_(11AV0002XS_ThinkCentre_M75s_1);AMD_Ryzen_5_PRO_3600_6_Core;43200_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4621.40064, - "ElapsedTime": 0.067512, - "UsedThreads": 12, - "Board": "Lenovo 3148 SDK0J40697 WIN 3305309690110 (11AV0002XS ThinkCentre M75s-1)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 PRO 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 65786308, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD OLAND (DRM 2.50.0, 5.11.0-37-generic, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Oland", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0J49V5_A00_(Inspiron_3501);Intel_Pentium_Gold_7505;14000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 493.43717466666664, - "ElapsedTime": 0.650973, - "UsedThreads": 4, - "Board": "Dell 0J49V5 A00 (Inspiron 3501)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium Gold 7505", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 3745988, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K43E_1_0;Intel_Core_i5_2410M;11600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 314.49996, - "ElapsedTime": 0.992051, - "UsedThreads": 4, - "Board": "ASUS K43E 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-2410M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 4 - }, - "MemoryInKiB": 5790952, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_1037_SDK0Q40104_WIN_3305666853221_(30BAS0AY00_ThinkStation_P720);Intel_Xeon_Silver_4110;24000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2851.085606, - "ElapsedTime": 0.109432, - "UsedThreads": 8, - "Board": "Lenovo 1037 SDK0Q40104 WIN 3305666853221 (30BAS0AY00 ThinkStation P720)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon Silver 4110", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 8 - }, - "MemoryInKiB": 32503144, - "PhysicalMemoryInMiB": 32512, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Quadro P400/PCIe/SSE2", - "GpuDesc": "NVIDIA Quadro P400", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_G31M_ES2L;Pentium_E5500;6934_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 420.956056, - "ElapsedTime": 0.74117, - "UsedThreads": 2, - "Board": "Gigabyte G31M-ES2L", - "MachineType": "Desktop", - "CpuName": "Pentium E5500", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 3467.00 MHz", - "CpuConfigMap": { - "3467.00": 2 - }, - "MemoryInKiB": 4026396, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) G33", - "GpuDesc": "Intel 82G33/G31 Express Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_308A_KBC_Version_26_08_(Compaq_610_F_0B);Intel_Core_2_Duo_T5870;4002_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 229.341107, - "ElapsedTime": 1.360419, - "UsedThreads": 2, - "Board": "HP 308A KBC Version 26.08 (Compaq 610 F.0B)", - "MachineType": "Portátil", - "CpuName": "Intel Core 2 Duo T5870", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2001.00 MHz", - "CpuConfigMap": { - "2001.00": 2 - }, - "MemoryInKiB": 4019816, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 965GME/GLE (CL)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_X570_GAMING_EDGE_WIFI_(MS_7C37)_1_0_(MS_7C37);AMD_Ryzen_9_3900X_12_Core;99588_16", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2843.368663, - "ElapsedTime": 0.109729, - "UsedThreads": 24, - "Board": "Micro-Star International Co., Ltd. MPG X570 GAMING EDGE WIFI (MS-7C37) 1.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "1x 4161.23 MHz + 1x 4149.96 MHz + 1x 4149.85 MHz + 1x 4149.81 MHz + 1x 4149.79 MHz + 1x 4148.69 MHz + 1x 4145.96 MHz + 1x 4149.16 MHz + 1x 4146.35 MHz + 1x 4141.08 MHz + 1x 4149.71 MHz + 1x 4149.66 MHz + 1x 4149.60 MHz + 1x 4149.24 MHz + 1x 4148.13 MHz + 1x 4153.48 MHz + 2x 4149.86 MHz + 1x 4149.83 MHz + 1x 4149.74 MHz + 1x 4149.67 MHz + 1x 4149.63 MHz + 1x 4148.08 MHz", - "CpuConfigMap": { - "4141.08": 1, - "4145.96": 1, - "4146.35": 1, - "4148.08": 1, - "4148.13": 1, - "4148.69": 1, - "4149.16": 1, - "4149.24": 1, - "4149.60": 1, - "4149.63": 1, - "4149.66": 1, - "4149.67": 1, - "4149.71": 1, - "4149.74": 1, - "4149.79": 1, - "4149.81": 1, - "4149.83": 1, - "4149.85": 1, - "4149.86": 2, - "4149.96": 1, - "4153.48": 1, - "4161.23": 1 - }, - "MemoryInKiB": 32875276, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_AB350_Gaming_3_CF_(AB350_Gaming_3);AMD_Ryzen_7_1700;48000_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 1640.999748, - "ElapsedTime": 0.190128, - "UsedThreads": 16, - "Board": "Gigabyte AB350-Gaming 3-CF (AB350-Gaming 3)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 16335760, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Paris_5A8_SDK0J40700_WIN_(80Q7_Lenovo_ideapad_300_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 502.3121055, - "ElapsedTime": 0.67442, - "UsedThreads": 4, - "Board": "Lenovo Paris 5A8 SDK0J40700 WIN (80Q7 Lenovo ideapad 300-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16255240, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRockRack_C226M_WS;Intel_Xeon_E3_1285_v4;30400_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 2881.179067, - "ElapsedTime": 0.108289, - "UsedThreads": 8, - "Board": "ASRockRack C226M WS", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E3-1285 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 32535516, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro RTX 4000 + Intel Iris Pro Graphics P6300", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_Dimension_8100;Intel_Pentium_4;1395_86", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 31.793363, - "ElapsedTime": 9.813369, - "UsedThreads": 1, - "Board": "Dell Dimension 8100", - "MachineType": "Unknown", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1395.86 MHz", - "CpuConfigMap": { - "1395.86": 1 - }, - "MemoryInKiB": 1023376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Mesa DRI nv25 x86/MMX/SSE2", - "GpuDesc": "nVidia NV25 [GeForce4 Ti 4400]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Microsoft_Surface_Pro_3_1;Intel_Core_i5_4300U;11600_00", - "ExtraInfo": "r:5000, d:c25cf5c889f7bead2ff39788eedae37b", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 469.412933, - "ElapsedTime": 0.66466, - "UsedThreads": 4, - "Board": "Microsoft Surface Pro 3 1", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-4300U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 4 - }, - "MemoryInKiB": 8055828, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "CPU Fibonacci": [ - { - "MachineId": "MSI_G41M_P26_(MS_7592)_5_0_(MS_7592);Intel_Core_2_Quad_Q9550;11332_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.957959, - "ElapsedTime": 0.957959, - "UsedThreads": 1, - "Board": "MSI G41M-P26 (MS-7592) 5.0 (MS-7592)", - "MachineType": "Ordinateur de bureau", - "CpuName": "Intel Core 2 Quad Q9550", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2833.00 MHz", - "CpuConfigMap": { - "2833.00": 4 - }, - "MemoryInKiB": 8160024, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 750 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 750 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IBM_2376A26_Not_Available_(ThinkPad_T42);Intel_Pentium_M;1700_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.914822, - "ElapsedTime": 1.914822, - "UsedThreads": 1, - "Board": "IBM 2376A26 Not Available (ThinkPad T42)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1700.00 MHz", - "CpuConfigMap": { - "1700.00": 1 - }, - "MemoryInKiB": 2062316, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.1, 128 bits)", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_LX;Intel_Core_i5_3470;14400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.510378, - "ElapsedTime": 1.510378, - "UsedThreads": 1, - "Board": "ASUS P8Z77-V LX", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-3470", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32755452, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710 + Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Steel_Legend;AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.552311, - "ElapsedTime": 0.552311, - "UsedThreads": 1, - "Board": "ASRock B450 Steel Legend", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32801148, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.29-1.el7.x86_64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.33532133333333336, - "ElapsedTime": 0.338764, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16368932, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.1-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_314D_SDK0J40697_WIN_3305309193205_(11AD002DMH_ThinkCentre_M90n_1);Intel_Core_i5_8265U;31200_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.630646, - "ElapsedTime": 0.630646, - "UsedThreads": 1, - "Board": "Lenovo 314D SDK0J40697 WIN 3305309193205 (11AD002DMH ThinkCentre M90n-1)", - "MachineType": "Mini PC", - "CpuName": "Intel Core i5-8265U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 7963152, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 620 (WHL GT2)", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z170X_Gaming_3;Intel_Core_i7_6700K;33600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.044154, - "ElapsedTime": 1.044154, - "UsedThreads": 1, - "Board": "Gigabyte Z170X-Gaming 3", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 8 - }, - "MemoryInKiB": 32841984, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X470_Master_SLI;AMD_Ryzen_7_2700;64800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.3542945, - "ElapsedTime": 0.344833, - "UsedThreads": 1, - "Board": "ASRock X470 Master SLI", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16318156, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 550 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 550 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_G41C_GS;Intel_Pentium_4;6026_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.39189, - "ElapsedTime": 1.39189, - "UsedThreads": 1, - "Board": "ASRock G41C-GS", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3013.00 MHz", - "CpuConfigMap": { - "3013.00": 2 - }, - "MemoryInKiB": 2041780, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0X4N41_A01_(Precision_3440);Intel_Core_i9_10900;104000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.015984, - "ElapsedTime": 1.015984, - "UsedThreads": 1, - "Board": "Dell 0X4N41 A01 (Precision 3440)", - "MachineType": "Desktop", - "CpuName": "Intel Core i9-10900", - "CpuDesc": "1 CPU; 10 cores; 20 threads", - "NumCpus": 1, - "NumCores": 10, - "NumThreads": 20, - "NumNodes": 1, - "CpuConfig": "20x 5200.00 MHz", - "CpuConfigMap": { - "5200.00": 20 - }, - "MemoryInKiB": 32574572, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia Device + Intel Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_PRO_Rev_1_xx;Intel_Core_i5_3570K;15200_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.719906, - "ElapsedTime": 1.719906, - "UsedThreads": 1, - "Board": "ASUS P8Z77-V PRO Rev 1.xx", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-3570K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 16365792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 750 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 750 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_78LMT_S2P;AMD_FX__8350;22400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.157221, - "ElapsedTime": 3.157221, - "UsedThreads": 1, - "Board": "Gigabyte GA-78LMT-S2P", - "MachineType": "Desktop", - "CpuName": "AMD FX -8350", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 8 - }, - "MemoryInKiB": 7626652, - "PhysicalMemoryInMiB": 7680, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI RS780L", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0R32866WIN_(81UT_Lenovo_IdeaPad_S145_15API);AMD_Ryzen_3_3200U;10400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.701436, - "ElapsedTime": 0.701436, - "UsedThreads": 1, - "Board": "Lenovo LNVNB161216 SDK0R32866WIN (81UT Lenovo IdeaPad S145-15API)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 3 3200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 5823412, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.39.0, 5.9.2-050902-generic, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B450_PLUS_II;AMD_Ryzen_7_3700X;64800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.298141, - "ElapsedTime": 0.292913, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B450-PLUS II", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16307848, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GT 1030/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GT 1030", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_Z87_G43_(MS_7816)_1_0_(MS_7816);Intel_Core_i5_4670K;16000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.155505, - "ElapsedTime": 1.155505, - "UsedThreads": 1, - "Board": "MSI Z87-G43 (MS-7816) 1.0 (MS-7816)", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-4670K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 4 - }, - "MemoryInKiB": 24498008, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 680/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 680 + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68C_GS_FX;AMD_Athlon_II_X4_645;12400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.752946, - "ElapsedTime": 0.752946, - "UsedThreads": 1, - "Board": "ASRock N68C-GS FX", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon II X4 645", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8149656, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A520M_E;AMD_Ryzen_7_5700G;60800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.8673223333333334, - "ElapsedTime": 0.87455, - "UsedThreads": 1, - "Board": "ASUS PRIME A520M-E", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5700G", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32151660, - "PhysicalMemoryInMiB": 32128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.42.0, 5.14.0-2-amd64, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Cezanne", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_308A_KBC_Version_26_08_(Compaq_610_F_0B);Intel_Core_2_Duo_T5870;4002_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.247959, - "ElapsedTime": 1.247959, - "UsedThreads": 1, - "Board": "HP 308A KBC Version 26.08 (Compaq 610 F.0B)", - "MachineType": "Portátil", - "CpuName": "Intel Core 2 Duo T5870", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2001.00 MHz", - "CpuConfigMap": { - "2001.00": 2 - }, - "MemoryInKiB": 4019816, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 965GME/GLE (CL)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_770TA_UD3;AMD_Phenom_II_X6_1090T;19200_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.708762, - "ElapsedTime": 0.708762, - "UsedThreads": 1, - "Board": "Gigabyte GA-770TA-UD3", - "MachineType": "Desktop", - "CpuName": "AMD Phenom II X6 1090T", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 6 - }, - "MemoryInKiB": 8148892, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CYPRESS (DRM 2.50.0 / 5.10.52-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_85B3_91_45_(HP_Laptop_17_ca1xxx);AMD_Ryzen_5_3500U;16800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.437081, - "ElapsedTime": 0.437081, - "UsedThreads": 1, - "Board": "HP 85B3 91.45 (HP Laptop 17-ca1xxx)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 3500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2100.00 MHz", - "CpuConfigMap": { - "2100.00": 8 - }, - "MemoryInKiB": 14309152, - "PhysicalMemoryInMiB": 14464, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.39.0, 5.9.12-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "acer_T_Rex_SK_V1_11_(Aspire_ES1_572);Intel_Core_i5_7200U;12400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.462952, - "ElapsedTime": 0.462952, - "UsedThreads": 1, - "Board": "acer T-Rex_SK V1.11 (Aspire ES1-572)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-7200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16259948, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_H310M_S2H_2_0;Intel_Core_i7_9700;37600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.399584, - "ElapsedTime": 0.399584, - "UsedThreads": 1, - "Board": "Gigabyte H310M S2H 2.0", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-9700", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 32833372, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2060 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2060 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MEDIONPC_WIM_2070;Intel_Pentium_M;1600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.109651, - "ElapsedTime": 2.109651, - "UsedThreads": 1, - "Board": "MEDIONPC WIM 2070", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 1008396, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Intel Mobile 915GM/GMS/910GML Express Graphics + Intel Mobile 915GM/GMS/910GML Express Graphics", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0J40709_WIN_(81YM_IdeaPad_5_14ARE05);AMD_Ryzen_7_4700U;16000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.3495462222222222, - "ElapsedTime": 0.288776, - "UsedThreads": 1, - "Board": "Lenovo LNVNB161216 SDK0J40709 WIN (81YM IdeaPad 5 14ARE05)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4700U", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15798908, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Xeon_E5_2620_v4;48000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.478452, - "ElapsedTime": 1.478452, - "UsedThreads": 1, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2620 v4", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 8068884, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_TF_V2_0;Intel_Xeon_E5_4650_v3;50424_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.492673, - "ElapsedTime": 0.492673, - "UsedThreads": 1, - "Board": "HUANANZHI X99-TF V2.0", - "MachineType": "Área de Trabalho", - "CpuName": "Intel Xeon E5-4650 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 2101.00 MHz", - "CpuConfigMap": { - "2101.00": 24 - }, - "MemoryInKiB": 65754996, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "TB_4000;AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.083423, - "ElapsedTime": 1.083423, - "UsedThreads": 1, - "Board": "TB-4000", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 15775428, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.41.0, 5.13.10-200.fc34.x86_64, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_GAMING_X;AMD_Ryzen_7_3800X;62400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.049366, - "ElapsedTime": 1.049366, - "UsedThreads": 1, - "Board": "Gigabyte X570 GAMING X", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 16 - }, - "MemoryInKiB": 131934756, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0TGH4T_A04_(PowerEdge_R930);Intel_Xeon_E7_4850_v3;313600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.155975, - "ElapsedTime": 1.155975, - "UsedThreads": 1, - "Board": "Dell 0TGH4T A04 (PowerEdge R930)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E7-4850 v3", - "CpuDesc": "4 CPUs; 56 cores; 112 threads", - "NumCpus": 4, - "NumCores": 56, - "NumThreads": 112, - "NumNodes": 1, - "CpuConfig": "112x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 112 - }, - "MemoryInKiB": 528273168, - "PhysicalMemoryInMiB": 524288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 7.0, 256 bits)", - "GpuDesc": "Matrox Electronics Systems Ltd. G200eR2", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_SABERTOOTH_X79_Rev_1_xx;Intel_Core_i7_3930K;68400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.426341, - "ElapsedTime": 0.426341, - "UsedThreads": 1, - "Board": "ASUS SABERTOOTH X79 Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3930K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 5700.00 MHz", - "CpuConfigMap": { - "5700.00": 12 - }, - "MemoryInKiB": 32817636, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1080 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IGEL_Technology_GmbH_M350C_(1);AMD_Ryzen_Embedded_R1505G;8000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.808884, - "ElapsedTime": 0.808884, - "UsedThreads": 1, - "Board": "IGEL Technology GmbH M350C (1)", - "MachineType": "IGEL Endpoint", - "CpuName": "AMD Ryzen Embedded R1505G", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 4 - }, - "MemoryInKiB": 3417140, - "PhysicalMemoryInMiB": 3584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Ryzen Embedded R1505G with Radeon Vega Gfx (RAVEN2, DRM 3.40.0, 5.12.19, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "acer_Type2___Board_Product_Name1_Type2___Board_Version_(NC_E1_571_736A4G_V2_21);Intel_Core_i7_3612QM;24800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.492947, - "ElapsedTime": 0.492947, - "UsedThreads": 1, - "Board": "acer Type2 - Board Product Name1 Type2 - Board Version (NC-E1-571-736A4G V2.21)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-3612QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 8 - }, - "MemoryInKiB": 16291528, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_08V9YG_A00_(Precision_M4600_01);Intel_Core_i5_2520M;12800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.237136, - "ElapsedTime": 2.232982, - "UsedThreads": 1, - "Board": "Dell 08V9YG A00 (Precision M4600 01)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-2520M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 4 - }, - "MemoryInKiB": 16347792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Quadro 2000M/PCIe/SSE2", - "GpuDesc": "NVIDIA Quadro 2000M", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IBM_1875M2U_Not_Available_(ThinkPad_T43);Intel_Pentium_M;1866_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.755615, - "ElapsedTime": 1.755615, - "UsedThreads": 1, - "Board": "IBM 1875M2U Not Available (ThinkPad T43)", - "MachineType": "Portátil", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1866.00 MHz", - "CpuConfigMap": { - "1866.00": 1 - }, - "MemoryInKiB": 2053288, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_M3A_UCC;AMD_Phenom_II_X4_955;12800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.73153, - "ElapsedTime": 0.73153, - "UsedThreads": 1, - "Board": "ASRock M3A UCC", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Phenom II X4 955", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 4 - }, - "MemoryInKiB": 6085712, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD REDWOOD (DRM 2.50.0 / 5.10.70-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_X570_GAMING_EDGE_WIFI_(MS_7C37)_1_0_(MS_7C37);AMD_Ryzen_9_3900X_12_Core;99588_16", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.296847, - "ElapsedTime": 0.296847, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MPG X570 GAMING EDGE WIFI (MS-7C37) 1.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "1x 4149.67 MHz + 1x 4149.24 MHz + 1x 4161.23 MHz + 2x 4149.86 MHz + 1x 4149.66 MHz + 1x 4145.96 MHz + 1x 4149.96 MHz + 1x 4149.85 MHz + 1x 4149.71 MHz + 1x 4148.13 MHz + 1x 4153.48 MHz + 1x 4149.83 MHz + 1x 4149.81 MHz + 1x 4149.79 MHz + 1x 4149.74 MHz + 1x 4149.63 MHz + 1x 4149.60 MHz + 1x 4149.16 MHz + 1x 4148.69 MHz + 1x 4148.08 MHz + 1x 4146.35 MHz + 1x 4141.08 MHz", - "CpuConfigMap": { - "4141.08": 1, - "4145.96": 1, - "4146.35": 1, - "4148.08": 1, - "4148.13": 1, - "4148.69": 1, - "4149.16": 1, - "4149.24": 1, - "4149.60": 1, - "4149.63": 1, - "4149.66": 1, - "4149.67": 1, - "4149.71": 1, - "4149.74": 1, - "4149.79": 1, - "4149.81": 1, - "4149.83": 1, - "4149.85": 1, - "4149.86": 2, - "4149.96": 1, - "4153.48": 1, - "4161.23": 1 - }, - "MemoryInKiB": 32875276, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;96000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.9764855, - "ElapsedTime": 0.976673, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 24 - }, - "MemoryInKiB": 32852584, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.36.0, 5.6.14-desktop-2.mga7, LLVM 8.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B460M_AORUS_PRO_(B460MAORUSPRO__CF);Intel_Core_i7_10700;76800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.929544, - "ElapsedTime": 0.929544, - "UsedThreads": 1, - "Board": "Gigabyte B460M AORUS PRO (B460MAORUSPRO -CF)", - "MachineType": "桌面", - "CpuName": "Intel Core i7-10700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4800.00 MHz", - "CpuConfigMap": { - "4800.00": 16 - }, - "MemoryInKiB": 32742472, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K43E_1_0;Intel_Core_i5_2410M;11600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.013375, - "ElapsedTime": 2.013375, - "UsedThreads": 1, - "Board": "ASUS K43E 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-2410M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 4 - }, - "MemoryInKiB": 5790952, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_XPS_12_9Q33_A10;Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.772388, - "ElapsedTime": 1.772388, - "UsedThreads": 1, - "Board": "Dell XPS 12-9Q33 A10", - "MachineType": "Portable", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 8051464, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_TOMAHAWK_MAX_(MS_7C02)_1_0_(MS_7C02);AMD_Ryzen_5_3400G;29600_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.3497985, - "ElapsedTime": 0.355812, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd B450 TOMAHAWK MAX (MS-7C02) 1.0 (MS-7C02)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen 5 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 8 - }, - "MemoryInKiB": 32607092, - "PhysicalMemoryInMiB": 32512, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.46-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K54LY_1_0;Intel_Core_i3_2330M;8800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.816735, - "ElapsedTime": 2.816735, - "UsedThreads": 1, - "Board": "ASUS K54LY 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i3-2330M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 4 - }, - "MemoryInKiB": 3992492, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CAICOS (DRM 2.50.0 / 5.10.22-200.fc33.x86_64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Seymour", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_T100TA_1_0;Intel_Atom_Z3740;7464_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.996513, - "ElapsedTime": 2.99474, - "UsedThreads": 1, - "Board": "ASUS T100TA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Atom Z3740", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1866.00 MHz", - "CpuConfigMap": { - "1866.00": 4 - }, - "MemoryInKiB": 1915684, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 128 bits)", - "GpuDesc": "Intel Atom Z36xxx/Z37xxx Series Graphics & Display", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LENOVO_(426593U_ThinkStation_C20);Intel_Xeon_X5675;73440_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.641332, - "ElapsedTime": 4.641332, - "UsedThreads": 1, - "Board": "Lenovo LENOVO (426593U ThinkStation C20)", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 24 threads; 2 NUMA nodes", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 2, - "CpuConfig": "24x 3060.00 MHz", - "CpuConfigMap": { - "3060.00": 24 - }, - "MemoryInKiB": 49428608, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.41.0, 5.13.12-arch1-1, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Baffin", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A320M_K_BR;AMD_Ryzen_5_2600;40800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.416475, - "ElapsedTime": 1.416475, - "UsedThreads": 1, - "Board": "ASUS PRIME A320M-K/BR", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 12 - }, - "MemoryInKiB": 8071796, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NV106", - "GpuDesc": "nVidia GK208B [GeForce GT 710]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P2540UA_1_0;Intel_Core_i5_7200U;12400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.616099, - "ElapsedTime": 1.603522, - "UsedThreads": 1, - "Board": "ASUS P2540UA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-7200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8024428, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_nForce;AMD_Athlon_64_3000_;1800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.06569, - "ElapsedTime": 2.06569, - "UsedThreads": 1, - "Board": "Gigabyte nForce", - "MachineType": "Desktop", - "CpuName": "AMD Athlon 64 3000+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 1, - "CpuConfig": "1x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 1 - }, - "MemoryInKiB": 2049540, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Pro4;AMD_Ryzen_5_2400G;30400_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.635467, - "ElapsedTime": 0.635467, - "UsedThreads": 1, - "Board": "ASRock B450 Pro4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 63800164, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0NW73C_A01_(XPS_8500);Intel_Core_i7_3770;31200_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.402137, - "ElapsedTime": 0.402137, - "UsedThreads": 1, - "Board": "Dell 0NW73C A01 (XPS 8500)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 8114280, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.38.0, 5.8.1-desktop-4.mga8, LLVM 10.0.0)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_B460_Phantom_Gaming_4;Intel_Core_i7_10700F;76800_00", - "ExtraInfo": "a:42", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 0.254529, - "ElapsedTime": 0.254529, - "UsedThreads": 1, - "Board": "ASRock B460 Phantom Gaming 4", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10700F", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4800.00 MHz", - "CpuConfigMap": { - "4800.00": 16 - }, - "MemoryInKiB": 65783984, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "CPU N-Queens": [ - { - "MachineId": "Micro_Star_International_Co___Ltd__TRX40_PRO_10G_(MS_7C60)_1_0_(MS_7C60);AMD_Ryzen_Threadripper_3970X;236800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 13.838616, - "ElapsedTime": 13.838616, - "UsedThreads": 10, - "Board": "Micro-Star International Co., Ltd. TRX40 PRO 10G (MS-7C60) 1.0 (MS-7C60)", - "MachineType": "桌面", - "CpuName": "AMD Ryzen Threadripper 3970X", - "CpuDesc": "1 CPU; 32 cores; 64 threads", - "NumCpus": 1, - "NumCores": 32, - "NumThreads": 64, - "NumNodes": 0, - "CpuConfig": "64x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 64 - }, - "MemoryInKiB": 263797508, - "PhysicalMemoryInMiB": 262144, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.1, 256 bits)", - "GpuDesc": "nVidia GA102 [GeForce RTX 3090] + NVIDIA GeForce GTX 1650", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_PRO_Rev_1_xx;Intel_Core_i7_3770;31200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 7.456907, - "ElapsedTime": 7.456907, - "UsedThreads": 8, - "Board": "ASUS P8Z77-V PRO Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 16335752, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GF100GL [Quadro 4000]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Khadas_VIM3;Amlogic_(Unknown);12432_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 16.656366666666667, - "ElapsedTime": 16.630595, - "UsedThreads": 6, - "Board": "Khadas VIM3", - "MachineType": "Unknown physical machine type", - "CpuName": "Amlogic (Unknown)", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "4x 2208.00 MHz + 2x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 2, - "2208.00": 4 - }, - "MemoryInKiB": 3797080, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 128 bits)", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": " q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.35719, - "ElapsedTime": 9.35719, - "UsedThreads": 10, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32861164, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 590 Series (POLARIS10, DRM 3.33.0, 5.3.0-24-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_TF_V2_0;Intel_Xeon_E5_4650_v3;50424_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 15.071835, - "ElapsedTime": 15.071835, - "UsedThreads": 10, - "Board": "HUANANZHI X99-TF V2.0", - "MachineType": "Área de Trabalho", - "CpuName": "Intel Xeon E5-4650 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 2101.00 MHz", - "CpuConfigMap": { - "2101.00": 24 - }, - "MemoryInKiB": 65754996, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_6474A99_Not_Available_(ThinkPad_T400);Intel_Core_2_Duo_P8400;4534_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 11.318145, - "ElapsedTime": 11.318145, - "UsedThreads": 2, - "Board": "Lenovo 6474A99 Not Available (ThinkPad T400)", - "MachineType": "Unknown", - "CpuName": "Intel Core 2 Duo P8400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2267.00 MHz", - "CpuConfigMap": { - "2267.00": 2 - }, - "MemoryInKiB": 3924144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__Z590_A_PRO_(MS_7D09)_1_0_(MS_7D09);Intel_11th_Gen_Core_i5_11600K;58800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.134488, - "ElapsedTime": 6.134488, - "UsedThreads": 10, - "Board": "Micro-Star International Co., Ltd. Z590-A PRO (MS-7D09) 1.0 (MS-7D09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "Intel 11th Gen Core i5-11600K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 12 - }, - "MemoryInKiB": 32760328, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_A_PRO_(MS_7B86)_2_0_(MS_7B86);AMD_Ryzen_7_2700;51200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.610846, - "ElapsedTime": 4.610846, - "UsedThreads": 10, - "Board": "Micro-Star International Co., Ltd B450-A PRO (MS-7B86) 2.0 (MS-7B86)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 16 - }, - "MemoryInKiB": 49370724, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon (TM) R9 M360 (VERDE, DRM 3.40.0, 5.10.12-jpmr, LLVM 11.0.1)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_F2A85_V_PRO;AMD_A10_5800K;15200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.049401, - "ElapsedTime": 9.049401, - "UsedThreads": 4, - "Board": "ASUS F2A85-V PRO", - "MachineType": "Desktop", - "CpuName": "AMD A10-5800K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 8104032, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.39.0, 5.9.2-desktop-1.mga8, LLVM 10.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_CROSSHAIR_VIII_DARK_HERO;AMD_Ryzen_9_5950X;108800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.048668, - "ElapsedTime": 9.048668, - "UsedThreads": 10, - "Board": "ASUS ROG CROSSHAIR VIII DARK HERO", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 1, - "CpuConfig": "32x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 32 - }, - "MemoryInKiB": 65765632, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 3090/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 3090", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;31794_28", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.967049, - "ElapsedTime": 3.967049, - "UsedThreads": 8, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 3989.75 MHz + 1x 3988.45 MHz + 1x 3984.50 MHz + 1x 3972.20 MHz + 1x 3960.23 MHz + 1x 3917.00 MHz + 1x 3991.08 MHz + 1x 3991.07 MHz", - "CpuConfigMap": { - "3917.00": 1, - "3960.23": 1, - "3972.20": 1, - "3984.50": 1, - "3988.45": 1, - "3989.75": 1, - "3991.07": 1, - "3991.08": 1 - }, - "MemoryInKiB": 14341892, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.53-calculate, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_85B3_91_45_(HP_Laptop_17_ca1xxx);AMD_Ryzen_5_3500U;16800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.638162, - "ElapsedTime": 5.638162, - "UsedThreads": 8, - "Board": "HP 85B3 91.45 (HP Laptop 17-ca1xxx)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 3500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2100.00 MHz", - "CpuConfigMap": { - "2100.00": 8 - }, - "MemoryInKiB": 14309152, - "PhysicalMemoryInMiB": 14464, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.39.0, 5.9.12-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_P67A_UD3_B3;Intel_Core_i5_2400;13600_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.631985, - "ElapsedTime": 5.631985, - "UsedThreads": 4, - "Board": "Gigabyte P67A-UD3-B3", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-2400", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 16378096, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X470_GAMING_PLUS_MAX_(MS_7B79)_3_0_(MS_7B79);AMD_Ryzen_5_3600_6_Core;43200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.647784999999999, - "ElapsedTime": 8.445877, - "UsedThreads": 10, - "Board": "Micro-Star International Co., Ltd. X470 GAMING PLUS MAX (MS-7B79) 3.0 (MS-7B79)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 16372076, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-7620-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_I_AORUS_PRO_WIFI_(_CF);AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.126105, - "ElapsedTime": 4.126105, - "UsedThreads": 10, - "Board": "Gigabyte X570 I AORUS PRO WIFI (-CF)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32798764, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_01TN68_A02_(Precision_Tower_3431);Intel_Core_i7_9700;37600_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.149892, - "ElapsedTime": 6.149892, - "UsedThreads": 8, - "Board": "Dell 01TN68 A02 (Precision Tower 3431)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-9700", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 65673764, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro P620 + Intel UHD Graphics 630 (Desktop 9 Series)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FUJITSU_FJNB293_M3_(LIFEBOOK_E746_10601736741);Intel_Core_i5_6200U;11200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.229859, - "ElapsedTime": 6.229859, - "UsedThreads": 4, - "Board": "FUJITSU FJNB293 M3 (LIFEBOOK E746 10601736741)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-6200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 4 - }, - "MemoryInKiB": 16286736, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B450M_A;AMD_Ryzen_5_1500X;28000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.764049, - "ElapsedTime": 5.764049, - "UsedThreads": 8, - "Board": "ASUS PRIME B450M-A", - "MachineType": "De escritorio", - "CpuName": "AMD Ryzen 5 1500X", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16302792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.10.60-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X510UAR_1_0;Intel_Core_i7_8550U;32000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 15.517109, - "ElapsedTime": 15.517109, - "UsedThreads": 8, - "Board": "ASUS X510UAR 1.0", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-8550U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16277736, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "acer_T_Rex_SK_V1_11_(Aspire_ES1_572);Intel_Core_i5_7200U;12400_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.07802, - "ElapsedTime": 4.07802, - "UsedThreads": 4, - "Board": "acer T-Rex_SK V1.11 (Aspire ES1-572)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-7200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16259948, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_A320M_DVS_R4_0;AMD_Ryzen_5_2600;40800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.12312, - "ElapsedTime": 5.12312, - "UsedThreads": 10, - "Board": "ASRock A320M-DVS R4.0", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 12 - }, - "MemoryInKiB": 8092532, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.27.0, 4.19.162-NuTyX-419, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_2349MXP_Not_Defined_(ThinkPad_T430);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.9568, - "ElapsedTime": 8.9568, - "UsedThreads": 4, - "Board": "Lenovo 2349MXP Not Defined (ThinkPad T430)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 7857752, - "PhysicalMemoryInMiB": 7936, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;112000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.911563, - "ElapsedTime": 9.911563, - "UsedThreads": 10, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Toronto_5A2_SDK0J40688_WIN_(80UH_Lenovo_ideapad_310_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.668497, - "ElapsedTime": 8.668497, - "UsedThreads": 4, - "Board": "Lenovo Toronto 5A2 SDK0J40688 WIN (80UH Lenovo ideapad 310-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8048144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "nVidia GK208BM [GeForce 920M] + Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PRO_GAMING;AMD_Ryzen_7_2700X;64000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.20021, - "ElapsedTime": 5.605212, - "UsedThreads": 10, - "Board": "ASUS TUF B450-PRO GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 2700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 16 - }, - "MemoryInKiB": 32855556, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon (TM) R9 390 Series (HAWAII, DRM 3.40.0, 5.10.4-gentoo, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Hawaii PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_08V9YG_A00_(Precision_M4600_01);Intel_Core_i5_2520M;12800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 11.318358333333334, - "ElapsedTime": 11.282093, - "UsedThreads": 4, - "Board": "Dell 08V9YG A00 (Precision M4600 01)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-2520M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 4 - }, - "MemoryInKiB": 16347792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Quadro 2000M/PCIe/SSE2", - "GpuDesc": "NVIDIA Quadro 2000M", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_Z170_A_Rev_1_xx;Intel_Core_i5_6600K;15600_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.106563, - "ElapsedTime": 8.106563, - "UsedThreads": 4, - "Board": "ASUS Z170-A Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6600K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 49292304, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1070", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_3_Model_B_Rev_1_2;Broadcom_BCM2837;4800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 15.889256500000002, - "ElapsedTime": 9.189818, - "UsedThreads": 4, - "Board": "Raspberry Pi 3 Model B Rev 1.2", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2837", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1200.00 MHz", - "CpuConfigMap": { - "1200.00": 4 - }, - "MemoryInKiB": 948296, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Packard_Bell_SJV50_HR_(EasyNote_TS11HR_V1_21);Intel_Core_i7_2820QM;27200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.285697, - "ElapsedTime": 6.285697, - "UsedThreads": 8, - "Board": "Packard Bell SJV50_HR (EasyNote TS11HR V1.21)", - "MachineType": "Portátil", - "CpuName": "Intel Core i7-2820QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 8 - }, - "MemoryInKiB": 7994804, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "nVidia GF119M [GeForce GT 520M] + Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_G41C_GS;Intel_Pentium_4;6026_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 10.729981, - "ElapsedTime": 10.729981, - "UsedThreads": 2, - "Board": "ASRock G41C-GS", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3013.00 MHz", - "CpuConfigMap": { - "3013.00": 2 - }, - "MemoryInKiB": 2041780, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PLUS_GAMING;AMD_Ryzen_7_2700;51200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.596322, - "ElapsedTime": 4.596322, - "UsedThreads": 10, - "Board": "ASUS TUF B450-PLUS GAMING", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 16 - }, - "MemoryInKiB": 32862080, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 980/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 980", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8H67_M_PRO;Intel_Core_i5_2500;14800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.468521, - "ElapsedTime": 5.468521, - "UsedThreads": 4, - "Board": "ASUS P8H67-M PRO", - "MachineType": "De escritorio", - "CpuName": "Intel Core i5-2500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 16078816, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 2000 (SNB GT1)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INC__MS_6728_3_00;Intel_Pentium_4;6766_84", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.32298, - "ElapsedTime": 9.32298, - "UsedThreads": 2, - "Board": "MICRO-STAR INC. MS-6728 3.00", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3383.42 MHz", - "CpuConfigMap": { - "3383.42": 2 - }, - "MemoryInKiB": 3071692, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI R200 (RV280 5960) DRI2", - "GpuDesc": "AMD/ATI RV280", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IGEL_Technology_GmbH_VX900_Type2___Board_Version_(M330C_M330C_V_3_0_13_09182013);VIA_Eden_X2_U4200;2000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 22.682758, - "ElapsedTime": 22.682758, - "UsedThreads": 2, - "Board": "IGEL Technology GmbH VX900 Type2 - Board Version (M330C M330C V:3.0.13-09182013)", - "MachineType": "IGEL Endpoint", - "CpuName": "VIA Eden X2 U4200", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 1000.00 MHz", - "CpuConfigMap": { - "1000.00": 2 - }, - "MemoryInKiB": 3857568, - "PhysicalMemoryInMiB": 3968, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "VIA VX900 Graphics [Chrome9 HD]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Red_Hat_KVM_RHEL_7_6_0_PC_(Q35___ICH9__2009);Intel_Xeon_E312xx_(Sandy_Bridge__IBRS_update);12768_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.2954725, - "ElapsedTime": 8.324744, - "UsedThreads": 4, - "Board": "Red Hat KVM RHEL-7.6.0 PC (Q35 + ICH9, 2009)", - "MachineType": "Unknown chassis type", - "CpuName": "Intel Xeon E312xx (Sandy Bridge, IBRS update)", - "CpuDesc": "2 CPUs; 4 cores; 4 threads", - "NumCpus": 2, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3192.00 MHz", - "CpuConfigMap": { - "3192.00": 4 - }, - "MemoryInKiB": 4021808, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 256 bits)", - "GpuDesc": "Red Hat QXL paravirtual graphic card", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K53SC_1_0;Intel_Core_i7_2670QM;24800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.456634, - "ElapsedTime": 6.456634, - "UsedThreads": 8, - "Board": "ASUS K53SC 1.0", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-2670QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 8 - }, - "MemoryInKiB": 8056324, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "QEMU_Standard_PC_(Q35___ICH9__2009)_pc_q35_5_0;Intel_Core_(Skylake__IBRS);6624_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.036655, - "ElapsedTime": 8.036655, - "UsedThreads": 2, - "Board": "QEMU Standard PC (Q35 + ICH9, 2009) pc-q35-5.0", - "MachineType": "Unknown", - "CpuName": "Intel Core (Skylake, IBRS)", - "CpuDesc": "2 CPUs; 2 cores; 2 threads", - "NumCpus": 2, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3312.00 MHz", - "CpuConfigMap": { - "3312.00": 2 - }, - "MemoryInKiB": 4030588, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Red Hat QXL paravirtual graphic card", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_NO_DPK_(81Y4_IdeaPad_Gaming_3_15IMH05);Intel_Core_i5_10300H;20000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.523262, - "ElapsedTime": 8.523262, - "UsedThreads": 8, - "Board": "Lenovo LNVNB161216 NO DPK (81Y4 IdeaPad Gaming 3 15IMH05)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-10300H", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 8 - }, - "MemoryInKiB": 24317680, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (CML GT2)", - "GpuDesc": "NVIDIA GeForce GTX 1650 + Intel CometLake-H GT2 [UHD Graphics]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_F2A85_M_LE;AMD_A10_5700;6713_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 35.939345, - "ElapsedTime": 35.939345, - "UsedThreads": 4, - "Board": "ASUS F2A85-M LE", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A10-5700", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "1x 1680.00 MHz + 1x 1679.00 MHz + 1x 1678.00 MHz + 1x 1676.00 MHz", - "CpuConfigMap": { - "1676.00": 1, - "1678.00": 1, - "1679.00": 1, - "1680.00": 1 - }, - "MemoryInKiB": 6057036, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Trinity", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B360M_Pro4;Intel_Core_i5_8400;24000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.7351095, - "ElapsedTime": 6.784351, - "UsedThreads": 6, - "Board": "ASRock B360M Pro4", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-8400", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 6 - }, - "MemoryInKiB": 7997436, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti + Intel UHD Graphics 630 (Desktop)", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_5_3600X_6_Core;45600_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.1694095, - "ElapsedTime": 3.146843, - "UsedThreads": 10, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 3600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 12 - }, - "MemoryInKiB": 16299368, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.42.0, 5.14.8-gentoo-dist, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_nForce;AMD_Athlon_64_3000_;1800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.853441, - "ElapsedTime": 5.853441, - "UsedThreads": 1, - "Board": "Gigabyte nForce", - "MachineType": "Desktop", - "CpuName": "AMD Athlon 64 3000+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 1, - "CpuConfig": "1x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 1 - }, - "MemoryInKiB": 2049540, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B350M_K;AMD_Ryzen_5_2600;46200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.671785, - "ElapsedTime": 9.671785, - "UsedThreads": 10, - "Board": "ASUS PRIME B350M-K", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3850.00 MHz", - "CpuConfigMap": { - "3850.00": 12 - }, - "MemoryInKiB": 16380832, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.39.0, 5.9.14-100.fc32.x86_64, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);AMD_Ryzen_9_5950X;108832_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.900570285714284, - "ElapsedTime": 10.510652, - "UsedThreads": 10, - "Board": "(Unknown)", - "MachineType": "", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3401.00 MHz", - "CpuConfigMap": { - "3401.00": 32 - }, - "MemoryInKiB": 67054424, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_16K2_REV_1_0_(GS63VR_6RF);Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.440777, - "ElapsedTime": 6.440777, - "UsedThreads": 8, - "Board": "Micro-Star International Co., Ltd. MS-16K2 REV:1.0 (GS63VR 6RF)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16294528, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 530 (SKL GT2)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.252687, - "ElapsedTime": 9.252687, - "UsedThreads": 10, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0J40679_WIN_(81FD_Lenovo_ideapad_330_15IKB);Intel_Core_i3_7020U;9200_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 11.947259, - "ElapsedTime": 11.947259, - "UsedThreads": 4, - "Board": "Lenovo LNVNB161216 SDK0J40679 WIN (81FD Lenovo ideapad 330-15IKB)", - "MachineType": "Notebook", - "CpuName": "Intel Core i3-7020U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2300.00 MHz", - "CpuConfigMap": { - "2300.00": 4 - }, - "MemoryInKiB": 3785772, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z170X_Gaming_3;Intel_Core_i7_6700K;36800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 7.074443, - "ElapsedTime": 7.074443, - "UsedThreads": 8, - "Board": "Gigabyte Z170X-Gaming 3", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 32842008, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 970/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0C7K68_A04_(Latitude_E5450);Intel_Core_i5_5300U;8800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 7.2565290000000005, - "ElapsedTime": 7.177881, - "UsedThreads": 4, - "Board": "Dell 0C7K68 A04 (Latitude E5450)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-5300U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 4 - }, - "MemoryInKiB": 16284832, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 5500 (BDW GT2)", - "GpuDesc": "Intel HD Graphics 5500", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_MAXIMUS_VIII_GENE_Rev_1_xx;Intel_Core_i7_6700K;16800_00", - "ExtraInfo": "q:11", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 7.627389, - "ElapsedTime": 7.627389, - "UsedThreads": 4, - "Board": "ASUS MAXIMUS VIII GENE Rev 1.xx", - "MachineType": "Invalid chassis type (0)", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 4 - }, - "MemoryInKiB": 4019208, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)", - "GpuDesc": "nVidia Device", - "PointerBits": 32, - "DataFromSuperUser": true, - "Legacy": false - } - ], - "CPU Zlib": [ - { - "MachineId": "Dell_0F5C5X_A00_(OptiPlex_7020);Intel_Core_i5_4590;14800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 55.64, - "ElapsedTime": 7.000176, - "UsedThreads": 4, - "Board": "Dell 0F5C5X A00 (OptiPlex 7020)", - "MachineType": "Mini Tower", - "CpuName": "Intel Core i5-4590", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8052416, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_Dimension_8100;Intel_Pentium_4;1395_86", - "ExtraInfo": " zlib 1.2.8 (built against: 1.2.8)", - "UserNote": "", - "BenchmarkVersion": 2, - "MachineDataVersion": 0, - "BenchmarkResult": 2.04, - "ElapsedTime": 7.000334, - "UsedThreads": 1, - "Board": "Dell Dimension 8100", - "MachineType": "Unknown", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1395.86 MHz", - "CpuConfigMap": { - "1395.86": 1 - }, - "MemoryInKiB": 1023376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Mesa DRI nv25 x86/MMX/SSE2", - "GpuDesc": "nVidia NV25 [GeForce4 Ti 4400]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 201.75, - "ElapsedTime": 7.000559, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0P6K8J_A00_(Latitude_E6420_01);Intel_Core_i5_2520M;12800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 26.26, - "ElapsedTime": 7.000344, - "UsedThreads": 4, - "Board": "Dell 0P6K8J A00 (Latitude E6420 01)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-2520M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 4 - }, - "MemoryInKiB": 5949924, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_X570_GAMING_EDGE_WIFI_(MS_7C37)_1_0_(MS_7C37);AMD_Ryzen_9_3900X_12_Core;99571_68", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 246.79, - "ElapsedTime": 7.001041, - "UsedThreads": 24, - "Board": "Micro-Star International Co., Ltd. MPG X570 GAMING EDGE WIFI (MS-7C37) 1.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "1x 4149.27 MHz + 1x 4149.17 MHz + 1x 4148.57 MHz + 1x 4152.06 MHz + 1x 4149.85 MHz + 1x 4149.79 MHz + 1x 4149.64 MHz + 1x 4149.53 MHz + 1x 4146.13 MHz + 1x 4149.78 MHz + 1x 4149.19 MHz + 1x 4148.55 MHz + 1x 4146.95 MHz + 1x 4149.86 MHz + 1x 4149.83 MHz + 1x 4149.81 MHz + 1x 4144.99 MHz + 1x 4140.26 MHz + 1x 4153.62 MHz + 1x 4149.84 MHz + 1x 4148.99 MHz + 1x 4148.31 MHz + 1x 4147.89 MHz", - "CpuConfigMap": { - "4140.26": 1, - "4144.99": 1, - "4146.13": 1, - "4146.95": 1, - "4147.89": 1, - "4148.31": 1, - "4148.55": 1, - "4148.57": 1, - "4148.99": 1, - "4149.17": 1, - "4149.19": 1, - "4149.27": 1, - "4149.53": 1, - "4149.64": 1, - "4149.78": 1, - "4149.79": 1, - "4149.81": 1, - "4149.83": 1, - "4149.84": 1, - "4149.85": 1, - "4149.86": 1, - "4152.06": 1, - "4153.62": 1 - }, - "MemoryInKiB": 32875276, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;29600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 80.47, - "ElapsedTime": 7.000423, - "UsedThreads": 8, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 8 - }, - "MemoryInKiB": 14348536, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.26-calculate, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_770TA_UD3;AMD_Phenom_II_X6_1090T;19200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 50.92, - "ElapsedTime": 7.000888, - "UsedThreads": 6, - "Board": "Gigabyte GA-770TA-UD3", - "MachineType": "Desktop", - "CpuName": "AMD Phenom II X6 1090T", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 6 - }, - "MemoryInKiB": 8148892, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CYPRESS (DRM 2.50.0 / 5.10.52-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Core_i7_5820K;43200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 97.02, - "ElapsedTime": 7.001053, - "UsedThreads": 12, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-5820K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 8069544, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B450M_A;AMD_Ryzen_5_1500X;28000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 65.45, - "ElapsedTime": 7.000341, - "UsedThreads": 8, - "Board": "ASUS PRIME B450M-A", - "MachineType": "De escritorio", - "CpuName": "AMD Ryzen 5 1500X", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16302792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.10.60-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Steel_Legend;AMD_Ryzen_5_2600X;50400_00", - "ExtraInfo": "zlib 1.2.7 (built against: 1.2.7), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 120.455, - "ElapsedTime": 7.000669, - "UsedThreads": 12, - "Board": "ASRock B450 Steel Legend", - "MachineType": "", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 12 - }, - "MemoryInKiB": 32853072, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 5.0, 128 bits)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;73600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 197.32000000000002, - "ElapsedTime": 7.000749, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.15-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5GD2_Deluxe_Rev_2_xx;Intel_Pentium_4;6800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 4.93, - "ElapsedTime": 7.00174, - "UsedThreads": 2, - "Board": "ASUS P5GD2-Deluxe Rev 2.xx", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 2 - }, - "MemoryInKiB": 1545376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "ATI R430", - "GpuDesc": "AMD/ATI R480 + AMD/ATI R480", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FOXCONN_A88GMV_1_0;AMD_model_unknown;18000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 52.98333333333333, - "ElapsedTime": 7.000543, - "UsedThreads": 6, - "Board": "FOXCONN A88GMV 1.0", - "MachineType": "Настольный компьютер", - "CpuName": "AMD model unknown", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 6 - }, - "MemoryInKiB": 8150168, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.12-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;17600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 37.47, - "ElapsedTime": 7.000215, - "UsedThreads": 4, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 4 - }, - "MemoryInKiB": 8133064, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z97X_Gaming_5;Intel_Core_i7_4770;31200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 11.67, - "ElapsedTime": 7.000776, - "UsedThreads": 8, - "Board": "Gigabyte Z97X-Gaming 5", - "MachineType": "Настольный компьютер", - "CpuName": "Intel Core i7-4770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 32555440, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "GeForce GTX 770/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 770 + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_4291J36_Not_Available_(ThinkPad_X220);Intel_Core_i5_2520M;10000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 20.64, - "ElapsedTime": 7.000238, - "UsedThreads": 4, - "Board": "Lenovo 4291J36 Not Available (ThinkPad X220)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-2520M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 4 - }, - "MemoryInKiB": 8056824, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_23444SG_No_DPK_(ThinkPad_T430);Intel_Core_i7_2630QM;16008_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 26.5, - "ElapsedTime": 7.000463, - "UsedThreads": 8, - "Board": "Lenovo 23444SG No DPK (ThinkPad T430)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-2630QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2001.00 MHz", - "CpuConfigMap": { - "2001.00": 8 - }, - "MemoryInKiB": 7967264, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "nVidia GF108M [NVS 5400M] + Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_843C_(HP_290_G2_MT_Business_PC);Intel_Core_i5_8500;24600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 65.88, - "ElapsedTime": 7.005957, - "UsedThreads": 6, - "Board": "HP 843C (HP 290 G2 MT Business PC)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-8500", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 4100.00 MHz", - "CpuConfigMap": { - "4100.00": 6 - }, - "MemoryInKiB": 20375500, - "PhysicalMemoryInMiB": 20480, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.33.0, 5.3.0-53-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;85484_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 192.35999999999999, - "ElapsedTime": 7.000885, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "4x 5725.00 MHz + 2x 5581.00 MHz + 2x 5436.00 MHz + 2x 5288.00 MHz + 2x 5143.00 MHz + 2x 4994.00 MHz + 2x 4850.00 MHz", - "CpuConfigMap": { - "4850.00": 2, - "4994.00": 2, - "5143.00": 2, - "5288.00": 2, - "5436.00": 2, - "5581.00": 2, - "5725.00": 4 - }, - "MemoryInKiB": 32847612, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-051100-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_20N4001YPB_SDK0J40697_WIN_(ThinkPad_T590);Intel_Core_i7_8565U;36800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 62.83, - "ElapsedTime": 7.000274, - "UsedThreads": 8, - "Board": "Lenovo 20N4001YPB SDK0J40697 WIN (ThinkPad T590)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8565U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 24269460, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_970A_DS3P;AMD_FX__4300;15200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 34.5, - "ElapsedTime": 7.000551, - "UsedThreads": 4, - "Board": "Gigabyte 970A-DS3P", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 4062152, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 610/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 610", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B350_PLUS;AMD_Ryzen_5_1600_Six_Core_Processor;38400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 2, - "MachineDataVersion": 0, - "BenchmarkResult": 97.4, - "ElapsedTime": 7.000335, - "UsedThreads": 12, - "Board": "ASUS PRIME B350-PLUS", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16423392, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.26.0, 4.18.0-10-generic, LLVM 7.0.0)", - "GpuDesc": "AMD/ATI Baffin", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X570ZD_1_0_(VivoBook_ASUSLaptop_X570ZD_F570ZD);AMD_Ryzen_5_2500U;16000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 50.93, - "ElapsedTime": 7.000856, - "UsedThreads": 8, - "Board": "ASUS X570ZD 1.0 (VivoBook_ASUSLaptop X570ZD_F570ZD)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 2500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15371664, - "PhysicalMemoryInMiB": 15360, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.38.0, 5.8.0-34-generic, LLVM 11.0.0)", - "GpuDesc": "NVIDIA GeForce GTX 1050 + AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_78LMT_S2P;AMD_FX__8350;22400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 47.38, - "ElapsedTime": 7.001557, - "UsedThreads": 8, - "Board": "Gigabyte GA-78LMT-S2P", - "MachineType": "Desktop", - "CpuName": "AMD FX -8350", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 8 - }, - "MemoryInKiB": 7626652, - "PhysicalMemoryInMiB": 7680, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI RS780L", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);Intel_Xeon_E3_1225_v6;13244_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 18.93, - "ElapsedTime": 7.000358, - "UsedThreads": 4, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "Intel Xeon E3-1225 v6", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3311.00 MHz", - "CpuConfigMap": { - "3311.00": 4 - }, - "MemoryInKiB": 8150424, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "SVGA3D; build: RELEASE; LLVM;", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_H310_PLUS;Intel_Core_i7_8700;55200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 109.54, - "ElapsedTime": 7.000218, - "UsedThreads": 12, - "Board": "ASUS PRIME H310-PLUS", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-8700", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 12 - }, - "MemoryInKiB": 16311412, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NV136", - "GpuDesc": "nVidia GP106 [GeForce GTX 1060 3GB]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0C7K68_A04_(Latitude_E5450);Intel_Core_i5_5300U;8800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 13.094000000000003, - "ElapsedTime": 7.000262, - "UsedThreads": 4, - "Board": "Dell 0C7K68 A04 (Latitude E5450)", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-5300U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 4 - }, - "MemoryInKiB": 16284832, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 5500 (BDW GT2)", - "GpuDesc": "Intel HD Graphics 5500", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 15.16, - "ElapsedTime": 7.000903, - "UsedThreads": 6, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "2x 1800.00 MHz + 4x 1416.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_MZAPLBP_00_1_x_(GB_BPCE_3455);Intel_Celeron_J3455;9200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 22.09, - "ElapsedTime": 7.0004, - "UsedThreads": 4, - "Board": "Gigabyte MZAPLBP-00 1.x (GB-BPCE-3455)", - "MachineType": "Desktop", - "CpuName": "Intel Celeron J3455", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2300.00 MHz", - "CpuConfigMap": { - "2300.00": 4 - }, - "MemoryInKiB": 7961124, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 500 (APL 2)", - "GpuDesc": "Intel HD Graphics 500", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);AMD_E_450;1713_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 2.43, - "ElapsedTime": 7.001375, - "UsedThreads": 1, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "AMD E-450", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1713.00 MHz", - "CpuConfigMap": { - "1713.00": 1 - }, - "MemoryInKiB": 1519408, - "PhysicalMemoryInMiB": 1536, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 9.0.1, 128 bits)", - "GpuDesc": "Oracle (InnoTek) VirtualBox Graphics Adapter", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_16P6_REV_1_0_(GL63_8RC);Intel_Core_i7_8750H;32800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 37.99, - "ElapsedTime": 7.000472, - "UsedThreads": 8, - "Board": "Micro-Star International Co., Ltd. MS-16P6 REV:1.0 (GL63 8RC)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8750H", - "CpuDesc": "1 CPU; 6 cores; 8 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4100.00 MHz", - "CpuConfigMap": { - "4100.00": 8 - }, - "MemoryInKiB": 7988824, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 + Intel CoffeeLake-H GT2 [UHD Graphics 630]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Gaming_K4;AMD_Ryzen_5_5600X_6_Core;59732_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 122.4, - "ElapsedTime": 7.000378, - "UsedThreads": 12, - "Board": "ASRock B450 Gaming K4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 5600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "2x 4932.00 MHz + 2x 4791.00 MHz + 2x 4650.00 MHz + 4x 5210.00 MHz + 2x 5073.00 MHz", - "CpuConfigMap": { - "4650.00": 2, - "4791.00": 2, - "4932.00": 2, - "5073.00": 2, - "5210.00": 4 - }, - "MemoryInKiB": 32793024, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1660 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Pro4;AMD_Ryzen_5_2400G;30400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 81.94, - "ElapsedTime": 7.000289, - "UsedThreads": 8, - "Board": "ASRock B450 Pro4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 63800164, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0X4N41_A01_(Precision_3440);Intel_Core_i9_10900;104000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 173.37, - "ElapsedTime": 7.000359, - "UsedThreads": 20, - "Board": "Dell 0X4N41 A01 (Precision 3440)", - "MachineType": "Desktop", - "CpuName": "Intel Core i9-10900", - "CpuDesc": "1 CPU; 10 cores; 20 threads", - "NumCpus": 1, - "NumCores": 10, - "NumThreads": 20, - "NumNodes": 1, - "CpuConfig": "20x 5200.00 MHz", - "CpuConfigMap": { - "5200.00": 20 - }, - "MemoryInKiB": 32574572, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia Device + Intel Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0V5GVY_A00_(Precision_M4800);Intel_Core_i7_4810MQ;30400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 30.62, - "ElapsedTime": 7.000973, - "UsedThreads": 8, - "Board": "Dell 0V5GVY A00 (Precision M4800)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4810MQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8052692, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Unknown + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;121600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 314.34, - "ElapsedTime": 7.00205, - "UsedThreads": 32, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Terrans_Force_T5_Not_Applicable;Intel_Core_i7_4720HQ;28800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 61.56, - "ElapsedTime": 7.000242, - "UsedThreads": 8, - "Board": "Terrans Force T5 Not Applicable", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4720HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 32769456, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_CROSSHAIR_VIII_DARK_HERO;AMD_Ryzen_9_5950X;108800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 420.91, - "ElapsedTime": 7.002373, - "UsedThreads": 32, - "Board": "ASUS ROG CROSSHAIR VIII DARK HERO", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 1, - "CpuConfig": "32x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 32 - }, - "MemoryInKiB": 65765632, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 3090/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 3090", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_212B_1_01_(HP_Z440_Workstation);Intel_Xeon_E5_1630_v4;32000_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 71.16, - "ElapsedTime": 7.000252, - "UsedThreads": 8, - "Board": "HP 212B 1.01 (HP Z440 Workstation)", - "MachineType": "Mini Tower", - "CpuName": "Intel Xeon E5-1630 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16303440, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro K620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0HHV7N_A00_(Precision_Tower_5810);Intel_Xeon_E5_1650_v4;48000_00", - "ExtraInfo": "zlib 1.2.8 (built against: 1.2.8), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 104.6, - "ElapsedTime": 7.000299, - "UsedThreads": 12, - "Board": "Dell 0HHV7N A00 (Precision Tower 5810)", - "MachineType": "Tour", - "CpuName": "Intel Xeon E5-1650 v4", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 12 - }, - "MemoryInKiB": 32860192, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA NVS 315", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "AMI_Corporation_Cherry_Trail_Tablet_(AZW_T4);Intel_Atom_x5_Z8500;8960_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 16.78, - "ElapsedTime": 7.000546, - "UsedThreads": 4, - "Board": "AMI Corporation Cherry Trail Tablet (AZW T4)", - "MachineType": "Desktop", - "CpuName": "Intel Atom x5-Z8500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2240.00 MHz", - "CpuConfigMap": { - "2240.00": 4 - }, - "MemoryInKiB": 3872568, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics (CHV)", - "GpuDesc": "Intel Atom/Celeron/Pentium x5-E8000/J3xxx/N3xxx Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Gaming_K4;AMD_Ryzen_5_1600;38400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 92.75, - "ElapsedTime": 7.005095, - "UsedThreads": 12, - "Board": "ASRock X370 Gaming K4", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16387260, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.38.0, 5.8.0-44-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B450_PLUS_II;AMD_Ryzen_7_3700X;64800_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 187.43, - "ElapsedTime": 7.000799, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING B450-PLUS II", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16307848, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GT 1030/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GT 1030", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B550M_A_(WI_FI);AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 276.815, - "ElapsedTime": 7.001579, - "UsedThreads": 24, - "Board": "ASUS PRIME B550M-A (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32846920, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "SHARP_PC_MP_Series_1_0;Transmeta_Efficeon_Demonstration_SKU;1600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 2.96, - "ElapsedTime": 7.001187, - "UsedThreads": 1, - "Board": "SHARP PC-MP Series 1.0", - "MachineType": "Unknown", - "CpuName": "Transmeta Efficeon Demonstration SKU", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 408116, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI RV200/M7", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_EX_B150M_V5;Intel_Core_i5_6500;14400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 42.65, - "ElapsedTime": 7.000301, - "UsedThreads": 4, - "Board": "ASUS EX-B150M-V5", - "MachineType": "桌面", - "CpuName": "Intel Core i5-6500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 16282952, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2)", - "GpuDesc": "NVIDIA GeForce GT 730 + Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_H81M_E_(All_Series);Intel_Core_i7_4770;31200_00", - "ExtraInfo": "zlib 1.2.8 (built against: 1.2.8), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 51.70666666666667, - "ElapsedTime": 7.004359, - "UsedThreads": 8, - "Board": "ASUS H81M-E (All Series)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 16301288, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) Haswell Desktop", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z170X_UD3_CF_(Z170X_UD3);Intel_Core_i7_6700K;33600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 76.25, - "ElapsedTime": 7.00023, - "UsedThreads": 8, - "Board": "Gigabyte Z170X-UD3-CF (Z170X-UD3)", - "MachineType": "桌面", - "CpuName": "Intel Core i7-6700K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 8 - }, - "MemoryInKiB": 32747128, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1070 + Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_01TN68_A02_(Precision_Tower_3431);Intel_Core_i7_9700;37600_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 109.87, - "ElapsedTime": 7.000273, - "UsedThreads": 8, - "Board": "Dell 01TN68 A02 (Precision Tower 3431)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-9700", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 65673764, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro P620 + Intel UHD Graphics 630 (Desktop 9 Series)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_SABERTOOTH_X79_Rev_1_xx;Intel_Core_i7_3930K;68400_00", - "ExtraInfo": "zlib 1.2.11 (built against: 1.2.11), d:3753b649c4fa9ea4576fc8f89a773de2, e:0", - "UserNote": "", - "BenchmarkVersion": 3, - "MachineDataVersion": 0, - "BenchmarkResult": 83.42, - "ElapsedTime": 7.006001, - "UsedThreads": 12, - "Board": "ASUS SABERTOOTH X79 Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-3930K", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 5700.00 MHz", - "CpuConfigMap": { - "5700.00": 12 - }, - "MemoryInKiB": 32817636, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1080 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "FPU FFT": [ - { - "MachineId": "Supermicro_H8DG6_H8DGi_1_0_(1234567890);AMD_Opteron_6380;40000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.122752, - "ElapsedTime": 2.122752, - "UsedThreads": 4, - "Board": "Supermicro H8DG6/H8DGi 1.0 (1234567890)", - "MachineType": "Main Server Chassis", - "CpuName": "AMD Opteron 6380", - "CpuDesc": "2 CPUs; 8 cores; 16 threads", - "NumCpus": 2, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 16 - }, - "MemoryInKiB": 8073288, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Matrox Electronics Systems Ltd. MGA G200eW WPCM450 + AMD/ATI Caicos + AMD/ATI Turks XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A520M_E;AMD_Ryzen_7_5700G;60800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.5519553333333334, - "ElapsedTime": 0.551651, - "UsedThreads": 4, - "Board": "ASUS PRIME A520M-E", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5700G", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32151660, - "PhysicalMemoryInMiB": 32128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.42.0, 5.14.0-2-amd64, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Cezanne", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_A320M_HDV_R4_0;AMD_Ryzen_5_1600;38400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.958161, - "ElapsedTime": 0.958161, - "UsedThreads": 4, - "Board": "ASRock A320M-HDV R4.0", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 1600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 12 - }, - "MemoryInKiB": 16312616, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-7620-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "BESSTAR_Tech_GB7_(BESSTAR_TECH_LIMITED_GK50);Intel_Pentium_Silver_N5030;12400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.846111, - "ElapsedTime": 1.846111, - "UsedThreads": 4, - "Board": "BESSTAR Tech GB7 (BESSTAR TECH LIMITED GK50)", - "MachineType": "Mini PC", - "CpuName": "Intel Pentium Silver N5030", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 7958364, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 605 (GLK 3)", - "GpuDesc": "Intel GeminiLake [UHD Graphics 605]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Microsoft_Surface_Pro_3_1;Intel_Core_i5_4300U;11600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.06301, - "ElapsedTime": 2.06301, - "UsedThreads": 4, - "Board": "Microsoft Surface Pro 3 1", - "MachineType": "Laptop", - "CpuName": "Intel Core i5-4300U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 4 - }, - "MemoryInKiB": 8055828, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_4_Model_B_Rev_1_1;Broadcom_BCM2838;6000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 5.463579, - "ElapsedTime": 5.463579, - "UsedThreads": 4, - "Board": "Raspberry Pi 4 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2838", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1500.00 MHz", - "CpuConfigMap": { - "1500.00": 4 - }, - "MemoryInKiB": 3999788, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_F_GAMING_(WI_FI);AMD_Ryzen_7_5800X;70400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.428296, - "ElapsedTime": 0.430155, - "UsedThreads": 4, - "Board": "ASUS ROG STRIX B550-F GAMING (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 16 - }, - "MemoryInKiB": 32850544, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-22-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X470_Master_SLI;AMD_Ryzen_7_2700;64800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.804413, - "ElapsedTime": 0.803197, - "UsedThreads": 4, - "Board": "ASRock X470 Master SLI", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4050.00 MHz", - "CpuConfigMap": { - "4050.00": 16 - }, - "MemoryInKiB": 16318156, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 550 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 550 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_LX;Intel_Core_i5_3470;14400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.254614, - "ElapsedTime": 1.254614, - "UsedThreads": 4, - "Board": "ASUS P8Z77-V LX", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-3470", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32755452, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710 + Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0H275K_(Studio_1735);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 3.6189276666666665, - "ElapsedTime": 3.745632, - "UsedThreads": 4, - "Board": "Dell 0H275K (Studio 1735)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 3065112, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV635 (DRM 2.50.0 / 5.9.0-1-amd64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI RV635/M86", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_T100TA_1_0;Intel_Atom_Z3740;7464_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 6.709348, - "ElapsedTime": 6.135788, - "UsedThreads": 4, - "Board": "ASUS T100TA 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Atom Z3740", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1866.00 MHz", - "CpuConfigMap": { - "1866.00": 4 - }, - "MemoryInKiB": 1915684, - "PhysicalMemoryInMiB": 2048, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 128 bits)", - "GpuDesc": "Intel Atom Z36xxx/Z37xxx Series Graphics & Display", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Xeon_E5_2620_v4;48000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.938939, - "ElapsedTime": 0.938939, - "UsedThreads": 4, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2620 v4", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 8068884, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.739471, - "ElapsedTime": 0.736189, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_A75M_UD2H;AMD_A6_3650;10400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.386260666666667, - "ElapsedTime": 2.099814, - "UsedThreads": 4, - "Board": "Gigabyte GA-A75M-UD2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A6-3650", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 16136804, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD SUMO (DRM 2.50.0 / 5.3.0-55-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Sumo", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_20U70003CK_SDK0J40697_WIN_(ThinkPad_L15_Gen_1);AMD_Ryzen_5_4500U;14250_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.79959875, - "ElapsedTime": 0.788624, - "UsedThreads": 4, - "Board": "Lenovo 20U70003CK SDK0J40697 WIN (ThinkPad L15 Gen 1)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 4500U", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 2375.00 MHz", - "CpuConfigMap": { - "2375.00": 6 - }, - "MemoryInKiB": 15804444, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.40.0, 5.10.20-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Samsung_RV411_RV511_E3511_S3511_RV711_E3411_Not_Applicable;Intel_Core_i3_M_380;10132_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 3.681869, - "ElapsedTime": 3.681869, - "UsedThreads": 4, - "Board": "Samsung RV411/RV511/E3511/S3511/RV711/E3411 Not Applicable", - "MachineType": "Laptop", - "CpuName": "Intel Core i3 M 380", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2533.00 MHz", - "CpuConfigMap": { - "2533.00": 4 - }, - "MemoryInKiB": 7944976, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics (ILK)", - "GpuDesc": "Intel Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Microsoft_Virtual_Machine_Hyper_V_UEFI_Release_v4_1;Intel_Xeon_Gold_6246R;81408_72", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.595644, - "ElapsedTime": 0.595644, - "UsedThreads": 4, - "Board": "Microsoft Virtual Machine Hyper-V UEFI Release v4.1", - "MachineType": "Desktop", - "CpuName": "Intel Xeon Gold 6246R", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 1, - "CpuConfig": "24x 3392.03 MHz", - "CpuConfigMap": { - "3392.03": 24 - }, - "MemoryInKiB": 519930176, - "PhysicalMemoryInMiB": 516096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X507UAR_1_0_(VivoBook_15_ASUS_Laptop_X507UAR);Intel_Core_i3_7020U;8740_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.030954, - "ElapsedTime": 2.030954, - "UsedThreads": 4, - "Board": "ASUS X507UAR 1.0 (VivoBook 15_ASUS Laptop X507UAR)", - "MachineType": "Notebook", - "CpuName": "Intel Core i3-7020U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "3x 2300.00 MHz + 1x 1840.00 MHz", - "CpuConfigMap": { - "1840.00": 1, - "2300.00": 3 - }, - "MemoryInKiB": 8029960, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2F)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "CFL_Sienna_CFS_V1_26_(acer_Predator_PH317_52);Intel_Core_i5_8300H;32000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.646924, - "ElapsedTime": 0.643284, - "UsedThreads": 4, - "Board": "CFL Sienna_CFS V1.26 (acer Predator PH317-52)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-8300H", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16240344, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 630 (CFL GT2)", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti + Intel UHD Graphics 630 (Mobile)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;31794_28", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.797426, - "ElapsedTime": 0.797426, - "UsedThreads": 4, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 3989.75 MHz + 1x 3988.45 MHz + 1x 3984.50 MHz + 1x 3972.20 MHz + 1x 3960.23 MHz + 1x 3917.00 MHz + 1x 3991.08 MHz + 1x 3991.07 MHz", - "CpuConfigMap": { - "3917.00": 1, - "3960.23": 1, - "3972.20": 1, - "3984.50": 1, - "3988.45": 1, - "3989.75": 1, - "3991.07": 1, - "3991.08": 1 - }, - "MemoryInKiB": 14341892, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.53-calculate, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B550M_A_(WI_FI);AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.6797789999999999, - "ElapsedTime": 0.678846, - "UsedThreads": 4, - "Board": "ASUS PRIME B550M-A (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32846920, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;96000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.7032075, - "ElapsedTime": 0.703884, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 24 - }, - "MemoryInKiB": 32852584, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.36.0, 5.6.14-desktop-2.mga7, LLVM 8.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Oracle_VirtualBox_1_2_(innotek_GmbH);AMD_E_450;1713_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 19.440862, - "ElapsedTime": 19.440862, - "UsedThreads": 4, - "Board": "Oracle VirtualBox 1.2 (innotek GmbH)", - "MachineType": "Virtual (VirtualBox)", - "CpuName": "AMD E-450", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1713.00 MHz", - "CpuConfigMap": { - "1713.00": 1 - }, - "MemoryInKiB": 1519408, - "PhysicalMemoryInMiB": 1536, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "llvmpipe (LLVM 9.0.1, 128 bits)", - "GpuDesc": "Oracle (InnoTek) VirtualBox Graphics Adapter", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_3_3200G;14400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.8346629999999999, - "ElapsedTime": 0.834866, - "UsedThreads": 4, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3200G", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 14299428, - "PhysicalMemoryInMiB": 14336, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "SHARP_PC_MP_Series_1_0;Transmeta_Efficeon_Demonstration_SKU;1600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 15.400089, - "ElapsedTime": 15.400089, - "UsedThreads": 4, - "Board": "SHARP PC-MP Series 1.0", - "MachineType": "Unknown", - "CpuName": "Transmeta Efficeon Demonstration SKU", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 408116, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI RV200/M7", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_DS3H_CF_(B450M_DS3H);AMD_Ryzen_9_3900_12_Core;74400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.672689, - "ElapsedTime": 0.672689, - "UsedThreads": 4, - "Board": "Gigabyte B450M DS3H-CF (B450M DS3H)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 24 - }, - "MemoryInKiB": 32895004, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.36.0, 5.6.19-159.current, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_6474A99_Not_Available_(ThinkPad_T400);Intel_Core_2_Duo_P8400;4534_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 3.684417, - "ElapsedTime": 3.684417, - "UsedThreads": 4, - "Board": "Lenovo 6474A99 Not Available (ThinkPad T400)", - "MachineType": "Unknown", - "CpuName": "Intel Core 2 Duo P8400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2267.00 MHz", - "CpuConfigMap": { - "2267.00": 2 - }, - "MemoryInKiB": 3924144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "BIOSTAR_Z170GT7;Intel_Core_i5_6500;14400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.775362, - "ElapsedTime": 0.775362, - "UsedThreads": 4, - "Board": "BIOSTAR Z170GT7", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 16374960, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.11-gentoo, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8_(HUANAN);Intel_Xeon_E5_2678_v3;79200_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.8652345, - "ElapsedTime": 0.884865, - "UsedThreads": 4, - "Board": "HUANANZHI X99-F8 (HUANAN)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2678 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 24 - }, - "MemoryInKiB": 32778472, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1650", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.800022, - "ElapsedTime": 0.800022, - "UsedThreads": 4, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.800025, - "ElapsedTime": 0.800025, - "UsedThreads": 4, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Supermicro_X10SAE_0123456789;Intel_Xeon_E3_1275_v3;31200_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.693538, - "ElapsedTime": 0.693538, - "UsedThreads": 4, - "Board": "Supermicro X10SAE 0123456789", - "MachineType": "Unknown", - "CpuName": "Intel Xeon E3-1275 v3", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 32810948, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3 Processor Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_AB350_Gaming_CF_(AB350_Gaming);AMD_A12_9800E;12400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.530241, - "ElapsedTime": 1.530241, - "UsedThreads": 4, - "Board": "Gigabyte AB350-Gaming-CF (AB350-Gaming)", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A12-9800E", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16436960, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.27.0, 5.0.0-32-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.442427, - "ElapsedTime": 0.442427, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32846468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.12.0-051200-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K43E_1_0;Intel_Core_i5_2410M;11600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.25971, - "ElapsedTime": 2.25971, - "UsedThreads": 4, - "Board": "ASUS K43E 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-2410M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 4 - }, - "MemoryInKiB": 5790952, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PLUS_GAMING;AMD_Ryzen_7_2700;51200_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.916975, - "ElapsedTime": 0.916975, - "UsedThreads": 4, - "Board": "ASUS TUF B450-PLUS GAMING", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3200.00 MHz", - "CpuConfigMap": { - "3200.00": 16 - }, - "MemoryInKiB": 32862080, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 980/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 980", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_B550_Phantom_Gaming_ITX_ax;AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.687008, - "ElapsedTime": 0.687008, - "UsedThreads": 4, - "Board": "ASRock B550 Phantom Gaming-ITX/ax", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32809200, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 3060/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 3060", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_02JCHC_A08_(Inspiron_N4050_Not_Specified);Intel_Core_i5_2450M;12400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.4263855000000003, - "ElapsedTime": 2.743898, - "UsedThreads": 4, - "Board": "Dell 02JCHC A08 (Inspiron N4050 Not Specified)", - "MachineType": "Portable", - "CpuName": "Intel Core i5-2450M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8047360, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_B450M_S2H;AMD_Ryzen_5_PRO_3400G;29600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.934558, - "ElapsedTime": 0.934558, - "UsedThreads": 4, - "Board": "Gigabyte B450M S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 PRO 3400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 8 - }, - "MemoryInKiB": 14348536, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.26-calculate, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_A320M_DVS_R4_0;AMD_Ryzen_5_2600;40800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.890704, - "ElapsedTime": 0.890704, - "UsedThreads": 4, - "Board": "ASRock A320M-DVS R4.0", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 12 - }, - "MemoryInKiB": 8092532, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.27.0, 4.19.162-NuTyX-419, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A320M_K_BR;AMD_Ryzen_5_2600;40800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.793081, - "ElapsedTime": 0.793081, - "UsedThreads": 4, - "Board": "ASUS PRIME A320M-K/BR", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 2600", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 12 - }, - "MemoryInKiB": 8071796, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NV106", - "GpuDesc": "nVidia GK208B [GeForce GT 710]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;112000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.661383, - "ElapsedTime": 0.661383, - "UsedThreads": 4, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_MAXIMUS_VII_HERO_Rev_1_xx_(All_Series);Intel_Core_i7_4790K;32008_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.284212, - "ElapsedTime": 1.284212, - "UsedThreads": 4, - "Board": "ASUS MAXIMUS VII HERO Rev 1.xx (All Series)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4790K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4001.00 MHz", - "CpuConfigMap": { - "4001.00": 8 - }, - "MemoryInKiB": 32620560, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)", - "GpuDesc": "nVidia GK104 [GeForce GTX 660 OEM] + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0FND8G_A00_(Latitude_3420);Intel_11th_Gen_Core_i3_1115G4;16400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.911654, - "ElapsedTime": 1.911654, - "UsedThreads": 4, - "Board": "Dell 0FND8G A00 (Latitude 3420)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i3-1115G4", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4100.00 MHz", - "CpuConfigMap": { - "4100.00": 4 - }, - "MemoryInKiB": 3725588, - "PhysicalMemoryInMiB": 3968, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;68800_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.6455246666666666, - "ElapsedTime": 0.644089, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4300.00 MHz", - "CpuConfigMap": { - "4300.00": 16 - }, - "MemoryInKiB": 16371928, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.12.0-rc6.cloud4t0r+, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_F2A85_M_LE;AMD_A10_5700;13600_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 1.849603, - "ElapsedTime": 1.849603, - "UsedThreads": 4, - "Board": "ASUS F2A85-M LE", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A10-5700", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 7089216, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "AMD ARUBA (DRM 2.50.0 / 5.4.105-gentoo-dist, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Trinity", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;94480_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.467136, - "ElapsedTime": 0.46854, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "2x 5684.00 MHz + 2x 5520.00 MHz + 2x 5360.00 MHz + 4x 6328.00 MHz + 2x 6168.00 MHz + 2x 6008.00 MHz + 2x 5844.00 MHz", - "CpuConfigMap": { - "5360.00": 2, - "5520.00": 2, - "5684.00": 2, - "5844.00": 2, - "6008.00": 2, - "6168.00": 2, - "6328.00": 4 - }, - "MemoryInKiB": 32847604, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-051100-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_TRX40_PRO_S_Rev_1_xx;AMD_Ryzen_Threadripper_3960X;182400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.6509595, - "ElapsedTime": 0.649059, - "UsedThreads": 4, - "Board": "ASUS PRIME TRX40-PRO S Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen Threadripper 3960X", - "CpuDesc": "1 CPU; 24 cores; 48 threads", - "NumCpus": 1, - "NumCores": 24, - "NumThreads": 48, - "NumNodes": 1, - "CpuConfig": "48x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 48 - }, - "MemoryInKiB": 263772048, - "PhysicalMemoryInMiB": 264192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVD9", - "GpuDesc": "nVidia GF119 [GeForce GT 610]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_H97M;Intel_Core_i5_4570;14400_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 0.799891, - "ElapsedTime": 0.799891, - "UsedThreads": 4, - "Board": "ASRock H97M", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-4570", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 12148176, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "AMD CAYMAN (DRM 2.50.0 / 5.11.9-176.current, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Cayman PRO + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "IGEL_Technology_GmbH_M350C_(1);AMD_Ryzen_Embedded_R1505G;8000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": -1, - "MachineDataVersion": 0, - "BenchmarkResult": 2.812631, - "ElapsedTime": 2.812631, - "UsedThreads": 4, - "Board": "IGEL Technology GmbH M350C (1)", - "MachineType": "IGEL Endpoint", - "CpuName": "AMD Ryzen Embedded R1505G", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 4 - }, - "MemoryInKiB": 3417140, - "PhysicalMemoryInMiB": 3584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Ryzen Embedded R1505G with Radeon Vega Gfx (RAVEN2, DRM 3.40.0, 5.12.19, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "FPU Raytracing": [ - { - "MachineId": "Gigabyte_GA_78LMT_USB3;AMD_FX__8350;32000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 14.497462, - "ElapsedTime": 14.497462, - "UsedThreads": 8, - "Board": "Gigabyte GA-78LMT-USB3", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD FX -8350", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16376796, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.40.0, 5.10.30-desktop-1.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X470_GAMING_PLUS_MAX_(MS_7B79)_3_0_(MS_7B79);AMD_Ryzen_5_3600_6_Core;43200_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.60656, - "ElapsedTime": 5.338501, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. X470 GAMING PLUS MAX (MS-7B79) 3.0 (MS-7B79)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 16372076, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-7620-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.696059, - "ElapsedTime": 2.696059, - "UsedThreads": 16, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8_(HUANAN);Intel_Xeon_E5_2678_v3;79200_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.120177, - "ElapsedTime": 3.085688, - "UsedThreads": 24, - "Board": "HUANANZHI X99-F8 (HUANAN)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2678 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 24 - }, - "MemoryInKiB": 32778472, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1650", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_4_Model_B_Rev_1_1;Broadcom_BCM2838;6000_00", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 4.369785, - "ElapsedTime": 4.369785, - "UsedThreads": 4, - "Board": "Raspberry Pi 4 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2838", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1500.00 MHz", - "CpuConfigMap": { - "1500.00": 4 - }, - "MemoryInKiB": 3999788, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Gaming_K4;AMD_Ryzen_7_1700;48000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.654366, - "ElapsedTime": 3.654366, - "UsedThreads": 16, - "Board": "ASRock X370 Gaming K4", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 32812680, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.7079895, - "ElapsedTime": 1.721531, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_00F6D3_A00_(Latitude_7480);Intel_Core_i7_7600U;15600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.701341, - "ElapsedTime": 2.339622, - "UsedThreads": 4, - "Board": "Dell 00F6D3 A00 (Latitude 7480)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7600U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 16017124, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "acer_Calado_Rev_(Aspire_2920_0100);Celeron_T3000;3590_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 11.559819, - "ElapsedTime": 11.559819, - "UsedThreads": 2, - "Board": "acer Calado Rev (Aspire 2920 0100)", - "MachineType": "Notebook", - "CpuName": "Celeron T3000", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 1795.00 MHz", - "CpuConfigMap": { - "1795.00": 2 - }, - "MemoryInKiB": 3087876, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa DRI Intel(R) 965GM (CL)", - "GpuDesc": "Intel Mobile GM965/GL960 Integrated Graphics (primary) + Intel Mobile GM965/GL960 Integrated Graphics (secondary)", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FOXCONN_A88GMV_1_0;AMD_model_unknown;18000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 9.839008999999999, - "ElapsedTime": 9.800823, - "UsedThreads": 6, - "Board": "FOXCONN A88GMV 1.0", - "MachineType": "Настольный компьютер", - "CpuName": "AMD model unknown", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 6 - }, - "MemoryInKiB": 8150168, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD Radeon HD 7700 Series (VERDE, DRM 3.40.0, 5.10.12-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "IBM_2376A26_Not_Available_(ThinkPad_T42);Intel_Pentium_M;1700_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 30.510911, - "ElapsedTime": 30.510911, - "UsedThreads": 1, - "Board": "IBM 2376A26 Not Available (ThinkPad T42)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1700.00 MHz", - "CpuConfigMap": { - "1700.00": 1 - }, - "MemoryInKiB": 2062316, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.1, 128 bits)", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_78LMT_S2P;AMD_FX__8350;22400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 23.037742, - "ElapsedTime": 23.037742, - "UsedThreads": 8, - "Board": "Gigabyte GA-78LMT-S2P", - "MachineType": "Desktop", - "CpuName": "AMD FX -8350", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 8 - }, - "MemoryInKiB": 7626652, - "PhysicalMemoryInMiB": 7680, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI RS780L", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0N9Y46_A00_(Vostro_3668);Intel_Core_i3_7100;15600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.496371, - "ElapsedTime": 2.496371, - "UsedThreads": 4, - "Board": "Dell 0N9Y46 A00 (Vostro 3668)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-7100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 8059516, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel HD Graphics 630", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Compal_Type2___Board_Product_Name1_Type2___Board_Version_(QAL50_6_30);Intel_Pentium_B960;4400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 6.184856, - "ElapsedTime": 6.184856, - "UsedThreads": 2, - "Board": "Compal Type2 - Board Product Name1 Type2 - Board Version (QAL50 6.30)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium B960", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 2 - }, - "MemoryInKiB": 7975112, - "PhysicalMemoryInMiB": 8064, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 2000 (SNB GT1)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_X570_GAMING_EDGE_WIFI_(MS_7C37)_1_0_(MS_7C37);AMD_Ryzen_9_3900X_12_Core;99571_68", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 8.80992, - "ElapsedTime": 8.80992, - "UsedThreads": 24, - "Board": "Micro-Star International Co., Ltd. MPG X570 GAMING EDGE WIFI (MS-7C37) 1.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "1x 4149.86 MHz + 1x 4148.31 MHz + 1x 4147.89 MHz + 1x 4140.26 MHz + 1x 4153.62 MHz + 1x 4152.06 MHz + 1x 4149.85 MHz + 1x 4149.84 MHz + 1x 4148.99 MHz + 1x 4148.57 MHz + 1x 4144.99 MHz + 1x 4149.79 MHz + 1x 4149.78 MHz + 1x 4149.19 MHz + 1x 4149.17 MHz + 1x 4149.83 MHz + 1x 4149.81 MHz + 1x 4149.64 MHz + 1x 4149.53 MHz + 1x 4149.27 MHz + 1x 4148.55 MHz + 1x 4146.95 MHz + 1x 4146.13 MHz", - "CpuConfigMap": { - "4140.26": 1, - "4144.99": 1, - "4146.13": 1, - "4146.95": 1, - "4147.89": 1, - "4148.31": 1, - "4148.55": 1, - "4148.57": 1, - "4148.99": 1, - "4149.17": 1, - "4149.19": 1, - "4149.27": 1, - "4149.53": 1, - "4149.64": 1, - "4149.78": 1, - "4149.79": 1, - "4149.81": 1, - "4149.83": 1, - "4149.84": 1, - "4149.85": 1, - "4149.86": 1, - "4152.06": 1, - "4153.62": 1 - }, - "MemoryInKiB": 32875276, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MEDIONPC_WIM_2070;Intel_Pentium_M;1600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 30.892089, - "ElapsedTime": 30.892089, - "UsedThreads": 1, - "Board": "MEDIONPC WIM 2070", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 1008396, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Intel Mobile 915GM/GMS/910GML Express Graphics + Intel Mobile 915GM/GMS/910GML Express Graphics", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Toronto_5A2_SDK0J40688_WIN_(80UH_Lenovo_ideapad_310_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.023013, - "ElapsedTime": 3.023013, - "UsedThreads": 4, - "Board": "Lenovo Toronto 5A2 SDK0J40688 WIN (80UH Lenovo ideapad 310-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8048144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "nVidia GK208BM [GeForce 920M] + Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X99_Extreme4;Intel_Xeon_E5_2620_v4;48000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.47944, - "ElapsedTime": 3.47944, - "UsedThreads": 16, - "Board": "ASRock X99 Extreme4", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2620 v4", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 16 - }, - "MemoryInKiB": 8068884, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS_(WI_FI);AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.160234, - "ElapsedTime": 2.160234, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING X570-PLUS (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 65787300, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA Unknown", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_MS_6702E_1_0;AMD_Athlon_64_3200_;2000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 12.74877, - "ElapsedTime": 13.517844, - "UsedThreads": 1, - "Board": "MSI MS-6702E 1.0", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon 64 3200+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 1 - }, - "MemoryInKiB": 3064240, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RV630 (DRM 2.50.0 / 5.4.0-40-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV630 PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_843C_(HP_290_G2_MT_Business_PC);Intel_Core_i5_8500;24600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.834608, - "ElapsedTime": 2.834608, - "UsedThreads": 6, - "Board": "HP 843C (HP 290 G2 MT Business PC)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-8500", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 4100.00 MHz", - "CpuConfigMap": { - "4100.00": 6 - }, - "MemoryInKiB": 20375500, - "PhysicalMemoryInMiB": 20480, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.33.0, 5.3.0-53-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68C_GS_FX;AMD_Athlon_II_X4_645;12400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 10.237956, - "ElapsedTime": 10.237956, - "UsedThreads": 4, - "Board": "ASRock N68C-GS FX", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon II X4 645", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8149656, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.215297, - "ElapsedTime": 5.215297, - "UsedThreads": 44, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_Paris_5A8_SDK0J40700_WIN_(80Q7_Lenovo_ideapad_300_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.0743489999999998, - "ElapsedTime": 3.121399, - "UsedThreads": 4, - "Board": "Lenovo Paris 5A8 SDK0J40700 WIN (80Q7 Lenovo ideapad 300-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16255240, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_212B_1_01_(HP_Z440_Workstation);Intel_Xeon_E5_1630_v4;32000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.18915, - "ElapsedTime": 3.18915, - "UsedThreads": 8, - "Board": "HP 212B 1.01 (HP Z440 Workstation)", - "MachineType": "Mini Tower", - "CpuName": "Intel Xeon E5-1630 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16303440, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro K620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z97X_Gaming_5;Intel_Core_i7_4770;31200_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 11.064035, - "ElapsedTime": 11.064035, - "UsedThreads": 8, - "Board": "Gigabyte Z97X-Gaming 5", - "MachineType": "Настольный компьютер", - "CpuName": "Intel Core i7-4770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 32555440, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "GeForce GTX 770/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 770 + Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PLUS_GAMING;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.654054, - "ElapsedTime": 3.619051, - "UsedThreads": 8, - "Board": "ASUS TUF B450-PLUS GAMING", - "MachineType": "De escritorio", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 8163560, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Gallium 0.4 on NV106", - "GpuDesc": "nVidia Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "jetson_nano;nVidia_Tegra_family;5712_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 4.740323, - "ElapsedTime": 4.835039, - "UsedThreads": 4, - "Board": "jetson-nano", - "MachineType": "Unknown physical machine type", - "CpuName": "nVidia Tegra-family", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1428.00 MHz", - "CpuConfigMap": { - "1428.00": 4 - }, - "MemoryInKiB": 4051520, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA Tegra X1 (nvgpu)/integrated", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_Dimension_8100;Intel_Pentium_4;1395_86", - "ExtraInfo": "", - "UserNote": "", - "BenchmarkVersion": 1, - "MachineDataVersion": 0, - "BenchmarkResult": 49.328731, - "ElapsedTime": 49.328731, - "UsedThreads": 1, - "Board": "Dell Dimension 8100", - "MachineType": "Unknown", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1395.86 MHz", - "CpuConfigMap": { - "1395.86": 1 - }, - "MemoryInKiB": 1023376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "Mesa DRI nv25 x86/MMX/SSE2", - "GpuDesc": "nVidia NV25 [GeForce4 Ti 4400]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "acer_T_Rex_SK_V1_11_(Aspire_ES1_572);Intel_Core_i5_7200U;12400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.003221, - "ElapsedTime": 2.003221, - "UsedThreads": 4, - "Board": "acer T-Rex_SK V1.11 (Aspire ES1-572)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-7200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16259948, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5GD2_Deluxe_Rev_2_xx;Intel_Pentium_4;6800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 16.373826, - "ElapsedTime": 16.373826, - "UsedThreads": 2, - "Board": "ASUS P5GD2-Deluxe Rev 2.xx", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 2 - }, - "MemoryInKiB": 1545376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "ATI R430", - "GpuDesc": "AMD/ATI R480 + AMD/ATI R480", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_F_GAMING_(WI_FI);AMD_Ryzen_7_5800X;70400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.8564030000000002, - "ElapsedTime": 3.855731, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX B550-F GAMING (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 16 - }, - "MemoryInKiB": 32850544, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.0-22-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_Z170_A_Rev_1_xx;Intel_Core_i5_6600K;15600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.242694, - "ElapsedTime": 2.242694, - "UsedThreads": 4, - "Board": "ASUS Z170-A Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6600K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 49292304, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1070", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "TB_4000;AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.671968, - "ElapsedTime": 2.671968, - "UsedThreads": 16, - "Board": "TB-4000", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 15775428, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.41.0, 5.13.10-200.fc34.x86_64, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;82910_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.959933, - "ElapsedTime": 2.959933, - "UsedThreads": 16, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "2x 5414.00 MHz + 2x 5269.00 MHz + 2x 5129.00 MHz + 2x 4988.00 MHz + 2x 4844.00 MHz + 2x 4703.00 MHz + 4x 5554.00 MHz", - "CpuConfigMap": { - "4703.00": 2, - "4844.00": 2, - "4988.00": 2, - "5129.00": 2, - "5269.00": 2, - "5414.00": 2, - "5554.00": 4 - }, - "MemoryInKiB": 16371996, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.11.0.cloud4t0r, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0HHV7N_A00_(Precision_Tower_5810);Intel_Xeon_E5_1650_v4;48000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.57805, - "ElapsedTime": 2.57805, - "UsedThreads": 12, - "Board": "Dell 0HHV7N A00 (Precision Tower 5810)", - "MachineType": "Tour", - "CpuName": "Intel Xeon E5-1650 v4", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 12 - }, - "MemoryInKiB": 32860192, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA NVS 315", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Gaming_K4;AMD_Ryzen_5_5600X_6_Core;59732_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.457442, - "ElapsedTime": 1.457442, - "UsedThreads": 12, - "Board": "ASRock B450 Gaming K4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 5600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "4x 5210.00 MHz + 2x 5073.00 MHz + 2x 4932.00 MHz + 2x 4791.00 MHz + 2x 4650.00 MHz", - "CpuConfigMap": { - "4650.00": 2, - "4791.00": 2, - "4932.00": 2, - "5073.00": 2, - "5210.00": 4 - }, - "MemoryInKiB": 32793024, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1660 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_H110M_A_CF_(H110M_A);Intel_Core_i3_6100;14800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.301373, - "ElapsedTime": 2.301373, - "UsedThreads": 4, - "Board": "Gigabyte H110M-A-CF (H110M-A)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-6100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8101660, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GT 1030/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 1030", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_K53SC_1_0;Intel_Core_i7_2670QM;24800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.613311, - "ElapsedTime": 2.613311, - "UsedThreads": 8, - "Board": "ASUS K53SC 1.0", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-2670QM", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 8 - }, - "MemoryInKiB": 8056324, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "Unknown Device + Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_0FND8G_A00_(Latitude_3420);Intel_11th_Gen_Core_i3_1115G4;16400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.208843, - "ElapsedTime": 3.208843, - "UsedThreads": 4, - "Board": "Dell 0FND8G A00 (Latitude 3420)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i3-1115G4", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4100.00 MHz", - "CpuConfigMap": { - "4100.00": 4 - }, - "MemoryInKiB": 3725588, - "PhysicalMemoryInMiB": 3968, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.491003, - "ElapsedTime": 5.516519, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16368932, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.1-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;73600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.757495, - "ElapsedTime": 3.846457, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.15-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450M_PLUS_GAMING;AMD_Ryzen_5_5600X_6_Core;50400_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 2.0390053999999997, - "ElapsedTime": 2.030006, - "UsedThreads": 12, - "Board": "ASUS TUF B450M-PLUS GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 5600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 12 - }, - "MemoryInKiB": 32853232, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.35.0, 5.4.97-gentoo, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_N71Vn_1_0;Intel_Core_2_Duo_P8700;5068_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.344249, - "ElapsedTime": 5.344249, - "UsedThreads": 2, - "Board": "ASUS N71Vn 1.0", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo P8700", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2534.00 MHz", - "CpuConfigMap": { - "2534.00": 2 - }, - "MemoryInKiB": 4032048, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GT 240M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 240M", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_Z97X_UD5H;Intel_Core_i7_4790K;35200_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 1.759872, - "ElapsedTime": 1.759872, - "UsedThreads": 8, - "Board": "Gigabyte Z97X-UD5H", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4790K", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 8 - }, - "MemoryInKiB": 16300800, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 980/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 980", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_42917J0_ThinkPad_X220;Intel_Core_i7_2640M;14000_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.0411614, - "ElapsedTime": 3.312356, - "UsedThreads": 4, - "Board": "Lenovo 42917J0 ThinkPad X220", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-2640M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 16318332, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X470_Taichi_Ultimate;AMD_Ryzen_9_5950X;108800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.0557363333333334, - "ElapsedTime": 3.043873, - "UsedThreads": 32, - "Board": "ASRock X470 Taichi Ultimate", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 32 - }, - "MemoryInKiB": 65777156, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.12.0-gentoo-x86_64, LLVM 11.1.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;96800_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 5.197883, - "ElapsedTime": 5.197883, - "UsedThreads": 44, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 44 - }, - "MemoryInKiB": 131653852, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.33.0, 4.18.0-193.14.2.el8_2.x86_64, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_888D_KBC_Version_51_17_00_(HP_ZBook_Power_15_6_inch_G8_Mobile_Workstation_PC);Intel_11th_Gen_Core_i7_11800H;73600_00", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 3.946138, - "ElapsedTime": 3.946138, - "UsedThreads": 16, - "Board": "HP 888D KBC Version 51.17.00 (HP ZBook Power 15.6 inch G8 Mobile Workstation PC)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i7-11800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 16 - }, - "MemoryInKiB": 32540932, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT1)", - "GpuDesc": "nVidia GA107GLM [RTX A2000 Mobile] + Intel TigerLake-H GT1 [UHD Graphics]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_DL580_G7;Intel_Xeon_E7__4870;85244_04", - "ExtraInfo": "r:1000", - "UserNote": "", - "BenchmarkVersion": 0, - "MachineDataVersion": 0, - "BenchmarkResult": 24.74889, - "ElapsedTime": 24.74889, - "UsedThreads": 80, - "Board": "HP ProLiant DL580 G7", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E7- 4870", - "CpuDesc": "4 CPUs; 40 cores; 80 threads", - "NumCpus": 4, - "NumCores": 40, - "NumThreads": 80, - "NumNodes": 0, - "CpuConfig": "1x 1065.55 MHz + 2x 1065.54 MHz + 1x 1065.53 MHz + 1x 1065.58 MHz + 1x 1065.57 MHz + 6x 1065.56 MHz", - "CpuConfigMap": { - "1065.53": 1, - "1065.54": 2, - "1065.55": 1, - "1065.56": 6, - "1065.57": 1, - "1065.58": 1 - }, - "MemoryInKiB": 1056316004, - "PhysicalMemoryInMiB": 1048576, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 9.0.0, 128 bits)", - "GpuDesc": "AMD/ATI ES1000 + NVIDIA Tesla K20m", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "SysBench CPU (Four threads)": [ - { - "MachineId": "Raspberry_Pi_4_Model_B_Rev_1_1;Broadcom_BCM2838;7000_00", - "ExtraInfo": " --time=7 --cpu-max-prime=10000", - "UserNote": " overclock: overvoltage=4 arm_freq=1750 gpu_freq=600", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 503.724414, - "ElapsedTime": 7.0078, - "UsedThreads": 4, - "Board": "Raspberry Pi 4 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2838", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1750.00 MHz", - "CpuConfigMap": { - "1750.00": 4 - }, - "MemoryInKiB": 3999788, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_18E7_(HP_ProDesk_600_G1_SFF);Intel_Core_i5_4570;14400_00", - "ExtraInfo": " --threads=4 --time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 4356.049805, - "ElapsedTime": 7.0008, - "UsedThreads": 4, - "Board": "HP 18E7 (HP ProDesk 600 G1 SFF)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-4570", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 24568776, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "SysBench CPU (Multi-thread)": [ - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000019, - "MachineDataVersion": 0, - "BenchmarkResult": 7396, - "ElapsedTime": 7, - "UsedThreads": 8, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16367700, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.20-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_G31M_ES2L;Pentium_E5500;6934_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 2643, - "ElapsedTime": 7, - "UsedThreads": 2, - "Board": "Gigabyte G31M-ES2L", - "MachineType": "Desktop", - "CpuName": "Pentium E5500", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 3467.00 MHz", - "CpuConfigMap": { - "3467.00": 2 - }, - "MemoryInKiB": 4026396, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) G33", - "GpuDesc": "Intel 82G33/G31 Express Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);Intel_Core_i7_10510U;39200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7188.12362390909, - "ElapsedTime": 7.0011, - "UsedThreads": 8, - "Board": "(Unknown)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10510U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 8 - }, - "MemoryInKiB": 32760728, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B360M_Pro4;Intel_Core_i3_8100;14400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4250.669922, - "ElapsedTime": 7.0007, - "UsedThreads": 4, - "Board": "ASRock B360M Pro4", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-8100", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32541944, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) UHD Graphics 630 (CFL GT2)", - "GpuDesc": "Intel 8th Gen Core Gaussian Mixture Model", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRockRack_C226M_WS;Intel_Xeon_E3_1285_v4;30400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7282.22998, - "ElapsedTime": 7.001, - "UsedThreads": 8, - "Board": "ASRockRack C226M WS", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E3-1285 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 32535516, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro RTX 4000 + Intel Iris Pro Graphics P6300", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "XMG_P65_P67RGRERA_Not_Applicable;Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 6755, - "ElapsedTime": 7, - "UsedThreads": 8, - "Board": "XMG P65_P67RGRERA Not Applicable", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16212412, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B450_PLUS;AMD_Ryzen_3_3300X_4_Core;30400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 9104.5, - "ElapsedTime": 7, - "UsedThreads": 8, - "Board": "ASUS PRIME B450-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3300X 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 16384140, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GF116 [GeForce GTX 550 Ti]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 6331, - "ElapsedTime": 7, - "UsedThreads": 6, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "2x 1800.00 MHz + 4x 1416.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 12888.33984375, - "ElapsedTime": 7.0005, - "UsedThreads": 12, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32780940, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_400_Rev_1_0;Broadcom_(Unknown);7200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 515.5654515, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Raspberry Pi 400 Rev 1.0", - "MachineType": "Single-board computer", - "CpuName": "Broadcom (Unknown)", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 4 - }, - "MemoryInKiB": 3737628, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "V3D 4.2", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_X570_GAMING_X;AMD_Ryzen_7_3800X;62400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 16338, - "ElapsedTime": 7, - "UsedThreads": 16, - "Board": "Gigabyte X570 GAMING X", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 16 - }, - "MemoryInKiB": 131934756, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0J49V5_A00_(Inspiron_3501);Intel_Pentium_Gold_7505;14000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5591, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Dell 0J49V5 A00 (Inspiron 3501)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium Gold 7505", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 3745988, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0H275K_(Studio_1735);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1790.534973, - "ElapsedTime": 7.0012, - "UsedThreads": 2, - "Board": "Dell 0H275K (Studio 1735)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 3065112, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV635 (DRM 2.50.0 / 5.9.0-1-amd64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI RV635/M86", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_F2A85_M_LE;AMD_A10_5700;13600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5539, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS F2A85-M LE", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A10-5700", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 7089216, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "AMD ARUBA (DRM 2.50.0 / 5.4.105-gentoo-dist, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Trinity", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_42917J0_ThinkPad_X220;Intel_Core_i7_2640M;14000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 2424.3809814999995, - "ElapsedTime": 7.0015, - "UsedThreads": 4, - "Board": "Lenovo 42917J0 ThinkPad X220", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-2640M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 16318332, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 3000 (SNB GT2)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_5_3600X_6_Core;45600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 13450, - "ElapsedTime": 7, - "UsedThreads": 12, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 3600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 12 - }, - "MemoryInKiB": 16299368, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.42.0, 5.14.8-gentoo-dist, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 18772, - "ElapsedTime": 7, - "UsedThreads": 16, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_20NE000JRT_Not_Defined_(ThinkPad_E495);AMD_Ryzen_5_3500U;16800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 6657, - "ElapsedTime": 7, - "UsedThreads": 8, - "Board": "Lenovo 20NE000JRT Not Defined (ThinkPad E495)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 5 3500U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2100.00 MHz", - "CpuConfigMap": { - "2100.00": 8 - }, - "MemoryInKiB": 22498704, - "PhysicalMemoryInMiB": 22528, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD RAVEN (DRM 3.35.0, 5.4.68-xanmod1, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 47146.529297, - "ElapsedTime": 7.0003, - "UsedThreads": 16, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 17861.830078, - "ElapsedTime": 7.0008, - "UsedThreads": 16, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32864880, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 770", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0R32866WIN_(81UT_Lenovo_IdeaPad_S145_15API);AMD_Ryzen_3_3200U;10400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 3475.550049, - "ElapsedTime": 7.001, - "UsedThreads": 4, - "Board": "Lenovo LNVNB161216 SDK0R32866WIN (81UT Lenovo IdeaPad S145-15API)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 3 3200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 5823412, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.39.0, 5.9.2-050902-generic, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);AMD_Ryzen_9_5950X;108832_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 90275.54101575, - "ElapsedTime": 7.0006, - "UsedThreads": 32, - "Board": "(Unknown)", - "MachineType": "Laptop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3401.00 MHz", - "CpuConfigMap": { - "3401.00": 32 - }, - "MemoryInKiB": 67054132, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_LX;Intel_Core_i5_3470;14400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 3263.169922, - "ElapsedTime": 7.001, - "UsedThreads": 4, - "Board": "ASUS P8Z77-V LX", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-3470", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32755452, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710 + Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0F5C5X_A00_(OptiPlex_7020);Intel_Core_i5_4590;14800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4509, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Dell 0F5C5X A00 (OptiPlex 7020)", - "MachineType": "Mini Tower", - "CpuName": "Intel Core i5-4590", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8052416, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;96800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 31742, - "ElapsedTime": 7, - "UsedThreads": 44, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 44 - }, - "MemoryInKiB": 131653852, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.33.0, 4.18.0-193.14.2.el8_2.x86_64, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;13600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 4143, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 8133068, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;96000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 25130, - "ElapsedTime": 0, - "UsedThreads": 24, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 24 - }, - "MemoryInKiB": 32852584, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.36.0, 5.6.14-desktop-2.mga7, LLVM 8.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_05FFDN_A00_(XPS_15_9560);Intel_Core_i7_7700HQ;30400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7207.666666666667, - "ElapsedTime": 7, - "UsedThreads": 8, - "Board": "Dell 05FFDN A00 (XPS 15 9560)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8002104, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 630 (KBL GT2)", - "GpuDesc": "nVidia GP107M [GeForce GTX 1050 Mobile] + Intel HD Graphics 630", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5GD2_Deluxe_Rev_2_xx;Intel_Pentium_4;6800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 251.850006, - "ElapsedTime": 7.0061, - "UsedThreads": 2, - "Board": "ASUS P5GD2-Deluxe Rev 2.xx", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 2 - }, - "MemoryInKiB": 1545376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "ATI R430", - "GpuDesc": "AMD/ATI R480 + AMD/ATI R480", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INTERNATIONAL_CO__LTD_785GM_E51_(MS_7596)_1_0_(MS_7596);AMD_Phenom_II_X4_945;12000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 289510.8125, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "MICRO-STAR INTERNATIONAL CO.,LTD 785GM-E51 (MS-7596) 1.0 (MS-7596)", - "MachineType": "Desktop", - "CpuName": "AMD Phenom II X4 945", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 11227892, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RS880 (DRM 2.50.0 / 5.6.19-300.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RS880", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Khadas_VIM3;Amlogic_(Unknown);12432_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 10009.116536666666, - "ElapsedTime": 7.0008, - "UsedThreads": 6, - "Board": "Khadas VIM3", - "MachineType": "Unknown physical machine type", - "CpuName": "Amlogic (Unknown)", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "4x 2208.00 MHz + 2x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 2, - "2208.00": 4 - }, - "MemoryInKiB": 3797080, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 128 bits)", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;17600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5323, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4400.00 MHz", - "CpuConfigMap": { - "4400.00": 4 - }, - "MemoryInKiB": 8133064, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_AM2NF3_VSTA;AMD_Phenom_II_X4_970;14000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 3749, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock AM2NF3-VSTA", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Phenom II X4 970", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 16463772, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV730 (DRM 2.50.0 / 5.4.0-52-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV730", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P5Q_SE2;Intel_Xeon_E5450;12036_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4485, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS P5Q SE2", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5450", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3009.00 MHz", - "CpuConfigMap": { - "3009.00": 4 - }, - "MemoryInKiB": 6093180, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "GeForce GT 220/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 220", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_02JCHC_A08_(Inspiron_N4050_Not_Specified);Intel_Core_i5_2450M;12400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2568, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Dell 02JCHC A08 (Inspiron N4050 Not Specified)", - "MachineType": "Portable", - "CpuName": "Intel Core i5-2450M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8047360, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 256 bits)", - "GpuDesc": "Intel 2nd Gen Core Family Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_H110M_PRO_D_(MS_7996)_1_0_(MS_7996);Intel_Core_i3_6100;14800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 3896, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "MSI H110M PRO-D (MS-7996) 1.0 (MS-7996)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-6100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8041372, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "llvmpipe (LLVM 11.0.0, 256 bits)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_E5506;16837_17", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5612.029785, - "ElapsedTime": 7.0014, - "UsedThreads": 8, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon E5506", - "CpuDesc": "2 CPUs; 8 cores; 8 threads", - "NumCpus": 2, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 2006.49 MHz + 5x 2133.16 MHz + 1x 2091.91 MHz + 1x 2072.97 MHz", - "CpuConfigMap": { - "2006.49": 1, - "2072.97": 1, - "2091.91": 1, - "2133.16": 5 - }, - "MemoryInKiB": 49209064, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8_(HUANAN);Intel_Xeon_E5_2678_v3;79200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 17156.370117500002, - "ElapsedTime": 0, - "UsedThreads": 24, - "Board": "HUANANZHI X99-F8 (HUANAN)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2678 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 24 - }, - "MemoryInKiB": 32778472, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1650", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Killer_SLI_ac;AMD_Ryzen_7_1700X;54400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 14469.30957, - "ElapsedTime": 7.0012, - "UsedThreads": 16, - "Board": "ASRock X370 Killer SLI/ac", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 16 - }, - "MemoryInKiB": 32808008, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.42.0, 5.14.5-gentoo, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Baffin", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_Z170_A_Rev_1_xx;Intel_Core_i5_6600K;15600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5013, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS Z170-A Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6600K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 49292304, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1070", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_3148_SDK0J40697_WIN_3305309690110_(11AV0002XS_ThinkCentre_M75s_1);AMD_Ryzen_5_PRO_3600_6_Core;43200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 12414, - "ElapsedTime": 7, - "UsedThreads": 12, - "Board": "Lenovo 3148 SDK0J40697 WIN 3305309690110 (11AV0002XS ThinkCentre M75s-1)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 PRO 3600 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 65786308, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD OLAND (DRM 2.50.0, 5.11.0-37-generic, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Oland", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 32978, - "ElapsedTime": 7, - "UsedThreads": 32, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_TOMAHAWK_MAX_(MS_7C02)_1_0_(MS_7C02);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 17593.869791666668, - "ElapsedTime": 7.0008, - "UsedThreads": 16, - "Board": "Micro-Star International Co., Ltd B450 TOMAHAWK MAX (MS-7C02) 1.0 (MS-7C02)", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32902064, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 5.6.12-arch1-1, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_23252UG_Not_Defined_(ThinkPad_X230);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2812.139893, - "ElapsedTime": 7.0012, - "UsedThreads": 4, - "Board": "Lenovo 23252UG Not Defined (ThinkPad X230)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 16071640, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS_(WI_FI);AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 47705.359375, - "ElapsedTime": 0, - "UsedThreads": 16, - "Board": "ASUS TUF GAMING X570-PLUS (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 65787300, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA Unknown", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_FA506IV_1_0_(TUF_Gaming_FA506IV_FA506IV);AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 1553634.75, - "ElapsedTime": 7.0001, - "UsedThreads": 16, - "Board": "ASUS FA506IV 1.0 (TUF Gaming FA506IV_FA506IV)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 24086540, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.37.0, 5.7.6-201.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "NVIDIA GeForce RTX 2060 + AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 31215, - "ElapsedTime": 7, - "UsedThreads": 44, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_PRO_Rev_1_xx;Intel_Core_i5_3570K;15200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 4541, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS P8Z77-V PRO Rev 1.xx", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-3570K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 16365792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 750 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 750 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8D_V2_2_(HUANANZHI_X99);Intel_Xeon_E5_2697A_v4;230400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 51096.440104, - "ElapsedTime": 7.0012, - "UsedThreads": 64, - "Board": "HUANANZHI X99 F8D V2.2 (HUANANZHI X99)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2697A v4", - "CpuDesc": "2 CPUs; 32 cores; 64 threads", - "NumCpus": 2, - "NumCores": 32, - "NumThreads": 64, - "NumNodes": 0, - "CpuConfig": "64x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 64 - }, - "MemoryInKiB": 131912664, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA T600/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA T600", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_X5675;38401_14", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 10251.69043, - "ElapsedTime": 7.0032, - "UsedThreads": 12, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 12 threads", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "3x 3333.43 MHz + 6x 3066.76 MHz", - "CpuConfigMap": { - "3066.76": 6, - "3333.43": 3 - }, - "MemoryInKiB": 40950868, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "SysBench CPU (Single-thread)": [ - { - "MachineId": "ASUS_PRIME_A520M_E;AMD_Ryzen_7_5700G;60800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5164.056640666667, - "ElapsedTime": 7.0002, - "UsedThreads": 1, - "Board": "ASUS PRIME A520M-E", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5700G", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32151660, - "PhysicalMemoryInMiB": 32128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.42.0, 5.14.0-2-amd64, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Cezanne", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_01TN68_A02_(Precision_Tower_3431);Intel_Core_i7_9700;37600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1653, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Dell 01TN68 A02 (Precision Tower 3431)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-9700", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 65673764, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro P620 + Intel UHD Graphics 630 (Desktop 9 Series)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1782, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "4x 1416.00 MHz + 2x 1800.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Khadas_VIM3;Amlogic_(Unknown);12432_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2068.5300296666665, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Khadas VIM3", - "MachineType": "Unknown physical machine type", - "CpuName": "Amlogic (Unknown)", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "4x 2208.00 MHz + 2x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 2, - "2208.00": 4 - }, - "MemoryInKiB": 3797080, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 10.0.0, 128 bits)", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 2156, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Gigabyte_M720_US3;AMD;18000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 905.289978, - "ElapsedTime": 7.0011, - "UsedThreads": 1, - "Board": "Gigabyte M720-US3", - "MachineType": "Invalid chassis type (0)", - "CpuName": "AMD", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 6 - }, - "MemoryInKiB": 12283908, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CEDAR (DRM 2.50.0 / 4.18.10, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Cedar", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_3_Model_B_Rev_1_2;Broadcom_BCM2837;4800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 69.743468, - "ElapsedTime": 7.0058, - "UsedThreads": 1, - "Board": "Raspberry Pi 3 Model B Rev 1.2", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2837", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1200.00 MHz", - "CpuConfigMap": { - "1200.00": 4 - }, - "MemoryInKiB": 948296, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1770, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0H275K_(Studio_1735);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 985.605011, - "ElapsedTime": 7.001, - "UsedThreads": 1, - "Board": "Dell 0H275K (Studio 1735)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 3065112, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV635 (DRM 2.50.0 / 5.9.0-1-amd64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI RV635/M86", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_X470_PRO;AMD_Ryzen_7_2700;54400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000019, - "MachineDataVersion": 0, - "BenchmarkResult": 1688, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS PRIME X470-PRO", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 7 2700", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 16 - }, - "MemoryInKiB": 32856940, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.38.0, 5.8.12-gentoo-x86_64, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Ellesmere + AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "TB_4000;AMD_Ryzen_7_4800H;46400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2126.129883, - "ElapsedTime": 7.0003, - "UsedThreads": 1, - "Board": "TB-4000", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 4800H", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 2900.00 MHz", - "CpuConfigMap": { - "2900.00": 16 - }, - "MemoryInKiB": 15775428, - "PhysicalMemoryInMiB": 15872, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.41.0, 5.13.10-200.fc34.x86_64, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;68800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2141.9799805000002, - "ElapsedTime": 7.0004, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4300.00 MHz", - "CpuConfigMap": { - "4300.00": 16 - }, - "MemoryInKiB": 16371928, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.12.0-rc6.cloud4t0r+, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_A75M_UD2H;AMD_A6_3650;10400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 698, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte GA-A75M-UD2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A6-3650", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 16394868, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD OLAND (DRM 2.50.0, 5.4.0-53-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Oland XT", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000019, - "MachineDataVersion": 0, - "BenchmarkResult": 1765, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16367700, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.20-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS_(WI_FI);AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 5617.049805, - "ElapsedTime": 0, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING X570-PLUS (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 65787300, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA Unknown", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_LX;Intel_Core_i5_3470;14400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 1040.109985, - "ElapsedTime": 7.0009, - "UsedThreads": 1, - "Board": "ASUS P8Z77-V LX", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-3470", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32755452, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GT 710/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 710 + Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "MEDION_M15C_(S15447);Intel_Core_i5_10210U;33600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1379.5, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "MEDION M15C (S15447)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-10210U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 8 - }, - "MemoryInKiB": 8038132, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (CML GT2)", - "GpuDesc": "Intel UHD Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0J40709_WIN_(81YM_IdeaPad_5_14ARE05);AMD_Ryzen_7_4700U;16000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1771942.5000244, - "ElapsedTime": 7.0005, - "UsedThreads": 1, - "Board": "Lenovo LNVNB161216 SDK0J40709 WIN (81YM IdeaPad 5 14ARE05)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4700U", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15798908, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_16K2_REV_1_0_(GS63VR_6RF);Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1212.329956, - "ElapsedTime": 7.0008, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MS-16K2 REV:1.0 (GS63VR 6RF)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16294528, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 530 (SKL GT2)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Terrans_Force_T5_Not_Applicable;Intel_Core_i7_4720HQ;28800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 998.440002, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Terrans Force T5 Not Applicable", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4720HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 32769456, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;15200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1508, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 8133068, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_18E7_(HP_ProDesk_600_G1_SFF);Intel_Core_i5_4570;14400_00", - "ExtraInfo": " --threads=1 --time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 1155.22998, - "ElapsedTime": 7.0005, - "UsedThreads": 1, - "Board": "HP 18E7 (HP ProDesk 600 G1 SFF)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-4570", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 24568776, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_AB350_Gaming_CF_(AB350_Gaming);AMD_A12_9800E;12400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 1482, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte AB350-Gaming-CF (AB350-Gaming)", - "MachineType": "Настольный компьютер", - "CpuName": "AMD A12-9800E", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 16436960, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 580 Series (POLARIS10, DRM 3.27.0, 5.0.0-32-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_8815_45_35_(HP_ENVY_Laptop_14_eb0xxx);Intel_11th_Gen_Core_i7_1165G7;37600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 4004, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "HP 8815 45.35 (HP ENVY Laptop 14-eb0xxx)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i7-1165G7", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 16157284, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1650 Ti with Max-Q Design/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1650 Ti with Max-Q Design + Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Pro4;AMD_Ryzen_5_2400G;30400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 1840.449951, - "ElapsedTime": 7.0002, - "UsedThreads": 1, - "Board": "ASRock B450 Pro4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 63800164, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_XPS_12_9Q33_A10;Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 807.700012, - "ElapsedTime": 7.0008, - "UsedThreads": 1, - "Board": "Dell XPS 12-9Q33 A10", - "MachineType": "Portable", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 8051464, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2180.429932, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32864880, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 770", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_H110M_A_CF_(H110M_A);Intel_Core_i3_6100;14800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1224.199951, - "ElapsedTime": 7.0008, - "UsedThreads": 1, - "Board": "Gigabyte H110M-A-CF (H110M-A)", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-6100", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 4 - }, - "MemoryInKiB": 8101660, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GT 1030/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 1030", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": " --time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 2180, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32861164, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 590 Series (POLARIS10, DRM 3.33.0, 5.3.0-24-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Intel_X79;Intel_Xeon_E5_2630_v2;37200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 806, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Intel X79", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2630 v2", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 12 - }, - "MemoryInKiB": 24532424, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 660/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 660", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Fujitsu_D48_2A_(ESPRIMO_Mobile_V6535_20);Pentium_T4400;4400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 797, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Fujitsu D48 2A (ESPRIMO Mobile V6535 20)", - "MachineType": "Notebook", - "CpuName": "Pentium T4400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 2 - }, - "MemoryInKiB": 3957460, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 186.289993, - "ElapsedTime": 7.0043, - "UsedThreads": 1, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_X370_Killer_SLI_ac;AMD_Ryzen_7_1700X;54400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1722.189941, - "ElapsedTime": 7.0003, - "UsedThreads": 1, - "Board": "ASRock X370 Killer SLI/ac", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 1700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 16 - }, - "MemoryInKiB": 32808008, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 560 Series (POLARIS11, DRM 3.42.0, 5.14.5-gentoo, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Baffin", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRockRack_C226M_WS;Intel_Xeon_E3_1285_v4;30400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1100.75, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASRockRack C226M WS", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E3-1285 v4", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 32535516, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA Quadro RTX 4000 + Intel Iris Pro Graphics P6300", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_G31M_ES2L;Pentium_E5500;6934_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 1328, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte G31M-ES2L", - "MachineType": "Desktop", - "CpuName": "Pentium E5500", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 3467.00 MHz", - "CpuConfigMap": { - "3467.00": 2 - }, - "MemoryInKiB": 4026396, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) G33", - "GpuDesc": "Intel 82G33/G31 Express Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "jetson_nano;nVidia_Tegra_family;5712_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1124.1600343333332, - "ElapsedTime": 7.0006, - "UsedThreads": 1, - "Board": "jetson-nano", - "MachineType": "Unknown physical machine type", - "CpuName": "nVidia Tegra-family", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1428.00 MHz", - "CpuConfigMap": { - "1428.00": 4 - }, - "MemoryInKiB": 4051520, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA Tegra X1 (nvgpu)/integrated", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_5_3600X_6_Core;45600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 2187, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Área de Trabalho", - "CpuName": "AMD Ryzen 5 3600X 6-Core", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 12 - }, - "MemoryInKiB": 16299368, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.42.0, 5.14.8-gentoo-dist, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_8549_KBC_Version_52_5F_00_(HP_EliteBook_840_G6);Intel_Core_i7_8565U;36800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1313.8, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "HP 8549 KBC Version 52.5F.00 (HP EliteBook 840 G6)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8565U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 16190008, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 620 (WHL GT2)", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5255.9848635, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P5GD2_Deluxe_Rev_2_xx;Intel_Pentium_4;6800_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 186.830002, - "ElapsedTime": 7.0004, - "UsedThreads": 1, - "Board": "ASUS P5GD2-Deluxe Rev 2.xx", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 2 - }, - "MemoryInKiB": 1545376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "ATI R430", - "GpuDesc": "AMD/ATI R480 + AMD/ATI R480", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;13600_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1290, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 4 - }, - "MemoryInKiB": 8133068, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_MA78GM_S2H;AMD_Athlon_64_X2_6000_;6000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 346, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte GA-MA78GM-S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Athlon 64 X2 6000+", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 2 - }, - "MemoryInKiB": 3769200, - "PhysicalMemoryInMiB": 3840, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD RS780 (DRM 2.50.0 / 5.4.0-48-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RS780", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);Intel_Core_i7_10510U;39200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1465.320001727273, - "ElapsedTime": 7.0007, - "UsedThreads": 1, - "Board": "(Unknown)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10510U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 8 - }, - "MemoryInKiB": 32760728, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_Toronto_5A2_SDK0J40688_WIN_(80UH_Lenovo_ideapad_310_15ISK);Intel_Core_i7_6500U;12400_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1002.070007, - "ElapsedTime": 7.0009, - "UsedThreads": 1, - "Board": "Lenovo Toronto 5A2 SDK0J40688 WIN (80UH Lenovo ideapad 310-15ISK)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 8048144, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "nVidia GK208BM [GeForce 920M] + Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_X5675;38401_14", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 960.840027, - "ElapsedTime": 7.0032, - "UsedThreads": 1, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 12 threads", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "3x 3333.43 MHz + 6x 3066.76 MHz", - "CpuConfigMap": { - "3066.76": 6, - "3333.43": 3 - }, - "MemoryInKiB": 40950868, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);AMD_Ryzen_9_5950X;108832_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5553.222412, - "ElapsedTime": 7.0002, - "UsedThreads": 1, - "Board": "(Unknown)", - "MachineType": "Laptop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3401.00 MHz", - "CpuConfigMap": { - "3401.00": 32 - }, - "MemoryInKiB": 67054132, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "AMI_Corporation_Cherry_Trail_Tablet_(AZW_T4);Intel_Atom_x5_Z8500;8960_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 485, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "AMI Corporation Cherry Trail Tablet (AZW T4)", - "MachineType": "Desktop", - "CpuName": "Intel Atom x5-Z8500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2240.00 MHz", - "CpuConfigMap": { - "2240.00": 4 - }, - "MemoryInKiB": 3872568, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics (CHV)", - "GpuDesc": "Intel Atom/Celeron/Pentium x5-E8000/J3xxx/N3xxx Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Raspberry_Pi_400_Rev_1_0;Broadcom_(Unknown);7200_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 129.10171524999998, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Raspberry Pi 400 Rev 1.0", - "MachineType": "Single-board computer", - "CpuName": "Broadcom (Unknown)", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1800.00 MHz", - "CpuConfigMap": { - "1800.00": 4 - }, - "MemoryInKiB": 3737628, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "V3D 4.2", - "GpuDesc": "Unknown Device", - "PointerBits": 32, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_27763JG_Not_Available_(ThinkPad_X301);Intel_Core_2_Duo_U9400;2802_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 568.070007, - "ElapsedTime": 7.0003, - "UsedThreads": 1, - "Board": "Lenovo 27763JG Not Available (ThinkPad X301)", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo U9400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 1401.00 MHz", - "CpuConfigMap": { - "1401.00": 2 - }, - "MemoryInKiB": 5976376, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_AM2NF3_VSTA;AMD_Phenom_II_X4_970;14000_00", - "ExtraInfo": "--time=7 --cpu-max-prime=10000", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 940, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock AM2NF3-VSTA", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Phenom II X4 970", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 16463772, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV730 (DRM 2.50.0 / 5.4.0-52-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV730", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - } - ], - "SysBench Memory": [ - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_X5675;38401_14", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 3296.540039, - "ElapsedTime": 7.0032, - "UsedThreads": 4, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon X5675", - "CpuDesc": "2 CPUs; 12 cores; 12 threads", - "NumCpus": 2, - "NumCores": 12, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "3x 3333.43 MHz + 6x 3066.76 MHz", - "CpuConfigMap": { - "3066.76": 6, - "3333.43": 3 - }, - "MemoryInKiB": 40950868, - "PhysicalMemoryInMiB": 40960, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_EP43_UD3L;Intel_Core_2_6700;5334_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 810.469971, - "ElapsedTime": 7.0002, - "UsedThreads": 4, - "Board": "Gigabyte EP43-UD3L", - "MachineType": "Desktop", - "CpuName": "Intel Core 2 6700", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2667.00 MHz", - "CpuConfigMap": { - "2667.00": 2 - }, - "MemoryInKiB": 6094932, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;96000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 5946, - "ElapsedTime": 0, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 24 - }, - "MemoryInKiB": 32852584, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.36.0, 5.6.14-desktop-2.mga7, LLVM 8.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0HHV7N_A00_(Precision_Tower_5810);Intel_Xeon_E5_1650_v4;48000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 3858, - "ElapsedTime": 0, - "UsedThreads": 4, - "Board": "Dell 0HHV7N A00 (Precision Tower 5810)", - "MachineType": "Tour", - "CpuName": "Intel Xeon E5-1650 v4", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 12 - }, - "MemoryInKiB": 32860192, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA NVS 315", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 11774, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0J49V5_A00_(Inspiron_3501);Intel_Pentium_Gold_7505;14000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 12093, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Dell 0J49V5 A00 (Inspiron 3501)", - "MachineType": "Notebook", - "CpuName": "Intel Pentium Gold 7505", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 3745988, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics (TGL GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 4022, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "2x 1800.00 MHz + 4x 1416.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_X299_TOMAHAWK_AC_(MS_7B05)_1_0_(Micro_Star_International_Co___Ltd__MS_7B05);Intel_Core_i7_7800X;48000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 283.029999, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd X299 TOMAHAWK AC (MS-7B05) 1.0 (Micro-Star International Co., Ltd. MS-7B05)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-7800X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 12 - }, - "MemoryInKiB": 65554268, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce RTX 2060 SUPER", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "AAEON_UP_APL01_V0_4_(V1_0);Intel_Pentium_N4200;10000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4421, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "AAEON UP-APL01 V0.4 (V1.0)", - "MachineType": "Desktop", - "CpuName": "Intel Pentium N4200", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2500.00 MHz", - "CpuConfigMap": { - "2500.00": 4 - }, - "MemoryInKiB": 7990088, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B550M_A_(WI_FI);AMD_Ryzen_5_5600G;46800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7031.666666666667, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS PRIME B550M-A (WI-FI)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 5600G", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 12 - }, - "MemoryInKiB": 16172248, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 750 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 750 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Terrans_Force_T5_Not_Applicable;Intel_Core_i7_4720HQ;28800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 11396.120117, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Terrans Force T5 Not Applicable", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4720HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 32769456, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_AM2NF3_VSTA;AMD_Phenom_II_X4_970;14000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 2976, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock AM2NF3-VSTA", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Phenom II X4 970", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 4 - }, - "MemoryInKiB": 16463772, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV730 (DRM 2.50.0 / 5.4.0-52-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV730", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000019, - "MachineDataVersion": 0, - "BenchmarkResult": 8423, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16367700, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.20-desktop-2.mga8, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;68800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 9218.785156, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4300.00 MHz", - "CpuConfigMap": { - "4300.00": 16 - }, - "MemoryInKiB": 16371928, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.12.0-rc6.cloud4t0r+, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_B550_GAMING_CARBON_WIFI_(MS_7C90)_1_0_(MS_7C90);AMD_Ryzen_9_5900X_12_Core;88800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 11402, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. MPG B550 GAMING CARBON WIFI (MS-7C90) 1.0 (MS-7C90)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 1, - "CpuConfig": "24x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 24 - }, - "MemoryInKiB": 65841708, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6800 XT (SIENNA_CICHLID, DRM 3.40.0, 5.12.15-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Navi 21", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 25803, - "ElapsedTime": 3, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32846468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.12.0-051200-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Steel_Legend;AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 8859, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock B450 Steel Legend", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32801148, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "Radeon RX 5500 XT (NAVI14, DRM 3.40.0, 5.10.29-1.el7.x86_64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 14", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 401.869995, - "ElapsedTime": 7.0002, - "UsedThreads": 4, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);Intel_Core_i7_10510U;39200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 9436.202681181818, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "(Unknown)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-10510U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4900.00 MHz", - "CpuConfigMap": { - "4900.00": 8 - }, - "MemoryInKiB": 32760728, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B360M_Pro4;Intel_Core_i3_8100;14400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 9116.990234, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock B360M Pro4", - "MachineType": "Desktop", - "CpuName": "Intel Core i3-8100", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 32541944, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) UHD Graphics 630 (CFL GT2)", - "GpuDesc": "Intel 8th Gen Core Gaussian Mixture Model", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_16K2_REV_1_0_(GS63VR_6RF);Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 8142.27002, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. MS-16K2 REV:1.0 (GS63VR 6RF)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16294528, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 530 (SKL GT2)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 5095, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_K30AD_M31AD_M51AD;Intel_Core_i7_4770S;31200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 11115.179688, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS K30AD_M31AD_M51AD", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4770S", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 12210868, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 760 (192-bit)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_M720_US3;AMD;18000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 3002.26001, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "Gigabyte M720-US3", - "MachineType": "Invalid chassis type (0)", - "CpuName": "AMD", - "CpuDesc": "1 CPU; 6 cores; 6 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 0, - "CpuConfig": "6x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 6 - }, - "MemoryInKiB": 12283908, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD CEDAR (DRM 2.50.0 / 4.18.10, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Cedar", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_E5506;16837_17", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5084.859863, - "ElapsedTime": 7.0002, - "UsedThreads": 4, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon E5506", - "CpuDesc": "2 CPUs; 8 cores; 8 threads", - "NumCpus": 2, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "5x 2133.16 MHz + 1x 2091.91 MHz + 1x 2072.97 MHz + 1x 2006.49 MHz", - "CpuConfigMap": { - "2006.49": 1, - "2072.97": 1, - "2091.91": 1, - "2133.16": 5 - }, - "MemoryInKiB": 49209064, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_X570_PLUS;AMD_Ryzen_9_3900X_12_Core;91200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 6145, - "ElapsedTime": 0, - "UsedThreads": 4, - "Board": "ASUS TUF GAMING X570-PLUS", - "MachineType": "", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 24 - }, - "MemoryInKiB": 32856400, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX Vega (VEGA10, DRM 3.37.0, 5.7.7-desktop-1.mga8, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Vega 10 XL/XT", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PLUS_GAMING;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 9582.75, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS TUF B450-PLUS GAMING", - "MachineType": "De escritorio", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16318496, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NV117", - "GpuDesc": "nVidia GM107 [GeForce GTX 750 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_8815_45_35_(HP_ENVY_Laptop_14_eb0xxx);Intel_11th_Gen_Core_i7_1165G7;37600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 10621, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "HP 8815 45.35 (HP ENVY Laptop 14-eb0xxx)", - "MachineType": "Notebook", - "CpuName": "Intel 11th Gen Core i7-1165G7", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 4700.00 MHz", - "CpuConfigMap": { - "4700.00": 8 - }, - "MemoryInKiB": 16157284, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1650 Ti with Max-Q Design/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1650 Ti with Max-Q Design + Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MEDIONPC_WIM_2070;Intel_Pentium_M;1600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 138.809998, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "MEDIONPC WIM 2070", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 1008396, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Intel Mobile 915GM/GMS/910GML Express Graphics + Intel Mobile 915GM/GMS/910GML Express Graphics", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B450_PLUS;AMD_Ryzen_3_3300X_4_Core;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 20983.5, - "ElapsedTime": 4, - "UsedThreads": 4, - "Board": "ASUS PRIME B450-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3300X 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 16384140, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GF116 [GeForce GTX 550 Ti]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_0H275K_(Studio_1735);Intel_Core_2_Duo_T9300;5002_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 371.6100005, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "Dell 0H275K (Studio 1735)", - "MachineType": "Portable", - "CpuName": "Intel Core 2 Duo T9300", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 2501.00 MHz", - "CpuConfigMap": { - "2501.00": 2 - }, - "MemoryInKiB": 3065112, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "AMD RV635 (DRM 2.50.0 / 5.9.0-1-amd64, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI RV635/M86", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_23252UG_Not_Defined_(ThinkPad_X230);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 11549.05957, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "Lenovo 23252UG Not Defined (ThinkPad X230)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 16071640, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "jetson_nano;nVidia_Tegra_family;5712_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5278.553385333334, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "jetson-nano", - "MachineType": "Unknown physical machine type", - "CpuName": "nVidia Tegra-family", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1428.00 MHz", - "CpuConfigMap": { - "1428.00": 4 - }, - "MemoryInKiB": 4051520, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA Tegra X1 (nvgpu)/integrated", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_H81M_E_(All_Series);Intel_Core_i7_4770;31200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 4164.763346333333, - "ElapsedTime": 1.1386, - "UsedThreads": 4, - "Board": "ASUS H81M-E (All Series)", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4770", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 16301288, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) Haswell Desktop", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_MS_6702E_1_0;AMD_Athlon_64_3200_;2000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 319.5, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "MSI MS-6702E 1.0", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon 64 3200+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 1 - }, - "MemoryInKiB": 3064240, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RV630 (DRM 2.50.0 / 5.4.0-40-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV630 PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Intel_X79;Intel_Xeon_E5_2630_v2;37200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1117, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Intel X79", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2630 v2", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 1, - "CpuConfig": "12x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 12 - }, - "MemoryInKiB": 24532424, - "PhysicalMemoryInMiB": 24576, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 660/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 660", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_X570_GAMING_EDGE_WIFI_(MS_7C37)_1_0_(MS_7C37);AMD_Ryzen_9_3900X_12_Core;99571_68", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7581.450195, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. MPG X570 GAMING EDGE WIFI (MS-7C37) 1.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "1x 4149.84 MHz + 1x 4149.79 MHz + 1x 4149.64 MHz + 1x 4149.53 MHz + 1x 4148.55 MHz + 1x 4146.13 MHz + 1x 4152.06 MHz + 1x 4149.86 MHz + 1x 4149.81 MHz + 1x 4149.78 MHz + 1x 4148.99 MHz + 1x 4146.95 MHz + 1x 4140.26 MHz + 1x 4153.62 MHz + 1x 4149.85 MHz + 1x 4149.27 MHz + 1x 4149.17 MHz + 1x 4147.89 MHz + 1x 4144.99 MHz + 1x 4149.83 MHz + 1x 4149.19 MHz + 1x 4148.57 MHz + 1x 4148.31 MHz", - "CpuConfigMap": { - "4140.26": 1, - "4144.99": 1, - "4146.13": 1, - "4146.95": 1, - "4147.89": 1, - "4148.31": 1, - "4148.55": 1, - "4148.57": 1, - "4148.99": 1, - "4149.17": 1, - "4149.19": 1, - "4149.27": 1, - "4149.53": 1, - "4149.64": 1, - "4149.78": 1, - "4149.79": 1, - "4149.81": 1, - "4149.83": 1, - "4149.84": 1, - "4149.85": 1, - "4149.86": 1, - "4152.06": 1, - "4153.62": 1 - }, - "MemoryInKiB": 32875276, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 6GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 6GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0R32866WIN_(81UT_Lenovo_IdeaPad_S145_15API);AMD_Ryzen_3_3200U;10400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 865.619995, - "ElapsedTime": 7.0001, - "UsedThreads": 4, - "Board": "Lenovo LNVNB161216 SDK0R32866WIN (81UT Lenovo IdeaPad S145-15API)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 3 3200U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 5823412, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RAVEN (DRM 3.39.0, 5.9.2-050902-generic, LLVM 10.0.1)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_3_3200G;14400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 20528, - "ElapsedTime": 4, - "UsedThreads": 4, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3200G", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 14299428, - "PhysicalMemoryInMiB": 14336, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_Z170_A_Rev_1_xx;Intel_Core_i5_6600K;15600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 10945, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS Z170-A Rev 1.xx", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6600K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 49292304, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1070/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1070", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_5_2600X;43200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 9679.9399415, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 5 2600X", - "CpuDesc": "1 CPU; 6 cores; 12 threads", - "NumCpus": 1, - "NumCores": 6, - "NumThreads": 12, - "NumNodes": 0, - "CpuConfig": "12x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 12 - }, - "MemoryInKiB": 32780940, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce RTX 2070 SUPER/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce RTX 2070 SUPER", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Pro4;AMD_Ryzen_5_2400G;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 10605.110352, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASRock B450 Pro4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 63800164, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Intel_X79_V2_82;Intel_Xeon_E5_2680_v2;72000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1095, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Intel X79 V2.82", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2680 v2", - "CpuDesc": "1 CPU; 10 cores; 20 threads", - "NumCpus": 1, - "NumCores": 10, - "NumThreads": 20, - "NumNodes": 1, - "CpuConfig": "20x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 20 - }, - "MemoryInKiB": 32794608, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX550/550 Series (POLARIS12, DRM 3.42.0, 5.14.14-200.fc34.x86_64, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Lexa PRO", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_TOMAHAWK_MAX_(MS_7C02)_1_0_(MS_7C02);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 10849.786458666667, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd B450 TOMAHAWK MAX (MS-7C02) 1.0 (MS-7C02)", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32902064, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 5.6.12-arch1-1, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_00F6D3_A00_(Latitude_7480);Intel_Core_i7_7600U;15600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 12723.915039, - "ElapsedTime": 6.9707, - "UsedThreads": 4, - "Board": "Dell 00F6D3 A00 (Latitude 7480)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7600U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 4 - }, - "MemoryInKiB": 16017124, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 620 (KBL GT2)", - "GpuDesc": "Intel HD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_X510UAR_1_0;Intel_Core_i7_8550U;32000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5088, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "ASUS X510UAR 1.0", - "MachineType": "Unknown", - "CpuName": "Intel Core i7-8550U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4000.00 MHz", - "CpuConfigMap": { - "4000.00": 8 - }, - "MemoryInKiB": 16277736, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel UHD Graphics 620", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Fujitsu_D48_2A_(ESPRIMO_Mobile_V6535_20);Pentium_T4400;4400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 376, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Fujitsu D48 2A (ESPRIMO Mobile V6535 20)", - "MachineType": "Notebook", - "CpuName": "Pentium T4400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 2200.00 MHz", - "CpuConfigMap": { - "2200.00": 2 - }, - "MemoryInKiB": 3957460, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_8549_KBC_Version_52_5F_00_(HP_EliteBook_840_G6);Intel_Core_i7_8565U;36800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7993.6, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "HP 8549 KBC Version 52.5F.00 (HP EliteBook 840 G6)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-8565U", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 8 - }, - "MemoryInKiB": 16190008, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 620 (WHL GT2)", - "GpuDesc": "Intel UHD Graphics 620 (Whiskey Lake)", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 2165, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8D_V1_0;Intel_Xeon_E5_2678_v3;158400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 3099, - "ElapsedTime": 7, - "UsedThreads": 4, - "Board": "HUANANZHI X99 F8D V1.0", - "MachineType": "Настольный компьютер", - "CpuName": "Intel Xeon E5-2678 v3", - "CpuDesc": "2 CPUs; 24 cores; 48 threads", - "NumCpus": 2, - "NumCores": 24, - "NumThreads": 48, - "NumNodes": 0, - "CpuConfig": "48x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 48 - }, - "MemoryInKiB": 65853044, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "SysBench Memory (Single-thread)": [ - { - "MachineId": "Lenovo_27763JG_Not_Available_(ThinkPad_X301);Intel_Core_2_Duo_U9400;2802_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1866.839966, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Lenovo 27763JG Not Available (ThinkPad X301)", - "MachineType": "Notebook", - "CpuName": "Intel Core 2 Duo U9400", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 1401.00 MHz", - "CpuConfigMap": { - "1401.00": 2 - }, - "MemoryInKiB": 5976376, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)", - "GpuDesc": "Intel Mobile 4 Series Chipset Integrated Graphics + Intel Mobile 4 Series Chipset Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MEDIONPC_WIM_2070;Intel_Pentium_M;1600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 139.210007, - "ElapsedTime": 7.0025, - "UsedThreads": 1, - "Board": "MEDIONPC WIM 2070", - "MachineType": "Notebook", - "CpuName": "Intel Pentium M", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1600.00 MHz", - "CpuConfigMap": { - "1600.00": 1 - }, - "MemoryInKiB": 1008396, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) 915GM x86/MMX/SSE2", - "GpuDesc": "Intel Mobile 915GM/GMS/910GML Express Graphics + Intel Mobile 915GM/GMS/910GML Express Graphics", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASRock_N68_S3_FX;AMD_FX__4300;16800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 3599.5, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock N68-S3 FX", - "MachineType": "Desktop", - "CpuName": "AMD FX -4300", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 4200.00 MHz", - "CpuConfigMap": { - "4200.00": 4 - }, - "MemoryInKiB": 8135652, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "AMI_Corporation_Cherry_Trail_Tablet_(AZW_T4);Intel_Atom_x5_Z8500;8960_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1757, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "AMI Corporation Cherry Trail Tablet (AZW T4)", - "MachineType": "Desktop", - "CpuName": "Intel Atom x5-Z8500", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2240.00 MHz", - "CpuConfigMap": { - "2240.00": 4 - }, - "MemoryInKiB": 3872568, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics (CHV)", - "GpuDesc": "Intel Atom/Celeron/Pentium x5-E8000/J3xxx/N3xxx Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X570_A_PRO_(MS_7C37)_3_0_(MS_7C37);AMD_Ryzen_7_3700X;82910_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7758.279785, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. X570-A PRO (MS-7C37) 3.0 (MS-7C37)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "2x 5269.00 MHz + 2x 5129.00 MHz + 2x 4988.00 MHz + 2x 4844.00 MHz + 2x 4703.00 MHz + 4x 5554.00 MHz + 2x 5414.00 MHz", - "CpuConfigMap": { - "4703.00": 2, - "4844.00": 2, - "4988.00": 2, - "5129.00": 2, - "5269.00": 2, - "5414.00": 2, - "5554.00": 4 - }, - "MemoryInKiB": 16371996, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5600 XT (NAVI10, DRM 3.40.0, 5.11.0.cloud4t0r, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MEG_X570_ACE_(MS_7C35)_1_0_(MS_7C35);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7114.939941, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MEG X570 ACE (MS-7C35) 1.0 (MS-7C35)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32864880, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 770", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MPG_B550_GAMING_CARBON_WIFI_(MS_7C90)_1_0_(MS_7C90);AMD_Ryzen_9_5900X_12_Core;88800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 8872.5, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MPG B550 GAMING CARBON WIFI (MS-7C90) 1.0 (MS-7C90)", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5900X 12-Core", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 1, - "CpuConfig": "24x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 24 - }, - "MemoryInKiB": 65841708, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6800 XT (SIENNA_CICHLID, DRM 3.40.0, 5.12.15-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Navi 21", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;85484_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 8667, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "4x 5725.00 MHz + 2x 5581.00 MHz + 2x 5436.00 MHz + 2x 5288.00 MHz + 2x 5143.00 MHz + 2x 4994.00 MHz + 2x 4850.00 MHz", - "CpuConfigMap": { - "4850.00": 2, - "4994.00": 2, - "5143.00": 2, - "5288.00": 2, - "5436.00": 2, - "5581.00": 2, - "5725.00": 4 - }, - "MemoryInKiB": 32847612, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.11.0-051100-generic, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_TF_V2_0;Intel_Xeon_E5_4650_v3;50424_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4551, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "HUANANZHI X99-TF V2.0", - "MachineType": "Área de Trabalho", - "CpuName": "Intel Xeon E5-4650 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 2101.00 MHz", - "CpuConfigMap": { - "2101.00": 24 - }, - "MemoryInKiB": 65754996, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA GeForce GTX 1050 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;74000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 8413.3349605, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4625.00 MHz", - "CpuConfigMap": { - "4625.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.19-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_B450_Pro4;AMD_Ryzen_5_2400G;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 5927.720215, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock B450 Pro4", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Ryzen 5 2400G", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 63800164, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon(TM) Vega 11 Graphics (RAVEN, DRM 3.40.0, 5.10.3-calculate, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Raven Ridge", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Dell_06316V_A00_(Inspiron_5567);Intel_Core_i3_6006U;8000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 3579.6799315, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Dell 06316V A00 (Inspiron 5567)", - "MachineType": "Notebook", - "CpuName": "Intel Core i3-6006U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 4 - }, - "MemoryInKiB": 3836228, - "PhysicalMemoryInMiB": 3968, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 520 (SKL GT2)", - "GpuDesc": "Intel Skylake GT2 [HD Graphics 520]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "BESSTAR_Tech_GB7_(BESSTAR_TECH_LIMITED_GK50);Intel_Pentium_Silver_N5030;12400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4748, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "BESSTAR Tech GB7 (BESSTAR TECH LIMITED GK50)", - "MachineType": "Mini PC", - "CpuName": "Intel Pentium Silver N5030", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3100.00 MHz", - "CpuConfigMap": { - "3100.00": 4 - }, - "MemoryInKiB": 7958364, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) UHD Graphics 605 (GLK 3)", - "GpuDesc": "Intel GeminiLake [UHD Graphics 605]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8D_V2_2_(HUANANZHI_X99);Intel_Xeon_E5_2697A_v4;230400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 6500.216634333334, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "HUANANZHI X99 F8D V2.2 (HUANANZHI X99)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2697A v4", - "CpuDesc": "2 CPUs; 32 cores; 64 threads", - "NumCpus": 2, - "NumCores": 32, - "NumThreads": 64, - "NumNodes": 0, - "CpuConfig": "64x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 64 - }, - "MemoryInKiB": 131912664, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVIDIA T600/PCIe/SSE2", - "GpuDesc": "NVIDIA NVIDIA T600", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HUANANZHI_X99_F8_(HUANAN);Intel_Xeon_E5_2678_v3;79200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1001000, - "MachineDataVersion": 0, - "BenchmarkResult": 5886.4499515, - "ElapsedTime": 0, - "UsedThreads": 1, - "Board": "HUANANZHI X99-F8 (HUANAN)", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5-2678 v3", - "CpuDesc": "1 CPU; 12 cores; 24 threads", - "NumCpus": 1, - "NumCores": 12, - "NumThreads": 24, - "NumNodes": 0, - "CpuConfig": "24x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 24 - }, - "MemoryInKiB": 32778472, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1650", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "HP_ProLiant_ML350_G6;Intel_Xeon_E5506;16837_17", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 3353.73999, - "ElapsedTime": 7.0002, - "UsedThreads": 1, - "Board": "HP ProLiant ML350 G6", - "MachineType": "Tower", - "CpuName": "Intel Xeon E5506", - "CpuDesc": "2 CPUs; 8 cores; 8 threads", - "NumCpus": 2, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "1x 2091.91 MHz + 1x 2072.97 MHz + 1x 2006.49 MHz + 5x 2133.16 MHz", - "CpuConfigMap": { - "2006.49": 1, - "2072.97": 1, - "2091.91": 1, - "2133.16": 5 - }, - "MemoryInKiB": 49209064, - "PhysicalMemoryInMiB": 49152, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GP104 [GeForce GTX 1070 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_30D2_SDK0J40700_WIN_3258065859177_(10HYCTO1WW_ThinkCentre_M700);Intel_Core_i5_6400T;11200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 4484.68749975, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Lenovo 30D2 SDK0J40700 WIN 3258065859177 (10HYCTO1WW ThinkCentre M700)", - "MachineType": "Desktop", - "CpuName": "Intel Core i5-6400T", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2800.00 MHz", - "CpuConfigMap": { - "2800.00": 4 - }, - "MemoryInKiB": 8040416, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_B450_PLUS;AMD_Ryzen_3_3300X_4_Core;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7619.5, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS PRIME B450-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 3 3300X 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 16384140, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "nVidia GF116 [GeForce GTX 550 Ti]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_A7N8X_LA_1_xx;AMD_Athlon_XP_2500_;1829_90", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 385.589996, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASUS A7N8X-LA 1.xx", - "MachineType": "Desktop", - "CpuName": "AMD Athlon XP 2500+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 1829.90 MHz", - "CpuConfigMap": { - "1829.90": 1 - }, - "MemoryInKiB": 1998668, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI nv1F x86/MMX+/3DNow!+/SSE", - "GpuDesc": "nVidia NV1F C17 [GeForce4 MX IGP]", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MSI_MS_6702E_1_0;AMD_Athlon_64_3200_;2000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 317, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "MSI MS-6702E 1.0", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Athlon 64 3200+", - "CpuDesc": "1 CPU", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 1, - "NumNodes": 0, - "CpuConfig": "1x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 1 - }, - "MemoryInKiB": 3064240, - "PhysicalMemoryInMiB": 3072, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RV630 (DRM 2.50.0 / 5.4.0-40-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RV630 PRO", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_K30AD_M31AD_M51AD;Intel_Core_i7_4770S;31200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 6087.129883, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS K30AD_M31AD_M51AD", - "MachineType": "Desktop", - "CpuName": "Intel Core i7-4770S", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3900.00 MHz", - "CpuConfigMap": { - "3900.00": 8 - }, - "MemoryInKiB": 12210868, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 760 (192-bit)", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_G31M_ES2L;Pentium_E5500;6934_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 4169, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte G31M-ES2L", - "MachineType": "Desktop", - "CpuName": "Pentium E5500", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 1, - "CpuConfig": "2x 3467.00 MHz", - "CpuConfigMap": { - "3467.00": 2 - }, - "MemoryInKiB": 4026396, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "Mesa DRI Intel(R) G33", - "GpuDesc": "Intel 82G33/G31 Express Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Apple_Mac_AF89B6D9451A490B_iMac20_2_(iMac20_2_1_0);Intel_Core_i7_10700K;81600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 8818, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Apple Mac-AF89B6D9451A490B iMac20,2 (iMac20,2 1.0)", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-10700K", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 5100.00 MHz", - "CpuConfigMap": { - "5100.00": 16 - }, - "MemoryInKiB": 32717404, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD NAVI10 (DRM 3.40.0, 5.12.11-300.fc34.x86_64, LLVM 12.0.0)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_B450_PLUS_GAMING;AMD_Ryzen_3_3100_4_Core;28800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 7312.5, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS TUF B450-PLUS GAMING", - "MachineType": "De escritorio", - "CpuName": "AMD Ryzen 3 3100 4-Core", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 16318496, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NV117", - "GpuDesc": "nVidia GM107 [GeForce GTX 750 Ti]", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "(Unknown);AMD_Ryzen_9_5950X;108832_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 1458.442505, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "(Unknown)", - "MachineType": "Laptop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3401.00 MHz", - "CpuConfigMap": { - "3401.00": 32 - }, - "MemoryInKiB": 67054132, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_05FFDN_A00_(XPS_15_9560);Intel_Core_i7_7700HQ;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 6744, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Dell 05FFDN A00 (XPS 15 9560)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8002104, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 630 (KBL GT2)", - "GpuDesc": "nVidia GP107M [GeForce GTX 1050 Mobile] + Intel HD Graphics 630", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5Q_SE2;Intel_Xeon_E5450;12036_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4058, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS P5Q SE2", - "MachineType": "Desktop", - "CpuName": "Intel Xeon E5450", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3009.00 MHz", - "CpuConfigMap": { - "3009.00": 4 - }, - "MemoryInKiB": 6093180, - "PhysicalMemoryInMiB": 6144, - "MemoryTypes": "DDR2 SDRAM", - "OpenGlRenderer": "GeForce GT 220/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GT 220", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_5800X;73600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 8356.930013, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 4600.00 MHz", - "CpuConfigMap": { - "4600.00": 16 - }, - "MemoryInKiB": 65758392, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 6900 XT (SIENNA_CICHLID, DRM 3.41.0, 5.13.15-danglingpointer-zen3-optimised, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__X399_SLI_PLUS_(MS_7B09)_2_0_(MS_7B09);AMD_Ryzen_Threadripper_2950X;112000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7526, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. X399 SLI PLUS (MS-7B09) 2.0 (MS-7B09)", - "MachineType": "Ordinateur de bureau", - "CpuName": "AMD Ryzen Threadripper 2950X", - "CpuDesc": "1 CPU; 8 cores; 32 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 32817872, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "GeForce GTX 1060 3GB/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 1060 3GB + NVIDIA GeForce GTX 1060 3GB", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ATARI_VCS_800_(VCS_800_Classic_1);AMD_Ryzen_Embedded_R1606G;10400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5938.680176, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ATARI VCS 800 (VCS 800 Classic 1)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen Embedded R1606G", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 2600.00 MHz", - "CpuConfigMap": { - "2600.00": 4 - }, - "MemoryInKiB": 6018124, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD RAVEN2 (DRM 3.38.0, 5.8.0-36-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Picasso", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_P8Z77_V_PRO_Rev_1_xx;Intel_Core_i5_3570K;15200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 5782, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS P8Z77-V PRO Rev 1.xx", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-3570K", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 4 - }, - "MemoryInKiB": 16365792, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 750 Ti/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 750 Ti", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_B550_E_GAMING;AMD_Ryzen_9_3950X;112000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7842.430176, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX B550-E GAMING", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 3950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 32 - }, - "MemoryInKiB": 65805256, - "PhysicalMemoryInMiB": 65536, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "", - "GpuDesc": "NVIDIA GeForce GTX 1080 Ti + NVIDIA GeForce GTX 1080 Ti", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INC__MS_6728_3_00;Intel_Pentium_4;6766_84", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1883.52002, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "MICRO-STAR INC. MS-6728 3.00", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3383.42 MHz", - "CpuConfigMap": { - "3383.42": 2 - }, - "MemoryInKiB": 3071692, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI R200 (RV280 5960) DRI2", - "GpuDesc": "AMD/ATI RV280", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_XPS_12_9Q33_A10;Intel_Core_i7_4500U;12000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 4692.160156, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Dell XPS 12-9Q33 A10", - "MachineType": "Portable", - "CpuName": "Intel Core i7-4500U", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 1, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 8051464, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)", - "GpuDesc": "Intel Haswell-ULT Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_SDK0J40709_WIN_(81YM_IdeaPad_5_14ARE05);AMD_Ryzen_7_4700U;16000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5574.1819156, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Lenovo LNVNB161216 SDK0J40709 WIN (81YM IdeaPad 5 14ARE05)", - "MachineType": "Notebook", - "CpuName": "AMD Ryzen 7 4700U", - "CpuDesc": "1 CPU; 8 cores; 8 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 2000.00 MHz", - "CpuConfigMap": { - "2000.00": 8 - }, - "MemoryInKiB": 15798908, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "", - "GpuDesc": "AMD/ATI Renoir", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd_B450_TOMAHAWK_MAX_(MS_7C02)_1_0_(MS_7C02);AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 7668.896484333333, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd B450 TOMAHAWK MAX (MS-7C02) 1.0 (MS-7C02)", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32902064, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.36.0, 5.6.12-arch1-1, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Terrans_Force_T5_Not_Applicable;Intel_Core_i7_4720HQ;28800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 5920.189941, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "Terrans Force T5 Not Applicable", - "MachineType": "Laptop", - "CpuName": "Intel Core i7-4720HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 8 - }, - "MemoryInKiB": 32769456, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR3 SDRAM", - "OpenGlRenderer": "GeForce GTX 970M/PCIe/SSE2", - "GpuDesc": "NVIDIA GeForce GTX 970M + Intel 4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Lenovo_LNVNB161216_NO_DPK_(80WK_Lenovo_Y520_15IKBN);Intel_Core_i7_7700HQ;30400_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 5778, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Lenovo LNVNB161216 NO DPK (80WK Lenovo Y520-15IKBN)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-7700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 0, - "CpuConfig": "8x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 8 - }, - "MemoryInKiB": 8040844, - "PhysicalMemoryInMiB": 8192, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)", - "GpuDesc": "Intel Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "FriendlyElec_NanoPi_M4_Ver2_0;Rockchip_RK3399;9264_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 2226, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "FriendlyElec NanoPi M4 Ver2.0", - "MachineType": "Laptop", - "CpuName": "Rockchip RK3399", - "CpuDesc": "2 CPUs; 6 cores; 6 threads", - "NumCpus": 2, - "NumCores": 6, - "NumThreads": 6, - "NumNodes": 1, - "CpuConfig": "2x 1800.00 MHz + 4x 1416.00 MHz", - "CpuConfigMap": { - "1416.00": 4, - "1800.00": 2 - }, - "MemoryInKiB": 3934104, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "llvmpipe (LLVM 12.0.0, 128 bits)", - "GpuDesc": "arm Mali family", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASRock_X470_Taichi_Ultimate;AMD_Ryzen_9_5950X;108800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 8432.75, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASRock X470 Taichi Ultimate", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 9 5950X", - "CpuDesc": "1 CPU; 16 cores; 32 threads", - "NumCpus": 1, - "NumCores": 16, - "NumThreads": 32, - "NumNodes": 0, - "CpuConfig": "32x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 32 - }, - "MemoryInKiB": 65776244, - "PhysicalMemoryInMiB": 67584, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD Radeon RX 5700 XT (NAVI10, DRM 3.41.0, 5.13.19-gentoo-x86_64, LLVM 12.0.1)", - "GpuDesc": "AMD/ATI Navi 10", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Dell_072T6D_A05_(PowerEdge_R730);Intel_Xeon_E5_2696_v4;162800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 5781, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Dell 072T6D A05 (PowerEdge R730)", - "MachineType": "Rack Mount Chassis", - "CpuName": "Intel Xeon E5-2696 v4", - "CpuDesc": "1 CPU; 22 cores; 44 threads", - "NumCpus": 1, - "NumCores": 22, - "NumThreads": 44, - "NumNodes": 0, - "CpuConfig": "44x 3700.00 MHz", - "CpuConfigMap": { - "3700.00": 44 - }, - "MemoryInKiB": 131643336, - "PhysicalMemoryInMiB": 131072, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "NVA8", - "GpuDesc": "nVidia GT218 [GeForce 210]", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "jetson_nano;nVidia_Tegra_family;5712_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 1383.933309, - "ElapsedTime": 7.0002, - "UsedThreads": 1, - "Board": "jetson-nano", - "MachineType": "Unknown physical machine type", - "CpuName": "nVidia Tegra-family", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1428.00 MHz", - "CpuConfigMap": { - "1428.00": 4 - }, - "MemoryInKiB": 4051520, - "PhysicalMemoryInMiB": 4096, - "MemoryTypes": "RAM", - "OpenGlRenderer": "NVIDIA Tegra X1 (nvgpu)/integrated", - "GpuDesc": "Unknown Device", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_TUF_GAMING_B550M_PLUS;AMD_Ryzen_7_5800X;60800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000018, - "MachineDataVersion": 0, - "BenchmarkResult": 8725, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS TUF GAMING B550M-PLUS", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5800X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32846468, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Radeon RX 570 Series (POLARIS10, DRM 3.40.0, 5.12.0-051200-generic, LLVM 11.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Lenovo_23252UG_Not_Defined_(ThinkPad_X230);Intel_Core_i5_3320M;13200_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5246.189941, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Lenovo 23252UG Not Defined (ThinkPad X230)", - "MachineType": "Notebook", - "CpuName": "Intel Core i5-3320M", - "CpuDesc": "1 CPU; 2 cores; 4 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3300.00 MHz", - "CpuConfigMap": { - "3300.00": 4 - }, - "MemoryInKiB": 16071640, - "PhysicalMemoryInMiB": 16128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)", - "GpuDesc": "Intel 3rd Gen Core processor Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "MICRO_STAR_INTERNATIONAL_CO__LTD_785GM_E51_(MS_7596)_1_0_(MS_7596);AMD_Phenom_II_X4_945;12000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 3275.139893, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "MICRO-STAR INTERNATIONAL CO.,LTD 785GM-E51 (MS-7596) 1.0 (MS-7596)", - "MachineType": "Desktop", - "CpuName": "AMD Phenom II X4 945", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 4 - }, - "MemoryInKiB": 11227892, - "PhysicalMemoryInMiB": 12288, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RS880 (DRM 2.50.0 / 5.6.19-300.fc32.x86_64, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RS880", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "Micro_Star_International_Co___Ltd__MS_16K2_REV_1_0_(GS63VR_6RF);Intel_Core_i7_6700HQ;28000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 6207.47998, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Micro-Star International Co., Ltd. MS-16K2 REV:1.0 (GS63VR 6RF)", - "MachineType": "Notebook", - "CpuName": "Intel Core i7-6700HQ", - "CpuDesc": "1 CPU; 4 cores; 8 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 8, - "NumNodes": 1, - "CpuConfig": "8x 3500.00 MHz", - "CpuConfigMap": { - "3500.00": 8 - }, - "MemoryInKiB": 16294528, - "PhysicalMemoryInMiB": 16384, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Mesa Intel(R) HD Graphics 530 (SKL GT2)", - "GpuDesc": "Intel HD Graphics 530", - "PointerBits": 64, - "DataFromSuperUser": true, - "Legacy": false - }, - { - "MachineId": "ASUS_ROG_STRIX_X570_E_GAMING;AMD_Ryzen_7_3700X;57600_00", - "ExtraInfo": " --time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000017, - "MachineDataVersion": 0, - "BenchmarkResult": 7130, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "ASUS ROG STRIX X570-E GAMING", - "MachineType": "Unknown", - "CpuName": "AMD Ryzen 7 3700X", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 0, - "CpuConfig": "16x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 16 - }, - "MemoryInKiB": 32861164, - "PhysicalMemoryInMiB": 32768, - "MemoryTypes": "DDR4 SDRAM", - "OpenGlRenderer": "Radeon RX 590 Series (POLARIS10, DRM 3.33.0, 5.3.0-24-generic, LLVM 9.0.0)", - "GpuDesc": "AMD/ATI Ellesmere", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "Gigabyte_GA_MA78GM_S2H;AMD_Athlon_64_X2_6000_;6000_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000011, - "MachineDataVersion": 0, - "BenchmarkResult": 228, - "ElapsedTime": 7, - "UsedThreads": 1, - "Board": "Gigabyte GA-MA78GM-S2H", - "MachineType": "Настольный компьютер", - "CpuName": "AMD Athlon 64 X2 6000+", - "CpuDesc": "1 CPU; 2 cores; 2 threads", - "NumCpus": 1, - "NumCores": 2, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3000.00 MHz", - "CpuConfigMap": { - "3000.00": 2 - }, - "MemoryInKiB": 3769200, - "PhysicalMemoryInMiB": 3840, - "MemoryTypes": "ОЗУ", - "OpenGlRenderer": "AMD RS780 (DRM 2.50.0 / 5.4.0-48-generic, LLVM 10.0.0)", - "GpuDesc": "AMD/ATI RS780", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_P5GD2_Deluxe_Rev_2_xx;Intel_Pentium_4;6800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 366.75, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASUS P5GD2-Deluxe Rev 2.xx", - "MachineType": "Desktop", - "CpuName": "Intel Pentium 4", - "CpuDesc": "1 CPU; 2 threads", - "NumCpus": 1, - "NumCores": 1, - "NumThreads": 2, - "NumNodes": 0, - "CpuConfig": "2x 3400.00 MHz", - "CpuConfigMap": { - "3400.00": 2 - }, - "MemoryInKiB": 1545376, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "RAM", - "OpenGlRenderer": "ATI R430", - "GpuDesc": "AMD/ATI R480 + AMD/ATI R480", - "PointerBits": 32, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "ASUS_PRIME_A520M_E;AMD_Ryzen_7_5700G;60800_00", - "ExtraInfo": "--time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000020, - "MachineDataVersion": 0, - "BenchmarkResult": 5686.676635666667, - "ElapsedTime": 7.0001, - "UsedThreads": 1, - "Board": "ASUS PRIME A520M-E", - "MachineType": "Desktop", - "CpuName": "AMD Ryzen 7 5700G", - "CpuDesc": "1 CPU; 8 cores; 16 threads", - "NumCpus": 1, - "NumCores": 8, - "NumThreads": 16, - "NumNodes": 1, - "CpuConfig": "16x 3800.00 MHz", - "CpuConfigMap": { - "3800.00": 16 - }, - "MemoryInKiB": 32151660, - "PhysicalMemoryInMiB": 32128, - "MemoryTypes": "RAM", - "OpenGlRenderer": "AMD RENOIR (DRM 3.42.0, 5.14.0-2-amd64, LLVM 11.0.1)", - "GpuDesc": "AMD/ATI Cezanne", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ], - "SysBench Memory (Two threads)": [ - { - "MachineId": "Raspberry_Pi_4_Model_B_Rev_1_1;Broadcom_BCM2838;7000_00", - "ExtraInfo": " --time=7 --memory-block-size=1K --memory-total-size=3056M --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": " overclock: overvoltage=4 arm_freq=1750 gpu_freq=600", - "BenchmarkVersion": 4012, - "MachineDataVersion": 0, - "BenchmarkResult": 715.630005, - "ElapsedTime": 4.2703, - "UsedThreads": 2, - "Board": "Raspberry Pi 4 Model B Rev 1.1", - "MachineType": "Unknown", - "CpuName": "Broadcom BCM2838", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 1750.00 MHz", - "CpuConfigMap": { - "1750.00": 4 - }, - "MemoryInKiB": 3999788, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Broadcom VideoCore IV", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - }, - { - "MachineId": "HP_18E7_(HP_ProDesk_600_G1_SFF);Intel_Core_i5_4570;14400_00", - "ExtraInfo": " --threads=2 --time=7 --memory-block-size=1K --memory-total-size=100G --memory-scope=global --memory-hugetlb=off --memory-oper=write --memory-access-mode=seq", - "UserNote": "", - "BenchmarkVersion": 1000015, - "MachineDataVersion": 0, - "BenchmarkResult": 8750.669922, - "ElapsedTime": 7.0001, - "UsedThreads": 2, - "Board": "HP 18E7 (HP ProDesk 600 G1 SFF)", - "MachineType": "Unknown", - "CpuName": "Intel Core i5-4570", - "CpuDesc": "1 CPU; 4 cores; 4 threads", - "NumCpus": 1, - "NumCores": 4, - "NumThreads": 4, - "NumNodes": 0, - "CpuConfig": "4x 3600.00 MHz", - "CpuConfigMap": { - "3600.00": 4 - }, - "MemoryInKiB": 24568776, - "PhysicalMemoryInMiB": 0, - "MemoryTypes": "", - "OpenGlRenderer": "", - "GpuDesc": "Intel Xeon E3-1200 v3/4th Gen Core Integrated Graphics", - "PointerBits": 64, - "DataFromSuperUser": false, - "Legacy": false - } - ] -} diff --git a/doc/index.hlp b/doc/index.hlp deleted file mode 100644 index 649a7a4a..00000000 --- a/doc/index.hlp +++ /dev/null @@ -1,35 +0,0 @@ -# HardInfo Documentation - -## Introduction - -HardInfo can gather information about your system's hardware and operating system, perform benchmarks, and generate printable reports either in HTML or in plain text formats. - -## Feature Overview - -* Obtains information about basic hardware items; -* Obtains information about basic operating system items; -* Performs CPU and FPU benchmarks; -* Allows [network-updater.hlp synchronization of benchmark results] with other HardInfo users; -* Some tables can be [network-updater.hlp updated] from the Internet; -* Can be used either in local or in [remote.hlp remote] mode; -* Generates repots in HTML or plain text formats; -* Can be used either with a GTK+ GUI or on a terminal. - -## Using - -* [report-generation.hlp Generating Reports] -* [network-updater.hlp Using the Network Updater] -* [remote.hlp Obtaining Information from a Remote Machine] -* [benchmark.hlp Performing and Understanding Benchmarks] -* [command-line.hlp Using HardInfo from the command line] - -## Improving - -* [bug-reporting.hlp How to Report Bugs] -* [feature-requests.hlp How to Request a Feature] -* [http://hardinfo.org/developer Developer Documentation] - -## Following - -* [https://twitter.com/hardinfo Twitter] (for GitHub commits) -* [http://lists.hardinfo.org Mailing Lists] diff --git a/hardinfo.1 b/hardinfo.1 deleted file mode 100644 index ba590957..00000000 --- a/hardinfo.1 +++ /dev/null @@ -1,69 +0,0 @@ -.\" Manpage for hardinfo. -.\" https://github.com/lpereira/hardinfo/. -.TH HARDINFO "1" "July 2017" "0.6" "User Commands" -.SH NAME -\fBHardInfo\fR \- System profiler and benchmark for Linux systems. -.SH USAGE -\fBhardinfo\fR [OPTION...] -.SH DESCRIPTION -Is a system profiler and benchmark for Linux systems, that gathers information about the -hardware and operating system, performs benchmarks, and generates reports. -The information gathered is presented on an simple and intuitive GUI. - -Information is grouped in \fIfour main groups\fR: \fBComputer\fR, \fBDevices\fR, \fBNetwork\fR, and \fBBenchmarks\fR. - -The \fBComputer group\fR contains mostly information about basic software. This includes but -is not limited to information about the operating system (kernel version, C library, -distribution, etc.), kernel modules, locale information, filesystem usage, users/groups, and -development tools. - -The \fBDevices group\fR contains information about the hardware, as detected by the operating -system. \fBHardinfo\fR is incapable of detecting hardware by itself, it merely lists what the -operating system was able to find. This includes, but does not limit to, information about the -processor (including cache layout, known bugs, and feature flags with their explanation), -devices (such as USB, PCI, and Input devices), among other things. - -The \fBNetwork group\fR lists information about network interfaces, routing table, DNS servers, -and other networking-related topics. - -The \fBBenchmarks group\fR allow performing simple benchmarks to test CPU and FPU capabilities, -as well as some of the graphical user interface capabilities as well. In previous versions, it -was possible to send the benchmark results to a central server, so it was possible to compare -the benchmarks with other \fBHardinfo\fR users; this service has been deactivated in the mean time. - -\fIReports\fR can be generated either by invoking \fBHardinfo\fR with special command-line parameters -(see below), or by clicking the "Generate Report" button in the GUI. Reports can be customized -in the GUI and saved in either HTML or plain text formats. - -.SH OPTIONS -.TP -\fB\-h\fR, \fB\-\-help\fR -Show help options -.TP -\fB\-r\fR, \fB\-\-generate\-report\fR -creates a report and prints to standard output -.TP -\fB\-f\fR, \fB\-\-report\-format\fR -chooses a report format (text, html) -.TP -\fB\-b\fR, \fB\-\-run\-benchmark\fR -run benchmark; requires benchmark.so to be loaded -.TP -\fB\-l\fR, \fB\-\-list\-modules\fR -lists modules -.TP -\fB\-m\fR, \fB\-\-load\-module\fR -specify module to load -.TP -\fB\-a\fR, \fB\-\-autoload\-deps\fR -automatically load module dependencies -.TP -\fB\-v\fR, \fB\-\-version\fR -shows program version and quit -.SH AUTHORS/CONTRIBUTORS -For current maintainers committing, see AUTHORS.md file and more info are at \fIhttps://github.com/lpereira/hardinfo/graphs/contributors\fR . -More contributions are in each files source headers. -.SH COPYRIGHT -\fBHardInfo\fR its Copyright \(co 2003, 2009\-2017 L. A. F. Pereira \fI\fR. -This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -This manpage was created by PICCORO Lenz McKAY \fI\fR for the hardinfo project. diff --git a/hardinfo.desktop.cmake b/hardinfo.desktop.cmake deleted file mode 100644 index 427335e8..00000000 --- a/hardinfo.desktop.cmake +++ /dev/null @@ -1,18 +0,0 @@ -[Desktop Entry] -Name=System Profiler and Benchmark -Name[de]=System Profiler und Benchmark -Name[es]=Informacion y Rendimiento del Sistema -Name[fr]=Informations et Benchmarks du Système -Name[pt_BR]=Informações e Testes do Sistema -Name[ru]=Информация о системе и тестирование -Name[tr]=Sistem Bilgisi ve Karşılaştırma -Comment=Displays system information -Comment[de]=Anzeigen von Systeminformationen -Comment[ru]=Показывает информацию о системе -Exec=@CMAKE_INSTALL_FULL_BINDIR@/hardinfo -Icon=hardinfo -Terminal=false -Type=Application -StartupNotify=true -Categories=System; -Keywords=linux;kernel;system;hardware;cpu;processor;capabilities;frequency;memory;ram;board;resources;sensors;devices;usb;pci;display;network;benchmark;test; diff --git a/hardinfo/binreloc.c b/hardinfo/binreloc.c deleted file mode 100644 index f47a3fae..00000000 --- a/hardinfo/binreloc.c +++ /dev/null @@ -1,668 +0,0 @@ -/* - * BinReloc - a library for creating relocatable executables - * Written by: Hongli Lai - * http://autopackage.org/ - * - * This source code is public domain. You can relicense this code - * under whatever license you want. - * - * See http://autopackage.org/docs/binreloc/ for - * more information and how to use this. - */ - -#ifndef __BINRELOC_C__ -#define __BINRELOC_C__ - -#include -#include -#include -#include -#include -#include -#include -#include "binreloc.h" -#include "config.h" - -G_BEGIN_DECLS -/** @internal - * Find the canonical filename of the executable. Returns the filename - * (which must be freed) or NULL on error. If the parameter 'error' is - * not NULL, the error code will be stored there, if an error occured. - */ -static char *_br_find_exe(GbrInitError * error) -{ - char *path, *path2, *line, *result; - size_t buf_size; - ssize_t size; - struct stat stat_buf; - FILE *f; - - /* Read from /proc/self/exe (symlink) */ - if (sizeof(path) > SSIZE_MAX) - buf_size = SSIZE_MAX - 1; - else - buf_size = PATH_MAX - 1; - path = (char *) g_try_malloc(buf_size); - if (path == NULL) { - /* Cannot allocate memory. */ - if (error) - *error = GBR_INIT_ERROR_NOMEM; - return NULL; - } - path2 = (char *) g_try_malloc(buf_size); - if (path2 == NULL) { - /* Cannot allocate memory. */ - if (error) - *error = GBR_INIT_ERROR_NOMEM; - g_free(path); - return NULL; - } - - strncpy(path2, "/proc/self/exe", buf_size - 1); - - while (1) { - int i; - - size = readlink(path2, path, buf_size - 1); - if (size == -1) { - /* Error. */ - g_free(path2); - break; - } - - /* readlink() success. */ - path[size] = '\0'; - - /* Check whether the symlink's target is also a symlink. - * We want to get the final target. */ - i = stat(path, &stat_buf); - if (i == -1) { - /* Error. */ - g_free(path2); - break; - } - - /* stat() success. */ - if (!S_ISLNK(stat_buf.st_mode)) { - /* path is not a symlink. Done. */ - g_free(path2); - return path; - } - - /* path is a symlink. Continue loop and resolve this. */ - strncpy(path, path2, buf_size - 1); - } - - - /* readlink() or stat() failed; this can happen when the program is - * running in Valgrind 2.2. Read from /proc/self/maps as fallback. */ - - buf_size = PATH_MAX + 128; - line = (char *) g_try_realloc(path, buf_size); - if (line == NULL) { - /* Cannot allocate memory. */ - g_free(path); - if (error) - *error = GBR_INIT_ERROR_NOMEM; - return NULL; - } - - f = fopen("/proc/self/maps", "r"); - if (f == NULL) { - g_free(line); - if (error) - *error = GBR_INIT_ERROR_OPEN_MAPS; - return NULL; - } - - /* The first entry should be the executable name. */ - result = fgets(line, (int) buf_size, f); - if (result == NULL) { - fclose(f); - g_free(line); - if (error) - *error = GBR_INIT_ERROR_READ_MAPS; - return NULL; - } - - /* Get rid of newline character. */ - buf_size = strlen(line); - if (buf_size <= 0) { - /* Huh? An empty string? */ - fclose(f); - g_free(line); - if (error) - *error = GBR_INIT_ERROR_INVALID_MAPS; - return NULL; - } - if (line[buf_size - 1] == 10) - line[buf_size - 1] = 0; - - /* Extract the filename; it is always an absolute path. */ - path = strchr(line, '/'); - - /* Sanity check. */ - if (strstr(line, " r-xp ") == NULL || path == NULL) { - fclose(f); - g_free(line); - if (error) - *error = GBR_INIT_ERROR_INVALID_MAPS; - return NULL; - } - - path = g_strdup(path); - g_free(line); - fclose(f); - return path; -} - - -/** @internal - * Find the canonical filename of the executable which owns symbol. - * Returns a filename which must be freed, or NULL on error. - */ -static char *_br_find_exe_for_symbol(const void *symbol, - GbrInitError * error) -{ -#define SIZE PATH_MAX + 100 - FILE *f; - size_t address_string_len; - char *address_string, line[SIZE], *found; - - if (symbol == NULL) - return (char *) NULL; - - f = fopen("/proc/self/maps", "r"); - if (f == NULL) - return (char *) NULL; - - address_string_len = 4; - address_string = (char *) g_try_malloc(address_string_len); - found = (char *) NULL; - - while (!feof(f)) { - char *start_addr, *end_addr, *end_addr_end, *file; - void *start_addr_p, *end_addr_p; - size_t len; - - if (fgets(line, SIZE, f) == NULL) - break; - - /* Sanity check. */ - if (strstr(line, " r-xp ") == NULL || strchr(line, '/') == NULL) - continue; - - /* Parse line. */ - start_addr = line; - end_addr = strchr(line, '-'); - file = strchr(line, '/'); - - /* More sanity check. */ - if (!(file > end_addr && end_addr != NULL && end_addr[0] == '-')) - continue; - - end_addr[0] = '\0'; - end_addr++; - end_addr_end = strchr(end_addr, ' '); - if (end_addr_end == NULL) - continue; - - end_addr_end[0] = '\0'; - len = strlen(file); - if (len == 0) - continue; - if (file[len - 1] == '\n') - file[len - 1] = '\0'; - - /* Get rid of "(deleted)" from the filename. */ - len = strlen(file); - if (len > 10 && strcmp(file + len - 10, " (deleted)") == 0) - file[len - 10] = '\0'; - - /* I don't know whether this can happen but better safe than sorry. */ - len = strlen(start_addr); - if (len != strlen(end_addr)) - continue; - - - /* Transform the addresses into a string in the form of 0xdeadbeef, - * then transform that into a pointer. */ - if (address_string_len < len + 3) { - address_string_len = len + 3; - address_string = - (char *) g_try_realloc(address_string, address_string_len); - } - - memcpy(address_string, "0x", 2); - memcpy(address_string + 2, start_addr, len); - address_string[2 + len] = '\0'; - sscanf(address_string, "%p", &start_addr_p); - - memcpy(address_string, "0x", 2); - memcpy(address_string + 2, end_addr, len); - address_string[2 + len] = '\0'; - sscanf(address_string, "%p", &end_addr_p); - - - if (symbol >= start_addr_p && symbol < end_addr_p) { - found = file; - break; - } - } - - g_free(address_string); - fclose(f); - - if (found == NULL) - return (char *) NULL; - else - return g_strdup(found); -} - - -static gchar *exe = NULL; - -static void set_gerror(GError ** error, GbrInitError errcode); - - -/** Initialize the BinReloc library (for applications). - * - * This function must be called before using any other BinReloc functions. - * It attempts to locate the application's canonical filename. - * - * @note If you want to use BinReloc for a library, then you should call - * gbr_init_lib() instead. - * - * @param error If BinReloc failed to initialize, then the error report will - * be stored in this variable. Set to NULL if you don't want an - * error report. See the #GbrInitError for a list of error - * codes. - * - * @returns TRUE on success, FALSE if BinReloc failed to initialize. - */ -gboolean gbr_init(GError ** error) -{ - GbrInitError errcode = 0; - - /* Locate the application's filename. */ - exe = _br_find_exe(&errcode); - if (exe != NULL) - /* Success! */ - return TRUE; - else { - /* Failed :-( */ - set_gerror(error, errcode); - return FALSE; - } -} - - -/** Initialize the BinReloc library (for libraries). - * - * This function must be called before using any other BinReloc functions. - * It attempts to locate the calling library's canonical filename. - * - * @note The BinReloc source code MUST be included in your library, or this - * function won't work correctly. - * - * @returns TRUE on success, FALSE if a filename cannot be found. - */ -gboolean gbr_init_lib(GError ** error) -{ - GbrInitError errcode = 0; - - exe = _br_find_exe_for_symbol((const void *) "", &errcode); - if (exe != NULL) - /* Success! */ - return TRUE; - else { - /* Failed :-( */ - set_gerror(error, errcode); - return exe != NULL; - } -} - - -static void set_gerror(GError ** error, GbrInitError errcode) -{ - gchar *error_message; - - if (error == NULL) - return; - - switch (errcode) { - case GBR_INIT_ERROR_NOMEM: - error_message = "Cannot allocate memory."; - break; - case GBR_INIT_ERROR_OPEN_MAPS: - error_message = "Unable to open /proc/self/maps for reading."; - break; - case GBR_INIT_ERROR_READ_MAPS: - error_message = "Unable to read from /proc/self/maps."; - break; - case GBR_INIT_ERROR_INVALID_MAPS: - error_message = "The file format of /proc/self/maps is invalid."; - break; - case GBR_INIT_ERROR_DISABLED: - error_message = "Binary relocation support is disabled."; - break; - default: - error_message = "Unknown error."; - break; - }; - g_set_error(error, g_quark_from_static_string("GBinReloc"), - errcode, "%s", error_message); -} - - -/** Find the canonical filename of the current application. - * - * @param default_exe A default filename which will be used as fallback. - * @returns A string containing the application's canonical filename, - * which must be freed when no longer necessary. If BinReloc is - * not initialized, or if the initialization function failed, - * then a copy of default_exe will be returned. If default_exe - * is NULL, then NULL will be returned. - */ -gchar *gbr_find_exe(const gchar * default_exe) -{ - if (exe == NULL) { - /* BinReloc is not initialized. */ - if (default_exe != NULL) - return g_strdup(default_exe); - else - return NULL; - } - return g_strdup(exe); -} - - -/** Locate the directory in which the current application is installed. - * - * The prefix is generated by the following pseudo-code evaluation: - * \code - * dirname(exename) - * \endcode - * - * @param default_dir A default directory which will used as fallback. - * @return A string containing the directory, which must be freed when no - * longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_dir - * will be returned. If default_dir is NULL, then NULL will be - * returned. - */ -gchar *gbr_find_exe_dir(const gchar * default_dir) -{ - if (exe == NULL) { - /* BinReloc not initialized. */ - if (default_dir != NULL) - return g_strdup(default_dir); - else - return NULL; - } - - return g_path_get_dirname(exe); -} - - -/** Locate the prefix in which the current application is installed. - * - * The prefix is generated by the following pseudo-code evaluation: - * \code - * dirname(dirname(exename)) - * \endcode - * - * @param default_prefix A default prefix which will used as fallback. - * @return A string containing the prefix, which must be freed when no - * longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_prefix - * will be returned. If default_prefix is NULL, then NULL will be - * returned. - */ -gchar *gbr_find_prefix(const gchar * default_prefix) -{ - gchar *dir1, *dir2; - - if (exe == NULL) { - /* BinReloc not initialized. */ - if (default_prefix != NULL) - return g_strdup(default_prefix); - else - return NULL; - } - - dir1 = g_path_get_dirname(exe); - dir2 = g_path_get_dirname(dir1); - g_free(dir1); - return dir2; -} - - -/** Locate the application's binary folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/bin" - * \endcode - * - * @param default_bin_dir A default path which will used as fallback. - * @return A string containing the bin folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_bin_dir will - * be returned. If default_bin_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_bin_dir(const gchar * default_bin_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_bin_dir != NULL) - return g_strdup(default_bin_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, "bin", NULL); - g_free(prefix); - return dir; -} - - -/** Locate the application's superuser binary folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/sbin" - * \endcode - * - * @param default_sbin_dir A default path which will used as fallback. - * @return A string containing the sbin folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_sbin_dir will - * be returned. If default_bin_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_sbin_dir(const gchar * default_sbin_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_sbin_dir != NULL) - return g_strdup(default_sbin_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, "sbin", NULL); - g_free(prefix); - return dir; -} - - -/** Locate the application's data folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/share" - * \endcode - * - * @param default_data_dir A default path which will used as fallback. - * @return A string containing the data folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_data_dir - * will be returned. If default_data_dir is NULL, then NULL will be - * returned. - */ -gchar *gbr_find_data_dir(const gchar * default_data_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_data_dir != NULL) - return g_strdup(default_data_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, "share", NULL); - g_free(prefix); - return dir; -} - - -/** Locate the application's localization folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/share/locale" - * \endcode - * - * @param default_locale_dir A default path which will used as fallback. - * @return A string containing the localization folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_locale_dir will be returned. - * If default_locale_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_locale_dir(const gchar * default_locale_dir) -{ - gchar *data_dir, *dir; - - data_dir = gbr_find_data_dir(NULL); - if (data_dir == NULL) { - /* BinReloc not initialized. */ - if (default_locale_dir != NULL) - return g_strdup(default_locale_dir); - else - return NULL; - } - - dir = g_build_filename(data_dir, "locale", NULL); - g_free(data_dir); - return dir; -} - - -/** Locate the application's library folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/lib" - * \endcode - * - * @param default_lib_dir A default path which will used as fallback. - * @return A string containing the library folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the - * initialization function failed, then a copy of default_lib_dir will be returned. - * If default_lib_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_lib_dir(const gchar * default_lib_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_lib_dir != NULL) - return g_strdup(default_lib_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, LIBDIR, NULL); - - g_free(prefix); - return dir; -} - - -/** Locate the application's libexec folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/libexec" - * \endcode - * - * @param default_libexec_dir A default path which will used as fallback. - * @return A string containing the libexec folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the initialization - * function failed, then a copy of default_libexec_dir will be returned. - * If default_libexec_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_libexec_dir(const gchar * default_libexec_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_libexec_dir != NULL) - return g_strdup(default_libexec_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, "libexec", NULL); - g_free(prefix); - return dir; -} - - -/** Locate the application's configuration files folder. - * - * The path is generated by the following pseudo-code evaluation: - * \code - * prefix + "/etc" - * \endcode - * - * @param default_etc_dir A default path which will used as fallback. - * @return A string containing the etc folder's path, which must be freed when - * no longer necessary. If BinReloc is not initialized, or if the initialization - * function failed, then a copy of default_etc_dir will be returned. - * If default_etc_dir is NULL, then NULL will be returned. - */ -gchar *gbr_find_etc_dir(const gchar * default_etc_dir) -{ - gchar *prefix, *dir; - - prefix = gbr_find_prefix(NULL); - if (prefix == NULL) { - /* BinReloc not initialized. */ - if (default_etc_dir != NULL) - return g_strdup(default_etc_dir); - else - return NULL; - } - - dir = g_build_filename(prefix, "etc", NULL); - g_free(prefix); - return dir; -} - - -G_END_DECLS -#endif /* __BINRELOC_C__ */ diff --git a/hardinfo/cpu_util.c b/hardinfo/cpu_util.c deleted file mode 100644 index 8db5f61a..00000000 --- a/hardinfo/cpu_util.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2006 L. A. F. Pereira - * This file by Burt P. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include "hardinfo.h" -#include "cpu_util.h" -#include "cpubits.h" - -#define CPU_TOPO_NULL -9877 - -const gchar *byte_order_str() { -#if G_BYTE_ORDER == G_LITTLE_ENDIAN - return _("Little Endian"); -#else - return _("Big Endian"); -#endif -} - -int processor_has_flag(gchar * strflags, gchar * strflag) -{ - gchar **flags; - gint ret = 0; - if (strflags == NULL || strflag == NULL) - return 0; - flags = g_strsplit(strflags, " ", 0); - ret = g_strv_contains((const gchar * const *)flags, strflag); - g_strfreev(flags); - return ret; -} - -gchar* get_cpu_str(const gchar* file, gint cpuid) { - gchar *tmp0 = NULL; - gchar *tmp1 = NULL; - tmp0 = g_strdup_printf("/sys/devices/system/cpu/cpu%d/%s", cpuid, file); - g_file_get_contents(tmp0, &tmp1, NULL, NULL); - g_free(tmp0); - return tmp1; -} - -gint get_cpu_int(const char* item, int cpuid, int null_val) { - gchar *fc = NULL; - int ret = null_val; - fc = get_cpu_str(item, cpuid); - if (fc) { - ret = atol(fc); - g_free(fc); - } - return ret; -} - -/* cpubits is 32768 bits long - * core_ids are not unique among physical_ids - * hack up cpubits into 128 packs of 256 cores - * to make cores unique in cpubits */ -#define MAX_CORES_PER_PACK 256 -#define MAX_PACKS 128 - -int cpu_procs_cores_threads_nodes(int *p, int *c, int *t, int *n) -{ - cpubits *threads, *cores, *packs; - char *tmp; - int i, m, pack_id, core_id; - - g_file_get_contents("/sys/devices/system/cpu/present", &tmp, NULL, NULL); - if (tmp == NULL) { - *p = *c = *t = *n = -1; - return 0; - } - - threads = cpubits_from_str(tmp); - cores = cpubits_from_str(""); - packs = cpubits_from_str(""); - m = cpubits_max(threads); - for (i = 0; i <= m; i++) { - pack_id = get_cpu_int("topology/physical_package_id", i, CPU_TOPO_NULL); - core_id = get_cpu_int("topology/core_id", i, CPU_TOPO_NULL); - if (pack_id < 0) - pack_id = 0; - CPUBIT_SET(packs, pack_id); - if (core_id >= 0) { - CPUBIT_SET(cores, (pack_id * MAX_CORES_PER_PACK) + core_id); - } - } - - *t = cpubits_count(threads); - *c = cpubits_count(cores); - *p = cpubits_count(packs); - - g_free(tmp); - g_file_get_contents("/sys/devices/system/node/possible", &tmp, NULL, NULL); - if (tmp != NULL) { - cpubits *nodes = cpubits_from_str(tmp); - if (nodes) - *n = cpubits_count(nodes); - free(nodes); - } - - if (!*c) - *c = 1; - if (!*p) - *p = 1; - if (!*n) - *n = 1; - - g_free(threads); - g_free(cores); - g_free(packs); - g_free(tmp); - return 1; -} - -cpufreq_data *cpufreq_new(gint id) -{ - cpufreq_data *cpufd; - cpufd = malloc(sizeof(cpufreq_data)); - if (cpufd) { - memset(cpufd, 0, sizeof(cpufreq_data)); - cpufd->id = id; - cpufreq_update(cpufd, 0); - } - return cpufd; -} - -void cpufreq_update(cpufreq_data *cpufd, int cur_only) -{ - if (cpufd) { - cpufd->cpukhz_cur = get_cpu_int("cpufreq/scaling_cur_freq", cpufd->id, 0); - if (cur_only) return; - cpufd->scaling_driver = get_cpu_str("cpufreq/scaling_driver", cpufd->id); - cpufd->scaling_governor = get_cpu_str("cpufreq/scaling_governor", cpufd->id); - cpufd->transition_latency = get_cpu_int("cpufreq/cpuinfo_transition_latency", cpufd->id, 0); - cpufd->cpukhz_min = get_cpu_int("cpufreq/scaling_min_freq", cpufd->id, 0); - cpufd->cpukhz_max = get_cpu_int("cpufreq/scaling_max_freq", cpufd->id, 0); - if (cpufd->scaling_driver == NULL) cpufd->scaling_driver = g_strdup("(Unknown)"); - if (cpufd->scaling_governor == NULL) cpufd->scaling_governor = g_strdup("(Unknown)"); - - /* x86 uses freqdomain_cpus, all others use affected_cpus */ - cpufd->shared_list = get_cpu_str("cpufreq/freqdomain_cpus", cpufd->id); - if (cpufd->shared_list == NULL) cpufd->shared_list = get_cpu_str("cpufreq/affected_cpus", cpufd->id); - if (cpufd->shared_list == NULL) cpufd->shared_list = g_strdup_printf("%d", cpufd->id); - } -} - -void cpufreq_free(cpufreq_data *cpufd) -{ - if (cpufd) { - g_free(cpufd->scaling_driver); - g_free(cpufd->scaling_governor); - } - g_free(cpufd); -} - -cpu_topology_data *cputopo_new(gint id) -{ - cpu_topology_data *cputd; - cputd = malloc(sizeof(cpu_topology_data)); - if (cputd) { - memset(cputd, 0, sizeof(cpu_topology_data)); - cputd->id = id; - cputd->socket_id = get_cpu_int("topology/physical_package_id", id, CPU_TOPO_NULL); - cputd->core_id = get_cpu_int("topology/core_id", id, CPU_TOPO_NULL); - cputd->book_id = get_cpu_int("topology/book_id", id, CPU_TOPO_NULL); - cputd->drawer_id = get_cpu_int("topology/drawer_id", id, CPU_TOPO_NULL); - } - return cputd; - -} - -void cputopo_free(cpu_topology_data *cputd) -{ - g_free(cputd); -} - -gchar *cpufreq_section_str(cpufreq_data *cpufd) -{ - if (cpufd == NULL) - return g_strdup(""); - - if (cpufd->cpukhz_min || cpufd->cpukhz_max || cpufd->cpukhz_cur) { - return g_strdup_printf( - "[%s]\n" - "%s=%d %s\n" - "%s=%d %s\n" - "%s=%d %s\n" - "%s=%d %s\n" - "%s=%s\n" - "%s=%s\n", - _("Frequency Scaling"), - _("Minimum"), cpufd->cpukhz_min, _("kHz"), - _("Maximum"), cpufd->cpukhz_max, _("kHz"), - _("Current"), cpufd->cpukhz_cur, _("kHz"), - _("Transition Latency"), cpufd->transition_latency, _("ns"), - _("Governor"), cpufd->scaling_governor, - _("Driver"), cpufd->scaling_driver); - } else { - return g_strdup_printf( - "[%s]\n" - "%s=%s\n", - _("Frequency Scaling"), - _("Driver"), cpufd->scaling_driver); - } -} - -gchar *cputopo_section_str(cpu_topology_data *cputd) -{ - static const char na[] = N_("(Not Available)"); - char sock_str[64] = "", core_str[64] = ""; - char book_str[64] = "", drawer_str[64] = ""; - - if (cputd == NULL) - return g_strdup(""); - - if (cputd->socket_id != CPU_TOPO_NULL && cputd->socket_id != -1) - sprintf(sock_str, "%s=%d\n", _("Socket"), cputd->socket_id); - else - sprintf(sock_str, "%s=%s\n", _("Socket"), na); - - if (cputd->core_id != CPU_TOPO_NULL) - sprintf(core_str, "%s=%d\n", _("Core"), cputd->core_id); - else - sprintf(core_str, "%s=%s\n", _("Core"), na); - - if (cputd->book_id != CPU_TOPO_NULL) - sprintf(core_str, "%s=%d\n", _("Book"), cputd->book_id); - if (cputd->book_id != CPU_TOPO_NULL) - sprintf(core_str, "%s=%d\n", _("Drawer"), cputd->drawer_id); - - return g_strdup_printf( - "[%s]\n" - "%s=%d\n" - "%s%s%s%s", - _("Topology"), - _("ID"), cputd->id, - sock_str, core_str, book_str, drawer_str ); -} diff --git a/hardinfo/dmi_util.c b/hardinfo/dmi_util.c deleted file mode 100644 index 94351ad7..00000000 --- a/hardinfo/dmi_util.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2017 L. A. F. Pereira - * This file - * Copyright (C) 2017 Burt P. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "dmi_util.h" - -static const char *dmi_type_strings[] = { - [0] = N_("BIOS Information"), - [1] = N_("System"), - [2] = N_("Base Board"), - [3] = N_("Chassis"), - [4] = N_("Processor"), - [5] = N_("Memory Controller"), - [6] = N_("Memory Module"), - [7] = N_("Cache"), - [8] = N_("Port Connector"), - [9] = N_("System Slots"), - [10] = N_("On Board Devices"), - [11] = N_("OEM Strings"), - [12] = N_("System Configuration Options"), - [13] = N_("BIOS Language"), - [14] = N_("Group Associations"), - [15] = N_("System Event Log"), - [16] = N_("Physical Memory Array"), - [17] = N_("Memory Device"), - [18] = N_("32-bit Memory Error"), - [19] = N_("Memory Array Mapped Address"), - [20] = N_("Memory Device Mapped Address"), - [21] = N_("Built-in Pointing Device"), - [22] = N_("Portable Battery"), - [23] = N_("System Reset"), - [24] = N_("Hardware Security"), - [25] = N_("System Power Controls"), - [26] = N_("Voltage Probe"), - [27] = N_("Cooling Device"), - [28] = N_("Temperature Probe"), - [29] = N_("Electrical Current Probe"), - [30] = N_("Out-of-band Remote Access"), - [31] = N_("Boot Integrity Services"), - [32] = N_("System Boot"), - [33] = N_("64-bit Memory Error"), - [34] = N_("Management Device"), - [35] = N_("Management Device Component"), - [36] = N_("Management Device Threshold Data"), - [37] = N_("Memory Channel"), - [38] = N_("IPMI Device"), - [39] = N_("Power Supply"), - [40] = N_("Additional Information"), - [41] = N_("Onboard Device"), - //127 = End of Table -}; - -/* frees the string and sets it NULL if it is to be ignored - * returns -1 if error, 0 if ok, 1 if ignored */ -static int ignore_placeholder_strings(gchar **pstr) { - gchar *chk, *p; - chk = g_strdup(*pstr); - - if (pstr == NULL || *pstr == NULL) - return -1; -#define DMI_IGNORE(m) if (strcasecmp(m, *pstr) == 0) { g_free(chk); g_free(*pstr); *pstr = NULL; return 1; } - DMI_IGNORE("To be filled by O.E.M."); - DMI_IGNORE("Default String"); - DMI_IGNORE("System Product Name"); - DMI_IGNORE("System Manufacturer"); - DMI_IGNORE("System Version"); - DMI_IGNORE("System Serial Number"); - DMI_IGNORE("Rev X.0x"); /* ASUS board version nonsense */ - DMI_IGNORE("x.x"); /* Gigabyte board version nonsense */ - DMI_IGNORE("NA"); - DMI_IGNORE("SKU"); - - /* noticed on an HP x360 with Insyde BIOS */ - DMI_IGNORE("Type2 - Board Asset Tag"); - DMI_IGNORE("Type1ProductConfigId"); - - /* Toshiba Laptop with Insyde BIOS */ - DMI_IGNORE("Base Board Version"); - DMI_IGNORE("No Asset Tag"); - DMI_IGNORE("None"); - DMI_IGNORE("Type1Family"); - DMI_IGNORE("123456789"); - - /* ASUS socket 775 MB */ - DMI_IGNORE("Asset-1234567890"); - DMI_IGNORE("MB-1234567890"); - DMI_IGNORE("Chassis Serial Number"); - DMI_IGNORE("Chassis Version"); - DMI_IGNORE("Chassis Manufacture"); - - /* Zotac version nonsense */ - p = chk; - while (*p != 0) { *p = 'x'; p++; } /* all X */ - DMI_IGNORE(chk); - p = chk; - while (*p != 0) { *p = '0'; p++; } /* all 0 */ - DMI_IGNORE(chk); - - /*... more, I'm sure. */ - - g_free(chk); - return 0; -} - -static const char *dmi_sysfs_root(void) { - char *candidates[] = { - "/sys/devices/virtual/dmi", - "/sys/class/dmi", - NULL - }; - int i = 0; - while (candidates[i] != NULL) { - if(access(candidates[i], F_OK) != -1) - return candidates[i]; - i++; - } - return NULL; -} - -int dmi_str_status(const char *id_str) { - gchar *str = dmi_get_str_abs(id_str); - int ret = 1; - - if (!str) - ret = 0; - - if ( ignore_placeholder_strings(&str) > 0 ) - ret = -1; - - g_free(str); - return ret; -} - -char *dmi_get_str(const char *id_str) { - gchar *ret = dmi_get_str_abs(id_str); - /* return NULL on empty */ - if (ret && *ret == 0) { - g_free(ret); - ret = NULL; - } - ignore_placeholder_strings(&ret); - return ret; -} - -char *dmi_get_str_abs(const char *id_str) { - static struct { - char *id; - char *path; - } tab_dmi_sysfs[] = { - /* dmidecode -> sysfs */ - { "bios-release-date", "id/bios_date" }, - { "bios-vendor", "id/bios_vendor" }, - { "bios-version", "id/bios_version" }, - { "baseboard-product-name", "id/board_name" }, - { "baseboard-manufacturer", "id/board_vendor" }, - { "baseboard-version", "id/board_version" }, - { "baseboard-serial-number", "id/board_serial" }, - { "baseboard-asset-tag", "id/board_asset_tag" }, - { "system-product-name", "id/product_name" }, - { "system-manufacturer", "id/sys_vendor" }, - { "system-serial-number", "id/product_serial" }, - { "system-product-family", "id/product_family" }, - { "system-version", "id/product_version" }, - { "system-uuid", "product_uuid" }, - { "system-sku", "id/product_sku" }, /*dmidecode doesn't actually support this one*/ - { "chassis-type", "id/chassis_type" }, - { "chassis-serial-number", "id/chassis_serial" }, - { "chassis-manufacturer", "id/chassis_vendor" }, - { "chassis-version", "id/chassis_version" }, - { "chassis-asset-tag", "id/chassis_asset_tag" }, - { NULL, NULL } - }; - const gchar *dmi_root = dmi_sysfs_root(); - gchar *ret = NULL; - gchar full_path[PATH_MAX]; - gboolean spawned; - gchar *out, *err; - - int i = 0; - - /* try sysfs first */ - if (dmi_root) { - while (tab_dmi_sysfs[i].id != NULL) { - if (strcmp(id_str, tab_dmi_sysfs[i].id) == 0) { - snprintf(full_path, PATH_MAX, "%s/%s", dmi_root, tab_dmi_sysfs[i].path); - if (g_file_get_contents(full_path, &ret, NULL, NULL) ) - goto dmi_str_done; - } - i++; - } - } - - /* try dmidecode, but may require root */ - snprintf(full_path, PATH_MAX, "dmidecode -s %s", id_str); - spawned = hardinfo_spawn_command_line_sync(full_path, - &out, &err, &i, NULL); - if (spawned) { - if (i == 0) - ret = out; - else - g_free(out); - - g_free(err); - } - -dmi_str_done: - if (ret != NULL) { - ret = strend(ret, '\n'); - ret = g_strstrip(ret); - } - return ret; -} - -char *dmi_chassis_type_str(int chassis_type, gboolean with_val) { - static const char *types[] = { - N_("Invalid chassis type (0)"), - N_("Unknown chassis type"), /* 1 is "Other", but not helpful in HardInfo */ - N_("Unknown chassis type"), - N_("Desktop"), - N_("Low-profile Desktop"), - N_("Pizza Box"), - N_("Mini Tower"), - N_("Tower"), - N_("Portable"), - N_("Laptop"), - N_("Notebook"), - N_("Handheld"), - N_("Docking Station"), - N_("All-in-one"), - N_("Subnotebook"), - N_("Space-saving"), - N_("Lunch Box"), - N_("Main Server Chassis"), - N_("Expansion Chassis"), - N_("Sub Chassis"), - N_("Bus Expansion Chassis"), - N_("Peripheral Chassis"), - N_("RAID Chassis"), - N_("Rack Mount Chassis"), - N_("Sealed-case PC"), - N_("Multi-system"), - N_("CompactPCI"), - N_("AdvancedTCA"), - N_("Blade"), - N_("Blade Enclosing"), - N_("Tablet"), - N_("Convertible"), - N_("Detachable"), - N_("IoT Gateway"), - N_("Embedded PC"), - N_("Mini PC"), - N_("Stick PC"), - }; - - if (chassis_type <= 0) { - gchar *chassis = dmi_get_str("chassis-type"); - if (chassis) { - chassis_type = atoi(chassis); - g_free(chassis); - } else - chassis_type = -1; - } - - if (chassis_type >= 0 && chassis_type < (int)G_N_ELEMENTS(types)) { - if (with_val) - return g_strdup_printf("[%d] %s", chassis_type, _(types[chassis_type])); - - return g_strdup(_(types[chassis_type])); - } - return NULL; -} - -/* TODO: something better maybe */ -static char *dd_cache[128] = {}; -void dmidecode_cache_free() -{ int i; for(i = 0; i < 128; i++) g_free(dd_cache[i]); } - -char *dmidecode_read(const dmi_type *type) { - gchar *ret = NULL; - gchar full_path[PATH_MAX]; - gboolean spawned; - gchar *out, *err; - - int i = 0; - - if (type) { - if (dd_cache[*type]) - return g_strdup(dd_cache[*type]); - snprintf(full_path, PATH_MAX, "dmidecode -t %"PRId32, *type); - } else { - if (dd_cache[127]) - return g_strdup(dd_cache[127]); - snprintf(full_path, PATH_MAX, "dmidecode"); - } - - spawned = hardinfo_spawn_command_line_sync(full_path, - &out, &err, &i, NULL); - if (spawned) { - if (i == 0) - ret = out; - else - g_free(out); - - g_free(err); - } - - if (ret) { - if (type) - dd_cache[*type] = g_strdup(ret); - else - dd_cache[127] = g_strdup(ret); - } - - return ret; -} - -dmi_handle_list *dmi_handle_list_add(dmi_handle_list *hl, dmi_handle_ext new_handle_ext) { - if (new_handle_ext.type < G_N_ELEMENTS(dmi_type_strings) ) - new_handle_ext.type_str = dmi_type_strings[new_handle_ext.type]; - if (!hl) { - hl = malloc(sizeof(dmi_handle_list)); - hl->count = 1; - hl->handles = malloc(sizeof(dmi_handle) * hl->count); - hl->handles_ext = malloc(sizeof(dmi_handle_ext) * hl->count); - } else { - hl->count++; - hl->handles = realloc(hl->handles, sizeof(dmi_handle) * hl->count); - hl->handles_ext = realloc(hl->handles_ext, sizeof(dmi_handle_ext) * hl->count); - } - hl->handles_ext[hl->count - 1] = new_handle_ext; - hl->handles[hl->count - 1] = new_handle_ext.id; - - return hl; -} - -dmi_handle_list *dmidecode_handles(const dmi_type *type) { - gchar *full = NULL, *p = NULL, *next_nl = NULL; - dmi_handle_list *hl = NULL; - - // Handle 0x003B, DMI type 9, 17 bytes - - full = dmidecode_read(type); - if (full) { - p = full; - while(next_nl = strchr(p, '\n')) { - unsigned int ch = 0, ct = 0, cb = 0; - strend(p, '\n'); - if (sscanf(p, "Handle 0x%X, DMI type %u, %u bytes", &ch, &ct, &cb) > 0) { - if (type && !ct) ct = *type; - hl = dmi_handle_list_add(hl, (dmi_handle_ext){.id = ch, .type = ct, .size = cb}); - } - p = next_nl + 1; - } - free(full); - } - return hl; -} - -void dmi_handle_list_free(dmi_handle_list *hl) { - if (hl) { - free(hl->handles); - free(hl->handles_ext); - } - free(hl); -} - -char *dmidecode_match(const char *name, const dmi_type *type, const dmi_handle *handle) { - gchar *ret = NULL, *full = NULL, *p = NULL, *next_nl = NULL; - unsigned int ch = 0; - int ln = 0; - - if (!name) return NULL; - ln = strlen(name); - - full = dmidecode_read(type); - if (full) { - p = full; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - if (!(sscanf(p, "Handle 0x%X", &ch) > 0) ) { - if (!handle || *handle == ch) { - while(*p == '\t') p++; - if (strncmp(p, name, ln) == 0) { - if (*(p + ln) == ':') { - p = p + ln + 1; - while(*p == ' ') p++; - ret = strdup(p); - break; - } - } - } - } - p = next_nl + 1; - } - free(full); - } - - return ret; -} - -dmi_handle_list *dmidecode_match_value(const char *name, const char *value, const dmi_type *type) { - dmi_handle_list *hl = NULL; - gchar *full = NULL, *p = NULL, *next_nl = NULL; - unsigned int ch = 0, ct = 0, cb = 0; - int ln = 0, lnv = 0; - - if (!name) return NULL; - ln = strlen(name); - lnv = (value) ? strlen(value) : 0; - - full = dmidecode_read(type); - if (full) { - p = full; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - if (!(sscanf(p, "Handle 0x%X, DMI type %u, %u bytes", &ch, &ct, &cb) > 0)) { - while(*p == '\t') p++; - if (strncmp(p, name, ln) == 0) { - if (*(p + ln) == ':') { - p = p + ln + 1; - while(*p == ' ') p++; - if (!value || strncmp(p, value, lnv) == 0) - hl = dmi_handle_list_add(hl, (dmi_handle_ext){.id = ch, .type = ct, .size = cb}); - } - } - } - p = next_nl + 1; - } - free(full); - } - - return hl; -} diff --git a/hardinfo/dt_util.c b/hardinfo/dt_util.c deleted file mode 100644 index 1f65d9c6..00000000 --- a/hardinfo/dt_util.c +++ /dev/null @@ -1,1187 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2007 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * Device Tree support by Burt P. - * Sources: - * http://elinux.org/Device_Tree_Usage - * http://elinux.org/Device_Tree_Mysteries - */ -#include -#include -#include /* for PRIu64 */ -#include -#include "hardinfo.h" -#include "dt_util.h" -#include "appf.h" - -static struct { - char *name; int type; -} prop_types[] = { - { "name", DTP_STR }, - { "compatible", DTP_STR }, - { "model", DTP_STR }, - { "reg", DTP_REG }, - { "clocks", DTP_CLOCKS }, - { "gpios", DTP_GPIOS }, - { "cs-gpios", DTP_GPIOS }, - { "phandle", DTP_PH }, - { "interrupts", DTP_INTRUPT }, - { "interrupts-extended", DTP_INTRUPT_EX }, - { "interrupt-parent", DTP_PH_REF }, - { "interrupt-controller", DTP_EMPTY }, - { "regulator-min-microvolt", DTP_UINT }, - { "regulator-max-microvolt", DTP_UINT }, - { "clock-frequency", DTP_UINT }, - { "dmas", DTP_DMAS }, - { "dma-channels", DTP_UINT }, - { "dma-requests", DTP_UINT }, - - /* operating-points-v2: */ - /* https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt */ - { "operating-points-v2", DTP_PH_REF_OPP2 }, - { "opp-hz", DTP_UINT64 }, - { "opp-microvolt", DTP_UINT }, - { "opp-microvolt-L0", DTP_UINT }, /* opp-microvolt-, but this kind of */ - { "opp-microvolt-L1", DTP_UINT }, /* wildcard matching isn't supported yet */ - { "opp-microamp", DTP_UINT }, - { "clock-latency-ns", DTP_UINT }, - - { NULL, 0 }, -}; - -static struct { - char *name; uint32_t v; -} default_values[] = { - { "#address-cells", 2 }, - { "#size-cells", 1 }, - { "#dma-cells", 1 }, - { NULL, 0 }, -}; - -struct _dtr_map { - uint32_t v; /* phandle */ - char *label; /* alias */ - char *path; - struct _dtr_map *next; -}; -typedef struct _dtr_map dtr_map; - -struct _dtr { - dtr_map *aliases; - dtr_map *symbols; - dtr_map *phandles; - char *base_path; - char *log; -}; - -struct _dtr_obj { - char *path; - union { - void *data; - char *data_str; - dt_uint *data_int; - dt_uint64 *data_int64; - }; - char *name; - uint32_t length; - int type; - char *prefix; /* if the name has a manufacturer's prefix or null */ - char *np_name; /* the name without any prefix. points into .prefix or .name, do not free */ - const char *alias; /* null until first dtr_obj_alias(). do not free */ - const char *symbol; /* null until first dtr_obj_symbol(). do not free */ - dtr *dt; -}; - -dtr_map *dtr_map_add(dtr_map *map, uint32_t v, const char *label, const char *path) { - dtr_map *it; - dtr_map *nmap = malloc(sizeof(dtr_map)); - memset(nmap, 0, sizeof(dtr_map)); - nmap->v = v; - - if (label != NULL) nmap->label = strdup(label); - if (path != NULL) nmap->path = strdup(path); - if (map == NULL) - return nmap; - - it = map; - while(it->next != NULL) - it = it->next; - it->next = nmap; - - return nmap; -} - -void dtr_map_free(dtr_map *map) { - dtr_map *it; - while(map != NULL) { - it = map->next; - free(map->label); - free(map->path); - free(map); - map = it; - } -} - -/* simple sort for maps - * sv: 1 = sort by v, 0 = sort by label */ -void dtr_map_sort(dtr_map *map, int sv) -{ - int done = 0, cmp; - dtr_map *this, *next, *top = NULL, *next_top; - uint32_t tmp_v; - char *tmp_l, *tmp_p; - if (map == NULL) return; - do { - this = map; - next_top = NULL; - while(this != NULL) { - next = this->next; - if (this == top) - break; - if (next == NULL) - break; - if (sv) - cmp = (this->v > next->v) ? 1 : 0; - else - cmp = strcmp(this->label, next->label); - if (cmp > 0) { - tmp_v = this->v; this->v = next->v; next->v = tmp_v; - tmp_l = this->label; this->label = next->label; next->label = tmp_l; - tmp_p = this->path; this->path = next->path; next->path = tmp_p; - next_top = this; - } - this = next; - } - if (next_top == NULL) - done = 1; - else - top = next_top; - } while (!done); -} - -const char *dtr_phandle_lookup(dtr *s, uint32_t v) { - dtr_map *phi = s->phandles; - /* 0 and 0xffffffff are invalid phandle values */ - /* TODO: perhaps "INVALID" or something */ - if (v == 0 || v == 0xffffffff) - return NULL; - while(phi != NULL) { - if (phi->v == v) - return phi->path; - phi = phi->next; - } - return NULL; -} - -const char *dtr_alias_lookup(dtr *s, const char* label) { - dtr_map *ali = s->aliases; - while(ali != NULL) { - if (strcmp(ali->label, label) == 0) - return ali->path; - ali = ali->next; - } - return NULL; -} - -const char *dtr_alias_lookup_by_path(dtr *s, const char* path) { - dtr_map *ali = s->aliases; - while(ali != NULL) { - if (strcmp(ali->path, path) == 0) - return ali->label; - ali = ali->next; - } - return NULL; -} - -const char *dtr_symbol_lookup_by_path(dtr *s, const char* path) { - dtr_map *ali = s->symbols; - while(ali != NULL) { - if (strcmp(ali->path, path) == 0) - return ali->label; - ali = ali->next; - } - return NULL; -} - -void _dtr_read_aliases(dtr *); -void _dtr_read_symbols(dtr *); -void _dtr_map_phandles(dtr *, char *np); -int dtr_inh_find(dtr_obj *obj, char *qprop, int limit); -#define UMIN(a,b) MIN(((uint32_t)(a)), ((uint32_t)(b))) - -const char *dtr_find_device_tree_root() { - char *candidates[] = { - "/proc/device-tree", - "/sys/firmware/devicetree/base", - /* others? */ - NULL - }; - int i = 0; - while (candidates[i] != NULL) { - if(access(candidates[i], F_OK) != -1) - return candidates[i]; - i++; - } - return NULL; -} - -dtr *dtr_new_x(const char *base_path, int fast) { - dtr *dt = malloc(sizeof(dtr)); - if (dt != NULL) { - memset(dt, 0, sizeof(dtr)); - dt->log = strdup(""); - - if (base_path == NULL) - base_path = DTR_ROOT; - - if (base_path != NULL) - dt->base_path = strdup(base_path); - else { - dtr_msg(dt, "%s", "Device Tree not found."); - return dt; - } - - /* build alias and phandle lists */ - dt->aliases = NULL; - dt->symbols = NULL; - dt->phandles = NULL; - if (!fast) { - _dtr_read_aliases(dt); - _dtr_read_symbols(dt); - _dtr_map_phandles(dt, ""); - } - } - return dt; -} - -dtr *dtr_new(const char *base_path) { - return dtr_new_x(base_path, 0); -} - -void dtr_free(dtr *s) { - if (s != NULL) { - dtr_map_free(s->aliases); - dtr_map_free(s->symbols); - dtr_map_free(s->phandles); - free(s->base_path); - free(s->log); - free(s); - } -} - -int dtr_was_found(dtr *s) { - if (s != NULL) { - if (s->base_path != NULL) - return 1; - } - return 0; -} - -void dtr_msg(dtr *s, char *fmt, ...) { - gchar *buf, *tmp; - va_list args; - - va_start(args, fmt); - buf = g_strdup_vprintf(fmt, args); - va_end(args); - - tmp = g_strdup_printf("%s%s", s->log, buf); - g_free(s->log); - s->log = tmp; -} - -char *dtr_messages(dtr *s) { - if (s != NULL) - return strdup(s->log); - else - return NULL; -} - -const char *dtr_base_path(dtr *s) { - if (s) - return s->base_path; - return NULL; -} - -/*glib, but _dt_obj *prop uses malloc() and std types */ -dtr_obj *dtr_obj_read(dtr *s, const char *dtp) { - char *full_path; - char *slash, *coma; - dtr_obj *obj; - - if (dtp == NULL) - return NULL; - - obj = malloc(sizeof(dtr_obj)); - if (obj != NULL) { - memset(obj, 0, sizeof(dtr_obj)); - - obj->dt = s; - if (*dtp != '/') { - /* doesn't start with slash, use alias */ - obj->path = (char*)dtr_alias_lookup(s, dtp); - if (obj->path != NULL) - obj->path = strdup(obj->path); - else { - dtr_obj_free(obj); - return NULL; - } - } else - obj->path = strdup(dtp); - - /* find name after last slash, or start */ - slash = strrchr(obj->path, '/'); - if (slash != NULL) - obj->name = strdup(slash + 1); - else - obj->name = strdup(obj->path); - - /* find manufacturer prefix */ - obj->prefix = strdup(obj->name); - coma = strchr(obj->prefix, ','); - if (coma != NULL) { - /* coma -> null; .np_name starts after */ - *coma = 0; - obj->np_name = coma + 1; - } else { - obj->np_name = obj->name; - free(obj->prefix); - obj->prefix = NULL; - } - - /* read data */ - full_path = g_strdup_printf("%s%s", s->base_path, obj->path); - if ( g_file_test(full_path, G_FILE_TEST_IS_DIR) ) { - obj->type = DT_NODE; - } else { - if (!g_file_get_contents(full_path, (gchar**)&obj->data, (gsize*)&obj->length, NULL)) { - dtr_obj_free(obj); - g_free(full_path); - return NULL; - } - obj->type = dtr_guess_type(obj); - } - g_free(full_path); - - return obj; - } - return NULL; -} - -void dtr_obj_free(dtr_obj *s) { - if (s != NULL) { - free(s->path); - free(s->name); - free(s->prefix); - free(s->data); - free(s); - } -} - -int dtr_obj_type(dtr_obj *s) { - if (s) - return s->type; - return DT_TYPE_ERR; -} - -char *dtr_obj_alias(dtr_obj *s) { - if (s) { - if (s->alias == NULL) - s->alias = dtr_alias_lookup_by_path(s->dt, s->path); - return (char*)s->alias; - } - return NULL; -} - -char *dtr_obj_symbol(dtr_obj *s) { - if (s) { - if (s->symbol == NULL) - s->symbol = dtr_symbol_lookup_by_path(s->dt, s->path); - return (char*)s->symbol; - } - return NULL; -} - -char *dtr_obj_path(dtr_obj *s) { - if (s) - return s->path; - return NULL; -} - -char *dtr_obj_full_path(dtr_obj *s) { - if (s) { - if (strcmp(s->path, "/") == 0) - return g_strdup_printf("%s", s->dt->base_path); - else - return g_strdup_printf("%s%s", s->dt->base_path, s->path); - } - return NULL; -} - -dtr_obj *dtr_get_prop_obj(dtr *s, dtr_obj *node, const char *name) { - dtr_obj *prop; - char *ptmp; - ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); - prop = dtr_obj_read(s, ptmp); - g_free(ptmp); - return prop; -} - -char *dtr_get_prop_str(dtr *s, dtr_obj *node, const char *name) { - dtr_obj *prop; - char *ptmp; - char *ret = NULL; - - ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); - prop = dtr_obj_read(s, ptmp); - if (prop != NULL && prop->data != NULL) { - ret = strdup(prop->data_str); - dtr_obj_free(prop); - } - g_free(ptmp); - return ret; -} - -char *dtr_get_string(const char *p, int decode) { - dtr *dt = dtr_new_x(NULL, 1); - dtr_obj *obj; - char *ret = NULL; - if (decode) { - obj = dtr_get_prop_obj(dt, NULL, p); - ret = dtr_str(obj); - dtr_obj_free(obj); - } else - ret = dtr_get_prop_str(dt, NULL, p); - dtr_free(dt); - return ret; -} - -uint32_t dtr_get_prop_u32(dtr *s, dtr_obj *node, const char *name) { - dtr_obj *prop; - char *ptmp; - uint32_t ret = 0; - - ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); - prop = dtr_obj_read(s, ptmp); - if (prop != NULL) { - if (prop->data != NULL) - ret = be32toh(*prop->data_int); - dtr_obj_free(prop); - } - g_free(ptmp); - return ret; -} - -uint64_t dtr_get_prop_u64(dtr *s, dtr_obj *node, const char *name) { - dtr_obj *prop; - char *ptmp; - uint64_t ret = 0; - - ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); - prop = dtr_obj_read(s, ptmp); - if (prop != NULL) { - if (prop->data != NULL) - ret = be64toh(*prop->data_int64); - dtr_obj_free(prop); - } - g_free(ptmp); - return ret; -} - -int dtr_guess_type(dtr_obj *obj) { - char *tmp, *dash; - uint32_t i = 0, anc = 0, might_be_str = 1; - - if (obj->length == 0) - return DTP_EMPTY; - - /* special #(.*)-cells names are UINT */ - if (*obj->name == '#') { - dash = strrchr(obj->name, '-'); - if (dash != NULL) { - if (strcmp(dash, "-cells") == 0) - return DTP_UINT; - } - } - - /* /aliases/ * and /__symbols__/ * are always strings */ - if (strncmp(obj->path, "/aliases/", strlen("/aliases/") ) == 0) - return DTP_STR; - if (strncmp(obj->path, "/__symbols__/", strlen("/__symbols__/") ) == 0) - return DTP_STR; - - /* /__overrides__/ * */ - if (strncmp(obj->path, "/__overrides__/", strlen("/__overrides__/") ) == 0) - if (strcmp(obj->name, "name") != 0) - return DTP_OVR; - - /* lookup known type */ - while (prop_types[i].name != NULL) { - if (strcmp(obj->name, prop_types[i].name) == 0) - return prop_types[i].type; - i++; - } - - /* maybe a string? */ - for (i = 0; i < obj->length; i++) { - tmp = obj->data_str + i; - if ( isalnum(*tmp) ) anc++; /* count the alpha-nums */ - if ( isprint(*tmp) || *tmp == 0 ) - continue; - might_be_str = 0; - break; - } - if (might_be_str && - ( anc >= obj->length - 2 /* all alpha-nums but ^/ and \0$ */ - || anc >= 5 ) /*arbitrary*/) - return DTP_STR; - - /* multiple of 4 bytes, try list of hex values */ - if (!(obj->length % 4)) - return DTP_HEX; - - return DTP_UNK; -} - -char *dtr_elem_phref(dtr *s, dt_uint e, int show_path, const char *extra) { - const char *ph_path, *al_label; - char *ret = NULL; - ph_path = dtr_phandle_lookup(s, be32toh(e)); - if (ph_path != NULL) { - /* TODO: alias or symbol? */ - al_label = dtr_symbol_lookup_by_path(s, ph_path); - if (al_label != NULL) { - if (show_path) - ret = g_strdup_printf("&%s (%s) %s", al_label, ph_path, extra ? extra : ""); - else - ret = g_strdup_printf("&%s %s", al_label, extra ? extra : ""); - } else { - if (show_path) - ret = g_strdup_printf("0x%x (%s) %s", be32toh(e), ph_path, extra ? extra : ""); - } - } - if (ret == NULL) - ret = dtr_elem_hex(e); - return ret; -} - -char *dtr_elem_oppv2(dtr_obj* obj) { - char opp_str[512] = ""; - dtr_obj *parent = dtr_get_parent_obj(obj); - if (parent) { - dt_opp_range *opp = dtr_get_opp_range(obj->dt, parent->path); - if (opp) { - snprintf(opp_str, 511, "[%d - %d %s]", opp->khz_min, opp->khz_max, _("kHz")); - g_free(opp); - } - dtr_obj_free(parent); - } - return dtr_elem_phref(obj->dt, *obj->data_int, 1, opp_str); -} - -char *dtr_elem_hex(dt_uint e) { - return g_strdup_printf("0x%x", be32toh(e) ); -} - -char *dtr_elem_byte(uint8_t e) { - return g_strdup_printf("%x", e); -} - -char *dtr_elem_uint(dt_uint e) { - return g_strdup_printf("%u", be32toh(e) ); -} - -char *dtr_elem_uint64(dt_uint64 e) { - return g_strdup_printf("%" PRIu64, be64toh(e) ); -} - -char *dtr_list_byte(uint8_t *bytes, unsigned long count) { - char *ret, *dest; - char buff[4] = ""; /* max element: " 00\0" */ - uint32_t v; - unsigned long i, l; - l = count * 4 + 1; - ret = malloc(l); - memset(ret, 0, l); - strcpy(ret, "["); - dest = ret + 1; - for (i = 0; i < count; i++) { - v = bytes[i]; - l = sprintf(buff, "%s%02x", (i) ? " " : "", v); - strncpy(dest, buff, l); - dest += l; - } - strcpy(dest, "]"); - return ret; -} - -char *dtr_list_hex(dt_uint *list, unsigned long count) { - char *ret, *dest; - char buff[12] = ""; /* max element: " 0x00000000\0" */ - unsigned long i, l; - l = count * 12 + 1; - dest = ret = malloc(l); - memset(ret, 0, l); - for (i = 0; i < count; i++) { - l = sprintf(buff, "%s0x%x", (i) ? " " : "", be32toh(list[i])); - strncpy(dest, buff, l); - dest += l; - } - return ret; -} - -/*cstd, except for g_strescape()*/ -char *dtr_list_str0(const char *data, uint32_t length) { - char *tmp, *esc, *next_str; - char ret[1024] = ""; - uint32_t l, tl; - - /* treat as null-separated string list */ - tl = 0; - strcpy(ret, ""); - tmp = ret; - next_str = (char*)data; - while(next_str != NULL) { - l = strlen(next_str); - esc = g_strescape(next_str, NULL); - sprintf(tmp, "%s\"%s\"", - strlen(ret) ? ", " : "", esc); - free(esc); - tmp += strlen(tmp); - tl += l + 1; next_str += l + 1; - if (tl >= length) break; - } - - return strdup(ret); -} - -char *dtr_list_override(dtr_obj *obj) { - /* ... */ - char *ret = NULL; - char *ph, *str; - char *src; - uint32_t consumed = 0; - int l; - src = obj->data_str; - while (consumed + 5 <= obj->length) { - ph = dtr_elem_phref(obj->dt, *(dt_uint*)src, 1, NULL); - src += 4; consumed += 4; - l = strlen(src) + 1; /* consume the null */ - str = dtr_list_str0(src, l); - ret = appfsp(ret, "<%s -> %s>", ph, str); - src += l; consumed += l; - free(ph); - free(str); - } - if (consumed < obj->length) { - str = dtr_list_byte((uint8_t*)src, obj->length - consumed); - ret = appfsp(ret, "%s", str); - free(str); - } - return ret; -} - -uint32_t dtr_get_phref_prop(dtr *s, uint32_t phandle, char *prop) { - const char *ph_path; - char *tmp; - uint32_t ret; - ph_path = dtr_phandle_lookup(s, phandle); - tmp = g_strdup_printf("%s/%s", ph_path, prop); - ret = dtr_get_prop_u32(s, NULL, tmp); - free(tmp); - return ret; -} - -char *dtr_list_phref(dtr_obj *obj, char *ext_cell_prop) { - /* */ - int count = obj->length / 4; - int i = 0, ext_cells = 0; - char *ph, *ext, *ret = NULL; - - while (i < count) { - if (ext_cell_prop == NULL) - ext_cells = 0; - else - ext_cells = dtr_get_phref_prop(obj->dt, be32toh(obj->data_int[i]), ext_cell_prop); - ph = dtr_elem_phref(obj->dt, obj->data_int[i], 0, NULL); i++; - if (ext_cells > count - i) ext_cells = count - i; - ext = dtr_list_hex((obj->data_int + i), ext_cells); i+=ext_cells; - ret = appfsp(ret, "<%s%s%s>", - ph, (ext_cells) ? " " : "", ext); - g_free(ph); - g_free(ext); - } - return ret; -} - -char *dtr_list_interrupts(dtr_obj *obj) { - char *ext, *ret = NULL; - uint32_t iparent, icells; - int count, i = 0; - - iparent = dtr_inh_find(obj, "interrupt-parent", 0); - if (!iparent) { - dtr_msg(obj->dt, "Did not find an interrupt-parent for %s", obj->path); - goto intr_err; - } - icells = dtr_get_phref_prop(obj->dt, iparent, "#interrupt-cells"); - if (!icells) { - dtr_msg(obj->dt, "Invalid #interrupt-cells value %d for %s", icells, obj->path); - goto intr_err; - } - - count = obj->length / 4; - while (i < count) { - icells = UMIN(icells, count - i); - ext = dtr_list_hex((obj->data_int + i), icells); i+=icells; - ret = appfsp(ret, "<%s>", ext); - } - return ret; - -intr_err: - return dtr_list_hex(obj->data_int, obj->length); - -} - -char *dtr_list_reg(dtr_obj *obj) { - char *tup_str, *ret = NULL; - uint32_t acells, scells, tup_len; - uint32_t extra, consumed; /* bytes */ - uint32_t *next; - - acells = dtr_inh_find(obj, "#address-cells", 2); - scells = dtr_inh_find(obj, "#size-cells", 2); - tup_len = acells + scells; - extra = obj->length % (tup_len * 4); - consumed = 0; /* bytes */ - - //printf("list reg: %s\n ... acells: %u, scells: %u, extra: %u\n", obj->path, acells, scells, extra); - - if (extra) { - /* error: length is not a multiple of tuples */ - dtr_msg(obj->dt, "Data length (%u) is not a multiple of (#address-cells:%u + #size-cells:%u) for %s\n", - obj->length, acells, scells, obj->path); - return dtr_list_hex(obj->data, obj->length / 4); - } - - next = obj->data_int; - consumed = 0; - while (consumed + (tup_len * 4) <= obj->length) { - tup_str = dtr_list_hex(next, tup_len); - ret = appfsp(ret, "<%s>", tup_str); - free(tup_str); - consumed += (tup_len * 4); - next += tup_len; - } - - //printf(" ... %s\n", ret); - return ret; -} - -char* dtr_str(dtr_obj *obj) { - char *ret; - int type; - - if (obj == NULL) return NULL; - type = obj->type; - - if (type == DTP_PH_REF) { - if (!DTEX_PHREFS || obj->length != 4) - type = DTP_HEX; - } - - switch(type) { - case DT_NODE: - ret = strdup("{node}"); - break; - case DTP_EMPTY: - ret = strdup("{empty}"); - break; - case DTP_STR: - ret = dtr_list_str0(obj->data_str, obj->length); - break; - case DTP_OVR: - ret = dtr_list_override(obj); - break; - case DTP_REG: - /* <#address-cells #size-cells> */ - ret = dtr_list_reg(obj); - break; - case DTP_INTRUPT: - ret = dtr_list_interrupts(obj); - break; - case DTP_INTRUPT_EX: - /* */ - ret = dtr_list_phref(obj, "#interrupt-cells"); - break; - case DTP_CLOCKS: - /* */ - ret = dtr_list_phref(obj, "#clock-cells"); - break; - case DTP_GPIOS: - /* */ - ret = dtr_list_phref(obj, "#gpio-cells"); - break; - case DTP_DMAS: - /* */ - ret = dtr_list_phref(obj, "#dma-cells"); - break; - case DTP_PH: - case DTP_HEX: - if (obj->length % 4) - ret = dtr_list_byte((uint8_t*)obj->data, obj->length); - else - ret = dtr_list_hex(obj->data, obj->length / 4); - break; - case DTP_PH_REF: - ret = dtr_elem_phref(obj->dt, *obj->data_int, 1, NULL); - break; - case DTP_PH_REF_OPP2: - ret = dtr_elem_oppv2(obj); - break; - case DTP_UINT: - ret = dtr_elem_uint(*obj->data_int); - break; - case DTP_UINT64: - ret = dtr_elem_uint64(*obj->data_int64); - break; - case DTP_UNK: - default: - if (obj->length > 64) /* maybe should use #define at the top */ - ret = g_strdup_printf("{data} (%lu bytes)", (long unsigned int)obj->length); - else - ret = dtr_list_byte((uint8_t*)obj->data, obj->length); - break; - } - - return ret; -} - -dtr_obj *dtr_get_parent_obj(dtr_obj *obj) { - char *slash, *parent; - dtr_obj *ret = NULL; - - if (obj == NULL) - return NULL; - - parent = strdup(obj->path); - slash = strrchr(parent, '/'); - if (slash != NULL) { - *slash = 0; - if (strlen(parent) > 0) - ret = dtr_obj_read(obj->dt, parent); - else - ret = dtr_obj_read(obj->dt, "/"); - } - free(parent); - return ret; -} - -/* find the value of a path-inherited property by climbing the path */ -int dtr_inh_find(dtr_obj *obj, char *qprop, int limit) { - dtr_obj *tobj, *pobj = NULL, *qobj; - uint32_t ret = 0; - int i, found = 0; - - if (!limit) limit = 1000; - - tobj = obj; - while (tobj != NULL) { - pobj = dtr_get_parent_obj(tobj); - if (tobj != obj) - dtr_obj_free(tobj); - if (!limit || pobj == NULL) break; - qobj = dtr_get_prop_obj(obj->dt, pobj, qprop); - if (qobj != NULL) { - ret = be32toh(*qobj->data_int); - found = 1; - dtr_obj_free(qobj); - break; - } - tobj = pobj; - limit--; - } - dtr_obj_free(pobj); - - if (!found) { - i = 0; - while(default_values[i].name != NULL) { - if (strcmp(default_values[i].name, qprop) == 0) { - ret = default_values[i].v; - dtr_msg(obj->dt, "Using default value %d for %s in %s\n", ret, qprop, obj->path); - break; - } - i++; - } - } - - return ret; -} - -dt_opp_range *dtr_get_opp_range(dtr *s, const char *name) { - dt_opp_range *ret = NULL; - dtr_obj *obj = NULL, *table_obj = NULL, *row_obj = NULL; - uint32_t opp_ph = 0; - const char *opp_table_path = NULL; - char *tab_compat = NULL, *tab_status = NULL; - const gchar *fn; - gchar *full_path; - GDir *dir; - uint64_t khz = 0; - uint32_t lns = 0; - char *row_status = NULL; - uint32_t i = 0; - - if (!s) - return NULL; - - obj = dtr_obj_read(s, name); - if (!obj) - goto get_opp_finish; - - opp_ph = dtr_get_prop_u32(s, obj, "operating-points-v2"); /* OPPv2 */ - table_obj = dtr_get_prop_obj(s, obj, "operating-points"); /* OPPv1 */ - if (!opp_ph) { - if (table_obj) { - /* only v1 */ - ret = g_new0(dt_opp_range, 1); - ret->version = 1; - ret->clock_latency_ns = dtr_get_prop_u32(s, obj, "clock-latency"); - - /* pairs of (kHz,uV) */ - for (i = 0; i < table_obj->length; i += 2) { - khz = table_obj->data_int[i]; - if (khz > ret->khz_max) - ret->khz_max = khz; - if (khz < ret->khz_min || ret->khz_min == 0) - ret->khz_min = khz; - } - - } else { - /* is clock-frequency available? */ - khz = dtr_get_prop_u32(s, obj, "clock-frequency"); - if (khz) { - ret = g_new0(dt_opp_range, 1); - ret->version = 0; - ret->khz_max = khz; - ret->clock_latency_ns = dtr_get_prop_u32(s, obj, "clock-latency"); - } - } - goto get_opp_finish; - } else { - /* use v2 if both available */ - dtr_obj_free(table_obj); - table_obj = NULL; - } - - opp_table_path = dtr_phandle_lookup(s, opp_ph); - if (!opp_table_path) - goto get_opp_finish; - - table_obj = dtr_obj_read(s, opp_table_path); - if (!table_obj) - goto get_opp_finish; - - tab_compat = dtr_get_prop_str(s, table_obj, "compatible"); - tab_status = dtr_get_prop_str(s, table_obj, "status"); - - if (!tab_compat || strcmp(tab_compat, "operating-points-v2") != 0) - goto get_opp_finish; - if (tab_status && strcmp(tab_status, "disabled") == 0) - goto get_opp_finish; - - ret = g_new0(dt_opp_range, 1); - ret->version = 2; - ret->phandle = opp_ph; - - full_path = dtr_obj_full_path(table_obj); - dir = g_dir_open(full_path, 0 , NULL); - if (dir) { - while((fn = g_dir_read_name(dir)) != NULL) { - row_obj = dtr_get_prop_obj(s, table_obj, fn); - if (row_obj->type == DT_NODE) { - row_status = dtr_get_prop_str(s, row_obj, "status"); - if (!row_status || strcmp(row_status, "disabled") != 0) { - khz = dtr_get_prop_u64(s, row_obj, "opp-hz"); - khz /= 1000; /* 64b hz -> 32b khz */ - lns = dtr_get_prop_u32(s, row_obj, "clock-latency-ns"); - if (khz > ret->khz_max) - ret->khz_max = khz; - if (khz < ret->khz_min || ret->khz_min == 0) - ret->khz_min = khz; - ret->clock_latency_ns = lns; - } - } - free(row_status); row_status = NULL; - dtr_obj_free(row_obj); - row_obj = NULL; - } - g_dir_close(dir); - } - g_free(full_path); - -get_opp_finish: - dtr_obj_free(obj); - dtr_obj_free(table_obj); - free(tab_status); - free(tab_compat); - free(row_status); - return ret; -} - - -void _dtr_read_aliases(dtr *s) { - gchar *dir_path; - GDir *dir; - const gchar *fn; - dtr_obj *anode, *prop; - dtr_map *al; - anode = dtr_obj_read(s, "/aliases"); - - dir_path = g_strdup_printf("%s/aliases", s->base_path); - dir = g_dir_open(dir_path, 0 , NULL); - if (dir) { - while((fn = g_dir_read_name(dir)) != NULL) { - prop = dtr_get_prop_obj(s, anode, fn); - if (prop->type == DTP_STR) { - if (*prop->data_str == '/') { - al = dtr_map_add(s->aliases, 0, prop->name, prop->data_str); - if (s->aliases == NULL) - s->aliases = al; - } - } - dtr_obj_free(prop); - } - g_dir_close(dir); - } - g_free(dir_path); - dtr_obj_free(anode); - dtr_map_sort(s->aliases, 0); -} - -void _dtr_read_symbols(dtr *s) { - gchar *dir_path; - GDir *dir; - const gchar *fn; - dtr_obj *anode, *prop; - dtr_map *al; - anode = dtr_obj_read(s, "/__symbols__"); - - dir_path = g_strdup_printf("%s/__symbols__", s->base_path); - dir = g_dir_open(dir_path, 0 , NULL); - if (dir) { - while((fn = g_dir_read_name(dir)) != NULL) { - prop = dtr_get_prop_obj(s, anode, fn); - if (prop->type == DTP_STR) { - if (*prop->data_str == '/') { - al = dtr_map_add(s->symbols, 0, prop->name, prop->data_str); - if (s->symbols == NULL) - s->symbols = al; - } - } - dtr_obj_free(prop); - } - g_dir_close(dir); - } - g_free(dir_path); - dtr_obj_free(anode); - dtr_map_sort(s->symbols, 0); -} - -/* TODO: rewrite */ -void _dtr_map_phandles(dtr *s, char *np) { - gchar *dir_path; - gchar *ftmp, *ntmp, *ptmp; - const gchar *fn; - GDir *dir; - dtr_obj *prop, *ph_prop; - dtr_map *ph; - - if (np == NULL) np = ""; - dir_path = g_strdup_printf("%s/%s", s->base_path, np); - - prop = dtr_obj_read(s, np); - dir = g_dir_open(dir_path, 0 , NULL); - if (dir) { - while((fn = g_dir_read_name(dir)) != NULL) { - ftmp = g_strdup_printf("%s/%s", dir_path, fn); - if ( g_file_test(ftmp, G_FILE_TEST_IS_DIR) ) { - ntmp = g_strdup_printf("%s/%s", np, fn); - ptmp = g_strdup_printf("%s/phandle", ntmp); - ph_prop = dtr_obj_read(s, ptmp); - if (ph_prop != NULL) { - ph = dtr_map_add(s->phandles, be32toh(*ph_prop->data_int), NULL, ntmp); - if (s->phandles == NULL) - s->phandles = ph; - } - _dtr_map_phandles(s, ntmp); - g_free(ptmp); - g_free(ntmp); - dtr_obj_free(ph_prop); - } - g_free(ftmp); - } - g_dir_close(dir); - } - dtr_obj_free(prop); - dtr_map_sort(s->phandles, 1); -} - -/* - * Maybe these should move to devicetree.c, but would have to expose - * struct internals. - */ - -/* kvl: 0 = key is label, 1 = key is v */ -char *dtr_map_info_section(dtr *s, dtr_map *map, char *title, int kvl) { - gchar *tmp, *ret; - const gchar *sym; - ret = g_strdup_printf("[%s]\n", _(title)); - dtr_map *it = map; - while(it != NULL) { - if (kvl) { - sym = dtr_symbol_lookup_by_path(s, it->path); - if (sym != NULL) - tmp = g_strdup_printf("%s0x%x (%s)=%s\n", ret, - it->v, sym, it->path); - else - tmp = g_strdup_printf("%s0x%x=%s\n", ret, - it->v, it->path); - } else - tmp = g_strdup_printf("%s%s=%s\n", ret, - it->label, it->path); - g_free(ret); - ret = tmp; - it = it->next; - } - - return ret; -} - -char *dtr_maps_info(dtr *s) { - gchar *ph_map, *al_map, *sy_map, *ret; - - ph_map = dtr_map_info_section(s, s->phandles, _("phandle Map"), 1); - al_map = dtr_map_info_section(s, s->aliases, _("Alias Map"), 0); - sy_map = dtr_map_info_section(s, s->symbols, _("Symbol Map"), 0); - ret = g_strdup_printf("%s%s%s", ph_map, sy_map, al_map); - g_free(ph_map); - g_free(al_map); - g_free(sy_map); - return ret; -} diff --git a/hardinfo/expr.c b/hardinfo/expr.c deleted file mode 100644 index 83e1e02c..00000000 --- a/hardinfo/expr.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2007 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ -/* - * This is only used to compute sensor values, hence the only variable supported is '@'. - * The '`' operator (ln(x)) is not available, nor multi-line formulas. - */ - -#include -#include -#include -#include -#include - -#include "expr.h" -#include "config.h" - -static MathToken *new_operator(gchar op) -{ - MathToken *t = g_new0(MathToken, 1); - - t->val.op = op; - t->type = TOKEN_OPERATOR; /* operator */ - - return t; -} - -static MathToken *new_variable(gchar var) -{ - MathToken *t = g_new0(MathToken, 1); - - t->val.op = '@'; - t->type = TOKEN_VARIABLE; /* variable */ - - return t; -} - -static MathToken *new_value(gfloat value) -{ - MathToken *t = g_new0(MathToken, 1); - - t->val.value = value; - t->type = TOKEN_VALUE; /* value */ - - return t; -} - -static inline gint priority(char operation) -{ - switch (operation) { - case '^': - return 3; - case '*': - case '/': - return 2; - case '+': - case '-': - return 1; - case '(': - return 0; - } - - return 0; -} - -GSList *math_infix_to_postfix(GSList * infix) -{ - MathToken *stack[500]; - gint t_sp = 0; - - GSList *postfix = NULL, *p; - MathToken *top; - - for (p = infix; p; p = p->next) { - MathToken *t = (MathToken *) p->data; - - if (t->type == TOKEN_OPERATOR && t->val.op == '(') { - stack[++t_sp] = t; - } else if (t->type == TOKEN_OPERATOR && t->val.op == ')') { - for (top = stack[t_sp]; t_sp != 0 && top->val.op != '('; - top = stack[t_sp]) { - postfix = g_slist_append(postfix, stack[t_sp--]); - } - t_sp--; - } else if (t->type != TOKEN_OPERATOR) { - postfix = g_slist_append(postfix, t); - } else if (t_sp == 0) { - stack[++t_sp] = t; - } else { - while (t_sp != 0 - && priority(t->val.op) <= priority(stack[t_sp]->val.op)) - postfix = g_slist_append(postfix, stack[t_sp--]); - stack[++t_sp] = t; - } - } - - while (t_sp) - postfix = g_slist_append(postfix, stack[t_sp--]); - - return postfix; -} - -static inline gfloat __result(gfloat op1, gfloat op2, gchar operation) -{ - switch (operation) { - case '^': - return powf(op1, op2); - case '+': - return op1 + op2; - case '-': - return op1 - op2; - case '/': - return op1 / op2; - case '*': - return op1 * op2; - } - - return 0; -} - -gfloat math_postfix_eval(GSList * postfix, gfloat at_value) -{ - GSList *p; - gfloat stack[500]; - gint sp = 0; - - memset(stack, 0, sizeof(gfloat) * 500); - - for (p = postfix; p; p = p->next) { - MathToken *t = (MathToken *) p->data; - - if (t->type == TOKEN_VARIABLE) { - stack[++sp] = at_value; - } else if (t->type == TOKEN_VALUE) { - stack[++sp] = t->val.value; - } else { - gfloat op1, op2; - - op2 = stack[sp--]; - op1 = stack[sp]; - - stack[sp] = __result(op1, op2, t->val.op); - } - } - - return stack[sp]; -} - -GSList *math_string_to_infix(gchar * string) -{ - GSList *infix = NULL; - gchar *expr = string; - - for (; *expr; expr++) { - if (strchr("+-/*^()", *expr)) { - infix = g_slist_append(infix, new_operator(*expr)); - } else if (strchr("@", *expr)) { - infix = g_slist_append(infix, new_variable(*expr)); - } else if (strchr("-.1234567890", *expr)) { - gchar value[32], *v = value; - gfloat floatval; - - do { - *v++ = *expr++; - } while (*expr && strchr("-.1234567890", *expr)); - expr--; - *v = '\0'; - - sscanf(value, "%f", &floatval); - - infix = g_slist_append(infix, new_value(floatval)); - } else if (!isspace(*expr)) { - g_print("Invalid token: [%c][%d]\n", *expr, *expr); - math_infix_free(infix, TRUE); - return NULL; - } - } - - return infix; -} - -void math_infix_free(GSList * infix, gboolean free_tokens) -{ - GSList *p; - - if (!free_tokens) - for (p = infix; p; p = g_slist_delete_link(p, p)); - else - for (p = infix; p; p = g_slist_delete_link(p, p)) { - MathToken *t = (MathToken *) p->data; - g_free(t); - } -} - -GSList *math_string_to_postfix(gchar * string) -{ - GSList *infix; - GSList *postfix; - - infix = math_string_to_infix(string); - if (!infix) - return NULL; - - postfix = math_infix_to_postfix(infix); - math_infix_free(infix, FALSE); - - return postfix; -} - -gfloat math_string_eval(gchar * string, gfloat at_value) -{ - GSList *postfix; - gfloat val; - - postfix = math_string_to_postfix(string); - val = math_postfix_eval(postfix, at_value); - math_postfix_free(postfix, TRUE); - - return val; -} - -#ifdef MATH_TEST -int main(void) -{ - GSList *postfix; - - gchar *expr = "0.9*(@+(5.2*0.923+3*(2.0)))"; - - postfix = math_string_to_postfix(expr); - g_print("%s = %f (must be 18.71964)\n", expr, - math_postfix_eval(postfix, 10)); - math_postfix_free(postfix, TRUE); - - return 0; -} -#endif diff --git a/hardinfo/gg_key_file_parse_string_as_value.c b/hardinfo/gg_key_file_parse_string_as_value.c deleted file mode 100644 index 7e871bc1..00000000 --- a/hardinfo/gg_key_file_parse_string_as_value.c +++ /dev/null @@ -1,111 +0,0 @@ -/* From: gkeyfile.c - key file parser - * - * Copyright 2004 Red Hat, Inc. - * Copyright 2009-2010 Collabora Ltd. - * Copyright 2009 Nokia Corporation - * - * Written by Ray Strode - * Matthias Clasen - * - * This library 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; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 library; if not, see . - */ - -#include - -gchar * -gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator) -{ - gchar *value, *p, *q; - gsize length; - gboolean parsing_leading_space; - - length = strlen (string) + 1; - - /* Worst case would be that every character needs to be escaped. - * In other words every character turns to two characters. */ - value = g_new (gchar, 2 * length); - - p = (gchar *) string; - q = value; - parsing_leading_space = TRUE; - while (p < (string + length - 1)) - { - gchar escaped_character[3] = { '\\', 0, 0 }; - - switch (*p) - { - case ' ': - if (parsing_leading_space) - { - escaped_character[1] = 's'; - strcpy (q, escaped_character); - q += 2; - } - else - { - *q = *p; - q++; - } - break; - case '\t': - if (parsing_leading_space) - { - escaped_character[1] = 't'; - strcpy (q, escaped_character); - q += 2; - } - else - { - *q = *p; - q++; - } - break; - case '\n': - escaped_character[1] = 'n'; - strcpy (q, escaped_character); - q += 2; - break; - case '\r': - escaped_character[1] = 'r'; - strcpy (q, escaped_character); - q += 2; - break; - case '\\': - escaped_character[1] = '\\'; - strcpy (q, escaped_character); - q += 2; - parsing_leading_space = FALSE; - break; - default: - if (list_separator && *p == list_separator) - { - escaped_character[1] = list_separator; - strcpy (q, escaped_character); - q += 2; - parsing_leading_space = TRUE; - } - else - { - *q = *p; - q++; - parsing_leading_space = FALSE; - } - break; - } - p++; - } - *q = '\0'; - - return value; -} diff --git a/hardinfo/gg_strescape.c b/hardinfo/gg_strescape.c deleted file mode 100644 index ada9cf89..00000000 --- a/hardinfo/gg_strescape.c +++ /dev/null @@ -1,138 +0,0 @@ -/* Base on: GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include - -guchar excmap_def[256] = {1,0}; -static void make_excmap_def() { - int i; - for(i=0; i<256; i++){ - switch ((guchar)i) - { - case '\b': - case '\f': - case '\n': - case '\r': - case '\t': - case '\\': - case '"': - excmap_def[i] = 0; - break; - default: - if ((i < ' ') || (i >= 0177)) - excmap_def[i] = 0; - else - excmap_def[i] = 1; - break; - } - } -} - -gchar * -gg_strescape (const gchar *source, - const gchar *exceptions, - const gchar *extra) -{ - const guchar *p; - gchar *dest; - gchar *q; - guchar excmap[256]; - - g_return_val_if_fail (source != NULL, NULL); - - if (excmap_def[0]) /* [0] should be 0 or it isn't initialized */ - make_excmap_def(); - - memcpy(excmap, excmap_def, 256); - - p = (guchar *) source; - /* Each source byte needs maximally four destination chars (\777) */ - q = dest = g_malloc (strlen (source) * 4 + 1); - - if (exceptions) - { - guchar *e = (guchar *) exceptions; - - while (*e) - { - excmap[*e] = 1; - e++; - } - } - - if (extra) - { - guchar *e = (guchar *) extra; - - while (*e) - { - excmap[*e] = 0; - e++; - } - } - - while (*p) - { - if (excmap[*p]) - *q++ = *p; - else - { - switch (*p) - { - case '\b': - *q++ = '\\'; - *q++ = 'b'; - break; - case '\f': - *q++ = '\\'; - *q++ = 'f'; - break; - case '\n': - *q++ = '\\'; - *q++ = 'n'; - break; - case '\r': - *q++ = '\\'; - *q++ = 'r'; - break; - case '\t': - *q++ = '\\'; - *q++ = 't'; - break; - case '\\': - *q++ = '\\'; - *q++ = '\\'; - break; - case '"': - *q++ = '\\'; - *q++ = '"'; - break; - default: - *q++ = '\\'; - *q++ = '0' + (((*p) >> 6) & 07); - *q++ = '0' + (((*p) >> 3) & 07); - *q++ = '0' + ((*p) & 07); - break; - } - } - p++; - } - *q = 0; - return dest; -} diff --git a/hardinfo/gpu_util.c b/hardinfo/gpu_util.c deleted file mode 100644 index 29f6c77e..00000000 --- a/hardinfo/gpu_util.c +++ /dev/null @@ -1,477 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2017 L. A. F. Pereira - * This file - * Copyright (C) 2018 Burt P. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "gpu_util.h" -#include "nice_name.h" -#include "cpu_util.h" /* for EMPIFNULL() */ - -nvgpu *nvgpu_new() { - return g_new0(nvgpu, 1); -} - -void nvgpu_free(nvgpu *s) { - if (s) { - free(s->model); - free(s->bios_version); - free(s->uuid); - } -} - -static char *_line_value(char *line, const char *prefix) { - if (g_str_has_prefix(g_strstrip(line), prefix)) { - line += strlen(prefix) + 1; - return g_strstrip(line); - } else - return NULL; -} - -static gboolean nv_fill_procfs_info(gpud *s) { - gchar *data, *p, *l, *next_nl; - gchar *pci_loc = pci_address_str(s->pci_dev->domain, s->pci_dev->bus, s->pci_dev->device, s->pci_dev->function); - gchar *nvi_file = g_strdup_printf("/proc/driver/nvidia/gpus/%s/information", pci_loc); - - g_file_get_contents(nvi_file, &data, NULL, NULL); - g_free(pci_loc); - g_free(nvi_file); - - if (data) { - s->nv_info = nvgpu_new(); - p = data; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - if (l = _line_value(p, "Model")) { - s->nv_info->model = g_strdup(l); - goto nv_details_next; - } - if (l = _line_value(p, "GPU UUID")) { - s->nv_info->uuid = g_strdup(l); - goto nv_details_next; - } - if (l = _line_value(p, "Video BIOS")) { - s->nv_info->bios_version = g_strdup(l); - goto nv_details_next; - } - - /* TODO: more details */ - - nv_details_next: - p = next_nl + 1; - } - g_free(data); - return TRUE; - } - return FALSE; -} - -static void intel_fill_freq(gpud *s) { - gchar path[256] = ""; - gchar *min_mhz = NULL, *max_mhz = NULL; - if (s->sysfs_drm_path) { - snprintf(path, 255, "%s/%s/gt_min_freq_mhz", s->sysfs_drm_path, s->id); - g_file_get_contents(path, &min_mhz, NULL, NULL); - snprintf(path, 255, "%s/%s/gt_max_freq_mhz", s->sysfs_drm_path, s->id); - g_file_get_contents(path, &max_mhz, NULL, NULL); - - if (min_mhz) - s->khz_min = atoi(min_mhz) * 1000; - if (max_mhz) - s->khz_max = atoi(max_mhz) * 1000; - - g_free(min_mhz); - g_free(max_mhz); - } -} - -static void amdgpu_parse_dpmclk(gchar *path, int *min, int *max) { - gchar *data = NULL, *p, *next_nl; - int sp, i, clk; - - *min = -1; - *max = -1; - - g_file_get_contents(path, &data, NULL, NULL); - if (data) { - p = data; - - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - sp = sscanf(p, "%d: %dMhz", &i, &clk); - - if (sp == 2) { - if (clk > 0) { - if (*min < 0 || clk < *min) - *min = clk; - if (clk > *max) - *max = clk; - } - } - - p = next_nl + 1; - } - } - g_free(data); -} - -static void amdgpu_fill_freq(gpud *s) { - gchar path[256] = ""; - int clk_min = -1, clk_max = -1, mem_clk_min = -1, mem_clk_max = -1; - - if (s->sysfs_drm_path) { - /* core */ - snprintf(path, 255, "%s/%s/device/pp_dpm_sclk", s->sysfs_drm_path, s->id); - amdgpu_parse_dpmclk(path, &clk_min, &clk_max); - - if (clk_max > 0) - s->khz_max = clk_max * 1000; - if (clk_min > 0) - s->khz_min = clk_min * 1000; - - /* memory */ - snprintf(path, 255, "%s/%s/device/pp_dpm_mclk", s->sysfs_drm_path, s->id); - amdgpu_parse_dpmclk(path, &mem_clk_min, &mem_clk_max); - - if (mem_clk_max > 0) - s->mem_khz_max = mem_clk_max * 1000; - if (mem_clk_min > 0) - s->mem_khz_min = mem_clk_min * 1000; - } -} - -gpud *gpud_new() { - return g_new0(gpud, 1); -} - -void gpud_free(gpud *s) { - if (s) { - free(s->id); - free(s->nice_name); - free(s->vendor_str); - free(s->device_str); - free(s->location); - free(s->drm_dev); - free(s->sysfs_drm_path); - free(s->dt_compat); - g_free(s->dt_opp); - pcid_free(s->pci_dev); - nvgpu_free(s->nv_info); - g_free(s); - } -} - -void gpud_list_free(gpud *s) { - gpud *n; - while(s != NULL) { - n = s->next; - gpud_free(s); - s = n; - } -} - -/* returns number of items after append */ -static int gpud_list_append(gpud *l, gpud *n) { - int c = 0; - while(l != NULL) { - c++; - if (l->next == NULL) { - if (n != NULL) { - l->next = n; - c++; - } - break; - } - l = l->next; - } - return c; -} - -int gpud_list_count(gpud *s) { - return gpud_list_append(s, NULL); -} - -/* TODO: In the future, when there is more vendor specific information available in - * the gpu struct, then more precise names can be given to each gpu */ -static void make_nice_name(gpud *s) { - - /* NV information available */ - if (s->nv_info && s->nv_info->model) { - s->nice_name = g_strdup_printf("%s %s", "NVIDIA", s->nv_info->model); - return; - } - - static const char unk_v[] = "Unknown"; /* do not... */ - static const char unk_d[] = "Device"; /* ...translate */ - const char *vendor_str = s->vendor_str; - const char *device_str = s->device_str; - if (!vendor_str) - vendor_str = unk_v; - if (!device_str) - device_str = unk_d; - - /* try and a get a "short name" for the vendor */ - vendor_str = vendor_get_shortest_name(vendor_str); - - if (strstr(vendor_str, "Intel")) { - gchar *device_str_clean = strdup(device_str); - nice_name_intel_gpu_device(device_str_clean); - s->nice_name = g_strdup_printf("%s %s", vendor_str, device_str_clean); - g_free(device_str_clean); - } else if (strstr(vendor_str, "AMD")) { - /* AMD PCI strings are crazy stupid because they use the exact same - * chip and device id for a zillion "different products" */ - char *full_name = strdup(device_str); - /* Try and shorten it to the chip code name only, at least */ - char *b = strchr(full_name, '['); - if (b) *b = '\0'; - s->nice_name = g_strdup_printf("%s %s", "AMD/ATI", g_strstrip(full_name)); - free(full_name); - } else { - /* nothing nicer */ - s->nice_name = g_strdup_printf("%s %s", vendor_str, device_str); - } - -} - -/* Look for this kind of thing: - * * /soc/gpu - * * /gpu@ff300000 - * - * Usually a gpu dt node will have ./name = "gpu" - */ -static gchar *dt_find_gpu(dtr *dt, char *np) { - gchar *dir_path, *dt_path, *ret; - gchar *ftmp, *ntmp; - const gchar *fn; - GDir *dir; - dtr_obj *obj; - - /* consider self */ - obj = dtr_obj_read(dt, np); - dt_path = dtr_obj_path(obj); - ntmp = strstr(dt_path, "/gpu"); - if (ntmp) { - /* was found in node name */ - if ( strchr(ntmp+1, '/') == NULL) { - ftmp = ntmp + 4; - /* should either be NULL or @ */ - if (*ftmp == '\0' || *ftmp == '@') - return g_strdup(dt_path); - } - } - - /* search children ... */ - dir_path = g_strdup_printf("%s/%s", dtr_base_path(dt), np); - dir = g_dir_open(dir_path, 0 , NULL); - if (dir) { - while((fn = g_dir_read_name(dir)) != NULL) { - ftmp = g_strdup_printf("%s/%s", dir_path, fn); - if ( g_file_test(ftmp, G_FILE_TEST_IS_DIR) ) { - if (strcmp(np, "/") == 0) - ntmp = g_strdup_printf("/%s", fn); - else - ntmp = g_strdup_printf("%s/%s", np, fn); - ret = dt_find_gpu(dt, ntmp); - g_free(ntmp); - if (ret != NULL) { - g_free(ftmp); - g_dir_close(dir); - return ret; - } - } - g_free(ftmp); - } - g_dir_close(dir); - } - - return NULL; -} - -gpud *dt_soc_gpu() { - static const char std_soc_gpu_drm_path[] = "/sys/devices/platform/soc/soc:gpu/drm"; - - /* compatible contains a list of compatible hardware, so be careful - * with matching order. - * ex: "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; - * matches "omap3 family" first. - * ex: "brcm,bcm2837", "brcm,bcm2836"; - * would match 2836 when it is a 2837. - */ - const struct { - char *search_str; - char *vendor; - char *soc; - } dt_compat_searches[] = { - { "brcm,bcm2837-vc4", "Broadcom", "VideoCore IV" }, - { "brcm,bcm2836-vc4", "Broadcom", "VideoCore IV" }, - { "brcm,bcm2835-vc4", "Broadcom", "VideoCore IV" }, - { "arm,mali-450", "ARM", "Mali 450" }, - { "arm,mali", "ARM", "Mali family" }, - { NULL, NULL, NULL } - }; - char tmp_path[256] = ""; - char *dt_gpu_path = NULL; - char *compat = NULL; - char *vendor = NULL, *device = NULL; - int i; - - gpud *gpu = NULL; - - dtr *dt = dtr_new(NULL); - if (!dtr_was_found(dt)) - goto dt_gpu_end; - - dt_gpu_path = dt_find_gpu(dt, "/"); - - if (dt_gpu_path == NULL) - goto dt_gpu_end; - - snprintf(tmp_path, 255, "%s/compatible", dt_gpu_path); - compat = dtr_get_string(tmp_path, 1); - - if (compat == NULL) - goto dt_gpu_end; - - gpu = gpud_new(); - - i = 0; - while(dt_compat_searches[i].search_str != NULL) { - if (strstr(compat, dt_compat_searches[i].search_str) != NULL) { - vendor = dt_compat_searches[i].vendor; - device = dt_compat_searches[i].soc; - break; - } - i++; - } - - gpu->dt_compat = compat; - gpu->dt_vendor = vendor; - gpu->dt_device = device; - gpu->dt_path = dt_gpu_path; - snprintf(tmp_path, 255, "%s/status", dt_gpu_path); - gpu->dt_status = dtr_get_string(tmp_path, 1); - snprintf(tmp_path, 255, "%s/name", dt_gpu_path); - gpu->dt_name = dtr_get_string(tmp_path, 1); - gpu->dt_opp = dtr_get_opp_range(dt, dt_gpu_path); - if (gpu->dt_opp) { - gpu->khz_max = gpu->dt_opp->khz_max; - gpu->khz_min = gpu->dt_opp->khz_min; - } - EMPIFNULL(gpu->dt_name); - EMPIFNULL(gpu->dt_status); - - gpu->id = strdup("dt-soc-gpu"); - gpu->location = strdup("SOC"); - - if (access(std_soc_gpu_drm_path, F_OK) != -1) - gpu->sysfs_drm_path = strdup(std_soc_gpu_drm_path); - if (vendor) gpu->vendor_str = strdup(vendor); - if (device) gpu->device_str = strdup(device); - make_nice_name(gpu); - - -dt_gpu_end: - dtr_free(dt); - return gpu; -} - -gpud *gpu_get_device_list() { - int cn = 0; - gpud *list = NULL; - -/* Can we just ask DRM someway? ... */ - /* TODO: yes. /sys/class/drm/card* */ - -/* Try PCI ... */ - pcid_list pci_list = pci_get_device_list(0x300,0x3ff); - GSList *l = pci_list; - - if (l) { - while(l) { - pcid *curr = (pcid*)l->data; - char *pci_loc = NULL; - gpud *new_gpu = gpud_new(); - new_gpu->pci_dev = curr; - - pci_loc = pci_address_str(curr->domain, curr->bus, curr->device, curr->function); - - int len; - char drm_id[512] = "", card_id[64] = ""; - char *drm_dev = NULL; - gchar *drm_path = - g_strdup_printf("/dev/dri/by-path/pci-%s-card", pci_loc); - memset(drm_id, 0, 512); - if ((len = readlink(drm_path, drm_id, sizeof(drm_id)-1)) != -1) - drm_id[len] = '\0'; - g_free(drm_path); - - if (strlen(drm_id) != 0) { - /* drm has the card */ - drm_dev = strstr(drm_id, "card"); - if (drm_dev) - snprintf(card_id, 64, "%s", drm_dev); - } - - if (strlen(card_id) == 0) { - /* fallback to our own counter */ - snprintf(card_id, 64, "pci-dc%d", cn); - cn++; - } - - if (drm_dev) - new_gpu->drm_dev = strdup(drm_dev); - - char *sysfs_path_candidate = g_strdup_printf("%s/%s/drm", SYSFS_PCI_ROOT, pci_loc); - if (access(sysfs_path_candidate, F_OK) != -1) { - new_gpu->sysfs_drm_path = sysfs_path_candidate; - } else - free(sysfs_path_candidate); - new_gpu->location = g_strdup_printf("PCI/%s", pci_loc); - new_gpu->id = strdup(card_id); - if (curr->vendor_id_str) new_gpu->vendor_str = strdup(curr->vendor_id_str); - if (curr->device_id_str) new_gpu->device_str = strdup(curr->device_id_str); - nv_fill_procfs_info(new_gpu); - intel_fill_freq(new_gpu); - amdgpu_fill_freq(new_gpu); - make_nice_name(new_gpu); - if (list == NULL) - list = new_gpu; - else - gpud_list_append(list, new_gpu); - - free(pci_loc); - l=l->next; - } - - /* don't pcid_list_free(pci_list); They will be freed by gpud_free() */ - g_slist_free(pci_list); /* just the linking data */ - return list; - } - -/* Try Device Tree ... */ - list = dt_soc_gpu(); - if (list) return list; - -/* Try other things ... */ - - return list; -} - - diff --git a/hardinfo/hardinfo.c b/hardinfo/hardinfo.c deleted file mode 100644 index 1488e0a1..00000000 --- a/hardinfo/hardinfo.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2009 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include - -#include -#include -#include -#include -#include - -#include - -ProgramParameters params = { 0 }; - -int main(int argc, char **argv) -{ - int exit_code = 0; - GSList *modules; - - setlocale(LC_ALL, ""); - bindtextdomain("hardinfo", LOCALEDIR); - textdomain("hardinfo"); - - DEBUG("HardInfo version " VERSION ". Debug version."); - - /* parse all command line parameters */ - parameters_init(&argc, &argv, ¶ms); - - /* show version information and quit */ - if (params.show_version) { - g_print("HardInfo version " VERSION "\n"); - g_print - (_(/*/ %d will be latest year of copyright*/ "Copyright (C) 2003-%d L. A. F. Pereira. See COPYING for details.\n\n"), HARDINFO_COPYRIGHT_LATEST_YEAR ); - - g_print(_("Compile-time options:\n" - " Release version: %s (%s)\n" - " BinReloc enabled: %s\n" - " Data prefix: %s\n" - " Library prefix: %s\n" - " Compiled for: %s\n"), - RELEASE ? _("Yes") : "No (" VERSION ")", ARCH, - ENABLE_BINRELOC ? _("Yes") : _("No"), - PREFIX, LIBPREFIX, PLATFORM); - - DEBUG(" Debugging is enabled."); - - /* show also available modules */ - params.list_modules = TRUE; - } - - /* initialize the binreloc library, so we can load program data */ - if (!binreloc_init(FALSE)) - g_error(_("Failed to find runtime data.\n\n" - "\342\200\242 Is HardInfo correctly installed?\n" - "\342\200\242 See if %s and %s exists and you have read permission."), - PREFIX, LIBPREFIX); - - /* list all module names */ - if (params.list_modules) { - g_print(_("Modules:\n" - "%-20s %-15s %-12s\n"), _("File Name"), _("Name"), _("Version")); - - for (modules = modules_load_all(); modules; - modules = modules->next) { - ShellModule *module = (ShellModule *) modules->data; - const ModuleAbout *ma = module_get_about(module); - gchar *name = g_path_get_basename(g_module_name(module->dll)); - - g_print("%-20s %-15s %-12s\n", name, module->name, ma->version); - - g_free(name); - } - - return 0; - } - - if (!params.create_report && !params.run_benchmark) { - /* we only try to open the UI if the user didn't ask for a report. */ - params.gui_running = ui_init(&argc, &argv); - - /* as a fallback, if GTK+ initialization failed, run in report - generation mode. */ - if (!params.gui_running) { - params.create_report = TRUE; - /* ... it is possible to -f html without -r */ - if (params.report_format != REPORT_FORMAT_HTML) - params.markup_ok = FALSE; - } - } - - if (params.use_modules) { - /* load only selected modules */ - DEBUG("loading user-selected modules"); - modules = modules_load_selected(); - } else { - /* load all modules */ - DEBUG("loading all modules"); - modules = modules_load_all(); - } - - /* initialize vendor database */ - vendor_init(); - - /* initialize moreinfo */ - moreinfo_init(); - - if (params.run_benchmark) { - gchar *result; - - result = module_call_method_param("benchmark::runBenchmark", params.run_benchmark); - if (!result) { - fprintf(stderr, _("Unknown benchmark ``%s'' or benchmark.so not loaded"), params.run_benchmark); - exit_code = 1; - } else { - fprintf(stderr, "\n"); - g_print("%s\n", result); - g_free(result); - } - } else if (params.gui_running) { - /* initialize gui and start gtk+ main loop */ - icon_cache_init(); - stock_icons_init(); - - shell_init(modules); - - DEBUG("entering gtk+ main loop"); - - gtk_main(); - } else if (params.create_report) { - /* generate report */ - gchar *report; - - DEBUG("generating report"); - - report = report_create_from_module_list_format(modules, - params. - report_format); - g_print("%s", report); - - g_free(report); - } else { - g_error(_("Don't know what to do. Exiting.")); - } - - moreinfo_shutdown(); - vendor_cleanup(); - dmidecode_cache_free(); - free_auto_free_final(); - - DEBUG("finished"); - return exit_code; -} diff --git a/hardinfo/hinote_util.c b/hardinfo/hinote_util.c deleted file mode 100644 index efc85be0..00000000 --- a/hardinfo/hinote_util.c +++ /dev/null @@ -1,27 +0,0 @@ - -#include "hardinfo.h" - -/* requires COMPILE_FLAGS "-std=c99" */ - -static const char bullet_yes[] = "\u2713"; -static const char bullet_no[] = "\u2022 "; -static const char bullet_yes_text[] = "[X]"; -static const char bullet_no_text[] = "[ ]"; - -gboolean note_cond_bullet(gboolean cond, gchar *note_buff, const gchar *desc_str) { - int l = strlen(note_buff); - if (params.markup_ok) - snprintf(note_buff + l, note_max_len - l - 1, "%s %s\n", - cond ? bullet_yes : bullet_no, desc_str); - else - snprintf(note_buff + l, note_max_len - l - 1, "%s %s\n", - cond ? bullet_yes_text : bullet_no_text, desc_str); - return cond; -} - -gboolean note_require_tool(const gchar *tool, gchar *note_buff, const gchar *desc_str) { - gchar *tl = find_program((gchar*)tool); - gboolean found = note_cond_bullet(!!tl, note_buff, desc_str); - g_free(tl); - return found; -} diff --git a/hardinfo/info.c b/hardinfo/info.c deleted file mode 100644 index 5e6db7e4..00000000 --- a/hardinfo/info.c +++ /dev/null @@ -1,584 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2017 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "util_sysobj.h" /* for SEQ() */ - -/* Using a slightly modified gg_key_file_parse_string_as_value() - * from GLib in flatten(), to escape characters and the separator. - * The function is not public in GLib and we don't have a GKeyFile - * to pass it anyway. */ -/* Now in hardinfo.h -- #include "gg_key_file_parse_string_as_value.c" */ - -static const gchar *info_column_titles[] = { - "TextValue", "Value", "Progress", "Extra1", "Extra2" -}; - -struct Info *info_new(void) -{ - struct Info *info = g_new0(struct Info, 1); - - info->groups = g_array_new(FALSE, FALSE, sizeof(struct InfoGroup)); - info->view_type = SHELL_VIEW_NORMAL; - info->column_headers_visible = FALSE; - info->zebra_visible = FALSE; - info->normalize_percentage = TRUE; - - return info; -} - -void info_group_add_field(struct InfoGroup *group, struct InfoField field) -{ - if (!group) - return; - - /* info_field_last() */ - if (!field.name) - return; - - g_array_append_val(group->fields, field); -} - -void info_group_add_fieldsv(struct InfoGroup *group, va_list ap) -{ - while (1) { - struct InfoField field = va_arg(ap, struct InfoField); - - /* info_field_last() */ - if (!field.name) - break; - - g_array_append_val(group->fields, field); - } -} - -void info_group_add_fields(struct InfoGroup *group, ...) -{ - va_list ap; - - va_start(ap, group); - info_group_add_fieldsv(group, ap); - va_end(ap); -} - -struct InfoGroup *info_add_group(struct Info *info, const gchar *group_name, ...) -{ - struct InfoGroup group = { - .name = group_name, - .fields = g_array_new(FALSE, FALSE, sizeof(struct InfoField)) - }; - va_list ap; - - va_start(ap, group_name); - info_group_add_fieldsv(&group, ap); - va_end(ap); - - g_array_append_val(info->groups, group); - - return &g_array_index(info->groups, struct InfoGroup, info->groups->len - 1); -} - -struct InfoField info_field_printf(const gchar *name, const gchar *format, ...) -{ - gchar *value; - va_list ap; - - va_start(ap, format); - value = g_strdup_vprintf(format, ap); - va_end(ap); - - return (struct InfoField) { - .name = name, - .value = value, - .free_value_on_flatten = TRUE, - }; -} - -void info_group_strip_extra(struct InfoGroup *group) -{ - guint fi; - char *val, *oldval; - struct InfoField *field; - - for (fi = 0; fi < group->fields->len; fi++) { - field = &g_array_index(group->fields, struct InfoField, fi); - if (field->value){ - val = strrchr(field->value, '|'); - if (val) { - oldval = (gchar*)field->value; - field->value = strdup(val + 1); - g_free(oldval); - } - } - } -} - -void info_add_computed_group(struct Info *info, const gchar *name, const gchar *value) -{ - /* This is a scaffolding method: HardInfo should move away from pre-computing - * the strings in favor of storing InfoGroups instead; while modules are not - * fully converted, use this instead. */ - struct Info *tmp_info = NULL; - struct InfoGroup donor = {}; - gchar *tmp_str = NULL; - - if (name) - tmp_str = g_strdup_printf("[%s]\n%s", name, value); - else - tmp_str = g_strdup(value); - - tmp_info = info_unflatten(tmp_str); - if (tmp_info->groups->len != 1) { - fprintf(stderr, - "info_add_computed_group(): expected only one group in value! (actual: %d)\n", - tmp_info->groups->len); - } else { - donor = g_array_index(tmp_info->groups, struct InfoGroup, 0); - g_array_append_val(info->groups, donor); - } - - g_free(tmp_info); // TODO: doesn't do enough - g_free(tmp_str); -} - -void info_add_computed_group_wo_extra(struct Info *info, const gchar *name, const gchar *value) -{ - /* This is a scaffolding method: HardInfo should move away from pre-computing - * the strings in favor of storing InfoGroups instead; while modules are not - * fully converted, use this instead. */ - struct InfoGroup *agroup; - - info_add_computed_group(info, name, value); - if (info->groups->len > 0) { - agroup = &g_array_index(info->groups, struct InfoGroup, info->groups->len - 1); - info_group_strip_extra(agroup); - } -} - -void info_set_column_title(struct Info *info, const gchar *column, const gchar *title) -{ - int i; - - for (i = 0; i < G_N_ELEMENTS(info_column_titles); i++) { - if (g_str_equal(info_column_titles[i], column)) { - info->column_titles[i] = title; - return; - } - } -} - -void info_set_column_headers_visible(struct Info *info, gboolean setting) -{ - info->column_headers_visible = setting; -} - -void info_set_zebra_visible(struct Info *info, gboolean setting) -{ - info->zebra_visible = setting; -} - -void info_set_normalize_percentage(struct Info *info, gboolean setting) -{ - info->normalize_percentage = setting; -} - -void info_set_view_type(struct Info *info, ShellViewType setting) -{ - info->view_type = setting; -} - -void info_set_reload_interval(struct Info *info, int setting) -{ - info->reload_interval = setting; -} - -static int info_field_cmp_name_ascending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(aa->name, bb->name); -} - -static int info_field_cmp_name_descending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(bb->name, aa->name); -} - -static int info_field_cmp_value_ascending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(aa->value, bb->value); -} - -static int info_field_cmp_value_descending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(bb->value, aa->value); -} - -static int info_field_cmp_tag_ascending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(aa->tag, bb->tag); -} - -static int info_field_cmp_tag_descending(const void *a, const void *b) -{ - const struct InfoField *aa = a, *bb = b; - return g_strcmp0(bb->tag, aa->tag); -} - -static const GCompareFunc sort_functions[INFO_GROUP_SORT_MAX] = { - [INFO_GROUP_SORT_NONE] = NULL, - [INFO_GROUP_SORT_NAME_ASCENDING] = info_field_cmp_name_ascending, - [INFO_GROUP_SORT_NAME_DESCENDING] = info_field_cmp_name_descending, - [INFO_GROUP_SORT_VALUE_ASCENDING] = info_field_cmp_value_ascending, - [INFO_GROUP_SORT_VALUE_DESCENDING] = info_field_cmp_value_descending, - [INFO_GROUP_SORT_TAG_ASCENDING] = info_field_cmp_tag_ascending, - [INFO_GROUP_SORT_TAG_DESCENDING] = info_field_cmp_tag_descending, -}; - -static void field_free_strings(struct InfoField *field) -{ - if (field->free_value_on_flatten) - g_free((gchar *)field->value); - if (field->free_name_on_flatten) - g_free((gchar *)field->name); - g_free(field->tag); -} - -static void free_group_fields(struct InfoGroup *group) -{ - if (group && group->fields) { - guint i; - - for (i = 0; i < group->fields->len; i++) { - struct InfoField *field = - &g_array_index(group->fields, struct InfoField, i); - field_free_strings(field); - } - - g_array_free(group->fields, TRUE); - } -} - -static void flatten_group(GString *output, const struct InfoGroup *group, guint group_count) -{ - guint i; - - if (group->name != NULL) - g_string_append_printf(output, "[%s#%d]\n", group->name, group_count); - - if (group->sort != INFO_GROUP_SORT_NONE) - g_array_sort(group->fields, sort_functions[group->sort]); - - if (group->fields) { - for (i = 0; i < group->fields->len; i++) { - struct InfoField *field = &g_array_index(group->fields, struct InfoField, i); - gchar tmp_tag[256] = ""; /* for generated tag */ - - gboolean do_escape = TRUE; /* refers to the value side only */ - if (field->value && strchr(field->value, '|') ) { - /* turning off escaping for values that may have columns */ - do_escape = FALSE; - /* TODO:/FIXME: struct InfoField should store the column values - * in an array instead of packing them into one value with '|'. - * Then each value can be escaped and joined together with '|' - * for flatten(). unflatten() can then split on non-escaped '|', - * and unescape the result values into the column value array. - * Another way to do this might be to check - * .column_headers_visible in struct Info, but that is not - * available here. - */ - } - - const gchar *tp = field->tag; - gboolean tagged = !!tp; - gboolean flagged = field->highlight || field->report_details || field->value_has_vendor; - if (!tp) { - snprintf(tmp_tag, 255, "ITEM%d-%d", group_count, i); - tp = tmp_tag; - } - if (!field->label_is_escaped) { - if (strchr(field->name, '=') - || strchr(field->name, '$')) { - // TODO: what about # ? - gchar *ofn = (gchar*)field->name; - field->name = key_label_escape(ofn); - g_free(ofn); - field->label_is_escaped = TRUE; - } - } - if (tagged || flagged || field->icon) { - g_string_append_printf(output, "$%s%s%s%s%s$", - field->label_is_escaped ? "@" : "", - field->highlight ? "*" : "", - field->report_details ? "!" : "", - field->value_has_vendor ? "^" : "", - tp); - } - - if (do_escape) { - gchar *escaped_value = gg_key_file_parse_string_as_value(field->value, '|'); - g_string_append_printf(output, "%s=%s\n", field->name, escaped_value); - g_free(escaped_value); - } else { - g_string_append_printf(output, "%s=%s\n", field->name, field->value); - } - } - } else if (group->computed) { - g_string_append_printf(output, "%s\n", group->computed); - } -} - -static void flatten_shell_param(GString *output, const struct InfoGroup *group, guint group_count) -{ - guint i; - - if (!group->fields) - return; - - for (i = 0; i < group->fields->len; i++) { - struct InfoField *field = &g_array_index(group->fields, struct InfoField, i); - gchar tmp_tag[256] = ""; /* for generated tag */ - - const gchar *tp = field->tag; - gboolean tagged = !!tp; - if (!tp) { - snprintf(tmp_tag, 255, "ITEM%d-%d", group_count, i); - tp = tmp_tag; - } - - if (field->update_interval) { - g_string_append_printf(output, "UpdateInterval$%s%s%s=%d\n", - tagged ? tp : "", tagged ? "$" : "", /* tag and close or nothing */ - field->name, - field->update_interval); - } - - if (field->icon) { - g_string_append_printf(output, "Icon$%s$=%s\n", - tp, field->icon); - } - } -} - -static void flatten_shell_param_global(GString *output, const struct Info *info) -{ - int i; - - g_string_append_printf(output, "ViewType=%d\n", info->view_type); - g_string_append_printf(output, "ShowColumnHeaders=%s\n", - info->column_headers_visible ? "true" : "false"); - - if (info->zebra_visible) - g_string_append(output, "Zebra=1\n"); - - if (info->reload_interval) - g_string_append_printf(output, "ReloadInterval=%d\n", info->reload_interval); - - if (!info->normalize_percentage) - g_string_append(output, "NormalizePercentage=false\n"); - - for (i = 0; i < G_N_ELEMENTS(info_column_titles); i++) { - if (!info->column_titles[i]) - continue; - - g_string_append_printf(output, "ColumnTitle$%s=%s\n", - info_column_titles[i], info->column_titles[i]); - } -} - -gchar *info_flatten(struct Info *info) -{ - /* This is a scaffolding method: eventually the HardInfo shell should - * understand a struct Info instead of parsing these strings, which are - * brittle and unnecessarily complicates things. Being a temporary - * method, no attention is paid to improve the memory allocation - * strategy. */ - GString *values; - GString *shell_param; - guint i; - - values = g_string_new(NULL); - shell_param = g_string_new(NULL); - - if (info->groups) { - for (i = 0; i < info->groups->len; i++) { - struct InfoGroup *group = - &g_array_index(info->groups, struct InfoGroup, i); - - flatten_group(values, group, i); - flatten_shell_param(shell_param, group, i); - - free_group_fields(group); - } - - g_array_free(info->groups, TRUE); - } - - flatten_shell_param_global(shell_param, info); - g_string_append_printf(values, "[$ShellParam$]\n%s", shell_param->str); - - g_string_free(shell_param, TRUE); - g_free(info); - - return g_string_free(values, FALSE); -} - -void info_remove_group(struct Info *info, guint index) -{ - struct InfoGroup *grp; - - if (index >= info->groups->len) - return; - - grp = &g_array_index(info->groups, struct InfoGroup, index); - free_group_fields(grp); - - g_array_remove_index(info->groups, index); -} - -struct InfoField *info_find_field(struct Info *info, const gchar *tag, const gchar *name) { - struct InfoGroup *group; - struct InfoField *field; - int gi,fi; - for (gi = 0; gi < info->groups->len; gi++) { - struct InfoGroup *group = &g_array_index(info->groups, struct InfoGroup, gi); - for (fi = 0; fi < group->fields->len; fi++) { - struct InfoField *field = &g_array_index(group->fields, struct InfoField, fi); - if (tag && SEQ(tag, field->tag) ) - return field; - else if (name && SEQ(name, field->name) ) - return field; - } - } - return NULL; -} - -#define VAL_FALSE_OR_TRUE ((!g_strcmp0(value, "true") || !g_strcmp0(value, "1")) ? TRUE : FALSE) - -struct Info *info_unflatten(const gchar *str) -{ - struct Info *info = info_new(); - GKeyFile *key_file = g_key_file_new(); - gchar **groups; - gsize ngroups; - int g, k, spg = -1; - - g_key_file_load_from_data(key_file, str, strlen(str), 0, NULL); - groups = g_key_file_get_groups(key_file, &ngroups); - for (g = 0; groups[g]; g++) { - gchar *group_name = groups[g]; - gchar **keys = g_key_file_get_keys(key_file, group_name, NULL, NULL); - - if (*group_name == '$') { - /* special group */ - if (SEQ(group_name, "$ShellParam$") ) - spg = g; /* handle after all groups are added */ - else { - /* This special group is unknown and won't be handled, so - * the name will not be linked anywhere. */ - g_free(group_name); - continue; - } - } else { - /* normal group */ - struct InfoGroup group = {}; - group.name = group_name; - group.fields = g_array_new(FALSE, FALSE, sizeof(struct InfoField)); - group.sort = INFO_GROUP_SORT_NONE; - - for (k = 0; keys[k]; k++) { - struct InfoField field = {}; - gchar *flags, *tag, *name, *label, *dis; - key_get_components(keys[k], &flags, &tag, &name, &label, &dis, TRUE); - gchar *value = g_key_file_get_value(key_file, group_name, keys[k], NULL); - - field.tag = tag; - field.name = name; - field.value = value; - if (key_label_is_escaped(flags)) - field.label_is_escaped = TRUE; - if (key_wants_details(flags)) - field.report_details = TRUE; - if (key_is_highlighted(flags)) - field.highlight = TRUE; - if (key_value_has_vendor_string(flags)) - field.value_has_vendor = TRUE; - field.free_value_on_flatten = TRUE; - field.free_name_on_flatten = TRUE; - - g_free(flags); - g_free(label); - g_free(dis); - g_array_append_val(group.fields, field); - } - g_array_append_val(info->groups, group); - } - } - - if (spg >= 0) { - gchar *group_name = groups[spg]; - gchar **keys = g_key_file_get_keys(key_file, group_name, NULL, NULL); - for (k = 0; keys[k]; k++) { - gchar *value = g_key_file_get_value(key_file, group_name, keys[k], NULL); - gchar *parm = NULL; - if (SEQ(keys[k], "ViewType")) { - info_set_view_type(info, atoi(value)); - } else if (SEQ(keys[k], "ShowColumnHeaders")) { - info_set_column_headers_visible(info, VAL_FALSE_OR_TRUE); - } else if (SEQ(keys[k], "Zebra")) { - info_set_zebra_visible(info, VAL_FALSE_OR_TRUE); - } else if (SEQ(keys[k], "ReloadInterval")) { - info_set_reload_interval(info, atoi(value)); - } else if (SEQ(keys[k], "NormalizePercentage")) { - info_set_normalize_percentage(info, VAL_FALSE_OR_TRUE); - } else if (g_str_has_prefix(keys[k], "ColumnTitle$")) { - info_set_column_title(info, strchr(keys[k], '$') + 1, value); - } else if (g_str_has_prefix(keys[k], "Icon$")) { - const gchar *chk_name = NULL; - gchar *chk_tag = NULL; - parm = strchr(keys[k], '$'); - if (key_is_flagged(parm)) - chk_tag = key_mi_tag(parm); - struct InfoField *field = info_find_field(info, chk_tag, NULL); - if (field) - field->icon = value; - g_free(chk_tag); - } else if (g_str_has_prefix(keys[k], "UpdateInterval$")) { - const gchar *chk_name = NULL; - gchar *chk_tag = NULL; - parm = strchr(keys[k], '$'); - if (key_is_flagged(parm)) { - chk_tag = key_mi_tag(parm); - chk_name = key_get_name(parm); - } else - chk_name = key_get_name(parm+1); - struct InfoField *field = info_find_field(info, chk_tag, chk_name); - if (field) - field->update_interval = atoi(value); - g_free(chk_tag); - } - } - g_free(group_name); - g_strfreev(keys); - } - - return info; -} diff --git a/hardinfo/pci_util.c b/hardinfo/pci_util.c deleted file mode 100644 index ccf4f7c4..00000000 --- a/hardinfo/pci_util.c +++ /dev/null @@ -1,463 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2017 L. A. F. Pereira - * This file - * Copyright (C) 2018 Burt P. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "pci_util.h" -#include "util_ids.h" - -gchar *pci_ids_file = NULL; -GTimer *pci_ids_timer = NULL; -const gboolean nolspci = FALSE; /* true for testing */ - -/* Two pieces of info still only from lspci: - * - kernel driver in use - * - kernel modules list - * - * TODO: could use readlink() and basename() to get kernel driver from sysfs - * - /sys/bus/pci/devices//driver is a symlink - */ - -const gchar *find_pci_ids_file() { - if (pci_ids_file) { - if (!strstr(pci_ids_file, ".min")) - return pci_ids_file; - if (g_timer_elapsed(pci_ids_timer, NULL) > 2.0) { - /* try again for the full version */ - DEBUG("find_pci_ids_file() found only a \".min\" version, trying again..."); - g_free(pci_ids_file); - pci_ids_file = NULL; - } - } - char *file_search_order[] = { - g_strdup("/usr/share/hwdata/pci.ids"), - g_strdup("/usr/share/misc/pci.ids"), - g_build_filename(g_get_user_config_dir(), "hardinfo", "pci.ids", NULL), - g_build_filename(params.path_data, "pci.ids", NULL), - g_build_filename(g_get_user_config_dir(), "hardinfo", "pci.ids.min", NULL), - g_build_filename(params.path_data, "pci.ids.min", NULL), - NULL - }; - int n; - for(n = 0; file_search_order[n]; n++) { - if (!pci_ids_file && !access(file_search_order[n], R_OK)) - pci_ids_file = file_search_order[n]; - else - g_free(file_search_order[n]); - } - DEBUG("find_pci_ids_file() result: %s", pci_ids_file); - if (pci_ids_file) { - if (!pci_ids_timer) - pci_ids_timer = g_timer_new(); - else - g_timer_reset(pci_ids_timer); - } - return pci_ids_file; -} - -char *pci_lookup_ids_vendor_str(uint32_t id) { - gchar *ret = NULL; - - ids_query_result result = {}; - gchar *qpath; - - if (!find_pci_ids_file()) - return FALSE; - - qpath = g_strdup_printf("%04x", id); - scan_ids_file(pci_ids_file, qpath, &result, -1); - if (result.results[0]) { - ret = g_strdup(result.results[0]); - } - g_free(qpath); - - return ret; -} - -static gboolean pci_lookup_ids(pcid *d) { - gboolean ret = FALSE; - ids_query_result result = {}; - gchar *qpath; - - if (!find_pci_ids_file()) - return FALSE; - - /* lookup vendor, device, sub device */ - qpath = g_strdup_printf("%04x/%04x/%04x %04x", - d->vendor_id, d->device_id, d->sub_vendor_id, d->sub_device_id); - scan_ids_file(pci_ids_file, qpath, &result, -1); - if (result.results[0]) { - if (d->vendor_id_str) g_free(d->vendor_id_str); - d->vendor_id_str = g_strdup(result.results[0]); - ret = TRUE; - } - if (result.results[1]) { - if (d->device_id_str) g_free(d->device_id_str); - d->device_id_str = g_strdup(result.results[1]); - ret = TRUE; - } - if (result.results[2]) { - if (d->sub_device_id_str) g_free(d->sub_device_id_str); - d->sub_device_id_str = g_strdup(result.results[2]); - ret = TRUE; - } - g_free(qpath); - - /* lookup sub vendor by itself */ - qpath = g_strdup_printf("%04x", d->sub_vendor_id); - scan_ids_file(pci_ids_file, qpath, &result, -1); - if (result.results[0]) { - if (d->sub_vendor_id_str) g_free(d->sub_vendor_id_str); - d->sub_vendor_id_str = g_strdup(result.results[0]); - ret = TRUE; - }; - g_free(qpath); - - /* lookup class */ - qpath = g_strdup_printf("C %02x/%02x", (d->class >> 8) & 0xff, (d->class & 0xff)); - scan_ids_file(pci_ids_file, qpath, &result, -1); - if (result.results[0]) { - if (d->class_str) g_free(d->class_str); - d->class_str = g_strdup(result.results[0]); - if (result.results[1] - && !SEQ(result.results[0], result.results[1]) ) { - /* options 1: results[0] + " :: " + results[1] */ - //d->class_str = appf(d->class_str, " :: ", "%s", result.results[1]); - - /* option 2: results[1] or results[0] */ - g_free(d->class_str); - d->class_str = g_strdup(result.results[1]); - } - ret = TRUE; - } - g_free(qpath); - - return ret; -} - -gint pcid_cmp_by_addy(gconstpointer a, gconstpointer b) -{ - const struct pcid *dev_a = a; - const struct pcid *dev_b = b; - - if (!dev_a) - return !!dev_b; - if (!dev_b) - return !!dev_a; - - return g_strcmp0(dev_a->slot_str, dev_b->slot_str); -} - -void pcid_free(pcid *s) { - if (s) { - g_free(s->slot_str); - g_free(s->class_str); - g_free(s->vendor_id_str); - g_free(s->device_id_str); - g_free(s->sub_vendor_id_str); - g_free(s->sub_device_id_str); - g_free(s->driver); - g_free(s->driver_list); - g_free(s); - } -} - -static char *lspci_line_value(char *line, const char *prefix) { - if (g_str_has_prefix(g_strstrip(line), prefix)) { - line += strlen(prefix) + 1; - return g_strstrip(line); - } else - return NULL; -} - -/* read output line of lspci -vmmnn */ -static int lspci_line_string_and_code(char *line, char *prefix, char **str, uint32_t *code) { - char *l = lspci_line_value(line, prefix); - char *e; - - if (l) { - e = strchr(l, 0); - while (e > l && *e != '[') e--; - sscanf(e, "[%x]", code); - *e = 0; /* terminate at start of code */ - if (*str) free(*str); /* free if replacing */ - *str = strdup(g_strstrip(l)); - } - return 0; -} - -static gboolean pci_fill_details(pcid *s) { - if (nolspci) return FALSE; - gboolean spawned; - gchar *out, *err, *p, *l, *next_nl; - gchar *pci_loc = pci_address_str(s->domain, s->bus, s->device, s->function); - gchar *lspci_cmd = g_strdup_printf("lspci -D -s %s -vvv", pci_loc); - - spawned = hardinfo_spawn_command_line_sync(lspci_cmd, - &out, &err, NULL, NULL); - g_free(lspci_cmd); - g_free(pci_loc); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - if (l = lspci_line_value(p, "Kernel driver in use")) { - s->driver = g_strdup(l); - goto pci_details_next; - } - if (l = lspci_line_value(p, "Kernel modules")) { - s->driver_list = g_strdup(l); - goto pci_details_next; - } - /* TODO: more details */ - - pci_details_next: - p = next_nl + 1; - } - g_free(out); - g_free(err); - return TRUE; - } - return FALSE; -} - -char *pci_address_str(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func) { - return g_strdup_printf("%04x:%02x:%02x.%01x", dom, bus, dev, func); -} - -/* /sys/bus/pci/devices/0000:01:00.0/ */ -char *_sysfs_bus_pci(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, const char *item) { - char *ret = NULL, *pci_loc, *sysfs_path; - pci_loc = pci_address_str(dom, bus, dev, func); - sysfs_path = g_strdup_printf("%s/%s/%s", SYSFS_PCI_ROOT, pci_loc, item); - g_file_get_contents(sysfs_path, &ret, NULL, NULL); - free(pci_loc); - free(sysfs_path); - return ret; -} - -gboolean _sysfs_bus_pci_read_hex(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, const char *item, uint32_t *val) { - char *tmp = _sysfs_bus_pci(dom, bus, dev, func, item); - uint32_t tval; - if (tmp && val) { - int ec = sscanf(tmp, "%x", &tval); - free(tmp); - if (ec) { - *val = tval; - return TRUE; - } - } - return FALSE; -} - -/* https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci */ -static gboolean pci_get_device_sysfs(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, pcid *s) { - char *tmp = NULL; - int ec = 0; - float tf; - s->domain = dom; - s->bus = bus; - s->device = dev; - s->function = func; - s->slot_str = s->slot_str ? s->slot_str : pci_address_str(dom, bus, dev, func); - if (! _sysfs_bus_pci_read_hex(dom, bus, dev, func, "class", &s->class) ) - return FALSE; - s->class >>= 8; /* TODO: find out why */ - _sysfs_bus_pci_read_hex(dom, bus, dev, func, "device", &s->device_id); - _sysfs_bus_pci_read_hex(dom, bus, dev, func, "vendor", &s->vendor_id); - _sysfs_bus_pci_read_hex(dom, bus, dev, func, "subsystem_device", &s->sub_device_id); - _sysfs_bus_pci_read_hex(dom, bus, dev, func, "subsystem_vendor", &s->sub_vendor_id); - _sysfs_bus_pci_read_hex(dom, bus, dev, func, "revision", &s->revision); - - tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_speed"); - if (tmp) { - ec = sscanf(tmp, "%f GT/s", &tf); - if (ec) s->pcie_speed_max = tf; - free(tmp); - } - tmp = _sysfs_bus_pci(dom, bus, dev, func, "current_link_speed"); - if (tmp) { - ec = sscanf(tmp, "%f GT/s", &tf); - if (ec) s->pcie_speed_curr = tf; - free(tmp); - } - tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_width"); - if (tmp) { - s->pcie_width_max = strtoul(tmp, NULL, 0); - free(tmp); - } - tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_width"); - if (tmp) { - s->pcie_width_curr = strtoul(tmp, NULL, 0); - free(tmp); - } - return TRUE; -} - -static gboolean pci_get_device_lspci(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, pcid *s) { - if (nolspci) return FALSE; - gboolean spawned; - gchar *out, *err, *p, *l, *next_nl; - gchar *pci_loc = pci_address_str(dom, bus, dev, func); - gchar *lspci_cmd = g_strdup_printf("lspci -D -s %s -vmmnn", pci_loc); - - s->domain = dom; - s->bus = bus; - s->device = dev; - s->function = func; - - spawned = hardinfo_spawn_command_line_sync(lspci_cmd, - &out, &err, NULL, NULL); - g_free(lspci_cmd); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - if (l = lspci_line_value(p, "Slot")) { - s->slot_str = g_strdup(l); - if (strcmp(s->slot_str, pci_loc) != 0) { - printf("PCI: %s != %s\n", s->slot_str, pci_loc); - } - } - if (l = lspci_line_value(p, "Rev")) { - s->revision = strtol(l, NULL, 16); - } - lspci_line_string_and_code(p, "Class", &s->class_str, &s->class); - lspci_line_string_and_code(p, "Vendor", &s->vendor_id_str, &s->vendor_id); - lspci_line_string_and_code(p, "Device", &s->device_id_str, &s->device_id); - lspci_line_string_and_code(p, "SVendor", &s->sub_vendor_id_str, &s->sub_vendor_id); - lspci_line_string_and_code(p, "SDevice", &s->sub_device_id_str, &s->sub_device_id); - - p = next_nl + 1; - } - g_free(out); - g_free(err); - g_free(pci_loc); - return TRUE; - } - g_free(pci_loc); - return FALSE; -} - -pcid *pci_get_device_str(const char *addy) { - uint32_t dom, bus, dev, func; - int ec; - if (addy) { - ec = sscanf(addy, "%x:%x:%x.%x", &dom, &bus, &dev, &func); - if (ec == 4) { - return pci_get_device(dom, bus, dev, func); - } - } - return NULL; -} - -pcid *pci_get_device(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func) { - pcid *s = pcid_new(); - gboolean ok = FALSE; - if (s) { - ok = pci_get_device_sysfs(dom, bus, dev, func, s); - if (ok) { - ok |= pci_lookup_ids(s); - if (!ok) - ok |= pci_get_device_lspci(dom, bus, dev, func, s); - } - if (!ok) { - pcid_free(s); - s = NULL; - } - } - return s; -} - -static pcid_list pci_get_device_list_lspci(uint32_t class_min, uint32_t class_max) { - if (nolspci) return NULL; - gboolean spawned; - gchar *out, *err, *p, *next_nl; - pcid_list dl = NULL; - pcid *nd; - uint32_t dom, bus, dev, func, cls; - int ec; - - if (class_max == 0) class_max = 0xffff; - - spawned = hardinfo_spawn_command_line_sync("lspci -D -mn", - &out, &err, NULL, NULL); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - ec = sscanf(p, "%x:%x:%x.%x \"%x\"", &dom, &bus, &dev, &func, &cls); - if (ec == 5) { - if (cls >= class_min && cls <= class_max) { - nd = pci_get_device(dom, bus, dev, func); - pci_fill_details(nd); - dl = g_slist_append(dl, nd); - } - } - p = next_nl + 1; - } - g_free(out); - g_free(err); - } - return dl; -} - -static pcid_list pci_get_device_list_sysfs(uint32_t class_min, uint32_t class_max) { - pcid_list dl = NULL; - pcid *nd; - uint32_t dom, bus, dev, func, cls; - int ec; - - if (class_max == 0) class_max = 0xffff; - - const gchar *f = NULL; - GDir *d = g_dir_open("/sys/bus/pci/devices", 0, NULL); - if (!d) return 0; - - while((f = g_dir_read_name(d))) { - ec = sscanf(f, "%x:%x:%x.%x", &dom, &bus, &dev, &func); - if (ec == 4) { - gchar *cf = g_strdup_printf("/sys/bus/pci/devices/%s/class", f); - gchar *cstr = NULL; - if (g_file_get_contents(cf, &cstr, NULL, NULL) ) { - cls = strtoul(cstr, NULL, 16) >> 8; - if (cls >= class_min && cls <= class_max) { - nd = pci_get_device(dom, bus, dev, func); - pci_fill_details(nd); - dl = g_slist_append(dl, nd); - } - } - g_free(cstr); - g_free(cf); - } - } - g_dir_close(d); - return dl; -} - -pcid_list pci_get_device_list(uint32_t class_min, uint32_t class_max) { - pcid_list dl = NULL; - dl = pci_get_device_list_sysfs(class_min, class_max); - if (!dl) - dl = pci_get_device_list_lspci(class_min, class_max); - return dl; -} - diff --git a/hardinfo/problem_marker.c b/hardinfo/problem_marker.c deleted file mode 100644 index 1e0c2aed..00000000 --- a/hardinfo/problem_marker.c +++ /dev/null @@ -1,13 +0,0 @@ - -#include "hardinfo.h" - -/* requires COMPILE_FLAGS "-std=c99" */ - -const char *problem_marker() { - static const char as_markup[] = "\u26A0"; - static const char as_text[] = "(!)"; - if (params.markup_ok) - return as_markup; - else - return as_text; -} diff --git a/hardinfo/socket.c b/hardinfo/socket.c deleted file mode 100644 index 6e3a3f9e..00000000 --- a/hardinfo/socket.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2007 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "socket.h" - -Socket *sock_connect(gchar * host, gint port) -{ - struct sockaddr_in server; - Socket *s; - int sock; - - sock = socket(AF_INET, SOCK_STREAM, 0); - if (sock > 0) { - memset(&server, 0, sizeof(server)); - server.sin_family = AF_INET; - server.sin_addr.s_addr = inet_addr(host); - server.sin_port = htons(port); - - if (connect(sock, (struct sockaddr *) (void *) &server, sizeof(server)) < 0) { - goto cleanup; - } - - s = g_new0(Socket, 1); - s->sock = sock; - - return s; - } - -cleanup: - close(sock); - - return NULL; -} - -/* From: http://www.erlenstar.demon.co.uk/unix/faq_3.html#SEC26 */ -static inline int __sock_is_ready(Socket * s, int mode) -{ - int rc, fd = s->sock; - fd_set fds; - struct timeval tv; - - FD_ZERO(&fds); - FD_SET(fd, &fds); - tv.tv_sec = tv.tv_usec = 0; - - if (mode == 0) { - /* read */ - rc = select(fd + 1, &fds, NULL, NULL, &tv); - } else { - /* write */ - rc = select(fd + 1, NULL, &fds, NULL, &tv); - } - - if (rc < 0) - return -1; - - return FD_ISSET(fd, &fds) ? 1 : 0; -} - -int sock_ready_to_read(Socket * s) -{ - return __sock_is_ready(s, 0); -} - -int sock_ready_to_write(Socket * s) -{ - return __sock_is_ready(s, 1); -} - -int sock_read(Socket * s, gchar * buffer, gint size) -{ - if (size > 2 && sock_ready_to_read(s)) { - gint n; - - n = read(s->sock, buffer, size - 1); - if (n > 0) { - buffer[n] = '\0'; - } else { - return 0; - } - - return n; - } - - return 0; -} - -int sock_write(Socket * s, gchar * str) -{ - while (!sock_ready_to_write(s)); - - return write(s->sock, str, strlen(str)); -} - -void sock_close(Socket * s) -{ - shutdown(s->sock, 2); - close(s->sock); - g_free(s); -} diff --git a/hardinfo/storage_util.c b/hardinfo/storage_util.c deleted file mode 100644 index 7e61d336..00000000 --- a/hardinfo/storage_util.c +++ /dev/null @@ -1,250 +0,0 @@ -#include "udisks2_util.h" -#include "storage_util.h" -#include "util_ids.h" -#include "hardinfo.h" - -gchar *sdcard_ids_file = NULL; -gchar *oui_ids_file = NULL; - -// moved from udisks2_util.h -void find_sdcard_ids_file() { - if (sdcard_ids_file) return; - char *file_search_order[] = { - g_build_filename(g_get_user_config_dir(), "hardinfo", "sdcard.ids", NULL), - g_build_filename(params.path_data, "sdcard.ids", NULL), - NULL - }; - int n; - for(n = 0; file_search_order[n]; n++) { - if (!sdcard_ids_file && !access(file_search_order[n], R_OK)) - sdcard_ids_file = file_search_order[n]; - else - g_free(file_search_order[n]); - } -} - -void find_oui_ids_file() { - if (oui_ids_file) return; - char *file_search_order[] = { - g_build_filename(g_get_user_config_dir(), "hardinfo", "ieee_oui.ids", NULL), - g_build_filename(params.path_data, "ieee_oui.ids", NULL), - NULL - }; - int n; - for(n = 0; file_search_order[n]; n++) { - if (!oui_ids_file && !access(file_search_order[n], R_OK)) - oui_ids_file = file_search_order[n]; - else - g_free(file_search_order[n]); - } -} - -gchar* get_oui_from_wwid(gchar* wwid){ - gchar* ret = NULL; - - if (g_str_has_prefix(wwid, "nna.")) { - if (strlen(wwid)*4 < 48) - return NULL; - - switch (wwid[4]){ - case '1': - case '2': - ret = g_strndup(wwid + 8, 6); - break; - case '5': - case '6': - ret = g_strndup(wwid + 5, 6); - break; - } - } - else if(g_str_has_prefix(wwid, "eui.")) { - if (strlen(wwid)*4 < 48) - return NULL; - ret = g_strndup(wwid+4, 6); - } - - return ret; -} - -gchar* get_oui_company(gchar* oui){ - ids_query_result result = {}; - - if (!oui_ids_file) - find_oui_ids_file(); - - scan_ids_file(oui_ids_file, oui, &result, -1); - if (result.results[0]) - return g_strdup(result.results[0]); - - return NULL; -} - -// moved from udisks2_util.h -void check_sdcard_vendor(u2driveext *e) { - if (!e || !e->d) return; - if (!e->d->media) return; - if (! (g_str_has_prefix(e->d->media, "flash_sd") - || g_str_has_prefix(e->d->media, "flash_mmc") )) return; - if (e->d->vendor && e->d->vendor[0]) return; - if (!e->d->block_dev) return; - - if (!sdcard_ids_file) - find_sdcard_ids_file(); - - gchar *qpath = NULL; - ids_query_result result = {}; - - gchar *oemid_path = g_strdup_printf("/sys/block/%s/device/oemid", e->d->block_dev); - gchar *manfid_path = g_strdup_printf("/sys/block/%s/device/manfid", e->d->block_dev); - gchar *oemid = NULL, *manfid = NULL; - g_file_get_contents(oemid_path, &oemid, NULL, NULL); - g_file_get_contents(manfid_path, &manfid, NULL, NULL); - - unsigned int id = oemid?strtol(oemid, NULL, 16):0; - char c2 = id & 0xff, c1 = (id >> 8) & 0xff; - - qpath = g_strdup_printf("OEMID %02x%02x", (unsigned int)c1, (unsigned int)c2); - scan_ids_file(sdcard_ids_file, qpath, &result, -1); - g_free(oemid); - if (result.results[0]) - oemid = g_strdup(result.results[0]); - else - oemid = g_strdup_printf("OEM %02x%02x \"%c%c\"", - (unsigned int)c1, (unsigned int)c2, - isprint(c1) ? c1 : '.', isprint(c2) ? c2 : '.'); - g_free(qpath); - - id = manfid?strtol(manfid, NULL, 16):0; - qpath = g_strdup_printf("MANFID %06x", id); - scan_ids_file(sdcard_ids_file, qpath, &result, -1); - g_free(manfid); - if (result.results[0]) - manfid = g_strdup(result.results[0]); - else - manfid = g_strdup_printf("MANF %06x", id); - g_free(qpath); - - vendor_list vl = NULL; - const Vendor *v = NULL; - v = vendor_match(oemid, NULL); - if (v) vl = vendor_list_append(vl, v); - v = vendor_match(manfid, NULL); - if (v) vl = vendor_list_append(vl, v); - vl = vendor_list_remove_duplicates_deep(vl); - e->vendors = vendor_list_concat(e->vendors, vl); - - g_free(e->d->vendor); - if (g_strcmp0(oemid, manfid) == 0) - e->d->vendor = g_strdup(oemid); - else - e->d->vendor = g_strdup_printf("%s / %s", oemid, manfid); - - g_free(oemid); - g_free(manfid); - g_free(oemid_path); - g_free(manfid_path); - - if (e->d->revision && e->d->revision[0]) return; - - /* bonus: revision */ - gchar *fwrev_path = g_strdup_printf("/sys/block/%s/device/fwrev", e->d->block_dev); - gchar *hwrev_path = g_strdup_printf("/sys/block/%s/device/hwrev", e->d->block_dev); - gchar *fwrev = NULL, *hwrev = NULL; - g_file_get_contents(fwrev_path, &fwrev, NULL, NULL); - g_file_get_contents(hwrev_path, &hwrev, NULL, NULL); - - unsigned int fw = fwrev ? strtol(fwrev, NULL, 16) : 0; - unsigned int hw = hwrev ? strtol(hwrev, NULL, 16) : 0; - g_free(e->d->revision); - e->d->revision = g_strdup_printf("%02x.%02x", hw, fw); - - g_free(fwrev); - g_free(hwrev); - g_free(fwrev_path); - g_free(hwrev_path); - -} - -void set_nvme_controller_info(u2driveext *e){ - gchar *path = g_strdup_printf("/sys/block/%s/device/device", e->d->block_dev); - gchar *systarget = g_file_read_link(path, NULL); - gchar *target = systarget ? g_filename_to_utf8(systarget, -1, NULL, NULL, NULL) : NULL; - gchar *pci_addy = target ? g_path_get_basename(target) : NULL; - e->nvme_controller = pci_addy ? pci_get_device_str(pci_addy) : NULL; - g_free(path); - g_free(systarget); - g_free(target); - g_free(pci_addy); - if (e->nvme_controller) { - e->vendors = vendor_list_append(e->vendors, - vendor_match(e->nvme_controller->vendor_id_str, NULL)); - e->vendors = vendor_list_append(e->vendors, - vendor_match(e->nvme_controller->sub_vendor_id_str, NULL)); - } -} - -GSList* get_udisks2_drives_ext(void){ - GSList *node, *list; - u2driveext* extdrive; - - list = get_udisks2_all_drives_info(); - - for (node = list; node != NULL; node = node->next) { - extdrive = u2drive_ext((udiskd *)node->data); - node->data = extdrive; - - if (!extdrive->d->vendor || !extdrive->d->vendor[0]) { - // sometimes vendors adds their name to the model field - const Vendor *v = vendor_match(extdrive->d->model, NULL); - if (v) - extdrive->d->vendor = g_strdup(v->name); - } - - check_sdcard_vendor(extdrive); - - extdrive->vendors = vendor_list_append(extdrive->vendors, vendor_match(extdrive->d->vendor, NULL)); - - // get OUI from WWID - if (extdrive->d->wwid) { - extdrive->wwid_oui.oui = get_oui_from_wwid(extdrive->d->wwid); - if (extdrive->wwid_oui.oui) { - extdrive->wwid_oui.vendor = get_oui_company(extdrive->wwid_oui.oui); - } - if (extdrive->wwid_oui.vendor){ - extdrive->vendors = vendor_list_append(extdrive->vendors, vendor_match(extdrive->wwid_oui.vendor, NULL)); - } - } - - // NVMe PCI device - if (strstr(extdrive->d->block_dev, "nvme")) { - set_nvme_controller_info(extdrive); - } - - extdrive->vendors = gg_slist_remove_null(extdrive->vendors); - extdrive->vendors = vendor_list_remove_duplicates_deep(extdrive->vendors); - - } - return list; -} - - -u2driveext* u2drive_ext(udiskd * udisks_drive_data) { - u2driveext* data = g_new0(u2driveext, 1); - data->d = udisks_drive_data; - return data; -} - -void u2driveext_free(u2driveext *u) { - if (u) { - udiskd_free(u->d); - g_free(u->wwid_oui.oui); - g_free(u->wwid_oui.vendor); - pcid_free(u->nvme_controller); - g_free(u); - } -} - -void storage_shutdown(){ - g_free(sdcard_ids_file); - g_free(oui_ids_file); -} diff --git a/hardinfo/udisks2_util.c b/hardinfo/udisks2_util.c deleted file mode 100644 index 8e6ebd94..00000000 --- a/hardinfo/udisks2_util.c +++ /dev/null @@ -1,639 +0,0 @@ -#include -#include "udisks2_util.h" - -#define UDISKS2_INTERFACE "org.freedesktop.UDisks2" -#define UDISKS2_MANAGER_INTERFACE "org.freedesktop.UDisks2.Manager" -#define UDISKS2_BLOCK_INTERFACE "org.freedesktop.UDisks2.Block" -#define UDISKS2_LOOP_INTERFACE "org.freedesktop.UDisks2.Loop" -#define UDISKS2_PARTITION_INTERFACE "org.freedesktop.UDisks2.Partition" -#define UDISKS2_PART_TABLE_INTERFACE "org.freedesktop.UDisks2.PartitionTable" -#define UDISKS2_DRIVE_INTERFACE "org.freedesktop.UDisks2.Drive" -#define UDISKS2_DRIVE_ATA_INTERFACE "org.freedesktop.UDisks2.Drive.Ata" -#define DBUS_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties" -#define UDISKS2_MANAGER_OBJ_PATH "/org/freedesktop/UDisks2/Manager" -#define UDISKS2_BLOCK_DEVICES_PATH "/org/freedesktop/UDisks2/block_devices" - -#define STRDUP_IF_NOT_EMPTY(S) (g_strcmp0(S, "") == 0) ? NULL: g_strdup(S); - -GDBusConnection* udisks2_conn = NULL; - -GVariant* get_dbus_property(GDBusProxy* proxy, const gchar *interface, - const gchar *property) { - GVariant *result, *v = NULL; - GError *error = NULL; - - result = g_dbus_proxy_call_sync(proxy, "Get", - g_variant_new ("(ss)", interface, property), - G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); - - if (error != NULL) { - g_error_free (error); - return NULL; - } - - g_variant_get(result, "(v)", &v); - g_variant_unref(result); - return v; -} - -// this function works with udisks2 version 2.7.2 or newer -GSList* get_block_dev_paths_from_udisks2(GDBusConnection* conn){ - GDBusProxy *proxy; - GVariant *options, *v; - GVariantIter *iter; - GError *error = NULL; - GSList *block_paths = NULL; - const gchar *block_path = NULL; - - proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, NULL, - UDISKS2_INTERFACE, UDISKS2_MANAGER_OBJ_PATH, - UDISKS2_MANAGER_INTERFACE, NULL, &error); - options = g_variant_new_parsed("@a{sv} { %s: }", - "auth.no_user_interaction"); - if (error != NULL){ - g_error_free (error); - g_object_unref(proxy); - return NULL; - } - - v = g_dbus_proxy_call_sync(proxy, "GetBlockDevices", - g_variant_new_tuple(&options, 1), - G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); - g_object_unref(proxy); - - if (error != NULL){ - g_error_free (error); - return NULL; - } - - g_variant_get(v, "(ao)", &iter); - while (g_variant_iter_loop (iter, "o", &block_path)){ - block_paths = g_slist_append(block_paths, g_strdup(block_path)); - } - - g_variant_iter_free (iter); - g_variant_unref(v); - return block_paths; -} - -GSList* get_block_dev_paths_from_sysfs(){ - GSList *block_paths = NULL; - GDir *dir; - gchar *path; - const gchar *entry; - - dir = g_dir_open("/sys/class/block", 0, NULL); - if (!dir) - return NULL; - - while ((entry = g_dir_read_name(dir))) { - path = g_strdup_printf("%s/%s", UDISKS2_BLOCK_DEVICES_PATH, entry); - block_paths = g_slist_append(block_paths, path); - } - - g_dir_close(dir); - return block_paths; -} - -GSList* udisks2_drives_func_caller(GDBusConnection* conn, - gpointer (*func)(const char*, GDBusProxy*, - GDBusProxy*, const char*)) { - GDBusProxy *block_proxy, *drive_proxy; - GVariant *block_v, *v; - GSList *result_list = NULL, *block_dev_list, *node; - GError *error = NULL; - gpointer output; - - gchar *block_path = NULL; - const gchar *block_dev, *drive_path = NULL; - - if (conn == NULL) - return NULL; - - // get block devices - block_dev_list = get_block_dev_paths_from_udisks2(conn); - if (block_dev_list == NULL) - block_dev_list = get_block_dev_paths_from_sysfs(); - - for (node = block_dev_list; node != NULL; node = node->next) { - block_path = (gchar *)node->data; - block_proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, - NULL, UDISKS2_INTERFACE, block_path, - DBUS_PROPERTIES_INTERFACE, NULL, &error); - if (error){ - g_error_free(error); - error = NULL; - continue; - } - - // Skip partitions - v = get_dbus_property(block_proxy, UDISKS2_PARTITION_INTERFACE, "Size"); - if (v){ - g_variant_unref(v); - g_object_unref(block_proxy); - continue; - } - - // Skip loop devices - v = get_dbus_property(block_proxy, UDISKS2_LOOP_INTERFACE, "BackingFile"); - if (v){ - g_variant_unref(v); - g_object_unref(block_proxy); - continue; - } - - block_dev = block_path + strlen(UDISKS2_BLOCK_DEVICES_PATH) + 1; - drive_path = NULL; - - // let's find drive proxy - v = get_dbus_property(block_proxy, UDISKS2_BLOCK_INTERFACE, "Drive"); - if (v){ - drive_path = g_variant_get_string(v, NULL); - - if (g_strcmp0(drive_path, "/") != 0){ - drive_proxy = g_dbus_proxy_new_sync(conn, - G_DBUS_PROXY_FLAGS_NONE, NULL, - UDISKS2_INTERFACE, drive_path, - DBUS_PROPERTIES_INTERFACE, NULL, &error); - - if (error == NULL) { - // call requested function - output = func(block_dev, block_proxy, drive_proxy, drive_path); - - if (output != NULL){ - result_list = g_slist_append(result_list, output); - } - g_object_unref(drive_proxy); - } - else { - g_error_free(error); - error = NULL; - } - } - g_variant_unref(v); - } - g_object_unref(block_proxy); - } - g_slist_free_full(block_dev_list, g_free); - - return result_list; -} - -GDBusConnection* get_udisks2_connection(void) { - GDBusConnection *conn; - GDBusProxy *proxy; - GError *error = NULL; - GVariant *result = NULL; - - // connection to system bus - conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); - if (error != NULL) { - g_error_free (error); - return NULL; - } - - // let's check if udisks2 is responding - proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, NULL, - UDISKS2_INTERFACE, UDISKS2_MANAGER_OBJ_PATH, - DBUS_PROPERTIES_INTERFACE, NULL, &error); - if (error != NULL) { - g_error_free (error); - g_object_unref(conn); - return NULL; - } - - result = get_dbus_property(proxy, UDISKS2_MANAGER_INTERFACE, "Version"); - g_object_unref(proxy); - if (error != NULL) { - g_error_free (error); - return NULL; - } - - // OK, let's return connection to system bus - g_variant_unref(result); - return conn; -} - -udiskt* udiskt_new() { - return g_new0(udiskt, 1); -} - -udisksa* udisksa_new() { - return g_new0(udisksa, 1); -} - -udiskp* udiskp_new() { - return g_new0(udiskp, 1); -} - -udiskd* udiskd_new() { - return g_new0(udiskd, 1); -} - - -void udiskt_free(udiskt *u) { - if (u) { - g_free(u->drive); - g_free(u); - } -} - -void udisksa_free(udisksa *u) { - if (u) { - g_free(u->identifier); - udisksa_free(u->next); - g_free(u); - } -} - -void udiskp_free(udiskp *u) { - if (u) { - g_free(u->block); - g_free(u->type); - g_free(u->version); - g_free(u->label); - udiskp_free(u->next); - g_free(u); - } -} - -void udiskd_free(udiskd *u) { - if (u) { - g_free(u->model); - g_free(u->vendor); - g_free(u->revision); - g_free(u->block_dev); - g_free(u->serial); - g_free(u->wwid); - g_free(u->connection_bus); - g_free(u->partition_table); - udiskp_free(u->partitions); - udisksa_free(u->smart_attributes); - g_free(u->media); - g_strfreev(u->media_compatibility); - g_free(u); - } -} - - -udiskp* get_udisks2_partition_info(const gchar *part_path) { - GVariant *v; - GDBusProxy *proxy; - GError *error = NULL; - udiskp* partition; - const gchar *str; - - if (!g_str_has_prefix(part_path, UDISKS2_BLOCK_DEVICES_PATH)) { - return NULL; - } - - partition = udiskp_new(); - partition->block = g_strdup(part_path + strlen(UDISKS2_BLOCK_DEVICES_PATH) + 1); - - proxy = g_dbus_proxy_new_sync(udisks2_conn, G_DBUS_PROXY_FLAGS_NONE, - NULL, UDISKS2_INTERFACE, part_path, - DBUS_PROPERTIES_INTERFACE, NULL, &error); - if (error == NULL) { - v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdLabel"); - if (v) { - str = g_variant_get_string(v, NULL); - partition->label = STRDUP_IF_NOT_EMPTY(str); - g_variant_unref(v); - } - v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdType"); - if (v) { - str = g_variant_dup_string(v, NULL); - partition->type = STRDUP_IF_NOT_EMPTY(str); - g_variant_unref(v); - } - v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdVersion"); - if (v) { - str = g_variant_dup_string(v, NULL); - partition->version = STRDUP_IF_NOT_EMPTY(str); - g_variant_unref(v); - } - v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "Size"); - if (v) { - partition->size = g_variant_get_uint64(v); - g_variant_unref(v); - } - } - else{ - g_error_free(error); - } - - g_object_unref(proxy); - return partition; -} - -gpointer get_udisks2_temp(const char *blockdev, GDBusProxy *block, - GDBusProxy *drive, const char *drivepath){ - GVariant *v; - gboolean smart_enabled = FALSE; - udiskt* disk_temp = NULL; - - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartEnabled"); - if (v) { - smart_enabled = g_variant_get_boolean(v); - g_variant_unref(v); - } - - if (!smart_enabled) { - return NULL; - } - - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartTemperature"); - if (v) { - disk_temp = udiskt_new(); - disk_temp->temperature = (gint32) (g_variant_get_double(v) - 273.15); - g_variant_unref(v); - } - - if (!disk_temp) { - return NULL; - } - - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Model"); - if (v) { - disk_temp->drive = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - - return disk_temp; -} - -gchar* get_udisks2_smart_attributes(udiskd* dsk, const char *drivepath){ - GDBusProxy *proxy; - GVariant *options, *v, *v2; - GVariantIter *iter; - GError *error = NULL; - const char* aidenf; - guint8 aid; - gint32 avalue, aworst, athreshold, pretty_unit; - gint64 pretty; - udisksa *lastp = NULL, *p; - - proxy = g_dbus_proxy_new_sync(udisks2_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, - UDISKS2_INTERFACE, drivepath, - UDISKS2_DRIVE_ATA_INTERFACE, NULL, &error); - - options = g_variant_new_parsed("@a{sv} { %s: }", - "auth.no_user_interaction"); - if (error != NULL){ - g_error_free (error); - return NULL; - } - - v = g_dbus_proxy_call_sync(proxy, "SmartGetAttributes", - g_variant_new_tuple(&options, 1), - G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); - g_object_unref(proxy); - - if (error != NULL){ - g_error_free (error); - g_object_unref(proxy); - return NULL; - } - - v2 = g_variant_get_child_value(v, 0); - iter = g_variant_iter_new(v2); - - // id(y), identifier(s), flags(q), value(i), worst(i), threshold(i), - // pretty(x), pretty_unit(i), expansion(a{sv}) - // pretty_unit = 0 (unknown), 1 (dimensionless), 2 (milliseconds), 3 (sectors), 4 (millikelvin). - while (g_variant_iter_loop (iter, "(ysqiiixia{sv})", &aid, &aidenf, NULL, &avalue, - &aworst, &athreshold, &pretty, &pretty_unit, NULL)){ - p = udisksa_new(); - p->id = aid; - p->identifier = g_strdup(aidenf); - p->value = avalue; - p->worst = aworst; - p->threshold = athreshold; - switch (pretty_unit){ - case 1: - p->interpreted_unit = UDSK_INTPVAL_DIMENSIONLESS; - p->interpreted = pretty; - break; - case 2: - if (pretty > 1000*60*60){ // > 1h - p->interpreted_unit = UDSK_INTPVAL_HOURS; - p->interpreted = pretty / (1000*60*60); - } - else{ - p->interpreted_unit = UDSK_INTPVAL_MILISECONDS; - p->interpreted = pretty; - } - break; - case 3: - p->interpreted_unit = UDSK_INTPVAL_SECTORS; - p->interpreted = pretty; - break; - case 4: - p->interpreted_unit = UDSK_INTPVAL_CELSIUS; - p->interpreted = (pretty - 273150) / 1000; //mK to °C - break; - default: - p->interpreted_unit = UDSK_INTPVAL_SKIP; - p->interpreted = -1; - break; - } - p->next = NULL; - - if (lastp == NULL) - dsk->smart_attributes = p; - else - lastp->next = p; - - lastp = p; - } - g_variant_iter_free (iter); - g_variant_unref(v2); - g_variant_unref(v); - - return NULL; -} - -gpointer get_udisks2_drive_info(const char *blockdev, GDBusProxy *block, - GDBusProxy *drive, const char *drivepath) { - GVariant *v; - GVariantIter *iter; - const gchar *str, *part; - udiskd *u = NULL; - udiskp **p = NULL; - gsize n, i; - u = udiskd_new(); - u->block_dev = g_strdup(blockdev); - - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Model"); - if (v){ - u->model = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Vendor"); - if (v){ - u->vendor = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Revision"); - if (v){ - u->revision = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Serial"); - if (v){ - u->serial = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "WWN"); - if (v){ - str = g_variant_get_string(v, NULL); - if (g_str_has_prefix(str, "0x")) { - u->wwid = g_strdup_printf("nna.%s", str+2); - } - else if (g_str_has_prefix(str, "nna.") || g_str_has_prefix(str, "eui.")) { - u->wwid = g_strdup(str); - } - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "ConnectionBus"); - if (v){ - u->connection_bus = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "RotationRate"); - if (v){ - u->rotation_rate = g_variant_get_int32(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Size"); - if (v){ - u->size = g_variant_get_uint64(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Media"); - if (v){ - str = g_variant_get_string(v, NULL); - if (strcmp(str, "") != 0) { - u->media = g_strdup(str); - } - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "MediaCompatibility"); - if (v){ - g_variant_get(v, "as", &iter); - n = g_variant_iter_n_children(iter); - u->media_compatibility = g_malloc0_n(n + 1, sizeof(gchar*)); - - i = 0; - while (g_variant_iter_loop (iter, "s", &str) && i < n){ - u->media_compatibility[i] = g_strdup(str); - i++; - } - - g_variant_iter_free (iter); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Ejectable"); - if (v){ - u->ejectable = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Removable"); - if (v){ - u->removable = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "PmSupported"); - if (v){ - u->pm_supported = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "ApmSupported"); - if (v){ - u->apm_supported = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "AamSupported"); - if (v){ - u->aam_supported = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartSupported"); - if (v){ - u->smart_supported = g_variant_get_boolean(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartEnabled"); - if (v){ - u->smart_enabled = g_variant_get_boolean(v); - g_variant_unref(v); - } - if (u->smart_enabled){ - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartPowerOnSeconds"); - if (v){ - u->smart_poweron = g_variant_get_uint64(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartNumBadSectors"); - if (v){ - u->smart_bad_sectors = g_variant_get_int64(v); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartTemperature"); - if (v){ - u->smart_temperature = (gint) (g_variant_get_double(v) - 273.15); - g_variant_unref(v); - } - v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartFailing"); - if (v){ - u->smart_failing = g_variant_get_boolean(v); - g_variant_unref(v); - } - get_udisks2_smart_attributes(u, drivepath); - } - - v = get_dbus_property(block, UDISKS2_PART_TABLE_INTERFACE, "Type"); - if (v){ - u->partition_table = g_variant_dup_string(v, NULL); - g_variant_unref(v); - } - // 'Partitions' property is available in udisks2 version 2.7.2 or newer - v = get_dbus_property(block, UDISKS2_PART_TABLE_INTERFACE, "Partitions"); - if (v){ - g_variant_get(v, "ao", &iter); - - p = &(u->partitions); - while (g_variant_iter_loop (iter, "o", &str)) { - *p = get_udisks2_partition_info(str); - if (*p != NULL){ - p = &((*p)->next); - } - } - - g_variant_iter_free (iter); - g_variant_unref(v); - } - - return u; -} - -GSList* get_udisks2_temps(void){ - return udisks2_drives_func_caller(udisks2_conn, get_udisks2_temp); -} - -GSList* get_udisks2_all_drives_info(void){ - return udisks2_drives_func_caller(udisks2_conn, get_udisks2_drive_info); -} - -void udisks2_init(){ - if (udisks2_conn == NULL){ - udisks2_conn = get_udisks2_connection(); - } -} - -void udisks2_shutdown(){ - if (udisks2_conn != NULL){ - g_object_unref(udisks2_conn); - udisks2_conn = NULL; - } -} diff --git a/hardinfo/usb_util.c b/hardinfo/usb_util.c deleted file mode 100644 index 6f9f9ef8..00000000 --- a/hardinfo/usb_util.c +++ /dev/null @@ -1,553 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2017 L. A. F. Pereira - * This file - * Copyright (C) 2017 Burt P. - * Copyright (C) 2019 Ondrej Čerman - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "usb_util.h" -#include "util_ids.h" - -#define SYSFS_DIR_USB_DEVICES "/sys/bus/usb/devices" - -gchar *usb_ids_file = NULL; - -usbi *usbi_new() { - return g_new0(usbi, 1); -} - -void usbi_free(usbi *s) { - if (s) { - g_free(s->if_label); - g_free(s->if_class_str); - g_free(s->if_subclass_str); - g_free(s->if_protocol_str); - g_free(s->driver); - g_free(s); - } -} - -void usbi_list_free(usbi *s) { - usbi *n; - while(s != NULL) { - n = s->next; - usbi_free(s); - s = n; - } -} - -usbd *usbd_new() { - return g_new0(usbd, 1); -} - -void usbd_free(usbd *s) { - if (s) { - usbi_list_free(s->if_list); - vendor_list_free(s->vendors); - g_free(s->vendor); - g_free(s->product); - g_free(s->manufacturer); - g_free(s->device); - g_free(s->usb_version); - g_free(s->device_version); - g_free(s->serial); - g_free(s->dev_class_str); - g_free(s->dev_subclass_str); - g_free(s->dev_protocol_str); - g_free(s); - } -} - -void usbd_list_free(usbd *s) { - usbd *n; - while(s != NULL) { - n = s->next; - usbd_free(s); - s = n; - } -} - -/* returns number of items after append */ -static int usbd_list_append(usbd *l, usbd *n) { - int c = 0; - while(l != NULL) { - c++; - if (l->next == NULL) { - if (n != NULL) { - l->next = n; - c++; - } - break; - } - l = l->next; - } - return c; -} - -/* returns new top of the list */ -static usbd *usbd_list_append_sorted(usbd *l, usbd *n) { - usbd *b = NULL; - usbd *t = l; - - if (n == NULL) - return l; - - while(l != NULL) { - if ((n->bus > l->bus) || - ((n->bus == l->bus) && (n->dev >= l->dev))) { - if (l->next == NULL) { - l->next = n; - break; - } - b = l; - l = l->next; - } - else { - if (b == NULL) { - t = n; - n->next = l; - } - else { - b->next = n; - n->next = l; - } - break; - } - } - - return t; -} - -gboolean usbd_append_interface(usbd *dev, usbi *new_if){ - usbi *curr_if; - if (dev->if_list == NULL){ - dev->if_list = new_if; - return TRUE; - } - - if (dev->if_list->if_number == new_if->if_number) - return FALSE; - - curr_if = dev->if_list; - while(curr_if->next != NULL) { - curr_if = curr_if->next; - if (curr_if->if_number == new_if->if_number) - return FALSE; - } - curr_if->next = new_if; - return TRUE; -} - -int usbd_list_count(usbd *s) { - return usbd_list_append(s, NULL); -} - -static char *lsusb_line_value(char *line, const char *prefix) { - if (g_str_has_prefix(line, prefix)) { - line += strlen(prefix) + 1; - return g_strstrip(line); - } else - return NULL; -} - -static gboolean usb_get_device_lsusb(int bus, int dev, usbd *s) { - gboolean spawned; - gchar *out, *err, *p, *l, *t, *next_nl; - gchar *lsusb_cmd = g_strdup_printf("lsusb -s %d:%d -v", bus, dev); - usbi *curr_if = NULL; // do not free - - s->bus = bus; - s->dev = dev; - - spawned = hardinfo_spawn_command_line_sync(lsusb_cmd, - &out, &err, NULL, NULL); - g_free(lsusb_cmd); - if (spawned) { - if (strstr(err, "information will be missing")) { - s->user_scan = TRUE; - } - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - - // device info - if (l = lsusb_line_value(p, "idVendor")) { - s->vendor_id = strtol(l, NULL, 0); - if (t = strchr(l, ' ')) - s->vendor = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "idProduct")) { - s->product_id = strtol(l, NULL, 0); - if (t = strchr(l, ' ')) - s->product = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "MaxPower")) { - s->max_curr_ma = atoi(l); - } else if (l = lsusb_line_value(p, "bcdUSB")) { - s->usb_version = g_strdup(l); - } else if (l = lsusb_line_value(p, "bcdDevice")) { - s->device_version = g_strdup(l); - } else if (l = lsusb_line_value(p, "bDeviceClass")) { - s->dev_class = atoi(l); - if (t = strchr(l, ' ')) - s->dev_class_str = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "bDeviceSubClass")) { - s->dev_subclass = atoi(l); - if (t = strchr(l, ' ')) - s->dev_subclass_str = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "bDeviceProtocol")) { - s->dev_protocol = atoi(l); - if (t = strchr(l, ' ')) - s->dev_protocol_str = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "iManufacturer")) { - if (t = strchr(l, ' ')) - s->manufacturer = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "iProduct")) { - if (t = strchr(l, ' ')) - s->device = g_strdup(t + 1); - } else if (l = lsusb_line_value(p, "iSerial")) { - if (t = strchr(l, ' ')) - s->serial = g_strdup(t + 1); - - // interface info - } else if (l = lsusb_line_value(p, "bInterfaceNumber")) { - curr_if = usbi_new(); - curr_if->if_number = atoi(l); - - // This may parse same interface multiple times when there - // are multiple Configuration descriptors per device - // As a workaround usbd_append_interface appends interface - // with same if_number only once - if (!usbd_append_interface(s, curr_if)){ - usbi_free(curr_if); - curr_if = NULL; - } - } else if (l = lsusb_line_value(p, "bInterfaceClass")) { - if (curr_if != NULL){ - curr_if->if_class = atoi(l); - if (t = strchr(l, ' ')) - curr_if->if_class_str = g_strdup(t + 1); - } - } else if (l = lsusb_line_value(p, "bInterfaceSubClass")) { - if (curr_if != NULL){ - curr_if->if_subclass = atoi(l); - if (t = strchr(l, ' ')) - curr_if->if_subclass_str = g_strdup(t + 1); - } - } else if (l = lsusb_line_value(p, "bInterfaceProtocol")) { - if (curr_if != NULL){ - curr_if->if_protocol = atoi(l); - if (t = strchr(l, ' ')) - curr_if->if_protocol_str = g_strdup(t + 1); - } - } else if (l = lsusb_line_value(p, "iInterface")) { - if (curr_if != NULL){ - if (t = strchr(l, ' ')) - curr_if->if_label = g_strdup(t + 1); - } - } - - p = next_nl + 1; - } - g_free(out); - g_free(err); - return TRUE; - } - return FALSE; -} - -static gboolean usb_get_interface_sysfs(int conf, int number, - const char* devpath, usbi *intf){ - gchar *ifpath, *drvpath, *tmp; - ids_query_result result = {}; - - ifpath = g_strdup_printf("%s:%d.%d", devpath, conf, number); - if (!g_file_test(ifpath, G_FILE_TEST_EXISTS)){ - return FALSE; - } - - tmp = g_strdup_printf("%s/driver", ifpath); - drvpath = g_file_read_link(tmp, NULL); - g_free(tmp); - if (drvpath){ - intf->driver = g_path_get_basename(drvpath); - g_free(drvpath); - } - else{ - intf->driver = g_strdup(_("(None)")); - } - - intf->if_number = number; - intf->if_class = h_sysfs_read_hex(ifpath, "bInterfaceClass"); - intf->if_subclass = h_sysfs_read_hex(ifpath, "bInterfaceSubClass"); - intf->if_protocol = h_sysfs_read_hex(ifpath, "bInterfaceProtocol"); - - if (intf->if_label == NULL) - intf->if_label = h_sysfs_read_string(ifpath, "interface"); - - if (intf->if_class_str == NULL && intf->if_subclass_str == NULL - && intf->if_protocol_str == NULL) { - tmp = g_strdup_printf("C %02x/%02x/%02x", intf->if_class, - intf->if_subclass, intf->if_protocol); - scan_ids_file(usb_ids_file, tmp, &result, -1); - if (result.results[0]) - intf->if_class_str = g_strdup(result.results[0]); - if (result.results[1]) - intf->if_subclass_str = g_strdup(result.results[1]); - if (result.results[2]) - intf->if_protocol_str = g_strdup(result.results[2]); - g_free(tmp); - } - - g_free(ifpath); - return TRUE; -} - -static void find_usb_ids_file() { - if (usb_ids_file) return; - char *file_search_order[] = { - g_build_filename(g_get_user_config_dir(), "hardinfo", "usb.ids", NULL), - g_build_filename(params.path_data, "usb.ids", NULL), - NULL - }; - int n; - for(n = 0; file_search_order[n]; n++) { - if (!usb_ids_file && !access(file_search_order[n], R_OK)) - usb_ids_file = file_search_order[n]; - else - g_free(file_search_order[n]); - } -} - -void usb_lookup_ids_vendor_product_str(gint vendor_id, gint product_id, - gchar **vendor_str, gchar **product_str) { - ids_query_result result = {}; - gchar *qpath; - - if (!usb_ids_file) - find_usb_ids_file(); - if (!usb_ids_file) - return; - - qpath = g_strdup_printf("%04x/%04x", vendor_id, product_id); - scan_ids_file(usb_ids_file, qpath, &result, -1); - if (result.results[0]) - *vendor_str = g_strdup(result.results[0]); - if (result.results[1]) - *product_str = g_strdup(result.results[1]); - g_free(qpath); -} - -static gboolean usb_get_device_sysfs(int bus, int dev, const char* sysfspath, usbd *s) { - usbi *intf; - gboolean ok; - int i, if_count = 0, conf = 0, ver; - ids_query_result result = {}; - gchar *qpath; - - if (sysfspath == NULL) - return FALSE; - - if (!usb_ids_file) - find_usb_ids_file(); - - s->bus = bus; - s->dev = dev; - s->dev_class = h_sysfs_read_hex(sysfspath, "bDeviceClass"); - s->vendor_id = h_sysfs_read_hex(sysfspath, "idVendor"); - s->product_id = h_sysfs_read_hex(sysfspath, "idProduct"); - s->manufacturer = h_sysfs_read_string(sysfspath, "manufacturer"); - s->device = h_sysfs_read_string(sysfspath, "product"); - s->max_curr_ma = h_sysfs_read_int(sysfspath, "bMaxPower"); - s->dev_class = h_sysfs_read_hex(sysfspath, "bDeviceClass"); - s->dev_subclass = h_sysfs_read_hex(sysfspath, "bDeviceSubClass"); - s->dev_protocol = h_sysfs_read_hex(sysfspath, "bDeviceProtocol"); - s->speed_mbs = h_sysfs_read_int(sysfspath, "speed"); - - if (s->product == NULL && s->vendor == NULL) { - qpath = g_strdup_printf("%04x/%04x", s->vendor_id, s->product_id); - scan_ids_file(usb_ids_file, qpath, &result, -1); - if (result.results[0]) - s->vendor = g_strdup(result.results[0]); - if (result.results[1]) - s->product = g_strdup(result.results[1]); - g_free(qpath); - } - - if (s->dev_class_str == NULL && s->dev_subclass_str == NULL - && s->dev_protocol_str == NULL) { - qpath = g_strdup_printf("C %02x/%02x/%02x", s->dev_class, - s->dev_subclass, s->dev_protocol); - scan_ids_file(usb_ids_file, qpath, &result, -1); - if (result.results[0]) - s->dev_class_str = g_strdup(result.results[0]); - if (result.results[1]) - s->dev_subclass_str = g_strdup(result.results[1]); - if (result.results[2]) - s->dev_protocol_str = g_strdup(result.results[2]); - g_free(qpath); - } - - conf = h_sysfs_read_hex(sysfspath, "bConfigurationValue"); - - if (s->usb_version == NULL) - s->usb_version = h_sysfs_read_string(sysfspath, "version"); - - if (s->serial == NULL) - s->serial = h_sysfs_read_string(sysfspath, "serial"); - - if (s->device_version == NULL) { - ver = h_sysfs_read_int(sysfspath, "bcdDevice"); - if (ver > 0){ - s->device_version = g_strdup_printf("%d.%02d", ver/100, ver%100); - } - } - - if (s->if_list == NULL){ // create interfaces list - if_count = h_sysfs_read_int(sysfspath, "bNumInterfaces"); - for (i = 0; i <= if_count; i++){ - intf = usbi_new(); - ok = usb_get_interface_sysfs(conf, i, sysfspath, intf); - if (ok){ - if (!usbd_append_interface(s, intf)){ - usbi_free(intf); - } - } - else{ - usbi_free(intf); - } - } - } - else{ // improve existing list - intf = s->if_list; - while (intf){ - usb_get_interface_sysfs(conf, intf->if_number, sysfspath, intf); - intf = intf->next; - } - } - - return TRUE; -} - -usbd *usb_get_device(int bus, int dev, const gchar* sysfspath) { - usbd *s = usbd_new(); - int ok = 0; - if (s) { - /* try sysfs */ - ok = usb_get_device_sysfs(bus, dev, sysfspath, s); - if (!ok) { - /* try lsusb */ - ok = usb_get_device_lsusb(bus, dev, s); - } - if (!ok) { - usbd_free(s); - s = NULL; - } - } - return s; -} - -static usbd *usb_get_device_list_lsusb() { - gboolean spawned; - gchar *out, *err, *p, *next_nl; - usbd *head = NULL, *nd; - int bus, dev, vend, prod, ec; - - spawned = hardinfo_spawn_command_line_sync("lsusb", - &out, &err, NULL, NULL); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - ec = sscanf(p, "Bus %d Device %d: ID %x:%x", &bus, &dev, &vend, &prod); - if (ec == 4) { - nd = usb_get_device(bus, dev, NULL); - if (head == NULL) { - head = nd; - } else { - usbd_list_append(head, nd); - } - } - p = next_nl + 1; - } - g_free(out); - g_free(err); - } - return head; -} - -static usbd *usb_get_device_list_sysfs() { - GDir *dir; - GRegex *regex; - GMatchInfo *match_info; - usbd *head = NULL, *nd; - gchar *devpath; - const char *entry; - int bus, dev; - - regex = g_regex_new("^([0-9]+-[0-9]+([.][0-9]+)*)|(usb[0-9]+)$", 0, 0, NULL); - if (!regex){ - return NULL; - } - - dir = g_dir_open(SYSFS_DIR_USB_DEVICES, 0, NULL); - if (!dir){ - return NULL; - } - - while ((entry = g_dir_read_name(dir))) { - g_regex_match(regex, entry, 0, &match_info); - - if (g_match_info_matches(match_info)) { - devpath = g_build_filename(SYSFS_DIR_USB_DEVICES, entry, NULL); - bus = h_sysfs_read_int(devpath, "busnum"); - dev = h_sysfs_read_int(devpath, "devnum"); - - if (bus > 0 && dev > 0){ - nd = usb_get_device(bus, dev, devpath); - if (head == NULL) { - head = nd; - } else { - head = usbd_list_append_sorted(head, nd); - } - } - g_free(devpath); - } - g_match_info_free(match_info); - } - - g_dir_close(dir); - g_regex_unref(regex); - - return head; -} - -usbd *usb_get_device_list() { - usbd *lst, *l; - - lst = usb_get_device_list_sysfs(); - if (lst == NULL) - lst = usb_get_device_list_lsusb(); - - l = lst; - while(l) { - l->vendors = vendor_list_remove_duplicates_deep(vendors_match(l->vendor, l->manufacturer, NULL)); - l = l->next; - } - - return lst; -} diff --git a/hardinfo/util.c b/hardinfo/util.c deleted file mode 100644 index 38c7bce1..00000000 --- a/hardinfo/util.c +++ /dev/null @@ -1,1445 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2007 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* - * Functions h_strdup_cprintf and h_strconcat are based on GLib version 2.4.6 - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library 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; either - * version 2 of the License, or (at your option) any later version. - * - */ - -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#define KiB 1024 -#define MiB 1048576 -#define GiB 1073741824 -#define TiB 1099511627776 -#define PiB 1125899906842624 - -static GSList *modules_list = NULL; - -void sync_manager_clear_entries(void); - -gchar *find_program(gchar *program_name) -{ - int i; - char *temp; - static GHashTable *cache = NULL; - const char *path[] = { "/usr/local/bin", "/usr/local/sbin", - "/usr/bin", "/usr/sbin", - "/bin", "/sbin", - NULL }; - - /* we don't need to call stat() every time: cache the results */ - if (!cache) { - cache = g_hash_table_new(g_str_hash, g_str_equal); - } else if ((temp = g_hash_table_lookup(cache, program_name))) { - return g_strdup(temp); - } - - for (i = 0; path[i]; i++) { - temp = g_build_filename(path[i], program_name, NULL); - - if (g_file_test(temp, G_FILE_TEST_IS_EXECUTABLE)) { - g_hash_table_insert(cache, program_name, g_strdup(temp)); - return temp; - } - - g_free(temp); - } - - /* our search has failed; use GLib's search (which uses $PATH env var) */ - if ((temp = g_find_program_in_path(program_name))) { - g_hash_table_insert(cache, program_name, g_strdup(temp)); - return temp; - } - - return NULL; -} - -gchar *seconds_to_string(unsigned int seconds) -{ - unsigned int hours, minutes, days; - const gchar *days_fmt, *hours_fmt, *minutes_fmt, *seconds_fmt; - gchar *full_fmt, *ret = g_strdup(""); - - minutes = seconds / 60; - seconds %= 60; - hours = minutes / 60; - minutes %= 60; - days = hours / 24; - hours %= 24; - - days_fmt = ngettext("%d day", "%d days", days); - hours_fmt = ngettext("%d hour", "%d hours", hours); - minutes_fmt = ngettext("%d minute", "%d minutes", minutes); - seconds_fmt = ngettext("%d second", "%d seconds", seconds); - - if (days) { - full_fmt = g_strdup_printf("%s %s %s %s", days_fmt, hours_fmt, minutes_fmt, seconds_fmt); - ret = g_strdup_printf(full_fmt, days, hours, minutes, seconds); - } else if (hours) { - full_fmt = g_strdup_printf("%s %s %s", hours_fmt, minutes_fmt, seconds_fmt); - ret = g_strdup_printf(full_fmt, hours, minutes, seconds); - } else if (minutes) { - full_fmt = g_strdup_printf("%s %s", minutes_fmt, seconds_fmt); - ret = g_strdup_printf(full_fmt, minutes, seconds); - } else { - ret = g_strdup_printf(seconds_fmt, seconds); - } - g_free(full_fmt); - return ret; -} - -gchar *size_human_readable(gfloat size) -{ - if (size < KiB) - return g_strdup_printf(_("%.1f B"), size); - if (size < MiB) - return g_strdup_printf(_("%.1f KiB"), size / KiB); - if (size < GiB) - return g_strdup_printf(_("%.1f MiB"), size / MiB); - if (size < TiB) - return g_strdup_printf(_("%.1f GiB"), size / GiB); - if (size < PiB) - return g_strdup_printf(_("%.1f TiB"), size / TiB); - - return g_strdup_printf(_("%.1f PiB"), size / PiB); -} - -char *strend(gchar * str, gchar chr) -{ - if (!str) - return NULL; - - char *p; - if ((p = g_utf8_strchr(str, -1, chr))) - *p = 0; - - return str; -} - -void remove_quotes(gchar * str) -{ - if (!str) - return; - - while (*str == '"') - *(str++) = ' '; - - strend(str, '"'); -} - -void remove_linefeed(gchar * str) -{ - strend(str, '\n'); -} - -void widget_set_cursor(GtkWidget * widget, GdkCursorType cursor_type) -{ - GdkCursor *cursor; - GdkDisplay *display; - GdkWindow *gdk_window; - - display = gtk_widget_get_display(widget); - cursor = gdk_cursor_new_for_display(display, cursor_type); - gdk_window = gtk_widget_get_window(widget); - if (cursor) { - gdk_window_set_cursor(gdk_window, cursor); - gdk_display_flush(display); -#if GTK_CHECK_VERSION(3, 0, 0) - g_object_unref(cursor); -#else - gdk_cursor_unref(cursor); -#endif - } - - while (gtk_events_pending()) - gtk_main_iteration(); -} - -static gboolean __nonblock_cb(gpointer data) -{ - gtk_main_quit(); - return FALSE; -} - -void nonblock_sleep(guint msec) -{ - g_timeout_add(msec, (GSourceFunc) __nonblock_cb, NULL); - gtk_main(); -} - -static void __expand_cb(GtkWidget * widget, gpointer data) -{ - if (GTK_IS_EXPANDER(widget)) { - gtk_expander_set_expanded(GTK_EXPANDER(widget), TRUE); - } else if (GTK_IS_CONTAINER(widget)) { - gtk_container_foreach(GTK_CONTAINER(widget), - (GtkCallback) __expand_cb, NULL); - } -} - -void file_chooser_open_expander(GtkWidget * chooser) -{ - gtk_container_foreach(GTK_CONTAINER(chooser), - (GtkCallback) __expand_cb, NULL); -} - -void file_chooser_add_filters(GtkWidget * chooser, FileTypes * filters) -{ - GtkFileFilter *filter; - gint i; - - for (i = 0; filters[i].name; i++) { - filter = gtk_file_filter_new(); - gtk_file_filter_add_mime_type(filter, filters[i].mime_type); - gtk_file_filter_set_name(filter, filters[i].name); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); - } -} - -gchar *file_chooser_get_extension(GtkWidget * chooser, FileTypes * filters) -{ - GtkFileFilter *filter; - const gchar *filter_name; - gint i; - - filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(chooser)); - filter_name = gtk_file_filter_get_name(filter); - for (i = 0; filters[i].name; i++) { - if (g_str_equal(filter_name, filters[i].name)) { - return filters[i].extension; - } - } - - return NULL; -} - -gpointer file_types_get_data_by_name(FileTypes * filters, gchar * filename) -{ - gint i; - - for (i = 0; filters[i].name; i++) { - if (g_str_has_suffix(filename, filters[i].extension)) { - return filters[i].data; - } - } - - return NULL; -} - -gchar *file_chooser_build_filename(GtkWidget * chooser, gchar * extension) -{ - gchar *filename = - gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); - gchar *retval; - - if (g_str_has_suffix(filename, extension)) { - return filename; - } - - retval = g_strconcat(filename, extension, NULL); - g_free(filename); - - return retval; -} - -gboolean binreloc_init(gboolean try_hardcoded) -{ - GError *error = NULL; - gchar *tmp; - - DEBUG("initializing binreloc (hardcoded = %d)", try_hardcoded); - - /* If the runtime data directories we previously found, don't even try - to find them again. */ - if (params.path_data && params.path_lib) { - DEBUG("data and lib path already found."); - return TRUE; - } - - if (try_hardcoded || !gbr_init(&error)) { - /* We were asked to try hardcoded paths or BinReloc failed to initialize. */ - params.path_data = g_strdup(PREFIX); - params.path_lib = g_strdup(LIBPREFIX); - - if (error) { - g_error_free(error); - } - - DEBUG("%strying hardcoded paths.", - try_hardcoded ? "" : "binreloc init failed. "); - } else { - /* If we were able to initialize BinReloc, build the default data - and library paths. */ - DEBUG("done, trying to use binreloc paths."); - - tmp = gbr_find_data_dir(PREFIX); - params.path_data = g_build_filename(tmp, "hardinfo", NULL); - g_free(tmp); - - tmp = gbr_find_lib_dir(PREFIX); - params.path_lib = g_build_filename(tmp, "hardinfo", NULL); - g_free(tmp); - } - - DEBUG("searching for runtime data on these locations:"); - DEBUG(" lib: %s", params.path_lib); - DEBUG(" data: %s", params.path_data); - - /* Try to see if the uidefs.xml file isn't missing. This isn't the - definitive test, but it should do okay for most situations. */ - tmp = g_build_filename(params.path_data, "benchmark.data", NULL); - if (!g_file_test(tmp, G_FILE_TEST_EXISTS)) { - DEBUG("runtime data not found"); - - g_free(params.path_data); - g_free(params.path_lib); - g_free(tmp); - - params.path_data = params.path_lib = NULL; - - if (try_hardcoded) { - /* We tried the hardcoded paths, but still was unable to find the - runtime data. Give up. */ - DEBUG("giving up"); - return FALSE; - } else { - /* Even though BinReloc worked OK, the runtime data was not found. - Try the hardcoded paths. */ - DEBUG("trying to find elsewhere"); - return binreloc_init(TRUE); - } - } - g_free(tmp); - - DEBUG("runtime data found!"); - /* We found the runtime data; hope everything is fine */ - return TRUE; -} - -static void -log_handler(const gchar * log_domain, - GLogLevelFlags log_level, - const gchar * message, gpointer user_data) -{ - if (!params.gui_running) { - /* No GUI running: spit the message to the terminal */ - g_print("\n\n*** %s: %s\n\n", - (log_level & G_LOG_FLAG_FATAL) ? _("Error") : _("Warning"), - message); - } else { - /* Hooray! We have a GUI running! */ - GtkWidget *dialog; - - dialog = gtk_message_dialog_new_with_markup(NULL, GTK_DIALOG_MODAL, - (log_level & - G_LOG_FLAG_FATAL) ? - GTK_MESSAGE_ERROR : - GTK_MESSAGE_WARNING, - GTK_BUTTONS_CLOSE, - "%s\n\n%s", - (log_level & - G_LOG_FLAG_FATAL) ? - _("Fatal Error") : - _("Warning"), message); - - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); - } -} - -void parameters_init(int *argc, char ***argv, ProgramParameters * param) -{ - static gboolean create_report = FALSE; - static gboolean force_all_details = FALSE; - static gboolean show_version = FALSE; - static gboolean list_modules = FALSE; - static gboolean autoload_deps = FALSE; - static gboolean run_xmlrpc_server = FALSE; - static gboolean skip_benchmarks = FALSE; - static gboolean quiet = FALSE; - static gchar *report_format = NULL; - static gchar *run_benchmark = NULL; - static gchar *result_format = NULL; - static gchar *bench_user_note = NULL; - static gchar **use_modules = NULL; - static gint max_bench_results = 10; - - static GOptionEntry options[] = { - { - .long_name = "quiet", - .short_name = 'q', - .arg = G_OPTION_ARG_NONE, - .arg_data = &quiet, - .description = N_("do not print status messages to standard output")}, - { - .long_name = "generate-report", - .short_name = 'r', - .arg = G_OPTION_ARG_NONE, - .arg_data = &create_report, - .description = N_("creates a report and prints to standard output")}, - { - .long_name = "report-format", - .short_name = 'f', - .arg = G_OPTION_ARG_STRING, - .arg_data = &report_format, - .description = N_("chooses a report format ([text], html)")}, - { - .long_name = "run-benchmark", - .short_name = 'b', - .arg = G_OPTION_ARG_STRING, - .arg_data = &run_benchmark, - .description = N_("run benchmark; requires benchmark.so to be loaded")}, - { - .long_name = "user-note", - .short_name = 'u', - .arg = G_OPTION_ARG_STRING, - .arg_data = &bench_user_note, - .description = N_("note attached to benchmark results")}, - { - .long_name = "result-format", - .short_name = 'g', - .arg = G_OPTION_ARG_STRING, - .arg_data = &result_format, - .description = N_("benchmark result format ([short], conf, shell)")}, - { - .long_name = "max-results", - .short_name = 'n', - .arg = G_OPTION_ARG_INT, - .arg_data = &max_bench_results, - .description = N_("maximum number of benchmark results to include (-1 for no limit, default is 10)")}, - { - .long_name = "list-modules", - .short_name = 'l', - .arg = G_OPTION_ARG_NONE, - .arg_data = &list_modules, - .description = N_("lists modules")}, - { - .long_name = "load-module", - .short_name = 'm', - .arg = G_OPTION_ARG_STRING_ARRAY, - .arg_data = &use_modules, - .description = N_("specify module to load")}, - { - .long_name = "autoload-deps", - .short_name = 'a', - .arg = G_OPTION_ARG_NONE, - .arg_data = &autoload_deps, - .description = N_("automatically load module dependencies")}, -#ifdef HAS_LIBSOUP - { - .long_name = "xmlrpc-server", - .short_name = 'x', - .arg = G_OPTION_ARG_NONE, - .arg_data = &run_xmlrpc_server, - .description = N_("run in XML-RPC server mode")}, -#endif /* HAS_LIBSOUP */ - { - .long_name = "version", - .short_name = 'v', - .arg = G_OPTION_ARG_NONE, - .arg_data = &show_version, - .description = N_("shows program version and quit")}, - { - .long_name = "skip-benchmarks", - .short_name = 's', - .arg = G_OPTION_ARG_NONE, - .arg_data = &skip_benchmarks, - .description = N_("do not run benchmarks")}, - { - .long_name = "very-verbose", - .short_name = 'w', /* like -vv */ - .arg = G_OPTION_ARG_NONE, - .arg_data = &force_all_details, - .description = N_("show all details")}, - {NULL} - }; - GOptionContext *ctx; - - ctx = g_option_context_new(_("- System Profiler and Benchmark tool")); - g_option_context_set_ignore_unknown_options(ctx, FALSE); - g_option_context_set_help_enabled(ctx, TRUE); - - g_option_context_add_main_entries(ctx, options, *(argv)[0]); - g_option_context_parse(ctx, argc, argv, NULL); - - g_option_context_free(ctx); - - if (*argc >= 2) { - g_print(_("Unrecognized arguments.\n" - "Try ``%s --help'' for more information.\n"), *(argv)[0]); - exit(1); - } - - param->create_report = create_report; - param->report_format = REPORT_FORMAT_TEXT; - param->show_version = show_version; - param->list_modules = list_modules; - param->use_modules = use_modules; - param->run_benchmark = run_benchmark; - param->result_format = result_format; - param->max_bench_results = max_bench_results; - param->autoload_deps = autoload_deps; - param->run_xmlrpc_server = run_xmlrpc_server; - param->skip_benchmarks = skip_benchmarks; - param->force_all_details = force_all_details; - param->quiet = quiet; - param->argv0 = *(argv)[0]; - - if (report_format) { - if (g_str_equal(report_format, "html")) - param->report_format = REPORT_FORMAT_HTML; - if (g_str_equal(report_format, "shell")) - param->report_format = REPORT_FORMAT_SHELL; - } - - /* clean user note */ - if (bench_user_note) { - char *p = NULL; - while(p = strchr(bench_user_note, ';')) { *p = ','; } - param->bench_user_note = - gg_key_file_parse_string_as_value(bench_user_note, '|'); - } - - /* html ok? - * gui: yes - * report html: yes - * report text: no - * anything else? */ - param->markup_ok = TRUE; - if (param->create_report && param->report_format != REPORT_FORMAT_HTML) - param->markup_ok = FALSE; - - // TODO: fmt_opts: FMT_OPT_ATERM, FMT_OPT_HTML, FMT_OPT_PANGO... - param->fmt_opts = FMT_OPT_NONE; - - gchar *confdir = g_build_filename(g_get_user_config_dir(), "hardinfo", NULL); - if (!g_file_test(confdir, G_FILE_TEST_EXISTS)) { - mkdir(confdir, 0744); - } - g_free(confdir); -} - -gboolean ui_init(int *argc, char ***argv) -{ - DEBUG("initializing gtk+ UI"); - - g_set_application_name("HardInfo"); - g_log_set_handler(NULL, - G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | - G_LOG_LEVEL_ERROR, log_handler, NULL); - - return gtk_init_check(argc, argv); -} - -/* Copyright: Jens Låås, SLU 2002 */ -gchar *strreplacechr(gchar * string, gchar * replace, gchar new_char) -{ - gchar *s; - for (s = string; *s; s++) - if (strchr(replace, *s)) - *s = new_char; - - return string; -} - -gchar *strreplace(gchar *string, gchar *replace, gchar *replacement) -{ - gchar **tmp, *ret; - - tmp = g_strsplit(string, replace, 0); - ret = g_strjoinv(replacement, tmp); - g_strfreev(tmp); - - return ret; -} - -static GHashTable *__module_methods = NULL; - -static void module_register_methods(ShellModule * module) -{ - const ShellModuleMethod *(*get_methods)(void); - gchar *method_name; - - if (__module_methods == NULL) { - __module_methods = g_hash_table_new(g_str_hash, g_str_equal); - } - - if (g_module_symbol - (module->dll, "hi_exported_methods", (gpointer)&get_methods)) { - const ShellModuleMethod *methods; - - for (methods = get_methods(); methods->name; methods++) { - ShellModuleMethod method = *methods; - gchar *name = g_path_get_basename(g_module_name(module->dll)); - gchar *simple_name = strreplace(name, "lib", ""); - - strend(simple_name, '.'); - - method_name = g_strdup_printf("%s::%s", simple_name, method.name); - g_hash_table_insert(__module_methods, method_name, - method.function); - g_free(name); - g_free(simple_name); - } - } - -} - -gchar *module_call_method(gchar * method) -{ - gchar *(*function) (void); - - if (__module_methods == NULL) { - return NULL; - } - - function = g_hash_table_lookup(__module_methods, method); - return function ? g_strdup(function()) : NULL; -} - -/* FIXME: varargs? */ -gchar *module_call_method_param(gchar * method, gchar * parameter) -{ - gchar *(*function) (gchar *param); - - if (__module_methods == NULL) { - return NULL; - } - - function = g_hash_table_lookup(__module_methods, method); - return function ? g_strdup(function(parameter)) : NULL; -} - -static gboolean remove_module_methods(gpointer key, gpointer value, gpointer data) -{ - return g_str_has_prefix(key, data); -} - -static void module_unload(ShellModule * module) -{ - GSList *entry; - - if (module->dll) { - gchar *name; - - if (module->deinit) { - DEBUG("cleaning up module \"%s\"", module->name); - module->deinit(); - } else { - DEBUG("module \"%s\" does not need cleanup", module->name); - } - - name = g_path_get_basename(g_module_name(module->dll)); - g_hash_table_foreach_remove(__module_methods, remove_module_methods, name); - - g_module_close(module->dll); - g_free(name); - } - - g_free(module->name); - g_object_unref(module->icon); - - for (entry = module->entries; entry; entry = entry->next) { - ShellModuleEntry *e = (ShellModuleEntry *)entry->data; - - g_source_remove_by_user_data(e); - g_free(e); - } - - g_slist_free(module->entries); - g_free(module); -} - - -void module_unload_all(void) -{ - Shell *shell; - GSList *module, *merge_id; - - shell = shell_get_main_shell(); - - sync_manager_clear_entries(); - shell_clear_timeouts(shell); - shell_clear_tree_models(shell); - shell_clear_field_updates(); - shell_set_title(shell, NULL); - - for (module = shell->tree->modules; module; module = module->next) { - module_unload((ShellModule *)module->data); - } - - for (merge_id = shell->merge_ids; merge_id; merge_id = merge_id->next) { - gtk_ui_manager_remove_ui(shell->ui_manager, - GPOINTER_TO_INT(merge_id->data)); - } - g_slist_free(shell->tree->modules); - g_slist_free(shell->merge_ids); - - shell->merge_ids = NULL; - shell->tree->modules = NULL; - shell->selected = NULL; -} - -static ShellModule *module_load(gchar * filename) -{ - ShellModule *module; - gchar *tmp; - - module = g_new0(ShellModule, 1); - - if (params.gui_running) { - gchar *tmpicon, *dot, *simple_name; - - tmpicon = g_strdup(filename); - dot = g_strrstr(tmpicon, "." G_MODULE_SUFFIX); - - *dot = '\0'; - - simple_name = strreplace(tmpicon, "lib", ""); - - tmp = g_strdup_printf("%s.png", simple_name); - module->icon = icon_cache_get_pixbuf(tmp); - - g_free(tmp); - g_free(tmpicon); - g_free(simple_name); - } - - tmp = g_build_filename(params.path_lib, "modules", filename, NULL); - module->dll = g_module_open(tmp, G_MODULE_BIND_LAZY); - DEBUG("gmodule resource for ``%s'' is %p (%s)", tmp, module->dll, g_module_error()); - g_free(tmp); - - if (module->dll) { - void (*init) (void); - ModuleEntry *(*get_module_entries) (void); - gint(*weight_func) (void); - gchar *(*name_func) (void); - ModuleEntry *entries; - gint i = 0; - - if (!g_module_symbol(module->dll, "hi_module_get_entries", (gpointer) & get_module_entries) || - !g_module_symbol(module->dll, "hi_module_get_name", (gpointer) & name_func)) { - DEBUG("cannot find needed symbols; is ``%s'' a real module?", filename); - goto failed; - } - - if (g_module_symbol(module->dll, "hi_module_init", (gpointer) & init)) { - DEBUG("initializing module ``%s''", filename); - init(); - } - - g_module_symbol(module->dll, "hi_module_get_weight", - (gpointer) & weight_func); - - module->weight = weight_func ? weight_func() : 0; - module->name = name_func(); - - g_module_symbol(module->dll, "hi_module_get_about", - (gpointer) & (module->aboutfunc)); - g_module_symbol(module->dll, "hi_module_deinit", - (gpointer) & (module->deinit)); - g_module_symbol(module->dll, "hi_module_get_summary", - (gpointer) & (module->summaryfunc)); - - entries = get_module_entries(); - while (entries[i].name) { - if (*entries[i].name == '#') { i++; continue; } /* skip */ - - ShellModuleEntry *entry = g_new0(ShellModuleEntry, 1); - - if (params.gui_running) { - entry->icon = icon_cache_get_pixbuf(entries[i].icon); - } - entry->icon_file = entries[i].icon; - - g_module_symbol(module->dll, "hi_more_info", - (gpointer) & (entry->morefunc)); - g_module_symbol(module->dll, "hi_get_field", - (gpointer) & (entry->fieldfunc)); - g_module_symbol(module->dll, "hi_note_func", - (gpointer) & (entry->notefunc)); - - entry->name = _(entries[i].name); //gettext unname N_() in computer.c line 67 etc... - entry->scan_func = entries[i].scan_callback; - entry->func = entries[i].callback; - entry->number = i; - entry->flags = entries[i].flags; - - module->entries = g_slist_append(module->entries, entry); - - i++; - } - - DEBUG("registering methods for module ``%s''", filename); - module_register_methods(module); - } else { - DEBUG("cannot g_module_open(``%s''). permission problem?", filename); - failed: - DEBUG("loading module %s failed: %s", filename, g_module_error()); - - g_free(module->name); - g_free(module); - module = NULL; - } - - return module; -} - -static gboolean module_in_module_list(gchar * module, gchar ** module_list) -{ - int i = 0; - - if (!module_list) - return TRUE; - - for (; module_list[i]; i++) { - if (g_str_equal(module_list[i], module)) - return TRUE; - } - - return FALSE; -} - -static gint module_cmp(gconstpointer m1, gconstpointer m2) -{ - ShellModule *a = (ShellModule *) m1; - ShellModule *b = (ShellModule *) m2; - - return a->weight - b->weight; -} - -#if 0 -static void module_entry_free(gpointer data, gpointer user_data) -{ - ShellModuleEntry *entry = (ShellModuleEntry *) data; - - if (entry) { - g_free(entry->name); - g_object_unref(entry->icon); - - g_free(entry); - } -} -#endif - -const ModuleAbout *module_get_about(ShellModule * module) -{ - if (module->aboutfunc) { - return module->aboutfunc(); - } - - return NULL; -} - -static GSList *modules_check_deps(GSList * modules) -{ - GSList *mm; - ShellModule *module; - - for (mm = modules; mm; mm = mm->next) { - gchar **(*get_deps) (void); - gchar **deps; - gint i; - - module = (ShellModule *) mm->data; - - if (g_module_symbol(module->dll, "hi_module_get_dependencies", - (gpointer) & get_deps)) { - for (i = 0, deps = get_deps(); deps[i]; i++) { - GSList *l; - ShellModule *m; - gboolean found = FALSE; - - for (l = modules; l && !found; l = l->next) { - m = (ShellModule *) l->data; - gchar *name = g_path_get_basename(g_module_name(m->dll)); - - found = g_str_equal(name, deps[i]); - g_free(name); - } - - if (!found) { - if (params.autoload_deps) { - ShellModule *mod = module_load(deps[i]); - - if (mod) - modules = g_slist_append(modules, mod); - modules = modules_check_deps(modules); /* re-check dependencies */ - - break; - } - - if (params.gui_running) { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new(NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, - _("Module \"%s\" depends on module \"%s\", load it?"), - module->name, - deps[i]); - gtk_dialog_add_buttons(GTK_DIALOG(dialog), - "_No", - GTK_RESPONSE_REJECT, - "_Open", - GTK_RESPONSE_ACCEPT, NULL); - - if (gtk_dialog_run(GTK_DIALOG(dialog)) == - GTK_RESPONSE_ACCEPT) { - ShellModule *mod = module_load(deps[i]); - - if (mod) - modules = g_slist_prepend(modules, mod); - modules = modules_check_deps(modules); /* re-check dependencies */ - } else { - g_error("HardInfo cannot run without loading the additional module."); - exit(1); - } - - gtk_widget_destroy(dialog); - } else { - g_error(_("Module \"%s\" depends on module \"%s\"."), - module->name, deps[i]); - } - } - } - } - } - - return modules; -} - - -GSList *modules_get_list() -{ - return modules_list; -} - -static GSList *modules_load(gchar ** module_list) -{ - GDir *dir; - GSList *modules = NULL; - ShellModule *module; - gchar *filename; - - filename = g_build_filename(params.path_lib, "modules", NULL); - dir = g_dir_open(filename, 0, NULL); - g_free(filename); - - if (dir) { - while ((filename = (gchar *) g_dir_read_name(dir))) { - if (g_strrstr(filename, "." G_MODULE_SUFFIX) && - module_in_module_list(filename, module_list) && - ((module = module_load(filename)))) { - modules = g_slist_prepend(modules, module); - } - } - - g_dir_close(dir); - } - - modules = modules_check_deps(modules); - - if (g_slist_length(modules) == 0) { - if (params.use_modules == NULL) { - g_error - (_("No module could be loaded. Check permissions on \"%s\" and try again."), - params.path_lib); - } else { - g_error - (_("No module could be loaded. Please use hardinfo -l to list all avai" - "lable modules and try again with a valid module list.")); - - } - } - - modules_list = g_slist_sort(modules, module_cmp); - return modules_list; -} - -GSList *modules_load_selected(void) -{ - return modules_load(params.use_modules); -} - -GSList *modules_load_all(void) -{ - return modules_load(NULL); -} - -gint tree_view_get_visible_height(GtkTreeView * tv) -{ - GtkTreePath *path; - GdkRectangle rect; - GtkTreeIter iter; - GtkTreeModel *model = gtk_tree_view_get_model(tv); - gint nrows = 1; - - path = gtk_tree_path_new_first(); - gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect); - - /* FIXME: isn't there any easier way to tell the number of rows? */ - gtk_tree_model_get_iter_first(model, &iter); - do { - nrows++; - } while (gtk_tree_model_iter_next(model, &iter)); - - gtk_tree_path_free(path); - - return nrows * rect.height; -} - -void module_entry_scan_all_except(ModuleEntry * entries, gint except_entry) -{ - ModuleEntry entry; - gint i = 0; - void (*scan_callback) (gboolean reload); - gchar *text; - - shell_view_set_enabled(FALSE); - - for (entry = entries[0]; entry.name; entry = entries[++i]) { - if (i == except_entry) - continue; - - text = g_strdup_printf(_("Scanning: %s..."), _(entry.name)); - shell_status_update(text); - g_free(text); - - if ((scan_callback = entry.scan_callback)) { - scan_callback(FALSE); - } - } - - shell_view_set_enabled(TRUE); - shell_status_update(_("Done.")); -} - -void module_entry_scan_all(ModuleEntry * entries) -{ - module_entry_scan_all_except(entries, -1); -} - -void module_entry_reload(ShellModuleEntry * module_entry) -{ - - if (module_entry->scan_func) { - module_entry->scan_func(TRUE); - } -} - -void module_entry_scan(ShellModuleEntry * module_entry) -{ - if (module_entry->scan_func) { - module_entry->scan_func(FALSE); - } -} - -gchar *module_entry_get_field(ShellModuleEntry * module_entry, gchar * field) -{ - if (module_entry->fieldfunc) { - return module_entry->fieldfunc(field); - } - - return NULL; -} - -gchar *module_entry_function(ShellModuleEntry * module_entry) -{ - if (module_entry->func) { - return module_entry->func(); - } - - return NULL; -} - -gchar *module_entry_get_moreinfo(ShellModuleEntry * module_entry, gchar * field) -{ - if (module_entry->morefunc) { - return module_entry->morefunc(field); - } - - return NULL; -} - -const gchar *module_entry_get_note(ShellModuleEntry * module_entry) -{ - if (module_entry->notefunc) { - return module_entry->notefunc(module_entry->number); - } - - return NULL; -} - -gchar *h_strdup_cprintf(const gchar * format, gchar * source, ...) -{ - gchar *buffer, *retn; - va_list args; - - va_start(args, source); - buffer = g_strdup_vprintf(format, args); - va_end(args); - - if (source) { - retn = g_strconcat(source, buffer, NULL); - g_free(buffer); - g_free(source); - } else { - retn = buffer; - } - - return retn; -} - -gchar *h_strconcat(gchar * string1, ...) -{ - gsize l; - va_list args; - gchar *s; - gchar *concat; - gchar *ptr; - - if (!string1) - return NULL; - - l = 1 + strlen(string1); - va_start(args, string1); - s = va_arg(args, gchar *); - while (s) { - l += strlen(s); - s = va_arg(args, gchar *); - } - va_end(args); - - concat = g_new(gchar, l); - ptr = concat; - - ptr = g_stpcpy(ptr, string1); - va_start(args, string1); - s = va_arg(args, gchar *); - while (s) { - ptr = g_stpcpy(ptr, s); - s = va_arg(args, gchar *); - } - va_end(args); - - g_free(string1); - - return concat; -} - -static gboolean h_hash_table_remove_all_true(gpointer key, gpointer data, gpointer user_data) -{ - return TRUE; -} - -void -h_hash_table_remove_all(GHashTable *hash_table) -{ - g_hash_table_foreach_remove(hash_table, - h_hash_table_remove_all_true, - NULL); -} - -gfloat -h_sysfs_read_float(const gchar *endpoint, const gchar *entry) -{ - gchar *tmp, *buffer; - gfloat return_value = 0.0f; - - tmp = g_build_filename(endpoint, entry, NULL); - if (g_file_get_contents(tmp, &buffer, NULL, NULL)) - return_value = atof(buffer); - - g_free(tmp); - g_free(buffer); - - return return_value; -} - -gint -h_sysfs_read_int(const gchar *endpoint, const gchar *entry) -{ - gchar *tmp, *buffer; - gint return_value = 0; - - tmp = g_build_filename(endpoint, entry, NULL); - if (g_file_get_contents(tmp, &buffer, NULL, NULL)) - return_value = atoi(buffer); - - g_free(tmp); - g_free(buffer); - - return return_value; -} - -gint -h_sysfs_read_hex(const gchar *endpoint, const gchar *entry) -{ - gchar *tmp, *buffer; - gint return_value = 0; - - tmp = g_build_filename(endpoint, entry, NULL); - if (g_file_get_contents(tmp, &buffer, NULL, NULL)) - return_value = (gint) strtoll(buffer, NULL, 16); - - g_free(tmp); - g_free(buffer); - - return return_value; -} - -gchar * -h_sysfs_read_string(const gchar *endpoint, const gchar *entry) -{ - gchar *tmp, *return_value; - - tmp = g_build_filename(endpoint, entry, NULL); - if (!g_file_get_contents(tmp, &return_value, NULL, NULL)) { - g_free(return_value); - - return_value = NULL; - } else { - return_value = g_strstrip(return_value); - } - - g_free(tmp); - - return return_value; -} - -static GHashTable *_moreinfo = NULL; - -void -moreinfo_init(void) -{ - if (G_UNLIKELY(_moreinfo)) { - DEBUG("moreinfo already initialized"); - return; - } - DEBUG("initializing moreinfo"); - _moreinfo = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); -} - -void -moreinfo_shutdown(void) -{ - if (G_UNLIKELY(!_moreinfo)) { - DEBUG("moreinfo not initialized"); - return; - } - DEBUG("shutting down moreinfo"); - g_hash_table_destroy(_moreinfo); - _moreinfo = NULL; -} - -void -moreinfo_add_with_prefix(gchar *prefix, gchar *key, gchar *value) -{ - if (G_UNLIKELY(!_moreinfo)) { - DEBUG("moreinfo not initialized"); - return; - } - - if (prefix) { - gchar *hashkey = g_strconcat(prefix, ":", key, NULL); - g_hash_table_insert(_moreinfo, hashkey, value); - return; - } - - g_hash_table_insert(_moreinfo, g_strdup(key), value); -} - -void -moreinfo_add(gchar *key, gchar *value) -{ - moreinfo_add_with_prefix(NULL, key, value); -} - -static gboolean -_moreinfo_del_cb(gpointer key, gpointer value, gpointer data) -{ - return g_str_has_prefix(key, data); -} - -void -moreinfo_del_with_prefix(gchar *prefix) -{ - if (G_UNLIKELY(!_moreinfo)) { - DEBUG("moreinfo not initialized"); - return; - } - - g_hash_table_foreach_remove(_moreinfo, _moreinfo_del_cb, prefix); -} - -void -moreinfo_clear(void) -{ - if (G_UNLIKELY(!_moreinfo)) { - DEBUG("moreinfo not initialized"); - return; - } - h_hash_table_remove_all(_moreinfo); -} - -gchar * -moreinfo_lookup_with_prefix(gchar *prefix, gchar *key) -{ - if (G_UNLIKELY(!_moreinfo)) { - DEBUG("moreinfo not initialized"); - return 0; - } - - if (prefix) { - gchar *lookup_key = g_strconcat(prefix, ":", key, NULL); - gchar *result = g_hash_table_lookup(_moreinfo, lookup_key); - g_free(lookup_key); - return result; - } - - return g_hash_table_lookup(_moreinfo, key); -} - -gchar * -moreinfo_lookup(gchar *key) -{ - return moreinfo_lookup_with_prefix(NULL, key); -} - -#if !GLIB_CHECK_VERSION(2,44,0) -gboolean g_strv_contains(const gchar * const * strv, const gchar *str) { - /* g_strv_contains() requires glib>2.44 - * fallback for older versions */ - gint i = 0; - while(strv[i] != NULL) { - if (g_strcmp0(strv[i], str) == 0) - return 1; - i++; - } - return 0; -} -#endif - -gchar *hardinfo_clean_grpname(const gchar *v, int replacing) { - gchar *clean, *p; - - p = clean = g_strdup(v); - while (*p != 0) { - switch(*p) { - case '[': - *p = '('; break; - case ']': - *p = ')'; break; - default: - break; - } - p++; - } - if (replacing) - g_free((gpointer)v); - return clean; -} - -/* Hardinfo labels that have # are truncated and/or hidden. - * Labels can't have $ because that is the delimiter in - * moreinfo. */ -gchar *hardinfo_clean_label(const gchar *v, int replacing) { - gchar *clean, *p; - - p = clean = g_strdup(v); - while (*p != 0) { - switch(*p) { - case '#': case '$': - *p = '_'; - break; - default: - break; - } - p++; - } - if (replacing) - g_free((gpointer)v); - return clean; -} - -/* hardinfo uses the values as {ht,x}ml, apparently */ -gchar *hardinfo_clean_value(const gchar *v, int replacing) { - gchar *clean, *tmp; - gchar **vl; - if (v == NULL) return NULL; - - vl = g_strsplit(v, "&", -1); - if (g_strv_length(vl) > 1) - clean = g_strjoinv("&", vl); - else - clean = g_strdup(v); - g_strfreev(vl); - - vl = g_strsplit(clean, "<", -1); - if (g_strv_length(vl) > 1) { - tmp = g_strjoinv("<", vl); - g_free(clean); - clean = tmp; - } - g_strfreev(vl); - - vl = g_strsplit(clean, ">", -1); - if (g_strv_length(vl) > 1) { - tmp = g_strjoinv(">", vl); - g_free(clean); - clean = tmp; - } - g_strfreev(vl); - - if (replacing) - g_free((gpointer)v); - return clean; -} - -gboolean hardinfo_spawn_command_line_sync(const gchar *command_line, - gchar **standard_output, - gchar **standard_error, - gint *exit_status, - GError **error) -{ - shell_status_pulse(); - return g_spawn_command_line_sync(command_line, standard_output, - standard_error, exit_status, error); -} diff --git a/hardinfo/vendor.c b/hardinfo/vendor.c deleted file mode 100644 index cb9cc9ba..00000000 --- a/hardinfo/vendor.c +++ /dev/null @@ -1,655 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2009 L. A. F. Pereira - * - * List of vendors based on GtkSysInfo (c) Pissens Sebastien. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include - -#include "vendor.h" -#include "syncmanager.h" -#include "config.h" -#include "hardinfo.h" -#include "strstr_word.h" -#include "util_sysobj.h" /* for appfsp() and SEQ() */ - -/* { match_string, match_rule, name, url } */ -static Vendor vendors_builtin[] = { - /* BIOS manufacturers */ - { "American Megatrends", 0, "American Megatrends", "www.ami.com"}, - { "Award", 0, "Award Software International", "www.award-bios.com"}, - { "Phoenix", 0, "Phoenix Technologies", "www.phoenix.com"}, - /* x86 vendor strings */ - { "AMDisbetter!", 0, "Advanced Micro Devices", "www.amd.com" }, - { "AuthenticAMD", 0, "Advanced Micro Devices", "www.amd.com" }, - { "CentaurHauls", 0, "VIA (formerly Centaur Technology)", "www.via.tw" }, - { "CyrixInstead", 0, "Cyrix", "" }, - { "GenuineIntel", 0, "Intel", "www.intel.com" }, - { "TransmetaCPU", 0, "Transmeta", "" }, - { "GenuineTMx86", 0, "Transmeta", "" }, - { "Geode by NSC", 0, "National Semiconductor", "" }, - { "NexGenDriven", 0, "NexGen", "" }, - { "RiseRiseRise", 0, "Rise Technology", "" }, - { "SiS SiS SiS", 0, "Silicon Integrated Systems", "" }, - { "UMC UMC UMC", 0, "United Microelectronics Corporation", "" }, - { "VIA VIA VIA", 0, "VIA", "www.via.tw" }, - { "Vortex86 SoC", 0, "DMP Electronics", "" }, - /* x86 VM vendor strings */ - { "KVMKVMKVM", 0, "KVM", "" }, - { "Microsoft Hv", 0, "Microsoft Hyper-V", "www.microsoft.com" }, - { "lrpepyh vr", 0, "Parallels", "" }, - { "VMwareVMware", 0, "VMware", "" }, - { "XenVMMXenVMM", 0, "Xen HVM", "" }, -}; - -#define ven_msg(msg, ...) fprintf (stderr, "[%s] " msg "\n", __FUNCTION__, ##__VA_ARGS__) /**/ -#define ven_file_err(msg, ...) { \ - ven_msg(msg, ##__VA_ARGS__); \ - fflush(stderr); \ - if (vendor_die_on_error) exit(-1); } - -static vendor_list vendors = NULL; -const vendor_list get_vendors_list() { return vendors; } -gboolean vendor_die_on_error = FALSE; - -/* sort the vendor list by length of match_string, - * LONGEST first */ -int vendor_sort (const Vendor *ap, const Vendor *bp) { - int la = 0, lb = 0; - if (ap) la = ap->weight; - if (bp) lb = bp->weight; - return lb-la; -} - -static int read_from_vendor_conf(const char *path) { - GKeyFile *vendors_file; - gchar *tmp; - gint num_vendors, i, count = 0; /* num_vendors is file-reported, count is actual */ - - DEBUG("using vendor.conf format loader for %s", path); - - vendors_file = g_key_file_new(); - if (g_key_file_load_from_file(vendors_file, path, 0, NULL)) { - num_vendors = g_key_file_get_integer(vendors_file, "vendors", "number", NULL); - - for (i = num_vendors - 1; i >= 0; i--) { - Vendor *v = g_new0(Vendor, 1); - - tmp = g_strdup_printf("vendor%d", i); - - v->match_string = g_key_file_get_string(vendors_file, tmp, "match_string", NULL); - if (v->match_string == NULL) { - /* try old name */ - v->match_string = g_key_file_get_string(vendors_file, tmp, "id", NULL); - } - if (v->match_string) { - v->match_rule = g_key_file_get_integer(vendors_file, tmp, "match_case", NULL); - v->name = g_key_file_get_string(vendors_file, tmp, "name", NULL); - v->name_short = g_key_file_get_string(vendors_file, tmp, "name_short", NULL); - v->url = g_key_file_get_string(vendors_file, tmp, "url", NULL); - v->url_support = g_key_file_get_string(vendors_file, tmp, "url_support", NULL); - - vendors = g_slist_prepend(vendors, v); - count++; - } else { - /* don't add if match_string is null */ - g_free(v); - } - - g_free(tmp); - } - g_key_file_free(vendors_file); - DEBUG("... found %d match strings", count); - return count; - } - g_key_file_free(vendors_file); - return 0; -} - -static int read_from_vendor_ids(const char *path) { -#define VEN_BUFF_SIZE 128 -#define VEN_FFWD() while(isspace((unsigned char)*p)) p++; -#define VEN_CHK(TOK) (strncmp(p, TOK, tl = strlen(TOK)) == 0 && (ok = 1)) - char buff[VEN_BUFF_SIZE] = ""; - - char vars[7][VEN_BUFF_SIZE]; - char *name = vars[0]; - char *name_short = vars[1]; - char *url = vars[2]; - char *url_support = vars[3]; - char *wikipedia = vars[4]; - char *note = vars[5]; - char *ansi_color = vars[6]; - int name_rule_count = -1; - - int count = 0; - FILE *fd; - char *p, *b; - int tl, line = -1, ok = 0; - - DEBUG("using vendor.ids format loader for %s", path); - - fd = fopen(path, "r"); - if (!fd) return 0; - - while (fgets(buff, VEN_BUFF_SIZE, fd)) { - ok = 0; - line++; - - b = strchr(buff, '\n'); - if (b) - *b = 0; - else - ven_file_err("%s:%d: line longer than VEN_BUFF_SIZE (%lu)", path, line, (unsigned long)VEN_BUFF_SIZE); - - b = strchr(buff, '#'); - if (b) *b = 0; /* line ends at comment */ - - p = buff; - VEN_FFWD(); - if (VEN_CHK("name ")) { - if (name_rule_count == 0) - ven_file_err("%s:%d: name \"%s\" had no match rules", path, line, name); - strncpy(name, p + tl, VEN_BUFF_SIZE - 1); - strcpy(name_short, ""); - strcpy(url, ""); - strcpy(url_support, ""); - strcpy(wikipedia, ""); - strcpy(note, ""); - strcpy(ansi_color, ""); - name_rule_count = 0; - } - if (VEN_CHK("name_short ")) - strncpy(name_short, p + tl, VEN_BUFF_SIZE - 1); - if (VEN_CHK("url ")) - strncpy(url, p + tl, VEN_BUFF_SIZE - 1); - if (VEN_CHK("url_support ")) - strncpy(url_support, p + tl, VEN_BUFF_SIZE - 1); - if (VEN_CHK("wikipedia ")) - strncpy(wikipedia, p + tl, VEN_BUFF_SIZE - 1); - if (VEN_CHK("note ")) - strncpy(note, p + tl, VEN_BUFF_SIZE - 1); - if (VEN_CHK("ansi_color ")) - strncpy(ansi_color, p + tl, VEN_BUFF_SIZE - 1); - -#define dup_if_not_empty(s) (strlen(s) ? g_strdup(s) : NULL) - - int mrule = -1; - if (VEN_CHK("match_string ")) - mrule = VENDOR_MATCH_RULE_WORD_IGNORE_CASE; - else if (VEN_CHK("match_string_case ")) - mrule = VENDOR_MATCH_RULE_WORD_MATCH_CASE; - else if (VEN_CHK("match_string_exact ")) - mrule = VENDOR_MATCH_RULE_EXACT; - else if (VEN_CHK("match_string_prefix ")) - mrule = VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE; - else if (VEN_CHK("match_string_prefix_case ")) - mrule = VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE; - else if (VEN_CHK("match_string_suffix ")) - mrule = VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE; - else if (VEN_CHK("match_string_suffix_case ")) - mrule = VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE; - else if (VEN_CHK("match_string_num_prefix ")) - mrule = VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE; - else if (VEN_CHK("match_string_num_prefix_case ")) - mrule = VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE; - - if (mrule >= 0) { - Vendor *v = g_new0(Vendor, 1); - v->file_line = line; - v->match_string = g_strdup(p+tl); - v->ms_length = strlen(v->match_string); - v->match_rule = mrule; - v->name = g_strdup(name); - v->name_short = dup_if_not_empty(name_short); - v->url = dup_if_not_empty(url); - v->url_support = dup_if_not_empty(url_support); - v->wikipedia = dup_if_not_empty(wikipedia); - v->note = dup_if_not_empty(note); - v->ansi_color = dup_if_not_empty(ansi_color); - - v->weight = v->ms_length; - /* NUM_PREFIX rules consider +1 characters */ - if (v->match_rule == VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE - || v->match_rule == VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE) - v->weight++; - - v->has_parens = g_utf8_strchr(v->match_string, -1, '(') ? TRUE : FALSE; - - vendors = g_slist_prepend(vendors, v); - name_rule_count++; - count++; - } - - g_strstrip(buff); - if (!ok && *buff != 0) - ven_file_err("unrecognised item at %s:%d, %s", path, line, buff); - } - - fclose(fd); - - DEBUG("... found %d match strings", count); - - return count; -} - -void vendor_init(void) -{ - gchar *path; - static SyncEntry se = { - .name = N_("Update vendor list"), - .file_name = "vendor.ids", - }; - - /* already initialized */ - if (vendors) return; - - DEBUG("initializing vendor list"); - sync_manager_add_entry(&se); - - char *file_search_order[] = { - /* new format */ - g_build_filename(g_get_user_config_dir(), "hardinfo", "vendor.ids", NULL), - g_build_filename(params.path_data, "vendor.ids", NULL), - /* old format */ - g_build_filename(g_get_user_config_dir(), "hardinfo", "vendor.conf", NULL), - g_build_filename(g_get_home_dir(), ".hardinfo", "vendor.conf", NULL), /* old place */ - g_build_filename(params.path_data, "vendor.conf", NULL), - NULL - }; - - int n = 0; - while (file_search_order[n]) { - DEBUG("searching for vendor data at %s ...", file_search_order[n]); - if (!access(file_search_order[n], R_OK)) { - path = file_search_order[n]; - DEBUG("... file exists."); - break; - } - n++; - } - - int fail = 1; - - /* new format */ - if (path && strstr(path, "vendor.ids")) { - fail = !read_from_vendor_ids(path); - } - - /* old format */ - if (path && strstr(path, "vendor.conf")) { - fail = !read_from_vendor_conf(path); - } - - if (fail) { - gint i; - - DEBUG("vendor data not found, using internal database"); - - for (i = G_N_ELEMENTS(vendors_builtin) - 1; i >= 0; i--) { - vendors = g_slist_prepend(vendors, (gpointer) &vendors_builtin[i]); - } - } - - /* sort the vendor list by length of match string so that short strings are - * less likely to incorrectly match. - * example: ST matches ASUSTeK but SEAGATE is not ASUS */ - vendors = g_slist_sort(vendors, (GCompareFunc)vendor_sort); - - /* free search location strings */ - n = 0; - while (file_search_order[n]) { - free(file_search_order[n]); - n++; - } -} - -void vendor_cleanup() { - DEBUG("cleanup vendor list"); - g_slist_free_full(vendors, (GDestroyNotify)vendor_free); -} - -void vendor_free(Vendor *v) { - if (v) { - g_free(v->name); - g_free(v->name_short); - g_free(v->url); - g_free(v->url_support); - g_free(v->ansi_color); - g_free(v->match_string); - g_free(v); - } -} - -const Vendor *vendor_match(const gchar *id_str, ...) { - Vendor *ret = NULL; - va_list ap, ap2; - gchar *tmp = NULL, *p = NULL; - int tl = 0, c = 0; - - if (id_str) { - c++; - tl += strlen(id_str); - tmp = appfsp(tmp, "%s", id_str); - - va_start(ap, id_str); - p = va_arg(ap, gchar*); - while(p) { - c++; - tl += strlen(p); - tmp = appfsp(tmp, "%s", p); - p = va_arg(ap, gchar*); - } - va_end(ap); - } - if (!c || tl == 0) - return NULL; - - vendor_list vl = vendors_match_core(tmp, 1); - if (vl) { - ret = (Vendor*)vl->data; - vendor_list_free(vl); - } - return ret; -} - -static const gchar *vendor_get_name_ex(const gchar * id_str, short shortest) { - const Vendor *v = vendor_match(id_str, NULL); - - if (v) { - if (shortest) { - int sl = strlen(id_str); - int nl = (v->name) ? strlen(v->name) : 0; - int snl = (v->name_short) ? strlen(v->name_short) : 0; - if (!nl) nl = 9999; - if (!snl) snl = 9999; - /* if id_str is shortest, then return as if - * not found (see below). - * if all equal then prefer - * name_short > name > id_str. */ - if (nl < snl) - return (sl < nl) ? id_str : v->name; - else - return (sl < snl) ? id_str : v->name_short; - } else - return v->name; - } - - return id_str; /* Preserve an old behavior, but what about const? */ -} - -const gchar *vendor_get_name(const gchar * id_str) { - return vendor_get_name_ex(id_str, 0); -} - -const gchar *vendor_get_shortest_name(const gchar * id_str) { - return vendor_get_name_ex(id_str, 1); -} - -const gchar *vendor_get_url(const gchar * id_str) { - const Vendor *v = vendor_match(id_str, NULL); - - if (v) - return v->url; - - return NULL; -} - -gchar *vendor_get_link(const gchar *id_str) -{ - const Vendor *v = vendor_match(id_str, NULL); - - if (!v) { - return g_strdup(id_str); - } - - return vendor_get_link_from_vendor(v); -} - -gchar *vendor_get_link_from_vendor(const Vendor *v) -{ -#if GTK_CHECK_VERSION(2, 18, 0) - gboolean gtk_label_link_ok = TRUE; -#else - gboolean gtk_label_link_ok = FALSE; -#endif - gboolean link_ok = params.markup_ok && gtk_label_link_ok; - /* If using a real link, and wikipedia is available, - * target that instead of url. There's usually much more - * information there, plus easily click through to company url. */ - gboolean link_wikipedia = TRUE; - - if (!v) - return g_strdup(_("Unknown")); - - gchar *url = NULL; - - if (link_ok && link_wikipedia && v->wikipedia - || v->wikipedia && !v->url) - url = g_strdup_printf("http://wikipedia.com/wiki/%s", v->wikipedia); - else if (v->url) - url = g_strdup(v->url); - - if (!url) - return g_strdup(v->name); - - auto_free(url); - - if (link_ok) { - const gchar *prefix; - - if (!strncmp(url, "http://", sizeof("http://") - 1) || - !strncmp(url, "https://", sizeof("https://") - 1)) { - prefix = ""; - } else { - prefix = "http://"; - } - - return g_strdup_printf("%s", prefix, url, v->name); - } - - return g_strdup_printf("%s (%s)", v->name, url); -} - -vendor_list vendor_list_concat_va(int count, vendor_list vl, ...) { - vendor_list ret = vl, p = NULL; - va_list ap; - va_start(ap, vl); - if (count > 0) { - count--; /* includes vl */ - while (count) { - p = va_arg(ap, vendor_list); - ret = g_slist_concat(ret, p); - count--; - } - } else { - p = va_arg(ap, vendor_list); - while (p) { - ret = g_slist_concat(ret, p); - p = va_arg(ap, vendor_list); - } - } - va_end(ap); - return ret; -} - -int vendor_cmp_deep(const Vendor *a, const Vendor *b) { - int r; - if (a && !b) return 1; - if (!a && b) return -1; - if (!a && !b) return 0; - r = g_strcmp0(a->name, b->name); - if (!!r) return r; - r = g_strcmp0(a->name_short, b->name_short); - if (!!r) return r; - r = g_strcmp0(a->ansi_color, b->ansi_color); - if (!!r) return r; - r = g_strcmp0(a->url, b->url); - if (!!r) return r; - r = g_strcmp0(a->url_support, b->url_support); - if (!!r) return r; - r = g_strcmp0(a->wikipedia, b->wikipedia); - if (!!r) return r; - return 0; -} - -vendor_list vendor_list_remove_duplicates_deep(vendor_list vl) { - /* vendor_list is GSList* */ - GSList *tvl = vl; - GSList *evl = NULL; - while(tvl) { - const Vendor *tv = tvl->data; - evl = tvl->next; - while(evl) { - const Vendor *ev = evl->data; - if (vendor_cmp_deep(ev, tv) == 0) { - GSList *next = evl->next; - vl = g_slist_delete_link(vl, evl); - evl = next; - } else - evl = evl->next; - } - tvl = tvl->next; - } - return vl; -} - -vendor_list vendors_match(const gchar *id_str, ...) { - va_list ap, ap2; - gchar *tmp = NULL, *p = NULL; - int tl = 0, c = 0; - - if (id_str) { - c++; - tl += strlen(id_str); - tmp = appfsp(tmp, "%s", id_str); - - va_start(ap, id_str); - p = va_arg(ap, gchar*); - while(p) { - c++; - tl += strlen(p); - tmp = appfsp(tmp, "%s", p); - p = va_arg(ap, gchar*); - } - va_end(ap); - } - if (!c || tl == 0) - return NULL; - - return vendors_match_core(tmp, -1); -} - -vendor_list vendors_match_core(const gchar *str, int limit) { - gchar *p = NULL; - GSList *vlp; - int found = 0; - vendor_list ret = NULL; - - /* pass [array_index]: function - * 1st [3]: only check match strings that have () in them - * 2nd [2]: ignore text in (), like (formerly ...) or (nee ...), - * but unfortunately also (now ...) - * 3rd [1]: (passes[0]): full text */ - gchar *passes[3] = { g_strdup(str), g_strdup(str), g_strdup(str) }; - int pass = 1; p = passes[1]; - while((p = strchr(p, '('))) { - pass = 3; p++; - while(*p && *p != ')') { *p = ' '; p++; } - } - - for (; pass > 0; pass--) { - for (vlp = vendors; vlp; vlp = vlp->next) { - Vendor *v = (Vendor *)vlp->data; - char *m = NULL; - - if (!v) continue; - if (!v->match_string) continue; - - if (v->has_parens) - if (pass != 3) continue; - - //ven_msg("pass:%d <<%s>> EXAMINE: \"%s\"", pass, v->match_string, passes[pass-1]); - int epass; - -#define standard_match_work_inner(fn) { \ - /* clear so it doesn't match again */ \ - for(epass = pass; epass > 0; epass--) \ - { char *s = passes[epass-1] + (m - passes[pass-1]); \ - char *e = s + v->ms_length; \ - for(; s < e; s++) *s = ' '; \ - g_strstrip(passes[epass-1]); } \ - /* add to return list */ \ - ret = vendor_list_append(ret, v); \ - found++; \ - if (*passes[0] == 0) \ - goto vendors_match_core_finish; \ - if (limit > 0 && found >= limit) \ - goto vendors_match_core_finish; } -#define standard_match_work(fn) \ - if ((m = fn(passes[pass-1], v->match_string))) \ - standard_match_work_inner(); - - switch(v->match_rule) { - case VENDOR_MATCH_RULE_EXACT: - if (SEQ(passes[pass-1], v->match_string) ) { - /* add to return list */ - ret = vendor_list_append(ret, v); - found++; - goto vendors_match_core_finish; /* no way for any other match to happen */ - } - break; - case VENDOR_MATCH_RULE_WORD_IGNORE_CASE: - standard_match_work(strcasestr_word); - break; - case VENDOR_MATCH_RULE_WORD_MATCH_CASE: - standard_match_work(strstr_word); - break; - case VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE: - standard_match_work(strstr_word_prefix); - break; - case VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE: - standard_match_work(strcasestr_word_prefix); - break; - case VENDOR_MATCH_RULE_WORD_SUFFIX_MATCH_CASE: - standard_match_work(strstr_word_suffix); - break; - case VENDOR_MATCH_RULE_WORD_SUFFIX_IGNORE_CASE: - standard_match_work(strcasestr_word_suffix); - break; - case VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE: - if ((m = strstr_word_prefix(passes[pass-1], v->match_string))) - if (isdigit(m[v->ms_length])) - standard_match_work_inner(); - break; - case VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE: - if ((m = strcasestr_word_prefix(passes[pass-1], v->match_string))) - if (isdigit(m[v->ms_length])) - standard_match_work_inner(); - break; - } - } - } - -vendors_match_core_finish: - - g_free(passes[0]); - g_free(passes[1]); - g_free(passes[2]); - return ret; -} diff --git a/hardinfo/x_util.c b/hardinfo/x_util.c deleted file mode 100644 index 2187b224..00000000 --- a/hardinfo/x_util.c +++ /dev/null @@ -1,342 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2017 L. A. F. Pereira - * This file - * Copyright (C) 2018 Burt P. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "hardinfo.h" -#include "x_util.h" -#include - -/* wayland stuff lives here for now */ - -wl_info *get_walyand_info() { - wl_info *s = malloc(sizeof(wl_info)); - memset(s, 0, sizeof(wl_info)); - s->xdg_session_type = g_strdup( getenv("XDG_SESSION_TYPE") ); - if (s->xdg_session_type == NULL) - s->xdg_session_type = strdup("x11"); - s->display_name = g_strdup( getenv("WAYLAND_DISPLAY") ); - return s; -} - -void wl_free(wl_info *s) { - if (s) { - free(s->xdg_session_type); - free(s->display_name); - free(s); - } -} - -/* get x information from xrandr, xdpyinfo, and glxinfo */ - -static char *simple_line_value(char *line, const char *prefix) { - if (g_str_has_prefix(g_strstrip(line), prefix)) { - line += strlen(prefix) + 1; - return g_strstrip(line); - } else - return NULL; -} - -gboolean fill_glx_info(glx_info *glx) { - gboolean spawned; - gchar *out, *err, *p, *l, *next_nl; - gchar *glx_cmd = g_strdup("glxinfo"); - -#define GLX_MATCH_LINE(prefix_str, struct_member) \ - if (l = simple_line_value(p, prefix_str)) { glx->struct_member = g_strdup(l); goto glx_next_line; } - - spawned = hardinfo_spawn_command_line_sync(glx_cmd, - &out, &err, NULL, NULL); - g_free(glx_cmd); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - GLX_MATCH_LINE("GLX version", glx_version); - GLX_MATCH_LINE("OpenGL vendor string", ogl_vendor); - GLX_MATCH_LINE("OpenGL renderer string", ogl_renderer); - GLX_MATCH_LINE("OpenGL renderer string", ogl_renderer); - GLX_MATCH_LINE("OpenGL core profile version string", ogl_core_version); - GLX_MATCH_LINE("OpenGL core profile shading language version string", ogl_core_sl_version); - GLX_MATCH_LINE("OpenGL version string", ogl_version); - GLX_MATCH_LINE("OpenGL shading language version string", ogl_sl_version); - GLX_MATCH_LINE("OpenGL ES profile version string", ogles_version); - GLX_MATCH_LINE("OpenGL ES profile shading language version string", ogles_sl_version); - - if (l = simple_line_value(p, "direct rendering")) { - if (strstr(p, "Yes")) - glx->direct_rendering = 1; - goto glx_next_line; - } - - glx_next_line: - p = next_nl + 1; - } - g_free(out); - g_free(err); - return TRUE; - } - return FALSE; -} - -glx_info *glx_create() { - glx_info *s = malloc(sizeof(glx_info)); - memset(s, 0, sizeof(glx_info)); - return s; -} - -void glx_free(glx_info *s) { - if (s) { - free(s->glx_version); - free(s->ogl_vendor); - free(s->ogl_renderer); - free(s->ogl_core_version); - free(s->ogl_core_sl_version); - free(s->ogl_version); - free(s->ogl_sl_version); - free(s->ogles_version); - free(s->ogles_sl_version); - free(s); - } -} - -gboolean fill_xinfo(xinfo *xi) { - gboolean spawned; - gchar *out, *err, *p, *l, *next_nl; - gchar *xi_cmd = g_strdup("xdpyinfo"); - -#define XI_MATCH_LINE(prefix_str, struct_member) \ - if (l = simple_line_value(p, prefix_str)) { xi->struct_member = g_strdup(l); goto xi_next_line; } - - spawned = hardinfo_spawn_command_line_sync(xi_cmd, - &out, &err, NULL, NULL); - g_free(xi_cmd); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - XI_MATCH_LINE("name of display", display_name); - XI_MATCH_LINE("vendor string", vendor); - XI_MATCH_LINE("vendor release number", release_number); - XI_MATCH_LINE("XFree86 version", version); - XI_MATCH_LINE("X.Org version", version); - - xi_next_line: - p = next_nl + 1; - } - g_free(out); - g_free(err); - return TRUE; - } - return FALSE; -} - -gboolean fill_xrr_info(xrr_info *xrr) { - gboolean spawned; - gchar *out, *err, *p, *next_nl; - gchar *xrr_cmd = g_strdup("xrandr --prop"); - int ec; - - x_screen ts; - x_output to; - char output_id[128]; - char status[128]; - char alist[512]; - - memset(&ts, 0, sizeof(x_screen)); - memset(&to, 0, sizeof(x_output)); - memset(output_id, 0, sizeof(output_id)); - memset(status, 0, sizeof(status)); - memset(alist, 0, sizeof(alist)); - - spawned = hardinfo_spawn_command_line_sync(xrr_cmd, - &out, &err, NULL, NULL); - g_free(xrr_cmd); - if (spawned) { - p = out; - while(next_nl = strchr(p, '\n')) { - strend(p, '\n'); - g_strstrip(p); - - ec = sscanf(p, "Screen %d: minimum %d x %d, current %d x %d, maximum %d x %d", - &ts.number, - &ts.min_px_width, &ts.min_px_height, - &ts.px_width, &ts.px_height, - &ts.max_px_width, &ts.max_px_height); - if (ec == 7) { - /* new screen */ - xrr->screen_count++; - if (xrr->screens == NULL) - xrr->screens = malloc(xrr->screen_count * sizeof(x_screen)); - else - xrr->screens = realloc(xrr->screens, xrr->screen_count * sizeof(x_screen)); - memcpy(&xrr->screens[xrr->screen_count-1], &ts, sizeof(x_screen)); - memset(&ts, 0, sizeof(x_screen)); /* clear the temp */ - goto xrr_next_line; - } - - /* looking for: - * (connected|disconnected|unknown connection) (primary|?) <%dx%d+%d+%d> (attribute_list) mm x mm - */ - ec = sscanf(p, "%127s %127[^(](%511[^)]", output_id, status, alist); - if (ec == 3) { - int is_output = 0, found_rect = 0, n = 0; - gchar **ot = g_strsplit(status, " ", 0); - - /* find rect */ - while (ot[n] != NULL) { - ec = sscanf(ot[n], "%dx%d+%d+%d", &to.px_width, &to.px_height, &to.px_offset_x, &to.px_offset_y); - if (ec == 4) { - found_rect = 1; - break; - } - n++; - } - if (found_rect) - to.screen = xrr->screen_count - 1; - else - to.screen = -1; - - if (strcmp("disconnected", ot[0]) == 0) { - is_output = 1; - to.connected = 0; - } else - if (strcmp("unknown", ot[0]) == 0 && strcmp("connection", ot[1]) == 0) { - is_output = 1; - to.connected = -1; - } else - if (strcmp("connected", ot[0]) == 0) { - is_output = 1; - to.connected = 1; - } - g_strfreev(ot); - if (is_output) { - strncpy(to.name, output_id, 63); - xrr->output_count++; - if (xrr->outputs == NULL) - xrr->outputs = malloc(xrr->output_count * sizeof(x_output)); - else - xrr->outputs = realloc(xrr->outputs, xrr->output_count * sizeof(x_output)); - memcpy(&xrr->outputs[xrr->output_count-1], &to, sizeof(x_output)); - memset(&to, 0, sizeof(x_output)); /* clear the temp */ - goto xrr_next_line; - } - } - - xrr_next_line: - p = next_nl + 1; - } - g_free(out); - g_free(err); - return TRUE; - } - return FALSE; -} - -gboolean fill_basic_xlib(xinfo *xi) { - Display *display; - int s, w, h, rn; - - display = XOpenDisplay(NULL); - if (display) { - if (!xi->display_name) - xi->display_name = XDisplayName(NULL); - - if (!xi->vendor) - xi->vendor = XServerVendor(display); - - if (!xi->release_number) { - rn = XVendorRelease(display); - xi->release_number = g_strdup_printf("%d", rn); - } - - if (!xi->xrr->screen_count) { - s = DefaultScreen(display); - w = XDisplayWidth(display, s); - h = XDisplayHeight(display, s); - - /* create at least one screen */ - x_screen ts; - memset(&ts, 0, sizeof(x_screen)); - ts.number = s; - ts.px_width = w; - ts.px_height = h; - - xi->xrr->screen_count++; - if (xi->xrr->screens == NULL) - xi->xrr->screens = malloc(xi->xrr->screen_count * sizeof(x_screen)); - else - xi->xrr->screens = realloc(xi->xrr->screens, xi->xrr->screen_count * sizeof(x_screen)); - memcpy(&xi->xrr->screens[xi->xrr->screen_count-1], &ts, sizeof(x_screen)); - } - return TRUE; - } - return FALSE; -} - -xrr_info *xrr_create() { - xrr_info *xrr = malloc(sizeof(xrr_info)); - memset(xrr, 0, sizeof(xrr_info)); - return xrr; -} - -void xrr_free(xrr_info *xrr) { - if (xrr) { - free(xrr->screens); - free(xrr->outputs); - free(xrr->providers); - free(xrr->monitors); - free(xrr); - } -} - -xinfo *xinfo_get_info() { - int fail = 0; - xinfo *xi = malloc(sizeof(xinfo)); - memset(xi, 0, sizeof(xinfo)); - xi->glx = glx_create(); - xi->xrr = xrr_create(); - - if ( !fill_xinfo(xi) ) - fail++; - if ( !fill_xrr_info(xi->xrr) ) - fail++; - if ( !fill_glx_info(xi->glx) ) - fail++; - - if (fail) { - /* as fallback, try xlib directly */ - if ( !fill_basic_xlib(xi) ) - xi->nox = 1; - } - return xi; -} - -void xinfo_free(xinfo *xi) { - if (xi) { - free(xi->display_name); - free(xi->vendor); - free(xi->version); - free(xi->release_number); - xrr_free(xi->xrr); - glx_free(xi->glx); - free(xi); - } -} diff --git a/hardinfo2/binreloc.c b/hardinfo2/binreloc.c new file mode 100644 index 00000000..f47a3fae --- /dev/null +++ b/hardinfo2/binreloc.c @@ -0,0 +1,668 @@ +/* + * BinReloc - a library for creating relocatable executables + * Written by: Hongli Lai + * http://autopackage.org/ + * + * This source code is public domain. You can relicense this code + * under whatever license you want. + * + * See http://autopackage.org/docs/binreloc/ for + * more information and how to use this. + */ + +#ifndef __BINRELOC_C__ +#define __BINRELOC_C__ + +#include +#include +#include +#include +#include +#include +#include +#include "binreloc.h" +#include "config.h" + +G_BEGIN_DECLS +/** @internal + * Find the canonical filename of the executable. Returns the filename + * (which must be freed) or NULL on error. If the parameter 'error' is + * not NULL, the error code will be stored there, if an error occured. + */ +static char *_br_find_exe(GbrInitError * error) +{ + char *path, *path2, *line, *result; + size_t buf_size; + ssize_t size; + struct stat stat_buf; + FILE *f; + + /* Read from /proc/self/exe (symlink) */ + if (sizeof(path) > SSIZE_MAX) + buf_size = SSIZE_MAX - 1; + else + buf_size = PATH_MAX - 1; + path = (char *) g_try_malloc(buf_size); + if (path == NULL) { + /* Cannot allocate memory. */ + if (error) + *error = GBR_INIT_ERROR_NOMEM; + return NULL; + } + path2 = (char *) g_try_malloc(buf_size); + if (path2 == NULL) { + /* Cannot allocate memory. */ + if (error) + *error = GBR_INIT_ERROR_NOMEM; + g_free(path); + return NULL; + } + + strncpy(path2, "/proc/self/exe", buf_size - 1); + + while (1) { + int i; + + size = readlink(path2, path, buf_size - 1); + if (size == -1) { + /* Error. */ + g_free(path2); + break; + } + + /* readlink() success. */ + path[size] = '\0'; + + /* Check whether the symlink's target is also a symlink. + * We want to get the final target. */ + i = stat(path, &stat_buf); + if (i == -1) { + /* Error. */ + g_free(path2); + break; + } + + /* stat() success. */ + if (!S_ISLNK(stat_buf.st_mode)) { + /* path is not a symlink. Done. */ + g_free(path2); + return path; + } + + /* path is a symlink. Continue loop and resolve this. */ + strncpy(path, path2, buf_size - 1); + } + + + /* readlink() or stat() failed; this can happen when the program is + * running in Valgrind 2.2. Read from /proc/self/maps as fallback. */ + + buf_size = PATH_MAX + 128; + line = (char *) g_try_realloc(path, buf_size); + if (line == NULL) { + /* Cannot allocate memory. */ + g_free(path); + if (error) + *error = GBR_INIT_ERROR_NOMEM; + return NULL; + } + + f = fopen("/proc/self/maps", "r"); + if (f == NULL) { + g_free(line); + if (error) + *error = GBR_INIT_ERROR_OPEN_MAPS; + return NULL; + } + + /* The first entry should be the executable name. */ + result = fgets(line, (int) buf_size, f); + if (result == NULL) { + fclose(f); + g_free(line); + if (error) + *error = GBR_INIT_ERROR_READ_MAPS; + return NULL; + } + + /* Get rid of newline character. */ + buf_size = strlen(line); + if (buf_size <= 0) { + /* Huh? An empty string? */ + fclose(f); + g_free(line); + if (error) + *error = GBR_INIT_ERROR_INVALID_MAPS; + return NULL; + } + if (line[buf_size - 1] == 10) + line[buf_size - 1] = 0; + + /* Extract the filename; it is always an absolute path. */ + path = strchr(line, '/'); + + /* Sanity check. */ + if (strstr(line, " r-xp ") == NULL || path == NULL) { + fclose(f); + g_free(line); + if (error) + *error = GBR_INIT_ERROR_INVALID_MAPS; + return NULL; + } + + path = g_strdup(path); + g_free(line); + fclose(f); + return path; +} + + +/** @internal + * Find the canonical filename of the executable which owns symbol. + * Returns a filename which must be freed, or NULL on error. + */ +static char *_br_find_exe_for_symbol(const void *symbol, + GbrInitError * error) +{ +#define SIZE PATH_MAX + 100 + FILE *f; + size_t address_string_len; + char *address_string, line[SIZE], *found; + + if (symbol == NULL) + return (char *) NULL; + + f = fopen("/proc/self/maps", "r"); + if (f == NULL) + return (char *) NULL; + + address_string_len = 4; + address_string = (char *) g_try_malloc(address_string_len); + found = (char *) NULL; + + while (!feof(f)) { + char *start_addr, *end_addr, *end_addr_end, *file; + void *start_addr_p, *end_addr_p; + size_t len; + + if (fgets(line, SIZE, f) == NULL) + break; + + /* Sanity check. */ + if (strstr(line, " r-xp ") == NULL || strchr(line, '/') == NULL) + continue; + + /* Parse line. */ + start_addr = line; + end_addr = strchr(line, '-'); + file = strchr(line, '/'); + + /* More sanity check. */ + if (!(file > end_addr && end_addr != NULL && end_addr[0] == '-')) + continue; + + end_addr[0] = '\0'; + end_addr++; + end_addr_end = strchr(end_addr, ' '); + if (end_addr_end == NULL) + continue; + + end_addr_end[0] = '\0'; + len = strlen(file); + if (len == 0) + continue; + if (file[len - 1] == '\n') + file[len - 1] = '\0'; + + /* Get rid of "(deleted)" from the filename. */ + len = strlen(file); + if (len > 10 && strcmp(file + len - 10, " (deleted)") == 0) + file[len - 10] = '\0'; + + /* I don't know whether this can happen but better safe than sorry. */ + len = strlen(start_addr); + if (len != strlen(end_addr)) + continue; + + + /* Transform the addresses into a string in the form of 0xdeadbeef, + * then transform that into a pointer. */ + if (address_string_len < len + 3) { + address_string_len = len + 3; + address_string = + (char *) g_try_realloc(address_string, address_string_len); + } + + memcpy(address_string, "0x", 2); + memcpy(address_string + 2, start_addr, len); + address_string[2 + len] = '\0'; + sscanf(address_string, "%p", &start_addr_p); + + memcpy(address_string, "0x", 2); + memcpy(address_string + 2, end_addr, len); + address_string[2 + len] = '\0'; + sscanf(address_string, "%p", &end_addr_p); + + + if (symbol >= start_addr_p && symbol < end_addr_p) { + found = file; + break; + } + } + + g_free(address_string); + fclose(f); + + if (found == NULL) + return (char *) NULL; + else + return g_strdup(found); +} + + +static gchar *exe = NULL; + +static void set_gerror(GError ** error, GbrInitError errcode); + + +/** Initialize the BinReloc library (for applications). + * + * This function must be called before using any other BinReloc functions. + * It attempts to locate the application's canonical filename. + * + * @note If you want to use BinReloc for a library, then you should call + * gbr_init_lib() instead. + * + * @param error If BinReloc failed to initialize, then the error report will + * be stored in this variable. Set to NULL if you don't want an + * error report. See the #GbrInitError for a list of error + * codes. + * + * @returns TRUE on success, FALSE if BinReloc failed to initialize. + */ +gboolean gbr_init(GError ** error) +{ + GbrInitError errcode = 0; + + /* Locate the application's filename. */ + exe = _br_find_exe(&errcode); + if (exe != NULL) + /* Success! */ + return TRUE; + else { + /* Failed :-( */ + set_gerror(error, errcode); + return FALSE; + } +} + + +/** Initialize the BinReloc library (for libraries). + * + * This function must be called before using any other BinReloc functions. + * It attempts to locate the calling library's canonical filename. + * + * @note The BinReloc source code MUST be included in your library, or this + * function won't work correctly. + * + * @returns TRUE on success, FALSE if a filename cannot be found. + */ +gboolean gbr_init_lib(GError ** error) +{ + GbrInitError errcode = 0; + + exe = _br_find_exe_for_symbol((const void *) "", &errcode); + if (exe != NULL) + /* Success! */ + return TRUE; + else { + /* Failed :-( */ + set_gerror(error, errcode); + return exe != NULL; + } +} + + +static void set_gerror(GError ** error, GbrInitError errcode) +{ + gchar *error_message; + + if (error == NULL) + return; + + switch (errcode) { + case GBR_INIT_ERROR_NOMEM: + error_message = "Cannot allocate memory."; + break; + case GBR_INIT_ERROR_OPEN_MAPS: + error_message = "Unable to open /proc/self/maps for reading."; + break; + case GBR_INIT_ERROR_READ_MAPS: + error_message = "Unable to read from /proc/self/maps."; + break; + case GBR_INIT_ERROR_INVALID_MAPS: + error_message = "The file format of /proc/self/maps is invalid."; + break; + case GBR_INIT_ERROR_DISABLED: + error_message = "Binary relocation support is disabled."; + break; + default: + error_message = "Unknown error."; + break; + }; + g_set_error(error, g_quark_from_static_string("GBinReloc"), + errcode, "%s", error_message); +} + + +/** Find the canonical filename of the current application. + * + * @param default_exe A default filename which will be used as fallback. + * @returns A string containing the application's canonical filename, + * which must be freed when no longer necessary. If BinReloc is + * not initialized, or if the initialization function failed, + * then a copy of default_exe will be returned. If default_exe + * is NULL, then NULL will be returned. + */ +gchar *gbr_find_exe(const gchar * default_exe) +{ + if (exe == NULL) { + /* BinReloc is not initialized. */ + if (default_exe != NULL) + return g_strdup(default_exe); + else + return NULL; + } + return g_strdup(exe); +} + + +/** Locate the directory in which the current application is installed. + * + * The prefix is generated by the following pseudo-code evaluation: + * \code + * dirname(exename) + * \endcode + * + * @param default_dir A default directory which will used as fallback. + * @return A string containing the directory, which must be freed when no + * longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_dir + * will be returned. If default_dir is NULL, then NULL will be + * returned. + */ +gchar *gbr_find_exe_dir(const gchar * default_dir) +{ + if (exe == NULL) { + /* BinReloc not initialized. */ + if (default_dir != NULL) + return g_strdup(default_dir); + else + return NULL; + } + + return g_path_get_dirname(exe); +} + + +/** Locate the prefix in which the current application is installed. + * + * The prefix is generated by the following pseudo-code evaluation: + * \code + * dirname(dirname(exename)) + * \endcode + * + * @param default_prefix A default prefix which will used as fallback. + * @return A string containing the prefix, which must be freed when no + * longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_prefix + * will be returned. If default_prefix is NULL, then NULL will be + * returned. + */ +gchar *gbr_find_prefix(const gchar * default_prefix) +{ + gchar *dir1, *dir2; + + if (exe == NULL) { + /* BinReloc not initialized. */ + if (default_prefix != NULL) + return g_strdup(default_prefix); + else + return NULL; + } + + dir1 = g_path_get_dirname(exe); + dir2 = g_path_get_dirname(dir1); + g_free(dir1); + return dir2; +} + + +/** Locate the application's binary folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/bin" + * \endcode + * + * @param default_bin_dir A default path which will used as fallback. + * @return A string containing the bin folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_bin_dir will + * be returned. If default_bin_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_bin_dir(const gchar * default_bin_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_bin_dir != NULL) + return g_strdup(default_bin_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, "bin", NULL); + g_free(prefix); + return dir; +} + + +/** Locate the application's superuser binary folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/sbin" + * \endcode + * + * @param default_sbin_dir A default path which will used as fallback. + * @return A string containing the sbin folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_sbin_dir will + * be returned. If default_bin_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_sbin_dir(const gchar * default_sbin_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_sbin_dir != NULL) + return g_strdup(default_sbin_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, "sbin", NULL); + g_free(prefix); + return dir; +} + + +/** Locate the application's data folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/share" + * \endcode + * + * @param default_data_dir A default path which will used as fallback. + * @return A string containing the data folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_data_dir + * will be returned. If default_data_dir is NULL, then NULL will be + * returned. + */ +gchar *gbr_find_data_dir(const gchar * default_data_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_data_dir != NULL) + return g_strdup(default_data_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, "share", NULL); + g_free(prefix); + return dir; +} + + +/** Locate the application's localization folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/share/locale" + * \endcode + * + * @param default_locale_dir A default path which will used as fallback. + * @return A string containing the localization folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_locale_dir will be returned. + * If default_locale_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_locale_dir(const gchar * default_locale_dir) +{ + gchar *data_dir, *dir; + + data_dir = gbr_find_data_dir(NULL); + if (data_dir == NULL) { + /* BinReloc not initialized. */ + if (default_locale_dir != NULL) + return g_strdup(default_locale_dir); + else + return NULL; + } + + dir = g_build_filename(data_dir, "locale", NULL); + g_free(data_dir); + return dir; +} + + +/** Locate the application's library folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/lib" + * \endcode + * + * @param default_lib_dir A default path which will used as fallback. + * @return A string containing the library folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the + * initialization function failed, then a copy of default_lib_dir will be returned. + * If default_lib_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_lib_dir(const gchar * default_lib_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_lib_dir != NULL) + return g_strdup(default_lib_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, LIBDIR, NULL); + + g_free(prefix); + return dir; +} + + +/** Locate the application's libexec folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/libexec" + * \endcode + * + * @param default_libexec_dir A default path which will used as fallback. + * @return A string containing the libexec folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the initialization + * function failed, then a copy of default_libexec_dir will be returned. + * If default_libexec_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_libexec_dir(const gchar * default_libexec_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_libexec_dir != NULL) + return g_strdup(default_libexec_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, "libexec", NULL); + g_free(prefix); + return dir; +} + + +/** Locate the application's configuration files folder. + * + * The path is generated by the following pseudo-code evaluation: + * \code + * prefix + "/etc" + * \endcode + * + * @param default_etc_dir A default path which will used as fallback. + * @return A string containing the etc folder's path, which must be freed when + * no longer necessary. If BinReloc is not initialized, or if the initialization + * function failed, then a copy of default_etc_dir will be returned. + * If default_etc_dir is NULL, then NULL will be returned. + */ +gchar *gbr_find_etc_dir(const gchar * default_etc_dir) +{ + gchar *prefix, *dir; + + prefix = gbr_find_prefix(NULL); + if (prefix == NULL) { + /* BinReloc not initialized. */ + if (default_etc_dir != NULL) + return g_strdup(default_etc_dir); + else + return NULL; + } + + dir = g_build_filename(prefix, "etc", NULL); + g_free(prefix); + return dir; +} + + +G_END_DECLS +#endif /* __BINRELOC_C__ */ diff --git a/hardinfo2/cpu_util.c b/hardinfo2/cpu_util.c new file mode 100644 index 00000000..8db5f61a --- /dev/null +++ b/hardinfo2/cpu_util.c @@ -0,0 +1,251 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2006 L. A. F. Pereira + * This file by Burt P. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "hardinfo.h" +#include "cpu_util.h" +#include "cpubits.h" + +#define CPU_TOPO_NULL -9877 + +const gchar *byte_order_str() { +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + return _("Little Endian"); +#else + return _("Big Endian"); +#endif +} + +int processor_has_flag(gchar * strflags, gchar * strflag) +{ + gchar **flags; + gint ret = 0; + if (strflags == NULL || strflag == NULL) + return 0; + flags = g_strsplit(strflags, " ", 0); + ret = g_strv_contains((const gchar * const *)flags, strflag); + g_strfreev(flags); + return ret; +} + +gchar* get_cpu_str(const gchar* file, gint cpuid) { + gchar *tmp0 = NULL; + gchar *tmp1 = NULL; + tmp0 = g_strdup_printf("/sys/devices/system/cpu/cpu%d/%s", cpuid, file); + g_file_get_contents(tmp0, &tmp1, NULL, NULL); + g_free(tmp0); + return tmp1; +} + +gint get_cpu_int(const char* item, int cpuid, int null_val) { + gchar *fc = NULL; + int ret = null_val; + fc = get_cpu_str(item, cpuid); + if (fc) { + ret = atol(fc); + g_free(fc); + } + return ret; +} + +/* cpubits is 32768 bits long + * core_ids are not unique among physical_ids + * hack up cpubits into 128 packs of 256 cores + * to make cores unique in cpubits */ +#define MAX_CORES_PER_PACK 256 +#define MAX_PACKS 128 + +int cpu_procs_cores_threads_nodes(int *p, int *c, int *t, int *n) +{ + cpubits *threads, *cores, *packs; + char *tmp; + int i, m, pack_id, core_id; + + g_file_get_contents("/sys/devices/system/cpu/present", &tmp, NULL, NULL); + if (tmp == NULL) { + *p = *c = *t = *n = -1; + return 0; + } + + threads = cpubits_from_str(tmp); + cores = cpubits_from_str(""); + packs = cpubits_from_str(""); + m = cpubits_max(threads); + for (i = 0; i <= m; i++) { + pack_id = get_cpu_int("topology/physical_package_id", i, CPU_TOPO_NULL); + core_id = get_cpu_int("topology/core_id", i, CPU_TOPO_NULL); + if (pack_id < 0) + pack_id = 0; + CPUBIT_SET(packs, pack_id); + if (core_id >= 0) { + CPUBIT_SET(cores, (pack_id * MAX_CORES_PER_PACK) + core_id); + } + } + + *t = cpubits_count(threads); + *c = cpubits_count(cores); + *p = cpubits_count(packs); + + g_free(tmp); + g_file_get_contents("/sys/devices/system/node/possible", &tmp, NULL, NULL); + if (tmp != NULL) { + cpubits *nodes = cpubits_from_str(tmp); + if (nodes) + *n = cpubits_count(nodes); + free(nodes); + } + + if (!*c) + *c = 1; + if (!*p) + *p = 1; + if (!*n) + *n = 1; + + g_free(threads); + g_free(cores); + g_free(packs); + g_free(tmp); + return 1; +} + +cpufreq_data *cpufreq_new(gint id) +{ + cpufreq_data *cpufd; + cpufd = malloc(sizeof(cpufreq_data)); + if (cpufd) { + memset(cpufd, 0, sizeof(cpufreq_data)); + cpufd->id = id; + cpufreq_update(cpufd, 0); + } + return cpufd; +} + +void cpufreq_update(cpufreq_data *cpufd, int cur_only) +{ + if (cpufd) { + cpufd->cpukhz_cur = get_cpu_int("cpufreq/scaling_cur_freq", cpufd->id, 0); + if (cur_only) return; + cpufd->scaling_driver = get_cpu_str("cpufreq/scaling_driver", cpufd->id); + cpufd->scaling_governor = get_cpu_str("cpufreq/scaling_governor", cpufd->id); + cpufd->transition_latency = get_cpu_int("cpufreq/cpuinfo_transition_latency", cpufd->id, 0); + cpufd->cpukhz_min = get_cpu_int("cpufreq/scaling_min_freq", cpufd->id, 0); + cpufd->cpukhz_max = get_cpu_int("cpufreq/scaling_max_freq", cpufd->id, 0); + if (cpufd->scaling_driver == NULL) cpufd->scaling_driver = g_strdup("(Unknown)"); + if (cpufd->scaling_governor == NULL) cpufd->scaling_governor = g_strdup("(Unknown)"); + + /* x86 uses freqdomain_cpus, all others use affected_cpus */ + cpufd->shared_list = get_cpu_str("cpufreq/freqdomain_cpus", cpufd->id); + if (cpufd->shared_list == NULL) cpufd->shared_list = get_cpu_str("cpufreq/affected_cpus", cpufd->id); + if (cpufd->shared_list == NULL) cpufd->shared_list = g_strdup_printf("%d", cpufd->id); + } +} + +void cpufreq_free(cpufreq_data *cpufd) +{ + if (cpufd) { + g_free(cpufd->scaling_driver); + g_free(cpufd->scaling_governor); + } + g_free(cpufd); +} + +cpu_topology_data *cputopo_new(gint id) +{ + cpu_topology_data *cputd; + cputd = malloc(sizeof(cpu_topology_data)); + if (cputd) { + memset(cputd, 0, sizeof(cpu_topology_data)); + cputd->id = id; + cputd->socket_id = get_cpu_int("topology/physical_package_id", id, CPU_TOPO_NULL); + cputd->core_id = get_cpu_int("topology/core_id", id, CPU_TOPO_NULL); + cputd->book_id = get_cpu_int("topology/book_id", id, CPU_TOPO_NULL); + cputd->drawer_id = get_cpu_int("topology/drawer_id", id, CPU_TOPO_NULL); + } + return cputd; + +} + +void cputopo_free(cpu_topology_data *cputd) +{ + g_free(cputd); +} + +gchar *cpufreq_section_str(cpufreq_data *cpufd) +{ + if (cpufd == NULL) + return g_strdup(""); + + if (cpufd->cpukhz_min || cpufd->cpukhz_max || cpufd->cpukhz_cur) { + return g_strdup_printf( + "[%s]\n" + "%s=%d %s\n" + "%s=%d %s\n" + "%s=%d %s\n" + "%s=%d %s\n" + "%s=%s\n" + "%s=%s\n", + _("Frequency Scaling"), + _("Minimum"), cpufd->cpukhz_min, _("kHz"), + _("Maximum"), cpufd->cpukhz_max, _("kHz"), + _("Current"), cpufd->cpukhz_cur, _("kHz"), + _("Transition Latency"), cpufd->transition_latency, _("ns"), + _("Governor"), cpufd->scaling_governor, + _("Driver"), cpufd->scaling_driver); + } else { + return g_strdup_printf( + "[%s]\n" + "%s=%s\n", + _("Frequency Scaling"), + _("Driver"), cpufd->scaling_driver); + } +} + +gchar *cputopo_section_str(cpu_topology_data *cputd) +{ + static const char na[] = N_("(Not Available)"); + char sock_str[64] = "", core_str[64] = ""; + char book_str[64] = "", drawer_str[64] = ""; + + if (cputd == NULL) + return g_strdup(""); + + if (cputd->socket_id != CPU_TOPO_NULL && cputd->socket_id != -1) + sprintf(sock_str, "%s=%d\n", _("Socket"), cputd->socket_id); + else + sprintf(sock_str, "%s=%s\n", _("Socket"), na); + + if (cputd->core_id != CPU_TOPO_NULL) + sprintf(core_str, "%s=%d\n", _("Core"), cputd->core_id); + else + sprintf(core_str, "%s=%s\n", _("Core"), na); + + if (cputd->book_id != CPU_TOPO_NULL) + sprintf(core_str, "%s=%d\n", _("Book"), cputd->book_id); + if (cputd->book_id != CPU_TOPO_NULL) + sprintf(core_str, "%s=%d\n", _("Drawer"), cputd->drawer_id); + + return g_strdup_printf( + "[%s]\n" + "%s=%d\n" + "%s%s%s%s", + _("Topology"), + _("ID"), cputd->id, + sock_str, core_str, book_str, drawer_str ); +} diff --git a/hardinfo2/dmi_util.c b/hardinfo2/dmi_util.c new file mode 100644 index 00000000..94351ad7 --- /dev/null +++ b/hardinfo2/dmi_util.c @@ -0,0 +1,450 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2017 L. A. F. Pereira + * This file + * Copyright (C) 2017 Burt P. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "dmi_util.h" + +static const char *dmi_type_strings[] = { + [0] = N_("BIOS Information"), + [1] = N_("System"), + [2] = N_("Base Board"), + [3] = N_("Chassis"), + [4] = N_("Processor"), + [5] = N_("Memory Controller"), + [6] = N_("Memory Module"), + [7] = N_("Cache"), + [8] = N_("Port Connector"), + [9] = N_("System Slots"), + [10] = N_("On Board Devices"), + [11] = N_("OEM Strings"), + [12] = N_("System Configuration Options"), + [13] = N_("BIOS Language"), + [14] = N_("Group Associations"), + [15] = N_("System Event Log"), + [16] = N_("Physical Memory Array"), + [17] = N_("Memory Device"), + [18] = N_("32-bit Memory Error"), + [19] = N_("Memory Array Mapped Address"), + [20] = N_("Memory Device Mapped Address"), + [21] = N_("Built-in Pointing Device"), + [22] = N_("Portable Battery"), + [23] = N_("System Reset"), + [24] = N_("Hardware Security"), + [25] = N_("System Power Controls"), + [26] = N_("Voltage Probe"), + [27] = N_("Cooling Device"), + [28] = N_("Temperature Probe"), + [29] = N_("Electrical Current Probe"), + [30] = N_("Out-of-band Remote Access"), + [31] = N_("Boot Integrity Services"), + [32] = N_("System Boot"), + [33] = N_("64-bit Memory Error"), + [34] = N_("Management Device"), + [35] = N_("Management Device Component"), + [36] = N_("Management Device Threshold Data"), + [37] = N_("Memory Channel"), + [38] = N_("IPMI Device"), + [39] = N_("Power Supply"), + [40] = N_("Additional Information"), + [41] = N_("Onboard Device"), + //127 = End of Table +}; + +/* frees the string and sets it NULL if it is to be ignored + * returns -1 if error, 0 if ok, 1 if ignored */ +static int ignore_placeholder_strings(gchar **pstr) { + gchar *chk, *p; + chk = g_strdup(*pstr); + + if (pstr == NULL || *pstr == NULL) + return -1; +#define DMI_IGNORE(m) if (strcasecmp(m, *pstr) == 0) { g_free(chk); g_free(*pstr); *pstr = NULL; return 1; } + DMI_IGNORE("To be filled by O.E.M."); + DMI_IGNORE("Default String"); + DMI_IGNORE("System Product Name"); + DMI_IGNORE("System Manufacturer"); + DMI_IGNORE("System Version"); + DMI_IGNORE("System Serial Number"); + DMI_IGNORE("Rev X.0x"); /* ASUS board version nonsense */ + DMI_IGNORE("x.x"); /* Gigabyte board version nonsense */ + DMI_IGNORE("NA"); + DMI_IGNORE("SKU"); + + /* noticed on an HP x360 with Insyde BIOS */ + DMI_IGNORE("Type2 - Board Asset Tag"); + DMI_IGNORE("Type1ProductConfigId"); + + /* Toshiba Laptop with Insyde BIOS */ + DMI_IGNORE("Base Board Version"); + DMI_IGNORE("No Asset Tag"); + DMI_IGNORE("None"); + DMI_IGNORE("Type1Family"); + DMI_IGNORE("123456789"); + + /* ASUS socket 775 MB */ + DMI_IGNORE("Asset-1234567890"); + DMI_IGNORE("MB-1234567890"); + DMI_IGNORE("Chassis Serial Number"); + DMI_IGNORE("Chassis Version"); + DMI_IGNORE("Chassis Manufacture"); + + /* Zotac version nonsense */ + p = chk; + while (*p != 0) { *p = 'x'; p++; } /* all X */ + DMI_IGNORE(chk); + p = chk; + while (*p != 0) { *p = '0'; p++; } /* all 0 */ + DMI_IGNORE(chk); + + /*... more, I'm sure. */ + + g_free(chk); + return 0; +} + +static const char *dmi_sysfs_root(void) { + char *candidates[] = { + "/sys/devices/virtual/dmi", + "/sys/class/dmi", + NULL + }; + int i = 0; + while (candidates[i] != NULL) { + if(access(candidates[i], F_OK) != -1) + return candidates[i]; + i++; + } + return NULL; +} + +int dmi_str_status(const char *id_str) { + gchar *str = dmi_get_str_abs(id_str); + int ret = 1; + + if (!str) + ret = 0; + + if ( ignore_placeholder_strings(&str) > 0 ) + ret = -1; + + g_free(str); + return ret; +} + +char *dmi_get_str(const char *id_str) { + gchar *ret = dmi_get_str_abs(id_str); + /* return NULL on empty */ + if (ret && *ret == 0) { + g_free(ret); + ret = NULL; + } + ignore_placeholder_strings(&ret); + return ret; +} + +char *dmi_get_str_abs(const char *id_str) { + static struct { + char *id; + char *path; + } tab_dmi_sysfs[] = { + /* dmidecode -> sysfs */ + { "bios-release-date", "id/bios_date" }, + { "bios-vendor", "id/bios_vendor" }, + { "bios-version", "id/bios_version" }, + { "baseboard-product-name", "id/board_name" }, + { "baseboard-manufacturer", "id/board_vendor" }, + { "baseboard-version", "id/board_version" }, + { "baseboard-serial-number", "id/board_serial" }, + { "baseboard-asset-tag", "id/board_asset_tag" }, + { "system-product-name", "id/product_name" }, + { "system-manufacturer", "id/sys_vendor" }, + { "system-serial-number", "id/product_serial" }, + { "system-product-family", "id/product_family" }, + { "system-version", "id/product_version" }, + { "system-uuid", "product_uuid" }, + { "system-sku", "id/product_sku" }, /*dmidecode doesn't actually support this one*/ + { "chassis-type", "id/chassis_type" }, + { "chassis-serial-number", "id/chassis_serial" }, + { "chassis-manufacturer", "id/chassis_vendor" }, + { "chassis-version", "id/chassis_version" }, + { "chassis-asset-tag", "id/chassis_asset_tag" }, + { NULL, NULL } + }; + const gchar *dmi_root = dmi_sysfs_root(); + gchar *ret = NULL; + gchar full_path[PATH_MAX]; + gboolean spawned; + gchar *out, *err; + + int i = 0; + + /* try sysfs first */ + if (dmi_root) { + while (tab_dmi_sysfs[i].id != NULL) { + if (strcmp(id_str, tab_dmi_sysfs[i].id) == 0) { + snprintf(full_path, PATH_MAX, "%s/%s", dmi_root, tab_dmi_sysfs[i].path); + if (g_file_get_contents(full_path, &ret, NULL, NULL) ) + goto dmi_str_done; + } + i++; + } + } + + /* try dmidecode, but may require root */ + snprintf(full_path, PATH_MAX, "dmidecode -s %s", id_str); + spawned = hardinfo_spawn_command_line_sync(full_path, + &out, &err, &i, NULL); + if (spawned) { + if (i == 0) + ret = out; + else + g_free(out); + + g_free(err); + } + +dmi_str_done: + if (ret != NULL) { + ret = strend(ret, '\n'); + ret = g_strstrip(ret); + } + return ret; +} + +char *dmi_chassis_type_str(int chassis_type, gboolean with_val) { + static const char *types[] = { + N_("Invalid chassis type (0)"), + N_("Unknown chassis type"), /* 1 is "Other", but not helpful in HardInfo */ + N_("Unknown chassis type"), + N_("Desktop"), + N_("Low-profile Desktop"), + N_("Pizza Box"), + N_("Mini Tower"), + N_("Tower"), + N_("Portable"), + N_("Laptop"), + N_("Notebook"), + N_("Handheld"), + N_("Docking Station"), + N_("All-in-one"), + N_("Subnotebook"), + N_("Space-saving"), + N_("Lunch Box"), + N_("Main Server Chassis"), + N_("Expansion Chassis"), + N_("Sub Chassis"), + N_("Bus Expansion Chassis"), + N_("Peripheral Chassis"), + N_("RAID Chassis"), + N_("Rack Mount Chassis"), + N_("Sealed-case PC"), + N_("Multi-system"), + N_("CompactPCI"), + N_("AdvancedTCA"), + N_("Blade"), + N_("Blade Enclosing"), + N_("Tablet"), + N_("Convertible"), + N_("Detachable"), + N_("IoT Gateway"), + N_("Embedded PC"), + N_("Mini PC"), + N_("Stick PC"), + }; + + if (chassis_type <= 0) { + gchar *chassis = dmi_get_str("chassis-type"); + if (chassis) { + chassis_type = atoi(chassis); + g_free(chassis); + } else + chassis_type = -1; + } + + if (chassis_type >= 0 && chassis_type < (int)G_N_ELEMENTS(types)) { + if (with_val) + return g_strdup_printf("[%d] %s", chassis_type, _(types[chassis_type])); + + return g_strdup(_(types[chassis_type])); + } + return NULL; +} + +/* TODO: something better maybe */ +static char *dd_cache[128] = {}; +void dmidecode_cache_free() +{ int i; for(i = 0; i < 128; i++) g_free(dd_cache[i]); } + +char *dmidecode_read(const dmi_type *type) { + gchar *ret = NULL; + gchar full_path[PATH_MAX]; + gboolean spawned; + gchar *out, *err; + + int i = 0; + + if (type) { + if (dd_cache[*type]) + return g_strdup(dd_cache[*type]); + snprintf(full_path, PATH_MAX, "dmidecode -t %"PRId32, *type); + } else { + if (dd_cache[127]) + return g_strdup(dd_cache[127]); + snprintf(full_path, PATH_MAX, "dmidecode"); + } + + spawned = hardinfo_spawn_command_line_sync(full_path, + &out, &err, &i, NULL); + if (spawned) { + if (i == 0) + ret = out; + else + g_free(out); + + g_free(err); + } + + if (ret) { + if (type) + dd_cache[*type] = g_strdup(ret); + else + dd_cache[127] = g_strdup(ret); + } + + return ret; +} + +dmi_handle_list *dmi_handle_list_add(dmi_handle_list *hl, dmi_handle_ext new_handle_ext) { + if (new_handle_ext.type < G_N_ELEMENTS(dmi_type_strings) ) + new_handle_ext.type_str = dmi_type_strings[new_handle_ext.type]; + if (!hl) { + hl = malloc(sizeof(dmi_handle_list)); + hl->count = 1; + hl->handles = malloc(sizeof(dmi_handle) * hl->count); + hl->handles_ext = malloc(sizeof(dmi_handle_ext) * hl->count); + } else { + hl->count++; + hl->handles = realloc(hl->handles, sizeof(dmi_handle) * hl->count); + hl->handles_ext = realloc(hl->handles_ext, sizeof(dmi_handle_ext) * hl->count); + } + hl->handles_ext[hl->count - 1] = new_handle_ext; + hl->handles[hl->count - 1] = new_handle_ext.id; + + return hl; +} + +dmi_handle_list *dmidecode_handles(const dmi_type *type) { + gchar *full = NULL, *p = NULL, *next_nl = NULL; + dmi_handle_list *hl = NULL; + + // Handle 0x003B, DMI type 9, 17 bytes + + full = dmidecode_read(type); + if (full) { + p = full; + while(next_nl = strchr(p, '\n')) { + unsigned int ch = 0, ct = 0, cb = 0; + strend(p, '\n'); + if (sscanf(p, "Handle 0x%X, DMI type %u, %u bytes", &ch, &ct, &cb) > 0) { + if (type && !ct) ct = *type; + hl = dmi_handle_list_add(hl, (dmi_handle_ext){.id = ch, .type = ct, .size = cb}); + } + p = next_nl + 1; + } + free(full); + } + return hl; +} + +void dmi_handle_list_free(dmi_handle_list *hl) { + if (hl) { + free(hl->handles); + free(hl->handles_ext); + } + free(hl); +} + +char *dmidecode_match(const char *name, const dmi_type *type, const dmi_handle *handle) { + gchar *ret = NULL, *full = NULL, *p = NULL, *next_nl = NULL; + unsigned int ch = 0; + int ln = 0; + + if (!name) return NULL; + ln = strlen(name); + + full = dmidecode_read(type); + if (full) { + p = full; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + if (!(sscanf(p, "Handle 0x%X", &ch) > 0) ) { + if (!handle || *handle == ch) { + while(*p == '\t') p++; + if (strncmp(p, name, ln) == 0) { + if (*(p + ln) == ':') { + p = p + ln + 1; + while(*p == ' ') p++; + ret = strdup(p); + break; + } + } + } + } + p = next_nl + 1; + } + free(full); + } + + return ret; +} + +dmi_handle_list *dmidecode_match_value(const char *name, const char *value, const dmi_type *type) { + dmi_handle_list *hl = NULL; + gchar *full = NULL, *p = NULL, *next_nl = NULL; + unsigned int ch = 0, ct = 0, cb = 0; + int ln = 0, lnv = 0; + + if (!name) return NULL; + ln = strlen(name); + lnv = (value) ? strlen(value) : 0; + + full = dmidecode_read(type); + if (full) { + p = full; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + if (!(sscanf(p, "Handle 0x%X, DMI type %u, %u bytes", &ch, &ct, &cb) > 0)) { + while(*p == '\t') p++; + if (strncmp(p, name, ln) == 0) { + if (*(p + ln) == ':') { + p = p + ln + 1; + while(*p == ' ') p++; + if (!value || strncmp(p, value, lnv) == 0) + hl = dmi_handle_list_add(hl, (dmi_handle_ext){.id = ch, .type = ct, .size = cb}); + } + } + } + p = next_nl + 1; + } + free(full); + } + + return hl; +} diff --git a/hardinfo2/dt_util.c b/hardinfo2/dt_util.c new file mode 100644 index 00000000..1f65d9c6 --- /dev/null +++ b/hardinfo2/dt_util.c @@ -0,0 +1,1187 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2007 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ +/* + * Device Tree support by Burt P. + * Sources: + * http://elinux.org/Device_Tree_Usage + * http://elinux.org/Device_Tree_Mysteries + */ +#include +#include +#include /* for PRIu64 */ +#include +#include "hardinfo.h" +#include "dt_util.h" +#include "appf.h" + +static struct { + char *name; int type; +} prop_types[] = { + { "name", DTP_STR }, + { "compatible", DTP_STR }, + { "model", DTP_STR }, + { "reg", DTP_REG }, + { "clocks", DTP_CLOCKS }, + { "gpios", DTP_GPIOS }, + { "cs-gpios", DTP_GPIOS }, + { "phandle", DTP_PH }, + { "interrupts", DTP_INTRUPT }, + { "interrupts-extended", DTP_INTRUPT_EX }, + { "interrupt-parent", DTP_PH_REF }, + { "interrupt-controller", DTP_EMPTY }, + { "regulator-min-microvolt", DTP_UINT }, + { "regulator-max-microvolt", DTP_UINT }, + { "clock-frequency", DTP_UINT }, + { "dmas", DTP_DMAS }, + { "dma-channels", DTP_UINT }, + { "dma-requests", DTP_UINT }, + + /* operating-points-v2: */ + /* https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt */ + { "operating-points-v2", DTP_PH_REF_OPP2 }, + { "opp-hz", DTP_UINT64 }, + { "opp-microvolt", DTP_UINT }, + { "opp-microvolt-L0", DTP_UINT }, /* opp-microvolt-, but this kind of */ + { "opp-microvolt-L1", DTP_UINT }, /* wildcard matching isn't supported yet */ + { "opp-microamp", DTP_UINT }, + { "clock-latency-ns", DTP_UINT }, + + { NULL, 0 }, +}; + +static struct { + char *name; uint32_t v; +} default_values[] = { + { "#address-cells", 2 }, + { "#size-cells", 1 }, + { "#dma-cells", 1 }, + { NULL, 0 }, +}; + +struct _dtr_map { + uint32_t v; /* phandle */ + char *label; /* alias */ + char *path; + struct _dtr_map *next; +}; +typedef struct _dtr_map dtr_map; + +struct _dtr { + dtr_map *aliases; + dtr_map *symbols; + dtr_map *phandles; + char *base_path; + char *log; +}; + +struct _dtr_obj { + char *path; + union { + void *data; + char *data_str; + dt_uint *data_int; + dt_uint64 *data_int64; + }; + char *name; + uint32_t length; + int type; + char *prefix; /* if the name has a manufacturer's prefix or null */ + char *np_name; /* the name without any prefix. points into .prefix or .name, do not free */ + const char *alias; /* null until first dtr_obj_alias(). do not free */ + const char *symbol; /* null until first dtr_obj_symbol(). do not free */ + dtr *dt; +}; + +dtr_map *dtr_map_add(dtr_map *map, uint32_t v, const char *label, const char *path) { + dtr_map *it; + dtr_map *nmap = malloc(sizeof(dtr_map)); + memset(nmap, 0, sizeof(dtr_map)); + nmap->v = v; + + if (label != NULL) nmap->label = strdup(label); + if (path != NULL) nmap->path = strdup(path); + if (map == NULL) + return nmap; + + it = map; + while(it->next != NULL) + it = it->next; + it->next = nmap; + + return nmap; +} + +void dtr_map_free(dtr_map *map) { + dtr_map *it; + while(map != NULL) { + it = map->next; + free(map->label); + free(map->path); + free(map); + map = it; + } +} + +/* simple sort for maps + * sv: 1 = sort by v, 0 = sort by label */ +void dtr_map_sort(dtr_map *map, int sv) +{ + int done = 0, cmp; + dtr_map *this, *next, *top = NULL, *next_top; + uint32_t tmp_v; + char *tmp_l, *tmp_p; + if (map == NULL) return; + do { + this = map; + next_top = NULL; + while(this != NULL) { + next = this->next; + if (this == top) + break; + if (next == NULL) + break; + if (sv) + cmp = (this->v > next->v) ? 1 : 0; + else + cmp = strcmp(this->label, next->label); + if (cmp > 0) { + tmp_v = this->v; this->v = next->v; next->v = tmp_v; + tmp_l = this->label; this->label = next->label; next->label = tmp_l; + tmp_p = this->path; this->path = next->path; next->path = tmp_p; + next_top = this; + } + this = next; + } + if (next_top == NULL) + done = 1; + else + top = next_top; + } while (!done); +} + +const char *dtr_phandle_lookup(dtr *s, uint32_t v) { + dtr_map *phi = s->phandles; + /* 0 and 0xffffffff are invalid phandle values */ + /* TODO: perhaps "INVALID" or something */ + if (v == 0 || v == 0xffffffff) + return NULL; + while(phi != NULL) { + if (phi->v == v) + return phi->path; + phi = phi->next; + } + return NULL; +} + +const char *dtr_alias_lookup(dtr *s, const char* label) { + dtr_map *ali = s->aliases; + while(ali != NULL) { + if (strcmp(ali->label, label) == 0) + return ali->path; + ali = ali->next; + } + return NULL; +} + +const char *dtr_alias_lookup_by_path(dtr *s, const char* path) { + dtr_map *ali = s->aliases; + while(ali != NULL) { + if (strcmp(ali->path, path) == 0) + return ali->label; + ali = ali->next; + } + return NULL; +} + +const char *dtr_symbol_lookup_by_path(dtr *s, const char* path) { + dtr_map *ali = s->symbols; + while(ali != NULL) { + if (strcmp(ali->path, path) == 0) + return ali->label; + ali = ali->next; + } + return NULL; +} + +void _dtr_read_aliases(dtr *); +void _dtr_read_symbols(dtr *); +void _dtr_map_phandles(dtr *, char *np); +int dtr_inh_find(dtr_obj *obj, char *qprop, int limit); +#define UMIN(a,b) MIN(((uint32_t)(a)), ((uint32_t)(b))) + +const char *dtr_find_device_tree_root() { + char *candidates[] = { + "/proc/device-tree", + "/sys/firmware/devicetree/base", + /* others? */ + NULL + }; + int i = 0; + while (candidates[i] != NULL) { + if(access(candidates[i], F_OK) != -1) + return candidates[i]; + i++; + } + return NULL; +} + +dtr *dtr_new_x(const char *base_path, int fast) { + dtr *dt = malloc(sizeof(dtr)); + if (dt != NULL) { + memset(dt, 0, sizeof(dtr)); + dt->log = strdup(""); + + if (base_path == NULL) + base_path = DTR_ROOT; + + if (base_path != NULL) + dt->base_path = strdup(base_path); + else { + dtr_msg(dt, "%s", "Device Tree not found."); + return dt; + } + + /* build alias and phandle lists */ + dt->aliases = NULL; + dt->symbols = NULL; + dt->phandles = NULL; + if (!fast) { + _dtr_read_aliases(dt); + _dtr_read_symbols(dt); + _dtr_map_phandles(dt, ""); + } + } + return dt; +} + +dtr *dtr_new(const char *base_path) { + return dtr_new_x(base_path, 0); +} + +void dtr_free(dtr *s) { + if (s != NULL) { + dtr_map_free(s->aliases); + dtr_map_free(s->symbols); + dtr_map_free(s->phandles); + free(s->base_path); + free(s->log); + free(s); + } +} + +int dtr_was_found(dtr *s) { + if (s != NULL) { + if (s->base_path != NULL) + return 1; + } + return 0; +} + +void dtr_msg(dtr *s, char *fmt, ...) { + gchar *buf, *tmp; + va_list args; + + va_start(args, fmt); + buf = g_strdup_vprintf(fmt, args); + va_end(args); + + tmp = g_strdup_printf("%s%s", s->log, buf); + g_free(s->log); + s->log = tmp; +} + +char *dtr_messages(dtr *s) { + if (s != NULL) + return strdup(s->log); + else + return NULL; +} + +const char *dtr_base_path(dtr *s) { + if (s) + return s->base_path; + return NULL; +} + +/*glib, but _dt_obj *prop uses malloc() and std types */ +dtr_obj *dtr_obj_read(dtr *s, const char *dtp) { + char *full_path; + char *slash, *coma; + dtr_obj *obj; + + if (dtp == NULL) + return NULL; + + obj = malloc(sizeof(dtr_obj)); + if (obj != NULL) { + memset(obj, 0, sizeof(dtr_obj)); + + obj->dt = s; + if (*dtp != '/') { + /* doesn't start with slash, use alias */ + obj->path = (char*)dtr_alias_lookup(s, dtp); + if (obj->path != NULL) + obj->path = strdup(obj->path); + else { + dtr_obj_free(obj); + return NULL; + } + } else + obj->path = strdup(dtp); + + /* find name after last slash, or start */ + slash = strrchr(obj->path, '/'); + if (slash != NULL) + obj->name = strdup(slash + 1); + else + obj->name = strdup(obj->path); + + /* find manufacturer prefix */ + obj->prefix = strdup(obj->name); + coma = strchr(obj->prefix, ','); + if (coma != NULL) { + /* coma -> null; .np_name starts after */ + *coma = 0; + obj->np_name = coma + 1; + } else { + obj->np_name = obj->name; + free(obj->prefix); + obj->prefix = NULL; + } + + /* read data */ + full_path = g_strdup_printf("%s%s", s->base_path, obj->path); + if ( g_file_test(full_path, G_FILE_TEST_IS_DIR) ) { + obj->type = DT_NODE; + } else { + if (!g_file_get_contents(full_path, (gchar**)&obj->data, (gsize*)&obj->length, NULL)) { + dtr_obj_free(obj); + g_free(full_path); + return NULL; + } + obj->type = dtr_guess_type(obj); + } + g_free(full_path); + + return obj; + } + return NULL; +} + +void dtr_obj_free(dtr_obj *s) { + if (s != NULL) { + free(s->path); + free(s->name); + free(s->prefix); + free(s->data); + free(s); + } +} + +int dtr_obj_type(dtr_obj *s) { + if (s) + return s->type; + return DT_TYPE_ERR; +} + +char *dtr_obj_alias(dtr_obj *s) { + if (s) { + if (s->alias == NULL) + s->alias = dtr_alias_lookup_by_path(s->dt, s->path); + return (char*)s->alias; + } + return NULL; +} + +char *dtr_obj_symbol(dtr_obj *s) { + if (s) { + if (s->symbol == NULL) + s->symbol = dtr_symbol_lookup_by_path(s->dt, s->path); + return (char*)s->symbol; + } + return NULL; +} + +char *dtr_obj_path(dtr_obj *s) { + if (s) + return s->path; + return NULL; +} + +char *dtr_obj_full_path(dtr_obj *s) { + if (s) { + if (strcmp(s->path, "/") == 0) + return g_strdup_printf("%s", s->dt->base_path); + else + return g_strdup_printf("%s%s", s->dt->base_path, s->path); + } + return NULL; +} + +dtr_obj *dtr_get_prop_obj(dtr *s, dtr_obj *node, const char *name) { + dtr_obj *prop; + char *ptmp; + ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); + prop = dtr_obj_read(s, ptmp); + g_free(ptmp); + return prop; +} + +char *dtr_get_prop_str(dtr *s, dtr_obj *node, const char *name) { + dtr_obj *prop; + char *ptmp; + char *ret = NULL; + + ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); + prop = dtr_obj_read(s, ptmp); + if (prop != NULL && prop->data != NULL) { + ret = strdup(prop->data_str); + dtr_obj_free(prop); + } + g_free(ptmp); + return ret; +} + +char *dtr_get_string(const char *p, int decode) { + dtr *dt = dtr_new_x(NULL, 1); + dtr_obj *obj; + char *ret = NULL; + if (decode) { + obj = dtr_get_prop_obj(dt, NULL, p); + ret = dtr_str(obj); + dtr_obj_free(obj); + } else + ret = dtr_get_prop_str(dt, NULL, p); + dtr_free(dt); + return ret; +} + +uint32_t dtr_get_prop_u32(dtr *s, dtr_obj *node, const char *name) { + dtr_obj *prop; + char *ptmp; + uint32_t ret = 0; + + ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); + prop = dtr_obj_read(s, ptmp); + if (prop != NULL) { + if (prop->data != NULL) + ret = be32toh(*prop->data_int); + dtr_obj_free(prop); + } + g_free(ptmp); + return ret; +} + +uint64_t dtr_get_prop_u64(dtr *s, dtr_obj *node, const char *name) { + dtr_obj *prop; + char *ptmp; + uint64_t ret = 0; + + ptmp = g_strdup_printf("%s/%s", (node == NULL) ? "" : node->path, name); + prop = dtr_obj_read(s, ptmp); + if (prop != NULL) { + if (prop->data != NULL) + ret = be64toh(*prop->data_int64); + dtr_obj_free(prop); + } + g_free(ptmp); + return ret; +} + +int dtr_guess_type(dtr_obj *obj) { + char *tmp, *dash; + uint32_t i = 0, anc = 0, might_be_str = 1; + + if (obj->length == 0) + return DTP_EMPTY; + + /* special #(.*)-cells names are UINT */ + if (*obj->name == '#') { + dash = strrchr(obj->name, '-'); + if (dash != NULL) { + if (strcmp(dash, "-cells") == 0) + return DTP_UINT; + } + } + + /* /aliases/ * and /__symbols__/ * are always strings */ + if (strncmp(obj->path, "/aliases/", strlen("/aliases/") ) == 0) + return DTP_STR; + if (strncmp(obj->path, "/__symbols__/", strlen("/__symbols__/") ) == 0) + return DTP_STR; + + /* /__overrides__/ * */ + if (strncmp(obj->path, "/__overrides__/", strlen("/__overrides__/") ) == 0) + if (strcmp(obj->name, "name") != 0) + return DTP_OVR; + + /* lookup known type */ + while (prop_types[i].name != NULL) { + if (strcmp(obj->name, prop_types[i].name) == 0) + return prop_types[i].type; + i++; + } + + /* maybe a string? */ + for (i = 0; i < obj->length; i++) { + tmp = obj->data_str + i; + if ( isalnum(*tmp) ) anc++; /* count the alpha-nums */ + if ( isprint(*tmp) || *tmp == 0 ) + continue; + might_be_str = 0; + break; + } + if (might_be_str && + ( anc >= obj->length - 2 /* all alpha-nums but ^/ and \0$ */ + || anc >= 5 ) /*arbitrary*/) + return DTP_STR; + + /* multiple of 4 bytes, try list of hex values */ + if (!(obj->length % 4)) + return DTP_HEX; + + return DTP_UNK; +} + +char *dtr_elem_phref(dtr *s, dt_uint e, int show_path, const char *extra) { + const char *ph_path, *al_label; + char *ret = NULL; + ph_path = dtr_phandle_lookup(s, be32toh(e)); + if (ph_path != NULL) { + /* TODO: alias or symbol? */ + al_label = dtr_symbol_lookup_by_path(s, ph_path); + if (al_label != NULL) { + if (show_path) + ret = g_strdup_printf("&%s (%s) %s", al_label, ph_path, extra ? extra : ""); + else + ret = g_strdup_printf("&%s %s", al_label, extra ? extra : ""); + } else { + if (show_path) + ret = g_strdup_printf("0x%x (%s) %s", be32toh(e), ph_path, extra ? extra : ""); + } + } + if (ret == NULL) + ret = dtr_elem_hex(e); + return ret; +} + +char *dtr_elem_oppv2(dtr_obj* obj) { + char opp_str[512] = ""; + dtr_obj *parent = dtr_get_parent_obj(obj); + if (parent) { + dt_opp_range *opp = dtr_get_opp_range(obj->dt, parent->path); + if (opp) { + snprintf(opp_str, 511, "[%d - %d %s]", opp->khz_min, opp->khz_max, _("kHz")); + g_free(opp); + } + dtr_obj_free(parent); + } + return dtr_elem_phref(obj->dt, *obj->data_int, 1, opp_str); +} + +char *dtr_elem_hex(dt_uint e) { + return g_strdup_printf("0x%x", be32toh(e) ); +} + +char *dtr_elem_byte(uint8_t e) { + return g_strdup_printf("%x", e); +} + +char *dtr_elem_uint(dt_uint e) { + return g_strdup_printf("%u", be32toh(e) ); +} + +char *dtr_elem_uint64(dt_uint64 e) { + return g_strdup_printf("%" PRIu64, be64toh(e) ); +} + +char *dtr_list_byte(uint8_t *bytes, unsigned long count) { + char *ret, *dest; + char buff[4] = ""; /* max element: " 00\0" */ + uint32_t v; + unsigned long i, l; + l = count * 4 + 1; + ret = malloc(l); + memset(ret, 0, l); + strcpy(ret, "["); + dest = ret + 1; + for (i = 0; i < count; i++) { + v = bytes[i]; + l = sprintf(buff, "%s%02x", (i) ? " " : "", v); + strncpy(dest, buff, l); + dest += l; + } + strcpy(dest, "]"); + return ret; +} + +char *dtr_list_hex(dt_uint *list, unsigned long count) { + char *ret, *dest; + char buff[12] = ""; /* max element: " 0x00000000\0" */ + unsigned long i, l; + l = count * 12 + 1; + dest = ret = malloc(l); + memset(ret, 0, l); + for (i = 0; i < count; i++) { + l = sprintf(buff, "%s0x%x", (i) ? " " : "", be32toh(list[i])); + strncpy(dest, buff, l); + dest += l; + } + return ret; +} + +/*cstd, except for g_strescape()*/ +char *dtr_list_str0(const char *data, uint32_t length) { + char *tmp, *esc, *next_str; + char ret[1024] = ""; + uint32_t l, tl; + + /* treat as null-separated string list */ + tl = 0; + strcpy(ret, ""); + tmp = ret; + next_str = (char*)data; + while(next_str != NULL) { + l = strlen(next_str); + esc = g_strescape(next_str, NULL); + sprintf(tmp, "%s\"%s\"", + strlen(ret) ? ", " : "", esc); + free(esc); + tmp += strlen(tmp); + tl += l + 1; next_str += l + 1; + if (tl >= length) break; + } + + return strdup(ret); +} + +char *dtr_list_override(dtr_obj *obj) { + /* ... */ + char *ret = NULL; + char *ph, *str; + char *src; + uint32_t consumed = 0; + int l; + src = obj->data_str; + while (consumed + 5 <= obj->length) { + ph = dtr_elem_phref(obj->dt, *(dt_uint*)src, 1, NULL); + src += 4; consumed += 4; + l = strlen(src) + 1; /* consume the null */ + str = dtr_list_str0(src, l); + ret = appfsp(ret, "<%s -> %s>", ph, str); + src += l; consumed += l; + free(ph); + free(str); + } + if (consumed < obj->length) { + str = dtr_list_byte((uint8_t*)src, obj->length - consumed); + ret = appfsp(ret, "%s", str); + free(str); + } + return ret; +} + +uint32_t dtr_get_phref_prop(dtr *s, uint32_t phandle, char *prop) { + const char *ph_path; + char *tmp; + uint32_t ret; + ph_path = dtr_phandle_lookup(s, phandle); + tmp = g_strdup_printf("%s/%s", ph_path, prop); + ret = dtr_get_prop_u32(s, NULL, tmp); + free(tmp); + return ret; +} + +char *dtr_list_phref(dtr_obj *obj, char *ext_cell_prop) { + /* */ + int count = obj->length / 4; + int i = 0, ext_cells = 0; + char *ph, *ext, *ret = NULL; + + while (i < count) { + if (ext_cell_prop == NULL) + ext_cells = 0; + else + ext_cells = dtr_get_phref_prop(obj->dt, be32toh(obj->data_int[i]), ext_cell_prop); + ph = dtr_elem_phref(obj->dt, obj->data_int[i], 0, NULL); i++; + if (ext_cells > count - i) ext_cells = count - i; + ext = dtr_list_hex((obj->data_int + i), ext_cells); i+=ext_cells; + ret = appfsp(ret, "<%s%s%s>", + ph, (ext_cells) ? " " : "", ext); + g_free(ph); + g_free(ext); + } + return ret; +} + +char *dtr_list_interrupts(dtr_obj *obj) { + char *ext, *ret = NULL; + uint32_t iparent, icells; + int count, i = 0; + + iparent = dtr_inh_find(obj, "interrupt-parent", 0); + if (!iparent) { + dtr_msg(obj->dt, "Did not find an interrupt-parent for %s", obj->path); + goto intr_err; + } + icells = dtr_get_phref_prop(obj->dt, iparent, "#interrupt-cells"); + if (!icells) { + dtr_msg(obj->dt, "Invalid #interrupt-cells value %d for %s", icells, obj->path); + goto intr_err; + } + + count = obj->length / 4; + while (i < count) { + icells = UMIN(icells, count - i); + ext = dtr_list_hex((obj->data_int + i), icells); i+=icells; + ret = appfsp(ret, "<%s>", ext); + } + return ret; + +intr_err: + return dtr_list_hex(obj->data_int, obj->length); + +} + +char *dtr_list_reg(dtr_obj *obj) { + char *tup_str, *ret = NULL; + uint32_t acells, scells, tup_len; + uint32_t extra, consumed; /* bytes */ + uint32_t *next; + + acells = dtr_inh_find(obj, "#address-cells", 2); + scells = dtr_inh_find(obj, "#size-cells", 2); + tup_len = acells + scells; + extra = obj->length % (tup_len * 4); + consumed = 0; /* bytes */ + + //printf("list reg: %s\n ... acells: %u, scells: %u, extra: %u\n", obj->path, acells, scells, extra); + + if (extra) { + /* error: length is not a multiple of tuples */ + dtr_msg(obj->dt, "Data length (%u) is not a multiple of (#address-cells:%u + #size-cells:%u) for %s\n", + obj->length, acells, scells, obj->path); + return dtr_list_hex(obj->data, obj->length / 4); + } + + next = obj->data_int; + consumed = 0; + while (consumed + (tup_len * 4) <= obj->length) { + tup_str = dtr_list_hex(next, tup_len); + ret = appfsp(ret, "<%s>", tup_str); + free(tup_str); + consumed += (tup_len * 4); + next += tup_len; + } + + //printf(" ... %s\n", ret); + return ret; +} + +char* dtr_str(dtr_obj *obj) { + char *ret; + int type; + + if (obj == NULL) return NULL; + type = obj->type; + + if (type == DTP_PH_REF) { + if (!DTEX_PHREFS || obj->length != 4) + type = DTP_HEX; + } + + switch(type) { + case DT_NODE: + ret = strdup("{node}"); + break; + case DTP_EMPTY: + ret = strdup("{empty}"); + break; + case DTP_STR: + ret = dtr_list_str0(obj->data_str, obj->length); + break; + case DTP_OVR: + ret = dtr_list_override(obj); + break; + case DTP_REG: + /* <#address-cells #size-cells> */ + ret = dtr_list_reg(obj); + break; + case DTP_INTRUPT: + ret = dtr_list_interrupts(obj); + break; + case DTP_INTRUPT_EX: + /* */ + ret = dtr_list_phref(obj, "#interrupt-cells"); + break; + case DTP_CLOCKS: + /* */ + ret = dtr_list_phref(obj, "#clock-cells"); + break; + case DTP_GPIOS: + /* */ + ret = dtr_list_phref(obj, "#gpio-cells"); + break; + case DTP_DMAS: + /* */ + ret = dtr_list_phref(obj, "#dma-cells"); + break; + case DTP_PH: + case DTP_HEX: + if (obj->length % 4) + ret = dtr_list_byte((uint8_t*)obj->data, obj->length); + else + ret = dtr_list_hex(obj->data, obj->length / 4); + break; + case DTP_PH_REF: + ret = dtr_elem_phref(obj->dt, *obj->data_int, 1, NULL); + break; + case DTP_PH_REF_OPP2: + ret = dtr_elem_oppv2(obj); + break; + case DTP_UINT: + ret = dtr_elem_uint(*obj->data_int); + break; + case DTP_UINT64: + ret = dtr_elem_uint64(*obj->data_int64); + break; + case DTP_UNK: + default: + if (obj->length > 64) /* maybe should use #define at the top */ + ret = g_strdup_printf("{data} (%lu bytes)", (long unsigned int)obj->length); + else + ret = dtr_list_byte((uint8_t*)obj->data, obj->length); + break; + } + + return ret; +} + +dtr_obj *dtr_get_parent_obj(dtr_obj *obj) { + char *slash, *parent; + dtr_obj *ret = NULL; + + if (obj == NULL) + return NULL; + + parent = strdup(obj->path); + slash = strrchr(parent, '/'); + if (slash != NULL) { + *slash = 0; + if (strlen(parent) > 0) + ret = dtr_obj_read(obj->dt, parent); + else + ret = dtr_obj_read(obj->dt, "/"); + } + free(parent); + return ret; +} + +/* find the value of a path-inherited property by climbing the path */ +int dtr_inh_find(dtr_obj *obj, char *qprop, int limit) { + dtr_obj *tobj, *pobj = NULL, *qobj; + uint32_t ret = 0; + int i, found = 0; + + if (!limit) limit = 1000; + + tobj = obj; + while (tobj != NULL) { + pobj = dtr_get_parent_obj(tobj); + if (tobj != obj) + dtr_obj_free(tobj); + if (!limit || pobj == NULL) break; + qobj = dtr_get_prop_obj(obj->dt, pobj, qprop); + if (qobj != NULL) { + ret = be32toh(*qobj->data_int); + found = 1; + dtr_obj_free(qobj); + break; + } + tobj = pobj; + limit--; + } + dtr_obj_free(pobj); + + if (!found) { + i = 0; + while(default_values[i].name != NULL) { + if (strcmp(default_values[i].name, qprop) == 0) { + ret = default_values[i].v; + dtr_msg(obj->dt, "Using default value %d for %s in %s\n", ret, qprop, obj->path); + break; + } + i++; + } + } + + return ret; +} + +dt_opp_range *dtr_get_opp_range(dtr *s, const char *name) { + dt_opp_range *ret = NULL; + dtr_obj *obj = NULL, *table_obj = NULL, *row_obj = NULL; + uint32_t opp_ph = 0; + const char *opp_table_path = NULL; + char *tab_compat = NULL, *tab_status = NULL; + const gchar *fn; + gchar *full_path; + GDir *dir; + uint64_t khz = 0; + uint32_t lns = 0; + char *row_status = NULL; + uint32_t i = 0; + + if (!s) + return NULL; + + obj = dtr_obj_read(s, name); + if (!obj) + goto get_opp_finish; + + opp_ph = dtr_get_prop_u32(s, obj, "operating-points-v2"); /* OPPv2 */ + table_obj = dtr_get_prop_obj(s, obj, "operating-points"); /* OPPv1 */ + if (!opp_ph) { + if (table_obj) { + /* only v1 */ + ret = g_new0(dt_opp_range, 1); + ret->version = 1; + ret->clock_latency_ns = dtr_get_prop_u32(s, obj, "clock-latency"); + + /* pairs of (kHz,uV) */ + for (i = 0; i < table_obj->length; i += 2) { + khz = table_obj->data_int[i]; + if (khz > ret->khz_max) + ret->khz_max = khz; + if (khz < ret->khz_min || ret->khz_min == 0) + ret->khz_min = khz; + } + + } else { + /* is clock-frequency available? */ + khz = dtr_get_prop_u32(s, obj, "clock-frequency"); + if (khz) { + ret = g_new0(dt_opp_range, 1); + ret->version = 0; + ret->khz_max = khz; + ret->clock_latency_ns = dtr_get_prop_u32(s, obj, "clock-latency"); + } + } + goto get_opp_finish; + } else { + /* use v2 if both available */ + dtr_obj_free(table_obj); + table_obj = NULL; + } + + opp_table_path = dtr_phandle_lookup(s, opp_ph); + if (!opp_table_path) + goto get_opp_finish; + + table_obj = dtr_obj_read(s, opp_table_path); + if (!table_obj) + goto get_opp_finish; + + tab_compat = dtr_get_prop_str(s, table_obj, "compatible"); + tab_status = dtr_get_prop_str(s, table_obj, "status"); + + if (!tab_compat || strcmp(tab_compat, "operating-points-v2") != 0) + goto get_opp_finish; + if (tab_status && strcmp(tab_status, "disabled") == 0) + goto get_opp_finish; + + ret = g_new0(dt_opp_range, 1); + ret->version = 2; + ret->phandle = opp_ph; + + full_path = dtr_obj_full_path(table_obj); + dir = g_dir_open(full_path, 0 , NULL); + if (dir) { + while((fn = g_dir_read_name(dir)) != NULL) { + row_obj = dtr_get_prop_obj(s, table_obj, fn); + if (row_obj->type == DT_NODE) { + row_status = dtr_get_prop_str(s, row_obj, "status"); + if (!row_status || strcmp(row_status, "disabled") != 0) { + khz = dtr_get_prop_u64(s, row_obj, "opp-hz"); + khz /= 1000; /* 64b hz -> 32b khz */ + lns = dtr_get_prop_u32(s, row_obj, "clock-latency-ns"); + if (khz > ret->khz_max) + ret->khz_max = khz; + if (khz < ret->khz_min || ret->khz_min == 0) + ret->khz_min = khz; + ret->clock_latency_ns = lns; + } + } + free(row_status); row_status = NULL; + dtr_obj_free(row_obj); + row_obj = NULL; + } + g_dir_close(dir); + } + g_free(full_path); + +get_opp_finish: + dtr_obj_free(obj); + dtr_obj_free(table_obj); + free(tab_status); + free(tab_compat); + free(row_status); + return ret; +} + + +void _dtr_read_aliases(dtr *s) { + gchar *dir_path; + GDir *dir; + const gchar *fn; + dtr_obj *anode, *prop; + dtr_map *al; + anode = dtr_obj_read(s, "/aliases"); + + dir_path = g_strdup_printf("%s/aliases", s->base_path); + dir = g_dir_open(dir_path, 0 , NULL); + if (dir) { + while((fn = g_dir_read_name(dir)) != NULL) { + prop = dtr_get_prop_obj(s, anode, fn); + if (prop->type == DTP_STR) { + if (*prop->data_str == '/') { + al = dtr_map_add(s->aliases, 0, prop->name, prop->data_str); + if (s->aliases == NULL) + s->aliases = al; + } + } + dtr_obj_free(prop); + } + g_dir_close(dir); + } + g_free(dir_path); + dtr_obj_free(anode); + dtr_map_sort(s->aliases, 0); +} + +void _dtr_read_symbols(dtr *s) { + gchar *dir_path; + GDir *dir; + const gchar *fn; + dtr_obj *anode, *prop; + dtr_map *al; + anode = dtr_obj_read(s, "/__symbols__"); + + dir_path = g_strdup_printf("%s/__symbols__", s->base_path); + dir = g_dir_open(dir_path, 0 , NULL); + if (dir) { + while((fn = g_dir_read_name(dir)) != NULL) { + prop = dtr_get_prop_obj(s, anode, fn); + if (prop->type == DTP_STR) { + if (*prop->data_str == '/') { + al = dtr_map_add(s->symbols, 0, prop->name, prop->data_str); + if (s->symbols == NULL) + s->symbols = al; + } + } + dtr_obj_free(prop); + } + g_dir_close(dir); + } + g_free(dir_path); + dtr_obj_free(anode); + dtr_map_sort(s->symbols, 0); +} + +/* TODO: rewrite */ +void _dtr_map_phandles(dtr *s, char *np) { + gchar *dir_path; + gchar *ftmp, *ntmp, *ptmp; + const gchar *fn; + GDir *dir; + dtr_obj *prop, *ph_prop; + dtr_map *ph; + + if (np == NULL) np = ""; + dir_path = g_strdup_printf("%s/%s", s->base_path, np); + + prop = dtr_obj_read(s, np); + dir = g_dir_open(dir_path, 0 , NULL); + if (dir) { + while((fn = g_dir_read_name(dir)) != NULL) { + ftmp = g_strdup_printf("%s/%s", dir_path, fn); + if ( g_file_test(ftmp, G_FILE_TEST_IS_DIR) ) { + ntmp = g_strdup_printf("%s/%s", np, fn); + ptmp = g_strdup_printf("%s/phandle", ntmp); + ph_prop = dtr_obj_read(s, ptmp); + if (ph_prop != NULL) { + ph = dtr_map_add(s->phandles, be32toh(*ph_prop->data_int), NULL, ntmp); + if (s->phandles == NULL) + s->phandles = ph; + } + _dtr_map_phandles(s, ntmp); + g_free(ptmp); + g_free(ntmp); + dtr_obj_free(ph_prop); + } + g_free(ftmp); + } + g_dir_close(dir); + } + dtr_obj_free(prop); + dtr_map_sort(s->phandles, 1); +} + +/* + * Maybe these should move to devicetree.c, but would have to expose + * struct internals. + */ + +/* kvl: 0 = key is label, 1 = key is v */ +char *dtr_map_info_section(dtr *s, dtr_map *map, char *title, int kvl) { + gchar *tmp, *ret; + const gchar *sym; + ret = g_strdup_printf("[%s]\n", _(title)); + dtr_map *it = map; + while(it != NULL) { + if (kvl) { + sym = dtr_symbol_lookup_by_path(s, it->path); + if (sym != NULL) + tmp = g_strdup_printf("%s0x%x (%s)=%s\n", ret, + it->v, sym, it->path); + else + tmp = g_strdup_printf("%s0x%x=%s\n", ret, + it->v, it->path); + } else + tmp = g_strdup_printf("%s%s=%s\n", ret, + it->label, it->path); + g_free(ret); + ret = tmp; + it = it->next; + } + + return ret; +} + +char *dtr_maps_info(dtr *s) { + gchar *ph_map, *al_map, *sy_map, *ret; + + ph_map = dtr_map_info_section(s, s->phandles, _("phandle Map"), 1); + al_map = dtr_map_info_section(s, s->aliases, _("Alias Map"), 0); + sy_map = dtr_map_info_section(s, s->symbols, _("Symbol Map"), 0); + ret = g_strdup_printf("%s%s%s", ph_map, sy_map, al_map); + g_free(ph_map); + g_free(al_map); + g_free(sy_map); + return ret; +} diff --git a/hardinfo2/expr.c b/hardinfo2/expr.c new file mode 100644 index 00000000..83e1e02c --- /dev/null +++ b/hardinfo2/expr.c @@ -0,0 +1,250 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2007 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ +/* + * This is only used to compute sensor values, hence the only variable supported is '@'. + * The '`' operator (ln(x)) is not available, nor multi-line formulas. + */ + +#include +#include +#include +#include +#include + +#include "expr.h" +#include "config.h" + +static MathToken *new_operator(gchar op) +{ + MathToken *t = g_new0(MathToken, 1); + + t->val.op = op; + t->type = TOKEN_OPERATOR; /* operator */ + + return t; +} + +static MathToken *new_variable(gchar var) +{ + MathToken *t = g_new0(MathToken, 1); + + t->val.op = '@'; + t->type = TOKEN_VARIABLE; /* variable */ + + return t; +} + +static MathToken *new_value(gfloat value) +{ + MathToken *t = g_new0(MathToken, 1); + + t->val.value = value; + t->type = TOKEN_VALUE; /* value */ + + return t; +} + +static inline gint priority(char operation) +{ + switch (operation) { + case '^': + return 3; + case '*': + case '/': + return 2; + case '+': + case '-': + return 1; + case '(': + return 0; + } + + return 0; +} + +GSList *math_infix_to_postfix(GSList * infix) +{ + MathToken *stack[500]; + gint t_sp = 0; + + GSList *postfix = NULL, *p; + MathToken *top; + + for (p = infix; p; p = p->next) { + MathToken *t = (MathToken *) p->data; + + if (t->type == TOKEN_OPERATOR && t->val.op == '(') { + stack[++t_sp] = t; + } else if (t->type == TOKEN_OPERATOR && t->val.op == ')') { + for (top = stack[t_sp]; t_sp != 0 && top->val.op != '('; + top = stack[t_sp]) { + postfix = g_slist_append(postfix, stack[t_sp--]); + } + t_sp--; + } else if (t->type != TOKEN_OPERATOR) { + postfix = g_slist_append(postfix, t); + } else if (t_sp == 0) { + stack[++t_sp] = t; + } else { + while (t_sp != 0 + && priority(t->val.op) <= priority(stack[t_sp]->val.op)) + postfix = g_slist_append(postfix, stack[t_sp--]); + stack[++t_sp] = t; + } + } + + while (t_sp) + postfix = g_slist_append(postfix, stack[t_sp--]); + + return postfix; +} + +static inline gfloat __result(gfloat op1, gfloat op2, gchar operation) +{ + switch (operation) { + case '^': + return powf(op1, op2); + case '+': + return op1 + op2; + case '-': + return op1 - op2; + case '/': + return op1 / op2; + case '*': + return op1 * op2; + } + + return 0; +} + +gfloat math_postfix_eval(GSList * postfix, gfloat at_value) +{ + GSList *p; + gfloat stack[500]; + gint sp = 0; + + memset(stack, 0, sizeof(gfloat) * 500); + + for (p = postfix; p; p = p->next) { + MathToken *t = (MathToken *) p->data; + + if (t->type == TOKEN_VARIABLE) { + stack[++sp] = at_value; + } else if (t->type == TOKEN_VALUE) { + stack[++sp] = t->val.value; + } else { + gfloat op1, op2; + + op2 = stack[sp--]; + op1 = stack[sp]; + + stack[sp] = __result(op1, op2, t->val.op); + } + } + + return stack[sp]; +} + +GSList *math_string_to_infix(gchar * string) +{ + GSList *infix = NULL; + gchar *expr = string; + + for (; *expr; expr++) { + if (strchr("+-/*^()", *expr)) { + infix = g_slist_append(infix, new_operator(*expr)); + } else if (strchr("@", *expr)) { + infix = g_slist_append(infix, new_variable(*expr)); + } else if (strchr("-.1234567890", *expr)) { + gchar value[32], *v = value; + gfloat floatval; + + do { + *v++ = *expr++; + } while (*expr && strchr("-.1234567890", *expr)); + expr--; + *v = '\0'; + + sscanf(value, "%f", &floatval); + + infix = g_slist_append(infix, new_value(floatval)); + } else if (!isspace(*expr)) { + g_print("Invalid token: [%c][%d]\n", *expr, *expr); + math_infix_free(infix, TRUE); + return NULL; + } + } + + return infix; +} + +void math_infix_free(GSList * infix, gboolean free_tokens) +{ + GSList *p; + + if (!free_tokens) + for (p = infix; p; p = g_slist_delete_link(p, p)); + else + for (p = infix; p; p = g_slist_delete_link(p, p)) { + MathToken *t = (MathToken *) p->data; + g_free(t); + } +} + +GSList *math_string_to_postfix(gchar * string) +{ + GSList *infix; + GSList *postfix; + + infix = math_string_to_infix(string); + if (!infix) + return NULL; + + postfix = math_infix_to_postfix(infix); + math_infix_free(infix, FALSE); + + return postfix; +} + +gfloat math_string_eval(gchar * string, gfloat at_value) +{ + GSList *postfix; + gfloat val; + + postfix = math_string_to_postfix(string); + val = math_postfix_eval(postfix, at_value); + math_postfix_free(postfix, TRUE); + + return val; +} + +#ifdef MATH_TEST +int main(void) +{ + GSList *postfix; + + gchar *expr = "0.9*(@+(5.2*0.923+3*(2.0)))"; + + postfix = math_string_to_postfix(expr); + g_print("%s = %f (must be 18.71964)\n", expr, + math_postfix_eval(postfix, 10)); + math_postfix_free(postfix, TRUE); + + return 0; +} +#endif diff --git a/hardinfo2/gg_key_file_parse_string_as_value.c b/hardinfo2/gg_key_file_parse_string_as_value.c new file mode 100644 index 00000000..7e871bc1 --- /dev/null +++ b/hardinfo2/gg_key_file_parse_string_as_value.c @@ -0,0 +1,111 @@ +/* From: gkeyfile.c - key file parser + * + * Copyright 2004 Red Hat, Inc. + * Copyright 2009-2010 Collabora Ltd. + * Copyright 2009 Nokia Corporation + * + * Written by Ray Strode + * Matthias Clasen + * + * This library 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; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 library; if not, see . + */ + +#include + +gchar * +gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator) +{ + gchar *value, *p, *q; + gsize length; + gboolean parsing_leading_space; + + length = strlen (string) + 1; + + /* Worst case would be that every character needs to be escaped. + * In other words every character turns to two characters. */ + value = g_new (gchar, 2 * length); + + p = (gchar *) string; + q = value; + parsing_leading_space = TRUE; + while (p < (string + length - 1)) + { + gchar escaped_character[3] = { '\\', 0, 0 }; + + switch (*p) + { + case ' ': + if (parsing_leading_space) + { + escaped_character[1] = 's'; + strcpy (q, escaped_character); + q += 2; + } + else + { + *q = *p; + q++; + } + break; + case '\t': + if (parsing_leading_space) + { + escaped_character[1] = 't'; + strcpy (q, escaped_character); + q += 2; + } + else + { + *q = *p; + q++; + } + break; + case '\n': + escaped_character[1] = 'n'; + strcpy (q, escaped_character); + q += 2; + break; + case '\r': + escaped_character[1] = 'r'; + strcpy (q, escaped_character); + q += 2; + break; + case '\\': + escaped_character[1] = '\\'; + strcpy (q, escaped_character); + q += 2; + parsing_leading_space = FALSE; + break; + default: + if (list_separator && *p == list_separator) + { + escaped_character[1] = list_separator; + strcpy (q, escaped_character); + q += 2; + parsing_leading_space = TRUE; + } + else + { + *q = *p; + q++; + parsing_leading_space = FALSE; + } + break; + } + p++; + } + *q = '\0'; + + return value; +} diff --git a/hardinfo2/gg_strescape.c b/hardinfo2/gg_strescape.c new file mode 100644 index 00000000..ada9cf89 --- /dev/null +++ b/hardinfo2/gg_strescape.c @@ -0,0 +1,138 @@ +/* Base on: GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library 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; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include + +guchar excmap_def[256] = {1,0}; +static void make_excmap_def() { + int i; + for(i=0; i<256; i++){ + switch ((guchar)i) + { + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + case '\\': + case '"': + excmap_def[i] = 0; + break; + default: + if ((i < ' ') || (i >= 0177)) + excmap_def[i] = 0; + else + excmap_def[i] = 1; + break; + } + } +} + +gchar * +gg_strescape (const gchar *source, + const gchar *exceptions, + const gchar *extra) +{ + const guchar *p; + gchar *dest; + gchar *q; + guchar excmap[256]; + + g_return_val_if_fail (source != NULL, NULL); + + if (excmap_def[0]) /* [0] should be 0 or it isn't initialized */ + make_excmap_def(); + + memcpy(excmap, excmap_def, 256); + + p = (guchar *) source; + /* Each source byte needs maximally four destination chars (\777) */ + q = dest = g_malloc (strlen (source) * 4 + 1); + + if (exceptions) + { + guchar *e = (guchar *) exceptions; + + while (*e) + { + excmap[*e] = 1; + e++; + } + } + + if (extra) + { + guchar *e = (guchar *) extra; + + while (*e) + { + excmap[*e] = 0; + e++; + } + } + + while (*p) + { + if (excmap[*p]) + *q++ = *p; + else + { + switch (*p) + { + case '\b': + *q++ = '\\'; + *q++ = 'b'; + break; + case '\f': + *q++ = '\\'; + *q++ = 'f'; + break; + case '\n': + *q++ = '\\'; + *q++ = 'n'; + break; + case '\r': + *q++ = '\\'; + *q++ = 'r'; + break; + case '\t': + *q++ = '\\'; + *q++ = 't'; + break; + case '\\': + *q++ = '\\'; + *q++ = '\\'; + break; + case '"': + *q++ = '\\'; + *q++ = '"'; + break; + default: + *q++ = '\\'; + *q++ = '0' + (((*p) >> 6) & 07); + *q++ = '0' + (((*p) >> 3) & 07); + *q++ = '0' + ((*p) & 07); + break; + } + } + p++; + } + *q = 0; + return dest; +} diff --git a/hardinfo2/gpu_util.c b/hardinfo2/gpu_util.c new file mode 100644 index 00000000..29f6c77e --- /dev/null +++ b/hardinfo2/gpu_util.c @@ -0,0 +1,477 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2017 L. A. F. Pereira + * This file + * Copyright (C) 2018 Burt P. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "gpu_util.h" +#include "nice_name.h" +#include "cpu_util.h" /* for EMPIFNULL() */ + +nvgpu *nvgpu_new() { + return g_new0(nvgpu, 1); +} + +void nvgpu_free(nvgpu *s) { + if (s) { + free(s->model); + free(s->bios_version); + free(s->uuid); + } +} + +static char *_line_value(char *line, const char *prefix) { + if (g_str_has_prefix(g_strstrip(line), prefix)) { + line += strlen(prefix) + 1; + return g_strstrip(line); + } else + return NULL; +} + +static gboolean nv_fill_procfs_info(gpud *s) { + gchar *data, *p, *l, *next_nl; + gchar *pci_loc = pci_address_str(s->pci_dev->domain, s->pci_dev->bus, s->pci_dev->device, s->pci_dev->function); + gchar *nvi_file = g_strdup_printf("/proc/driver/nvidia/gpus/%s/information", pci_loc); + + g_file_get_contents(nvi_file, &data, NULL, NULL); + g_free(pci_loc); + g_free(nvi_file); + + if (data) { + s->nv_info = nvgpu_new(); + p = data; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + if (l = _line_value(p, "Model")) { + s->nv_info->model = g_strdup(l); + goto nv_details_next; + } + if (l = _line_value(p, "GPU UUID")) { + s->nv_info->uuid = g_strdup(l); + goto nv_details_next; + } + if (l = _line_value(p, "Video BIOS")) { + s->nv_info->bios_version = g_strdup(l); + goto nv_details_next; + } + + /* TODO: more details */ + + nv_details_next: + p = next_nl + 1; + } + g_free(data); + return TRUE; + } + return FALSE; +} + +static void intel_fill_freq(gpud *s) { + gchar path[256] = ""; + gchar *min_mhz = NULL, *max_mhz = NULL; + if (s->sysfs_drm_path) { + snprintf(path, 255, "%s/%s/gt_min_freq_mhz", s->sysfs_drm_path, s->id); + g_file_get_contents(path, &min_mhz, NULL, NULL); + snprintf(path, 255, "%s/%s/gt_max_freq_mhz", s->sysfs_drm_path, s->id); + g_file_get_contents(path, &max_mhz, NULL, NULL); + + if (min_mhz) + s->khz_min = atoi(min_mhz) * 1000; + if (max_mhz) + s->khz_max = atoi(max_mhz) * 1000; + + g_free(min_mhz); + g_free(max_mhz); + } +} + +static void amdgpu_parse_dpmclk(gchar *path, int *min, int *max) { + gchar *data = NULL, *p, *next_nl; + int sp, i, clk; + + *min = -1; + *max = -1; + + g_file_get_contents(path, &data, NULL, NULL); + if (data) { + p = data; + + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + sp = sscanf(p, "%d: %dMhz", &i, &clk); + + if (sp == 2) { + if (clk > 0) { + if (*min < 0 || clk < *min) + *min = clk; + if (clk > *max) + *max = clk; + } + } + + p = next_nl + 1; + } + } + g_free(data); +} + +static void amdgpu_fill_freq(gpud *s) { + gchar path[256] = ""; + int clk_min = -1, clk_max = -1, mem_clk_min = -1, mem_clk_max = -1; + + if (s->sysfs_drm_path) { + /* core */ + snprintf(path, 255, "%s/%s/device/pp_dpm_sclk", s->sysfs_drm_path, s->id); + amdgpu_parse_dpmclk(path, &clk_min, &clk_max); + + if (clk_max > 0) + s->khz_max = clk_max * 1000; + if (clk_min > 0) + s->khz_min = clk_min * 1000; + + /* memory */ + snprintf(path, 255, "%s/%s/device/pp_dpm_mclk", s->sysfs_drm_path, s->id); + amdgpu_parse_dpmclk(path, &mem_clk_min, &mem_clk_max); + + if (mem_clk_max > 0) + s->mem_khz_max = mem_clk_max * 1000; + if (mem_clk_min > 0) + s->mem_khz_min = mem_clk_min * 1000; + } +} + +gpud *gpud_new() { + return g_new0(gpud, 1); +} + +void gpud_free(gpud *s) { + if (s) { + free(s->id); + free(s->nice_name); + free(s->vendor_str); + free(s->device_str); + free(s->location); + free(s->drm_dev); + free(s->sysfs_drm_path); + free(s->dt_compat); + g_free(s->dt_opp); + pcid_free(s->pci_dev); + nvgpu_free(s->nv_info); + g_free(s); + } +} + +void gpud_list_free(gpud *s) { + gpud *n; + while(s != NULL) { + n = s->next; + gpud_free(s); + s = n; + } +} + +/* returns number of items after append */ +static int gpud_list_append(gpud *l, gpud *n) { + int c = 0; + while(l != NULL) { + c++; + if (l->next == NULL) { + if (n != NULL) { + l->next = n; + c++; + } + break; + } + l = l->next; + } + return c; +} + +int gpud_list_count(gpud *s) { + return gpud_list_append(s, NULL); +} + +/* TODO: In the future, when there is more vendor specific information available in + * the gpu struct, then more precise names can be given to each gpu */ +static void make_nice_name(gpud *s) { + + /* NV information available */ + if (s->nv_info && s->nv_info->model) { + s->nice_name = g_strdup_printf("%s %s", "NVIDIA", s->nv_info->model); + return; + } + + static const char unk_v[] = "Unknown"; /* do not... */ + static const char unk_d[] = "Device"; /* ...translate */ + const char *vendor_str = s->vendor_str; + const char *device_str = s->device_str; + if (!vendor_str) + vendor_str = unk_v; + if (!device_str) + device_str = unk_d; + + /* try and a get a "short name" for the vendor */ + vendor_str = vendor_get_shortest_name(vendor_str); + + if (strstr(vendor_str, "Intel")) { + gchar *device_str_clean = strdup(device_str); + nice_name_intel_gpu_device(device_str_clean); + s->nice_name = g_strdup_printf("%s %s", vendor_str, device_str_clean); + g_free(device_str_clean); + } else if (strstr(vendor_str, "AMD")) { + /* AMD PCI strings are crazy stupid because they use the exact same + * chip and device id for a zillion "different products" */ + char *full_name = strdup(device_str); + /* Try and shorten it to the chip code name only, at least */ + char *b = strchr(full_name, '['); + if (b) *b = '\0'; + s->nice_name = g_strdup_printf("%s %s", "AMD/ATI", g_strstrip(full_name)); + free(full_name); + } else { + /* nothing nicer */ + s->nice_name = g_strdup_printf("%s %s", vendor_str, device_str); + } + +} + +/* Look for this kind of thing: + * * /soc/gpu + * * /gpu@ff300000 + * + * Usually a gpu dt node will have ./name = "gpu" + */ +static gchar *dt_find_gpu(dtr *dt, char *np) { + gchar *dir_path, *dt_path, *ret; + gchar *ftmp, *ntmp; + const gchar *fn; + GDir *dir; + dtr_obj *obj; + + /* consider self */ + obj = dtr_obj_read(dt, np); + dt_path = dtr_obj_path(obj); + ntmp = strstr(dt_path, "/gpu"); + if (ntmp) { + /* was found in node name */ + if ( strchr(ntmp+1, '/') == NULL) { + ftmp = ntmp + 4; + /* should either be NULL or @ */ + if (*ftmp == '\0' || *ftmp == '@') + return g_strdup(dt_path); + } + } + + /* search children ... */ + dir_path = g_strdup_printf("%s/%s", dtr_base_path(dt), np); + dir = g_dir_open(dir_path, 0 , NULL); + if (dir) { + while((fn = g_dir_read_name(dir)) != NULL) { + ftmp = g_strdup_printf("%s/%s", dir_path, fn); + if ( g_file_test(ftmp, G_FILE_TEST_IS_DIR) ) { + if (strcmp(np, "/") == 0) + ntmp = g_strdup_printf("/%s", fn); + else + ntmp = g_strdup_printf("%s/%s", np, fn); + ret = dt_find_gpu(dt, ntmp); + g_free(ntmp); + if (ret != NULL) { + g_free(ftmp); + g_dir_close(dir); + return ret; + } + } + g_free(ftmp); + } + g_dir_close(dir); + } + + return NULL; +} + +gpud *dt_soc_gpu() { + static const char std_soc_gpu_drm_path[] = "/sys/devices/platform/soc/soc:gpu/drm"; + + /* compatible contains a list of compatible hardware, so be careful + * with matching order. + * ex: "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3"; + * matches "omap3 family" first. + * ex: "brcm,bcm2837", "brcm,bcm2836"; + * would match 2836 when it is a 2837. + */ + const struct { + char *search_str; + char *vendor; + char *soc; + } dt_compat_searches[] = { + { "brcm,bcm2837-vc4", "Broadcom", "VideoCore IV" }, + { "brcm,bcm2836-vc4", "Broadcom", "VideoCore IV" }, + { "brcm,bcm2835-vc4", "Broadcom", "VideoCore IV" }, + { "arm,mali-450", "ARM", "Mali 450" }, + { "arm,mali", "ARM", "Mali family" }, + { NULL, NULL, NULL } + }; + char tmp_path[256] = ""; + char *dt_gpu_path = NULL; + char *compat = NULL; + char *vendor = NULL, *device = NULL; + int i; + + gpud *gpu = NULL; + + dtr *dt = dtr_new(NULL); + if (!dtr_was_found(dt)) + goto dt_gpu_end; + + dt_gpu_path = dt_find_gpu(dt, "/"); + + if (dt_gpu_path == NULL) + goto dt_gpu_end; + + snprintf(tmp_path, 255, "%s/compatible", dt_gpu_path); + compat = dtr_get_string(tmp_path, 1); + + if (compat == NULL) + goto dt_gpu_end; + + gpu = gpud_new(); + + i = 0; + while(dt_compat_searches[i].search_str != NULL) { + if (strstr(compat, dt_compat_searches[i].search_str) != NULL) { + vendor = dt_compat_searches[i].vendor; + device = dt_compat_searches[i].soc; + break; + } + i++; + } + + gpu->dt_compat = compat; + gpu->dt_vendor = vendor; + gpu->dt_device = device; + gpu->dt_path = dt_gpu_path; + snprintf(tmp_path, 255, "%s/status", dt_gpu_path); + gpu->dt_status = dtr_get_string(tmp_path, 1); + snprintf(tmp_path, 255, "%s/name", dt_gpu_path); + gpu->dt_name = dtr_get_string(tmp_path, 1); + gpu->dt_opp = dtr_get_opp_range(dt, dt_gpu_path); + if (gpu->dt_opp) { + gpu->khz_max = gpu->dt_opp->khz_max; + gpu->khz_min = gpu->dt_opp->khz_min; + } + EMPIFNULL(gpu->dt_name); + EMPIFNULL(gpu->dt_status); + + gpu->id = strdup("dt-soc-gpu"); + gpu->location = strdup("SOC"); + + if (access(std_soc_gpu_drm_path, F_OK) != -1) + gpu->sysfs_drm_path = strdup(std_soc_gpu_drm_path); + if (vendor) gpu->vendor_str = strdup(vendor); + if (device) gpu->device_str = strdup(device); + make_nice_name(gpu); + + +dt_gpu_end: + dtr_free(dt); + return gpu; +} + +gpud *gpu_get_device_list() { + int cn = 0; + gpud *list = NULL; + +/* Can we just ask DRM someway? ... */ + /* TODO: yes. /sys/class/drm/card* */ + +/* Try PCI ... */ + pcid_list pci_list = pci_get_device_list(0x300,0x3ff); + GSList *l = pci_list; + + if (l) { + while(l) { + pcid *curr = (pcid*)l->data; + char *pci_loc = NULL; + gpud *new_gpu = gpud_new(); + new_gpu->pci_dev = curr; + + pci_loc = pci_address_str(curr->domain, curr->bus, curr->device, curr->function); + + int len; + char drm_id[512] = "", card_id[64] = ""; + char *drm_dev = NULL; + gchar *drm_path = + g_strdup_printf("/dev/dri/by-path/pci-%s-card", pci_loc); + memset(drm_id, 0, 512); + if ((len = readlink(drm_path, drm_id, sizeof(drm_id)-1)) != -1) + drm_id[len] = '\0'; + g_free(drm_path); + + if (strlen(drm_id) != 0) { + /* drm has the card */ + drm_dev = strstr(drm_id, "card"); + if (drm_dev) + snprintf(card_id, 64, "%s", drm_dev); + } + + if (strlen(card_id) == 0) { + /* fallback to our own counter */ + snprintf(card_id, 64, "pci-dc%d", cn); + cn++; + } + + if (drm_dev) + new_gpu->drm_dev = strdup(drm_dev); + + char *sysfs_path_candidate = g_strdup_printf("%s/%s/drm", SYSFS_PCI_ROOT, pci_loc); + if (access(sysfs_path_candidate, F_OK) != -1) { + new_gpu->sysfs_drm_path = sysfs_path_candidate; + } else + free(sysfs_path_candidate); + new_gpu->location = g_strdup_printf("PCI/%s", pci_loc); + new_gpu->id = strdup(card_id); + if (curr->vendor_id_str) new_gpu->vendor_str = strdup(curr->vendor_id_str); + if (curr->device_id_str) new_gpu->device_str = strdup(curr->device_id_str); + nv_fill_procfs_info(new_gpu); + intel_fill_freq(new_gpu); + amdgpu_fill_freq(new_gpu); + make_nice_name(new_gpu); + if (list == NULL) + list = new_gpu; + else + gpud_list_append(list, new_gpu); + + free(pci_loc); + l=l->next; + } + + /* don't pcid_list_free(pci_list); They will be freed by gpud_free() */ + g_slist_free(pci_list); /* just the linking data */ + return list; + } + +/* Try Device Tree ... */ + list = dt_soc_gpu(); + if (list) return list; + +/* Try other things ... */ + + return list; +} + + diff --git a/hardinfo2/hardinfo.c b/hardinfo2/hardinfo.c new file mode 100644 index 00000000..1488e0a1 --- /dev/null +++ b/hardinfo2/hardinfo.c @@ -0,0 +1,169 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2009 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include + +ProgramParameters params = { 0 }; + +int main(int argc, char **argv) +{ + int exit_code = 0; + GSList *modules; + + setlocale(LC_ALL, ""); + bindtextdomain("hardinfo", LOCALEDIR); + textdomain("hardinfo"); + + DEBUG("HardInfo version " VERSION ". Debug version."); + + /* parse all command line parameters */ + parameters_init(&argc, &argv, ¶ms); + + /* show version information and quit */ + if (params.show_version) { + g_print("HardInfo version " VERSION "\n"); + g_print + (_(/*/ %d will be latest year of copyright*/ "Copyright (C) 2003-%d L. A. F. Pereira. See COPYING for details.\n\n"), HARDINFO_COPYRIGHT_LATEST_YEAR ); + + g_print(_("Compile-time options:\n" + " Release version: %s (%s)\n" + " BinReloc enabled: %s\n" + " Data prefix: %s\n" + " Library prefix: %s\n" + " Compiled for: %s\n"), + RELEASE ? _("Yes") : "No (" VERSION ")", ARCH, + ENABLE_BINRELOC ? _("Yes") : _("No"), + PREFIX, LIBPREFIX, PLATFORM); + + DEBUG(" Debugging is enabled."); + + /* show also available modules */ + params.list_modules = TRUE; + } + + /* initialize the binreloc library, so we can load program data */ + if (!binreloc_init(FALSE)) + g_error(_("Failed to find runtime data.\n\n" + "\342\200\242 Is HardInfo correctly installed?\n" + "\342\200\242 See if %s and %s exists and you have read permission."), + PREFIX, LIBPREFIX); + + /* list all module names */ + if (params.list_modules) { + g_print(_("Modules:\n" + "%-20s %-15s %-12s\n"), _("File Name"), _("Name"), _("Version")); + + for (modules = modules_load_all(); modules; + modules = modules->next) { + ShellModule *module = (ShellModule *) modules->data; + const ModuleAbout *ma = module_get_about(module); + gchar *name = g_path_get_basename(g_module_name(module->dll)); + + g_print("%-20s %-15s %-12s\n", name, module->name, ma->version); + + g_free(name); + } + + return 0; + } + + if (!params.create_report && !params.run_benchmark) { + /* we only try to open the UI if the user didn't ask for a report. */ + params.gui_running = ui_init(&argc, &argv); + + /* as a fallback, if GTK+ initialization failed, run in report + generation mode. */ + if (!params.gui_running) { + params.create_report = TRUE; + /* ... it is possible to -f html without -r */ + if (params.report_format != REPORT_FORMAT_HTML) + params.markup_ok = FALSE; + } + } + + if (params.use_modules) { + /* load only selected modules */ + DEBUG("loading user-selected modules"); + modules = modules_load_selected(); + } else { + /* load all modules */ + DEBUG("loading all modules"); + modules = modules_load_all(); + } + + /* initialize vendor database */ + vendor_init(); + + /* initialize moreinfo */ + moreinfo_init(); + + if (params.run_benchmark) { + gchar *result; + + result = module_call_method_param("benchmark::runBenchmark", params.run_benchmark); + if (!result) { + fprintf(stderr, _("Unknown benchmark ``%s'' or benchmark.so not loaded"), params.run_benchmark); + exit_code = 1; + } else { + fprintf(stderr, "\n"); + g_print("%s\n", result); + g_free(result); + } + } else if (params.gui_running) { + /* initialize gui and start gtk+ main loop */ + icon_cache_init(); + stock_icons_init(); + + shell_init(modules); + + DEBUG("entering gtk+ main loop"); + + gtk_main(); + } else if (params.create_report) { + /* generate report */ + gchar *report; + + DEBUG("generating report"); + + report = report_create_from_module_list_format(modules, + params. + report_format); + g_print("%s", report); + + g_free(report); + } else { + g_error(_("Don't know what to do. Exiting.")); + } + + moreinfo_shutdown(); + vendor_cleanup(); + dmidecode_cache_free(); + free_auto_free_final(); + + DEBUG("finished"); + return exit_code; +} diff --git a/hardinfo2/hinote_util.c b/hardinfo2/hinote_util.c new file mode 100644 index 00000000..efc85be0 --- /dev/null +++ b/hardinfo2/hinote_util.c @@ -0,0 +1,27 @@ + +#include "hardinfo.h" + +/* requires COMPILE_FLAGS "-std=c99" */ + +static const char bullet_yes[] = "\u2713"; +static const char bullet_no[] = "\u2022 "; +static const char bullet_yes_text[] = "[X]"; +static const char bullet_no_text[] = "[ ]"; + +gboolean note_cond_bullet(gboolean cond, gchar *note_buff, const gchar *desc_str) { + int l = strlen(note_buff); + if (params.markup_ok) + snprintf(note_buff + l, note_max_len - l - 1, "%s %s\n", + cond ? bullet_yes : bullet_no, desc_str); + else + snprintf(note_buff + l, note_max_len - l - 1, "%s %s\n", + cond ? bullet_yes_text : bullet_no_text, desc_str); + return cond; +} + +gboolean note_require_tool(const gchar *tool, gchar *note_buff, const gchar *desc_str) { + gchar *tl = find_program((gchar*)tool); + gboolean found = note_cond_bullet(!!tl, note_buff, desc_str); + g_free(tl); + return found; +} diff --git a/hardinfo2/info.c b/hardinfo2/info.c new file mode 100644 index 00000000..5e6db7e4 --- /dev/null +++ b/hardinfo2/info.c @@ -0,0 +1,584 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2017 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "util_sysobj.h" /* for SEQ() */ + +/* Using a slightly modified gg_key_file_parse_string_as_value() + * from GLib in flatten(), to escape characters and the separator. + * The function is not public in GLib and we don't have a GKeyFile + * to pass it anyway. */ +/* Now in hardinfo.h -- #include "gg_key_file_parse_string_as_value.c" */ + +static const gchar *info_column_titles[] = { + "TextValue", "Value", "Progress", "Extra1", "Extra2" +}; + +struct Info *info_new(void) +{ + struct Info *info = g_new0(struct Info, 1); + + info->groups = g_array_new(FALSE, FALSE, sizeof(struct InfoGroup)); + info->view_type = SHELL_VIEW_NORMAL; + info->column_headers_visible = FALSE; + info->zebra_visible = FALSE; + info->normalize_percentage = TRUE; + + return info; +} + +void info_group_add_field(struct InfoGroup *group, struct InfoField field) +{ + if (!group) + return; + + /* info_field_last() */ + if (!field.name) + return; + + g_array_append_val(group->fields, field); +} + +void info_group_add_fieldsv(struct InfoGroup *group, va_list ap) +{ + while (1) { + struct InfoField field = va_arg(ap, struct InfoField); + + /* info_field_last() */ + if (!field.name) + break; + + g_array_append_val(group->fields, field); + } +} + +void info_group_add_fields(struct InfoGroup *group, ...) +{ + va_list ap; + + va_start(ap, group); + info_group_add_fieldsv(group, ap); + va_end(ap); +} + +struct InfoGroup *info_add_group(struct Info *info, const gchar *group_name, ...) +{ + struct InfoGroup group = { + .name = group_name, + .fields = g_array_new(FALSE, FALSE, sizeof(struct InfoField)) + }; + va_list ap; + + va_start(ap, group_name); + info_group_add_fieldsv(&group, ap); + va_end(ap); + + g_array_append_val(info->groups, group); + + return &g_array_index(info->groups, struct InfoGroup, info->groups->len - 1); +} + +struct InfoField info_field_printf(const gchar *name, const gchar *format, ...) +{ + gchar *value; + va_list ap; + + va_start(ap, format); + value = g_strdup_vprintf(format, ap); + va_end(ap); + + return (struct InfoField) { + .name = name, + .value = value, + .free_value_on_flatten = TRUE, + }; +} + +void info_group_strip_extra(struct InfoGroup *group) +{ + guint fi; + char *val, *oldval; + struct InfoField *field; + + for (fi = 0; fi < group->fields->len; fi++) { + field = &g_array_index(group->fields, struct InfoField, fi); + if (field->value){ + val = strrchr(field->value, '|'); + if (val) { + oldval = (gchar*)field->value; + field->value = strdup(val + 1); + g_free(oldval); + } + } + } +} + +void info_add_computed_group(struct Info *info, const gchar *name, const gchar *value) +{ + /* This is a scaffolding method: HardInfo should move away from pre-computing + * the strings in favor of storing InfoGroups instead; while modules are not + * fully converted, use this instead. */ + struct Info *tmp_info = NULL; + struct InfoGroup donor = {}; + gchar *tmp_str = NULL; + + if (name) + tmp_str = g_strdup_printf("[%s]\n%s", name, value); + else + tmp_str = g_strdup(value); + + tmp_info = info_unflatten(tmp_str); + if (tmp_info->groups->len != 1) { + fprintf(stderr, + "info_add_computed_group(): expected only one group in value! (actual: %d)\n", + tmp_info->groups->len); + } else { + donor = g_array_index(tmp_info->groups, struct InfoGroup, 0); + g_array_append_val(info->groups, donor); + } + + g_free(tmp_info); // TODO: doesn't do enough + g_free(tmp_str); +} + +void info_add_computed_group_wo_extra(struct Info *info, const gchar *name, const gchar *value) +{ + /* This is a scaffolding method: HardInfo should move away from pre-computing + * the strings in favor of storing InfoGroups instead; while modules are not + * fully converted, use this instead. */ + struct InfoGroup *agroup; + + info_add_computed_group(info, name, value); + if (info->groups->len > 0) { + agroup = &g_array_index(info->groups, struct InfoGroup, info->groups->len - 1); + info_group_strip_extra(agroup); + } +} + +void info_set_column_title(struct Info *info, const gchar *column, const gchar *title) +{ + int i; + + for (i = 0; i < G_N_ELEMENTS(info_column_titles); i++) { + if (g_str_equal(info_column_titles[i], column)) { + info->column_titles[i] = title; + return; + } + } +} + +void info_set_column_headers_visible(struct Info *info, gboolean setting) +{ + info->column_headers_visible = setting; +} + +void info_set_zebra_visible(struct Info *info, gboolean setting) +{ + info->zebra_visible = setting; +} + +void info_set_normalize_percentage(struct Info *info, gboolean setting) +{ + info->normalize_percentage = setting; +} + +void info_set_view_type(struct Info *info, ShellViewType setting) +{ + info->view_type = setting; +} + +void info_set_reload_interval(struct Info *info, int setting) +{ + info->reload_interval = setting; +} + +static int info_field_cmp_name_ascending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(aa->name, bb->name); +} + +static int info_field_cmp_name_descending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(bb->name, aa->name); +} + +static int info_field_cmp_value_ascending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(aa->value, bb->value); +} + +static int info_field_cmp_value_descending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(bb->value, aa->value); +} + +static int info_field_cmp_tag_ascending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(aa->tag, bb->tag); +} + +static int info_field_cmp_tag_descending(const void *a, const void *b) +{ + const struct InfoField *aa = a, *bb = b; + return g_strcmp0(bb->tag, aa->tag); +} + +static const GCompareFunc sort_functions[INFO_GROUP_SORT_MAX] = { + [INFO_GROUP_SORT_NONE] = NULL, + [INFO_GROUP_SORT_NAME_ASCENDING] = info_field_cmp_name_ascending, + [INFO_GROUP_SORT_NAME_DESCENDING] = info_field_cmp_name_descending, + [INFO_GROUP_SORT_VALUE_ASCENDING] = info_field_cmp_value_ascending, + [INFO_GROUP_SORT_VALUE_DESCENDING] = info_field_cmp_value_descending, + [INFO_GROUP_SORT_TAG_ASCENDING] = info_field_cmp_tag_ascending, + [INFO_GROUP_SORT_TAG_DESCENDING] = info_field_cmp_tag_descending, +}; + +static void field_free_strings(struct InfoField *field) +{ + if (field->free_value_on_flatten) + g_free((gchar *)field->value); + if (field->free_name_on_flatten) + g_free((gchar *)field->name); + g_free(field->tag); +} + +static void free_group_fields(struct InfoGroup *group) +{ + if (group && group->fields) { + guint i; + + for (i = 0; i < group->fields->len; i++) { + struct InfoField *field = + &g_array_index(group->fields, struct InfoField, i); + field_free_strings(field); + } + + g_array_free(group->fields, TRUE); + } +} + +static void flatten_group(GString *output, const struct InfoGroup *group, guint group_count) +{ + guint i; + + if (group->name != NULL) + g_string_append_printf(output, "[%s#%d]\n", group->name, group_count); + + if (group->sort != INFO_GROUP_SORT_NONE) + g_array_sort(group->fields, sort_functions[group->sort]); + + if (group->fields) { + for (i = 0; i < group->fields->len; i++) { + struct InfoField *field = &g_array_index(group->fields, struct InfoField, i); + gchar tmp_tag[256] = ""; /* for generated tag */ + + gboolean do_escape = TRUE; /* refers to the value side only */ + if (field->value && strchr(field->value, '|') ) { + /* turning off escaping for values that may have columns */ + do_escape = FALSE; + /* TODO:/FIXME: struct InfoField should store the column values + * in an array instead of packing them into one value with '|'. + * Then each value can be escaped and joined together with '|' + * for flatten(). unflatten() can then split on non-escaped '|', + * and unescape the result values into the column value array. + * Another way to do this might be to check + * .column_headers_visible in struct Info, but that is not + * available here. + */ + } + + const gchar *tp = field->tag; + gboolean tagged = !!tp; + gboolean flagged = field->highlight || field->report_details || field->value_has_vendor; + if (!tp) { + snprintf(tmp_tag, 255, "ITEM%d-%d", group_count, i); + tp = tmp_tag; + } + if (!field->label_is_escaped) { + if (strchr(field->name, '=') + || strchr(field->name, '$')) { + // TODO: what about # ? + gchar *ofn = (gchar*)field->name; + field->name = key_label_escape(ofn); + g_free(ofn); + field->label_is_escaped = TRUE; + } + } + if (tagged || flagged || field->icon) { + g_string_append_printf(output, "$%s%s%s%s%s$", + field->label_is_escaped ? "@" : "", + field->highlight ? "*" : "", + field->report_details ? "!" : "", + field->value_has_vendor ? "^" : "", + tp); + } + + if (do_escape) { + gchar *escaped_value = gg_key_file_parse_string_as_value(field->value, '|'); + g_string_append_printf(output, "%s=%s\n", field->name, escaped_value); + g_free(escaped_value); + } else { + g_string_append_printf(output, "%s=%s\n", field->name, field->value); + } + } + } else if (group->computed) { + g_string_append_printf(output, "%s\n", group->computed); + } +} + +static void flatten_shell_param(GString *output, const struct InfoGroup *group, guint group_count) +{ + guint i; + + if (!group->fields) + return; + + for (i = 0; i < group->fields->len; i++) { + struct InfoField *field = &g_array_index(group->fields, struct InfoField, i); + gchar tmp_tag[256] = ""; /* for generated tag */ + + const gchar *tp = field->tag; + gboolean tagged = !!tp; + if (!tp) { + snprintf(tmp_tag, 255, "ITEM%d-%d", group_count, i); + tp = tmp_tag; + } + + if (field->update_interval) { + g_string_append_printf(output, "UpdateInterval$%s%s%s=%d\n", + tagged ? tp : "", tagged ? "$" : "", /* tag and close or nothing */ + field->name, + field->update_interval); + } + + if (field->icon) { + g_string_append_printf(output, "Icon$%s$=%s\n", + tp, field->icon); + } + } +} + +static void flatten_shell_param_global(GString *output, const struct Info *info) +{ + int i; + + g_string_append_printf(output, "ViewType=%d\n", info->view_type); + g_string_append_printf(output, "ShowColumnHeaders=%s\n", + info->column_headers_visible ? "true" : "false"); + + if (info->zebra_visible) + g_string_append(output, "Zebra=1\n"); + + if (info->reload_interval) + g_string_append_printf(output, "ReloadInterval=%d\n", info->reload_interval); + + if (!info->normalize_percentage) + g_string_append(output, "NormalizePercentage=false\n"); + + for (i = 0; i < G_N_ELEMENTS(info_column_titles); i++) { + if (!info->column_titles[i]) + continue; + + g_string_append_printf(output, "ColumnTitle$%s=%s\n", + info_column_titles[i], info->column_titles[i]); + } +} + +gchar *info_flatten(struct Info *info) +{ + /* This is a scaffolding method: eventually the HardInfo shell should + * understand a struct Info instead of parsing these strings, which are + * brittle and unnecessarily complicates things. Being a temporary + * method, no attention is paid to improve the memory allocation + * strategy. */ + GString *values; + GString *shell_param; + guint i; + + values = g_string_new(NULL); + shell_param = g_string_new(NULL); + + if (info->groups) { + for (i = 0; i < info->groups->len; i++) { + struct InfoGroup *group = + &g_array_index(info->groups, struct InfoGroup, i); + + flatten_group(values, group, i); + flatten_shell_param(shell_param, group, i); + + free_group_fields(group); + } + + g_array_free(info->groups, TRUE); + } + + flatten_shell_param_global(shell_param, info); + g_string_append_printf(values, "[$ShellParam$]\n%s", shell_param->str); + + g_string_free(shell_param, TRUE); + g_free(info); + + return g_string_free(values, FALSE); +} + +void info_remove_group(struct Info *info, guint index) +{ + struct InfoGroup *grp; + + if (index >= info->groups->len) + return; + + grp = &g_array_index(info->groups, struct InfoGroup, index); + free_group_fields(grp); + + g_array_remove_index(info->groups, index); +} + +struct InfoField *info_find_field(struct Info *info, const gchar *tag, const gchar *name) { + struct InfoGroup *group; + struct InfoField *field; + int gi,fi; + for (gi = 0; gi < info->groups->len; gi++) { + struct InfoGroup *group = &g_array_index(info->groups, struct InfoGroup, gi); + for (fi = 0; fi < group->fields->len; fi++) { + struct InfoField *field = &g_array_index(group->fields, struct InfoField, fi); + if (tag && SEQ(tag, field->tag) ) + return field; + else if (name && SEQ(name, field->name) ) + return field; + } + } + return NULL; +} + +#define VAL_FALSE_OR_TRUE ((!g_strcmp0(value, "true") || !g_strcmp0(value, "1")) ? TRUE : FALSE) + +struct Info *info_unflatten(const gchar *str) +{ + struct Info *info = info_new(); + GKeyFile *key_file = g_key_file_new(); + gchar **groups; + gsize ngroups; + int g, k, spg = -1; + + g_key_file_load_from_data(key_file, str, strlen(str), 0, NULL); + groups = g_key_file_get_groups(key_file, &ngroups); + for (g = 0; groups[g]; g++) { + gchar *group_name = groups[g]; + gchar **keys = g_key_file_get_keys(key_file, group_name, NULL, NULL); + + if (*group_name == '$') { + /* special group */ + if (SEQ(group_name, "$ShellParam$") ) + spg = g; /* handle after all groups are added */ + else { + /* This special group is unknown and won't be handled, so + * the name will not be linked anywhere. */ + g_free(group_name); + continue; + } + } else { + /* normal group */ + struct InfoGroup group = {}; + group.name = group_name; + group.fields = g_array_new(FALSE, FALSE, sizeof(struct InfoField)); + group.sort = INFO_GROUP_SORT_NONE; + + for (k = 0; keys[k]; k++) { + struct InfoField field = {}; + gchar *flags, *tag, *name, *label, *dis; + key_get_components(keys[k], &flags, &tag, &name, &label, &dis, TRUE); + gchar *value = g_key_file_get_value(key_file, group_name, keys[k], NULL); + + field.tag = tag; + field.name = name; + field.value = value; + if (key_label_is_escaped(flags)) + field.label_is_escaped = TRUE; + if (key_wants_details(flags)) + field.report_details = TRUE; + if (key_is_highlighted(flags)) + field.highlight = TRUE; + if (key_value_has_vendor_string(flags)) + field.value_has_vendor = TRUE; + field.free_value_on_flatten = TRUE; + field.free_name_on_flatten = TRUE; + + g_free(flags); + g_free(label); + g_free(dis); + g_array_append_val(group.fields, field); + } + g_array_append_val(info->groups, group); + } + } + + if (spg >= 0) { + gchar *group_name = groups[spg]; + gchar **keys = g_key_file_get_keys(key_file, group_name, NULL, NULL); + for (k = 0; keys[k]; k++) { + gchar *value = g_key_file_get_value(key_file, group_name, keys[k], NULL); + gchar *parm = NULL; + if (SEQ(keys[k], "ViewType")) { + info_set_view_type(info, atoi(value)); + } else if (SEQ(keys[k], "ShowColumnHeaders")) { + info_set_column_headers_visible(info, VAL_FALSE_OR_TRUE); + } else if (SEQ(keys[k], "Zebra")) { + info_set_zebra_visible(info, VAL_FALSE_OR_TRUE); + } else if (SEQ(keys[k], "ReloadInterval")) { + info_set_reload_interval(info, atoi(value)); + } else if (SEQ(keys[k], "NormalizePercentage")) { + info_set_normalize_percentage(info, VAL_FALSE_OR_TRUE); + } else if (g_str_has_prefix(keys[k], "ColumnTitle$")) { + info_set_column_title(info, strchr(keys[k], '$') + 1, value); + } else if (g_str_has_prefix(keys[k], "Icon$")) { + const gchar *chk_name = NULL; + gchar *chk_tag = NULL; + parm = strchr(keys[k], '$'); + if (key_is_flagged(parm)) + chk_tag = key_mi_tag(parm); + struct InfoField *field = info_find_field(info, chk_tag, NULL); + if (field) + field->icon = value; + g_free(chk_tag); + } else if (g_str_has_prefix(keys[k], "UpdateInterval$")) { + const gchar *chk_name = NULL; + gchar *chk_tag = NULL; + parm = strchr(keys[k], '$'); + if (key_is_flagged(parm)) { + chk_tag = key_mi_tag(parm); + chk_name = key_get_name(parm); + } else + chk_name = key_get_name(parm+1); + struct InfoField *field = info_find_field(info, chk_tag, chk_name); + if (field) + field->update_interval = atoi(value); + g_free(chk_tag); + } + } + g_free(group_name); + g_strfreev(keys); + } + + return info; +} diff --git a/hardinfo2/pci_util.c b/hardinfo2/pci_util.c new file mode 100644 index 00000000..ccf4f7c4 --- /dev/null +++ b/hardinfo2/pci_util.c @@ -0,0 +1,463 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2017 L. A. F. Pereira + * This file + * Copyright (C) 2018 Burt P. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "pci_util.h" +#include "util_ids.h" + +gchar *pci_ids_file = NULL; +GTimer *pci_ids_timer = NULL; +const gboolean nolspci = FALSE; /* true for testing */ + +/* Two pieces of info still only from lspci: + * - kernel driver in use + * - kernel modules list + * + * TODO: could use readlink() and basename() to get kernel driver from sysfs + * - /sys/bus/pci/devices//driver is a symlink + */ + +const gchar *find_pci_ids_file() { + if (pci_ids_file) { + if (!strstr(pci_ids_file, ".min")) + return pci_ids_file; + if (g_timer_elapsed(pci_ids_timer, NULL) > 2.0) { + /* try again for the full version */ + DEBUG("find_pci_ids_file() found only a \".min\" version, trying again..."); + g_free(pci_ids_file); + pci_ids_file = NULL; + } + } + char *file_search_order[] = { + g_strdup("/usr/share/hwdata/pci.ids"), + g_strdup("/usr/share/misc/pci.ids"), + g_build_filename(g_get_user_config_dir(), "hardinfo", "pci.ids", NULL), + g_build_filename(params.path_data, "pci.ids", NULL), + g_build_filename(g_get_user_config_dir(), "hardinfo", "pci.ids.min", NULL), + g_build_filename(params.path_data, "pci.ids.min", NULL), + NULL + }; + int n; + for(n = 0; file_search_order[n]; n++) { + if (!pci_ids_file && !access(file_search_order[n], R_OK)) + pci_ids_file = file_search_order[n]; + else + g_free(file_search_order[n]); + } + DEBUG("find_pci_ids_file() result: %s", pci_ids_file); + if (pci_ids_file) { + if (!pci_ids_timer) + pci_ids_timer = g_timer_new(); + else + g_timer_reset(pci_ids_timer); + } + return pci_ids_file; +} + +char *pci_lookup_ids_vendor_str(uint32_t id) { + gchar *ret = NULL; + + ids_query_result result = {}; + gchar *qpath; + + if (!find_pci_ids_file()) + return FALSE; + + qpath = g_strdup_printf("%04x", id); + scan_ids_file(pci_ids_file, qpath, &result, -1); + if (result.results[0]) { + ret = g_strdup(result.results[0]); + } + g_free(qpath); + + return ret; +} + +static gboolean pci_lookup_ids(pcid *d) { + gboolean ret = FALSE; + ids_query_result result = {}; + gchar *qpath; + + if (!find_pci_ids_file()) + return FALSE; + + /* lookup vendor, device, sub device */ + qpath = g_strdup_printf("%04x/%04x/%04x %04x", + d->vendor_id, d->device_id, d->sub_vendor_id, d->sub_device_id); + scan_ids_file(pci_ids_file, qpath, &result, -1); + if (result.results[0]) { + if (d->vendor_id_str) g_free(d->vendor_id_str); + d->vendor_id_str = g_strdup(result.results[0]); + ret = TRUE; + } + if (result.results[1]) { + if (d->device_id_str) g_free(d->device_id_str); + d->device_id_str = g_strdup(result.results[1]); + ret = TRUE; + } + if (result.results[2]) { + if (d->sub_device_id_str) g_free(d->sub_device_id_str); + d->sub_device_id_str = g_strdup(result.results[2]); + ret = TRUE; + } + g_free(qpath); + + /* lookup sub vendor by itself */ + qpath = g_strdup_printf("%04x", d->sub_vendor_id); + scan_ids_file(pci_ids_file, qpath, &result, -1); + if (result.results[0]) { + if (d->sub_vendor_id_str) g_free(d->sub_vendor_id_str); + d->sub_vendor_id_str = g_strdup(result.results[0]); + ret = TRUE; + }; + g_free(qpath); + + /* lookup class */ + qpath = g_strdup_printf("C %02x/%02x", (d->class >> 8) & 0xff, (d->class & 0xff)); + scan_ids_file(pci_ids_file, qpath, &result, -1); + if (result.results[0]) { + if (d->class_str) g_free(d->class_str); + d->class_str = g_strdup(result.results[0]); + if (result.results[1] + && !SEQ(result.results[0], result.results[1]) ) { + /* options 1: results[0] + " :: " + results[1] */ + //d->class_str = appf(d->class_str, " :: ", "%s", result.results[1]); + + /* option 2: results[1] or results[0] */ + g_free(d->class_str); + d->class_str = g_strdup(result.results[1]); + } + ret = TRUE; + } + g_free(qpath); + + return ret; +} + +gint pcid_cmp_by_addy(gconstpointer a, gconstpointer b) +{ + const struct pcid *dev_a = a; + const struct pcid *dev_b = b; + + if (!dev_a) + return !!dev_b; + if (!dev_b) + return !!dev_a; + + return g_strcmp0(dev_a->slot_str, dev_b->slot_str); +} + +void pcid_free(pcid *s) { + if (s) { + g_free(s->slot_str); + g_free(s->class_str); + g_free(s->vendor_id_str); + g_free(s->device_id_str); + g_free(s->sub_vendor_id_str); + g_free(s->sub_device_id_str); + g_free(s->driver); + g_free(s->driver_list); + g_free(s); + } +} + +static char *lspci_line_value(char *line, const char *prefix) { + if (g_str_has_prefix(g_strstrip(line), prefix)) { + line += strlen(prefix) + 1; + return g_strstrip(line); + } else + return NULL; +} + +/* read output line of lspci -vmmnn */ +static int lspci_line_string_and_code(char *line, char *prefix, char **str, uint32_t *code) { + char *l = lspci_line_value(line, prefix); + char *e; + + if (l) { + e = strchr(l, 0); + while (e > l && *e != '[') e--; + sscanf(e, "[%x]", code); + *e = 0; /* terminate at start of code */ + if (*str) free(*str); /* free if replacing */ + *str = strdup(g_strstrip(l)); + } + return 0; +} + +static gboolean pci_fill_details(pcid *s) { + if (nolspci) return FALSE; + gboolean spawned; + gchar *out, *err, *p, *l, *next_nl; + gchar *pci_loc = pci_address_str(s->domain, s->bus, s->device, s->function); + gchar *lspci_cmd = g_strdup_printf("lspci -D -s %s -vvv", pci_loc); + + spawned = hardinfo_spawn_command_line_sync(lspci_cmd, + &out, &err, NULL, NULL); + g_free(lspci_cmd); + g_free(pci_loc); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + if (l = lspci_line_value(p, "Kernel driver in use")) { + s->driver = g_strdup(l); + goto pci_details_next; + } + if (l = lspci_line_value(p, "Kernel modules")) { + s->driver_list = g_strdup(l); + goto pci_details_next; + } + /* TODO: more details */ + + pci_details_next: + p = next_nl + 1; + } + g_free(out); + g_free(err); + return TRUE; + } + return FALSE; +} + +char *pci_address_str(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func) { + return g_strdup_printf("%04x:%02x:%02x.%01x", dom, bus, dev, func); +} + +/* /sys/bus/pci/devices/0000:01:00.0/ */ +char *_sysfs_bus_pci(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, const char *item) { + char *ret = NULL, *pci_loc, *sysfs_path; + pci_loc = pci_address_str(dom, bus, dev, func); + sysfs_path = g_strdup_printf("%s/%s/%s", SYSFS_PCI_ROOT, pci_loc, item); + g_file_get_contents(sysfs_path, &ret, NULL, NULL); + free(pci_loc); + free(sysfs_path); + return ret; +} + +gboolean _sysfs_bus_pci_read_hex(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, const char *item, uint32_t *val) { + char *tmp = _sysfs_bus_pci(dom, bus, dev, func, item); + uint32_t tval; + if (tmp && val) { + int ec = sscanf(tmp, "%x", &tval); + free(tmp); + if (ec) { + *val = tval; + return TRUE; + } + } + return FALSE; +} + +/* https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci */ +static gboolean pci_get_device_sysfs(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, pcid *s) { + char *tmp = NULL; + int ec = 0; + float tf; + s->domain = dom; + s->bus = bus; + s->device = dev; + s->function = func; + s->slot_str = s->slot_str ? s->slot_str : pci_address_str(dom, bus, dev, func); + if (! _sysfs_bus_pci_read_hex(dom, bus, dev, func, "class", &s->class) ) + return FALSE; + s->class >>= 8; /* TODO: find out why */ + _sysfs_bus_pci_read_hex(dom, bus, dev, func, "device", &s->device_id); + _sysfs_bus_pci_read_hex(dom, bus, dev, func, "vendor", &s->vendor_id); + _sysfs_bus_pci_read_hex(dom, bus, dev, func, "subsystem_device", &s->sub_device_id); + _sysfs_bus_pci_read_hex(dom, bus, dev, func, "subsystem_vendor", &s->sub_vendor_id); + _sysfs_bus_pci_read_hex(dom, bus, dev, func, "revision", &s->revision); + + tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_speed"); + if (tmp) { + ec = sscanf(tmp, "%f GT/s", &tf); + if (ec) s->pcie_speed_max = tf; + free(tmp); + } + tmp = _sysfs_bus_pci(dom, bus, dev, func, "current_link_speed"); + if (tmp) { + ec = sscanf(tmp, "%f GT/s", &tf); + if (ec) s->pcie_speed_curr = tf; + free(tmp); + } + tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_width"); + if (tmp) { + s->pcie_width_max = strtoul(tmp, NULL, 0); + free(tmp); + } + tmp = _sysfs_bus_pci(dom, bus, dev, func, "max_link_width"); + if (tmp) { + s->pcie_width_curr = strtoul(tmp, NULL, 0); + free(tmp); + } + return TRUE; +} + +static gboolean pci_get_device_lspci(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func, pcid *s) { + if (nolspci) return FALSE; + gboolean spawned; + gchar *out, *err, *p, *l, *next_nl; + gchar *pci_loc = pci_address_str(dom, bus, dev, func); + gchar *lspci_cmd = g_strdup_printf("lspci -D -s %s -vmmnn", pci_loc); + + s->domain = dom; + s->bus = bus; + s->device = dev; + s->function = func; + + spawned = hardinfo_spawn_command_line_sync(lspci_cmd, + &out, &err, NULL, NULL); + g_free(lspci_cmd); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + if (l = lspci_line_value(p, "Slot")) { + s->slot_str = g_strdup(l); + if (strcmp(s->slot_str, pci_loc) != 0) { + printf("PCI: %s != %s\n", s->slot_str, pci_loc); + } + } + if (l = lspci_line_value(p, "Rev")) { + s->revision = strtol(l, NULL, 16); + } + lspci_line_string_and_code(p, "Class", &s->class_str, &s->class); + lspci_line_string_and_code(p, "Vendor", &s->vendor_id_str, &s->vendor_id); + lspci_line_string_and_code(p, "Device", &s->device_id_str, &s->device_id); + lspci_line_string_and_code(p, "SVendor", &s->sub_vendor_id_str, &s->sub_vendor_id); + lspci_line_string_and_code(p, "SDevice", &s->sub_device_id_str, &s->sub_device_id); + + p = next_nl + 1; + } + g_free(out); + g_free(err); + g_free(pci_loc); + return TRUE; + } + g_free(pci_loc); + return FALSE; +} + +pcid *pci_get_device_str(const char *addy) { + uint32_t dom, bus, dev, func; + int ec; + if (addy) { + ec = sscanf(addy, "%x:%x:%x.%x", &dom, &bus, &dev, &func); + if (ec == 4) { + return pci_get_device(dom, bus, dev, func); + } + } + return NULL; +} + +pcid *pci_get_device(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func) { + pcid *s = pcid_new(); + gboolean ok = FALSE; + if (s) { + ok = pci_get_device_sysfs(dom, bus, dev, func, s); + if (ok) { + ok |= pci_lookup_ids(s); + if (!ok) + ok |= pci_get_device_lspci(dom, bus, dev, func, s); + } + if (!ok) { + pcid_free(s); + s = NULL; + } + } + return s; +} + +static pcid_list pci_get_device_list_lspci(uint32_t class_min, uint32_t class_max) { + if (nolspci) return NULL; + gboolean spawned; + gchar *out, *err, *p, *next_nl; + pcid_list dl = NULL; + pcid *nd; + uint32_t dom, bus, dev, func, cls; + int ec; + + if (class_max == 0) class_max = 0xffff; + + spawned = hardinfo_spawn_command_line_sync("lspci -D -mn", + &out, &err, NULL, NULL); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + ec = sscanf(p, "%x:%x:%x.%x \"%x\"", &dom, &bus, &dev, &func, &cls); + if (ec == 5) { + if (cls >= class_min && cls <= class_max) { + nd = pci_get_device(dom, bus, dev, func); + pci_fill_details(nd); + dl = g_slist_append(dl, nd); + } + } + p = next_nl + 1; + } + g_free(out); + g_free(err); + } + return dl; +} + +static pcid_list pci_get_device_list_sysfs(uint32_t class_min, uint32_t class_max) { + pcid_list dl = NULL; + pcid *nd; + uint32_t dom, bus, dev, func, cls; + int ec; + + if (class_max == 0) class_max = 0xffff; + + const gchar *f = NULL; + GDir *d = g_dir_open("/sys/bus/pci/devices", 0, NULL); + if (!d) return 0; + + while((f = g_dir_read_name(d))) { + ec = sscanf(f, "%x:%x:%x.%x", &dom, &bus, &dev, &func); + if (ec == 4) { + gchar *cf = g_strdup_printf("/sys/bus/pci/devices/%s/class", f); + gchar *cstr = NULL; + if (g_file_get_contents(cf, &cstr, NULL, NULL) ) { + cls = strtoul(cstr, NULL, 16) >> 8; + if (cls >= class_min && cls <= class_max) { + nd = pci_get_device(dom, bus, dev, func); + pci_fill_details(nd); + dl = g_slist_append(dl, nd); + } + } + g_free(cstr); + g_free(cf); + } + } + g_dir_close(d); + return dl; +} + +pcid_list pci_get_device_list(uint32_t class_min, uint32_t class_max) { + pcid_list dl = NULL; + dl = pci_get_device_list_sysfs(class_min, class_max); + if (!dl) + dl = pci_get_device_list_lspci(class_min, class_max); + return dl; +} + diff --git a/hardinfo2/problem_marker.c b/hardinfo2/problem_marker.c new file mode 100644 index 00000000..1e0c2aed --- /dev/null +++ b/hardinfo2/problem_marker.c @@ -0,0 +1,13 @@ + +#include "hardinfo.h" + +/* requires COMPILE_FLAGS "-std=c99" */ + +const char *problem_marker() { + static const char as_markup[] = "\u26A0"; + static const char as_text[] = "(!)"; + if (params.markup_ok) + return as_markup; + else + return as_text; +} diff --git a/hardinfo2/socket.c b/hardinfo2/socket.c new file mode 100644 index 00000000..6e3a3f9e --- /dev/null +++ b/hardinfo2/socket.c @@ -0,0 +1,127 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2007 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "socket.h" + +Socket *sock_connect(gchar * host, gint port) +{ + struct sockaddr_in server; + Socket *s; + int sock; + + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock > 0) { + memset(&server, 0, sizeof(server)); + server.sin_family = AF_INET; + server.sin_addr.s_addr = inet_addr(host); + server.sin_port = htons(port); + + if (connect(sock, (struct sockaddr *) (void *) &server, sizeof(server)) < 0) { + goto cleanup; + } + + s = g_new0(Socket, 1); + s->sock = sock; + + return s; + } + +cleanup: + close(sock); + + return NULL; +} + +/* From: http://www.erlenstar.demon.co.uk/unix/faq_3.html#SEC26 */ +static inline int __sock_is_ready(Socket * s, int mode) +{ + int rc, fd = s->sock; + fd_set fds; + struct timeval tv; + + FD_ZERO(&fds); + FD_SET(fd, &fds); + tv.tv_sec = tv.tv_usec = 0; + + if (mode == 0) { + /* read */ + rc = select(fd + 1, &fds, NULL, NULL, &tv); + } else { + /* write */ + rc = select(fd + 1, NULL, &fds, NULL, &tv); + } + + if (rc < 0) + return -1; + + return FD_ISSET(fd, &fds) ? 1 : 0; +} + +int sock_ready_to_read(Socket * s) +{ + return __sock_is_ready(s, 0); +} + +int sock_ready_to_write(Socket * s) +{ + return __sock_is_ready(s, 1); +} + +int sock_read(Socket * s, gchar * buffer, gint size) +{ + if (size > 2 && sock_ready_to_read(s)) { + gint n; + + n = read(s->sock, buffer, size - 1); + if (n > 0) { + buffer[n] = '\0'; + } else { + return 0; + } + + return n; + } + + return 0; +} + +int sock_write(Socket * s, gchar * str) +{ + while (!sock_ready_to_write(s)); + + return write(s->sock, str, strlen(str)); +} + +void sock_close(Socket * s) +{ + shutdown(s->sock, 2); + close(s->sock); + g_free(s); +} diff --git a/hardinfo2/storage_util.c b/hardinfo2/storage_util.c new file mode 100644 index 00000000..7e61d336 --- /dev/null +++ b/hardinfo2/storage_util.c @@ -0,0 +1,250 @@ +#include "udisks2_util.h" +#include "storage_util.h" +#include "util_ids.h" +#include "hardinfo.h" + +gchar *sdcard_ids_file = NULL; +gchar *oui_ids_file = NULL; + +// moved from udisks2_util.h +void find_sdcard_ids_file() { + if (sdcard_ids_file) return; + char *file_search_order[] = { + g_build_filename(g_get_user_config_dir(), "hardinfo", "sdcard.ids", NULL), + g_build_filename(params.path_data, "sdcard.ids", NULL), + NULL + }; + int n; + for(n = 0; file_search_order[n]; n++) { + if (!sdcard_ids_file && !access(file_search_order[n], R_OK)) + sdcard_ids_file = file_search_order[n]; + else + g_free(file_search_order[n]); + } +} + +void find_oui_ids_file() { + if (oui_ids_file) return; + char *file_search_order[] = { + g_build_filename(g_get_user_config_dir(), "hardinfo", "ieee_oui.ids", NULL), + g_build_filename(params.path_data, "ieee_oui.ids", NULL), + NULL + }; + int n; + for(n = 0; file_search_order[n]; n++) { + if (!oui_ids_file && !access(file_search_order[n], R_OK)) + oui_ids_file = file_search_order[n]; + else + g_free(file_search_order[n]); + } +} + +gchar* get_oui_from_wwid(gchar* wwid){ + gchar* ret = NULL; + + if (g_str_has_prefix(wwid, "nna.")) { + if (strlen(wwid)*4 < 48) + return NULL; + + switch (wwid[4]){ + case '1': + case '2': + ret = g_strndup(wwid + 8, 6); + break; + case '5': + case '6': + ret = g_strndup(wwid + 5, 6); + break; + } + } + else if(g_str_has_prefix(wwid, "eui.")) { + if (strlen(wwid)*4 < 48) + return NULL; + ret = g_strndup(wwid+4, 6); + } + + return ret; +} + +gchar* get_oui_company(gchar* oui){ + ids_query_result result = {}; + + if (!oui_ids_file) + find_oui_ids_file(); + + scan_ids_file(oui_ids_file, oui, &result, -1); + if (result.results[0]) + return g_strdup(result.results[0]); + + return NULL; +} + +// moved from udisks2_util.h +void check_sdcard_vendor(u2driveext *e) { + if (!e || !e->d) return; + if (!e->d->media) return; + if (! (g_str_has_prefix(e->d->media, "flash_sd") + || g_str_has_prefix(e->d->media, "flash_mmc") )) return; + if (e->d->vendor && e->d->vendor[0]) return; + if (!e->d->block_dev) return; + + if (!sdcard_ids_file) + find_sdcard_ids_file(); + + gchar *qpath = NULL; + ids_query_result result = {}; + + gchar *oemid_path = g_strdup_printf("/sys/block/%s/device/oemid", e->d->block_dev); + gchar *manfid_path = g_strdup_printf("/sys/block/%s/device/manfid", e->d->block_dev); + gchar *oemid = NULL, *manfid = NULL; + g_file_get_contents(oemid_path, &oemid, NULL, NULL); + g_file_get_contents(manfid_path, &manfid, NULL, NULL); + + unsigned int id = oemid?strtol(oemid, NULL, 16):0; + char c2 = id & 0xff, c1 = (id >> 8) & 0xff; + + qpath = g_strdup_printf("OEMID %02x%02x", (unsigned int)c1, (unsigned int)c2); + scan_ids_file(sdcard_ids_file, qpath, &result, -1); + g_free(oemid); + if (result.results[0]) + oemid = g_strdup(result.results[0]); + else + oemid = g_strdup_printf("OEM %02x%02x \"%c%c\"", + (unsigned int)c1, (unsigned int)c2, + isprint(c1) ? c1 : '.', isprint(c2) ? c2 : '.'); + g_free(qpath); + + id = manfid?strtol(manfid, NULL, 16):0; + qpath = g_strdup_printf("MANFID %06x", id); + scan_ids_file(sdcard_ids_file, qpath, &result, -1); + g_free(manfid); + if (result.results[0]) + manfid = g_strdup(result.results[0]); + else + manfid = g_strdup_printf("MANF %06x", id); + g_free(qpath); + + vendor_list vl = NULL; + const Vendor *v = NULL; + v = vendor_match(oemid, NULL); + if (v) vl = vendor_list_append(vl, v); + v = vendor_match(manfid, NULL); + if (v) vl = vendor_list_append(vl, v); + vl = vendor_list_remove_duplicates_deep(vl); + e->vendors = vendor_list_concat(e->vendors, vl); + + g_free(e->d->vendor); + if (g_strcmp0(oemid, manfid) == 0) + e->d->vendor = g_strdup(oemid); + else + e->d->vendor = g_strdup_printf("%s / %s", oemid, manfid); + + g_free(oemid); + g_free(manfid); + g_free(oemid_path); + g_free(manfid_path); + + if (e->d->revision && e->d->revision[0]) return; + + /* bonus: revision */ + gchar *fwrev_path = g_strdup_printf("/sys/block/%s/device/fwrev", e->d->block_dev); + gchar *hwrev_path = g_strdup_printf("/sys/block/%s/device/hwrev", e->d->block_dev); + gchar *fwrev = NULL, *hwrev = NULL; + g_file_get_contents(fwrev_path, &fwrev, NULL, NULL); + g_file_get_contents(hwrev_path, &hwrev, NULL, NULL); + + unsigned int fw = fwrev ? strtol(fwrev, NULL, 16) : 0; + unsigned int hw = hwrev ? strtol(hwrev, NULL, 16) : 0; + g_free(e->d->revision); + e->d->revision = g_strdup_printf("%02x.%02x", hw, fw); + + g_free(fwrev); + g_free(hwrev); + g_free(fwrev_path); + g_free(hwrev_path); + +} + +void set_nvme_controller_info(u2driveext *e){ + gchar *path = g_strdup_printf("/sys/block/%s/device/device", e->d->block_dev); + gchar *systarget = g_file_read_link(path, NULL); + gchar *target = systarget ? g_filename_to_utf8(systarget, -1, NULL, NULL, NULL) : NULL; + gchar *pci_addy = target ? g_path_get_basename(target) : NULL; + e->nvme_controller = pci_addy ? pci_get_device_str(pci_addy) : NULL; + g_free(path); + g_free(systarget); + g_free(target); + g_free(pci_addy); + if (e->nvme_controller) { + e->vendors = vendor_list_append(e->vendors, + vendor_match(e->nvme_controller->vendor_id_str, NULL)); + e->vendors = vendor_list_append(e->vendors, + vendor_match(e->nvme_controller->sub_vendor_id_str, NULL)); + } +} + +GSList* get_udisks2_drives_ext(void){ + GSList *node, *list; + u2driveext* extdrive; + + list = get_udisks2_all_drives_info(); + + for (node = list; node != NULL; node = node->next) { + extdrive = u2drive_ext((udiskd *)node->data); + node->data = extdrive; + + if (!extdrive->d->vendor || !extdrive->d->vendor[0]) { + // sometimes vendors adds their name to the model field + const Vendor *v = vendor_match(extdrive->d->model, NULL); + if (v) + extdrive->d->vendor = g_strdup(v->name); + } + + check_sdcard_vendor(extdrive); + + extdrive->vendors = vendor_list_append(extdrive->vendors, vendor_match(extdrive->d->vendor, NULL)); + + // get OUI from WWID + if (extdrive->d->wwid) { + extdrive->wwid_oui.oui = get_oui_from_wwid(extdrive->d->wwid); + if (extdrive->wwid_oui.oui) { + extdrive->wwid_oui.vendor = get_oui_company(extdrive->wwid_oui.oui); + } + if (extdrive->wwid_oui.vendor){ + extdrive->vendors = vendor_list_append(extdrive->vendors, vendor_match(extdrive->wwid_oui.vendor, NULL)); + } + } + + // NVMe PCI device + if (strstr(extdrive->d->block_dev, "nvme")) { + set_nvme_controller_info(extdrive); + } + + extdrive->vendors = gg_slist_remove_null(extdrive->vendors); + extdrive->vendors = vendor_list_remove_duplicates_deep(extdrive->vendors); + + } + return list; +} + + +u2driveext* u2drive_ext(udiskd * udisks_drive_data) { + u2driveext* data = g_new0(u2driveext, 1); + data->d = udisks_drive_data; + return data; +} + +void u2driveext_free(u2driveext *u) { + if (u) { + udiskd_free(u->d); + g_free(u->wwid_oui.oui); + g_free(u->wwid_oui.vendor); + pcid_free(u->nvme_controller); + g_free(u); + } +} + +void storage_shutdown(){ + g_free(sdcard_ids_file); + g_free(oui_ids_file); +} diff --git a/hardinfo2/udisks2_util.c b/hardinfo2/udisks2_util.c new file mode 100644 index 00000000..8e6ebd94 --- /dev/null +++ b/hardinfo2/udisks2_util.c @@ -0,0 +1,639 @@ +#include +#include "udisks2_util.h" + +#define UDISKS2_INTERFACE "org.freedesktop.UDisks2" +#define UDISKS2_MANAGER_INTERFACE "org.freedesktop.UDisks2.Manager" +#define UDISKS2_BLOCK_INTERFACE "org.freedesktop.UDisks2.Block" +#define UDISKS2_LOOP_INTERFACE "org.freedesktop.UDisks2.Loop" +#define UDISKS2_PARTITION_INTERFACE "org.freedesktop.UDisks2.Partition" +#define UDISKS2_PART_TABLE_INTERFACE "org.freedesktop.UDisks2.PartitionTable" +#define UDISKS2_DRIVE_INTERFACE "org.freedesktop.UDisks2.Drive" +#define UDISKS2_DRIVE_ATA_INTERFACE "org.freedesktop.UDisks2.Drive.Ata" +#define DBUS_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties" +#define UDISKS2_MANAGER_OBJ_PATH "/org/freedesktop/UDisks2/Manager" +#define UDISKS2_BLOCK_DEVICES_PATH "/org/freedesktop/UDisks2/block_devices" + +#define STRDUP_IF_NOT_EMPTY(S) (g_strcmp0(S, "") == 0) ? NULL: g_strdup(S); + +GDBusConnection* udisks2_conn = NULL; + +GVariant* get_dbus_property(GDBusProxy* proxy, const gchar *interface, + const gchar *property) { + GVariant *result, *v = NULL; + GError *error = NULL; + + result = g_dbus_proxy_call_sync(proxy, "Get", + g_variant_new ("(ss)", interface, property), + G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); + + if (error != NULL) { + g_error_free (error); + return NULL; + } + + g_variant_get(result, "(v)", &v); + g_variant_unref(result); + return v; +} + +// this function works with udisks2 version 2.7.2 or newer +GSList* get_block_dev_paths_from_udisks2(GDBusConnection* conn){ + GDBusProxy *proxy; + GVariant *options, *v; + GVariantIter *iter; + GError *error = NULL; + GSList *block_paths = NULL; + const gchar *block_path = NULL; + + proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, NULL, + UDISKS2_INTERFACE, UDISKS2_MANAGER_OBJ_PATH, + UDISKS2_MANAGER_INTERFACE, NULL, &error); + options = g_variant_new_parsed("@a{sv} { %s: }", + "auth.no_user_interaction"); + if (error != NULL){ + g_error_free (error); + g_object_unref(proxy); + return NULL; + } + + v = g_dbus_proxy_call_sync(proxy, "GetBlockDevices", + g_variant_new_tuple(&options, 1), + G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); + g_object_unref(proxy); + + if (error != NULL){ + g_error_free (error); + return NULL; + } + + g_variant_get(v, "(ao)", &iter); + while (g_variant_iter_loop (iter, "o", &block_path)){ + block_paths = g_slist_append(block_paths, g_strdup(block_path)); + } + + g_variant_iter_free (iter); + g_variant_unref(v); + return block_paths; +} + +GSList* get_block_dev_paths_from_sysfs(){ + GSList *block_paths = NULL; + GDir *dir; + gchar *path; + const gchar *entry; + + dir = g_dir_open("/sys/class/block", 0, NULL); + if (!dir) + return NULL; + + while ((entry = g_dir_read_name(dir))) { + path = g_strdup_printf("%s/%s", UDISKS2_BLOCK_DEVICES_PATH, entry); + block_paths = g_slist_append(block_paths, path); + } + + g_dir_close(dir); + return block_paths; +} + +GSList* udisks2_drives_func_caller(GDBusConnection* conn, + gpointer (*func)(const char*, GDBusProxy*, + GDBusProxy*, const char*)) { + GDBusProxy *block_proxy, *drive_proxy; + GVariant *block_v, *v; + GSList *result_list = NULL, *block_dev_list, *node; + GError *error = NULL; + gpointer output; + + gchar *block_path = NULL; + const gchar *block_dev, *drive_path = NULL; + + if (conn == NULL) + return NULL; + + // get block devices + block_dev_list = get_block_dev_paths_from_udisks2(conn); + if (block_dev_list == NULL) + block_dev_list = get_block_dev_paths_from_sysfs(); + + for (node = block_dev_list; node != NULL; node = node->next) { + block_path = (gchar *)node->data; + block_proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, + NULL, UDISKS2_INTERFACE, block_path, + DBUS_PROPERTIES_INTERFACE, NULL, &error); + if (error){ + g_error_free(error); + error = NULL; + continue; + } + + // Skip partitions + v = get_dbus_property(block_proxy, UDISKS2_PARTITION_INTERFACE, "Size"); + if (v){ + g_variant_unref(v); + g_object_unref(block_proxy); + continue; + } + + // Skip loop devices + v = get_dbus_property(block_proxy, UDISKS2_LOOP_INTERFACE, "BackingFile"); + if (v){ + g_variant_unref(v); + g_object_unref(block_proxy); + continue; + } + + block_dev = block_path + strlen(UDISKS2_BLOCK_DEVICES_PATH) + 1; + drive_path = NULL; + + // let's find drive proxy + v = get_dbus_property(block_proxy, UDISKS2_BLOCK_INTERFACE, "Drive"); + if (v){ + drive_path = g_variant_get_string(v, NULL); + + if (g_strcmp0(drive_path, "/") != 0){ + drive_proxy = g_dbus_proxy_new_sync(conn, + G_DBUS_PROXY_FLAGS_NONE, NULL, + UDISKS2_INTERFACE, drive_path, + DBUS_PROPERTIES_INTERFACE, NULL, &error); + + if (error == NULL) { + // call requested function + output = func(block_dev, block_proxy, drive_proxy, drive_path); + + if (output != NULL){ + result_list = g_slist_append(result_list, output); + } + g_object_unref(drive_proxy); + } + else { + g_error_free(error); + error = NULL; + } + } + g_variant_unref(v); + } + g_object_unref(block_proxy); + } + g_slist_free_full(block_dev_list, g_free); + + return result_list; +} + +GDBusConnection* get_udisks2_connection(void) { + GDBusConnection *conn; + GDBusProxy *proxy; + GError *error = NULL; + GVariant *result = NULL; + + // connection to system bus + conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); + if (error != NULL) { + g_error_free (error); + return NULL; + } + + // let's check if udisks2 is responding + proxy = g_dbus_proxy_new_sync(conn, G_DBUS_PROXY_FLAGS_NONE, NULL, + UDISKS2_INTERFACE, UDISKS2_MANAGER_OBJ_PATH, + DBUS_PROPERTIES_INTERFACE, NULL, &error); + if (error != NULL) { + g_error_free (error); + g_object_unref(conn); + return NULL; + } + + result = get_dbus_property(proxy, UDISKS2_MANAGER_INTERFACE, "Version"); + g_object_unref(proxy); + if (error != NULL) { + g_error_free (error); + return NULL; + } + + // OK, let's return connection to system bus + g_variant_unref(result); + return conn; +} + +udiskt* udiskt_new() { + return g_new0(udiskt, 1); +} + +udisksa* udisksa_new() { + return g_new0(udisksa, 1); +} + +udiskp* udiskp_new() { + return g_new0(udiskp, 1); +} + +udiskd* udiskd_new() { + return g_new0(udiskd, 1); +} + + +void udiskt_free(udiskt *u) { + if (u) { + g_free(u->drive); + g_free(u); + } +} + +void udisksa_free(udisksa *u) { + if (u) { + g_free(u->identifier); + udisksa_free(u->next); + g_free(u); + } +} + +void udiskp_free(udiskp *u) { + if (u) { + g_free(u->block); + g_free(u->type); + g_free(u->version); + g_free(u->label); + udiskp_free(u->next); + g_free(u); + } +} + +void udiskd_free(udiskd *u) { + if (u) { + g_free(u->model); + g_free(u->vendor); + g_free(u->revision); + g_free(u->block_dev); + g_free(u->serial); + g_free(u->wwid); + g_free(u->connection_bus); + g_free(u->partition_table); + udiskp_free(u->partitions); + udisksa_free(u->smart_attributes); + g_free(u->media); + g_strfreev(u->media_compatibility); + g_free(u); + } +} + + +udiskp* get_udisks2_partition_info(const gchar *part_path) { + GVariant *v; + GDBusProxy *proxy; + GError *error = NULL; + udiskp* partition; + const gchar *str; + + if (!g_str_has_prefix(part_path, UDISKS2_BLOCK_DEVICES_PATH)) { + return NULL; + } + + partition = udiskp_new(); + partition->block = g_strdup(part_path + strlen(UDISKS2_BLOCK_DEVICES_PATH) + 1); + + proxy = g_dbus_proxy_new_sync(udisks2_conn, G_DBUS_PROXY_FLAGS_NONE, + NULL, UDISKS2_INTERFACE, part_path, + DBUS_PROPERTIES_INTERFACE, NULL, &error); + if (error == NULL) { + v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdLabel"); + if (v) { + str = g_variant_get_string(v, NULL); + partition->label = STRDUP_IF_NOT_EMPTY(str); + g_variant_unref(v); + } + v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdType"); + if (v) { + str = g_variant_dup_string(v, NULL); + partition->type = STRDUP_IF_NOT_EMPTY(str); + g_variant_unref(v); + } + v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "IdVersion"); + if (v) { + str = g_variant_dup_string(v, NULL); + partition->version = STRDUP_IF_NOT_EMPTY(str); + g_variant_unref(v); + } + v = get_dbus_property(proxy, UDISKS2_BLOCK_INTERFACE, "Size"); + if (v) { + partition->size = g_variant_get_uint64(v); + g_variant_unref(v); + } + } + else{ + g_error_free(error); + } + + g_object_unref(proxy); + return partition; +} + +gpointer get_udisks2_temp(const char *blockdev, GDBusProxy *block, + GDBusProxy *drive, const char *drivepath){ + GVariant *v; + gboolean smart_enabled = FALSE; + udiskt* disk_temp = NULL; + + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartEnabled"); + if (v) { + smart_enabled = g_variant_get_boolean(v); + g_variant_unref(v); + } + + if (!smart_enabled) { + return NULL; + } + + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartTemperature"); + if (v) { + disk_temp = udiskt_new(); + disk_temp->temperature = (gint32) (g_variant_get_double(v) - 273.15); + g_variant_unref(v); + } + + if (!disk_temp) { + return NULL; + } + + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Model"); + if (v) { + disk_temp->drive = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + + return disk_temp; +} + +gchar* get_udisks2_smart_attributes(udiskd* dsk, const char *drivepath){ + GDBusProxy *proxy; + GVariant *options, *v, *v2; + GVariantIter *iter; + GError *error = NULL; + const char* aidenf; + guint8 aid; + gint32 avalue, aworst, athreshold, pretty_unit; + gint64 pretty; + udisksa *lastp = NULL, *p; + + proxy = g_dbus_proxy_new_sync(udisks2_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, + UDISKS2_INTERFACE, drivepath, + UDISKS2_DRIVE_ATA_INTERFACE, NULL, &error); + + options = g_variant_new_parsed("@a{sv} { %s: }", + "auth.no_user_interaction"); + if (error != NULL){ + g_error_free (error); + return NULL; + } + + v = g_dbus_proxy_call_sync(proxy, "SmartGetAttributes", + g_variant_new_tuple(&options, 1), + G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); + g_object_unref(proxy); + + if (error != NULL){ + g_error_free (error); + g_object_unref(proxy); + return NULL; + } + + v2 = g_variant_get_child_value(v, 0); + iter = g_variant_iter_new(v2); + + // id(y), identifier(s), flags(q), value(i), worst(i), threshold(i), + // pretty(x), pretty_unit(i), expansion(a{sv}) + // pretty_unit = 0 (unknown), 1 (dimensionless), 2 (milliseconds), 3 (sectors), 4 (millikelvin). + while (g_variant_iter_loop (iter, "(ysqiiixia{sv})", &aid, &aidenf, NULL, &avalue, + &aworst, &athreshold, &pretty, &pretty_unit, NULL)){ + p = udisksa_new(); + p->id = aid; + p->identifier = g_strdup(aidenf); + p->value = avalue; + p->worst = aworst; + p->threshold = athreshold; + switch (pretty_unit){ + case 1: + p->interpreted_unit = UDSK_INTPVAL_DIMENSIONLESS; + p->interpreted = pretty; + break; + case 2: + if (pretty > 1000*60*60){ // > 1h + p->interpreted_unit = UDSK_INTPVAL_HOURS; + p->interpreted = pretty / (1000*60*60); + } + else{ + p->interpreted_unit = UDSK_INTPVAL_MILISECONDS; + p->interpreted = pretty; + } + break; + case 3: + p->interpreted_unit = UDSK_INTPVAL_SECTORS; + p->interpreted = pretty; + break; + case 4: + p->interpreted_unit = UDSK_INTPVAL_CELSIUS; + p->interpreted = (pretty - 273150) / 1000; //mK to °C + break; + default: + p->interpreted_unit = UDSK_INTPVAL_SKIP; + p->interpreted = -1; + break; + } + p->next = NULL; + + if (lastp == NULL) + dsk->smart_attributes = p; + else + lastp->next = p; + + lastp = p; + } + g_variant_iter_free (iter); + g_variant_unref(v2); + g_variant_unref(v); + + return NULL; +} + +gpointer get_udisks2_drive_info(const char *blockdev, GDBusProxy *block, + GDBusProxy *drive, const char *drivepath) { + GVariant *v; + GVariantIter *iter; + const gchar *str, *part; + udiskd *u = NULL; + udiskp **p = NULL; + gsize n, i; + u = udiskd_new(); + u->block_dev = g_strdup(blockdev); + + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Model"); + if (v){ + u->model = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Vendor"); + if (v){ + u->vendor = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Revision"); + if (v){ + u->revision = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Serial"); + if (v){ + u->serial = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "WWN"); + if (v){ + str = g_variant_get_string(v, NULL); + if (g_str_has_prefix(str, "0x")) { + u->wwid = g_strdup_printf("nna.%s", str+2); + } + else if (g_str_has_prefix(str, "nna.") || g_str_has_prefix(str, "eui.")) { + u->wwid = g_strdup(str); + } + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "ConnectionBus"); + if (v){ + u->connection_bus = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "RotationRate"); + if (v){ + u->rotation_rate = g_variant_get_int32(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Size"); + if (v){ + u->size = g_variant_get_uint64(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Media"); + if (v){ + str = g_variant_get_string(v, NULL); + if (strcmp(str, "") != 0) { + u->media = g_strdup(str); + } + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "MediaCompatibility"); + if (v){ + g_variant_get(v, "as", &iter); + n = g_variant_iter_n_children(iter); + u->media_compatibility = g_malloc0_n(n + 1, sizeof(gchar*)); + + i = 0; + while (g_variant_iter_loop (iter, "s", &str) && i < n){ + u->media_compatibility[i] = g_strdup(str); + i++; + } + + g_variant_iter_free (iter); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Ejectable"); + if (v){ + u->ejectable = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "Removable"); + if (v){ + u->removable = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "PmSupported"); + if (v){ + u->pm_supported = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "ApmSupported"); + if (v){ + u->apm_supported = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "AamSupported"); + if (v){ + u->aam_supported = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartSupported"); + if (v){ + u->smart_supported = g_variant_get_boolean(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartEnabled"); + if (v){ + u->smart_enabled = g_variant_get_boolean(v); + g_variant_unref(v); + } + if (u->smart_enabled){ + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartPowerOnSeconds"); + if (v){ + u->smart_poweron = g_variant_get_uint64(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartNumBadSectors"); + if (v){ + u->smart_bad_sectors = g_variant_get_int64(v); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartTemperature"); + if (v){ + u->smart_temperature = (gint) (g_variant_get_double(v) - 273.15); + g_variant_unref(v); + } + v = get_dbus_property(drive, UDISKS2_DRIVE_ATA_INTERFACE, "SmartFailing"); + if (v){ + u->smart_failing = g_variant_get_boolean(v); + g_variant_unref(v); + } + get_udisks2_smart_attributes(u, drivepath); + } + + v = get_dbus_property(block, UDISKS2_PART_TABLE_INTERFACE, "Type"); + if (v){ + u->partition_table = g_variant_dup_string(v, NULL); + g_variant_unref(v); + } + // 'Partitions' property is available in udisks2 version 2.7.2 or newer + v = get_dbus_property(block, UDISKS2_PART_TABLE_INTERFACE, "Partitions"); + if (v){ + g_variant_get(v, "ao", &iter); + + p = &(u->partitions); + while (g_variant_iter_loop (iter, "o", &str)) { + *p = get_udisks2_partition_info(str); + if (*p != NULL){ + p = &((*p)->next); + } + } + + g_variant_iter_free (iter); + g_variant_unref(v); + } + + return u; +} + +GSList* get_udisks2_temps(void){ + return udisks2_drives_func_caller(udisks2_conn, get_udisks2_temp); +} + +GSList* get_udisks2_all_drives_info(void){ + return udisks2_drives_func_caller(udisks2_conn, get_udisks2_drive_info); +} + +void udisks2_init(){ + if (udisks2_conn == NULL){ + udisks2_conn = get_udisks2_connection(); + } +} + +void udisks2_shutdown(){ + if (udisks2_conn != NULL){ + g_object_unref(udisks2_conn); + udisks2_conn = NULL; + } +} diff --git a/hardinfo2/usb_util.c b/hardinfo2/usb_util.c new file mode 100644 index 00000000..6f9f9ef8 --- /dev/null +++ b/hardinfo2/usb_util.c @@ -0,0 +1,553 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2017 L. A. F. Pereira + * This file + * Copyright (C) 2017 Burt P. + * Copyright (C) 2019 Ondrej Čerman + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "usb_util.h" +#include "util_ids.h" + +#define SYSFS_DIR_USB_DEVICES "/sys/bus/usb/devices" + +gchar *usb_ids_file = NULL; + +usbi *usbi_new() { + return g_new0(usbi, 1); +} + +void usbi_free(usbi *s) { + if (s) { + g_free(s->if_label); + g_free(s->if_class_str); + g_free(s->if_subclass_str); + g_free(s->if_protocol_str); + g_free(s->driver); + g_free(s); + } +} + +void usbi_list_free(usbi *s) { + usbi *n; + while(s != NULL) { + n = s->next; + usbi_free(s); + s = n; + } +} + +usbd *usbd_new() { + return g_new0(usbd, 1); +} + +void usbd_free(usbd *s) { + if (s) { + usbi_list_free(s->if_list); + vendor_list_free(s->vendors); + g_free(s->vendor); + g_free(s->product); + g_free(s->manufacturer); + g_free(s->device); + g_free(s->usb_version); + g_free(s->device_version); + g_free(s->serial); + g_free(s->dev_class_str); + g_free(s->dev_subclass_str); + g_free(s->dev_protocol_str); + g_free(s); + } +} + +void usbd_list_free(usbd *s) { + usbd *n; + while(s != NULL) { + n = s->next; + usbd_free(s); + s = n; + } +} + +/* returns number of items after append */ +static int usbd_list_append(usbd *l, usbd *n) { + int c = 0; + while(l != NULL) { + c++; + if (l->next == NULL) { + if (n != NULL) { + l->next = n; + c++; + } + break; + } + l = l->next; + } + return c; +} + +/* returns new top of the list */ +static usbd *usbd_list_append_sorted(usbd *l, usbd *n) { + usbd *b = NULL; + usbd *t = l; + + if (n == NULL) + return l; + + while(l != NULL) { + if ((n->bus > l->bus) || + ((n->bus == l->bus) && (n->dev >= l->dev))) { + if (l->next == NULL) { + l->next = n; + break; + } + b = l; + l = l->next; + } + else { + if (b == NULL) { + t = n; + n->next = l; + } + else { + b->next = n; + n->next = l; + } + break; + } + } + + return t; +} + +gboolean usbd_append_interface(usbd *dev, usbi *new_if){ + usbi *curr_if; + if (dev->if_list == NULL){ + dev->if_list = new_if; + return TRUE; + } + + if (dev->if_list->if_number == new_if->if_number) + return FALSE; + + curr_if = dev->if_list; + while(curr_if->next != NULL) { + curr_if = curr_if->next; + if (curr_if->if_number == new_if->if_number) + return FALSE; + } + curr_if->next = new_if; + return TRUE; +} + +int usbd_list_count(usbd *s) { + return usbd_list_append(s, NULL); +} + +static char *lsusb_line_value(char *line, const char *prefix) { + if (g_str_has_prefix(line, prefix)) { + line += strlen(prefix) + 1; + return g_strstrip(line); + } else + return NULL; +} + +static gboolean usb_get_device_lsusb(int bus, int dev, usbd *s) { + gboolean spawned; + gchar *out, *err, *p, *l, *t, *next_nl; + gchar *lsusb_cmd = g_strdup_printf("lsusb -s %d:%d -v", bus, dev); + usbi *curr_if = NULL; // do not free + + s->bus = bus; + s->dev = dev; + + spawned = hardinfo_spawn_command_line_sync(lsusb_cmd, + &out, &err, NULL, NULL); + g_free(lsusb_cmd); + if (spawned) { + if (strstr(err, "information will be missing")) { + s->user_scan = TRUE; + } + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + + // device info + if (l = lsusb_line_value(p, "idVendor")) { + s->vendor_id = strtol(l, NULL, 0); + if (t = strchr(l, ' ')) + s->vendor = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "idProduct")) { + s->product_id = strtol(l, NULL, 0); + if (t = strchr(l, ' ')) + s->product = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "MaxPower")) { + s->max_curr_ma = atoi(l); + } else if (l = lsusb_line_value(p, "bcdUSB")) { + s->usb_version = g_strdup(l); + } else if (l = lsusb_line_value(p, "bcdDevice")) { + s->device_version = g_strdup(l); + } else if (l = lsusb_line_value(p, "bDeviceClass")) { + s->dev_class = atoi(l); + if (t = strchr(l, ' ')) + s->dev_class_str = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "bDeviceSubClass")) { + s->dev_subclass = atoi(l); + if (t = strchr(l, ' ')) + s->dev_subclass_str = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "bDeviceProtocol")) { + s->dev_protocol = atoi(l); + if (t = strchr(l, ' ')) + s->dev_protocol_str = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "iManufacturer")) { + if (t = strchr(l, ' ')) + s->manufacturer = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "iProduct")) { + if (t = strchr(l, ' ')) + s->device = g_strdup(t + 1); + } else if (l = lsusb_line_value(p, "iSerial")) { + if (t = strchr(l, ' ')) + s->serial = g_strdup(t + 1); + + // interface info + } else if (l = lsusb_line_value(p, "bInterfaceNumber")) { + curr_if = usbi_new(); + curr_if->if_number = atoi(l); + + // This may parse same interface multiple times when there + // are multiple Configuration descriptors per device + // As a workaround usbd_append_interface appends interface + // with same if_number only once + if (!usbd_append_interface(s, curr_if)){ + usbi_free(curr_if); + curr_if = NULL; + } + } else if (l = lsusb_line_value(p, "bInterfaceClass")) { + if (curr_if != NULL){ + curr_if->if_class = atoi(l); + if (t = strchr(l, ' ')) + curr_if->if_class_str = g_strdup(t + 1); + } + } else if (l = lsusb_line_value(p, "bInterfaceSubClass")) { + if (curr_if != NULL){ + curr_if->if_subclass = atoi(l); + if (t = strchr(l, ' ')) + curr_if->if_subclass_str = g_strdup(t + 1); + } + } else if (l = lsusb_line_value(p, "bInterfaceProtocol")) { + if (curr_if != NULL){ + curr_if->if_protocol = atoi(l); + if (t = strchr(l, ' ')) + curr_if->if_protocol_str = g_strdup(t + 1); + } + } else if (l = lsusb_line_value(p, "iInterface")) { + if (curr_if != NULL){ + if (t = strchr(l, ' ')) + curr_if->if_label = g_strdup(t + 1); + } + } + + p = next_nl + 1; + } + g_free(out); + g_free(err); + return TRUE; + } + return FALSE; +} + +static gboolean usb_get_interface_sysfs(int conf, int number, + const char* devpath, usbi *intf){ + gchar *ifpath, *drvpath, *tmp; + ids_query_result result = {}; + + ifpath = g_strdup_printf("%s:%d.%d", devpath, conf, number); + if (!g_file_test(ifpath, G_FILE_TEST_EXISTS)){ + return FALSE; + } + + tmp = g_strdup_printf("%s/driver", ifpath); + drvpath = g_file_read_link(tmp, NULL); + g_free(tmp); + if (drvpath){ + intf->driver = g_path_get_basename(drvpath); + g_free(drvpath); + } + else{ + intf->driver = g_strdup(_("(None)")); + } + + intf->if_number = number; + intf->if_class = h_sysfs_read_hex(ifpath, "bInterfaceClass"); + intf->if_subclass = h_sysfs_read_hex(ifpath, "bInterfaceSubClass"); + intf->if_protocol = h_sysfs_read_hex(ifpath, "bInterfaceProtocol"); + + if (intf->if_label == NULL) + intf->if_label = h_sysfs_read_string(ifpath, "interface"); + + if (intf->if_class_str == NULL && intf->if_subclass_str == NULL + && intf->if_protocol_str == NULL) { + tmp = g_strdup_printf("C %02x/%02x/%02x", intf->if_class, + intf->if_subclass, intf->if_protocol); + scan_ids_file(usb_ids_file, tmp, &result, -1); + if (result.results[0]) + intf->if_class_str = g_strdup(result.results[0]); + if (result.results[1]) + intf->if_subclass_str = g_strdup(result.results[1]); + if (result.results[2]) + intf->if_protocol_str = g_strdup(result.results[2]); + g_free(tmp); + } + + g_free(ifpath); + return TRUE; +} + +static void find_usb_ids_file() { + if (usb_ids_file) return; + char *file_search_order[] = { + g_build_filename(g_get_user_config_dir(), "hardinfo", "usb.ids", NULL), + g_build_filename(params.path_data, "usb.ids", NULL), + NULL + }; + int n; + for(n = 0; file_search_order[n]; n++) { + if (!usb_ids_file && !access(file_search_order[n], R_OK)) + usb_ids_file = file_search_order[n]; + else + g_free(file_search_order[n]); + } +} + +void usb_lookup_ids_vendor_product_str(gint vendor_id, gint product_id, + gchar **vendor_str, gchar **product_str) { + ids_query_result result = {}; + gchar *qpath; + + if (!usb_ids_file) + find_usb_ids_file(); + if (!usb_ids_file) + return; + + qpath = g_strdup_printf("%04x/%04x", vendor_id, product_id); + scan_ids_file(usb_ids_file, qpath, &result, -1); + if (result.results[0]) + *vendor_str = g_strdup(result.results[0]); + if (result.results[1]) + *product_str = g_strdup(result.results[1]); + g_free(qpath); +} + +static gboolean usb_get_device_sysfs(int bus, int dev, const char* sysfspath, usbd *s) { + usbi *intf; + gboolean ok; + int i, if_count = 0, conf = 0, ver; + ids_query_result result = {}; + gchar *qpath; + + if (sysfspath == NULL) + return FALSE; + + if (!usb_ids_file) + find_usb_ids_file(); + + s->bus = bus; + s->dev = dev; + s->dev_class = h_sysfs_read_hex(sysfspath, "bDeviceClass"); + s->vendor_id = h_sysfs_read_hex(sysfspath, "idVendor"); + s->product_id = h_sysfs_read_hex(sysfspath, "idProduct"); + s->manufacturer = h_sysfs_read_string(sysfspath, "manufacturer"); + s->device = h_sysfs_read_string(sysfspath, "product"); + s->max_curr_ma = h_sysfs_read_int(sysfspath, "bMaxPower"); + s->dev_class = h_sysfs_read_hex(sysfspath, "bDeviceClass"); + s->dev_subclass = h_sysfs_read_hex(sysfspath, "bDeviceSubClass"); + s->dev_protocol = h_sysfs_read_hex(sysfspath, "bDeviceProtocol"); + s->speed_mbs = h_sysfs_read_int(sysfspath, "speed"); + + if (s->product == NULL && s->vendor == NULL) { + qpath = g_strdup_printf("%04x/%04x", s->vendor_id, s->product_id); + scan_ids_file(usb_ids_file, qpath, &result, -1); + if (result.results[0]) + s->vendor = g_strdup(result.results[0]); + if (result.results[1]) + s->product = g_strdup(result.results[1]); + g_free(qpath); + } + + if (s->dev_class_str == NULL && s->dev_subclass_str == NULL + && s->dev_protocol_str == NULL) { + qpath = g_strdup_printf("C %02x/%02x/%02x", s->dev_class, + s->dev_subclass, s->dev_protocol); + scan_ids_file(usb_ids_file, qpath, &result, -1); + if (result.results[0]) + s->dev_class_str = g_strdup(result.results[0]); + if (result.results[1]) + s->dev_subclass_str = g_strdup(result.results[1]); + if (result.results[2]) + s->dev_protocol_str = g_strdup(result.results[2]); + g_free(qpath); + } + + conf = h_sysfs_read_hex(sysfspath, "bConfigurationValue"); + + if (s->usb_version == NULL) + s->usb_version = h_sysfs_read_string(sysfspath, "version"); + + if (s->serial == NULL) + s->serial = h_sysfs_read_string(sysfspath, "serial"); + + if (s->device_version == NULL) { + ver = h_sysfs_read_int(sysfspath, "bcdDevice"); + if (ver > 0){ + s->device_version = g_strdup_printf("%d.%02d", ver/100, ver%100); + } + } + + if (s->if_list == NULL){ // create interfaces list + if_count = h_sysfs_read_int(sysfspath, "bNumInterfaces"); + for (i = 0; i <= if_count; i++){ + intf = usbi_new(); + ok = usb_get_interface_sysfs(conf, i, sysfspath, intf); + if (ok){ + if (!usbd_append_interface(s, intf)){ + usbi_free(intf); + } + } + else{ + usbi_free(intf); + } + } + } + else{ // improve existing list + intf = s->if_list; + while (intf){ + usb_get_interface_sysfs(conf, intf->if_number, sysfspath, intf); + intf = intf->next; + } + } + + return TRUE; +} + +usbd *usb_get_device(int bus, int dev, const gchar* sysfspath) { + usbd *s = usbd_new(); + int ok = 0; + if (s) { + /* try sysfs */ + ok = usb_get_device_sysfs(bus, dev, sysfspath, s); + if (!ok) { + /* try lsusb */ + ok = usb_get_device_lsusb(bus, dev, s); + } + if (!ok) { + usbd_free(s); + s = NULL; + } + } + return s; +} + +static usbd *usb_get_device_list_lsusb() { + gboolean spawned; + gchar *out, *err, *p, *next_nl; + usbd *head = NULL, *nd; + int bus, dev, vend, prod, ec; + + spawned = hardinfo_spawn_command_line_sync("lsusb", + &out, &err, NULL, NULL); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + ec = sscanf(p, "Bus %d Device %d: ID %x:%x", &bus, &dev, &vend, &prod); + if (ec == 4) { + nd = usb_get_device(bus, dev, NULL); + if (head == NULL) { + head = nd; + } else { + usbd_list_append(head, nd); + } + } + p = next_nl + 1; + } + g_free(out); + g_free(err); + } + return head; +} + +static usbd *usb_get_device_list_sysfs() { + GDir *dir; + GRegex *regex; + GMatchInfo *match_info; + usbd *head = NULL, *nd; + gchar *devpath; + const char *entry; + int bus, dev; + + regex = g_regex_new("^([0-9]+-[0-9]+([.][0-9]+)*)|(usb[0-9]+)$", 0, 0, NULL); + if (!regex){ + return NULL; + } + + dir = g_dir_open(SYSFS_DIR_USB_DEVICES, 0, NULL); + if (!dir){ + return NULL; + } + + while ((entry = g_dir_read_name(dir))) { + g_regex_match(regex, entry, 0, &match_info); + + if (g_match_info_matches(match_info)) { + devpath = g_build_filename(SYSFS_DIR_USB_DEVICES, entry, NULL); + bus = h_sysfs_read_int(devpath, "busnum"); + dev = h_sysfs_read_int(devpath, "devnum"); + + if (bus > 0 && dev > 0){ + nd = usb_get_device(bus, dev, devpath); + if (head == NULL) { + head = nd; + } else { + head = usbd_list_append_sorted(head, nd); + } + } + g_free(devpath); + } + g_match_info_free(match_info); + } + + g_dir_close(dir); + g_regex_unref(regex); + + return head; +} + +usbd *usb_get_device_list() { + usbd *lst, *l; + + lst = usb_get_device_list_sysfs(); + if (lst == NULL) + lst = usb_get_device_list_lsusb(); + + l = lst; + while(l) { + l->vendors = vendor_list_remove_duplicates_deep(vendors_match(l->vendor, l->manufacturer, NULL)); + l = l->next; + } + + return lst; +} diff --git a/hardinfo2/util.c b/hardinfo2/util.c new file mode 100644 index 00000000..38c7bce1 --- /dev/null +++ b/hardinfo2/util.c @@ -0,0 +1,1445 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2007 L. A. F. Pereira + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Functions h_strdup_cprintf and h_strconcat are based on GLib version 2.4.6 + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library 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; either + * version 2 of the License, or (at your option) any later version. + * + */ + +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#define KiB 1024 +#define MiB 1048576 +#define GiB 1073741824 +#define TiB 1099511627776 +#define PiB 1125899906842624 + +static GSList *modules_list = NULL; + +void sync_manager_clear_entries(void); + +gchar *find_program(gchar *program_name) +{ + int i; + char *temp; + static GHashTable *cache = NULL; + const char *path[] = { "/usr/local/bin", "/usr/local/sbin", + "/usr/bin", "/usr/sbin", + "/bin", "/sbin", + NULL }; + + /* we don't need to call stat() every time: cache the results */ + if (!cache) { + cache = g_hash_table_new(g_str_hash, g_str_equal); + } else if ((temp = g_hash_table_lookup(cache, program_name))) { + return g_strdup(temp); + } + + for (i = 0; path[i]; i++) { + temp = g_build_filename(path[i], program_name, NULL); + + if (g_file_test(temp, G_FILE_TEST_IS_EXECUTABLE)) { + g_hash_table_insert(cache, program_name, g_strdup(temp)); + return temp; + } + + g_free(temp); + } + + /* our search has failed; use GLib's search (which uses $PATH env var) */ + if ((temp = g_find_program_in_path(program_name))) { + g_hash_table_insert(cache, program_name, g_strdup(temp)); + return temp; + } + + return NULL; +} + +gchar *seconds_to_string(unsigned int seconds) +{ + unsigned int hours, minutes, days; + const gchar *days_fmt, *hours_fmt, *minutes_fmt, *seconds_fmt; + gchar *full_fmt, *ret = g_strdup(""); + + minutes = seconds / 60; + seconds %= 60; + hours = minutes / 60; + minutes %= 60; + days = hours / 24; + hours %= 24; + + days_fmt = ngettext("%d day", "%d days", days); + hours_fmt = ngettext("%d hour", "%d hours", hours); + minutes_fmt = ngettext("%d minute", "%d minutes", minutes); + seconds_fmt = ngettext("%d second", "%d seconds", seconds); + + if (days) { + full_fmt = g_strdup_printf("%s %s %s %s", days_fmt, hours_fmt, minutes_fmt, seconds_fmt); + ret = g_strdup_printf(full_fmt, days, hours, minutes, seconds); + } else if (hours) { + full_fmt = g_strdup_printf("%s %s %s", hours_fmt, minutes_fmt, seconds_fmt); + ret = g_strdup_printf(full_fmt, hours, minutes, seconds); + } else if (minutes) { + full_fmt = g_strdup_printf("%s %s", minutes_fmt, seconds_fmt); + ret = g_strdup_printf(full_fmt, minutes, seconds); + } else { + ret = g_strdup_printf(seconds_fmt, seconds); + } + g_free(full_fmt); + return ret; +} + +gchar *size_human_readable(gfloat size) +{ + if (size < KiB) + return g_strdup_printf(_("%.1f B"), size); + if (size < MiB) + return g_strdup_printf(_("%.1f KiB"), size / KiB); + if (size < GiB) + return g_strdup_printf(_("%.1f MiB"), size / MiB); + if (size < TiB) + return g_strdup_printf(_("%.1f GiB"), size / GiB); + if (size < PiB) + return g_strdup_printf(_("%.1f TiB"), size / TiB); + + return g_strdup_printf(_("%.1f PiB"), size / PiB); +} + +char *strend(gchar * str, gchar chr) +{ + if (!str) + return NULL; + + char *p; + if ((p = g_utf8_strchr(str, -1, chr))) + *p = 0; + + return str; +} + +void remove_quotes(gchar * str) +{ + if (!str) + return; + + while (*str == '"') + *(str++) = ' '; + + strend(str, '"'); +} + +void remove_linefeed(gchar * str) +{ + strend(str, '\n'); +} + +void widget_set_cursor(GtkWidget * widget, GdkCursorType cursor_type) +{ + GdkCursor *cursor; + GdkDisplay *display; + GdkWindow *gdk_window; + + display = gtk_widget_get_display(widget); + cursor = gdk_cursor_new_for_display(display, cursor_type); + gdk_window = gtk_widget_get_window(widget); + if (cursor) { + gdk_window_set_cursor(gdk_window, cursor); + gdk_display_flush(display); +#if GTK_CHECK_VERSION(3, 0, 0) + g_object_unref(cursor); +#else + gdk_cursor_unref(cursor); +#endif + } + + while (gtk_events_pending()) + gtk_main_iteration(); +} + +static gboolean __nonblock_cb(gpointer data) +{ + gtk_main_quit(); + return FALSE; +} + +void nonblock_sleep(guint msec) +{ + g_timeout_add(msec, (GSourceFunc) __nonblock_cb, NULL); + gtk_main(); +} + +static void __expand_cb(GtkWidget * widget, gpointer data) +{ + if (GTK_IS_EXPANDER(widget)) { + gtk_expander_set_expanded(GTK_EXPANDER(widget), TRUE); + } else if (GTK_IS_CONTAINER(widget)) { + gtk_container_foreach(GTK_CONTAINER(widget), + (GtkCallback) __expand_cb, NULL); + } +} + +void file_chooser_open_expander(GtkWidget * chooser) +{ + gtk_container_foreach(GTK_CONTAINER(chooser), + (GtkCallback) __expand_cb, NULL); +} + +void file_chooser_add_filters(GtkWidget * chooser, FileTypes * filters) +{ + GtkFileFilter *filter; + gint i; + + for (i = 0; filters[i].name; i++) { + filter = gtk_file_filter_new(); + gtk_file_filter_add_mime_type(filter, filters[i].mime_type); + gtk_file_filter_set_name(filter, filters[i].name); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); + } +} + +gchar *file_chooser_get_extension(GtkWidget * chooser, FileTypes * filters) +{ + GtkFileFilter *filter; + const gchar *filter_name; + gint i; + + filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(chooser)); + filter_name = gtk_file_filter_get_name(filter); + for (i = 0; filters[i].name; i++) { + if (g_str_equal(filter_name, filters[i].name)) { + return filters[i].extension; + } + } + + return NULL; +} + +gpointer file_types_get_data_by_name(FileTypes * filters, gchar * filename) +{ + gint i; + + for (i = 0; filters[i].name; i++) { + if (g_str_has_suffix(filename, filters[i].extension)) { + return filters[i].data; + } + } + + return NULL; +} + +gchar *file_chooser_build_filename(GtkWidget * chooser, gchar * extension) +{ + gchar *filename = + gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); + gchar *retval; + + if (g_str_has_suffix(filename, extension)) { + return filename; + } + + retval = g_strconcat(filename, extension, NULL); + g_free(filename); + + return retval; +} + +gboolean binreloc_init(gboolean try_hardcoded) +{ + GError *error = NULL; + gchar *tmp; + + DEBUG("initializing binreloc (hardcoded = %d)", try_hardcoded); + + /* If the runtime data directories we previously found, don't even try + to find them again. */ + if (params.path_data && params.path_lib) { + DEBUG("data and lib path already found."); + return TRUE; + } + + if (try_hardcoded || !gbr_init(&error)) { + /* We were asked to try hardcoded paths or BinReloc failed to initialize. */ + params.path_data = g_strdup(PREFIX); + params.path_lib = g_strdup(LIBPREFIX); + + if (error) { + g_error_free(error); + } + + DEBUG("%strying hardcoded paths.", + try_hardcoded ? "" : "binreloc init failed. "); + } else { + /* If we were able to initialize BinReloc, build the default data + and library paths. */ + DEBUG("done, trying to use binreloc paths."); + + tmp = gbr_find_data_dir(PREFIX); + params.path_data = g_build_filename(tmp, "hardinfo", NULL); + g_free(tmp); + + tmp = gbr_find_lib_dir(PREFIX); + params.path_lib = g_build_filename(tmp, "hardinfo", NULL); + g_free(tmp); + } + + DEBUG("searching for runtime data on these locations:"); + DEBUG(" lib: %s", params.path_lib); + DEBUG(" data: %s", params.path_data); + + /* Try to see if the uidefs.xml file isn't missing. This isn't the + definitive test, but it should do okay for most situations. */ + tmp = g_build_filename(params.path_data, "benchmark.data", NULL); + if (!g_file_test(tmp, G_FILE_TEST_EXISTS)) { + DEBUG("runtime data not found"); + + g_free(params.path_data); + g_free(params.path_lib); + g_free(tmp); + + params.path_data = params.path_lib = NULL; + + if (try_hardcoded) { + /* We tried the hardcoded paths, but still was unable to find the + runtime data. Give up. */ + DEBUG("giving up"); + return FALSE; + } else { + /* Even though BinReloc worked OK, the runtime data was not found. + Try the hardcoded paths. */ + DEBUG("trying to find elsewhere"); + return binreloc_init(TRUE); + } + } + g_free(tmp); + + DEBUG("runtime data found!"); + /* We found the runtime data; hope everything is fine */ + return TRUE; +} + +static void +log_handler(const gchar * log_domain, + GLogLevelFlags log_level, + const gchar * message, gpointer user_data) +{ + if (!params.gui_running) { + /* No GUI running: spit the message to the terminal */ + g_print("\n\n*** %s: %s\n\n", + (log_level & G_LOG_FLAG_FATAL) ? _("Error") : _("Warning"), + message); + } else { + /* Hooray! We have a GUI running! */ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new_with_markup(NULL, GTK_DIALOG_MODAL, + (log_level & + G_LOG_FLAG_FATAL) ? + GTK_MESSAGE_ERROR : + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CLOSE, + "%s\n\n%s", + (log_level & + G_LOG_FLAG_FATAL) ? + _("Fatal Error") : + _("Warning"), message); + + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + } +} + +void parameters_init(int *argc, char ***argv, ProgramParameters * param) +{ + static gboolean create_report = FALSE; + static gboolean force_all_details = FALSE; + static gboolean show_version = FALSE; + static gboolean list_modules = FALSE; + static gboolean autoload_deps = FALSE; + static gboolean run_xmlrpc_server = FALSE; + static gboolean skip_benchmarks = FALSE; + static gboolean quiet = FALSE; + static gchar *report_format = NULL; + static gchar *run_benchmark = NULL; + static gchar *result_format = NULL; + static gchar *bench_user_note = NULL; + static gchar **use_modules = NULL; + static gint max_bench_results = 10; + + static GOptionEntry options[] = { + { + .long_name = "quiet", + .short_name = 'q', + .arg = G_OPTION_ARG_NONE, + .arg_data = &quiet, + .description = N_("do not print status messages to standard output")}, + { + .long_name = "generate-report", + .short_name = 'r', + .arg = G_OPTION_ARG_NONE, + .arg_data = &create_report, + .description = N_("creates a report and prints to standard output")}, + { + .long_name = "report-format", + .short_name = 'f', + .arg = G_OPTION_ARG_STRING, + .arg_data = &report_format, + .description = N_("chooses a report format ([text], html)")}, + { + .long_name = "run-benchmark", + .short_name = 'b', + .arg = G_OPTION_ARG_STRING, + .arg_data = &run_benchmark, + .description = N_("run benchmark; requires benchmark.so to be loaded")}, + { + .long_name = "user-note", + .short_name = 'u', + .arg = G_OPTION_ARG_STRING, + .arg_data = &bench_user_note, + .description = N_("note attached to benchmark results")}, + { + .long_name = "result-format", + .short_name = 'g', + .arg = G_OPTION_ARG_STRING, + .arg_data = &result_format, + .description = N_("benchmark result format ([short], conf, shell)")}, + { + .long_name = "max-results", + .short_name = 'n', + .arg = G_OPTION_ARG_INT, + .arg_data = &max_bench_results, + .description = N_("maximum number of benchmark results to include (-1 for no limit, default is 10)")}, + { + .long_name = "list-modules", + .short_name = 'l', + .arg = G_OPTION_ARG_NONE, + .arg_data = &list_modules, + .description = N_("lists modules")}, + { + .long_name = "load-module", + .short_name = 'm', + .arg = G_OPTION_ARG_STRING_ARRAY, + .arg_data = &use_modules, + .description = N_("specify module to load")}, + { + .long_name = "autoload-deps", + .short_name = 'a', + .arg = G_OPTION_ARG_NONE, + .arg_data = &autoload_deps, + .description = N_("automatically load module dependencies")}, +#ifdef HAS_LIBSOUP + { + .long_name = "xmlrpc-server", + .short_name = 'x', + .arg = G_OPTION_ARG_NONE, + .arg_data = &run_xmlrpc_server, + .description = N_("run in XML-RPC server mode")}, +#endif /* HAS_LIBSOUP */ + { + .long_name = "version", + .short_name = 'v', + .arg = G_OPTION_ARG_NONE, + .arg_data = &show_version, + .description = N_("shows program version and quit")}, + { + .long_name = "skip-benchmarks", + .short_name = 's', + .arg = G_OPTION_ARG_NONE, + .arg_data = &skip_benchmarks, + .description = N_("do not run benchmarks")}, + { + .long_name = "very-verbose", + .short_name = 'w', /* like -vv */ + .arg = G_OPTION_ARG_NONE, + .arg_data = &force_all_details, + .description = N_("show all details")}, + {NULL} + }; + GOptionContext *ctx; + + ctx = g_option_context_new(_("- System Profiler and Benchmark tool")); + g_option_context_set_ignore_unknown_options(ctx, FALSE); + g_option_context_set_help_enabled(ctx, TRUE); + + g_option_context_add_main_entries(ctx, options, *(argv)[0]); + g_option_context_parse(ctx, argc, argv, NULL); + + g_option_context_free(ctx); + + if (*argc >= 2) { + g_print(_("Unrecognized arguments.\n" + "Try ``%s --help'' for more information.\n"), *(argv)[0]); + exit(1); + } + + param->create_report = create_report; + param->report_format = REPORT_FORMAT_TEXT; + param->show_version = show_version; + param->list_modules = list_modules; + param->use_modules = use_modules; + param->run_benchmark = run_benchmark; + param->result_format = result_format; + param->max_bench_results = max_bench_results; + param->autoload_deps = autoload_deps; + param->run_xmlrpc_server = run_xmlrpc_server; + param->skip_benchmarks = skip_benchmarks; + param->force_all_details = force_all_details; + param->quiet = quiet; + param->argv0 = *(argv)[0]; + + if (report_format) { + if (g_str_equal(report_format, "html")) + param->report_format = REPORT_FORMAT_HTML; + if (g_str_equal(report_format, "shell")) + param->report_format = REPORT_FORMAT_SHELL; + } + + /* clean user note */ + if (bench_user_note) { + char *p = NULL; + while(p = strchr(bench_user_note, ';')) { *p = ','; } + param->bench_user_note = + gg_key_file_parse_string_as_value(bench_user_note, '|'); + } + + /* html ok? + * gui: yes + * report html: yes + * report text: no + * anything else? */ + param->markup_ok = TRUE; + if (param->create_report && param->report_format != REPORT_FORMAT_HTML) + param->markup_ok = FALSE; + + // TODO: fmt_opts: FMT_OPT_ATERM, FMT_OPT_HTML, FMT_OPT_PANGO... + param->fmt_opts = FMT_OPT_NONE; + + gchar *confdir = g_build_filename(g_get_user_config_dir(), "hardinfo", NULL); + if (!g_file_test(confdir, G_FILE_TEST_EXISTS)) { + mkdir(confdir, 0744); + } + g_free(confdir); +} + +gboolean ui_init(int *argc, char ***argv) +{ + DEBUG("initializing gtk+ UI"); + + g_set_application_name("HardInfo"); + g_log_set_handler(NULL, + G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | + G_LOG_LEVEL_ERROR, log_handler, NULL); + + return gtk_init_check(argc, argv); +} + +/* Copyright: Jens Låås, SLU 2002 */ +gchar *strreplacechr(gchar * string, gchar * replace, gchar new_char) +{ + gchar *s; + for (s = string; *s; s++) + if (strchr(replace, *s)) + *s = new_char; + + return string; +} + +gchar *strreplace(gchar *string, gchar *replace, gchar *replacement) +{ + gchar **tmp, *ret; + + tmp = g_strsplit(string, replace, 0); + ret = g_strjoinv(replacement, tmp); + g_strfreev(tmp); + + return ret; +} + +static GHashTable *__module_methods = NULL; + +static void module_register_methods(ShellModule * module) +{ + const ShellModuleMethod *(*get_methods)(void); + gchar *method_name; + + if (__module_methods == NULL) { + __module_methods = g_hash_table_new(g_str_hash, g_str_equal); + } + + if (g_module_symbol + (module->dll, "hi_exported_methods", (gpointer)&get_methods)) { + const ShellModuleMethod *methods; + + for (methods = get_methods(); methods->name; methods++) { + ShellModuleMethod method = *methods; + gchar *name = g_path_get_basename(g_module_name(module->dll)); + gchar *simple_name = strreplace(name, "lib", ""); + + strend(simple_name, '.'); + + method_name = g_strdup_printf("%s::%s", simple_name, method.name); + g_hash_table_insert(__module_methods, method_name, + method.function); + g_free(name); + g_free(simple_name); + } + } + +} + +gchar *module_call_method(gchar * method) +{ + gchar *(*function) (void); + + if (__module_methods == NULL) { + return NULL; + } + + function = g_hash_table_lookup(__module_methods, method); + return function ? g_strdup(function()) : NULL; +} + +/* FIXME: varargs? */ +gchar *module_call_method_param(gchar * method, gchar * parameter) +{ + gchar *(*function) (gchar *param); + + if (__module_methods == NULL) { + return NULL; + } + + function = g_hash_table_lookup(__module_methods, method); + return function ? g_strdup(function(parameter)) : NULL; +} + +static gboolean remove_module_methods(gpointer key, gpointer value, gpointer data) +{ + return g_str_has_prefix(key, data); +} + +static void module_unload(ShellModule * module) +{ + GSList *entry; + + if (module->dll) { + gchar *name; + + if (module->deinit) { + DEBUG("cleaning up module \"%s\"", module->name); + module->deinit(); + } else { + DEBUG("module \"%s\" does not need cleanup", module->name); + } + + name = g_path_get_basename(g_module_name(module->dll)); + g_hash_table_foreach_remove(__module_methods, remove_module_methods, name); + + g_module_close(module->dll); + g_free(name); + } + + g_free(module->name); + g_object_unref(module->icon); + + for (entry = module->entries; entry; entry = entry->next) { + ShellModuleEntry *e = (ShellModuleEntry *)entry->data; + + g_source_remove_by_user_data(e); + g_free(e); + } + + g_slist_free(module->entries); + g_free(module); +} + + +void module_unload_all(void) +{ + Shell *shell; + GSList *module, *merge_id; + + shell = shell_get_main_shell(); + + sync_manager_clear_entries(); + shell_clear_timeouts(shell); + shell_clear_tree_models(shell); + shell_clear_field_updates(); + shell_set_title(shell, NULL); + + for (module = shell->tree->modules; module; module = module->next) { + module_unload((ShellModule *)module->data); + } + + for (merge_id = shell->merge_ids; merge_id; merge_id = merge_id->next) { + gtk_ui_manager_remove_ui(shell->ui_manager, + GPOINTER_TO_INT(merge_id->data)); + } + g_slist_free(shell->tree->modules); + g_slist_free(shell->merge_ids); + + shell->merge_ids = NULL; + shell->tree->modules = NULL; + shell->selected = NULL; +} + +static ShellModule *module_load(gchar * filename) +{ + ShellModule *module; + gchar *tmp; + + module = g_new0(ShellModule, 1); + + if (params.gui_running) { + gchar *tmpicon, *dot, *simple_name; + + tmpicon = g_strdup(filename); + dot = g_strrstr(tmpicon, "." G_MODULE_SUFFIX); + + *dot = '\0'; + + simple_name = strreplace(tmpicon, "lib", ""); + + tmp = g_strdup_printf("%s.png", simple_name); + module->icon = icon_cache_get_pixbuf(tmp); + + g_free(tmp); + g_free(tmpicon); + g_free(simple_name); + } + + tmp = g_build_filename(params.path_lib, "modules", filename, NULL); + module->dll = g_module_open(tmp, G_MODULE_BIND_LAZY); + DEBUG("gmodule resource for ``%s'' is %p (%s)", tmp, module->dll, g_module_error()); + g_free(tmp); + + if (module->dll) { + void (*init) (void); + ModuleEntry *(*get_module_entries) (void); + gint(*weight_func) (void); + gchar *(*name_func) (void); + ModuleEntry *entries; + gint i = 0; + + if (!g_module_symbol(module->dll, "hi_module_get_entries", (gpointer) & get_module_entries) || + !g_module_symbol(module->dll, "hi_module_get_name", (gpointer) & name_func)) { + DEBUG("cannot find needed symbols; is ``%s'' a real module?", filename); + goto failed; + } + + if (g_module_symbol(module->dll, "hi_module_init", (gpointer) & init)) { + DEBUG("initializing module ``%s''", filename); + init(); + } + + g_module_symbol(module->dll, "hi_module_get_weight", + (gpointer) & weight_func); + + module->weight = weight_func ? weight_func() : 0; + module->name = name_func(); + + g_module_symbol(module->dll, "hi_module_get_about", + (gpointer) & (module->aboutfunc)); + g_module_symbol(module->dll, "hi_module_deinit", + (gpointer) & (module->deinit)); + g_module_symbol(module->dll, "hi_module_get_summary", + (gpointer) & (module->summaryfunc)); + + entries = get_module_entries(); + while (entries[i].name) { + if (*entries[i].name == '#') { i++; continue; } /* skip */ + + ShellModuleEntry *entry = g_new0(ShellModuleEntry, 1); + + if (params.gui_running) { + entry->icon = icon_cache_get_pixbuf(entries[i].icon); + } + entry->icon_file = entries[i].icon; + + g_module_symbol(module->dll, "hi_more_info", + (gpointer) & (entry->morefunc)); + g_module_symbol(module->dll, "hi_get_field", + (gpointer) & (entry->fieldfunc)); + g_module_symbol(module->dll, "hi_note_func", + (gpointer) & (entry->notefunc)); + + entry->name = _(entries[i].name); //gettext unname N_() in computer.c line 67 etc... + entry->scan_func = entries[i].scan_callback; + entry->func = entries[i].callback; + entry->number = i; + entry->flags = entries[i].flags; + + module->entries = g_slist_append(module->entries, entry); + + i++; + } + + DEBUG("registering methods for module ``%s''", filename); + module_register_methods(module); + } else { + DEBUG("cannot g_module_open(``%s''). permission problem?", filename); + failed: + DEBUG("loading module %s failed: %s", filename, g_module_error()); + + g_free(module->name); + g_free(module); + module = NULL; + } + + return module; +} + +static gboolean module_in_module_list(gchar * module, gchar ** module_list) +{ + int i = 0; + + if (!module_list) + return TRUE; + + for (; module_list[i]; i++) { + if (g_str_equal(module_list[i], module)) + return TRUE; + } + + return FALSE; +} + +static gint module_cmp(gconstpointer m1, gconstpointer m2) +{ + ShellModule *a = (ShellModule *) m1; + ShellModule *b = (ShellModule *) m2; + + return a->weight - b->weight; +} + +#if 0 +static void module_entry_free(gpointer data, gpointer user_data) +{ + ShellModuleEntry *entry = (ShellModuleEntry *) data; + + if (entry) { + g_free(entry->name); + g_object_unref(entry->icon); + + g_free(entry); + } +} +#endif + +const ModuleAbout *module_get_about(ShellModule * module) +{ + if (module->aboutfunc) { + return module->aboutfunc(); + } + + return NULL; +} + +static GSList *modules_check_deps(GSList * modules) +{ + GSList *mm; + ShellModule *module; + + for (mm = modules; mm; mm = mm->next) { + gchar **(*get_deps) (void); + gchar **deps; + gint i; + + module = (ShellModule *) mm->data; + + if (g_module_symbol(module->dll, "hi_module_get_dependencies", + (gpointer) & get_deps)) { + for (i = 0, deps = get_deps(); deps[i]; i++) { + GSList *l; + ShellModule *m; + gboolean found = FALSE; + + for (l = modules; l && !found; l = l->next) { + m = (ShellModule *) l->data; + gchar *name = g_path_get_basename(g_module_name(m->dll)); + + found = g_str_equal(name, deps[i]); + g_free(name); + } + + if (!found) { + if (params.autoload_deps) { + ShellModule *mod = module_load(deps[i]); + + if (mod) + modules = g_slist_append(modules, mod); + modules = modules_check_deps(modules); /* re-check dependencies */ + + break; + } + + if (params.gui_running) { + GtkWidget *dialog; + + dialog = gtk_message_dialog_new(NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + _("Module \"%s\" depends on module \"%s\", load it?"), + module->name, + deps[i]); + gtk_dialog_add_buttons(GTK_DIALOG(dialog), + "_No", + GTK_RESPONSE_REJECT, + "_Open", + GTK_RESPONSE_ACCEPT, NULL); + + if (gtk_dialog_run(GTK_DIALOG(dialog)) == + GTK_RESPONSE_ACCEPT) { + ShellModule *mod = module_load(deps[i]); + + if (mod) + modules = g_slist_prepend(modules, mod); + modules = modules_check_deps(modules); /* re-check dependencies */ + } else { + g_error("HardInfo cannot run without loading the additional module."); + exit(1); + } + + gtk_widget_destroy(dialog); + } else { + g_error(_("Module \"%s\" depends on module \"%s\"."), + module->name, deps[i]); + } + } + } + } + } + + return modules; +} + + +GSList *modules_get_list() +{ + return modules_list; +} + +static GSList *modules_load(gchar ** module_list) +{ + GDir *dir; + GSList *modules = NULL; + ShellModule *module; + gchar *filename; + + filename = g_build_filename(params.path_lib, "modules", NULL); + dir = g_dir_open(filename, 0, NULL); + g_free(filename); + + if (dir) { + while ((filename = (gchar *) g_dir_read_name(dir))) { + if (g_strrstr(filename, "." G_MODULE_SUFFIX) && + module_in_module_list(filename, module_list) && + ((module = module_load(filename)))) { + modules = g_slist_prepend(modules, module); + } + } + + g_dir_close(dir); + } + + modules = modules_check_deps(modules); + + if (g_slist_length(modules) == 0) { + if (params.use_modules == NULL) { + g_error + (_("No module could be loaded. Check permissions on \"%s\" and try again."), + params.path_lib); + } else { + g_error + (_("No module could be loaded. Please use hardinfo -l to list all avai" + "lable modules and try again with a valid module list.")); + + } + } + + modules_list = g_slist_sort(modules, module_cmp); + return modules_list; +} + +GSList *modules_load_selected(void) +{ + return modules_load(params.use_modules); +} + +GSList *modules_load_all(void) +{ + return modules_load(NULL); +} + +gint tree_view_get_visible_height(GtkTreeView * tv) +{ + GtkTreePath *path; + GdkRectangle rect; + GtkTreeIter iter; + GtkTreeModel *model = gtk_tree_view_get_model(tv); + gint nrows = 1; + + path = gtk_tree_path_new_first(); + gtk_tree_view_get_cell_area(GTK_TREE_VIEW(tv), path, NULL, &rect); + + /* FIXME: isn't there any easier way to tell the number of rows? */ + gtk_tree_model_get_iter_first(model, &iter); + do { + nrows++; + } while (gtk_tree_model_iter_next(model, &iter)); + + gtk_tree_path_free(path); + + return nrows * rect.height; +} + +void module_entry_scan_all_except(ModuleEntry * entries, gint except_entry) +{ + ModuleEntry entry; + gint i = 0; + void (*scan_callback) (gboolean reload); + gchar *text; + + shell_view_set_enabled(FALSE); + + for (entry = entries[0]; entry.name; entry = entries[++i]) { + if (i == except_entry) + continue; + + text = g_strdup_printf(_("Scanning: %s..."), _(entry.name)); + shell_status_update(text); + g_free(text); + + if ((scan_callback = entry.scan_callback)) { + scan_callback(FALSE); + } + } + + shell_view_set_enabled(TRUE); + shell_status_update(_("Done.")); +} + +void module_entry_scan_all(ModuleEntry * entries) +{ + module_entry_scan_all_except(entries, -1); +} + +void module_entry_reload(ShellModuleEntry * module_entry) +{ + + if (module_entry->scan_func) { + module_entry->scan_func(TRUE); + } +} + +void module_entry_scan(ShellModuleEntry * module_entry) +{ + if (module_entry->scan_func) { + module_entry->scan_func(FALSE); + } +} + +gchar *module_entry_get_field(ShellModuleEntry * module_entry, gchar * field) +{ + if (module_entry->fieldfunc) { + return module_entry->fieldfunc(field); + } + + return NULL; +} + +gchar *module_entry_function(ShellModuleEntry * module_entry) +{ + if (module_entry->func) { + return module_entry->func(); + } + + return NULL; +} + +gchar *module_entry_get_moreinfo(ShellModuleEntry * module_entry, gchar * field) +{ + if (module_entry->morefunc) { + return module_entry->morefunc(field); + } + + return NULL; +} + +const gchar *module_entry_get_note(ShellModuleEntry * module_entry) +{ + if (module_entry->notefunc) { + return module_entry->notefunc(module_entry->number); + } + + return NULL; +} + +gchar *h_strdup_cprintf(const gchar * format, gchar * source, ...) +{ + gchar *buffer, *retn; + va_list args; + + va_start(args, source); + buffer = g_strdup_vprintf(format, args); + va_end(args); + + if (source) { + retn = g_strconcat(source, buffer, NULL); + g_free(buffer); + g_free(source); + } else { + retn = buffer; + } + + return retn; +} + +gchar *h_strconcat(gchar * string1, ...) +{ + gsize l; + va_list args; + gchar *s; + gchar *concat; + gchar *ptr; + + if (!string1) + return NULL; + + l = 1 + strlen(string1); + va_start(args, string1); + s = va_arg(args, gchar *); + while (s) { + l += strlen(s); + s = va_arg(args, gchar *); + } + va_end(args); + + concat = g_new(gchar, l); + ptr = concat; + + ptr = g_stpcpy(ptr, string1); + va_start(args, string1); + s = va_arg(args, gchar *); + while (s) { + ptr = g_stpcpy(ptr, s); + s = va_arg(args, gchar *); + } + va_end(args); + + g_free(string1); + + return concat; +} + +static gboolean h_hash_table_remove_all_true(gpointer key, gpointer data, gpointer user_data) +{ + return TRUE; +} + +void +h_hash_table_remove_all(GHashTable *hash_table) +{ + g_hash_table_foreach_remove(hash_table, + h_hash_table_remove_all_true, + NULL); +} + +gfloat +h_sysfs_read_float(const gchar *endpoint, const gchar *entry) +{ + gchar *tmp, *buffer; + gfloat return_value = 0.0f; + + tmp = g_build_filename(endpoint, entry, NULL); + if (g_file_get_contents(tmp, &buffer, NULL, NULL)) + return_value = atof(buffer); + + g_free(tmp); + g_free(buffer); + + return return_value; +} + +gint +h_sysfs_read_int(const gchar *endpoint, const gchar *entry) +{ + gchar *tmp, *buffer; + gint return_value = 0; + + tmp = g_build_filename(endpoint, entry, NULL); + if (g_file_get_contents(tmp, &buffer, NULL, NULL)) + return_value = atoi(buffer); + + g_free(tmp); + g_free(buffer); + + return return_value; +} + +gint +h_sysfs_read_hex(const gchar *endpoint, const gchar *entry) +{ + gchar *tmp, *buffer; + gint return_value = 0; + + tmp = g_build_filename(endpoint, entry, NULL); + if (g_file_get_contents(tmp, &buffer, NULL, NULL)) + return_value = (gint) strtoll(buffer, NULL, 16); + + g_free(tmp); + g_free(buffer); + + return return_value; +} + +gchar * +h_sysfs_read_string(const gchar *endpoint, const gchar *entry) +{ + gchar *tmp, *return_value; + + tmp = g_build_filename(endpoint, entry, NULL); + if (!g_file_get_contents(tmp, &return_value, NULL, NULL)) { + g_free(return_value); + + return_value = NULL; + } else { + return_value = g_strstrip(return_value); + } + + g_free(tmp); + + return return_value; +} + +static GHashTable *_moreinfo = NULL; + +void +moreinfo_init(void) +{ + if (G_UNLIKELY(_moreinfo)) { + DEBUG("moreinfo already initialized"); + return; + } + DEBUG("initializing moreinfo"); + _moreinfo = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); +} + +void +moreinfo_shutdown(void) +{ + if (G_UNLIKELY(!_moreinfo)) { + DEBUG("moreinfo not initialized"); + return; + } + DEBUG("shutting down moreinfo"); + g_hash_table_destroy(_moreinfo); + _moreinfo = NULL; +} + +void +moreinfo_add_with_prefix(gchar *prefix, gchar *key, gchar *value) +{ + if (G_UNLIKELY(!_moreinfo)) { + DEBUG("moreinfo not initialized"); + return; + } + + if (prefix) { + gchar *hashkey = g_strconcat(prefix, ":", key, NULL); + g_hash_table_insert(_moreinfo, hashkey, value); + return; + } + + g_hash_table_insert(_moreinfo, g_strdup(key), value); +} + +void +moreinfo_add(gchar *key, gchar *value) +{ + moreinfo_add_with_prefix(NULL, key, value); +} + +static gboolean +_moreinfo_del_cb(gpointer key, gpointer value, gpointer data) +{ + return g_str_has_prefix(key, data); +} + +void +moreinfo_del_with_prefix(gchar *prefix) +{ + if (G_UNLIKELY(!_moreinfo)) { + DEBUG("moreinfo not initialized"); + return; + } + + g_hash_table_foreach_remove(_moreinfo, _moreinfo_del_cb, prefix); +} + +void +moreinfo_clear(void) +{ + if (G_UNLIKELY(!_moreinfo)) { + DEBUG("moreinfo not initialized"); + return; + } + h_hash_table_remove_all(_moreinfo); +} + +gchar * +moreinfo_lookup_with_prefix(gchar *prefix, gchar *key) +{ + if (G_UNLIKELY(!_moreinfo)) { + DEBUG("moreinfo not initialized"); + return 0; + } + + if (prefix) { + gchar *lookup_key = g_strconcat(prefix, ":", key, NULL); + gchar *result = g_hash_table_lookup(_moreinfo, lookup_key); + g_free(lookup_key); + return result; + } + + return g_hash_table_lookup(_moreinfo, key); +} + +gchar * +moreinfo_lookup(gchar *key) +{ + return moreinfo_lookup_with_prefix(NULL, key); +} + +#if !GLIB_CHECK_VERSION(2,44,0) +gboolean g_strv_contains(const gchar * const * strv, const gchar *str) { + /* g_strv_contains() requires glib>2.44 + * fallback for older versions */ + gint i = 0; + while(strv[i] != NULL) { + if (g_strcmp0(strv[i], str) == 0) + return 1; + i++; + } + return 0; +} +#endif + +gchar *hardinfo_clean_grpname(const gchar *v, int replacing) { + gchar *clean, *p; + + p = clean = g_strdup(v); + while (*p != 0) { + switch(*p) { + case '[': + *p = '('; break; + case ']': + *p = ')'; break; + default: + break; + } + p++; + } + if (replacing) + g_free((gpointer)v); + return clean; +} + +/* Hardinfo labels that have # are truncated and/or hidden. + * Labels can't have $ because that is the delimiter in + * moreinfo. */ +gchar *hardinfo_clean_label(const gchar *v, int replacing) { + gchar *clean, *p; + + p = clean = g_strdup(v); + while (*p != 0) { + switch(*p) { + case '#': case '$': + *p = '_'; + break; + default: + break; + } + p++; + } + if (replacing) + g_free((gpointer)v); + return clean; +} + +/* hardinfo uses the values as {ht,x}ml, apparently */ +gchar *hardinfo_clean_value(const gchar *v, int replacing) { + gchar *clean, *tmp; + gchar **vl; + if (v == NULL) return NULL; + + vl = g_strsplit(v, "&", -1); + if (g_strv_length(vl) > 1) + clean = g_strjoinv("&", vl); + else + clean = g_strdup(v); + g_strfreev(vl); + + vl = g_strsplit(clean, "<", -1); + if (g_strv_length(vl) > 1) { + tmp = g_strjoinv("<", vl); + g_free(clean); + clean = tmp; + } + g_strfreev(vl); + + vl = g_strsplit(clean, ">", -1); + if (g_strv_length(vl) > 1) { + tmp = g_strjoinv(">", vl); + g_free(clean); + clean = tmp; + } + g_strfreev(vl); + + if (replacing) + g_free((gpointer)v); + return clean; +} + +gboolean hardinfo_spawn_command_line_sync(const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error) +{ + shell_status_pulse(); + return g_spawn_command_line_sync(command_line, standard_output, + standard_error, exit_status, error); +} diff --git a/hardinfo2/vendor.c b/hardinfo2/vendor.c new file mode 100644 index 00000000..cb9cc9ba --- /dev/null +++ b/hardinfo2/vendor.c @@ -0,0 +1,655 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2009 L. A. F. Pereira + * + * List of vendors based on GtkSysInfo (c) Pissens Sebastien. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#include "vendor.h" +#include "syncmanager.h" +#include "config.h" +#include "hardinfo.h" +#include "strstr_word.h" +#include "util_sysobj.h" /* for appfsp() and SEQ() */ + +/* { match_string, match_rule, name, url } */ +static Vendor vendors_builtin[] = { + /* BIOS manufacturers */ + { "American Megatrends", 0, "American Megatrends", "www.ami.com"}, + { "Award", 0, "Award Software International", "www.award-bios.com"}, + { "Phoenix", 0, "Phoenix Technologies", "www.phoenix.com"}, + /* x86 vendor strings */ + { "AMDisbetter!", 0, "Advanced Micro Devices", "www.amd.com" }, + { "AuthenticAMD", 0, "Advanced Micro Devices", "www.amd.com" }, + { "CentaurHauls", 0, "VIA (formerly Centaur Technology)", "www.via.tw" }, + { "CyrixInstead", 0, "Cyrix", "" }, + { "GenuineIntel", 0, "Intel", "www.intel.com" }, + { "TransmetaCPU", 0, "Transmeta", "" }, + { "GenuineTMx86", 0, "Transmeta", "" }, + { "Geode by NSC", 0, "National Semiconductor", "" }, + { "NexGenDriven", 0, "NexGen", "" }, + { "RiseRiseRise", 0, "Rise Technology", "" }, + { "SiS SiS SiS", 0, "Silicon Integrated Systems", "" }, + { "UMC UMC UMC", 0, "United Microelectronics Corporation", "" }, + { "VIA VIA VIA", 0, "VIA", "www.via.tw" }, + { "Vortex86 SoC", 0, "DMP Electronics", "" }, + /* x86 VM vendor strings */ + { "KVMKVMKVM", 0, "KVM", "" }, + { "Microsoft Hv", 0, "Microsoft Hyper-V", "www.microsoft.com" }, + { "lrpepyh vr", 0, "Parallels", "" }, + { "VMwareVMware", 0, "VMware", "" }, + { "XenVMMXenVMM", 0, "Xen HVM", "" }, +}; + +#define ven_msg(msg, ...) fprintf (stderr, "[%s] " msg "\n", __FUNCTION__, ##__VA_ARGS__) /**/ +#define ven_file_err(msg, ...) { \ + ven_msg(msg, ##__VA_ARGS__); \ + fflush(stderr); \ + if (vendor_die_on_error) exit(-1); } + +static vendor_list vendors = NULL; +const vendor_list get_vendors_list() { return vendors; } +gboolean vendor_die_on_error = FALSE; + +/* sort the vendor list by length of match_string, + * LONGEST first */ +int vendor_sort (const Vendor *ap, const Vendor *bp) { + int la = 0, lb = 0; + if (ap) la = ap->weight; + if (bp) lb = bp->weight; + return lb-la; +} + +static int read_from_vendor_conf(const char *path) { + GKeyFile *vendors_file; + gchar *tmp; + gint num_vendors, i, count = 0; /* num_vendors is file-reported, count is actual */ + + DEBUG("using vendor.conf format loader for %s", path); + + vendors_file = g_key_file_new(); + if (g_key_file_load_from_file(vendors_file, path, 0, NULL)) { + num_vendors = g_key_file_get_integer(vendors_file, "vendors", "number", NULL); + + for (i = num_vendors - 1; i >= 0; i--) { + Vendor *v = g_new0(Vendor, 1); + + tmp = g_strdup_printf("vendor%d", i); + + v->match_string = g_key_file_get_string(vendors_file, tmp, "match_string", NULL); + if (v->match_string == NULL) { + /* try old name */ + v->match_string = g_key_file_get_string(vendors_file, tmp, "id", NULL); + } + if (v->match_string) { + v->match_rule = g_key_file_get_integer(vendors_file, tmp, "match_case", NULL); + v->name = g_key_file_get_string(vendors_file, tmp, "name", NULL); + v->name_short = g_key_file_get_string(vendors_file, tmp, "name_short", NULL); + v->url = g_key_file_get_string(vendors_file, tmp, "url", NULL); + v->url_support = g_key_file_get_string(vendors_file, tmp, "url_support", NULL); + + vendors = g_slist_prepend(vendors, v); + count++; + } else { + /* don't add if match_string is null */ + g_free(v); + } + + g_free(tmp); + } + g_key_file_free(vendors_file); + DEBUG("... found %d match strings", count); + return count; + } + g_key_file_free(vendors_file); + return 0; +} + +static int read_from_vendor_ids(const char *path) { +#define VEN_BUFF_SIZE 128 +#define VEN_FFWD() while(isspace((unsigned char)*p)) p++; +#define VEN_CHK(TOK) (strncmp(p, TOK, tl = strlen(TOK)) == 0 && (ok = 1)) + char buff[VEN_BUFF_SIZE] = ""; + + char vars[7][VEN_BUFF_SIZE]; + char *name = vars[0]; + char *name_short = vars[1]; + char *url = vars[2]; + char *url_support = vars[3]; + char *wikipedia = vars[4]; + char *note = vars[5]; + char *ansi_color = vars[6]; + int name_rule_count = -1; + + int count = 0; + FILE *fd; + char *p, *b; + int tl, line = -1, ok = 0; + + DEBUG("using vendor.ids format loader for %s", path); + + fd = fopen(path, "r"); + if (!fd) return 0; + + while (fgets(buff, VEN_BUFF_SIZE, fd)) { + ok = 0; + line++; + + b = strchr(buff, '\n'); + if (b) + *b = 0; + else + ven_file_err("%s:%d: line longer than VEN_BUFF_SIZE (%lu)", path, line, (unsigned long)VEN_BUFF_SIZE); + + b = strchr(buff, '#'); + if (b) *b = 0; /* line ends at comment */ + + p = buff; + VEN_FFWD(); + if (VEN_CHK("name ")) { + if (name_rule_count == 0) + ven_file_err("%s:%d: name \"%s\" had no match rules", path, line, name); + strncpy(name, p + tl, VEN_BUFF_SIZE - 1); + strcpy(name_short, ""); + strcpy(url, ""); + strcpy(url_support, ""); + strcpy(wikipedia, ""); + strcpy(note, ""); + strcpy(ansi_color, ""); + name_rule_count = 0; + } + if (VEN_CHK("name_short ")) + strncpy(name_short, p + tl, VEN_BUFF_SIZE - 1); + if (VEN_CHK("url ")) + strncpy(url, p + tl, VEN_BUFF_SIZE - 1); + if (VEN_CHK("url_support ")) + strncpy(url_support, p + tl, VEN_BUFF_SIZE - 1); + if (VEN_CHK("wikipedia ")) + strncpy(wikipedia, p + tl, VEN_BUFF_SIZE - 1); + if (VEN_CHK("note ")) + strncpy(note, p + tl, VEN_BUFF_SIZE - 1); + if (VEN_CHK("ansi_color ")) + strncpy(ansi_color, p + tl, VEN_BUFF_SIZE - 1); + +#define dup_if_not_empty(s) (strlen(s) ? g_strdup(s) : NULL) + + int mrule = -1; + if (VEN_CHK("match_string ")) + mrule = VENDOR_MATCH_RULE_WORD_IGNORE_CASE; + else if (VEN_CHK("match_string_case ")) + mrule = VENDOR_MATCH_RULE_WORD_MATCH_CASE; + else if (VEN_CHK("match_string_exact ")) + mrule = VENDOR_MATCH_RULE_EXACT; + else if (VEN_CHK("match_string_prefix ")) + mrule = VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE; + else if (VEN_CHK("match_string_prefix_case ")) + mrule = VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE; + else if (VEN_CHK("match_string_suffix ")) + mrule = VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE; + else if (VEN_CHK("match_string_suffix_case ")) + mrule = VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE; + else if (VEN_CHK("match_string_num_prefix ")) + mrule = VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE; + else if (VEN_CHK("match_string_num_prefix_case ")) + mrule = VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE; + + if (mrule >= 0) { + Vendor *v = g_new0(Vendor, 1); + v->file_line = line; + v->match_string = g_strdup(p+tl); + v->ms_length = strlen(v->match_string); + v->match_rule = mrule; + v->name = g_strdup(name); + v->name_short = dup_if_not_empty(name_short); + v->url = dup_if_not_empty(url); + v->url_support = dup_if_not_empty(url_support); + v->wikipedia = dup_if_not_empty(wikipedia); + v->note = dup_if_not_empty(note); + v->ansi_color = dup_if_not_empty(ansi_color); + + v->weight = v->ms_length; + /* NUM_PREFIX rules consider +1 characters */ + if (v->match_rule == VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE + || v->match_rule == VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE) + v->weight++; + + v->has_parens = g_utf8_strchr(v->match_string, -1, '(') ? TRUE : FALSE; + + vendors = g_slist_prepend(vendors, v); + name_rule_count++; + count++; + } + + g_strstrip(buff); + if (!ok && *buff != 0) + ven_file_err("unrecognised item at %s:%d, %s", path, line, buff); + } + + fclose(fd); + + DEBUG("... found %d match strings", count); + + return count; +} + +void vendor_init(void) +{ + gchar *path; + static SyncEntry se = { + .name = N_("Update vendor list"), + .file_name = "vendor.ids", + }; + + /* already initialized */ + if (vendors) return; + + DEBUG("initializing vendor list"); + sync_manager_add_entry(&se); + + char *file_search_order[] = { + /* new format */ + g_build_filename(g_get_user_config_dir(), "hardinfo", "vendor.ids", NULL), + g_build_filename(params.path_data, "vendor.ids", NULL), + /* old format */ + g_build_filename(g_get_user_config_dir(), "hardinfo", "vendor.conf", NULL), + g_build_filename(g_get_home_dir(), ".hardinfo", "vendor.conf", NULL), /* old place */ + g_build_filename(params.path_data, "vendor.conf", NULL), + NULL + }; + + int n = 0; + while (file_search_order[n]) { + DEBUG("searching for vendor data at %s ...", file_search_order[n]); + if (!access(file_search_order[n], R_OK)) { + path = file_search_order[n]; + DEBUG("... file exists."); + break; + } + n++; + } + + int fail = 1; + + /* new format */ + if (path && strstr(path, "vendor.ids")) { + fail = !read_from_vendor_ids(path); + } + + /* old format */ + if (path && strstr(path, "vendor.conf")) { + fail = !read_from_vendor_conf(path); + } + + if (fail) { + gint i; + + DEBUG("vendor data not found, using internal database"); + + for (i = G_N_ELEMENTS(vendors_builtin) - 1; i >= 0; i--) { + vendors = g_slist_prepend(vendors, (gpointer) &vendors_builtin[i]); + } + } + + /* sort the vendor list by length of match string so that short strings are + * less likely to incorrectly match. + * example: ST matches ASUSTeK but SEAGATE is not ASUS */ + vendors = g_slist_sort(vendors, (GCompareFunc)vendor_sort); + + /* free search location strings */ + n = 0; + while (file_search_order[n]) { + free(file_search_order[n]); + n++; + } +} + +void vendor_cleanup() { + DEBUG("cleanup vendor list"); + g_slist_free_full(vendors, (GDestroyNotify)vendor_free); +} + +void vendor_free(Vendor *v) { + if (v) { + g_free(v->name); + g_free(v->name_short); + g_free(v->url); + g_free(v->url_support); + g_free(v->ansi_color); + g_free(v->match_string); + g_free(v); + } +} + +const Vendor *vendor_match(const gchar *id_str, ...) { + Vendor *ret = NULL; + va_list ap, ap2; + gchar *tmp = NULL, *p = NULL; + int tl = 0, c = 0; + + if (id_str) { + c++; + tl += strlen(id_str); + tmp = appfsp(tmp, "%s", id_str); + + va_start(ap, id_str); + p = va_arg(ap, gchar*); + while(p) { + c++; + tl += strlen(p); + tmp = appfsp(tmp, "%s", p); + p = va_arg(ap, gchar*); + } + va_end(ap); + } + if (!c || tl == 0) + return NULL; + + vendor_list vl = vendors_match_core(tmp, 1); + if (vl) { + ret = (Vendor*)vl->data; + vendor_list_free(vl); + } + return ret; +} + +static const gchar *vendor_get_name_ex(const gchar * id_str, short shortest) { + const Vendor *v = vendor_match(id_str, NULL); + + if (v) { + if (shortest) { + int sl = strlen(id_str); + int nl = (v->name) ? strlen(v->name) : 0; + int snl = (v->name_short) ? strlen(v->name_short) : 0; + if (!nl) nl = 9999; + if (!snl) snl = 9999; + /* if id_str is shortest, then return as if + * not found (see below). + * if all equal then prefer + * name_short > name > id_str. */ + if (nl < snl) + return (sl < nl) ? id_str : v->name; + else + return (sl < snl) ? id_str : v->name_short; + } else + return v->name; + } + + return id_str; /* Preserve an old behavior, but what about const? */ +} + +const gchar *vendor_get_name(const gchar * id_str) { + return vendor_get_name_ex(id_str, 0); +} + +const gchar *vendor_get_shortest_name(const gchar * id_str) { + return vendor_get_name_ex(id_str, 1); +} + +const gchar *vendor_get_url(const gchar * id_str) { + const Vendor *v = vendor_match(id_str, NULL); + + if (v) + return v->url; + + return NULL; +} + +gchar *vendor_get_link(const gchar *id_str) +{ + const Vendor *v = vendor_match(id_str, NULL); + + if (!v) { + return g_strdup(id_str); + } + + return vendor_get_link_from_vendor(v); +} + +gchar *vendor_get_link_from_vendor(const Vendor *v) +{ +#if GTK_CHECK_VERSION(2, 18, 0) + gboolean gtk_label_link_ok = TRUE; +#else + gboolean gtk_label_link_ok = FALSE; +#endif + gboolean link_ok = params.markup_ok && gtk_label_link_ok; + /* If using a real link, and wikipedia is available, + * target that instead of url. There's usually much more + * information there, plus easily click through to company url. */ + gboolean link_wikipedia = TRUE; + + if (!v) + return g_strdup(_("Unknown")); + + gchar *url = NULL; + + if (link_ok && link_wikipedia && v->wikipedia + || v->wikipedia && !v->url) + url = g_strdup_printf("http://wikipedia.com/wiki/%s", v->wikipedia); + else if (v->url) + url = g_strdup(v->url); + + if (!url) + return g_strdup(v->name); + + auto_free(url); + + if (link_ok) { + const gchar *prefix; + + if (!strncmp(url, "http://", sizeof("http://") - 1) || + !strncmp(url, "https://", sizeof("https://") - 1)) { + prefix = ""; + } else { + prefix = "http://"; + } + + return g_strdup_printf("%s", prefix, url, v->name); + } + + return g_strdup_printf("%s (%s)", v->name, url); +} + +vendor_list vendor_list_concat_va(int count, vendor_list vl, ...) { + vendor_list ret = vl, p = NULL; + va_list ap; + va_start(ap, vl); + if (count > 0) { + count--; /* includes vl */ + while (count) { + p = va_arg(ap, vendor_list); + ret = g_slist_concat(ret, p); + count--; + } + } else { + p = va_arg(ap, vendor_list); + while (p) { + ret = g_slist_concat(ret, p); + p = va_arg(ap, vendor_list); + } + } + va_end(ap); + return ret; +} + +int vendor_cmp_deep(const Vendor *a, const Vendor *b) { + int r; + if (a && !b) return 1; + if (!a && b) return -1; + if (!a && !b) return 0; + r = g_strcmp0(a->name, b->name); + if (!!r) return r; + r = g_strcmp0(a->name_short, b->name_short); + if (!!r) return r; + r = g_strcmp0(a->ansi_color, b->ansi_color); + if (!!r) return r; + r = g_strcmp0(a->url, b->url); + if (!!r) return r; + r = g_strcmp0(a->url_support, b->url_support); + if (!!r) return r; + r = g_strcmp0(a->wikipedia, b->wikipedia); + if (!!r) return r; + return 0; +} + +vendor_list vendor_list_remove_duplicates_deep(vendor_list vl) { + /* vendor_list is GSList* */ + GSList *tvl = vl; + GSList *evl = NULL; + while(tvl) { + const Vendor *tv = tvl->data; + evl = tvl->next; + while(evl) { + const Vendor *ev = evl->data; + if (vendor_cmp_deep(ev, tv) == 0) { + GSList *next = evl->next; + vl = g_slist_delete_link(vl, evl); + evl = next; + } else + evl = evl->next; + } + tvl = tvl->next; + } + return vl; +} + +vendor_list vendors_match(const gchar *id_str, ...) { + va_list ap, ap2; + gchar *tmp = NULL, *p = NULL; + int tl = 0, c = 0; + + if (id_str) { + c++; + tl += strlen(id_str); + tmp = appfsp(tmp, "%s", id_str); + + va_start(ap, id_str); + p = va_arg(ap, gchar*); + while(p) { + c++; + tl += strlen(p); + tmp = appfsp(tmp, "%s", p); + p = va_arg(ap, gchar*); + } + va_end(ap); + } + if (!c || tl == 0) + return NULL; + + return vendors_match_core(tmp, -1); +} + +vendor_list vendors_match_core(const gchar *str, int limit) { + gchar *p = NULL; + GSList *vlp; + int found = 0; + vendor_list ret = NULL; + + /* pass [array_index]: function + * 1st [3]: only check match strings that have () in them + * 2nd [2]: ignore text in (), like (formerly ...) or (nee ...), + * but unfortunately also (now ...) + * 3rd [1]: (passes[0]): full text */ + gchar *passes[3] = { g_strdup(str), g_strdup(str), g_strdup(str) }; + int pass = 1; p = passes[1]; + while((p = strchr(p, '('))) { + pass = 3; p++; + while(*p && *p != ')') { *p = ' '; p++; } + } + + for (; pass > 0; pass--) { + for (vlp = vendors; vlp; vlp = vlp->next) { + Vendor *v = (Vendor *)vlp->data; + char *m = NULL; + + if (!v) continue; + if (!v->match_string) continue; + + if (v->has_parens) + if (pass != 3) continue; + + //ven_msg("pass:%d <<%s>> EXAMINE: \"%s\"", pass, v->match_string, passes[pass-1]); + int epass; + +#define standard_match_work_inner(fn) { \ + /* clear so it doesn't match again */ \ + for(epass = pass; epass > 0; epass--) \ + { char *s = passes[epass-1] + (m - passes[pass-1]); \ + char *e = s + v->ms_length; \ + for(; s < e; s++) *s = ' '; \ + g_strstrip(passes[epass-1]); } \ + /* add to return list */ \ + ret = vendor_list_append(ret, v); \ + found++; \ + if (*passes[0] == 0) \ + goto vendors_match_core_finish; \ + if (limit > 0 && found >= limit) \ + goto vendors_match_core_finish; } +#define standard_match_work(fn) \ + if ((m = fn(passes[pass-1], v->match_string))) \ + standard_match_work_inner(); + + switch(v->match_rule) { + case VENDOR_MATCH_RULE_EXACT: + if (SEQ(passes[pass-1], v->match_string) ) { + /* add to return list */ + ret = vendor_list_append(ret, v); + found++; + goto vendors_match_core_finish; /* no way for any other match to happen */ + } + break; + case VENDOR_MATCH_RULE_WORD_IGNORE_CASE: + standard_match_work(strcasestr_word); + break; + case VENDOR_MATCH_RULE_WORD_MATCH_CASE: + standard_match_work(strstr_word); + break; + case VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE: + standard_match_work(strstr_word_prefix); + break; + case VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE: + standard_match_work(strcasestr_word_prefix); + break; + case VENDOR_MATCH_RULE_WORD_SUFFIX_MATCH_CASE: + standard_match_work(strstr_word_suffix); + break; + case VENDOR_MATCH_RULE_WORD_SUFFIX_IGNORE_CASE: + standard_match_work(strcasestr_word_suffix); + break; + case VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE: + if ((m = strstr_word_prefix(passes[pass-1], v->match_string))) + if (isdigit(m[v->ms_length])) + standard_match_work_inner(); + break; + case VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE: + if ((m = strcasestr_word_prefix(passes[pass-1], v->match_string))) + if (isdigit(m[v->ms_length])) + standard_match_work_inner(); + break; + } + } + } + +vendors_match_core_finish: + + g_free(passes[0]); + g_free(passes[1]); + g_free(passes[2]); + return ret; +} diff --git a/hardinfo2/x_util.c b/hardinfo2/x_util.c new file mode 100644 index 00000000..2187b224 --- /dev/null +++ b/hardinfo2/x_util.c @@ -0,0 +1,342 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2017 L. A. F. Pereira + * This file + * Copyright (C) 2018 Burt P. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "x_util.h" +#include + +/* wayland stuff lives here for now */ + +wl_info *get_walyand_info() { + wl_info *s = malloc(sizeof(wl_info)); + memset(s, 0, sizeof(wl_info)); + s->xdg_session_type = g_strdup( getenv("XDG_SESSION_TYPE") ); + if (s->xdg_session_type == NULL) + s->xdg_session_type = strdup("x11"); + s->display_name = g_strdup( getenv("WAYLAND_DISPLAY") ); + return s; +} + +void wl_free(wl_info *s) { + if (s) { + free(s->xdg_session_type); + free(s->display_name); + free(s); + } +} + +/* get x information from xrandr, xdpyinfo, and glxinfo */ + +static char *simple_line_value(char *line, const char *prefix) { + if (g_str_has_prefix(g_strstrip(line), prefix)) { + line += strlen(prefix) + 1; + return g_strstrip(line); + } else + return NULL; +} + +gboolean fill_glx_info(glx_info *glx) { + gboolean spawned; + gchar *out, *err, *p, *l, *next_nl; + gchar *glx_cmd = g_strdup("glxinfo"); + +#define GLX_MATCH_LINE(prefix_str, struct_member) \ + if (l = simple_line_value(p, prefix_str)) { glx->struct_member = g_strdup(l); goto glx_next_line; } + + spawned = hardinfo_spawn_command_line_sync(glx_cmd, + &out, &err, NULL, NULL); + g_free(glx_cmd); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + GLX_MATCH_LINE("GLX version", glx_version); + GLX_MATCH_LINE("OpenGL vendor string", ogl_vendor); + GLX_MATCH_LINE("OpenGL renderer string", ogl_renderer); + GLX_MATCH_LINE("OpenGL renderer string", ogl_renderer); + GLX_MATCH_LINE("OpenGL core profile version string", ogl_core_version); + GLX_MATCH_LINE("OpenGL core profile shading language version string", ogl_core_sl_version); + GLX_MATCH_LINE("OpenGL version string", ogl_version); + GLX_MATCH_LINE("OpenGL shading language version string", ogl_sl_version); + GLX_MATCH_LINE("OpenGL ES profile version string", ogles_version); + GLX_MATCH_LINE("OpenGL ES profile shading language version string", ogles_sl_version); + + if (l = simple_line_value(p, "direct rendering")) { + if (strstr(p, "Yes")) + glx->direct_rendering = 1; + goto glx_next_line; + } + + glx_next_line: + p = next_nl + 1; + } + g_free(out); + g_free(err); + return TRUE; + } + return FALSE; +} + +glx_info *glx_create() { + glx_info *s = malloc(sizeof(glx_info)); + memset(s, 0, sizeof(glx_info)); + return s; +} + +void glx_free(glx_info *s) { + if (s) { + free(s->glx_version); + free(s->ogl_vendor); + free(s->ogl_renderer); + free(s->ogl_core_version); + free(s->ogl_core_sl_version); + free(s->ogl_version); + free(s->ogl_sl_version); + free(s->ogles_version); + free(s->ogles_sl_version); + free(s); + } +} + +gboolean fill_xinfo(xinfo *xi) { + gboolean spawned; + gchar *out, *err, *p, *l, *next_nl; + gchar *xi_cmd = g_strdup("xdpyinfo"); + +#define XI_MATCH_LINE(prefix_str, struct_member) \ + if (l = simple_line_value(p, prefix_str)) { xi->struct_member = g_strdup(l); goto xi_next_line; } + + spawned = hardinfo_spawn_command_line_sync(xi_cmd, + &out, &err, NULL, NULL); + g_free(xi_cmd); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + XI_MATCH_LINE("name of display", display_name); + XI_MATCH_LINE("vendor string", vendor); + XI_MATCH_LINE("vendor release number", release_number); + XI_MATCH_LINE("XFree86 version", version); + XI_MATCH_LINE("X.Org version", version); + + xi_next_line: + p = next_nl + 1; + } + g_free(out); + g_free(err); + return TRUE; + } + return FALSE; +} + +gboolean fill_xrr_info(xrr_info *xrr) { + gboolean spawned; + gchar *out, *err, *p, *next_nl; + gchar *xrr_cmd = g_strdup("xrandr --prop"); + int ec; + + x_screen ts; + x_output to; + char output_id[128]; + char status[128]; + char alist[512]; + + memset(&ts, 0, sizeof(x_screen)); + memset(&to, 0, sizeof(x_output)); + memset(output_id, 0, sizeof(output_id)); + memset(status, 0, sizeof(status)); + memset(alist, 0, sizeof(alist)); + + spawned = hardinfo_spawn_command_line_sync(xrr_cmd, + &out, &err, NULL, NULL); + g_free(xrr_cmd); + if (spawned) { + p = out; + while(next_nl = strchr(p, '\n')) { + strend(p, '\n'); + g_strstrip(p); + + ec = sscanf(p, "Screen %d: minimum %d x %d, current %d x %d, maximum %d x %d", + &ts.number, + &ts.min_px_width, &ts.min_px_height, + &ts.px_width, &ts.px_height, + &ts.max_px_width, &ts.max_px_height); + if (ec == 7) { + /* new screen */ + xrr->screen_count++; + if (xrr->screens == NULL) + xrr->screens = malloc(xrr->screen_count * sizeof(x_screen)); + else + xrr->screens = realloc(xrr->screens, xrr->screen_count * sizeof(x_screen)); + memcpy(&xrr->screens[xrr->screen_count-1], &ts, sizeof(x_screen)); + memset(&ts, 0, sizeof(x_screen)); /* clear the temp */ + goto xrr_next_line; + } + + /* looking for: + * (connected|disconnected|unknown connection) (primary|?) <%dx%d+%d+%d> (attribute_list) mm x mm + */ + ec = sscanf(p, "%127s %127[^(](%511[^)]", output_id, status, alist); + if (ec == 3) { + int is_output = 0, found_rect = 0, n = 0; + gchar **ot = g_strsplit(status, " ", 0); + + /* find rect */ + while (ot[n] != NULL) { + ec = sscanf(ot[n], "%dx%d+%d+%d", &to.px_width, &to.px_height, &to.px_offset_x, &to.px_offset_y); + if (ec == 4) { + found_rect = 1; + break; + } + n++; + } + if (found_rect) + to.screen = xrr->screen_count - 1; + else + to.screen = -1; + + if (strcmp("disconnected", ot[0]) == 0) { + is_output = 1; + to.connected = 0; + } else + if (strcmp("unknown", ot[0]) == 0 && strcmp("connection", ot[1]) == 0) { + is_output = 1; + to.connected = -1; + } else + if (strcmp("connected", ot[0]) == 0) { + is_output = 1; + to.connected = 1; + } + g_strfreev(ot); + if (is_output) { + strncpy(to.name, output_id, 63); + xrr->output_count++; + if (xrr->outputs == NULL) + xrr->outputs = malloc(xrr->output_count * sizeof(x_output)); + else + xrr->outputs = realloc(xrr->outputs, xrr->output_count * sizeof(x_output)); + memcpy(&xrr->outputs[xrr->output_count-1], &to, sizeof(x_output)); + memset(&to, 0, sizeof(x_output)); /* clear the temp */ + goto xrr_next_line; + } + } + + xrr_next_line: + p = next_nl + 1; + } + g_free(out); + g_free(err); + return TRUE; + } + return FALSE; +} + +gboolean fill_basic_xlib(xinfo *xi) { + Display *display; + int s, w, h, rn; + + display = XOpenDisplay(NULL); + if (display) { + if (!xi->display_name) + xi->display_name = XDisplayName(NULL); + + if (!xi->vendor) + xi->vendor = XServerVendor(display); + + if (!xi->release_number) { + rn = XVendorRelease(display); + xi->release_number = g_strdup_printf("%d", rn); + } + + if (!xi->xrr->screen_count) { + s = DefaultScreen(display); + w = XDisplayWidth(display, s); + h = XDisplayHeight(display, s); + + /* create at least one screen */ + x_screen ts; + memset(&ts, 0, sizeof(x_screen)); + ts.number = s; + ts.px_width = w; + ts.px_height = h; + + xi->xrr->screen_count++; + if (xi->xrr->screens == NULL) + xi->xrr->screens = malloc(xi->xrr->screen_count * sizeof(x_screen)); + else + xi->xrr->screens = realloc(xi->xrr->screens, xi->xrr->screen_count * sizeof(x_screen)); + memcpy(&xi->xrr->screens[xi->xrr->screen_count-1], &ts, sizeof(x_screen)); + } + return TRUE; + } + return FALSE; +} + +xrr_info *xrr_create() { + xrr_info *xrr = malloc(sizeof(xrr_info)); + memset(xrr, 0, sizeof(xrr_info)); + return xrr; +} + +void xrr_free(xrr_info *xrr) { + if (xrr) { + free(xrr->screens); + free(xrr->outputs); + free(xrr->providers); + free(xrr->monitors); + free(xrr); + } +} + +xinfo *xinfo_get_info() { + int fail = 0; + xinfo *xi = malloc(sizeof(xinfo)); + memset(xi, 0, sizeof(xinfo)); + xi->glx = glx_create(); + xi->xrr = xrr_create(); + + if ( !fill_xinfo(xi) ) + fail++; + if ( !fill_xrr_info(xi->xrr) ) + fail++; + if ( !fill_glx_info(xi->glx) ) + fail++; + + if (fail) { + /* as fallback, try xlib directly */ + if ( !fill_basic_xlib(xi) ) + xi->nox = 1; + } + return xi; +} + +void xinfo_free(xinfo *xi) { + if (xi) { + free(xi->display_name); + free(xi->vendor); + free(xi->version); + free(xi->release_number); + xrr_free(xi->xrr); + glx_free(xi->glx); + free(xi); + } +} diff --git a/includes/ssh-conn.h b/includes/ssh-conn.h deleted file mode 100644 index f1b08c46..00000000 --- a/includes/ssh-conn.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Remote Client - HardInfo - Displays System Information - Copyright (C) 2003-2009 L. A. F. Pereira - - Based on ssh-method.c from GnomeVFS - Copyright (C) 1999 Free Software Foundation - Original author: Ian McKellar - - The Gnome Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The Gnome Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the Gnome Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. -*/ -#ifndef __SSH_CONN_H__ -#define __SSH_CONN_H__ - -#include "config.h" -#ifdef HAS_LIBSOUP -#include - -typedef struct _SSHConn SSHConn; - -typedef enum { - SSH_CONN_OK, - SSH_CONN_NO_URI, - SSH_CONN_UNKNOWN_PROTOCOL, - SSH_CONN_UNKNOWN_ERROR, - SSH_CONN_CANNOT_SPAWN_SSH, - SSH_CONN_BAD_PARAMS, - SSH_CONN_PERMISSION_DENIED, - SSH_CONN_HOST_KEY_CHECK_FAIL, - SSH_CONN_REFUSED, - SSH_CONN_INVALID_USER_PASS, -} SSHConnResponse; - -struct _SSHConn { - SoupURI *uri; - int fd_read, fd_write, fd_error; - GPid pid; - gchar *askpass_path; - - gint exit_status; -}; - -SSHConnResponse ssh_new(SoupURI * uri, - SSHConn ** conn_return, gchar * command); -void ssh_close(SSHConn * conn); - -int ssh_write(SSHConn * conn, - gconstpointer buffer, gint num_bytes, gint * bytes_written); -int ssh_read(gint fd, gpointer buffer, gint num_bytes, gint * bytes_read); - -const char *ssh_conn_errors[10]; -#endif /* HAS_LIBSOUP */ -#endif /* __SSH_CONN_H__ */ diff --git a/includes/xmlrpc-client.h b/includes/xmlrpc-client.h deleted file mode 100644 index ddccf3aa..00000000 --- a/includes/xmlrpc-client.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * XMLRPC Client - * HardInfo - Displays System Information - * Copyright (C) 2003-2009 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __XMLRPC_CLIENT_H__ -#define __XMLRPC_CLIENT_H__ - -#include "config.h" - -#ifdef HAS_LIBSOUP -#include - -void xmlrpc_init(void); -gint xmlrpc_get_integer(gchar *addr, - gchar *method, - const gchar *param_types, - ...); -gchar *xmlrpc_get_string(gchar *addr, - gchar *method, - const gchar *param_types, - ...); -GValueArray *xmlrpc_get_array(gchar *addr, - gchar *method, - const gchar *param_types, - ...); -#endif /* HAS_LIBSOUP */ - -#endif /* __XMLRPC_CLIENT_H__ */ diff --git a/includes/xmlrpc-server.h b/includes/xmlrpc-server.h deleted file mode 100644 index 19bd0f8a..00000000 --- a/includes/xmlrpc-server.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2009 L. A. F. Pereira - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XMLRPC_SERVER_H__ -#define __XMLRPC_SERVER_H__ - -void xmlrpc_server_start(GMainLoop *main_loop); -void xmlrpc_server_init(void); - -#endif /* __XMLRPC_SERVER_H__ */ - diff --git a/po/HOWTO.txt b/po/HOWTO.txt deleted file mode 100644 index afe9a8c2..00000000 --- a/po/HOWTO.txt +++ /dev/null @@ -1,9 +0,0 @@ -Translators -=========== - -IF POSSIBLE, run `bash updatepo.sh` in the po/ directory before begining. -This will regenerate hardinfo.pot and update all the .po files. -NOTHING IS LOST if this isn't done, but it prevents wasting time translating -strings that have changed, or are no longer used. - -DO NOT use `make pot`! diff --git a/po/salvage.sh b/po/salvage.sh deleted file mode 100644 index 295187f4..00000000 --- a/po/salvage.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!bash - -# To help with https://github.com/lpereira/hardinfo/issues/100 -# Saves the old label translations. -# -# This is not an automated magical tool, it is an ugly hack of a helper -# for a tedious process. Read the instructions if you want to use it! -# -# bash updatepo.sh -# { commit here or the next commit's diff will be noisy and useless } -# -# { repeat for each language... } -# bash salvage.sh XX.po >XX.po.salv -# { edit XX.po.salv, remove nonsense } -# msgcat --use-first XX.po XX.po.salv > XX.po.merged -# diff XX.po XX.po.merged -# { if there are any added translations, they do not actually appear -# in hardinfo.pot, and they will end up "obsolete" and then re-processed -# in the next salvage. So save some hassle and just remove them now. } -# mv XX.po.merged XX.po -# -# { when all languages are done run updatepo.sh again to clean up } -# bash updatepo.sh -# - -if [ -z "$@" ]; then - echo "READ script before running!" - echo "Error: Needs .po file to process" - exit 1 -fi - -do_salvage() { - msgid=() - msgstr=() - - while IFS= read -r line; do - msgid+=( "$line" ) - done <<< "$MSGEXEC_MSGID" - - while IFS= read -r line; do - msgstr+=( "$line" ) - done <&0 - - for i in ${!msgid[@]}; do - # column titles - msgid[$i]=`echo "${msgid[$i]}" | sed -e 's/ColumnTitle\$.*=//'` - msgstr[$i]=`echo "${msgstr[$i]}" | sed -e 's/ColumnTitle\$.*=//'` - - # section titles - msgid[$i]=`echo "${msgid[$i]}" | sed -e 's/\[\(.*\)\]/\1/'` - msgstr[$i]=`echo "${msgstr[$i]}" | sed -e 's/\[\(.*\)\]/\1/'` - - # regular labels - msgid[$i]=`echo "${msgid[$i]}" | sed -e 's/=.*$//'` - msgstr[$i]=`echo "${msgstr[$i]}" | sed -e 's/=.*$//'` - - # junk - msgid[$i]=`echo "${msgid[$i]}" | sed -e 's/%s//'` - msgid[$i]=`echo "${msgid[$i]}" | sed -e 's/%s//'` - - if [[ -n "${msgid[$i]}" && -n "${msgstr[$i]}" ]]; then - if [ "${msgid[$i]}" != "${msgstr[$i]}" ]; then - echo "msgid \"${msgid[$i]}\"" - echo "msgstr \"${msgstr[$i]}\"" - echo "" - fi - fi - done -} - -cat >salvage.tmp <<'EOT' - -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -EOT - -export -f do_salvage -msgattrib --only-obsolete "$@" | msgexec bash -c 'do_salvage "$0"' >>salvage.tmp -msguniq salvage.tmp -rm salvage.tmp diff --git a/po/updatepo.sh b/po/updatepo.sh old mode 100644 new mode 100755 index e746902f..84e6ef7c --- a/po/updatepo.sh +++ b/po/updatepo.sh @@ -1,4 +1,4 @@ -#!bash +#!/bin/bash GITVER=`git describe --always --dirty` GITHASH=`git rev-parse HEAD` diff --git a/test/data/alpha_as_cpuinfo b/test/data/alpha_as_cpuinfo deleted file mode 100644 index 698b3d4d..00000000 --- a/test/data/alpha_as_cpuinfo +++ /dev/null @@ -1,19 +0,0 @@ -cpu : Alpha -cpu model : EV56 -cpu variation : 7 -cpu revision : 0 -cpu serial number : -system type : Rawhide -system variation : Tincup -system revision : 0 -system serial number : BT00000000 -cycle frequency [Hz] : 531914893 -timer frequency [Hz] : 1200.00 -page size [bytes] : 8192 -phys. address bits : 40 -max. addr. space # : 127 -BogoMIPS : 1063.92 -kernel unaligned acc : 0 (pc=0,va=0) -user unaligned acc : 0 (pc=0,va=0) -platform string : AlphaServer 1200 5/533 4MB -cpus detected : 1 diff --git a/test/data/arm_asus_android_cpuinfo b/test/data/arm_asus_android_cpuinfo deleted file mode 100644 index bc1e811d..00000000 --- a/test/data/arm_asus_android_cpuinfo +++ /dev/null @@ -1,17 +0,0 @@ -Processor : AArch64 Processor rev 1 (aarch64) -processor : 0 -processor : 1 -processor : 2 -processor : 3 -processor : 4 -processor : 5 -processor : 6 -processor : 7 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 1 - -Hardware : Qualcomm Technologies, Inc MSM8939 diff --git a/test/data/arm_jetsontx2_cpuinfo b/test/data/arm_jetsontx2_cpuinfo deleted file mode 100644 index 0ac0480b..00000000 --- a/test/data/arm_jetsontx2_cpuinfo +++ /dev/null @@ -1,61 +0,0 @@ -processor : 0 -model name : ARMv8 Processor rev 3 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x1 -CPU part : 0xd07 -CPU revision : 3 - -processor : 1 -model name : ARMv8 Processor rev 0 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x4e -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0x003 -CPU revision : 0 -MTS version : 37620520 - -processor : 2 -model name : ARMv8 Processor rev 0 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x4e -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0x003 -CPU revision : 0 -MTS version : 37620520 - -processor : 3 -model name : ARMv8 Processor rev 3 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x1 -CPU part : 0xd07 -CPU revision : 3 - -processor : 4 -model name : ARMv8 Processor rev 3 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x1 -CPU part : 0xd07 -CPU revision : 3 - -processor : 5 -model name : ARMv8 Processor rev 3 (v8l) -BogoMIPS : 62.50 -Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x1 -CPU part : 0xd07 -CPU revision : 3 diff --git a/test/data/arm_marv_cpuinfo b/test/data/arm_marv_cpuinfo deleted file mode 100644 index e48bebc6..00000000 --- a/test/data/arm_marv_cpuinfo +++ /dev/null @@ -1,9 +0,0 @@ -Processor : Feroceon 88FR131 rev 1 (v5l) -BogoMIPS : 1192.75 -Features : swp half fastmult edsp -CPU implementer : 0x56 -CPU architecture: 5TE -CPU variant : 0x2 -CPU part : 0x131 -CPU revision : 1 - diff --git a/test/data/arm_rpi3_aarch32_cpuinfo b/test/data/arm_rpi3_aarch32_cpuinfo deleted file mode 100644 index 5092ba9b..00000000 --- a/test/data/arm_rpi3_aarch32_cpuinfo +++ /dev/null @@ -1,44 +0,0 @@ -processor : 0 -model name : ARMv7 Processor rev 4 (v7l) -BogoMIPS : 38.40 -Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 -CPU implementer : 0x41 -CPU architecture: 7 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 1 -model name : ARMv7 Processor rev 4 (v7l) -BogoMIPS : 38.40 -Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 -CPU implementer : 0x41 -CPU architecture: 7 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 2 -model name : ARMv7 Processor rev 4 (v7l) -BogoMIPS : 38.40 -Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 -CPU implementer : 0x41 -CPU architecture: 7 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 3 -model name : ARMv7 Processor rev 4 (v7l) -BogoMIPS : 38.40 -Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 -CPU implementer : 0x41 -CPU architecture: 7 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -Hardware : BCM2835 -Revision : a02082 -Serial : 00000000d5442118 - diff --git a/test/data/arm_rpi3_aarch64_cpuinfo b/test/data/arm_rpi3_aarch64_cpuinfo deleted file mode 100644 index f7aef079..00000000 --- a/test/data/arm_rpi3_aarch64_cpuinfo +++ /dev/null @@ -1,36 +0,0 @@ -processor : 0 -BogoMIPS : 38.40 -Features : fp asimd evtstrm crc32 cpuid -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 1 -BogoMIPS : 38.40 -Features : fp asimd evtstrm crc32 cpuid -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 2 -BogoMIPS : 38.40 -Features : fp asimd evtstrm crc32 cpuid -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - -processor : 3 -BogoMIPS : 38.40 -Features : fp asimd evtstrm crc32 cpuid -CPU implementer : 0x41 -CPU architecture: 8 -CPU variant : 0x0 -CPU part : 0xd03 -CPU revision : 4 - diff --git a/test/data/e2k_elbrus_4x_e4c_cpuinfo b/test/data/e2k_elbrus_4x_e4c_cpuinfo deleted file mode 100644 index efd44316..00000000 --- a/test/data/e2k_elbrus_4x_e4c_cpuinfo +++ /dev/null @@ -1,147 +0,0 @@ -processor : 0 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 1 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 2 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 3 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 4 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 5 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 6 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 7 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 8 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 9 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 10 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 11 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 12 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 13 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 14 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -processor : 15 -vendor_id : EL2S4 -cpu family : 3 -model : 3 -model name : E2S -revision : 2 -cpu MHz : 750 -bogomips : 1500.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=2048K line_size=64 associativity=4 diff --git a/test/data/e2k_elbrus_4x_e8c_cpuinfo b/test/data/e2k_elbrus_4x_e8c_cpuinfo deleted file mode 100644 index 751d9084..00000000 --- a/test/data/e2k_elbrus_4x_e8c_cpuinfo +++ /dev/null @@ -1,292 +0,0 @@ -processor : 0 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 1 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 2 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 3 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 4 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 5 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 6 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 7 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 8 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 9 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 10 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 11 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 12 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 13 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 14 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 15 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 16 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 17 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 18 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 19 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 20 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 21 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 22 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 23 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 24 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 25 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 26 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 27 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 28 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 29 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 30 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 31 -vendor_id : E8C -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Shared size=16384K line_size=64 associativity=16 diff --git a/test/data/e2k_elbrus_801_pc_e8c_cpuinfo b/test/data/e2k_elbrus_801_pc_e8c_cpuinfo deleted file mode 100644 index eb2404d9..00000000 --- a/test/data/e2k_elbrus_801_pc_e8c_cpuinfo +++ /dev/null @@ -1,76 +0,0 @@ -processor : 0 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 1 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 2 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 3 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 4 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 5 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 6 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -processor : 7 -vendor_id : MBE8C-PC -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1300 -bogomips : 2600.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Shared size=16384K line_size=64 associativity=16 diff --git a/test/data/e2k_elbrus_e16c_cpuinfo b/test/data/e2k_elbrus_e16c_cpuinfo deleted file mode 100644 index 34c403b7..00000000 --- a/test/data/e2k_elbrus_e16c_cpuinfo +++ /dev/null @@ -1,148 +0,0 @@ -processor : 0 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 1 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 2 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 3 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 4 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 5 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 6 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 7 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 8 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 9 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 10 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 11 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 12 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 13 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 2000 -bogomips : 4000.00 - -processor : 14 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -processor : 15 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 11 -model name : E16C -revision : 0 -cpu MHz : 1000 -bogomips : 2000.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=1024K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Shared size=32768K line_size=64 associativity=16 diff --git a/test/data/e2k_elbrus_e1c+_cpuinfo b/test/data/e2k_elbrus_e1c+_cpuinfo deleted file mode 100644 index 9bc89eec..00000000 --- a/test/data/e2k_elbrus_e1c+_cpuinfo +++ /dev/null @@ -1,11 +0,0 @@ -processor : 0 -vendor_id : MBE1C-PC -cpu family : 4 -model : 8 -model name : E1C+ -revision : 1 -cpu MHz : 984.618205 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=2048K line_size=64 associativity=4 -bogomips : 1969.75 \ No newline at end of file diff --git a/test/data/e2k_elbrus_e2c+_cpuinfo b/test/data/e2k_elbrus_e2c+_cpuinfo deleted file mode 100644 index c45e59b9..00000000 --- a/test/data/e2k_elbrus_e2c+_cpuinfo +++ /dev/null @@ -1,25 +0,0 @@ -processor : 0 -vendor_id : MONOCUB -cpu family : 4 -model : 4 -model name : E2C+DSP -revision : 6 -cpu MHz : 467.840040 -L1 cache size : 64 KB -L1 cache line length : 32 bytes -L2 cache size : 1024 KB -L2 cache line length : 64 bytes -bogomips : 937.17 - -processor : 1 -vendor_id : MONOCUB -cpu family : 4 -model : 4 -model name : E2C+DSP -revision : 6 -cpu MHz : 467.840040 -L1 cache size : 64 KB -L1 cache line length : 32 bytes -L2 cache size : 1024 KB -L2 cache line length : 64 bytes -bogomips : 935.67 diff --git a/test/data/e2k_elbrus_e2c3_cpuinfo b/test/data/e2k_elbrus_e2c3_cpuinfo deleted file mode 100644 index 6f64b61c..00000000 --- a/test/data/e2k_elbrus_e2c3_cpuinfo +++ /dev/null @@ -1,21 +0,0 @@ -processor : 0 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 12 -model name : E2C3 -revision : 0 -cpu MHz : 500 -bogomips : 1000.00 - -processor : 1 -vendor_id : Elbrus-MCST -cpu family : 6 -model : 12 -model name : E2C3 -revision : 0 -cpu MHz : 2000 -bogomips : 4000.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=2048K line_size=64 associativity=4 diff --git a/test/data/e2k_elbrus_e8c2_cpuinfo b/test/data/e2k_elbrus_e8c2_cpuinfo deleted file mode 100644 index 933aa981..00000000 --- a/test/data/e2k_elbrus_e8c2_cpuinfo +++ /dev/null @@ -1,76 +0,0 @@ -processor : 0 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 1 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 2 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 3 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 4 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 5 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 6 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -processor : 7 -vendor_id : Elbrus-MCST -cpu family : 5 -model : 9 -model name : E8C2 -revision : 2 -cpu MHz : 1550 -bogomips : 3100.00 - -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Shared size=16384K line_size=64 associativity=16 diff --git a/test/data/e2k_elbrus_e8c_cpuinfo b/test/data/e2k_elbrus_e8c_cpuinfo deleted file mode 100644 index 255281be..00000000 --- a/test/data/e2k_elbrus_e8c_cpuinfo +++ /dev/null @@ -1,103 +0,0 @@ -processor : 0 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2600.68 - -processor : 1 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 2 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 3 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 4 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 5 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 6 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 - -processor : 7 -vendor_id : E8C-SWTX -cpu family : 4 -model : 7 -model name : E8C -revision : 2 -cpu MHz : 1299.912740 -cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4 -cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4 -cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4 -cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16 -bogomips : 2599.85 diff --git a/test/data/ia64_x2_cpuinfo b/test/data/ia64_x2_cpuinfo deleted file mode 100644 index f355d80e..00000000 --- a/test/data/ia64_x2_cpuinfo +++ /dev/null @@ -1,27 +0,0 @@ -processor : 0 -vendor : GenuineIntel -arch : IA-64 -family : Itanium -model : 0 -revision : 6 -archrev : 0 -features : standard -cpu number : 0 -cpu regs : 4 -cpu MHz : 733.433976 -itc MHz : 733.433976 -BogoMIPS : 517.99 - -processor : 1 -vendor : GenuineIntel -arch : IA-64 -family : Itanium -model : 0 -revision : 6 -archrev : 0 -features : standard -cpu number : 0 -cpu regs : 4 -cpu MHz : 733.433976 -itc MHz : 733.433976 -BogoMIPS : 729.80 diff --git a/test/data/m68k_sun3_cpuinfo b/test/data/m68k_sun3_cpuinfo deleted file mode 100644 index 8c9c8d54..00000000 --- a/test/data/m68k_sun3_cpuinfo +++ /dev/null @@ -1,6 +0,0 @@ -CPU: 68020 -MMU: Sun-3 -FPU: 68881 -Clocking: 19.9MHz -BogoMips: 4.97 -Calibration: 24896 loops diff --git a/test/data/mips_loongson_cpuinfo b/test/data/mips_loongson_cpuinfo deleted file mode 100644 index f2ee0e90..00000000 --- a/test/data/mips_loongson_cpuinfo +++ /dev/null @@ -1,13 +0,0 @@ -system type : gdium -processor : 0 -cpu model : ICT Loongson-2 V0.3 FPU V0.1 -BogoMIPS : 598.60 -wait instruction : no -microsecond timers : yes -tlb_entries : 64 -extra interrupt vector : no -hardware watchpoint : no -ASEs implemented : -shadow register sets : 1 -VCED exceptions : not available -VCEI exceptions : not available diff --git a/test/data/parisc_hppa_fortex4_cpuinfo b/test/data/parisc_hppa_fortex4_cpuinfo deleted file mode 100644 index 79efffc2..00000000 --- a/test/data/parisc_hppa_fortex4_cpuinfo +++ /dev/null @@ -1,59 +0,0 @@ -processor : 0 -cpu family : PA-RISC 2.0 -cpu : PA8500 (PCX-W) -cpu MHz : 440.000000 -model : 9000/785/J7000 -model name : Forte W 4-way -hversion : 0x00005bf0 -sversion : 0x00000491 -I-cache : 512 KB -D-cache : 1024 KB (WB) -ITLB entries : 160 -DTLB entries : 160 - shared with ITLB -bogomips : 878.18 -software id : 2002742099 - -processor : 1 -cpu family : PA-RISC 2.0 -cpu : PA8500 (PCX-W) -cpu MHz : 440.000000 -model : 9000/785/J7000 -model name : Forte W 4-way -hversion : 0x00005bf0 -sversion : 0x00000491 -I-cache : 512 KB -D-cache : 1024 KB (WB) -ITLB entries : 160 -DTLB entries : 160 - shared with ITLB -bogomips : 878.18 -software id : 2002742099 - -processor : 2 -cpu family : PA-RISC 2.0 -cpu : PA8500 (PCX-W) -cpu MHz : 440.000000 -model : 9000/785/J7000 -model name : Forte W 4-way -hversion : 0x00005bf0 -sversion : 0x00000491 -I-cache : 512 KB -D-cache : 1024 KB (WB) -ITLB entries : 160 -DTLB entries : 160 - shared with ITLB -bogomips : 878.18 -software id : 2002742099 - -processor : 3 -cpu family : PA-RISC 2.0 -cpu : PA8500 (PCX-W) -cpu MHz : 440.000000 -model : 9000/785/J7000 -model name : Forte W 4-way -hversion : 0x00005bf0 -sversion : 0x00000491 -I-cache : 512 KB -D-cache : 1024 KB (WB) -ITLB entries : 160 -DTLB entries : 160 - shared with ITLB -bogomips : 878.18 -software id : 2002742099 diff --git a/test/data/power8_cpuinfo b/test/data/power8_cpuinfo deleted file mode 100644 index 0544168b..00000000 --- a/test/data/power8_cpuinfo +++ /dev/null @@ -1,325 +0,0 @@ -processor : 0 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 1 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 2 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 3 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 4 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 5 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 6 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 7 -cpu : POWER8 (raw), altivec supported -clock : 3857.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 8 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 9 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 10 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 11 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 12 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 13 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 14 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 15 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 16 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 17 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 18 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 19 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 20 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 21 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 22 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 23 -cpu : POWER8 (raw), altivec supported -clock : 3059.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 24 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 25 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 26 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 27 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 28 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 29 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 30 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 31 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 32 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 33 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 34 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 35 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 36 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 37 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 38 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 39 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 40 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 41 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 42 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 43 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 44 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 45 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 46 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 47 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 48 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 49 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 50 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 51 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 52 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 53 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 54 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 55 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 56 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 57 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 58 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 59 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 60 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 61 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 62 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -processor : 63 -cpu : POWER8 (raw), altivec supported -clock : 2061.000000MHz -revision : 2.0 (pvr 004d 0200) - -timebase : 512000000 -platform : PowerNV -model : 8335-GCA -machine : PowerNV 8335-GCA -firmware : OPAL v3 diff --git a/test/data/ppc_g5_cpuinfo b/test/data/ppc_g5_cpuinfo deleted file mode 100644 index f326316a..00000000 --- a/test/data/ppc_g5_cpuinfo +++ /dev/null @@ -1,30 +0,0 @@ -processor : 0 -cpu : PPC970MP, altivec supported -clock : 1250.000000MHz -revision : 1.1 (pvr 0044 0101) - -processor : 1 -cpu : PPC970MP, altivec supported -clock : 1250.000000MHz -revision : 1.1 (pvr 0044 0101) - -processor : 2 -cpu : PPC970MP, altivec supported -clock : 1250.000000MHz -revision : 1.1 (pvr 0044 0101) - -processor : 3 -cpu : PPC970MP, altivec supported -clock : 1250.000000MHz -revision : 1.1 (pvr 0044 0101) - -timebase : 33333333 -platform : PowerMac -model : PowerMac11,2 -machine : PowerMac11,2 -motherboard : PowerMac11,2 MacRISC4 Power Macintosh -detected as : 337 (PowerMac G5 Dual Core) -pmac flags : 00000000 -L2 cache : 1024K unified -pmac-generation : NewWorld - diff --git a/test/data/riscv_fake_cpuinfo b/test/data/riscv_fake_cpuinfo deleted file mode 100644 index 3f23c5e8..00000000 --- a/test/data/riscv_fake_cpuinfo +++ /dev/null @@ -1,2 +0,0 @@ -hart : 0 -isa : rv32a4p0c2pdfimsu_Xargle2P1_SXbargle diff --git a/test/data/riscv_sim_cpuinfo b/test/data/riscv_sim_cpuinfo deleted file mode 100644 index a87cdecb..00000000 --- a/test/data/riscv_sim_cpuinfo +++ /dev/null @@ -1,2 +0,0 @@ -hart : 0 -isa : RV64G diff --git a/test/data/rpi1_raspbian.dts b/test/data/rpi1_raspbian.dts deleted file mode 100644 index ce50cba4..00000000 --- a/test/data/rpi1_raspbian.dts +++ /dev/null @@ -1,758 +0,0 @@ -/dts-v1/; - -/ { - compatible = "brcm,bcm2835"; - serial-number = "00000000925ea123"; - model = "Raspberry Pi Model B Rev 1"; - memreserve = <0xf000000 0x1000000>; - interrupt-parent = <0x1>; - #address-cells = <0x1>; - #size-cells = <0x1>; - - clocks { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x0>; - - clock@3 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0x2>; - reg = <0x3>; - clock-output-names = "osc"; - clock-frequency = <0x124f800>; - }; - - clock@4 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0x11>; - reg = <0x4>; - clock-output-names = "otg"; - clock-frequency = <0x1c9c3800>; - }; - }; - - __overrides__ { - i2c1 = [00 00 00 1b 73 74 61 74 75 73 00]; - i2c_vc = [00 00 00 1b 73 74 61 74 75 73 00]; - sd_overclock = "", "", "", " brcm,overclock-50:0"; - i2c0_baudrate = [00 00 00 1a 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - sd_pio_limit = "", "", "", " brcm,pio-limit:0"; - act_led_trigger = [00 00 00 1c 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00]; - audio = [00 00 00 1d 73 74 61 74 75 73 00]; - sd_debug = "", "", "", " brcm,debug"; - cache_line_size = [00 00 00 15 63 61 63 68 65 2d 6c 69 6e 65 2d 73 69 7a 65 3a 30 00]; - i2c1_baudrate = [00 00 00 1b 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - spi = [00 00 00 19 73 74 61 74 75 73 00]; - i2c_arm = [00 00 00 1a 73 74 61 74 75 73 00]; - uart0 = [00 00 00 16 73 74 61 74 75 73 00]; - i2c2_iknowwhatimdoing = [00 00 00 10 73 74 61 74 75 73 00]; - i2s = [00 00 00 18 73 74 61 74 75 73 00]; - i2c0 = [00 00 00 1a 73 74 61 74 75 73 00]; - watchdog = [00 00 00 1e 73 74 61 74 75 73 00]; - i2c_baudrate = [00 00 00 1a 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - i2c_vc_baudrate = [00 00 00 1b 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - act_led_activelow = <0x1c 0x6770696f 0x733a3800>; - i2c2_baudrate = [00 00 00 10 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - sd_force_pio = "", "", "", " brcm,force-pio?"; - uart1 = [00 00 00 17 73 74 61 74 75 73 00]; - i2c_arm_baudrate = [00 00 00 1a 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - random = [00 00 00 1f 73 74 61 74 75 73 00]; - act_led_gpio = <0x1c 0x6770696f 0x733a3400>; - i2c = [00 00 00 1a 73 74 61 74 75 73 00]; - }; - - system { - linux,serial = <0x0 0x925b29dd>; - linux,revision = <0x2>; - }; - - __symbols__ { - pwm = "/soc/pwm@7e20c000"; - clk_usb = "/clocks/clock@4"; - pixelvalve0 = "/soc/pixelvalve@7e206000"; - intc = "/soc/interrupt-controller@7e00b200"; - spi2 = "/soc/spi@7e2150c0"; - dsi1 = "/soc/dsi@7e700000"; - clocks = "/soc/cprman@7e101000"; - i2c1 = "/soc/i2c@7e804000"; - i2c_vc = "/soc/i2c@7e804000"; - firmwarekms = "/soc/firmwarekms@7e600000"; - smi = "/soc/smi@7e600000"; - gpu = "/soc/gpu"; - spi0 = "/soc/spi@7e204000"; - thermal = "/soc/thermal"; - vdd_5v0_reg = "/fixedregulator_5v0"; - vchiq = "/soc/vchiq"; - sdhost = "/soc/sdhost@7e202000"; - aux = "/soc/aux@0x7e215000"; - gpio = "/soc/gpio@7e200000"; - dpi = "/soc/dpi@7e208000"; - v3d = "/soc/v3d@7ec00000"; - audio = "/soc/audio"; - vdd_3v3_reg = "/fixedregulator_3v3"; - dma = "/soc/dma@7e007000"; - spidev1 = "/soc/spi@7e204000/spidev@1"; - vc4 = "/soc/gpu"; - power = "/soc/power"; - soc = "/soc"; - leds = "/leds"; - i2s_pins = "/soc/gpio@7e200000/i2s"; - firmware = "/soc/firmware"; - cprman = "/soc/cprman@7e101000"; - mmc = "/soc/mmc@7e300000"; - pixelvalve1 = "/soc/pixelvalve@7e207000"; - spi = "/soc/spi@7e204000"; - spi0_pins = "/soc/gpio@7e200000/spi0_pins"; - pitouchscreen_touch = "/soc/i2cdsi/bridge@38"; - i2c_arm = "/soc/i2c@7e205000"; - clk_osc = "/clocks/clock@3"; - ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; - uart0 = "/soc/serial@7e201000"; - i2c1_pins = "/soc/gpio@7e200000/i2c1"; - fb = "/soc/fb"; - sdhost_pins = "/soc/gpio@7e200000/sdhost_pins"; - i2c2 = "/soc/i2c@7e805000"; - i2s = "/soc/i2s@7e203000"; - spi1 = "/soc/spi@7e215080"; - usb = "/soc/usb@7e980000"; - dsi0 = "/soc/dsi@7e209000"; - audio_pins = "/soc/gpio@7e200000/audio_pins"; - i2c0 = "/soc/i2c@7e205000"; - i2c0_pins = "/soc/gpio@7e200000/i2c0"; - watchdog = "/soc/watchdog@7e100000"; - vec = "/soc/vec@7e806000"; - i2c_dsi = "/soc/i2cdsi"; - pitouchscreen_bridge = "/soc/i2cdsi/bridge@45"; - spi0_cs_pins = "/soc/gpio@7e200000/spi0_cs_pins"; - sound = "/soc/sound"; - hvs = "/soc/hvs@7e400000"; - act_led = "/leds/act"; - spidev0 = "/soc/spi@7e204000/spidev@0"; - hdmi = "/soc/hdmi@7e902000"; - pixelvalve2 = "/soc/pixelvalve@7e807000"; - mailbox = "/soc/mailbox@7e00b880"; - uart1 = "/soc/serial@7e215040"; - random = "/soc/rng@7e104000"; - i2c = "/soc/i2c@7e205000"; - }; - - soc { - compatible = "simple-bus"; - ranges = <0x7e000000 0x20000000 0x2000000>; - #address-cells = <0x1>; - #size-cells = <0x1>; - phandle = <0x21>; - dma-ranges = <0x40000000 0x0 0x20000000>; - - serial@7e201000 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - clocks = <0x6 0x13 0x6 0x14>; - clock-names = "uartclk", "apb_pclk"; - status = "okay"; - interrupts = <0x2 0x19>; - phandle = <0x16>; - arm,primecell-periphid = <0x241011>; - reg = <0x7e201000 0x1000>; - }; - - pixelvalve@7e207000 { - compatible = "brcm,bcm2835-pixelvalve1"; - status = "disabled"; - interrupts = <0x2 0xe>; - phandle = <0x25>; - reg = <0x7e207000 0x100>; - }; - - cprman@7e101000 { - compatible = "brcm,bcm2835-cprman"; - clocks = <0x2 0x3 0x0 0x3 0x1 0x3 0x2 0x4 0x0 0x4 0x1 0x4 0x2>; - firmware = <0x5>; - #clock-cells = <0x1>; - phandle = <0x6>; - reg = <0x7e101000 0x2000>; - }; - - hvs@7e400000 { - compatible = "brcm,bcm2835-hvs"; - status = "disabled"; - interrupts = <0x2 0x1>; - phandle = <0x29>; - reg = <0x7e400000 0x6000>; - }; - - gpio@7e200000 { - compatible = "brcm,bcm2835-gpio"; - gpio-controller; - #interrupt-cells = <0x2>; - interrupts = <0x2 0x11 0x2 0x12>; - phandle = <0x9>; - reg = <0x7e200000 0xb4>; - #gpio-cells = <0x2>; - interrupt-controller; - - i2c1 { - brcm,pins = <0x2 0x3>; - phandle = <0xf>; - brcm,function = <0x4>; - }; - - spi0_pins { - brcm,pins = <0x9 0xa 0xb>; - phandle = <0xa>; - brcm,function = <0x4>; - }; - - sdhost_pins { - brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>; - phandle = <0x12>; - brcm,function = <0x4>; - }; - - i2s { - brcm,pins = <0x1c 0x1d 0x1e 0x1f>; - phandle = <0x8>; - brcm,function = <0x6>; - }; - - audio_pins { - brcm,pins = <0x28 0x2d>; - phandle = <0x14>; - brcm,function = <0x4>; - }; - - i2c0 { - brcm,pins = <0x0 0x1>; - phandle = <0xc>; - brcm,function = <0x4>; - }; - - spi0_cs_pins { - brcm,pins = <0x8 0x7>; - phandle = <0xb>; - brcm,function = <0x1>; - }; - }; - - pixelvalve@7e807000 { - compatible = "brcm,bcm2835-pixelvalve2"; - status = "disabled"; - interrupts = <0x2 0xa>; - phandle = <0x2b>; - reg = <0x7e807000 0x100>; - }; - - v3d@7ec00000 { - power-domains = <0xe 0xa>; - compatible = "brcm,vc4-v3d"; - status = "disabled"; - interrupts = <0x1 0xa>; - phandle = <0x2f>; - reg = <0x7ec00000 0x1000>; - }; - - gpu { - compatible = "brcm,bcm2835-vc4"; - status = "disabled"; - phandle = <0x30>; - }; - - mmc@7e300000 { - compatible = "brcm,bcm2835-mmc"; - clocks = <0x6 0x1c>; - status = "disabled"; - interrupts = <0x2 0x1e>; - brcm,overclock-50 = <0x0>; - dma-names = "rx-tx"; - phandle = <0x32>; - reg = <0x7e300000 0x100>; - dmas = <0x7 0xb>; - }; - - arm-pmu { - compatible = "arm,arm1176-pmu"; - }; - - thermal { - compatible = "brcm,bcm2835-thermal"; - firmware = <0x5>; - phandle = <0x39>; - }; - - spi@7e204000 { - compatible = "brcm,bcm2835-spi"; - clocks = <0x6 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x16>; - cs-gpios = <0x9 0x8 0x1 0x9 0x7 0x1>; - #size-cells = <0x0>; - dma-names = "tx", "rx"; - phandle = <0x19>; - reg = <0x7e204000 0x1000>; - pinctrl-0 = <0xa 0xb>; - dmas = <0x7 0x6 0x7 0x7>; - pinctrl-names = "default"; - - spidev@1 { - compatible = "spidev"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x23>; - reg = <0x1>; - spi-max-frequency = <0x7a120>; - }; - - spidev@0 { - compatible = "spidev"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x22>; - reg = <0x0>; - spi-max-frequency = <0x7a120>; - }; - }; - - i2cdsi { - gpios = <0x9 0x2 0x0 0x9 0x3 0x0>; - compatible = "i2c-gpio"; - status = "disabled"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x35>; - - bridge@45 { - compatible = "raspberrypi,touchscreen-bridge-i2c"; - phandle = <0x36>; - reg = <0x45>; - }; - - bridge@38 { - compatible = "raspberrypi,touchscreen-ts-i2c"; - phandle = <0x37>; - reg = <0x38>; - }; - }; - - vchiq { - compatible = "brcm,bcm2835-vchiq"; - cache-line-size = <0x20>; - firmware = <0x5>; - interrupts = <0x0 0x2>; - phandle = <0x15>; - reg = <0x7e00b840 0xf>; - }; - - i2c@7e804000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x6 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x1b>; - reg = <0x7e804000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0xf>; - pinctrl-names = "default"; - }; - - audio { - brcm,pwm-channels = <0x8>; - compatible = "brcm,bcm2835-audio"; - status = "okay"; - phandle = <0x1d>; - pinctrl-0 = <0x14>; - pinctrl-names = "default"; - }; - - timer@7e003000 { - compatible = "brcm,bcm2835-system-timer"; - interrupts = <0x1 0x0 0x1 0x1 0x1 0x2 0x1 0x3>; - reg = <0x7e003000 0x1000>; - clock-frequency = <0xf4240>; - }; - - i2s@7e203000 { - compatible = "brcm,bcm2835-i2s"; - clocks = <0x6 0x1f>; - #sound-dai-cells = <0x0>; - status = "disabled"; - dma-names = "tx", "rx"; - phandle = <0x18>; - reg = <0x7e203000 0x24>; - pinctrl-0 = <0x8>; - dmas = <0x7 0x2 0x7 0x3>; - pinctrl-names = "default"; - }; - - mailbox@7e00b880 { - compatible = "brcm,bcm2835-mbox"; - #mbox-cells = <0x0>; - interrupts = <0x0 0x1>; - phandle = <0x13>; - reg = <0x7e00b880 0x40>; - }; - - gpiomem { - compatible = "brcm,bcm2835-gpiomem"; - reg = <0x7e200000 0x1000>; - }; - - vec@7e806000 { - compatible = "brcm,bcm2835-vec"; - clocks = <0x6 0x18>; - status = "disabled"; - interrupts = <0x2 0x1b>; - phandle = <0x2a>; - reg = <0x7e806000 0x1000>; - }; - - power { - compatible = "raspberrypi,bcm2835-power"; - firmware = <0x5>; - phandle = <0xe>; - #power-domain-cells = <0x1>; - }; - - pixelvalve@7e206000 { - compatible = "brcm,bcm2835-pixelvalve0"; - status = "disabled"; - interrupts = <0x2 0xd>; - phandle = <0x24>; - reg = <0x7e206000 0x100>; - }; - - firmware { - compatible = "raspberrypi,bcm2835-firmware"; - mboxes = <0x13>; - phandle = <0x5>; - }; - - dsi@7e209000 { - compatible = "brcm,bcm2835-dsi0"; - clocks = <0x6 0x20 0x6 0x2f 0x6 0x31>; - clock-names = "phy", "escape", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x4>; - #size-cells = <0x0>; - #clock-cells = <0x1>; - phandle = <0x3>; - reg = <0x7e209000 0x78>; - clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; - }; - - fb { - compatible = "brcm,bcm2708-fb"; - firmware = <0x5>; - status = "okay"; - phandle = <0x38>; - }; - - sdhost@7e202000 { - compatible = "brcm,bcm2835-sdhost"; - clocks = <0x6 0x14>; - brcm,pio-limit = <0x1>; - status = "okay"; - interrupts = <0x2 0x18>; - brcm,overclock-50 = <0x0>; - bus-width = <0x4>; - dma-names = "rx-tx"; - phandle = <0x20>; - reg = <0x7e202000 0x100>; - pinctrl-0 = <0x12>; - dmas = <0x7 0xd>; - pinctrl-names = "default"; - }; - - dpi@7e208000 { - compatible = "brcm,bcm2835-dpi"; - clocks = <0x6 0x14 0x6 0x2c>; - clock-names = "core", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x31>; - reg = <0x7e208000 0x8c>; - }; - - hdmi@7e902000 { - power-domains = <0xe 0x5>; - compatible = "brcm,bcm2835-hdmi"; - clocks = <0x6 0x10 0x6 0x19>; - clock-names = "pixel", "hdmi"; - ddc = <0x10>; - status = "disabled"; - interrupts = <0x2 0x8 0x2 0x9>; - dma-names = "audio-rx"; - phandle = <0x2c>; - hpd-gpios = <0x9 0x2e 0x0>; - reg = <0x7e902000 0x600 0x7e808000 0x100>; - dmas = <0x7 0x11>; - }; - - pwm@7e20c000 { - compatible = "brcm,bcm2835-pwm"; - clocks = <0x6 0x1e>; - status = "disabled"; - assigned-clock-rates = <0x989680>; - assigned-clocks = <0x6 0x1e>; - phandle = <0x28>; - reg = <0x7e20c000 0x28>; - #pwm-cells = <0x2>; - }; - - watchdog@7e100000 { - compatible = "brcm,bcm2835-pm-wdt"; - phandle = <0x1e>; - reg = <0x7e100000 0x28>; - }; - - interrupt-controller@7e00b200 { - compatible = "brcm,bcm2835-armctrl-ic"; - #interrupt-cells = <0x2>; - phandle = <0x1>; - reg = <0x7e00b200 0x200>; - interrupt-controller; - }; - - dsi@7e700000 { - power-domains = <0xe 0x12>; - compatible = "brcm,bcm2835-dsi1"; - clocks = <0x6 0x23 0x6 0x30 0x6 0x32>; - clock-names = "phy", "escape", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0xc>; - #size-cells = <0x0>; - #clock-cells = <0x1>; - phandle = <0x4>; - reg = <0x7e700000 0x8c>; - clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; - }; - - sound { - status = "disabled"; - phandle = <0x3a>; - }; - - i2c@7e205000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x6 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x1a>; - reg = <0x7e205000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0xc>; - pinctrl-names = "default"; - }; - - serial@7e215040 { - compatible = "brcm,bcm2835-aux-uart"; - clocks = <0xd 0x0>; - status = "disabled"; - interrupt-parent = <0xd>; - interrupts = <0x0>; - phandle = <0x17>; - reg = <0x7e215040 0x40>; - }; - - dma@7e007000 { - #dma-cells = <0x1>; - compatible = "brcm,bcm2835-dma"; - brcm,dma-channel-mask = <0x7f34>; - interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1c>; - phandle = <0x7>; - reg = <0x7e007000 0xf00>; - interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all"; - }; - - i2c@7e805000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x6 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x10>; - reg = <0x7e805000 0x1000>; - clock-frequency = <0x186a0>; - }; - - spi@7e215080 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0xd 0x1>; - status = "disabled"; - interrupt-parent = <0xd>; - #address-cells = <0x1>; - interrupts = <0x1>; - #size-cells = <0x0>; - phandle = <0x26>; - reg = <0x7e215080 0x40>; - }; - - aux@0x7e215000 { - compatible = "brcm,bcm2835-aux"; - clocks = <0x6 0x14>; - #interrupt-cells = <0x1>; - interrupts = <0x1 0x1d>; - #clock-cells = <0x1>; - phandle = <0xd>; - reg = <0x7e215000 0x8>; - interrupt-controller; - }; - - firmwarekms@7e600000 { - compatible = "raspberrypi,rpi-firmware-kms"; - status = "disabled"; - interrupts = <0x2 0x10>; - brcm,firmware = <0x5>; - phandle = <0x33>; - reg = <0x7e600000 0x100>; - }; - - rng@7e104000 { - compatible = "brcm,bcm2835-rng"; - phandle = <0x1f>; - reg = <0x7e104000 0x10>; - }; - - usb@7e980000 { - power-domains = <0xe 0x6>; - compatible = "brcm,bcm2708-usb"; - clocks = <0x11>; - clock-names = "otg"; - #address-cells = <0x1>; - interrupts = <0x2 0x0 0x1 0x9>; - #size-cells = <0x0>; - phandle = <0x2d>; - reg = <0x7e980000 0x10000 0x7e006000 0x1000>; - - usb1@1 { - compatible = "usb424,9512"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0x1>; - - usbether@1 { - compatible = "usb424,ec00"; - local-mac-address = [04 05 07 01 02 03]; - phandle = <0x2e>; - reg = <0x1>; - }; - }; - }; - - smi@7e600000 { - compatible = "brcm,bcm2835-smi"; - clocks = <0x6 0x2a>; - status = "disabled"; - interrupts = <0x2 0x10>; - assigned-clock-rates = <0x7735940>; - dma-names = "rx-tx"; - assigned-clocks = <0x6 0x2a>; - phandle = <0x34>; - reg = <0x7e600000 0x100>; - dmas = <0x7 0x4>; - }; - - spi@7e2150c0 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0xd 0x2>; - status = "disabled"; - interrupt-parent = <0xd>; - #address-cells = <0x1>; - interrupts = <0x2>; - #size-cells = <0x0>; - phandle = <0x27>; - reg = <0x7e2150c0 0x40>; - }; - }; - - leds { - compatible = "gpio-leds"; - phandle = <0x3d>; - - act { - gpios = <0x9 0x10 0x1>; - label = "led0"; - phandle = <0x1c>; - linux,default-trigger = "mmc0"; - }; - }; - - aliases { - intc = "/soc/interrupt-controller@7e00b200"; - spi2 = "/soc/spi@7e2150c0"; - i2c1 = "/soc/i2c@7e804000"; - i2c_vc = "/soc/i2c@7e804000"; - spi0 = "/soc/spi@7e204000"; - thermal = "/soc/thermal"; - vchiq = "/soc/vchiq"; - sdhost = "/soc/sdhost@7e202000"; - aux = "/soc/aux@0x7e215000"; - gpio = "/soc/gpio@7e200000"; - audio = "/soc/audio"; - dma = "/soc/dma@7e007000"; - soc = "/soc"; - leds = "/leds"; - mmc = "/soc/mmc@7e300000"; - serial1 = "/soc/serial@7e215040"; - i2c_arm = "/soc/i2c@7e205000"; - ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; - uart0 = "/soc/serial@7e201000"; - fb = "/soc/fb"; - i2c2 = "/soc/i2c@7e805000"; - i2s = "/soc/i2s@7e203000"; - spi1 = "/soc/spi@7e215080"; - usb = "/soc/usb@7e980000"; - i2c0 = "/soc/i2c@7e205000"; - watchdog = "/soc/watchdog@7e100000"; - sound = "/soc/sound"; - mailbox = "/soc/mailbox@7e00b880"; - uart1 = "/soc/serial@7e215040"; - random = "/soc/rng@7e104000"; - i2c = "/soc/i2c@7e205000"; - serial0 = "/soc/serial@7e201000"; - }; - - chosen { - bootargs = "bcm2708_fb.fbwidth=1680 bcm2708_fb.fbheight=1050 bcm2708_fb.fbdepth=16 bcm2708_fb.fbswap=1 vc_mem.mem_base=0xfa00000 vc_mem.mem_size=0x10000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait"; - kaslr-seed = <0xb1f76783 0x32e6766e>; - }; - - memory { - device_type = "memory"; - reg = <0x0 0xf000000>; - }; - - fixedregulator_3v3 { - compatible = "regulator-fixed"; - phandle = <0x3c>; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-always-on; - regulator-name = "3v3"; - }; - - fixedregulator_5v0 { - compatible = "regulator-fixed"; - phandle = <0x3b>; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - regulator-always-on; - regulator-name = "5v0"; - }; - - axi { - - vc_mem { - reg = <0xfa00000 0x10000000 0x40000000>; - }; - }; -}; diff --git a/test/data/rpi3_arch_arm64.dts b/test/data/rpi3_arch_arm64.dts deleted file mode 100644 index 5054edd1..00000000 --- a/test/data/rpi3_arch_arm64.dts +++ /dev/null @@ -1,666 +0,0 @@ -/dts-v1/; - -/ { - compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; - serial-number = "00000000d544ea12"; - model = "Raspberry Pi 3 Model B"; - interrupt-parent = <0x1>; - #address-cells = <0x1>; - #size-cells = <0x1>; - - clocks { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x0>; - - clock@3 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0x3>; - reg = <0x3>; - clock-output-names = "osc"; - clock-frequency = <0x124f800>; - linux,phandle = <0x3>; - }; - - clock@4 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0xe>; - reg = <0x4>; - clock-output-names = "otg"; - clock-frequency = <0x1c9c3800>; - linux,phandle = <0xe>; - }; - }; - - soc { - compatible = "simple-bus"; - ranges = <0x7e000000 0x3f000000 0x1000000 0x40000000 0x40000000 0x1000>; - #address-cells = <0x1>; - #size-cells = <0x1>; - dma-ranges = <0xc0000000 0x0 0x3f000000>; - - serial@7e201000 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - clocks = <0x4 0x13 0x4 0x14>; - clock-names = "uartclk", "apb_pclk"; - interrupts = <0x2 0x19>; - arm,primecell-periphid = <0x241011>; - reg = <0x7e201000 0x1000>; - }; - - pixelvalve@7e207000 { - compatible = "brcm,bcm2835-pixelvalve1"; - interrupts = <0x2 0xe>; - reg = <0x7e207000 0x100>; - }; - - cprman@7e101000 { - compatible = "brcm,bcm2835-cprman"; - clocks = <0x3>; - #clock-cells = <0x1>; - phandle = <0x4>; - reg = <0x7e101000 0x2000>; - linux,phandle = <0x4>; - }; - - thermal@7e212000 { - compatible = "brcm,bcm2837-thermal"; - clocks = <0x4 0x1b>; - status = "okay"; - reg = <0x7e212000 0x8>; - }; - - hvs@7e400000 { - compatible = "brcm,bcm2835-hvs"; - interrupts = <0x2 0x1>; - reg = <0x7e400000 0x6000>; - }; - - gpio@7e200000 { - compatible = "brcm,bcm2835-gpio"; - gpio-controller; - #interrupt-cells = <0x2>; - interrupts = <0x2 0x11 0x2 0x12 0x2 0x13 0x2 0x14>; - phandle = <0x11>; - reg = <0x7e200000 0xb4>; - #gpio-cells = <0x2>; - linux,phandle = <0x11>; - pinctrl-names = "default"; - interrupt-controller; - - uart0_gpio14 { - brcm,pins = <0xe 0xf>; - brcm,function = <0x4>; - }; - - gpclk1_gpio5 { - brcm,pins = <0x5>; - brcm,function = <0x4>; - }; - - uart1_ctsrts_gpio16 { - brcm,pins = <0x10 0x11>; - brcm,function = <0x2>; - }; - - jtag_gpio4 { - brcm,pins = <0x4 0x5 0x6 0xc 0xd>; - brcm,function = <0x3>; - }; - - alt0 { - brcm,pins = <0x4 0x5 0x7 0x8 0x9 0xa 0xb 0xe 0xf>; - brcm,function = <0x4>; - }; - - uart0_gpio30 { - brcm,pins = <0x1e 0x1f>; - brcm,function = <0x7>; - }; - - uart1_ctsrts_gpio42 { - brcm,pins = <0x2a 0x2b>; - brcm,function = <0x2>; - }; - - gpclk0_gpio4 { - brcm,pins = <0x4>; - brcm,function = <0x4>; - }; - - pwm0_gpio12 { - brcm,pins = <0xc>; - brcm,function = <0x4>; - }; - - pwm1_gpio19 { - brcm,pins = <0x13>; - brcm,function = <0x2>; - }; - - pwm0_gpio40 { - brcm,pins = <0x28>; - phandle = <0x8>; - brcm,function = <0x4>; - linux,phandle = <0x8>; - }; - - gpclk2_gpio43 { - brcm,pins = <0x2b>; - brcm,function = <0x4>; - }; - - uart1_ctsrts_gpio30 { - brcm,pins = <0x1e 0x1f>; - brcm,function = <0x2>; - }; - - gpioout { - brcm,pins = <0x6>; - brcm,function = <0x1>; - }; - - spi0_gpio35 { - brcm,pins = <0x23 0x24 0x25 0x26 0x27>; - brcm,function = <0x4>; - }; - - pwm1_gpio45 { - brcm,pins = <0x2d>; - phandle = <0x9>; - brcm,function = <0x4>; - linux,phandle = <0x9>; - }; - - pcm_gpio28 { - brcm,pins = <0x1c 0x1d 0x1e 0x1f>; - brcm,function = <0x6>; - }; - - dpi_gpio0 { - brcm,pins = <0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b>; - brcm,function = <0x6>; - }; - - i2c0_gpio0 { - brcm,pins = <0x0 0x1>; - phandle = <0x6>; - brcm,function = <0x4>; - linux,phandle = <0x6>; - }; - - pcm_gpio18 { - brcm,pins = <0x12 0x13 0x14 0x15>; - brcm,function = <0x4>; - }; - - pwm1_gpio13 { - brcm,pins = <0xd>; - brcm,function = <0x4>; - }; - - pwm1_gpio41 { - brcm,pins = <0x29>; - brcm,function = <0x4>; - }; - - spi0_gpio7 { - brcm,pins = <0x7 0x8 0x9 0xa 0xb>; - brcm,function = <0x4>; - }; - - i2c1_gpio44 { - brcm,pins = <0x2c 0x2d>; - brcm,function = <0x6>; - }; - - i2c_slave_gpio18 { - brcm,pins = <0x12 0x13 0x14 0x15>; - brcm,function = <0x7>; - }; - - emmc_gpio48 { - brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>; - phandle = <0xa>; - brcm,function = <0x7>; - linux,phandle = <0xa>; - }; - - i2c1_gpio2 { - brcm,pins = <0x2 0x3>; - phandle = <0xb>; - brcm,function = <0x4>; - linux,phandle = <0xb>; - }; - - spi1_gpio16 { - brcm,pins = <0x10 0x11 0x12 0x13 0x14 0x15>; - brcm,function = <0x3>; - }; - - jtag_gpio22 { - brcm,pins = <0x16 0x17 0x18 0x19 0x1a 0x1b>; - brcm,function = <0x3>; - }; - - uart1_gpio36 { - brcm,pins = <0x24 0x25 0x26 0x27>; - brcm,function = <0x6>; - }; - - spi2_gpio40 { - brcm,pins = <0x28 0x29 0x2a 0x2b 0x2c 0x2d>; - brcm,function = <0x3>; - }; - - i2c0_gpio44 { - brcm,pins = <0x2c 0x2d>; - brcm,function = <0x5>; - }; - - uart0_ctsrts_gpio16 { - brcm,pins = <0x10 0x11>; - brcm,function = <0x7>; - }; - - gpclk2_gpio6 { - brcm,pins = <0x6>; - brcm,function = <0x4>; - }; - - sdhost_gpio48 { - brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>; - brcm,function = <0x4>; - }; - - emmc_gpio34 { - brcm,pins = <0x22 0x23 0x24 0x25 0x26 0x27>; - brcm,pull = <0x0 0x2 0x2 0x2 0x2 0x2>; - brcm,function = <0x7>; - }; - - gpclk1_gpio44 { - brcm,pins = <0x2c>; - brcm,function = <0x4>; - }; - - uart1_gpio14 { - brcm,pins = <0xe 0xf>; - brcm,function = <0x2>; - }; - - i2c0_gpio32 { - brcm,pins = <0x20 0x22>; - brcm,function = <0x4>; - }; - - uart1_gpio32 { - brcm,pins = <0x20 0x21>; - brcm,function = <0x2>; - }; - - pwm0_gpio18 { - brcm,pins = <0x12>; - brcm,function = <0x2>; - }; - - gpclk1_gpio42 { - brcm,pins = <0x2a>; - brcm,function = <0x4>; - }; - - uart0_ctsrts_gpio32 { - brcm,pins = <0x20 0x21>; - brcm,function = <0x7>; - }; - - uart1_gpio40 { - brcm,pins = <0x28 0x29>; - brcm,function = <0x2>; - }; - - emmc_gpio22 { - brcm,pins = <0x16 0x17 0x18 0x19 0x1a 0x1b>; - brcm,function = <0x7>; - }; - }; - - pixelvalve@7e807000 { - compatible = "brcm,bcm2835-pixelvalve2"; - interrupts = <0x2 0xa>; - reg = <0x7e807000 0x100>; - }; - - v3d@7ec00000 { - power-domains = <0xc 0xa>; - compatible = "brcm,bcm2835-v3d"; - interrupts = <0x1 0xa>; - reg = <0x7ec00000 0x1000>; - }; - - gpu { - compatible = "brcm,bcm2835-vc4"; - }; - - spi@7e204000 { - compatible = "brcm,bcm2835-spi"; - clocks = <0x4 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x16>; - #size-cells = <0x0>; - reg = <0x7e204000 0x1000>; - }; - - sdhci@7e300000 { - compatible = "brcm,bcm2835-sdhci"; - clocks = <0x4 0x1c>; - status = "okay"; - interrupts = <0x2 0x1e>; - bus-width = <0x4>; - reg = <0x7e300000 0x100>; - pinctrl-0 = <0xa>; - pinctrl-names = "default"; - }; - - i2c@7e804000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x4 0x14>; - status = "okay"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - reg = <0x7e804000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0xb>; - pinctrl-names = "default"; - }; - - timer@7e003000 { - compatible = "brcm,bcm2835-system-timer"; - interrupts = <0x1 0x0 0x1 0x1 0x1 0x2 0x1 0x3>; - reg = <0x7e003000 0x1000>; - clock-frequency = <0xf4240>; - }; - - i2s@7e203000 { - compatible = "brcm,bcm2835-i2s"; - status = "disabled"; - dma-names = "tx", "rx"; - reg = <0x7e203000 0x20 0x7e101098 0x2>; - dmas = <0x5 0x2 0x5 0x3>; - }; - - mailbox@7e00b880 { - compatible = "brcm,bcm2835-mbox"; - #mbox-cells = <0x0>; - interrupts = <0x0 0x1>; - phandle = <0xf>; - reg = <0x7e00b880 0x40>; - linux,phandle = <0xf>; - }; - - vec@7e806000 { - power-domains = <0xc 0x7>; - compatible = "brcm,bcm2835-vec"; - clocks = <0x4 0x18>; - status = "okay"; - interrupts = <0x2 0x1b>; - reg = <0x7e806000 0x1000>; - }; - - power { - compatible = "raspberrypi,bcm2835-power"; - firmware = <0x10>; - phandle = <0xc>; - linux,phandle = <0xc>; - #power-domain-cells = <0x1>; - }; - - pixelvalve@7e206000 { - compatible = "brcm,bcm2835-pixelvalve0"; - interrupts = <0x2 0xd>; - reg = <0x7e206000 0x100>; - }; - - firmware { - compatible = "raspberrypi,bcm2835-firmware"; - mboxes = <0xf>; - phandle = <0x10>; - linux,phandle = <0x10>; - }; - - hdmi@7e902000 { - power-domains = <0xc 0x5>; - compatible = "brcm,bcm2835-hdmi"; - clocks = <0x4 0x10 0x4 0x19>; - clock-names = "pixel", "hdmi"; - ddc = <0xd>; - status = "okay"; - interrupts = <0x2 0x8 0x2 0x9>; - reg = <0x7e902000 0x600 0x7e808000 0x100>; - }; - - pwm@7e20c000 { - compatible = "brcm,bcm2835-pwm"; - clocks = <0x4 0x1e>; - status = "okay"; - assigned-clock-rates = <0x989680>; - assigned-clocks = <0x4 0x1e>; - reg = <0x7e20c000 0x28>; - pinctrl-0 = <0x8 0x9>; - #pwm-cells = <0x2>; - pinctrl-names = "default"; - }; - - watchdog@7e100000 { - compatible = "brcm,bcm2835-pm-wdt"; - reg = <0x7e100000 0x28>; - }; - - interrupt-controller@7e00b200 { - compatible = "brcm,bcm2836-armctrl-ic"; - #interrupt-cells = <0x2>; - interrupt-parent = <0x2>; - interrupts = <0x8>; - phandle = <0x1>; - reg = <0x7e00b200 0x200>; - linux,phandle = <0x1>; - interrupt-controller; - }; - - local_intc { - compatible = "brcm,bcm2836-l1-intc"; - #interrupt-cells = <0x1>; - interrupt-parent = <0x2>; - phandle = <0x2>; - reg = <0x40000000 0x100>; - linux,phandle = <0x2>; - interrupt-controller; - }; - - i2c@7e205000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x4 0x14>; - status = "okay"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - reg = <0x7e205000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0x6>; - pinctrl-names = "default"; - }; - - serial@7e215040 { - compatible = "brcm,bcm2835-aux-uart"; - clocks = <0x7 0x0>; - status = "okay"; - interrupts = <0x1 0x1d>; - reg = <0x7e215040 0x40>; - }; - - dma@7e007000 { - #dma-cells = <0x1>; - compatible = "brcm,bcm2835-dma"; - brcm,dma-channel-mask = <0x7f35>; - interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1c>; - phandle = <0x5>; - reg = <0x7e007000 0xf00>; - linux,phandle = <0x5>; - interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all"; - }; - - i2c@7e805000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x4 0x14>; - status = "okay"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0xd>; - reg = <0x7e805000 0x1000>; - linux,phandle = <0xd>; - }; - - spi@7e215080 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0x7 0x1>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x1 0x1d>; - #size-cells = <0x0>; - reg = <0x7e215080 0x40>; - }; - - aux@0x7e215000 { - compatible = "brcm,bcm2835-aux"; - clocks = <0x4 0x14>; - #clock-cells = <0x1>; - phandle = <0x7>; - reg = <0x7e215000 0x8>; - linux,phandle = <0x7>; - }; - - rng@7e104000 { - compatible = "brcm,bcm2835-rng"; - reg = <0x7e104000 0x10>; - }; - - usb@7e980000 { - power-domains = <0xc 0x6>; - compatible = "brcm,bcm2835-usb"; - clocks = <0xe>; - clock-names = "otg"; - #address-cells = <0x1>; - interrupts = <0x1 0x9>; - #size-cells = <0x0>; - reg = <0x7e980000 0x10000>; - dr_mode = "host"; - - usb1@1 { - compatible = "usb424,9514"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0x1>; - - usbether@1 { - compatible = "usb424,ec00"; - reg = <0x1>; - }; - }; - }; - - spi@7e2150c0 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0x7 0x2>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x1 0x1d>; - #size-cells = <0x0>; - reg = <0x7e2150c0 0x40>; - }; - }; - - leds { - compatible = "gpio-leds"; - - act { - gpios = <0x11 0x2f 0x0>; - label = "ACT"; - default-state = "keep"; - linux,default-trigger = "heartbeat"; - }; - }; - - aliases { - ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; - }; - - chosen { - bootargs = "console=ttyS0,115200 console=tty0 root=PARTUUID=08d5518c-02 rw rootwait smsc95xx.macaddr=01:02:03:04:05:06"; - linux,initrd-start = ":wP"; - linux,initrd-end = <0x3ab2d71e>; - }; - - framebuffer@3daf0000 { - compatible = "simple-framebuffer"; - width = <0x290>; - stride = <0xa40>; - status = "okay"; - reg = <0x3daf0000 0x10a800>; - format = "a8r8g8b8"; - height = <0x1a0>; - }; - - timer { - compatible = "arm,armv7-timer"; - always-on; - interrupt-parent = <0x2>; - interrupts = <0x0 0x1 0x3 0x2>; - }; - - memory { - device_type = "memory"; - reg = <0x0 0x3b000000>; - }; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - - cpu@3 { - compatible = "arm,cortex-a53"; - cpu-release-addr = <0x0 0xf0>; - device_type = "cpu"; - enable-method = "spin-table"; - reg = <0x3>; - }; - - cpu@1 { - compatible = "arm,cortex-a53"; - cpu-release-addr = <0x0 0xe0>; - device_type = "cpu"; - enable-method = "spin-table"; - reg = <0x1>; - }; - - cpu@2 { - compatible = "arm,cortex-a53"; - cpu-release-addr = <0x0 0xe8>; - device_type = "cpu"; - enable-method = "spin-table"; - reg = <0x2>; - }; - - cpu@0 { - compatible = "arm,cortex-a53"; - cpu-release-addr = <0x0 0xd8>; - device_type = "cpu"; - enable-method = "spin-table"; - reg = <0x0>; - }; - }; -}; diff --git a/test/data/rpi3_raspbian.dts b/test/data/rpi3_raspbian.dts deleted file mode 100644 index 9d6bf638..00000000 --- a/test/data/rpi3_raspbian.dts +++ /dev/null @@ -1,892 +0,0 @@ -/dts-v1/; - -/ { - compatible = "brcm,bcm2837", "brcm,bcm2836"; - serial-number = "00000000d544ea12"; - model = "Raspberry Pi 3 Model B Rev 1.2"; - memreserve = <0x3b000000 0x4000000>; - interrupt-parent = <0x1>; - #address-cells = <0x1>; - #size-cells = <0x1>; - - clocks { - compatible = "simple-bus"; - #address-cells = <0x1>; - #size-cells = <0x0>; - - clock@3 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0x3>; - reg = <0x3>; - clock-output-names = "osc"; - clock-frequency = <0x124f800>; - }; - - clock@4 { - compatible = "fixed-clock"; - #clock-cells = <0x0>; - phandle = <0x16>; - reg = <0x4>; - clock-output-names = "otg"; - clock-frequency = <0x1c9c3800>; - }; - }; - - __overrides__ { - pwr_led_gpio = "", "", "", "(gpios:4"; - i2c1 = "", "", "", "&status"; - i2c_vc = "", "", "", "%status"; - sd_overclock = "", "", "", ",brcm,overclock-50:0"; - i2c0_baudrate = "", "", "", "%clock-frequency:0"; - sd_pio_limit = "", "", "", ",brcm,pio-limit:0"; - act_led_trigger = "", "", "", "'linux,default-trigger"; - audio = "", "", "", ")status"; - sd_debug = "", "", "", ",brcm,debug"; - cache_line_size = [00 00 00 1c 63 61 63 68 65 2d 6c 69 6e 65 2d 73 69 7a 65 3a 30 00]; - i2c1_baudrate = "", "", "", "&clock-frequency:0"; - spi = "", "", "", "$status"; - i2c_arm = "", "", "", "&status"; - pwr_led_activelow = "", "", "", "(gpios:8"; - uart0 = "", "", "", "!status"; - i2c2_iknowwhatimdoing = [00 00 00 14 73 74 61 74 75 73 00]; - i2s = "", "", "", "#status"; - i2c0 = "", "", "", "%status"; - arm_freq = <0x1d 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0x1e636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000 0x1f 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0x20636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000>; - watchdog = "", "", "", "*status"; - i2c_baudrate = "", "", "", "&clock-frequency:0"; - i2c_vc_baudrate = "", "", "", "%clock-frequency:0"; - act_led_activelow = "", "", "", "'gpios:8"; - i2c2_baudrate = [00 00 00 14 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00]; - sd_force_pio = "", "", "", ",brcm,force-pio?"; - pwr_led_trigger = "", "", "", "(linux,default-trigger"; - uart1 = "", "", "", "\"status"; - i2c_arm_baudrate = "", "", "", "&clock-frequency:0"; - random = "", "", "", "+status"; - act_led_gpio = "", "", "", "'gpios:4"; - i2c = "", "", "", "&status"; - }; - - system { - linux,serial = <0x0 0xd5442118>; - linux,revision = <0xa02082>; - }; - - __symbols__ { - pwm = "/soc/pwm@7e20c000"; - clk_usb = "/clocks/clock@4"; - pixelvalve0 = "/soc/pixelvalve@7e206000"; - intc = "/soc/interrupt-controller@7e00b200"; - spi2 = "/soc/spi@7e2150c0"; - dsi1 = "/soc/dsi@7e700000"; - clocks = "/soc/cprman@7e101000"; - i2c1 = "/soc/i2c@7e804000"; - i2c_vc = "/soc/i2c@7e205000"; - firmwarekms = "/soc/firmwarekms@7e600000"; - smi = "/soc/smi@7e600000"; - gpu = "/soc/gpu"; - spi0 = "/soc/spi@7e204000"; - thermal = "/soc/thermal"; - vdd_5v0_reg = "/fixedregulator_5v0"; - vchiq = "/soc/vchiq"; - sdhost = "/soc/sdhost@7e202000"; - aux = "/soc/aux@0x7e215000"; - gpio = "/soc/gpio@7e200000"; - dpi = "/soc/dpi@7e208000"; - v3d = "/soc/v3d@7ec00000"; - audio = "/soc/audio"; - vdd_3v3_reg = "/fixedregulator_3v3"; - dma = "/soc/dma@7e007000"; - spidev1 = "/soc/spi@7e204000/spidev@1"; - v7_cpu3 = "/cpus/cpu@3"; - vc4 = "/soc/gpu"; - power = "/soc/power"; - soc = "/soc"; - v7_cpu1 = "/cpus/cpu@1"; - leds = "/leds"; - i2s_pins = "/soc/gpio@7e200000/i2s"; - firmware = "/soc/firmware"; - cprman = "/soc/cprman@7e101000"; - mmc = "/soc/mmc@7e300000"; - pixelvalve1 = "/soc/pixelvalve@7e207000"; - spi = "/soc/spi@7e204000"; - spi0_pins = "/soc/gpio@7e200000/spi0_pins"; - pitouchscreen_touch = "/soc/i2cdsi/bridge@38"; - i2c_arm = "/soc/i2c@7e804000"; - clk_osc = "/clocks/clock@3"; - ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; - uart0 = "/soc/serial@7e201000"; - i2c1_pins = "/soc/gpio@7e200000/i2c1"; - fb = "/soc/fb"; - sdhost_pins = "/soc/gpio@7e200000/sdhost_pins"; - i2c2 = "/soc/i2c@7e805000"; - uart1_pins = "/soc/gpio@7e200000/uart1_pins"; - i2s = "/soc/i2s@7e203000"; - spi1 = "/soc/spi@7e215080"; - virtgpio = "/soc/virtgpio"; - usb = "/soc/usb@7e980000"; - dsi0 = "/soc/dsi@7e209000"; - expgpio = "/soc/expgpio"; - audio_pins = "/soc/gpio@7e200000/audio_pins"; - i2c0 = "/soc/i2c@7e205000"; - i2c0_pins = "/soc/gpio@7e200000/i2c0"; - pwr_led = "/leds/pwr"; - watchdog = "/soc/watchdog@7e100000"; - uart0_pins = "/soc/gpio@7e200000/uart0_pins"; - vec = "/soc/vec@7e806000"; - local_intc = "/soc/local_intc"; - i2c_dsi = "/soc/i2cdsi"; - pitouchscreen_bridge = "/soc/i2cdsi/bridge@45"; - spi0_cs_pins = "/soc/gpio@7e200000/spi0_cs_pins"; - sound = "/soc/sound"; - hvs = "/soc/hvs@7e400000"; - act_led = "/leds/act"; - spidev0 = "/soc/spi@7e204000/spidev@0"; - v7_cpu2 = "/cpus/cpu@2"; - bt_pins = "/soc/gpio@7e200000/bt_pins"; - sdio_pins = "/soc/gpio@7e200000/sdio_pins"; - cpus = "/cpus"; - hdmi = "/soc/hdmi@7e902000"; - pixelvalve2 = "/soc/pixelvalve@7e807000"; - v7_cpu0 = "/cpus/cpu@0"; - mailbox = "/soc/mailbox@7e00b880"; - uart1 = "/soc/serial@7e215040"; - random = "/soc/rng@7e104000"; - i2c = "/soc/i2c@7e804000"; - }; - - soc { - compatible = "simple-bus"; - ranges = <0x7e000000 0x3f000000 0x1000000 0x40000000 0x40000000 0x40000>; - #address-cells = <0x1>; - #size-cells = <0x1>; - phandle = <0x2d>; - dma-ranges = <0xc0000000 0x0 0x3f000000>; - - serial@7e201000 { - compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell"; - clocks = <0x7 0x13 0x7 0x14>; - clock-names = "uartclk", "apb_pclk"; - status = "okay"; - interrupts = <0x2 0x19>; - phandle = <0x21>; - arm,primecell-periphid = <0x241011>; - reg = <0x7e201000 0x1000>; - pinctrl-0 = <0x8 0x9>; - pinctrl-names = "default"; - }; - - pixelvalve@7e207000 { - compatible = "brcm,bcm2835-pixelvalve1"; - status = "disabled"; - interrupts = <0x2 0xe>; - phandle = <0x31>; - reg = <0x7e207000 0x100>; - }; - - cprman@7e101000 { - compatible = "brcm,bcm2835-cprman"; - clocks = <0x3 0x4 0x0 0x4 0x1 0x4 0x2 0x5 0x0 0x5 0x1 0x5 0x2>; - firmware = <0x6>; - #clock-cells = <0x1>; - phandle = <0x7>; - reg = <0x7e101000 0x2000>; - }; - - hvs@7e400000 { - compatible = "brcm,bcm2835-hvs"; - status = "disabled"; - interrupts = <0x2 0x1>; - phandle = <0x35>; - reg = <0x7e400000 0x6000>; - }; - - gpio@7e200000 { - compatible = "brcm,bcm2835-gpio"; - gpio-controller; - #interrupt-cells = <0x2>; - interrupts = <0x2 0x11 0x2 0x12>; - phandle = <0xc>; - reg = <0x7e200000 0xb4>; - #gpio-cells = <0x2>; - interrupt-controller; - - i2c1 { - brcm,pins = <0x2 0x3>; - phandle = <0x13>; - brcm,function = <0x4>; - }; - - spi0_pins { - brcm,pins = <0x9 0xa 0xb>; - phandle = <0xd>; - brcm,function = <0x4>; - }; - - sdhost_pins { - brcm,pins = <0x30 0x31 0x32 0x33 0x34 0x35>; - phandle = <0x17>; - brcm,function = <0x4>; - }; - - uart1_pins { - brcm,pins; - phandle = <0x11>; - brcm,pull; - brcm,function; - }; - - i2s { - brcm,pins = <0x12 0x13 0x14 0x15>; - phandle = <0xb>; - brcm,function = <0x4>; - }; - - audio_pins { - brcm,pins = <0x28 0x29>; - phandle = <0x1a>; - brcm,function = <0x4>; - }; - - i2c0 { - brcm,pins = <0x0 0x1>; - phandle = <0xf>; - brcm,function = <0x4>; - }; - - uart0_pins { - brcm,pins = <0x20 0x21>; - phandle = <0x8>; - brcm,pull = <0x0 0x2>; - brcm,function = <0x7>; - }; - - spi0_cs_pins { - brcm,pins = <0x8 0x7>; - phandle = <0xe>; - brcm,function = <0x1>; - }; - - bt_pins { - brcm,pins = <0x2b>; - phandle = <0x9>; - brcm,pull = <0x0>; - brcm,function = <0x4>; - }; - - sdio_pins { - brcm,pins = <0x22 0x23 0x24 0x25 0x26 0x27>; - phandle = <0x18>; - brcm,pull = <0x0 0x2 0x2 0x2 0x2 0x2>; - brcm,function = <0x7>; - }; - }; - - pixelvalve@7e807000 { - compatible = "brcm,bcm2835-pixelvalve2"; - status = "disabled"; - interrupts = <0x2 0xa>; - phandle = <0x37>; - reg = <0x7e807000 0x100>; - }; - - v3d@7ec00000 { - power-domains = <0x12 0xa>; - compatible = "brcm,vc4-v3d"; - status = "disabled"; - interrupts = <0x1 0xa>; - phandle = <0x3b>; - reg = <0x7ec00000 0x1000>; - }; - - gpu { - compatible = "brcm,bcm2835-vc4"; - status = "disabled"; - phandle = <0x3c>; - }; - - mmc@7e300000 { - compatible = "brcm,bcm2835-mmc"; - clocks = <0x7 0x1c>; - status = "okay"; - interrupts = <0x2 0x1e>; - brcm,overclock-50 = <0x0>; - bus-width = <0x4>; - dma-names = "rx-tx"; - phandle = <0x3e>; - reg = <0x7e300000 0x100>; - pinctrl-0 = <0x18>; - dmas = <0xa 0xb>; - non-removable; - pinctrl-names = "default"; - }; - - arm-pmu { - compatible = "arm,cortex-a7-pmu"; - interrupt-parent = <0x2>; - interrupts = <0x9>; - }; - - thermal { - compatible = "brcm,bcm2835-thermal"; - firmware = <0x6>; - phandle = <0x45>; - }; - - spi@7e204000 { - compatible = "brcm,bcm2835-spi"; - clocks = <0x7 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x16>; - cs-gpios = <0xc 0x8 0x1 0xc 0x7 0x1>; - #size-cells = <0x0>; - dma-names = "tx", "rx"; - phandle = <0x24>; - reg = <0x7e204000 0x1000>; - pinctrl-0 = <0xd 0xe>; - dmas = <0xa 0x6 0xa 0x7>; - pinctrl-names = "default"; - - spidev@1 { - compatible = "spidev"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x2f>; - reg = <0x1>; - spi-max-frequency = <0x7a120>; - }; - - spidev@0 { - compatible = "spidev"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x2e>; - reg = <0x0>; - spi-max-frequency = <0x7a120>; - }; - }; - - i2cdsi { - gpios = <0xc 0x2c 0x0 0xc 0x2d 0x0>; - compatible = "i2c-gpio"; - status = "disabled"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x41>; - - bridge@45 { - compatible = "raspberrypi,touchscreen-bridge-i2c"; - phandle = <0x42>; - reg = <0x45>; - }; - - bridge@38 { - compatible = "raspberrypi,touchscreen-ts-i2c"; - phandle = <0x43>; - reg = <0x38>; - }; - }; - - vchiq { - compatible = "brcm,bcm2835-vchiq"; - cache-line-size = <0x40>; - firmware = <0x6>; - interrupts = <0x0 0x2>; - phandle = <0x1c>; - reg = <0x7e00b840 0xf>; - }; - - i2c@7e804000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x7 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x26>; - reg = <0x7e804000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0x13>; - pinctrl-names = "default"; - }; - - audio { - brcm,pwm-channels = <0x8>; - compatible = "brcm,bcm2835-audio"; - status = "okay"; - phandle = <0x29>; - pinctrl-0 = <0x1a>; - pinctrl-names = "default"; - }; - - i2s@7e203000 { - compatible = "brcm,bcm2835-i2s"; - clocks = <0x7 0x1f>; - #sound-dai-cells = <0x0>; - status = "disabled"; - dma-names = "tx", "rx"; - phandle = <0x23>; - reg = <0x7e203000 0x24>; - pinctrl-0 = <0xb>; - dmas = <0xa 0x2 0xa 0x3>; - pinctrl-names = "default"; - }; - - mailbox@7e00b880 { - compatible = "brcm,bcm2835-mbox"; - #mbox-cells = <0x0>; - interrupts = <0x0 0x1>; - phandle = <0x19>; - reg = <0x7e00b880 0x40>; - }; - - gpiomem { - compatible = "brcm,bcm2835-gpiomem"; - reg = <0x7e200000 0x1000>; - }; - - vec@7e806000 { - compatible = "brcm,bcm2835-vec"; - clocks = <0x7 0x18>; - status = "disabled"; - interrupts = <0x2 0x1b>; - phandle = <0x36>; - reg = <0x7e806000 0x1000>; - }; - - power { - compatible = "raspberrypi,bcm2835-power"; - firmware = <0x6>; - phandle = <0x12>; - #power-domain-cells = <0x1>; - }; - - pixelvalve@7e206000 { - compatible = "brcm,bcm2835-pixelvalve0"; - status = "disabled"; - interrupts = <0x2 0xd>; - phandle = <0x30>; - reg = <0x7e206000 0x100>; - }; - - firmware { - compatible = "raspberrypi,bcm2835-firmware"; - mboxes = <0x19>; - phandle = <0x6>; - }; - - dsi@7e209000 { - compatible = "brcm,bcm2835-dsi0"; - clocks = <0x7 0x20 0x7 0x2f 0x7 0x31>; - clock-names = "phy", "escape", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x4>; - #size-cells = <0x0>; - #clock-cells = <0x1>; - phandle = <0x4>; - reg = <0x7e209000 0x78>; - clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; - }; - - fb { - compatible = "brcm,bcm2708-fb"; - firmware = <0x6>; - status = "okay"; - phandle = <0x44>; - }; - - sdhost@7e202000 { - compatible = "brcm,bcm2835-sdhost"; - clocks = <0x7 0x14>; - brcm,pio-limit = <0x1>; - status = "okay"; - interrupts = <0x2 0x18>; - brcm,overclock-50 = <0x0>; - bus-width = <0x4>; - dma-names = "rx-tx"; - phandle = <0x2c>; - reg = <0x7e202000 0x100>; - pinctrl-0 = <0x17>; - dmas = <0xa 0xd>; - pinctrl-names = "default"; - }; - - virtgpio { - compatible = "brcm,bcm2835-virtgpio"; - gpio-controller; - firmware = <0x6>; - status = "okay"; - phandle = <0x1b>; - #gpio-cells = <0x2>; - }; - - dpi@7e208000 { - compatible = "brcm,bcm2835-dpi"; - clocks = <0x7 0x14 0x7 0x2c>; - clock-names = "core", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x3d>; - reg = <0x7e208000 0x8c>; - }; - - expgpio { - compatible = "brcm,bcm2835-expgpio"; - gpio-controller; - firmware = <0x6>; - status = "okay"; - phandle = <0x15>; - #gpio-cells = <0x2>; - }; - - hdmi@7e902000 { - power-domains = <0x12 0x5>; - compatible = "brcm,bcm2835-hdmi"; - clocks = <0x7 0x10 0x7 0x19>; - clock-names = "pixel", "hdmi"; - ddc = <0x14>; - status = "disabled"; - interrupts = <0x2 0x8 0x2 0x9>; - dma-names = "audio-rx"; - phandle = <0x38>; - hpd-gpios = <0x15 0x4 0x1>; - reg = <0x7e902000 0x600 0x7e808000 0x100>; - dmas = <0xa 0x11>; - }; - - timer { - compatible = "arm,armv7-timer"; - always-on; - interrupt-parent = <0x2>; - interrupts = <0x0 0x1 0x3 0x2>; - }; - - pwm@7e20c000 { - compatible = "brcm,bcm2835-pwm"; - clocks = <0x7 0x1e>; - status = "disabled"; - assigned-clock-rates = <0x989680>; - assigned-clocks = <0x7 0x1e>; - phandle = <0x34>; - reg = <0x7e20c000 0x28>; - #pwm-cells = <0x2>; - }; - - watchdog@7e100000 { - compatible = "brcm,bcm2835-pm-wdt"; - phandle = <0x2a>; - reg = <0x7e100000 0x28>; - }; - - interrupt-controller@7e00b200 { - compatible = "brcm,bcm2836-armctrl-ic"; - #interrupt-cells = <0x2>; - interrupt-parent = <0x2>; - interrupts = <0x8>; - phandle = <0x1>; - reg = <0x7e00b200 0x200>; - interrupt-controller; - }; - - local_intc { - compatible = "brcm,bcm2836-l1-intc"; - #interrupt-cells = <0x1>; - interrupt-parent = <0x2>; - phandle = <0x2>; - reg = <0x40000000 0x100>; - interrupt-controller; - }; - - dsi@7e700000 { - power-domains = <0x12 0x12>; - compatible = "brcm,bcm2835-dsi1"; - clocks = <0x7 0x23 0x7 0x30 0x7 0x32>; - clock-names = "phy", "escape", "pixel"; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0xc>; - #size-cells = <0x0>; - #clock-cells = <0x1>; - phandle = <0x5>; - reg = <0x7e700000 0x8c>; - clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; - }; - - sound { - status = "disabled"; - phandle = <0x46>; - }; - - i2c@7e205000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x7 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x25>; - reg = <0x7e205000 0x1000>; - clock-frequency = <0x186a0>; - pinctrl-0 = <0xf>; - pinctrl-names = "default"; - }; - - serial@7e215040 { - compatible = "brcm,bcm2835-aux-uart"; - clocks = <0x10 0x0>; - status = "disabled"; - interrupt-parent = <0x10>; - interrupts = <0x0>; - phandle = <0x22>; - reg = <0x7e215040 0x40>; - pinctrl-0 = <0x11>; - pinctrl-names = "default"; - }; - - dma@7e007000 { - #dma-cells = <0x1>; - compatible = "brcm,bcm2835-dma"; - brcm,dma-channel-mask = <0x7f34>; - interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1b 0x1 0x1c>; - phandle = <0xa>; - reg = <0x7e007000 0xf00>; - interrupt-names = "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7", "dma8", "dma9", "dma10", "dma11", "dma12", "dma13", "dma14", "dma-shared-all"; - }; - - i2c@7e805000 { - compatible = "brcm,bcm2835-i2c"; - clocks = <0x7 0x14>; - status = "disabled"; - #address-cells = <0x1>; - interrupts = <0x2 0x15>; - #size-cells = <0x0>; - phandle = <0x14>; - reg = <0x7e805000 0x1000>; - clock-frequency = <0x186a0>; - }; - - spi@7e215080 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0x10 0x1>; - status = "disabled"; - interrupt-parent = <0x10>; - #address-cells = <0x1>; - interrupts = <0x1>; - #size-cells = <0x0>; - phandle = <0x32>; - reg = <0x7e215080 0x40>; - }; - - aux@0x7e215000 { - compatible = "brcm,bcm2835-aux"; - clocks = <0x7 0x14>; - #interrupt-cells = <0x1>; - interrupts = <0x1 0x1d>; - #clock-cells = <0x1>; - phandle = <0x10>; - reg = <0x7e215000 0x8>; - interrupt-controller; - }; - - firmwarekms@7e600000 { - compatible = "raspberrypi,rpi-firmware-kms"; - status = "disabled"; - interrupts = <0x2 0x10>; - brcm,firmware = <0x6>; - phandle = <0x3f>; - reg = <0x7e600000 0x100>; - }; - - rng@7e104000 { - compatible = "brcm,bcm2835-rng"; - phandle = <0x2b>; - reg = <0x7e104000 0x10>; - }; - - syscon@40000000 { - compatible = "brcm,bcm2836-arm-local", "syscon"; - reg = <0x40000000 0x100>; - }; - - usb@7e980000 { - power-domains = <0x12 0x6>; - compatible = "brcm,bcm2708-usb"; - clocks = <0x16>; - clock-names = "otg"; - #address-cells = <0x1>; - interrupts = <0x2 0x0 0x1 0x9>; - #size-cells = <0x0>; - phandle = <0x39>; - reg = <0x7e980000 0x10000 0x7e006000 0x1000>; - - usb1@1 { - compatible = "usb424,9514"; - #address-cells = <0x1>; - #size-cells = <0x0>; - reg = <0x1>; - - usbether@1 { - compatible = "usb424,ec00"; - local-mac-address = [04 05 06 01 02 03]; - phandle = <0x3a>; - reg = <0x1>; - }; - }; - }; - - smi@7e600000 { - compatible = "brcm,bcm2835-smi"; - clocks = <0x7 0x2a>; - status = "disabled"; - interrupts = <0x2 0x10>; - assigned-clock-rates = <0x7735940>; - dma-names = "rx-tx"; - assigned-clocks = <0x7 0x2a>; - phandle = <0x40>; - reg = <0x7e600000 0x100>; - dmas = <0xa 0x4>; - }; - - spi@7e2150c0 { - compatible = "brcm,bcm2835-aux-spi"; - clocks = <0x10 0x2>; - status = "disabled"; - interrupt-parent = <0x10>; - #address-cells = <0x1>; - interrupts = <0x2>; - #size-cells = <0x0>; - phandle = <0x33>; - reg = <0x7e2150c0 0x40>; - }; - }; - - leds { - compatible = "gpio-leds"; - phandle = <0x49>; - - act { - gpios = <0x1b 0x0 0x0>; - label = "led0"; - phandle = <0x27>; - linux,default-trigger = "mmc0"; - }; - - pwr { - gpios = <0x15 0x7 0x0>; - label = "led1"; - phandle = <0x28>; - linux,default-trigger = "input"; - }; - }; - - aliases { - intc = "/soc/interrupt-controller@7e00b200"; - spi2 = "/soc/spi@7e2150c0"; - i2c1 = "/soc/i2c@7e804000"; - i2c_vc = "/soc/i2c@7e205000"; - spi0 = "/soc/spi@7e204000"; - thermal = "/soc/thermal"; - vchiq = "/soc/vchiq"; - sdhost = "/soc/sdhost@7e202000"; - aux = "/soc/aux@0x7e215000"; - gpio = "/soc/gpio@7e200000"; - audio = "/soc/audio"; - dma = "/soc/dma@7e007000"; - soc = "/soc"; - leds = "/leds"; - mmc = "/soc/mmc@7e300000"; - serial1 = "/soc/serial@7e201000"; - i2c_arm = "/soc/i2c@7e804000"; - ethernet = "/soc/usb@7e980000/usb1@1/usbether@1"; - uart0 = "/soc/serial@7e201000"; - fb = "/soc/fb"; - i2c2 = "/soc/i2c@7e805000"; - i2s = "/soc/i2s@7e203000"; - spi1 = "/soc/spi@7e215080"; - usb = "/soc/usb@7e980000"; - i2c0 = "/soc/i2c@7e205000"; - watchdog = "/soc/watchdog@7e100000"; - sound = "/soc/sound"; - mailbox = "/soc/mailbox@7e00b880"; - uart1 = "/soc/serial@7e215040"; - random = "/soc/rng@7e104000"; - i2c = "/soc/i2c@7e804000"; - serial0 = "/soc/serial@7e215040"; - }; - - chosen { - bootargs = "8250.nr_uarts=0 bcm2708_fb.fbwidth=640 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait"; - kaslr-seed = <0xef42e779 0x662d8187>; - }; - - memory { - device_type = "memory"; - reg = <0x0 0x3b000000>; - }; - - fixedregulator_3v3 { - compatible = "regulator-fixed"; - phandle = <0x48>; - regulator-min-microvolt = <0x325aa0>; - regulator-max-microvolt = <0x325aa0>; - regulator-always-on; - regulator-name = "3v3"; - }; - - cpus { - #address-cells = <0x1>; - #size-cells = <0x0>; - phandle = <0x4a>; - - cpu@3 { - compatible = "arm,cortex-a7"; - device_type = "cpu"; - phandle = <0x20>; - reg = <0x3>; - clock-frequency = <0x47868c00>; - }; - - cpu@1 { - compatible = "arm,cortex-a7"; - device_type = "cpu"; - phandle = <0x1e>; - reg = <0x1>; - clock-frequency = <0x47868c00>; - }; - - cpu@2 { - compatible = "arm,cortex-a7"; - device_type = "cpu"; - phandle = <0x1f>; - reg = <0x2>; - clock-frequency = <0x47868c00>; - }; - - cpu@0 { - compatible = "arm,cortex-a7"; - device_type = "cpu"; - phandle = <0x1d>; - reg = <0x0>; - clock-frequency = <0x47868c00>; - }; - }; - - fixedregulator_5v0 { - compatible = "regulator-fixed"; - phandle = <0x47>; - regulator-min-microvolt = <0x4c4b40>; - regulator-max-microvolt = <0x4c4b40>; - regulator-always-on; - regulator-name = "5v0"; - }; - - axi { - - vc_mem { - reg = <0x3dc00000 0x3f000000 0xc0000000>; - }; - }; -}; diff --git a/test/data/s390_hurcules_cpuinfo b/test/data/s390_hurcules_cpuinfo deleted file mode 100644 index 722678f0..00000000 --- a/test/data/s390_hurcules_cpuinfo +++ /dev/null @@ -1,5 +0,0 @@ -vendor_id : IBM/S390 -# processors : 2 -bogomips per cpu: 411.23 -processor 0: version = FF, identification = 111000, machine = 7060 -processor 1: version = FF, identification = 111111, machine = 7060 diff --git a/test/data/sh_dreamcast_cpuinfo b/test/data/sh_dreamcast_cpuinfo deleted file mode 100644 index 84e9dd90..00000000 --- a/test/data/sh_dreamcast_cpuinfo +++ /dev/null @@ -1,9 +0,0 @@ -machine : Sega Dreamcast -processor : 0 -cpu family : sh4 -cpu type : SH7750 -cache size : 8K-bytes/16K-bytes -bogomips : 199.06 -cpu clock : 199.49MHz -bus clock : 99.74MHz -module clock : 49.87MHz diff --git a/test/data/sh_sh3_cpuinfo b/test/data/sh_sh3_cpuinfo deleted file mode 100644 index a9389bec..00000000 --- a/test/data/sh_sh3_cpuinfo +++ /dev/null @@ -1,4 +0,0 @@ -cpu family : SH-3 -cache size : 8K-byte -bogomips : 39.83 - diff --git a/test/data/sh_sh64_cpuinfo b/test/data/sh_sh64_cpuinfo deleted file mode 100644 index ba869c45..00000000 --- a/test/data/sh_sh64_cpuinfo +++ /dev/null @@ -1,13 +0,0 @@ -machine : Hitachi Cayman -processor : 0 -cpu family : SH-5 -cpu type : SH5-101 -icache size : 32K-bytes -dcache size : 32K-bytes -itlb entries : 64 -dtlb entries : 64 -cpu clock : 314.73MHz -bus clock : 157.36MHz -module clock : 26.22MHz -bogomips : 313.75 - diff --git a/test/data/sparc_m7_cpuinfo b/test/data/sparc_m7_cpuinfo deleted file mode 100644 index b3556e30..00000000 --- a/test/data/sparc_m7_cpuinfo +++ /dev/null @@ -1,45 +0,0 @@ -cpu : SPARC-M7 -fpu : SPARC-M7 integrated FPU -pmu : sparc-m7 -prom : OBP 4.40.1 2016/04/25 06:45 -type : sun4v -ncpus probed : 16 -ncpus active : 16 -D$ parity tl1 : 0 -I$ parity tl1 : 0 -cpucaps : flush,stbar,swap,muldiv,v9,blkinit,n2,mul32,div32,v8plus,popc,vis,vis2,ASIBlkInit,fmaf,vis3,hpc,ima,pause,cbcond,adp,aes,des,camellia,md5,sha1,sha256,sha512,mpmul,montmul,montsqr,crc32c -Cpu0ClkTck : 00000000f65c15b0 -Cpu1ClkTck : 00000000f65c15b0 -Cpu2ClkTck : 00000000f65c15b0 -Cpu3ClkTck : 00000000f65c15b0 -Cpu4ClkTck : 00000000f65c15b0 -Cpu5ClkTck : 00000000f65c15b0 -Cpu6ClkTck : 00000000f65c15b0 -Cpu7ClkTck : 00000000f65c15b0 -Cpu8ClkTck : 00000000f65c15b0 -Cpu9ClkTck : 00000000f65c15b0 -Cpu10ClkTck : 00000000f65c15b0 -Cpu11ClkTck : 00000000f65c15b0 -Cpu12ClkTck : 00000000f65c15b0 -Cpu13ClkTck : 00000000f65c15b0 -Cpu14ClkTck : 00000000f65c15b0 -Cpu15ClkTck : 00000000f65c15b0 -MMU Type : Hypervisor (sun4v) -MMU PGSZs : 8K,64K,4MB,256MB,2GB,16GB -State: -CPU0: online -CPU1: online -CPU2: online -CPU3: online -CPU4: online -CPU5: online -CPU6: online -CPU7: online -CPU8: online -CPU9: online -CPU10: online -CPU11: online -CPU12: online -CPU13: online -CPU14: online -CPU15: online diff --git a/test/data/x86_amdr7_cpuinfo b/test/data/x86_amdr7_cpuinfo deleted file mode 100644 index ba527616..00000000 --- a/test/data/x86_amdr7_cpuinfo +++ /dev/null @@ -1,447 +0,0 @@ -processor : 0 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 0 -cpu cores : 8 -apicid : 0 -initial apicid : 0 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 1 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 0 -cpu cores : 8 -apicid : 1 -initial apicid : 1 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 2 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 1 -cpu cores : 8 -apicid : 2 -initial apicid : 2 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 3 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 1 -cpu cores : 8 -apicid : 3 -initial apicid : 3 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 4 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 2 -cpu cores : 8 -apicid : 4 -initial apicid : 4 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 5 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 2 -cpu cores : 8 -apicid : 5 -initial apicid : 5 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 6 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 3 -cpu cores : 8 -apicid : 6 -initial apicid : 6 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 7 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 3 -cpu cores : 8 -apicid : 7 -initial apicid : 7 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 8 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 3600.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 4 -cpu cores : 8 -apicid : 8 -initial apicid : 8 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 9 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 4 -cpu cores : 8 -apicid : 9 -initial apicid : 9 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 10 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 5 -cpu cores : 8 -apicid : 10 -initial apicid : 10 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 11 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 5 -cpu cores : 8 -apicid : 11 -initial apicid : 11 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 12 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 6 -cpu cores : 8 -apicid : 12 -initial apicid : 12 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 13 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 6 -cpu cores : 8 -apicid : 13 -initial apicid : 13 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 14 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 7 -cpu cores : 8 -apicid : 14 -initial apicid : 14 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] - -processor : 15 -vendor_id : AuthenticAMD -cpu family : 23 -model : 1 -model name : AMD Ryzen 7 1800X Eight-Core Processor -stepping : 1 -microcode : 0x8001105 -cpu MHz : 2200.000 -cache size : 512 KB -physical id : 0 -siblings : 16 -core id : 7 -cpu cores : 8 -apicid : 15 -initial apicid : 15 -fpu : yes -fpu_exception : yes -cpuid level : 13 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca -bugs : fxsave_leak sysret_ss_attrs null_seg -bogomips : 7186.18 -TLB size : 2560 4K pages -clflush size : 64 -cache_alignment : 64 -address sizes : 48 bits physical, 48 bits virtual -power management: ts ttp tm hwpstate eff_freq_ro [13] [14] diff --git a/test/data/x86_cyrix6x86coma_cpuinfo b/test/data/x86_cyrix6x86coma_cpuinfo deleted file mode 100644 index 9080825f..00000000 --- a/test/data/x86_cyrix6x86coma_cpuinfo +++ /dev/null @@ -1,17 +0,0 @@ -processor : 0 -vendor_id : CyrixInstead -cpu family : 5 -model : 4 -model name : 6x86L 2x Core/Bus Clock -stepping : 2 -fdiv_bug : no -hlt_bug : no -sep_bug : no -f00f_bug : no -coma_bug : yes -fpu : yes -fpu_exception : yes -cpuid level : 1 -wp : yes -flags : fpu de cx8 mtrr -bogomips : 149.50 diff --git a/test/data/x86_pent_cpuinfo b/test/data/x86_pent_cpuinfo deleted file mode 100644 index e8a7ef81..00000000 --- a/test/data/x86_pent_cpuinfo +++ /dev/null @@ -1,17 +0,0 @@ -processor : 0 -vendor_id : GenuineIntel -cpu family : 5 -model : 4 -model name : Pentium MMX -stepping : 3 -cpu MHz : 232.300 -fdiv_bug : no -hlt_bug : no -f00f_bug : yes -coma_bug : no -fpu : yes -fpu_exception : yes -cpuid level : 1 -wp : yes -flags : fpu vme de pse tsc msr mce cx8 mmx -bogomips : 465.42 diff --git a/test/data/x86_pentf00f_cpuinfo b/test/data/x86_pentf00f_cpuinfo deleted file mode 100644 index 7a511dd3..00000000 --- a/test/data/x86_pentf00f_cpuinfo +++ /dev/null @@ -1,18 +0,0 @@ -processor : 0 -vendor_id : GenuineIntel -cpu family : 5 -model : 2 -model name : Pentium 75 - 200 -stepping : 12 -cpu MHz : 133.335273 -fdiv_bug : no -hlt_bug : no -sep_bug : no -f00f_bug : yes -fpu : yes -fpu_exception : yes -cpuid level : 1 -wp : yes -flags : fpu vme de pse tsc msr mce cx8 -bogomips : 53.04 - diff --git a/test/just_bench.sh b/test/just_bench.sh deleted file mode 100644 index 2ae7698e..00000000 --- a/test/just_bench.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -# -# bash just_bench.sh >whatever.conf -# -# hardinfo PR instructions: -# crudini --merge ../data/benchmark.conf < whatever.conf -# git checkout -b br_whatever -# git add ../data/benchmark.conf -# git commit -m "bench_result: whatever" -# git push -u br_whatever -# https://github.com/lpereira/hardinfo/pulls - -USER_NOTE="$1" - -do_hi_bench() { - sleep 1 - echo "[$1]" - if [ "$USER_NOTE" != "" ]; then - hardinfo -b "$1" -g conf -u "$USER_NOTE" - else - hardinfo -b "$1" -g conf - fi -} - -if [ ! -z `which sysbench` ]; then - do_hi_bench "SysBench CPU (Single-thread)" - do_hi_bench "SysBench CPU (Multi-thread)" - #do_hi_bench "SysBench CPU (Four threads)" - do_hi_bench "SysBench Memory (Single-thread)" - #do_hi_bench "SysBench Memory (Two threads)" - do_hi_bench "SysBench Memory" -fi - -do_hi_bench "CPU Blowfish (Single-thread)" -do_hi_bench "CPU Blowfish (Multi-thread)" -do_hi_bench "CPU Blowfish (Multi-core)" -do_hi_bench "CPU CryptoHash" -do_hi_bench "CPU Fibonacci" -do_hi_bench "CPU N-Queens" -do_hi_bench "CPU Zlib" -do_hi_bench "FPU FFT" -do_hi_bench "FPU Raytracing" -#do_hi_bench "GPU Drawing" diff --git a/test/rm_hardinfo.sh b/test/rm_hardinfo.sh deleted file mode 100644 index 8cd58075..00000000 --- a/test/rm_hardinfo.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!bash - -# when you just want it all gone. -# -# it is not smart in any way, and will screw up your package manager -# if hardinfo is installed as a package. - -if [[ $EUID -ne 0 ]]; then - echo "This script must be run as root." - exit 1 -fi - -remove_hardinfo() { - BASEDER="$1" - echo "Removing hardinfo from $BASEDER ..." - rm -rf "$BASEDER/share/hardinfo" - rm -rf "$BASEDER/lib/hardinfo" - rm -f "$BASEDER"/share/locale/*/LC_MESSAGES/hardinfo.mo - rm -f "$BASEDER/bin/hardinfo" - rm -f "$BASEDER/share/applications/hardinfo.desktop" - rm -f "$BASEDER/share/doc/hardinfo" - rm -f "$BASEDER/share/man/man1/hardinfo.1.gz" - rm -f "$BASEDER/share/pixmaps/hardinfo.xpm" - rm -f "$BASEDER/share/menu/hardinfo" - #locate -e hardinfo | grep "$BASEDER" -} - -remove_hardinfo "/usr/local" -remove_hardinfo "/usr" -# add some other base install path here diff --git a/test/test.sh b/test/test.sh deleted file mode 100755 index b293bc49..00000000 --- a/test/test.sh +++ /dev/null @@ -1,42 +0,0 @@ - -DATADER=`pwd` - -do_test() { - ARCH="$1" - CPUINFO="$DATADER/$2" - mkdir "build-$ARCH" - cd "build-$ARCH" - cmake ../.. -DOVRARCH=$ARCH -DOVRCPUINFO=\"$CPUINFO\" - make -j - cd .. -} - -#do_test x86 data/x86_pent_cpuinfo -#do_test x86 data/x86_amdr7_cpuinfo -#do_test x86 data/x86_pentf00f_cpuinfo -#do_test x86 data/x86_cyrix6x86coma_cpuinfo -#do_test ppc data/ppc_g5_cpuinfo -#do_test ppc data/power8_cpuinfo -#do_test arm data/arm_rpi3_aarch64_cpuinfo -#do_test arm data/arm_jetsontx2_cpuinfo -#do_test sparc data/sparc_m7_cpuinfo -#do_test mips data/mips_loongson_cpuinfo -#do_test alpha data/alpha_as_cpuinfo -#do_test parisc data/parisc_hppa_fortex4_cpuinfo -#do_test ia64 data/ia64_x2_cpuinfo -#do_test m68k data/m68k_sun3_cpuinfo -#do_test sh data/sh_dreamcast_cpuinfo -#do_test sh data/sh_sh3_cpuinfo -#do_test sh data/sh_sh64_cpuinfo -#do_test s390 data/s390_hurcules_cpuinfo -#do_test riscv data/riscv_sim_cpuinfo -#do_test riscv data/riscv_fake_cpuinfo -#do_test e2k data/e2k_elbrus_4x_e4c_cpuinfo -#do_test e2k data/e2k_elbrus_e1c+_cpuinfo -#do_test e2k data/e2k_elbrus_e2c+_cpuinfo -#do_test e2k data/e2k_elbrus_e8c_cpuinfo -do_test e2k data/e2k_elbrus_801_pc_e8c_cpuinfo -#do_test e2k data/e2k_elbrus_4x_e8c_cpuinfo -#do_test e2k data/e2k_elbrus_e8c2_cpuinfo -#do_test e2k data/e2k_elbrus_e16c_cpuinfo -#do_test e2k data/e2k_elbrus_e2c3_cpuinfo diff --git a/test/ws_scan.sh b/test/ws_scan.sh deleted file mode 100644 index d22586f8..00000000 --- a/test/ws_scan.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!bash - -# checks for mixed indentation and empty lines with whitespace -# run from test/ - -cd .. -grep -lHIrP --include=*.{h,c} -- '^((\t+ +)|( +\t+)|\s+$)' | sed 's/^/- [ ] /' > test/hardinfo-bad.txt -grep -LHIrP --include=*.{h,c} -- '^((\t+ +)|( +\t+)|\s+$)' | sed 's/^/- [x] /' > test/hardinfo-good.txt -cat test/hardinfo-bad.txt test/hardinfo-good.txt | LC_ALL=C sort -k 1.5 | grep -vP " (test|build|deps)" -rm test/hardinfo-bad.txt test/hardinfo-good.txt -cd test diff --git a/tools/benchmark-conf-to-json.py b/tools/benchmark-conf-to-json.py deleted file mode 100755 index a2e3547c..00000000 --- a/tools/benchmark-conf-to-json.py +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/python -# Script to convert benchmark.conf to benchmark.json -# Hopefully we won't have to maintain benchmark.conf files any longer after -# we fully switch to JSON. - -from configparser import ConfigParser as config_parser -from collections import defaultdict -import json -import sys -import re - -def guess_old_style_used_threads(bench_name, num_threads): - if bench_name == 'CPU Fibonacci': - return 1 - if bench_name == 'CPU FFT': - if num_threads >= 4: - return 4 - if num_threads >= 2: - return 2 - return 1 - if bench_name == 'CPU N-Queens': - if num_threads >= 10: - return 10 - if num_threads >= 5: - return 5 - if num_threads >= 2: - return 2 - return 1 - return num_threads - -def first_truthy_or_none(*args): - for arg in args: - if arg: - return arg - return None - -def nice_cpu_name(name, - trademark_stuff = re.compile(r'\((r|tm|c)\)', re.I), - vendor_intel = re.compile(r'Intel '), - vendor_amd = re.compile(r'AMD '), - integrated_processor = re.compile(r'(Integrated Processor|Processor)', re.I), - frequency = re.compile(r'(\d+\.?\d+?\+?\s*[GH]z)'), - core_count = re.compile(r'(Dual|Triple|Quad|Six|Eight|Octal|Twelve|Sixteen|\d+)[ -]Core'), - radeon = re.compile(r'(with )?Radeon'), - cpu_apu = re.compile(r' [CA]PU'), - multiple_spaces = re.compile(r'\s\s+')): - # Cleaned-up port of nice_name_x86_cpuid_model_string() from - # deps/sysobj_early/src/nice_name.c - - name = name.strip() - - name = name.replace("@", "") - - # Move vendor to front - match = first_truthy_or_none(vendor_intel.search(name), vendor_amd.search(name)) - if match: - span = match.span() - name = name[span[0]:span[1]] + name[:span[0]] + name[span[1]:] - - # Remove vendor-specific crud - if name.startswith("AMD"): - name = name.replace("Mobile Technology", "Mobile") - name = radeon.sub("", name) - if "COMPUTE CORES" in name: - name, _ = name.split(',', 2) - elif name.startswith("Cyrix"): - name = name.replace("tm ", "") - else: - name = name.replace("Genuine Intel", "Intel") - - for regex in (cpu_apu, integrated_processor, frequency, core_count, trademark_stuff): - name = regex.sub("", name) - name = multiple_spaces.sub(" ", name) - - return name.strip() - -def cleanup_old_style_cpu_name(name): - if any(vendor in name for vendor in ('Intel', 'AMD', 'VIA', 'Cyrix')): - return nice_cpu_name(name) - return name - -def cpu_config_val(config, - mult_freq_re = re.compile(r'((?P\d+)x\s+)?(?P\d+\.?\d*)')): - # "2x 1400.00 MHz + 2x 800.00 MHz" -> 4400.0 - value = 0.0 - for _, num, val in mult_freq_re.findall(config): - value += float(val) * (float(num) if num else 1.0) - return value - -def cpu_config_less(config1, config2): - return cpu_config_val(config1) < cpu_config_val(config2) - -def cpu_config_is_close(config1, config2): - r0 = cpu_config_val(config1) - r1 = cpu_config_val(config2) - r1n = r1 * 0.9 - return r0 > r1n and r0 < r1 - -def guess_old_style_cpu_config(cpu_config, num_logical_cpus, - frequency_re = re.compile(r'(?P\d+\.?\d+)\s*(?P[GH])z')): - freq_mult = frequency_re.match(cpu_config) - if not freq_mult: - if num_logical_cpus > 1: - return '%dx %s' % (num_logical_cpus, cpu_config) - return cpu_config - - freq, mult = freq_mult.groups() - freq = atof(freq) - if mult[0] == 'G': - freq *= 1000 - - candidate_config = "%dx %.2f MHz" % (num_logical_cpus, freq) - if cpu_config_less(cpu_config, candidate_config) and \ - not cpu_config_is_close(cpu_config, candidate_config): - return candidate_config - - return cpu_config - -def parse_old_style_cpu_info(cpu_config, cpu_name, bench_name, - old_style_cpu_name_re = re.compile('\s*(?P\d+)?(x?\s+)?(?P.*)')): - num_cpus = old_style_cpu_name_re.match(cpu_name) - assert num_cpus - - groups = num_cpus.groupdict() - num_logical_cpus = int(groups['numcpu']) if groups['numcpu'] else 1 - return { - 'NumThreads': num_logical_cpus, - 'NumCores': -1, - 'NumCpus': -1, - 'CpuName': cleanup_old_style_cpu_name(groups['cpuname']), - 'CpuConfig': guess_old_style_cpu_config(cpu_config, num_logical_cpus), - 'UsedThreads': guess_old_style_used_threads(bench_name, num_logical_cpus), - } - -def generate_machine_id(bench, - invalid_chars_re = re.compile(r'[^A-Za-z0-9\(\);]')): - mid = "%s;%s;%.2f" % ( - bench.get('Board', '(Unknown)'), - bench['CpuName'], - cpu_config_val(bench['CpuConfig']), - ) - - return invalid_chars_re.sub("_", mid) - -def parse_new_style_bench_value(value): - values = value.strip().split(';') - - if len(values) >= 3: - result = float(values[0].replace(",", ".")) - elapsed_time = float(values[1].replace(",", ".")) - threads_used = int(values[2]) - else: - result = 0 - elapsed_time = 0 - threads_used = 0 - - benchmark_version = int(values[3]) if len(values) >= 4 else 1 - extra = values[4] if len(values) >= 5 and not '|' in values[4] else '' - user_note = values[5] if len(values) >= 6 and not '|' in values[5] else '' - - return { - 'BenchmarkResult': result, - 'ElapsedTime': elapsed_time, - 'UsedThreads': threads_used, - 'BenchmarkVersion': benchmark_version, - 'ExtraInfo': extra, - 'UserNote': user_note, - } - -if __name__ == '__main__': - if len(sys.argv) < 2: - print("Usage: benchmark-conf-to-json.py benchmark.conf") - sys.exit(1) - - cfg = config_parser(strict=False) - cfg.optionxform = lambda opt: opt - cfg.read(sys.argv[1]) - - out = defaultdict(lambda: []) - - for section in cfg.sections(): - if section == 'param': - continue - - for key in cfg[section]: - values = cfg[section][key].split('|') - - if len(values) >= 10: - bench = { - 'MachineId': key, - 'Board': values[2], - 'CpuName': values[3], - 'CpuDesc': values[4], - 'CpuConfig': values[5].replace(",", "."), - 'MemoryInKiB': int(values[6]), - 'NumCpus': int(values[7]), - 'NumCores': int(values[8]), - 'NumThreads': int(values[9]), - 'Legacy': False, - } - bench.update(parse_new_style_bench_value(values[0])) - if len(values) >= 11: - bench['OpenGlRenderer'] = values[10] - if len(values) >= 12: - bench['GpuDesc'] = values[11] - if len(values) >= 13: - bench['MachineDataVersion'] = int(values[12]) - if len(values) >= 14: - bench['PointerBits'] = int(values[13]) - if len(values) >= 15: - bench['DataFromSuperUser'] = int(values[14]) != 0 - if len(values) >= 16: - bench['PhysicalMemoryInMiB'] = int(values[15]) - if len(values) >= 17: - bench['MemoryTypes'] = values[16] - elif len(values) >= 2: - bench = { - 'BenchmarkResult': float(values[0]), - 'Legacy': True, - } - - cpu_info = parse_old_style_cpu_info(values[1].replace(",", "."), key, section) - bench.update(cpu_info) - bench['MachineId'] = generate_machine_id(bench) - else: - raise SyntaxError("unexpected value length: %d (%s)" % (len(values), values)) - - out[section].append(bench) - - print(json.dumps(out)) diff --git a/tools/populate.py b/tools/populate.py deleted file mode 100755 index 4c9f9440..00000000 --- a/tools/populate.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/python - -import requests -import json -import sys - -for benchmark, results in json.load(sys.stdin).items(): - for result in results: - print('Populating: %s, %s' % (benchmark, result['MachineId'])) - - if not result.get('Legacy', True): - if not 'PointerBits' in result: result['PointerBits'] = 64 - - r = requests.post('http://localhost:1234/benchmark.json', json={benchmark: result}) - if not r.ok: - raise IOError("%s %d (%s)" % (r.reason, r.status_code, r.text.strip())) - -- cgit v1.2.3